You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Single-use seal is a generic concept preventing double-definition or double-action (like double-spend), originally proposed by Peter Todd [1]. This specification defines how single-use seals can be constructed on top of bitcoin blockchain.
Background
Single use seal is a non-mathematical commitment primitive that allows to pick the fact after the commitment.
Single use seal (or seal) is a replicative state (or consensus?) primitive that allows to define a option for a future commitment (lazy commitment) to some value (that even can be not known now), such as:
the actual commitment to a message can happen once and only once;
the event of the promise fulfillment (i.e. the actual commitment being made) can be proved to independent parties.
Single-use seal may be used to define some value (or, with usage of cryptographic digests, message) to be defined in the future only once, and prevents an inconsistent view on a historical state. A party which would like to prove the event of the commitment must present a witness of the seal being closed over the message.
[implementation-specific]
The parties sharing the same single-use seal before it's creation must agree on a set of the global parameters, namely:
deterministic single location of the seal in that medium
cryptographic commitment function
deterministic definition of the witness for the seal closing
Specification
Single-use seal is defined as a tuple of parameters S_opened=(txid, vout, commitment_scheme, deterministic_commitment_txout_locator). When the seal is closed, it is closed over a value V (which may be just an integer value or a value of cryptographic hash function), so `S_closed=(S_opened, V).
structSeal{txid:Txid,vout:u16,}traitSealer<V>{fnclose(&self,value:V,witness:&mutTransaction);fnverify(&self,value:V,bitcoin_blockchain:BitcoinFullNodeAPI) -> Result<V,Error>;// Used by the close function internally:fncommitment_applicator(&self,commiting_txout:&mutTxOut);fncommitment_locator(&self,witness:&Transaction) -> &TxOut;}
Single-use seal primitive over Bitcoin blockchain
Motivation
Single-use seal is a generic concept preventing double-definition or double-action (like double-spend), originally proposed by Peter Todd [1]. This specification defines how single-use seals can be constructed on top of bitcoin blockchain.
Background
Single use seal is a non-mathematical commitment primitive that allows to pick the fact after the commitment.
Single use seal (or seal) is a replicative state (or consensus?) primitive that allows to define a option for a future commitment (lazy commitment) to some value (that even can be not known now), such as:
Single-use seal may be used to define some value (or, with usage of cryptographic digests, message) to be defined in the future only once, and prevents an inconsistent view on a historical state. A party which would like to prove the event of the commitment must present a witness of the seal being closed over the message.
[implementation-specific]
The parties sharing the same single-use seal before it's creation must agree on a set of the global parameters, namely:
Specification
Single-use seal is defined as a tuple of parameters
S_opened=(txid, vout, commitment_scheme, deterministic_commitment_txout_locator)
. When the seal is closed, it is closed over a valueV
(which may be just an integer value or a value of cryptographic hash function), so `S_closed=(S_opened, V).References
1: https://petertodd.org/2017/scalable-single-use-seal-asset-transfer
The text was updated successfully, but these errors were encountered: