BRC-0099, BRC-0046, and BRC-0001 Comments on creating transactions and managing UTXOs and locking scripts. #100
KarlTheProgrammer
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
BRC-0001
Some actions, like exchanging assets, require inputs from other parties. I think a description at a higher level and a partial transaction, encoded with Bitcoin P2P network encoding is the best option. Any context should be at a higher level. There will be payment requests with just outputs, requests to pay with inputs and maybe change outputs, then exchange requests with inputs sending assets and outputs receiving other assets. This should be all the information needed to complete the transaction so long as the wallet has a module that understands all of the protocols involved. We already have all three of these actions supported in the Tokenized platform and externally via the negotiation paymail protocol and have the ability to do that over peer channels too.
BRC-0046 and BRC-0099
I agree that we need to tag outputs (UTXOs) with a "basket". I recently started calling it "purpose". Currently within the Tokenized platform we link a balance ID directly to the UTXO and have a tag on the locking script for administrative actions. I figure for a more modular wallet for Tokenized the purpose for a UTXO that is used to authorize the transfer of a specific instrument (the locking script holds a Tokenized balance) can be tagged with a URL value like "Tokenized://<instrument_id>". And for UTXOs that are used to authorize administrative actions on Tokenized contracts can be something like "Tokenized://<contract_address>". Then when the Tokenized module wants to perform a specific action it requests UTXOS with the specified purpose. Otherwise those UTXOs are not given out.
It might also need to be able to request UTXOs for a specific locking script. And likely even create new UTXOs with a specific locking script. As an example, in Tokenized, and I would guess other systems in the future if not already, locking scripts are given special meaning rather than UTXOs. Any UTXO that has the specified locking script can be used for the specific purpose. So for example if the Tokenized module knows a specific locking script has a balance of a token and it wants to transfer some of that balance then it will request a UTXO for that specific locking script. To be clear most wallets will have several locking scripts holding balances of the same instrument/asset and for privacy they won't be re-used under normal circumstances.
Beta Was this translation helpful? Give feedback.
All reactions