Difference between revisions of "False Return"
Line 1: | Line 1: | ||
− | False Return outputs are [[VOUT|transaction outpoints]] which begin with the script "OP_FALSE OP_RETURN". This script always returns a false when evaluated making the output unspendable and locking any funds attached to that endpoint. False Return outputs can be used to store arbitrary information such as | + | False Return outputs are [[VOUT|transaction outpoints]] which begin with the script "OP_FALSE OP_RETURN". This script always returns a false when evaluated making the output unspendable and locking any funds attached to that endpoint. When attempting to spend the False Return outpoint, OP_FALSE will push "false" to the stack, after which OP_RETURN is executed. OP_RETURN terminates the execution immediately. The result of the execution is then read from the top of the stack. In this case, "false" is read, therefore the script fails regardless what else is on the stack. |
+ | |||
+ | False Return outputs can be used to store arbitrary information such as records, tokens, files and more. False Return outputs are commonly used as vehicles to carry data for [[Application layer protocol|application layer protocols]] inside Bitcoin transactions. | ||
==OP_RETURN Outputs== | ==OP_RETURN Outputs== |
Revision as of 10:13, 21 January 2020
False Return outputs are transaction outpoints which begin with the script "OP_FALSE OP_RETURN". This script always returns a false when evaluated making the output unspendable and locking any funds attached to that endpoint. When attempting to spend the False Return outpoint, OP_FALSE will push "false" to the stack, after which OP_RETURN is executed. OP_RETURN terminates the execution immediately. The result of the execution is then read from the top of the stack. In this case, "false" is read, therefore the script fails regardless what else is on the stack.
False Return outputs can be used to store arbitrary information such as records, tokens, files and more. False Return outputs are commonly used as vehicles to carry data for application layer protocols inside Bitcoin transactions.
OP_RETURN Outputs
Due to changes made by Satoshi in 2010 to prevent people exploiting a bug in the Bitcoin software, the OP_RETURN opcode was changed to force scripts to terminate in failure. This led to the widespread use of so-called 'Op_Return outputs' which start with an OP_RETURN instruction and then store data for application layer protocols. Bitcoin Core rules stipulated that to use an OP_RETURN instruction in an output, it had to be both the only opcode in the output and the first opcode in the output. The Quasar Update in early 2019, removed these requirements meaning that transactions requiring attached data items such as tokens and other information no longer needed to be stored in these outputs. Many second layer protocols were build using the OP_RETURN framework prior to being migrated to False Return outputs.