OIP-002: Deferred Disclosure Inscription #2193
hosir-web3
started this conversation in
Ideas
Replies: 1 comment
-
An OIP of 404 reveal 😬 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
OIP: 002
Title: Deferred Disclosure Inscription
Author: Noah Ho
Discussions-To: [email protected]
Status: Draft
Type: Standards Track
Created: 2023-06-16
Background
Inscriptions are a way to inscribe sats with arbitrary content, creating bitcoin-native digital artifacts, more commonly known as NFTs. These inscriptions can then be transferred using bitcoin transactions, sent to bitcoin addresses, and held in bitcoin UTXOs. The content of an inscription is serialized using data pushes within unexecuted conditionals, called "envelopes".
Inscriptions are made using a two-phase commit/reveal procedure. First, in the commit transaction, a taproot output committing to a script containing the inscription content is created. Second, in the reveal transaction, the output created by the commit transaction is spent, revealing the inscription content on-chain. The inscription content is contained within the input of a reveal transaction, and the inscription is made on the first sat of its input.
Motivation
This proposal arises due to the current method of inscribing inscriptions using the Ordinal wallet, which sends two transactions simultaneously. Once these transactions are packaged together, the inscription is immediately made public. However, there are situations where it might be beneficial to delay the reveal of the inscription, such as in the case of NFT contracts. For example, an NFT contract deployer could submit an inscription in advance to display each NFT ID's corresponding properties or image links. During the minting phase of the NFT, IDs are automatically obtained through the mint order. Finally, the NFT project deployer can reveal the inscription that has the corresponding relationship, making the reveal .Achieving such an NFT issuance method would require further standardization. The prerequisite for this is the ability to submit inscriptions first and reveal them later. Moreover, this approach could have numerous potential applications where there is a need to delay the reveal of inscription information.
Proposal
I propose an enhancement allowing inscriptions to be written initially and disclosed at a later point. This could be implemented by first sending an inscription transaction, storing the inscription in a UTXO. The inscription stored in the UTXO belongs to its owner. When the owner wishes to disclose this inscription, they can do so by sending the UTXO to themselves, making the inscription content public and known across the network.
To implement this, we could modify the current method of creating inscriptions in the Ordinal wallet. Currently, the command
ord wallet inscribe --fee-rate FEE_RATE FILE
is used to inscribe information from a specified file onto a specific sat. This process includes a transaction commitment that contains an inscription content tapscript and a reveal transaction that consumes from this tapscript, revealing the content on-chain. However, this method reveals the information to the entire network as soon as it is packaged.An alternative approach could involve splitting this process into two separate commands. The command
ord wallet commit --fee-rate FEE_RATE FILE
could be used to inscribe information from a specified file onto a specific sat but without revealing the inscription information. This command could also return the UTXO associated with the inscription. Then, when the commandord wallet reveal --fee-rate FEE_RATE UTXO
is input, the information could be revealed. This would provide more control over when the inscription content is revealed.Beta Was this translation helpful? Give feedback.
All reactions