Description
Is your feature request related to a problem? Please describe.
Today we don't have a commitment maintained by an issuer on chain that can be used to authenticate new issuance, as outlined in the BIP.
Describe the solution you'd like
Revamp and review the section of the BIP listed above.
In addition, we want to expand the scope of the chain commitment to include 3 commitemtns:
- issued
- burned
- ignore
Issued is the root of the normal issuance universe tree we maintain today.
Burned is a new root that stores any relevant burning transaction as state transition proofs.
Ignore is another new root for outputs that should be ignored, meaning if an asset being verified has the specified asset outpoint/scriptkey in it's history, then it should be ignored.
Some very early interface definitions and structs can be found here which should prove to be useful:
taproot-assets/universe/interface.go
Lines 661 to 696 in 420f246
In particular, we'll need to decide on the finer details of the "canonical issuance" scheme, which as proposed, would reuse the asset_group_key
as an on-chain taproot public key, in order to tie the off-chain asset group key to an on-chain UTXO.
With this, the total amount outstanding is: issued - burned - ignore
.
Additional context
Such a feature can be used to authenticate any supply level information, useful for transparency pages involving bridges.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status