LNP-BP / LNPBPs

LNP/BP standards for bitcoin layer 2 & 3 protocols
https://standards.lnp-bp.org
202 stars 39 forks source link

RGB22: Decentralized identity #139

Closed dr-orlovsky closed 1 year ago

dr-orlovsky commented 1 year ago

Also, I think it'd also work very well with a use-case we want to support at DIBA, for artist profiles that can be associated with RGB21. Can you think of a good way to associate an RGB21 NFT with an RGB22 DID?

I think the association has to be done outside of RGB -- by providing a signature over NFT with an identity key. Wallets which support both RGB21 and RGB22 than can lookup the key among known RGB22 identities and associate NFT with that artist.

For signing RGB contracts I am thinking about adding signature to Contract type of consignment in RGB stdlib. It won't be necessary RGB22 signature, but it can be any signature (including PGP based ones).

Also, just for clarity, is there a way public contract data can be revealed

I have no idea what you call "public contract data", so can't answer :)

cryptoquick commented 1 year ago

Also, I think it'd also work very well with a use-case we want to support at DIBA, for artist profiles that can be associated with RGB21. Can you think of a good way to associate an RGB21 NFT with an RGB22 DID?

I think the association has to be done outside of RGB -- by providing a signature over NFT with an identity key. Wallets which support both RGB21 and RGB22 than can lookup the key among known RGB22 identities and associate NFT with that artist.

For signing RGB contracts I am thinking about adding signature to Contract type of consignment in RGB stdlib. It won't be necessary RGB22 signature, but it can be any signature (including PGP based ones).

Sure, so a consignment could be signed by the same key published in an RGB22 DID and the signature provided alongside the consignment? Would this be signing a hash of the consignment or an id pertinent to the contents? Would this be done for transfer consignments in addition to contract consignments?

Also, just for clarity, is there a way public contract data can be revealed

I have no idea what you call "public contract data", so can't answer :)

This would be data needed to prove the veracity of the identity, such as public keys and signatures, without sharing on-chain outputs or blinding factors. Is such a thing possible?

dr-orlovsky commented 1 year ago

Sure, so a consignment could be signed by the same key published in an RGB22 DID and the signature provided alongside the consignment?

Yes

Would this be signing a hash of the consignment or an id pertinent to the contents? Would this be done for transfer consignments in addition to contract consignments?

The signatures are only needed for genesis, by the genesis hash (which is the contract id). It may be present in both contract and transfer consignments.

This would be data needed to prove the veracity of the identity, such as public keys and signatures, without sharing on-chain outputs or blinding factors. Is such a thing possible?

I am still struggling to understand the question.

If you are asking would RGB22-based identities expose revocation seals such that anybody can ensure that the key was not revoked, the answer is:

this will work the same way as for any other RGB contract, including fungible tokens. If somebody will provide a consignment hiding single-use-seals involved in validating certain things, this consignment would fail to validate. It will be up to the published to ensure that all required information is present in the revealed (and not concealed) form, otherwise nobody will accept it.

cryptoquick commented 1 year ago

That makes sense, thank you.