Bitcoin’s role as a data repository is often a topic of debate for many in the space. In the past, Bitcoin community members have argued the benefits of allowing arbitrary data unassociated with bitcoin transactions to be embedded into Bitcoin’s blockchain.
On one side of the debate, we have those that claim that as long as embedded data is paid for with transaction fees, any data should be accepted into the blockchain. On the other side, we have the purists who believe Bitcoin’s blockchain should only contain data necessary to validate bitcoin transactions and nothing else. Their argument stems from concerns of blockchain bloat. That is to say, because each node on the Bitcoin blockchain has to maintain and reference unspent transaction outputs (UTXOs) sets, excess data produced by these arbitrary data points would create upward pressure on the size of the blockchain — increasing the rate at which it grows.¹
In reaction to the infighting, on October 22, 2013, Bitcoin Core developers merged pull request #2738 to accept OP_RETURN as a valid transaction type, providing users with 80 bytes of space for embedding arbitrary data. OP_RETURN enables users to mark transaction outputs as unspendable, removing these outputs from the UTXO set, while keeping their data on the blockchain. This allows users to verify a data point without forcing nodes the maintain that data point.
A few months later after the activation of OP_RETURN, pull request #3737 was merged to reduce the OP_RETURN byte size to 40 bytes for fear of it being abused. On February 03, 2015, the OP_RETURN byte size was changed back to 80 bytes on pull request #5286, after developers confirmed that OP_RETURN was relatively safe.
The activation of OP_RETURN led to creative uses on Bitcoin. Businesses and users can now insert a variety of information, from simple messages to notarized documents, onto Bitcoin’s blockchain. For example, this transaction inserted a hex number (4d656c6f6e732e) that, when converted into text, produces the following message: “Melons.”
Businesses also leveraged OP_RETURN to offer notary, messaging, and security services. These businesses included Proof of Existence, CoinSpark, and the most recent company facing a new wave of criticisms, VeriBlock.
VeriBlock is a startup that leverages OP_RETURN and Bitcoin’s blockchain to secure alternative blockchain networks. According to its whitepaper, VeriBlock’s Proof-of-Proof (PoP) consensus protocol “aims to enable a security inheriting blockchain to inherit the complete proof-of-work security of a security providing blockchain.” Bitcoin is the security providing blockchain that VeriBlock is starting with.
The PoP protocol works as follows:
- A PoP miner fetches the most recent data blockchain state data from a security inheriting blockchain, periodically.
- The PoP miner publishes this blockchain state data onto a security providing blockchain as an OP_RETURN transaction, along with an identifier proving that they were the ones that published this data.
- The PoP miner waits for the transaction to be included in a security providing blockchain block.
- The PoP miner takes the identifier (proof) they previously added and submits it back to the security providing blockchain to collect their fees.
This process enables a security inheriting blockchain to reference a specific event on a security providing blockchain. The ability to reference data on a highly secure blockchain protects a less secure blockchain from potential attacks such as a block reorganization attack, which could potentially reverse transactions on a blockchain. In the event of an attack, the security inheriting blockchain could call on the data they’ve embedded into a security providing blockchain and republish this data on their network.
The new OP_RETURN debates started from Jameson Lopp’s tweet on January 5. According to Lopp, who is CTO of crypto custody provider Casa, VeriBlock was identified as the protocol behind the highest volume of OP_RETURN outputs. Data from opreturn.org showed that in December 2017, VeriBlock posted 784k OP_RETURN transactions and according to Lopp, they are on track to post 1.5 million transactions in January 2018.
Running the numbers, we find that VeriBlock could potentially create 23% of all bitcoin transactions in January: 1,500,000 transactions / (1,500 average transactions per block * 144 average blocks per day * 30 days per month).²
The percentage of VeriBlock’s contribution in such a short-time frame reignited the OP_RETURN spam debate. Once again members of the Bitcoin community took different sides of the debate. Blockstream developer Riccardo Casatta tweeted that “if it pays the fee it’s not spam.” Casatta, however, questioned VeriBlock’s move to include more than one transaction per block, when their Proof of Proof protocol would have worked fine with one transaction per block. In reply to Casatta’s comment, Bitcoin core developer Luke Dashjr argued that just because someone pays a fee does not mean it is not spam. Dashjr compared OP_RETURN users to email spammers paying for bandwidth to spam a person’s email inbox.
Deciding whether VeriBlock is spamming, however, is like trying to figure out whether the letter of the law or the spirit of the law is the superior interpretation for legislative statutes — it all depends on who you ask. What we can explore, however, is VeriBlock’s status moving forward. VeriBlock’s PoP protocol is inherently tied to the transaction fee of Bitcoin. If the company continues to increase the number of transactions it creates using OP_RETURN and filling up Bitcoin’s limited block space, the market will bid up the price of transaction fees to the point where it could become uneconomical for VeriBlock to continue to increase its transactions
² While there are more rigorous ways of calculating this percentage, we believe this provides a sufficiently accurate representation of VeriBlock’s contribution. Data from “transactions per block” is provided by blockchain.com. We took a one-year rolling average of bitcoin transactions per block for our calculation.