lnp-bp / presentations Goto Github PK
View Code? Open in Web Editor NEWSlides, visuals and video links that explain Bitcoin L2/L3 technological stack development, curated by LNP/BP Standards Association
Home Page: https://www.youtube.com/c/LNPBP/
Slides, visuals and video links that explain Bitcoin L2/L3 technological stack development, curated by LNP/BP Standards Association
Home Page: https://www.youtube.com/c/LNPBP/
This issue is the enhancement of #12
RGB functionality is not dependent on Taproot deployment, though is already compatible with it.
However, RGB will benefit from Taproot, but it’s benefit is purely bitcoin-based benefit (i.e. indirect). Better multisigs, adaptor-based signatures protocols, LN improvements (PTLCs)
Internally inside RGB there is nothing to sign (so Schnorr's change nothing internally) and no use for Bitcoin script (so no use from the new Tapscript)
Assignment is an owned right (defined by owned right type u8
value) + state data + UTXO, which forms a single-use-seal definition when it is assigned that owned right.
So: nothing can prevent some given UTXO from having multiple assignments, of different owned right type, and even for each owned right type there might be multiple assignments.
UTXO <-one to many-> owned right type <-one to many-> assignment of some state:
This is a very bad situation, but we can’t prevent it from happening.
Especially if you assign different types of owned rights under the same contract you may not be able to create a state transition without loosing some of the rights or assets (since state transitions have a very strict set of owned rights type for which they can close seals). That is why @dr-orlovsky has created “split rights" state transition, which does only one thing - gives the ability to split those mixed rights into different UTXOs.
Management of these UTXOs stays an opened question.
RGB Schema describes the actual requirements for the state transition validation outside of the level of Bitcoin script commitments. It allows simple updates without software modifications, so that wallets, explorers, LN nodes etc could accept new types of assets without any code changes.
This issue is related to #14
From my understanding of the proposed engraving and reserve features, both open the potential to interesting use cases.
Engraving sounds like a native way to enable async.art 's model of minting "master NFTs" which are composed of several "layer NFTs". Layer NFTs can be modified by owners which in turn alters the master NFT. The ability to collaborate on a single work seems to have found traction among the NFT art community - async.art recently set a record with their $120K sale for a single work (https://www.kogocrypto.com/micah-johnsons-nft-artwork-sells-for-120000-on-async-art/).
The reserve feature could be immediately useful to Scarce.City. Our first planned NFT use case is to associate tokens with physical art as a tokenized certificate of authenticity. Reserves could allow us to automatically and trustlessly transfer the token to the buyer of the physical work when they make a payment to a designated Bitcoin address.
I think these use cases are just scratching the surface of what these features enable.
There is nothing specific inside any LN node that allows their monetisation, it’s more about the Lightning Network itself and protocols where you have things like routing fee or where you can build services on top of the node which you can monetise with LN payments.
In this regard, the LNP Node is not different from any other nodes, so it can be monetised in the same way, as monetisation is not node-specific, but protocol-specific and specific to the end-user services that are implemented on top of the node by companies or users.
However, outside of LNP Node, the LNP/BP Standards Association has been building a set of protocols that would add a lot of monetisation options to the LN itself. First protocol is RGB, which unlocks the functionality of DEX inside the Lightning Network, where LNP Node will allow you to act as a part of a DEX, with further extending the possibilities to create liquidity pools for different RGB assets. Next protocol is called Storm and is made (not fully implemented yet, but we already have required faucets ready) for storage and messaging, meaning that LNP Node can be a part of this storage provider and we will have an infrastructure around the node, which will allow different additional monetisation options not present in LN now.
Yes. Actually, you can do DAO with Bitcoin, not even with RGB.
When we have Taproot, you can create a DAO with particular voting rights you want to have there (whatever they are), structure it as tapscript, assign digital assets/company rights to an output and have a proper DAO-like structure of arbitrary complexity on top of Bitcoin.
Create a folder where the visual materials for marketing, educational and presentation purposes will be stored
Create a folder where all the PDFs on RGB, Spectrum and other technologies included into the LNP/BP Association scope will be consolidated
It is not different in terms of implementing the Lightning Network specification, but it is very different in its architecture. It is created with the idea that we need an implementation that is flexible and that would allow you to easily add very complex modifications of the current Lightning Network so that you could get, for example, PTLC and DLC running, play with Taproot or channel factories. Due to a very rigid architecture of other LN nodes, any experiments become very complex and hard, often leading to the need of rewriting huge parts of nodes implementations in order to do it. With the LNP Node it is fairly easy to do (compared to rewriting existing nodes or writing your own from scratch).
It is organised into a branching tree that always start at genesis, so Vec may be an outdated representation. Basically, you create “inflation rights” at genesis, allocate each of them to some UTXO and specify how much of the inflation this branch may produce. Later, when this UTXO is spent, the issuer creates “inflation” type of state transition, where he specifies to where the newly issued asset is allocated + provides (if necessary) new inflation rights, one or several, such that their sum is equal to the current allowed inflation in the branch minus already issued assets.
Open question: what would be the best representation of that in both rust data structures and SQL tables?
Referencing issue #8
Yes, RGB was designed to be ready for supporting Taproot, Schnorr, eltoo, multi-party LN channels, DLCs etc
Ethereum uses ticker-based "Collections" for their NFTs architecture. From my understanding, minted ERC721 tokens must be minted to a collection. They're nice for organizational purposes e.g., artists can mint all NFTs to their personal collection making their entire portfolio easy to query. However, collections create friction because they are expensive to mint ($10-30 USD at current gas levels).
It seems a large part of Rarible's success can be attributed to allowing issuers to mint to their collection "RARI" (https://app.rarible.com/create/erc721) with minimal gas fees, whereas Opensea required issuers to mint a collection (They've just recently launched a product to bypass this: https://opensea.io/storefronts-staging).
In sum, collections are worthwhile as long as they can be minted with minimal fees. An optimization feature that's not available on Ethereum could be to allow Collections to be shared among multiple issuers. An example in which this can be useful is with art collectives and collaborations.
Transactions keep only homomorphic commitments which require no additional
storage.
- State isolation: state is isolated between different smart contracts and they can interact only through special protocols (Spectrum) inside channels.
If you have two assets issued by different issuers, these assets don't interact directly, their data is never mixed and they cannot be cross-validated.
There is a way to exchange one asset for another one using Spectrum protocol, but it was created as a layer on top of Lightning Network and it is not related to RGB itself. Spectrum uses LN cooperation between different transaction graphs. When you make a multihop payment with Lightning, one transaction graph of one state channel is not directly affected by the data from the transaction graph of the other channel, they all communicate through the messaging P2P onion routing protocol. Spectrum works the same way for RGB in this regard.
Originally posted by @UkolovaOlga in #4 (comment)
It is reasonable to maintain a table for UTXO of all kinds, where one of the fields will be “right type” field + “state” field, specifying OwnedRightType and state data from the specific allocation. It’s important to note that txid:vout would not be a unique key, since a single UTXO may have multiple allocations. Maybe it can be done as two linked tables. And probably it will be good to keep that data in YAML file cache structured in that way as well.
Owned right is a particular right (abstract concept); for instance in fungible assets these rights are:
An owned right may have some state data attached. Some rights do not have state data, and this called “declarative” (or “Void” previously).
Also, an owned right is always attached (we call that “assigned”) to a specific UTXO.
Assignment is an owned right (defined by owned right type u8
value) + state data + UTXO, which forms a single-use-seal definition when it is assigned that owned right.
So: nothing can prevent some given UTXO from having multiple assignments, of different owned right type, and even for each owned right type there might be multiple assignments.
UTXO <-one to many-> owned right type <-one to many-> assignment of some state:
This is a very bad situation, but we can’t prevent it from happening.
Especially if you assign different types of owned rights under the same contract you may not be able to create a state transition without loosing some of the rights or assets (since state transitions have a very strict set of owned rights type for which they can close seals). That is why @dr-orlovsky has created “split rights" state transition, which does only one thing - gives the ability to split those mixed rights into different UTXOs.
The open question is still how this multiplicity of UTXOs has to be managed.
Originally, the name RGB was chosen because the project started as a "better version of colored coins". Then, already during the few weeks into the research work with Peter Todd, in 2018, it diverged so much that it has nothing to do anymore with colored coins. But the name stuck.
Owned right is a particular right (abstract concept); for instance in fungible assets these rights are:
An owned right may have some state data attached. Some rights do not have state data, and this called “declarative” (or “Void” previously).
Also, an owned right is always attached (we call that “assigned”) to a specific UTXO.
Bifrost is a planned server that will act as a public key-value storage for keeping (encrypted) information on client-validated data. In simple words, you can think about it as a generalization of Watchtower concept, which will do the following:
It is not the same as RGB node b/c it is a public service (while RGB is a private thing keeping your stash unencrypted).
So, Bifrost to RGB is something like Watchtowers are to LN node (but more functional).
Even taking into account the fact that RGB is based on bitcoin transaction graph (which, in turn, is based on bitcoin timechain),
RGB itself is not a 'blockchain'. It’s a form of a DAG, where you don’t have the data on a complete state of the network, ever.
From the moment you create a smart contract and transfer the state to some other party, you have neither the control over that state
(only the new state owner has it), nor the information on how that state actually evolved.
For example, as an asset issuer you will never know, who are the owners of your issued assets. When you assign the state of the asset
to some bitcoin transaction output, you don’t know which output it is, because the party that receives that data, provides you
with the information about transaction output, blinded with random data. Taking into account that you don’t know that random data
used for blinding, you can’t say which output you are paying to or transferring some rights to.
This is very different from the blockchain-based smart-contract paradigm, where you store the complete history of the blockchain.
This is why we say that RGB is a partial-state smart-contract system (the first of its kind). It is still globally consistent,
not contradicting the fact of this state partiality, due to the usage of single-use seals that enable reaching consensus on state validation.
As a user, whenever I receive some state into my ownership and even without knowing the whole state of the system, I am still able to validate:
that this state of the system was not faked, that it has been uniquely committed, that there were no double spending events (even up to genesis
of the asset issuer).
Social consensus on the client-side validation rules also makes it possible to be sure that every further owner of the asset will apply the same validation rules as I do. How? Every asset/state
validation rules are defined by Schema at genesis level, meaning that every further owner of the asset still uses the same Schema to validate the history against. Thus, here Schema is actually the means to guarantee the social consensus on the validation.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.