Here you will find links and agendas of RGB regular dev calls
Time and day - bi-weekly, on Wednesdays, 5pm CET*
Jitsi link to join the call https://meet.jit.si/RGBcall1
Calls are being recorded and uploaded to the devcalls repository 🎥 Demos and presentations are uploaded to the YouTube channel *sometimes time and date can be changed, follow the announcements on RGB Telegram Group
Agenda: Presentation of 🔥RGB v0.8 release. Part I 1. Few words about the LNP/BP Standards Association. 2. Overview of RGB as a system: - What has been changed and what Bitcoin/LN developments are supported. - RGB layers - RGB roadmap - Roles in LNP/BP and RGB ecosystem 3. Anatomy of RGB smart contracts: Schema, strict encoding, single-use seal, contract containers etc. 4. AluVM, Contractum, PRISM. 5. Is there a global state for the contract? 6. How can I 'read contract' or 'call contract method'? 7. Terminology. 8. Storm network. 9. LNP/BP nodes & their architecture. 10. 🔥RGB v0.8 Node demo
Questions: 1. What are the benefits in using algo stables on RGB over using them on eth-like blockchains? 2. If I were to isseue an rgb20 asset. Would I be able to change user balances? In which way does a contract user need to trust the issuer? 3.Does RGB has a contract execution cost (re: ETH and gas)? 4. Do Bifrost Taproot channels use Schnorr signature-based multisig? 5. What intrinsics are available to AluVM contracts? Are timelocks possible in AluVM? Might be useful for dynamic NFTs. 6. Would it make sense to support AWS S3 object storage for consignment storage? 🎧 Audio recordings, 🎥 YouTube video, 📝 Presentation slides
Agenda: Presentation of 🔥Deterministic bitcoin commitments and ways of how Taproot modernizes RGB. 1. Update - the day before rust miniscript made a first release-candidate providing full Taproot support, removing many obstacles for RGB and rust-bitcoin. Thus, we will have a sequence of releases (0.6) of all our libs that will have full Taproot support. 2. Agenda to discuss: a) OP_RETURN commitment scheme, b) to put all RGB commitments inside the bitcoin transaction into a single output and change the selection mechanism of determining the output in which the RGB commitment will go, c) use all that to avoid interactive complexity and privacy leaks that happen in LN, conjoin, payjoin protocols.
More details: 1. What are DBCs, how are they different from other types of commitments (OP_RETURN, P2C, S2c)? - is it that the hardware wallets don’t need to tweak the output now or they already need to tweak the normal Taproot tweaking in the first place, so we’re basically delegating the tweaking complexity that hardware wallets would be facing to the taproot abilities themselves, but in a way if you spend a Taproot output which the end user Tapscript with or without the OP_RETURN inside the tap script, you will need the hardware wallet to tweak the general taproot key? 2. Huffman Merkle tree. - Can we just duplicate the commitment on both sides of the branch?
Conclusion - it’s decided to support both OP_RETURN and Tap_Return. 3. How to construct multiparty transaction and avoid interactive protocols and RGB asset information leaks?
4. RGB workflow with DBCs. Questions: - Will we always use 1 input and 1 output? - Does taproot simplify the RGB wallet implementation? - How dramatic would be these improvements in terms of bitcoin blockchain space? - So, if you implement OP_RETURN in addition to Tap_Return, will Taproot support still be mandatory for RGB wallets? - Are there any proposals for proof-of-payment (against the third party) mechanism?
3. Q&A session: - NFT over LN use case - algorithmical stable coin use case - Since hashrate follows price, could hashrate or difficulty be used to peg a stablecoin? - Are there any plans for a daemon management utility for desktop or servers (without needing systemd)? - We tried to derive from the 'seed phrase' the bitcoin addresses (from descrptor wallet), but we couldn't find out which derivation path was used. So question: how to calculate the correct descriptor wallet addresses based on the seed? 🎧 Audio recordings, 🎥 YouTube video, 📝 Presentation slides
Agenda: During the call we had the third part of the presentation and demonstration our 🔥LNP Node (Lightning Network node written in Rust🦀 ). We managed to open the first Lightning network channel from LNP Node to a remote c-Lightning; on Bitcoin mainnet. Q&A session questions: 1. When will Bifrost be released? 2.I noticed you recommended bip43 purpose keys - will you also support bip44 hardened keys? 3. will there be a demo on the smart contract part of rgb anytime soon? if not how far away are we? 4. How big is the team? 🎧 Audio recordings, 🎥 YouTube video, 📝 Presentation slides
Agenda: During the call we had the second part of the presentation and demonstration our 🔥LNP Node (Lightning Network node written in Rust 🦀 ): - technical deep dive on the node’s internals - its interoperability with LN - its connection to c-lightning node Q&A session questions: 1. Really interested in PTLC and how it would be possible to work with it using LNP Node. 2. Is the LNP Node a prerequisite to building a Rust compiler? 3. What is the reason of maintaining the backwards compatibility between Bifrost and 'legacy LN'? 4. Given different primitives that would allow you to tap into Lightning for liquidity; and because of the way RGB is built, you can build a multisig and bunch of signers of a particular issuance of an asset, and then there can be someone else who can issue another type of asset and he also has the whole setup. Is there any format or way to talk across these issuances so that you could do interesting things cross-asset? 🎧 Audio recordings, 🎥 YouTube video, 📝 Presentation slides
Agenda: 1. Second part of the demo of 🔥Descriptor wallet (using Bitcoin mainnet and Taproot-enabled addresses). For more details check https://github.com/LNP-BP/descriptor-wallet Transactions publicly made for the first time by the descriptor wallet, on Bitcoin mainnet to 2 Taproot addresses: https://blockstream.info/tx/d4add20c23f46295763a1167044afa9e189cd91b68d3da99e737062b4f5e3202?expand https://blockstream.info/tx/d4302e3f0bbfc2b89798fd672fb806b52b4fa45044a39dd5302fece65e229aa6?expand 2. First part of 🔥 LNP Node demo and presentation on its internals and changes that have been made to it over the past weeks. Q&A session questions: 1. I had problems compiling to WASM in past versions, there are some plan to compile to WASM in the future? 2. For next CLI devcalls. can we have the material to compile to follow your presentation? 🎧 Audio recordings, 🎥 YouTube video, 📝 Presentation slides
Agenda: Dr. Maxim Orlovsky gives a presentation and the first part of demonstration of the 🔥Descriptor wallet with Taproot support - explained its technical architecture and used Bitcoin mainnet. Descriptor wallet repository for more details https://github.com/LNP-BP/descriptor-wallet Q&A session: 1. What are input descriptors? 🎧 Audio recordings, 🎥 YouTube video, 📝 Presentation slides
Agenda: Dr. Maxim Orlovsky describes 🔥Taproot, Bitfrost and single-use seals, the changes that are brought by Taproot and Bifrost (Generalised Lightning Protocol) to the single-use seals and many core RGB design principles. Peter Todd, Giacomo Zucco, Federico Tenga and many others gave their feedback and approval on various matters. 🎧 Audio recordings, 🎥 YouTube video, 📝 Presentation slides
1. Introduction and tech dive into 🔥Bifrost protocol. 2. Q&A session: - Are the new LNPBPs already written? - Will the number of different channel types become ever a problem - for example, must every node have channels of each types to use them? - I've understood that it's going to be released at the end of the year, what is going to be released exactly (sorry if it is said, but i lost the sound sometimes)? - As a not hard core developer it's difficult to imagine the use cases, could we start a brainstorm with some people what kind of dreams we will accomplish? - Are there working examples of some RGB operations over Bifrost? Can i work my way to make some RGB transfers in Bifrost with the code published now? - How will nodes be incentivised to store Bifrost data? - Why is it not possible to keep using a legacy channel with the legacy LN connection when you upgrade the channel to Bifrost ? What makes it impossible to "separate states" between legacy and Bifrost transactions? - I guess ANYPREVOUT would be very nice for Bifrost? What about other possible bitcoin future softforks? 🎧 Audio recordings, 🎥 YouTube video, 📝 Presentation slides
Agenda: Q&A session
- Is the amount of UTXO, to which a specific RGB asset is assigned, a hidden or public information
- My question is about RGB Node, now is break for the updating in RGB Core and RGB-20, is going to be released updated soon? It's going to have much change respect what we have today, apart from adapting to changes in another libraries?
- What is the link between AluVM and Contractum?
- AluVM will be included on the next reales and be required to run RGB? How RGB-20 is impacted? Can we say AluVM is the current way to do client-side validation?
- Does Bitcoin Pro have to be updated for AluVM?
- In your opinion, what would be the better way to implement LLVM IR to AluVM bytecode? LLVM IR compiling to bytecode or (as you mentionned in a previous call) LLVM IR translated into ALU asm via parser? Or other way like o a Rust pest project? (LLVM IR -> Aluasm). Same questions for WASM - AluVM
- Can RGB be compatible with ZK-Rollups? I understand Roll-up is not preferred. But is it viable as an immediate interim solution to bring already built solutions to RGB before pure client side validation is built?
- Is the unowned state is still a subject? What is it exactly?
- What is a valency in the context of RGB?
- What is the state of LNP in the scope of RGB? How is client-side validation done with LN? Is Francisco ready to dive in this?
Agenda: 1. Presentation on 🔥RGB roadmap: a way towards release. 2. Q&A session: - Will the exchange rate be always RGB-token/BTC or you there will be RGB-token1/RGB-token2? - I have the impression that MyCitadel wallet is IOS/macOS only...is that true? - Do you expect any resistance to current nodes switching to Bifrost? - How the main lightning implementations devs received the idea to add Bifrost to their own implementation? - Do you recommend the use of rust-lightning? - What is the risk of keeping all data on Bifrost instead of locally? Just fees for storage? - What would be the incentive to run a Bifrost node? - What happens if we do not have capacity to receive data locally are we aren't using Bifrost? Does transaction get rejected? - How is the data availability ensured with some/many nodes going offline? - Will MyCitadel beta be back soon? Or do you plan to release the first non beta version along with RGB in the end of the year? - What happens if the client-side data is lost (worst case scenario)? Would it affect any smart contract applications? - To come back to the exchange rate rgb-token/BTC vs rgb-token1/rgb-token2, the principle of "coincidence of wants" would point that it would be more efficient and profitable to price anything into the hard money, aka BTC, as you would have more liquidity and that if you want to go from RGB-token1 to RGB-token2, you would have better offers if you do an indirect exchange through BTC. - What are the limitations of client-side validation? 🎧 Audio recordings, 🎥 YouTube video, 📝 Presentation slides
Agenda: 1. Presentation of 🔥AluVM Assembly, compiler and linker demo. 2. Q&A session - How do I do to have the syntax colors for the asm in the IDE? - Are there any working examples of RGB smart contracts written in Contractum? Links from the call: - https://github.com/pandoracore/aluasm - https://github.com/rgb-org/rust-rgb20 🎧 Audio recordings, 🎥 YouTube video
Agenda: 1. Presentation of 🔥RGB computational model (PRISM). 2. Q&A session: - How badly Disclosure process exposes your privacy? - If RGB smart contracts are isolated, can they still cooperate/share information between each other? - If in Stash many parties can contain alternative histories, how to define which history is the true one? - I believe that the RGB20 and RGB21 contracts written in rust already existed before AluVM, will there be a reimplementation of RGB20 and RGB21 in AluVM scripts? - Do you have any further insight into when RGB will work on lightning? etc 🎧 Audio recordings, 🎥 YouTube video, 📝 Presentation slides
Agenda: Development update and RGB Q&A session. 1. Category Theory resources: introductory course, additional link. 2. Does category theory has impact on AluVM? 3. Is there a standard in RGB (or bitcoin) in denoting a utxo output e.g. in a single use seal? 4. Does a routing node just need to know about the asset, or do the channels have to be for that RGB asset as opposed to regular NTC LN channels? 5. If an asset created with RGB becomes very valuable, or you just have many of them, you might not want to have it on a lightning hot wallet. Since to move the assets, only a regular BTC signature on a PSBT is required, it should be possible to safeguard those assets in the same cold storage as your regular BTC. The only hard requirement to the cold storage is that it can sign PSBTs. I don't think there should be a problem with multisig here. But in order to be sure you sign the right thing, the cold storage should have some knowledge of the assets that are moved. How could this look like? 6 . If i'm reckless, can I use RGB on mainnet? Is there any precedent of issuing rgb asset on mainnet? 7. There is an idea to put a NFT (the RGB equivalent) in an Opendime to transfer some properties physically. So, on the Opendime attached on the artwork you will have the NFT certificate version of the artwork. Can it be possible with RGB NFTs? 8. RGB and existing Lightning Nodes implementations (e.g. LND). 9. DEX devepoment - progress update. 🎧 Audio recordings
Agenda: 1. Development and documentation updates. - https://github.com/orgs/rust-bitcoin/projects/3 - https://standards.lnp-bp.org - https://strict-encoding.lnp-bp.org - https://blueprint.rgb.network - https://www.rgbfaq.com 2. Q&A session: - How to solve the double issuing problem when the issuing is private? - Will there be a vanity asset id generator? (vanity = with friendly first asset id characters) - How can AluVM optimize or control the behavior of assets in a lightning channel? - Is it possible to use AluVM to write an auction contract "using sats" or bidding? - Can you talk more about the decentralized data storage for RGB21? Who pays for the storage and who will pay for it in the future? 3. Preliminary introduction of the research on Sigchain and Sealchain carried out by Dr. Maxim Orlovsky and Pandora Core AG. 🎧 Audio recordings
Agenda: Presentation on 🔥Taproot status, its implementation in Rust Bitcoin and Lightning Network upgrades required for Taproot support. We also gave an overview of the possibilities it brings to the LNP/BP stack & ways the LNP/BP Standards Association and Pandora Core AG contribute to Taproot's development.
Agenda: 1. Presentation on 🔥 Single-use seals concept, how it is used in RGB. 2. Brief discussion on DID held as an example of how single-use seals can be applied there (with Christopher Allen from Blockchain Commons/Blockstream joining us). 🎧 Audio recordings, 🎥 YouTube video, 📝 Presentation slides
Agenda: 1. Description of the features that are already a part of RGB and the ones that are going into production with new release. 2. Q&A session: - Mainnet/testnet/signet in Bitcoin and LN - RGB perspective. - Bifrost - what’s the idea and functionality of it? - Is RGB in production? - When RGB mainnet? - Why is the smart contract system part of the MVP when it was not needed before? - Is simplicity going to be used? - What is this contractum? Is it a yet another completely new thing? - Plans for the following months. - How to track RGB progress and contribute to it. etc 🎧 Audio recordings
Agenda: 1. Technical updates on the development (client-side validation repo). 2. Q&A session: - Have you thought about bad actors trying to patent stuff, like someone sees something in here and then tries to patent it? - What are the time estimates and release dates of Storm, Bifrost and other components? - Do you need Taproot? - Does lightning support have external dependencies like smth needs to happen in Bitcoin Core or elsewhere (like rust-bitcoin) in order to enable lightning for RGB? - Smart-contracts and client side validation - RGB POV and high level explanations. - Are you planning a future conference? - Do you have plan to work on "channel factories" ? etc 🎧 Audio recordings
Agenda: Presentation on 🔥 RGB 2021 roadmap & beyond: 1. Technical details behind new version of client-side-validation library. 2. Updates on deterministic bitcoin commitment standards. 3. Thoughts on RGB layers & LightningNetwork (LN dissection). 4. LNP/BP technical roadmap 🎧 Audio recordings, 🎥 YouTube videos 📝 Presentation slides
Agenda: 1. RGB v.1 and RGB v.2 overview. 2. Development updates: - Completing the development of disclosures - Use cases for burn & replacement procedure - NFT progress - Subschema for simplified RGB20 asset without replacement procedure - Data containers API - RGB20 secondary issuance - Improving and extending general API to work with state transitions etc 3. Virtualisation of RGB validation rules: - What is RGB client-side validation? - Schema & scripting - Introduction of 🔥 AluVM and Contractum language 🎧 Audio recordings, 🎥 YouTube videos 📝 Presentation slides
Agenda NFT-related RGB Schemata & protocols presentation: 1. Implementation progress & updates. 2. Moving from genesis-based information transmission to consignment-based. 3. Subschemata: overview and usage in RGB20 use case. 4. Anarchic DRM systems. 5. How to sell usage rights without onchain transactions. 6. Introduction of Data containers. 7. Introduction to Bifrost. 8. Virtualization of client-side validation. 🎧 Audio recordings, 🎥 YouTube videos 📝 Presentation slides
Agenda: Building RGB adoption presentation: - Intro. RGB vs Ethereum and 'Multi blockchain world' - RGB mission & core drivers for its adoption - LNP/BP Association tools - Internet 2 architecture - Bitcoin Pro, Citadel SDK, MyCitadel Node, MyCitadel box, MyCitadel cloud - Introduction of 🔥 RGBex.io - the first RGB explorer for publishing and sharing information about your assets - Dev vacancies & Fundraising info 🎧 Audio recordings, 🎥 YouTube videos 📝 Presentation slides
- 1.Development updates from @dr-orlovsky:
- wallet architecture advancements
- plans & roadmap for more testing command-line, tx-generation and wallet-based tools
- 2.Recap on transition mutability refactoring on the previous week
- 4.Priorities for further development process
- 5.Developer Q&As
- 6.Update Stash merge logic to account for previously known transition data. This is a security vulnerability and can cause fund loss. Ref: https://github.com/rgb-org/rgb-node/pull/136#issuecomment-782355933
Agenda: RGB NFT Q&A 1. How you transfer 1 of 1 tokens on LN since by definition there's no liquidity? 2. Will moving digital art RGB tokens require escrow channels? 3. Are multi-asset channels something that is possible to use with fungible assets and NFTs? Are they implemented? How do they work? 4. Multi-peer channels and multi-hop payments - how can they work in NFT case (if they can)? 5. How you deal if somebody lost his token for his art-piece ? How do you issue a new one? 6. Why try to link real world assets with NFTs ?
RGB Q&A 1. Could we use RGB tokens as representing the state in a more complex state machine ? A state machine that could be represented by a Directed Graph (allowing cycles), a general petrinet for example. 2. If you lend your bitcoin to some financial institution and then something happens to it, can you use the RGB-bearer right to prove that you are still the holder of bitcoin and get your funds back?
- 5.Transaction output duplicated by 'fungible transfer' - https://github.com/rgb-org/rgb-node/issues/127Wallet integration
- RGB derivation paths
- where to keep the blinding secrets
- use of descriptor-based invoices
- invoice updates supporting recurrent payments & donations
- dedicated tweaked key derivation path
- wallet integration abstraction layers
- support for taproot
- support of legacy and novel wallet contracts, BIP identity proposal
- creation of a single-sig wallet contract
- detecting UTXOs
- issuing RGB assets to the wallet-controlled output
Agenda: 1. Brief demo of RGB working with real-life software (Bitcoin Pro tool and WIP on MyCitadel wallet that are being developed by Pandora Core). 2. Proposal to create standards that would cover the ways to visually represent the client-side functionality that is not a part of Core RGB Library and protocol. 3. Technical update on the progress. 4. RGB workflow diagram. 5. Android bounty bug. 6. Other bugs and issues raised by the core dev team and external contributors. 🎧 Audio recordings
Agenda: Presentation on
RGB Wallets integration, that covers: - diagrams explaining how the wallet part of the business logic, storage etc. should be done in order to use RGB SDK; - PSBT structure required for RGB work with hardware wallet; - universal invoices updates; - use of Bech32 encodings in RGB & LNP/BP tech stack. 🎧 Audio recordings, 🎥 YouTube videos 📝 Presentation slides
Agenda: 1. Dev Updates and future roadmap (see the slides): - Updates on related projects: rust-bitcoin & rust-miniscript - Updates on refactoring LNP/BP Core Lib and info on new crates (wallet descriptors, RGB Core, LNP Core, Internet2) - Moving repositories into project-specific github orgs (RGB-org, Internet2-org) - v0.3.0 release of LNP/BP Core Lib, RGB Core Lib & RGB Node - New developments with LNP Core & BOLT-7 by @raj - Proposed architecture for mobile wallets using RGB+LNP Node - RGB/LN invoicing protocol: aspects related to mobile payment 2. Pending issues to discuss: - LNP-BP/LNPBPs#83 - rgb-org/rgb-sdk#47 - #33 🎧 Audio recordings, 🎥 YouTube videos 📝 Presentation slides
Agenda: 1. 2021 Agenda for LNP/BP Standards Association: - LNP SDK & improvements to RGB SDK; support first wallets & exchanges integrating RGB (SDKs & docs) - Fundraising to support Association operations - Completion of LNP/BP standards for RGB & related protocols: official RGB standard release - Completion of LNP Node to fully support all LN features - Bifrost protocol for public RGB infrastructure & decentralized exchange over LN - Further development of Internet2 libraries; support of software using Internet2 tech stack - BP Node: indexing node for bitcoin blockchain replacing need in Electrum - Initial work on implementation of Lightspeed, Storm & Prometheus protocols 2.
Presentation of the LNP/BP Core Lib BP module 🎥 YouTube video and 📝 Presentation slides 3. Discussion: - Updates on related projects: rust-bitcoin & rust-miniscript - Advanced descriptors with BP module of LNP/BP Core Lib - Proposed architecture for mobile wallets using RGB+LNP Node - RGB/LN invoicing protocol: aspects related to mobile payment 🎧 Audio recordings
Agenda: 1. Docs & community - RGB Reddit - RGB FAQ release 2. Releases - LNP Node v0.2 beta 2: upgrade to LNP/BP Core lib release & bugfixing from @St333p - RGB Node v0.2 release - librgb v0.2 release candidate - RGB SDK updates 3. 💥 Universal LNP/BP invoices standard proposal presentation 🎧 Audio recordings, 🎥 YouTube video and 📝 Presentation slides
Agenda: 1. Updates from the call with Ledger 2. RGB-21 Collectible Schema: - Unique tokens & token-specfic data - Issuance control - Generic token data, internal or external, in different formats - Engravings (and why Schema subclassing is required) - LockUTXOs and descriptors for proof of reserves - Renominations - Rights splits 🎧 Audio recordings
Agenda: 1. RGB branding 2. Reduce asset name length limit - Issue #74 3. Support for asset name registries - Issue #75 4. PSBT and deterministic bitcoin commitments/public key tweaks - Issue #69 5. RGB-20 Schema update: - Removed dust limit - Multiple inflation rights with better control over total inflation - Epoch-based burn and burn-and-replace procedures; enhanced with UTXO set and versioned proofs of burn data, supporting up to 15 burn proof variants (+"no proofs" option) - Asset renomination procedure, for changing asset names or splitting stock shares after @sabina_sa proposal - Standardisation of contract text URL and commitment format - Rights split procedure 🎧 Audio recordings
Agenda: 1. Reduce asset name length limit - Issue #74 2. PSBT and deterministic bitcoin commitments / public key tweaks - Issue #69 3. OP_RETURN - is there still the need in it, should we support it? 4. Support of multiple assets and funding the LN channel with assets 'on the flight' 5. Solving the problem of American Call Option 6. Sign-to-contract and Pay-to-contract schemes 7. Simplicity language support in RGB (update) 8. Andrew Poelstra's work on bringing Buletproofs to lib secp256k1 (update) 🎧 Audio recordings
- Supporting Rust stable and down to v1.41! Removed all unstable language components
- No more upstream forks, for now dependencies are only on published bitcoin-related crates (miniscript v2, bitcoin v0.25, latest bitcoin_hashes with Taproot updates, removed unstable lightning dependency)
- SQLite support for RGB Node by @rajarshimaitra
- Generalized payment channels and relation to RGB and LN Node
- LNP Node architecture and overall design approach to node architecture
- Universal protocol for node oprations (RGB, LNP, Bifrost ...): node ids, compatible messaging system & message ids (see details in last call agenda) https://github.com/LNP-BP/LNPBPs/issues/55. Explanation on RGB peer network and Bitfrost peer network as a part of Lightning peer network. Considerations and discussions.
- Generalized Lightning networking on top of alternative transports (Websocket, HTTP overlay, SMTP, messaging) and RPC stack with ZMQ et al
- Ongoing work on structuring Internet2 stack as a set of Lightning related networking protocols on top of Tor
- Explanations on matters related to DBC tweaks of public keys: lessons learned from Liquid https://github.com/LNP-BP/LNPBPs/issues/69 Excerpt: After discussion with Andrew Poelstra it became obvious that the previous decision of storing public key tweak information within PSBT as a single value (https://github.com/LNP-BP/rust-lnpbp/issues/86) will be insecure and incompatible with hardware signing units, wallets or airgapped solutions. The problems is that the device must be able to verify what is hidden behind the tweak, otherwise it will be possible for a malware to change the tweak in such a way that it will substitue the underlying state transition with some other (assigning assets to the thief-controlled UTXOs) or, even, apply some taproot-based alternative spending conditions.
- NFT transfers in generalized LN with channel factories
- Merge-mined chain allowing excellend scalability with single-key-per-block concept
Related updates from other projects
RGB-20 Schema update: - Removed dust limit - Multiple inflation rights with better control over total inflation - Epoch-based burn and burn-and-replace procedures; enhanced with UTXO set and versioned proofs of burn data, supporting up to 15 burn proof variants (+"no proofs" option) - Asset renomination procedure, for changing asset names or splitting stock shares after @sabina_sa proposal - Standardization of contract text URL and commitment format - Rights split procedure 🎧 Audio recordings
- Explanation of the relations between LNP/BP Core lib and RGB Node/SDK
- Docker containers big update: Bitcoin Core, c-Lightning, ElectrumRs, Elements & RGB Node.
- Readiness of LNP/BP Core Library first release (v0.1):
- Test coverage > 2/3
- Advanced continous integration
- Moved buisness logic from RGB Node to the core lib
- Updates on RGB security audit started last week.
Decisions taken throughout the week & implemented
- Storage of whole chain parameters in Genesis, committing only to chain hash
- Bech32 encodings for RGB & invoicing
Finalization of decisions
- LNPBP-1 & 2 refactoring: keyset commitments:
- LNPBP2 update is WIP
- PSBT custom keys: one removed (fee), the second one, keeping tweaking factor is replaced with non-proprietary; which is planned to be added to BIP-174 standard
- NFT transfers in generalized LN with channel factories
- Merge-mined chain allowing excellend scalability with single-key-per-block concept
Related updates from other projects
- New unified invoicing proposal with protocol layerization, extensibility, interoperability:
- "Payment specification" layer. Current example - Bitcoin addresses. Will be extended for RGB with new types from this table:
- Blinded UTXO (RGB-specific)
- Descriptor-based (can be used for Bitcoin also). Hints:
- Deterministic key derivation with block height
- In RGB we can make keys truly random since we know payment txo anyway from the consignment
- PSBT-based (can be used for Bitcoin!)
- Channel (LN)-based: not the same as BOLT-11, but just a node id, address and routing hints
- "Invoce" layer (current example - BOLT-11, parts of the proposed BOLT-12/13)
- Just an LN message serialized into Bech32 format!
- Now LN messages can be send over non-interactive or high-latency networks (mesh, satellite, SMTP/mail, messengers/tweets)
- Very extensible: TLVs, new message types. Making new invoice type is just like defining new LN message: decentralized
- "Interactive payment protocol" layer (current examples - BIP70, LNURL, BOLT12 from above)
- Potentially should work with any invoice and data type (it is the case for LNURL already; will try to direct BOLT12 into this; BIP70 is depricated anyway)
- We will have Bifrost for RGB-related interactivity; it will utilize LN messaging format so complete invoice data workflow (offer/request/invoice/ failback/alternative) may fit into bech32-encoded strings as described below:
- Bech32 encodings for invoicing & RGB-related data entities
- Any message can be serialized with
<4hex>_lnp1bechdata, or for known formats
<id>[_<4hex>_lnp]1bechdata(this is interoperable with Russel new invoices), for instance
inv1invoicedatacan be a universal invoice message.
- Bech32 for raw data (non-LN messages) will use normal HRPs, so this is backward-compatible with current Bech32 use, and will fit well with RGB- related Bech32 for hashes (RGB contract id, schema id etc) and data types. See sample implementation in https://github.com/LNP-BP/rust-lnpbp/pull/112/commits/485ea355e625624aba40679f134be94cd47882d5
- Public keys & LN node ids can also use Bech32 encoding with
pk1keydata- for public keys
pkx1keydata- for extended public keys
pkn1keydata- for node ids in LN (b/c of the unification, see below, this id will work with LN, RGB network & Bifrost) This can potentially replace multiple formats (WIFs, hex encoded keys, BASE64 encoded xpubs and serve the original goals for which Bech32 encoding was proposed.
- Schema extensibility for things like multiple asset schemas: instead of extending schema, we will have one "most advanced" schema with all features (for assets, NFTs, reputation etc) and smaller sub-schemas which will commit to the most advanced schema for which they are just a subset. It will resolve security considerations by Alekos Filini and allow simple wallet adoption of new asset schema types.
- Interoperability & networks explanations and structuring:
- P2P network differentiation (
- Layer 1 differentiation:
- Xpub/Xpriv specifics:
- Bringing it all Layer 1 stuff together with single & simple
- Asset cross-layer differentiation (on-chain
ChainHash, Liquid CA, RGB, OMNI):
- How it is used:
- Schema do not commit to anything
- Genesis commits to chain hash, but stores full set of chain params
- This is why genesis needs a "data structure version" flag in chainparams field (to allow chain params extensibility), and must represent a list of data, starting from the first version
- LN nodes uses
ChainHashto identify in which "network" they operate/accept channels
- RGB versioning clarification:
- Schema has a version identifying RGB protocol version https://github.com/LNP-BP/LNPBPs/issues/45. An RGB contract genesis (asset issuance) commits to Schema and thus to a specific RGB protocol version forever: no "forks"/version upgrades within single contracts, but different contracts from different issuers may operate on different RGB versions
- Consignments use "serializetion version" field indicating network serialization format used for data transfer. Receiver specifies desired/ supported formats as a part of invoice data. This allows more efficient compression of network-transferred data (like use of bulletproof/pedersen aggregation, shor bitcoin ids)
- Genesis uses version for ChainParams field data structure (see above), which has nothing to do with protocol or serialization version. Receiver do not need to specify version in invoice, since all legacy versions are always included.
- Proposed invoicing protocol operate not only with RGB, but also can be used for native bitcoin on-chain and LN payments.
- API/message type unification for RGB Node, Ligthning network (all nodes) and future Bifrost. Now node type will be defined just by the set of features, and networks can inter-operate.
- RGB Node, LNP Node and Bifrost will be unifiable into a single piece of software, so wallet devs will be able to use just a single integration point to run RGB onchain, RGB lightning & native lightning payments.
- Key management & signing functionality within LNP Node will help wallet devs with this part of functionality. Unfortunatelly we can't use BDK since it lacks RGB specific PSBT key type support (for Pk tweaks) and Xpub/Xpriv other chains, so LNP/BP Core library will include special mod for all necessary extensions to Xpub/Xpriv keys and PSBTs, as well as signers, based on miniscript, supporting necessary RGB functionality. See sections above on more details to Xpub/Xpriv specifics.
- Better test coverage approaching ~60% for the Core Library and ~100% for the underlying amplify crate, including new exhaustive tests for some encodings covering all possible encoding options.
- Better code docs: ~50% for the Core Library & 100% for the underlying amplify crate.
I.Ongoing developments 1. Last beta 4 pre-release before RC1 2. Invoicing protocol: - LNURL downsides - new LN developments (lni, lno, lnr by Rusty Russel) - possible applications of the above for RGB LN workflows - miniscript/descriptor bitcoin invoices with TLV-LN style - results of research and plans for RGB universal invoicing 3. PSBT development: - main format for data storage & exchange - brining rust-bitcoin libraries closer to full implementation - Schema/Genesis: versioning, chain params - Implications: DEX outside RGB in LN II. Closing old discussions: - Monero bulletproofs - Lexicographic output ordering III. CI & infrastructure: - Dockerization: full set up images - Signet & Lightning - Exhaustive tests
IV. Future protocol developments - Zk: bulletproofs aggregation - Decentralized issuance with public transitions