Difference between revisions of "OP RETURN"
Line 2: | Line 2: | ||
===OP_RETURN Functionality=== | ===OP_RETURN Functionality=== | ||
− | OP_RETURN terminates the script leaving the stack as-is and letting the result on top of the stack determine the success or failure of the script. OP_RETURN can be used in combination with [[Opcodes_used_in_Bitcoin_Script#Flow_control|flow control]] opcodes to implement branching, conditional logic in scripts. | + | OP_RETURN terminates the script leaving the stack as-is and letting the result on top of the stack determine the success or failure of the script. Note that if the top stack is non-empty and non-zero (zero including a string of zeros, of zero bytes), then it is considered as successful. Otherwise, it is considered as fail. OP_RETURN can be used in combination with [[Opcodes_used_in_Bitcoin_Script#Flow_control|flow control]] opcodes to implement branching, conditional logic in scripts. |
===Example=== | ===Example=== |
Revision as of 10:50, 7 February 2020
OP_RETURN is a script opcode used to terminate the script and return the top value on the stack. This opcode is analogous to the return function in programming languages. The OP_RETURN opcode has a controversial history in Bitcoin and as a result has been primarily used as a means of storing data on the blockchain.
OP_RETURN Functionality
OP_RETURN terminates the script leaving the stack as-is and letting the result on top of the stack determine the success or failure of the script. Note that if the top stack is non-empty and non-zero (zero including a string of zeros, of zero bytes), then it is considered as successful. Otherwise, it is considered as fail. OP_RETURN can be used in combination with flow control opcodes to implement branching, conditional logic in scripts.
Example
The below script is a metanet node that attaches the Metanet data to a UTXO with funds. This can be used to ensure that metanet nodes are left in the UTXO set
𝑇𝑥𝐼𝐷𝑛𝑜𝑑𝑒 | |
---|---|
Inputs | Outputs |
<sigmetaParent> <pubKeymetaParent> <sigscript> <pubKeyscript> | DUP HASH160 <pkhscript> EQUALVERIFY CHECKSIG RETURN <meta> <pkmetaNode> <txidmetaParent> |