rgb-archive / spec

[OLD!] RGB Protocol specifications for Bitcoin-based digital assets
https://rgb-org.github.io/
148 stars 26 forks source link

Why transfer proofs needs asset id field? #72

Closed dr-orlovsky closed 5 years ago

dr-orlovsky commented 5 years ago

The spec suggests that the transaction proofs need to contain triplets for each output with a specified color of the token being transacted (i.e. asset id = hash of the serialized contract).

This is redundant, since each proof is linked to a single asset, so there is no need to provide asset id information within output fields for the proofs

dr-orlovsky commented 5 years ago

Seems like I found an answer: for some contract blueprints (like Crowdsale) there might be multiple type of assets issued under the same contract. Thus, asset id field is required. However, in this case, it is unclear from the spec how different asset ids are assigned and supported.

inaltoasinistra commented 5 years ago

The send to utxo feature enables to send different asset types to a utxo

dr-orlovsky commented 5 years ago

@giacomozucco can you pls confirm my understanding of the issue?

giacomozucco commented 5 years ago

Yes, I can confirm:

Furthermore, there are some (still very speculative) ideas to improve privacy and compactability of proves in multi-asset scenarios, by aggregating the parts of the proof which are not strictly needed to verify the absence of double-spending on one specific asset (for example the proofs about other unrelated assets) in a MMR-like structure. In general, I would say the triplets are not redundant.

dr-orlovsky commented 5 years ago

How different assets issued by under the same RGB contract should be identified? It's clearly not the hash of the contract itself (since it is constant), and there are no fields in the issuance contract to identify the issued assets

dr-orlovsky commented 5 years ago

Replaced by #85