https://tests.bitcoin.it/w/api.php?action=feedcontributions&user=Apekato&feedformat=atomBitcoin Wiki - User contributions [en]2024-03-28T18:51:20ZUser contributionsMediaWiki 1.30.0https://tests.bitcoin.it/w/index.php?title=OP_RETURN&diff=65582OP RETURN2018-07-17T00:15:41Z<p>Apekato: Undo revision 62559 by Midnightmagic (talk)</p>
<hr />
<div>'''OP_RETURN''' is a [[script]] opcode used to mark a transaction output as invalid. Since the data after OP_RETURN are irrelevant to Bitcoin payments, arbitrary data can be added into the output after an OP_RETURN. Since any outputs with OP_RETURN are provably unspendable, OP_RETURN outputs can be used to [[Proof of burn|burn]] bitcoins.<br />
<br />
Currently, the default Bitcoin client relays OP_RETURN transactions up to 80 bytes [https://github.com/bitcoin/bitcoin/search?utf8=%E2%9C%93&q=MAX_OP_RETURN_RELAY], but does not provide a way for users to create OP_RETURN transactions.<br />
<br />
== Is storing data in the blockchain acceptable? ==<br />
Many members of the Bitcoin community believe that use of OP_RETURN is irresponsible in part because Bitcoin was intended to provide a record for financial transactions, not a record for arbitrary data. Additionally, it is trivially obvious that the demand for external, massively-replicated data store is essentially infinite. Despite this, the use of OP_RETURN continues unabated: while there is no global miner consensus to stop people from embedding arbitrary data in the blockchain if they want to, OP_RETURN is somewhat more efficient in terms of [http://i.imgur.com/VAGZWBK.png data bytes stored as a fraction of blockchain space consumed]. Compared to some other ways of storing data in the blockchain, OP_RETURN has the advantage of not creating bogus UTXO entries. [https://github.com/bitcoin/bitcoin/pull/5286 Discussion on GitHub pull request]<br />
<br />
The creation of OP_RETURN outputs also destroys Bitcoins used in the outputs of OP_RETURN transactions, which contributes to future deflationary pressures.<br />
<br />
From [https://bitcoin.org/en/release/v0.9.0#opreturn-and-data-in-the-block-chain Bitcoin Core release 0.9.0]:<br />
<blockquote><br />
This change is not an endorsement of storing data in the blockchain. The OP_RETURN change creates a provably-prunable output, to avoid data storage schemes – some of which were already deployed – that were storing arbitrary data such as images as forever-unspendable TX outputs, bloating bitcoin's UTXO database.<br />
<br />
Storing arbitrary data in the blockchain is still a bad idea; it is less costly and far more efficient to store non-currency data elsewhere.<br />
</blockquote><br />
<br />
== OP_RETURN applications ==<br />
OP_RETURN is used for writing human-language messages, digital asset proof-of-ownership, and storing data. Its use has been proposed for P2P application discovery. See the "prefixes" table below.<br />
<br />
== OP_RETURN prefixes ==<br />
Often, OP_RETURN transactions include a prefix to identify which protocol they belong to. There is no standardized method of claiming OP_RETURN prefixes, and not all OP_RETURN transactions use prefixes. At the time of writing, this wiki page is probably the most complete list of OP_RETURN prefixes. Note that this table is an attempt to catalog OP_RETURN prefixes that are already in use, *not* a system for reserving OP_RETURN prefixes! Protocols with no prefix do not use a prefix in OP_RETURN transactions.<br />
<br />
{| class="wikitable"<br />
|-<br />
! Prefix !! Protocol<br />
|-<br />
| || [https://play.google.com/store/apps/details?id=a.apkt Apekato]<br />
|-<br />
| SPK || [http://coinspark.org/developers/ CoinSpark]<br />
|-<br />
| DOCPROOF || [http://www.proofofexistence.com/ Proof of Existence]<br />
|-<br />
| CryptoTests- || [http://crypto-copyright.com/ Crypto Copyright]<br />
|-<br />
| CryptoProof- || [http://crypto-copyright.com/ Crypto Copyright]<br />
|-<br />
| BS || [http://blocksignit.com/ BlockSign]<br />
|-<br />
| OA || [https://github.com/OpenAssets/open-assets-protocol/blob/master/specification.mediawiki Open Assets]<br />
|-<br />
| STAMPD## || [http://stampd.io/ stampd]<br />
|-<br />
| Factom!! || [http://factom.org/ Factom]<br />
|-<br />
| FACTOM00 || [http://factom.org/ Factom]<br />
|-<br />
| Fa || [http://factom.org/ Factom]<br />
|-<br />
| FA || [http://factom.org/ Factom]<br />
|-<br />
| tradle || [http://tradle.io/ Tradle]<br />
|-<br />
| LaPreuve || [http://www.lapreuve.net/ LaPreuve]<br />
|-<br />
| hex:5888 || [http://blog.onename.com/blockstore-bitcoin/ Blockstore]<br />
|-<br />
| hex:5808 || [http://blog.onename.com/blockstore-bitcoin/ Blockstore]<br />
|-<br />
| id || [http://blog.onename.com/blockstore-bitcoin/ Blockstore]<br />
|-<br />
| BITPROOF || [https://bitproof.io/ Bitproof]<br />
|-<br />
| S1 || [https://stampery.co/ Stampery]<br />
|-<br />
| S2 || [https://stampery.co/ Stampery]<br />
|-<br />
| S3 || [https://stampery.co/ Stampery]<br />
|-<br />
| S4 || [https://stampery.co/ Stampery]<br />
|-<br />
| S5 || [https://stampery.co/ Stampery]<br />
|-<br />
| ASCRIBE || [https://www.ascribe.io/ Ascribe]<br />
|-<br />
| ProveBit || [https://github.com/thereal1024/ProveBit ProveBit]<br />
|-<br />
| EW || [http://eternitywall.it/ Eternity Wall]<br />
|-<br />
| CC || [http://colu.co/ Colu]<br />
|-<br />
| omni || [http://www.omnilayer.org/ Omni Layer]<br />
|-<br />
| MG || [http://monegraph.com/ Monegraph]<br />
|-<br />
| RMBd || [https://app.remembr.io/ Remembr]<br />
|-<br />
| RMBe || [https://app.remembr.io/ Remembr]<br />
|-<br />
| ORIGMY || [http://originalmy.com/ OriginalMy]<br />
|-<br />
| BID || [http://bitpos.me/ Identity]<br />
|}<br />
<br />
== External resources on OP_RETURN ==<br />
=== Viewing OP_RETURN ===<br />
* [http://coinsecrets.org/ coinsecrets.org]: An OP_RETURN transaction explorer]<br />
* [http://bitcoinstrings.com/ bitcoinstrings.com]: A site showing raw strings in Bitcoin transactions<br />
<br />
=== Explaining OP_RETURN ===<br />
* [https://github.com/coinspark/python-OP_RETURN python-OP_RETURN]<br />
* [http://bitcoin.stackexchange.com/questions/29554/explanation-of-what-an-op-return-transaction-looks-like StackExchange: Explanation of what an OP_RETURN transaction looks like]<br />
* [http://www.slideshare.net/coinspark/bitcoin-2-and-opreturns-the-blockchain-as-tcpip Metadata in the Blockchain: The OP_RETURN Explosion]<br />
* [http://wlangiewicz.com/blog/2014/10/24/how-to-put-custom-messages-into-bitcoin-blockchain-op-return/ How to Put Custom Messages Into Bitcoin Blockchain - OP_RETURN]<br />
{{DISPLAYTITLE:OP_RETURN}}</div>Apekatohttps://tests.bitcoin.it/w/index.php?title=OP_RETURN&diff=65581OP RETURN2018-07-17T00:15:22Z<p>Apekato: Undo revision 62560 by Luke-jr (talk)</p>
<hr />
<div>'''OP_RETURN''' is a [[script]] opcode used to mark a transaction output as invalid. Since the data after OP_RETURN are irrelevant to Bitcoin payments, arbitrary data can be added into the output after an OP_RETURN. Since any outputs with OP_RETURN are provably unspendable, OP_RETURN outputs can be used to [[Proof of burn|burn]] bitcoins.<br />
<br />
Currently, the default Bitcoin client relays OP_RETURN transactions up to 80 bytes [https://github.com/bitcoin/bitcoin/search?utf8=%E2%9C%93&q=MAX_OP_RETURN_RELAY], but does not provide a way for users to create OP_RETURN transactions.<br />
<br />
== Is storing data in the blockchain acceptable? ==<br />
Many members of the Bitcoin community believe that use of OP_RETURN is irresponsible in part because Bitcoin was intended to provide a record for financial transactions, not a record for arbitrary data. Additionally, it is trivially obvious that the demand for external, massively-replicated data store is essentially infinite. Despite this, the use of OP_RETURN continues unabated: while there is no global miner consensus to stop people from embedding arbitrary data in the blockchain if they want to, OP_RETURN is somewhat more efficient in terms of [http://i.imgur.com/VAGZWBK.png data bytes stored as a fraction of blockchain space consumed]. Compared to some other ways of storing data in the blockchain, OP_RETURN has the advantage of not creating bogus UTXO entries. [https://github.com/bitcoin/bitcoin/pull/5286 Discussion on GitHub pull request]<br />
<br />
The creation of OP_RETURN outputs also destroys Bitcoins used in the outputs of OP_RETURN transactions, which contributes to future deflationary pressures.<br />
<br />
From [https://bitcoin.org/en/release/v0.9.0#opreturn-and-data-in-the-block-chain Bitcoin Core release 0.9.0]:<br />
<blockquote><br />
This change is not an endorsement of storing data in the blockchain. The OP_RETURN change creates a provably-prunable output, to avoid data storage schemes – some of which were already deployed – that were storing arbitrary data such as images as forever-unspendable TX outputs, bloating bitcoin's UTXO database.<br />
<br />
Storing arbitrary data in the blockchain is still a bad idea; it is less costly and far more efficient to store non-currency data elsewhere.<br />
</blockquote><br />
<br />
== OP_RETURN applications ==<br />
OP_RETURN is used for writing human-language messages, digital asset proof-of-ownership, and storing data. Its use has been proposed for P2P application discovery. See the "prefixes" table below.<br />
<br />
== OP_RETURN prefixes ==<br />
Often, OP_RETURN transactions include a prefix to identify which "protocol" they belong to. There is no standardized method of claiming OP_RETURN prefixes, and not all OP_RETURN transactions use prefixes. Protocols with no prefix do not use a prefix in OP_RETURN transactions.<br />
<br />
== External resources on OP_RETURN ==<br />
=== Viewing OP_RETURN ===<br />
* [http://coinsecrets.org/ coinsecrets.org]: An OP_RETURN transaction explorer]<br />
* [http://bitcoinstrings.com/ bitcoinstrings.com]: A site showing raw strings in Bitcoin transactions<br />
<br />
=== Explaining OP_RETURN ===<br />
* [https://github.com/coinspark/python-OP_RETURN python-OP_RETURN]<br />
* [http://bitcoin.stackexchange.com/questions/29554/explanation-of-what-an-op-return-transaction-looks-like StackExchange: Explanation of what an OP_RETURN transaction looks like]<br />
* [http://www.slideshare.net/coinspark/bitcoin-2-and-opreturns-the-blockchain-as-tcpip Metadata in the Blockchain: The OP_RETURN Explosion]<br />
* [http://wlangiewicz.com/blog/2014/10/24/how-to-put-custom-messages-into-bitcoin-blockchain-op-return/ How to Put Custom Messages Into Bitcoin Blockchain - OP_RETURN]<br />
{{DISPLAYTITLE:OP_RETURN}}</div>Apekatohttps://tests.bitcoin.it/w/index.php?title=OP_RETURN&diff=62556OP RETURN2017-05-06T15:06:07Z<p>Apekato: /* OP_RETURN prefixes */</p>
<hr />
<div>'''OP_RETURN''' is a [[script]] opcode used to mark a transaction output as invalid. Since the data after OP_RETURN are irrelevant to Bitcoin payments, arbitrary data can be added into the output after an OP_RETURN. Since any outputs with OP_RETURN are provably unspendable, OP_RETURN outputs can be used to [[Proof of burn|burn]] bitcoins.<br />
<br />
Currently, the default Bitcoin client relays OP_RETURN transactions up to 80 bytes [https://github.com/bitcoin/bitcoin/search?utf8=%E2%9C%93&q=MAX_OP_RETURN_RELAY], but does not provide a way for users to create OP_RETURN transactions.<br />
<br />
== Is storing data in the blockchain acceptable? ==<br />
Some members of the Bitcoin community believe that use of OP_RETURN violates the contract of Bitcoin, because Bitcoin was intended to provide a record for financial transactions, not a record for arbitrary data. Despite this, use of OP_RETURN may continue unabated because there is no easy way to stop people from embedding arbitrary data in the blockchain if they want to, and OP_RETURN is reasonably efficient in terms of [http://i.imgur.com/VAGZWBK.png data bytes stored as a fraction of blockchain space consumed]. Compared to some other ways of storing data in the blockchain, OP_RETURN has the advantage of not creating bogus UTXO entries. [https://github.com/bitcoin/bitcoin/pull/5286 Discussion on GitHub pull request]<br />
<br />
From [https://bitcoin.org/en/release/v0.9.0#opreturn-and-data-in-the-block-chain Bitcoin Core release 0.9.0]:<br />
<blockquote><br />
This change is not an endorsement of storing data in the blockchain. The OP_RETURN change creates a provably-prunable output, to avoid data storage schemes – some of which were already deployed – that were storing arbitrary data such as images as forever-unspendable TX outputs, bloating bitcoin's UTXO database.<br />
<br />
Storing arbitrary data in the blockchain is still a bad idea; it is less costly and far more efficient to store non-currency data elsewhere.<br />
</blockquote><br />
<br />
== OP_RETURN applications ==<br />
OP_RETURN is used for writing human-language messages, digital asset proof-of-ownership, and storing data. Its use has been proposed for P2P application discovery. See the "prefixes" table below.<br />
<br />
== OP_RETURN prefixes ==<br />
Often, OP_RETURN transactions include a prefix to identify which protocol they belong to. There is no standardized method of claiming OP_RETURN prefixes, and not all OP_RETURN transactions use prefixes. At the time of writing, this wiki page is probably the most complete list of OP_RETURN prefixes. Note that this table is an attempt to catalog OP_RETURN prefixes that are already in use, *not* a system for reserving OP_RETURN prefixes! Protocols with no prefix do not use prefix in OP_RETURN transactions.<br />
<br />
{| class="wikitable"<br />
|-<br />
! Prefix !! Protocol<br />
|-<br />
| || [https://play.google.com/store/apps/details?id=a.apkt Apekato]<br />
|-<br />
| SPK || [http://coinspark.org/developers/ CoinSpark]<br />
|-<br />
| DOCPROOF || [http://www.proofofexistence.com/ Proof of Existence]<br />
|-<br />
| CryptoTests- || [http://crypto-copyright.com/ Crypto Copyright]<br />
|-<br />
| CryptoProof- || [http://crypto-copyright.com/ Crypto Copyright]<br />
|-<br />
| BS || [http://blocksignit.com/ BlockSign]<br />
|-<br />
| OA || [https://github.com/OpenAssets/open-assets-protocol/blob/master/specification.mediawiki Open Assets]<br />
|-<br />
| STAMPD## || [http://stampd.io/ stampd]<br />
|-<br />
| Factom!! || [http://factom.org/ Factom]<br />
|-<br />
| FACTOM00 || [http://factom.org/ Factom]<br />
|-<br />
| Fa || [http://factom.org/ Factom]<br />
|-<br />
| FA || [http://factom.org/ Factom]<br />
|-<br />
| tradle || [http://tradle.io/ Tradle]<br />
|-<br />
| LaPreuve || [http://www.lapreuve.net/ LaPreuve]<br />
|-<br />
| hex:5888 || [http://blog.onename.com/blockstore-bitcoin/ Blockstore]<br />
|-<br />
| hex:5808 || [http://blog.onename.com/blockstore-bitcoin/ Blockstore]<br />
|-<br />
| id || [http://blog.onename.com/blockstore-bitcoin/ Blockstore]<br />
|-<br />
| BITPROOF || [https://bitproof.io/ Bitproof]<br />
|-<br />
| S1 || [https://stampery.co/ Stampery]<br />
|-<br />
| S2 || [https://stampery.co/ Stampery]<br />
|-<br />
| S3 || [https://stampery.co/ Stampery]<br />
|-<br />
| S4 || [https://stampery.co/ Stampery]<br />
|-<br />
| S5 || [https://stampery.co/ Stampery]<br />
|-<br />
| ASCRIBE || [https://www.ascribe.io/ Ascribe]<br />
|-<br />
| ProveBit || [https://github.com/thereal1024/ProveBit ProveBit]<br />
|-<br />
| EW || [http://eternitywall.it/ Eternity Wall]<br />
|-<br />
| CC || [http://colu.co/ Colu]<br />
|-<br />
| omni || [http://www.omnilayer.org/ Omni Layer]<br />
|-<br />
| MG || [http://monegraph.com/ Monegraph]<br />
|-<br />
| RMBd || [https://app.remembr.io/ Remembr]<br />
|-<br />
| RMBe || [https://app.remembr.io/ Remembr]<br />
|-<br />
| ORIGMY || [http://originalmy.com/ OriginalMy]<br />
|-<br />
| BID || [http://bitpos.me/ Identity]<br />
|}<br />
<br />
== External resources on OP_RETURN ==<br />
=== Viewing OP_RETURN ===<br />
* [http://coinsecrets.org/ coinsecrets.org]: An OP_RETURN transaction explorer]<br />
* [http://bitcoinstrings.com/ bitcoinstrings.com]: A site showing raw strings in Bitcoin transactions<br />
<br />
=== Explaining OP_RETURN ===<br />
* [https://github.com/coinspark/python-OP_RETURN python-OP_RETURN]<br />
* [http://bitcoin.stackexchange.com/questions/29554/explanation-of-what-an-op-return-transaction-looks-like StackExchange: Explanation of what an OP_RETURN transaction looks like]<br />
* [http://www.slideshare.net/coinspark/bitcoin-2-and-opreturns-the-blockchain-as-tcpip Metadata in the Blockchain: The OP_RETURN Explosion]<br />
* [http://wlangiewicz.com/blog/2014/10/24/how-to-put-custom-messages-into-bitcoin-blockchain-op-return/ How to Put Custom Messages Into Bitcoin Blockchain - OP_RETURN]<br />
{{DISPLAYTITLE:OP_RETURN}}</div>Apekatohttps://tests.bitcoin.it/w/index.php?title=OP_RETURN&diff=62555OP RETURN2017-05-06T14:55:15Z<p>Apekato: </p>
<hr />
<div>'''OP_RETURN''' is a [[script]] opcode used to mark a transaction output as invalid. Since the data after OP_RETURN are irrelevant to Bitcoin payments, arbitrary data can be added into the output after an OP_RETURN. Since any outputs with OP_RETURN are provably unspendable, OP_RETURN outputs can be used to [[Proof of burn|burn]] bitcoins.<br />
<br />
Currently, the default Bitcoin client relays OP_RETURN transactions up to 80 bytes [https://github.com/bitcoin/bitcoin/search?utf8=%E2%9C%93&q=MAX_OP_RETURN_RELAY], but does not provide a way for users to create OP_RETURN transactions.<br />
<br />
== Is storing data in the blockchain acceptable? ==<br />
Some members of the Bitcoin community believe that use of OP_RETURN violates the contract of Bitcoin, because Bitcoin was intended to provide a record for financial transactions, not a record for arbitrary data. Despite this, use of OP_RETURN may continue unabated because there is no easy way to stop people from embedding arbitrary data in the blockchain if they want to, and OP_RETURN is reasonably efficient in terms of [http://i.imgur.com/VAGZWBK.png data bytes stored as a fraction of blockchain space consumed]. Compared to some other ways of storing data in the blockchain, OP_RETURN has the advantage of not creating bogus UTXO entries. [https://github.com/bitcoin/bitcoin/pull/5286 Discussion on GitHub pull request]<br />
<br />
From [https://bitcoin.org/en/release/v0.9.0#opreturn-and-data-in-the-block-chain Bitcoin Core release 0.9.0]:<br />
<blockquote><br />
This change is not an endorsement of storing data in the blockchain. The OP_RETURN change creates a provably-prunable output, to avoid data storage schemes – some of which were already deployed – that were storing arbitrary data such as images as forever-unspendable TX outputs, bloating bitcoin's UTXO database.<br />
<br />
Storing arbitrary data in the blockchain is still a bad idea; it is less costly and far more efficient to store non-currency data elsewhere.<br />
</blockquote><br />
<br />
== OP_RETURN applications ==<br />
OP_RETURN is used for writing human-language messages, digital asset proof-of-ownership, and storing data. Its use has been proposed for P2P application discovery. See the "prefixes" table below.<br />
<br />
== OP_RETURN prefixes ==<br />
Often, OP_RETURN transactions include a prefix to identify which protocol they belong to. There is no standardized method of claiming OP_RETURN prefixes, and not all OP_RETURN transactions use prefixes. At the time of writing, this wiki page is probably the most complete list of OP_RETURN prefixes. Note that this table is an attempt to catalog OP_RETURN prefixes that are already in use, *not* a system for reserving OP_RETURN prefixes! Protocols with no prefix do not use prefixes in OP_RETURN transactions.<br />
<br />
{| class="wikitable"<br />
|-<br />
! Prefix !! Protocol<br />
|-<br />
| || [https://play.google.com/store/apps/details?id=a.apkt Apekato]<br />
|-<br />
| SPK || [http://coinspark.org/developers/ CoinSpark]<br />
|-<br />
| DOCPROOF || [http://www.proofofexistence.com/ Proof of Existence]<br />
|-<br />
| CryptoTests- || [http://crypto-copyright.com/ Crypto Copyright]<br />
|-<br />
| CryptoProof- || [http://crypto-copyright.com/ Crypto Copyright]<br />
|-<br />
| BS || [http://blocksignit.com/ BlockSign]<br />
|-<br />
| OA || [https://github.com/OpenAssets/open-assets-protocol/blob/master/specification.mediawiki Open Assets]<br />
|-<br />
| STAMPD## || [http://stampd.io/ stampd]<br />
|-<br />
| Factom!! || [http://factom.org/ Factom]<br />
|-<br />
| FACTOM00 || [http://factom.org/ Factom]<br />
|-<br />
| Fa || [http://factom.org/ Factom]<br />
|-<br />
| FA || [http://factom.org/ Factom]<br />
|-<br />
| tradle || [http://tradle.io/ Tradle]<br />
|-<br />
| LaPreuve || [http://www.lapreuve.net/ LaPreuve]<br />
|-<br />
| hex:5888 || [http://blog.onename.com/blockstore-bitcoin/ Blockstore]<br />
|-<br />
| hex:5808 || [http://blog.onename.com/blockstore-bitcoin/ Blockstore]<br />
|-<br />
| id || [http://blog.onename.com/blockstore-bitcoin/ Blockstore]<br />
|-<br />
| BITPROOF || [https://bitproof.io/ Bitproof]<br />
|-<br />
| S1 || [https://stampery.co/ Stampery]<br />
|-<br />
| S2 || [https://stampery.co/ Stampery]<br />
|-<br />
| S3 || [https://stampery.co/ Stampery]<br />
|-<br />
| S4 || [https://stampery.co/ Stampery]<br />
|-<br />
| S5 || [https://stampery.co/ Stampery]<br />
|-<br />
| ASCRIBE || [https://www.ascribe.io/ Ascribe]<br />
|-<br />
| ProveBit || [https://github.com/thereal1024/ProveBit ProveBit]<br />
|-<br />
| EW || [http://eternitywall.it/ Eternity Wall]<br />
|-<br />
| CC || [http://colu.co/ Colu]<br />
|-<br />
| omni || [http://www.omnilayer.org/ Omni Layer]<br />
|-<br />
| MG || [http://monegraph.com/ Monegraph]<br />
|-<br />
| RMBd || [https://app.remembr.io/ Remembr]<br />
|-<br />
| RMBe || [https://app.remembr.io/ Remembr]<br />
|-<br />
| ORIGMY || [http://originalmy.com/ OriginalMy]<br />
|-<br />
| BID || [http://bitpos.me/ Identity]<br />
|}<br />
<br />
== External resources on OP_RETURN ==<br />
=== Viewing OP_RETURN ===<br />
* [http://coinsecrets.org/ coinsecrets.org]: An OP_RETURN transaction explorer]<br />
* [http://bitcoinstrings.com/ bitcoinstrings.com]: A site showing raw strings in Bitcoin transactions<br />
<br />
=== Explaining OP_RETURN ===<br />
* [https://github.com/coinspark/python-OP_RETURN python-OP_RETURN]<br />
* [http://bitcoin.stackexchange.com/questions/29554/explanation-of-what-an-op-return-transaction-looks-like StackExchange: Explanation of what an OP_RETURN transaction looks like]<br />
* [http://www.slideshare.net/coinspark/bitcoin-2-and-opreturns-the-blockchain-as-tcpip Metadata in the Blockchain: The OP_RETURN Explosion]<br />
* [http://wlangiewicz.com/blog/2014/10/24/how-to-put-custom-messages-into-bitcoin-blockchain-op-return/ How to Put Custom Messages Into Bitcoin Blockchain - OP_RETURN]<br />
{{DISPLAYTITLE:OP_RETURN}}</div>Apekatohttps://tests.bitcoin.it/w/index.php?title=OP_RETURN&diff=62554OP RETURN2017-05-06T14:33:51Z<p>Apekato: </p>
<hr />
<div>'''OP_RETURN''' is a [[script]] opcode used to mark a transaction output as invalid. Since the data after OP_RETURN are irrelevant to Bitcoin payments, arbitrary data can be added into the output after an OP_RETURN. Since any outputs with OP_RETURN are provably unspendable, OP_RETURN outputs can be used to [[Proof of burn|burn]] bitcoins.<br />
<br />
Currently, the default Bitcoin client relays OP_RETURN transactions up to 80 bytes [https://github.com/bitcoin/bitcoin/search?utf8=%E2%9C%93&q=MAX_OP_RETURN_RELAY], but does not provide a way for users to create OP_RETURN transactions.<br />
<br />
== Is storing data in the blockchain acceptable? ==<br />
Some members of the Bitcoin community believe that use of OP_RETURN violates the contract of Bitcoin, because Bitcoin was intended to provide a record for financial transactions, not a record for arbitrary data. Despite this, use of OP_RETURN may continue unabated because there is no easy way to stop people from embedding arbitrary data in the blockchain if they want to, and OP_RETURN is reasonably efficient in terms of [http://i.imgur.com/VAGZWBK.png data bytes stored as a fraction of blockchain space consumed]. Compared to some other ways of storing data in the blockchain, OP_RETURN has the advantage of not creating bogus UTXO entries. [https://github.com/bitcoin/bitcoin/pull/5286 Discussion on GitHub pull request]<br />
<br />
From [https://bitcoin.org/en/release/v0.9.0#opreturn-and-data-in-the-block-chain Bitcoin Core release 0.9.0]:<br />
<blockquote><br />
This change is not an endorsement of storing data in the blockchain. The OP_RETURN change creates a provably-prunable output, to avoid data storage schemes – some of which were already deployed – that were storing arbitrary data such as images as forever-unspendable TX outputs, bloating bitcoin's UTXO database.<br />
<br />
Storing arbitrary data in the blockchain is still a bad idea; it is less costly and far more efficient to store non-currency data elsewhere.<br />
</blockquote><br />
<br />
== OP_RETURN applications ==<br />
OP_RETURN is used for writing human-language messages, digital asset proof-of-ownership, and storing data. Its use has been proposed for P2P application discovery. See the "prefixes" table below.<br />
<br />
== OP_RETURN prefixes ==<br />
Often, OP_RETURN transactions include a prefix to identify which protocol they belong to. There is no standardized method of claiming OP_RETURN prefixes, and not all OP_RETURN transactions use prefixes. At the time of writing, this wiki page is probably the most complete list of OP_RETURN prefixes. Note that this table is an attempt to catalog OP_RETURN prefixes that are already in use, *not* a system for reserving OP_RETURN prefixes!<br />
<br />
{| class="wikitable"<br />
|-<br />
! Prefix !! Protocol<br />
|-<br />
| || [https://play.google.com/store/apps/details?id=a.apkt Apekato]<br />
|-<br />
| SPK || [http://coinspark.org/developers/ CoinSpark]<br />
|-<br />
| DOCPROOF || [http://www.proofofexistence.com/ Proof of Existence]<br />
|-<br />
| CryptoTests- || [http://crypto-copyright.com/ Crypto Copyright]<br />
|-<br />
| CryptoProof- || [http://crypto-copyright.com/ Crypto Copyright]<br />
|-<br />
| BS || [http://blocksignit.com/ BlockSign]<br />
|-<br />
| OA || [https://github.com/OpenAssets/open-assets-protocol/blob/master/specification.mediawiki Open Assets]<br />
|-<br />
| STAMPD## || [http://stampd.io/ stampd]<br />
|-<br />
| Factom!! || [http://factom.org/ Factom]<br />
|-<br />
| FACTOM00 || [http://factom.org/ Factom]<br />
|-<br />
| Fa || [http://factom.org/ Factom]<br />
|-<br />
| FA || [http://factom.org/ Factom]<br />
|-<br />
| tradle || [http://tradle.io/ Tradle]<br />
|-<br />
| LaPreuve || [http://www.lapreuve.net/ LaPreuve]<br />
|-<br />
| hex:5888 || [http://blog.onename.com/blockstore-bitcoin/ Blockstore]<br />
|-<br />
| hex:5808 || [http://blog.onename.com/blockstore-bitcoin/ Blockstore]<br />
|-<br />
| id || [http://blog.onename.com/blockstore-bitcoin/ Blockstore]<br />
|-<br />
| BITPROOF || [https://bitproof.io/ Bitproof]<br />
|-<br />
| S1 || [https://stampery.co/ Stampery]<br />
|-<br />
| S2 || [https://stampery.co/ Stampery]<br />
|-<br />
| S3 || [https://stampery.co/ Stampery]<br />
|-<br />
| S4 || [https://stampery.co/ Stampery]<br />
|-<br />
| S5 || [https://stampery.co/ Stampery]<br />
|-<br />
| ASCRIBE || [https://www.ascribe.io/ Ascribe]<br />
|-<br />
| ProveBit || [https://github.com/thereal1024/ProveBit ProveBit]<br />
|-<br />
| EW || [http://eternitywall.it/ Eternity Wall]<br />
|-<br />
| CC || [http://colu.co/ Colu]<br />
|-<br />
| omni || [http://www.omnilayer.org/ Omni Layer]<br />
|-<br />
| MG || [http://monegraph.com/ Monegraph]<br />
|-<br />
| RMBd || [https://app.remembr.io/ Remembr]<br />
|-<br />
| RMBe || [https://app.remembr.io/ Remembr]<br />
|-<br />
| ORIGMY || [http://originalmy.com/ OriginalMy]<br />
|-<br />
| BID || [http://bitpos.me/ Identity]<br />
|}<br />
<br />
== External resources on OP_RETURN ==<br />
=== Viewing OP_RETURN ===<br />
* [http://coinsecrets.org/ coinsecrets.org]: An OP_RETURN transaction explorer]<br />
* [http://bitcoinstrings.com/ bitcoinstrings.com]: A site showing raw strings in Bitcoin transactions<br />
<br />
=== Explaining OP_RETURN ===<br />
* [https://github.com/coinspark/python-OP_RETURN python-OP_RETURN]<br />
* [http://bitcoin.stackexchange.com/questions/29554/explanation-of-what-an-op-return-transaction-looks-like StackExchange: Explanation of what an OP_RETURN transaction looks like]<br />
* [http://www.slideshare.net/coinspark/bitcoin-2-and-opreturns-the-blockchain-as-tcpip Metadata in the Blockchain: The OP_RETURN Explosion]<br />
* [http://wlangiewicz.com/blog/2014/10/24/how-to-put-custom-messages-into-bitcoin-blockchain-op-return/ How to Put Custom Messages Into Bitcoin Blockchain - OP_RETURN]<br />
{{DISPLAYTITLE:OP_RETURN}}</div>Apekatohttps://tests.bitcoin.it/w/index.php?title=OP_RETURN&diff=62553OP RETURN2017-05-06T14:32:11Z<p>Apekato: </p>
<hr />
<div>'''OP_RETURN''' is a [[script]] opcode used to mark a transaction output as invalid. Since the data after OP_RETURN are irrelevant to Bitcoin payments, arbitrary data can be added into the output after an OP_RETURN. Since any outputs with OP_RETURN are provably unspendable, OP_RETURN outputs can be used to [[Proof of burn|burn]] bitcoins.<br />
<br />
Currently, the default Bitcoin client relays OP_RETURN transactions up to 80 bytes [https://github.com/bitcoin/bitcoin/search?utf8=%E2%9C%93&q=MAX_OP_RETURN_RELAY], but does not provide a way for users to create OP_RETURN transactions.<br />
<br />
== Is storing data in the blockchain acceptable? ==<br />
Some members of the Bitcoin community believe that use of OP_RETURN violates the contract of Bitcoin, because Bitcoin was intended to provide a record for financial transactions, not a record for arbitrary data. Despite this, use of OP_RETURN may continue unabated because there is no easy way to stop people from embedding arbitrary data in the blockchain if they want to, and OP_RETURN is reasonably efficient in terms of [http://i.imgur.com/VAGZWBK.png data bytes stored as a fraction of blockchain space consumed]. Compared to some other ways of storing data in the blockchain, OP_RETURN has the advantage of not creating bogus UTXO entries. [https://github.com/bitcoin/bitcoin/pull/5286 Discussion on GitHub pull request]<br />
<br />
From [https://bitcoin.org/en/release/v0.9.0#opreturn-and-data-in-the-block-chain Bitcoin Core release 0.9.0]:<br />
<blockquote><br />
This change is not an endorsement of storing data in the blockchain. The OP_RETURN change creates a provably-prunable output, to avoid data storage schemes – some of which were already deployed – that were storing arbitrary data such as images as forever-unspendable TX outputs, bloating bitcoin's UTXO database.<br />
<br />
Storing arbitrary data in the blockchain is still a bad idea; it is less costly and far more efficient to store non-currency data elsewhere.<br />
</blockquote><br />
<br />
== OP_RETURN applications ==<br />
OP_RETURN is used for writing human-language messages, digital asset proof-of-ownership, and storing data. Its use has been proposed for P2P application discovery. See the "prefixes" table below.<br />
<br />
== OP_RETURN prefixes ==<br />
Often, OP_RETURN transactions include a prefix to identify which protocol they belong to. There is no standardized method of claiming OP_RETURN prefixes, and not all OP_RETURN transactions use prefixes. At the time of writing, this wiki page is probably the most complete list of OP_RETURN prefixes. Note that this table is an attempt to catalog OP_RETURN prefixes that are already in use, *not* a system for reserving OP_RETURN prefixes!<br />
<br />
{| class="wikitable"<br />
|-<br />
! Prefix !! Protocol<br />
|-<br />
| || [https://play.google.com/store/apps/details?id=a.apkt/ Apekato]<br />
|-<br />
| SPK || [http://coinspark.org/developers/ CoinSpark]<br />
|-<br />
| DOCPROOF || [http://www.proofofexistence.com/ Proof of Existence]<br />
|-<br />
| CryptoTests- || [http://crypto-copyright.com/ Crypto Copyright]<br />
|-<br />
| CryptoProof- || [http://crypto-copyright.com/ Crypto Copyright]<br />
|-<br />
| BS || [http://blocksignit.com/ BlockSign]<br />
|-<br />
| OA || [https://github.com/OpenAssets/open-assets-protocol/blob/master/specification.mediawiki Open Assets]<br />
|-<br />
| STAMPD## || [http://stampd.io/ stampd]<br />
|-<br />
| Factom!! || [http://factom.org/ Factom]<br />
|-<br />
| FACTOM00 || [http://factom.org/ Factom]<br />
|-<br />
| Fa || [http://factom.org/ Factom]<br />
|-<br />
| FA || [http://factom.org/ Factom]<br />
|-<br />
| tradle || [http://tradle.io/ Tradle]<br />
|-<br />
| LaPreuve || [http://www.lapreuve.net/ LaPreuve]<br />
|-<br />
| hex:5888 || [http://blog.onename.com/blockstore-bitcoin/ Blockstore]<br />
|-<br />
| hex:5808 || [http://blog.onename.com/blockstore-bitcoin/ Blockstore]<br />
|-<br />
| id || [http://blog.onename.com/blockstore-bitcoin/ Blockstore]<br />
|-<br />
| BITPROOF || [https://bitproof.io/ Bitproof]<br />
|-<br />
| S1 || [https://stampery.co/ Stampery]<br />
|-<br />
| S2 || [https://stampery.co/ Stampery]<br />
|-<br />
| S3 || [https://stampery.co/ Stampery]<br />
|-<br />
| S4 || [https://stampery.co/ Stampery]<br />
|-<br />
| S5 || [https://stampery.co/ Stampery]<br />
|-<br />
| ASCRIBE || [https://www.ascribe.io/ Ascribe]<br />
|-<br />
| ProveBit || [https://github.com/thereal1024/ProveBit ProveBit]<br />
|-<br />
| EW || [http://eternitywall.it/ Eternity Wall]<br />
|-<br />
| CC || [http://colu.co/ Colu]<br />
|-<br />
| omni || [http://www.omnilayer.org/ Omni Layer]<br />
|-<br />
| MG || [http://monegraph.com/ Monegraph]<br />
|-<br />
| RMBd || [https://app.remembr.io/ Remembr]<br />
|-<br />
| RMBe || [https://app.remembr.io/ Remembr]<br />
|-<br />
| ORIGMY || [http://originalmy.com/ OriginalMy]<br />
|-<br />
| BID || [http://bitpos.me/ Identity]<br />
|}<br />
<br />
== External resources on OP_RETURN ==<br />
=== Viewing OP_RETURN ===<br />
* [http://coinsecrets.org/ coinsecrets.org]: An OP_RETURN transaction explorer]<br />
* [http://bitcoinstrings.com/ bitcoinstrings.com]: A site showing raw strings in Bitcoin transactions<br />
<br />
=== Explaining OP_RETURN ===<br />
* [https://github.com/coinspark/python-OP_RETURN python-OP_RETURN]<br />
* [http://bitcoin.stackexchange.com/questions/29554/explanation-of-what-an-op-return-transaction-looks-like StackExchange: Explanation of what an OP_RETURN transaction looks like]<br />
* [http://www.slideshare.net/coinspark/bitcoin-2-and-opreturns-the-blockchain-as-tcpip Metadata in the Blockchain: The OP_RETURN Explosion]<br />
* [http://wlangiewicz.com/blog/2014/10/24/how-to-put-custom-messages-into-bitcoin-blockchain-op-return/ How to Put Custom Messages Into Bitcoin Blockchain - OP_RETURN]<br />
{{DISPLAYTITLE:OP_RETURN}}</div>Apekato