HomeBitcoinThe Bitcoin Softfork That Tried to Police “Junk Data” — And Why...

The Bitcoin Softfork That Tried to Police “Junk Data” — And Why It’s Already Failing

Bitcoin Magazine

The Bitcoin Softfork That Tried to Police “Junk Data” — And Why It’s Already Failing

This is a guest post by Brandon Black. Opinions expressed are entirely their own and do not necessarily reflect those of BTC Inc. or Bitcoin Magazine.

Within the tiny internet bubble of Bitcoin X (formerly Bitcoin Twitter or Crypto Twitter), there has been a lot of noise in the past year about @dathon_ohm’s proposal for a Reduced Data Temporary Softfork, otherwise known as BIP110. Underlying this proposal is the idea that certain Bitcoin transactions have been violating the principles of the network by including in their locking or unlocking scripts data that can be interpreted in one or more additional ways besides their plain Bitcoin script interpretation. According to BIP110’s supporters, reducing the use of these transactions is sufficient justification for the most confiscatory Bitcoin softfork to date, on a deployment timeline that is dramatically faster than the two most recent softforks, and with a lower activation readiness threshold.

Bitcoin is an open-access, censorship-resistant ledger to which anyone can write entries if they are willing to pay fees sufficient to convince block template creators and miners to include their transaction. The fundamental value of Bitcoin vs. all other ledger systems is the aforementioned open access. Without it, Bitcoin’s ledger has no more value than the bowling alley scoreboard. Because of this fundamentally open access, we all know that Bitcoin will be used by those we hate. Much like the principle of free speech, which is meaningless unless it applies to speech that we don’t like, Bitcoin’s open access would be meaningless if it only applied to transactions of which you or I approve. I will therefore assume that we do not want to be in the business of inspecting how other people structure their ledger entries any more than we want them inspecting our entries.

BIP110 proponents might say, “Sure, but that only applies to monetary entries! What about these non-monetary entries?”, but the reality is that there simply is no such distinction. Every transaction made on Bitcoin is made by satisfying the conditions of some locking script to make an entry in the ledger, which consumes input coins and creates output coins. The fact that one transaction’s scripts are larger or smaller than another is of no relevance to me as a Bitcoin node operator or user. First, I simply do not look at other people’s transactions. They’re no more my business than other people’s orders at the local café. Second, my node makes no such distinction. Transactions are either valid or invalid, and they are either costly to validate (like a large multisig) or cheap to validate (like one of these Ordinals or OP_RETURNs).

One could argue that Bitcoin, like gold, would be a superior monetary asset if it could not also be looked at in other ways. Imagine if gold could not be used in industry or jewelry! It might be true that that would make it better as money. But of course, the very same properties that make gold good money also make it desirable in jewelry and industry. The same applies to Bitcoin. The very fact that Bitcoin allows anyone to make an entry if they are willing to pay the fees means that we must give up the idea that we can control how they will look at that entry. No matter what restrictions we put on the structure of the entries, it will always be possible to make entries that can be interpreted in other ways by non-Bitcoin software. So, both with Bitcoin and with gold, we accept that other use is inevitable. In gold, this leads to distortions in the market when non-monetary demand increases or decreases. In Bitcoin, this can lead to periods of higher transaction fees when there’s greater demand for its limited blockspace.

In Bitcoin, we have two advantages that gold does not have. First, making Bitcoin transactions that can be viewed in alternative ways does not affect the market for Bitcoin itself. Unlike gold, very little Bitcoin is allocated to these uses. Second, in Bitcoin, we have a protocol that is already designed to minimize cost to the validation network from such other interpretations. Bitcoin limits both the size of blocks and the number of signatures that can be used in transactions. These are the greatest costs to validating nodes, and the protocol limits on them have been in place since the very early days of Bitcoin, precisely to prevent abuse by any high-frequency or high-volume use of the ledger. These limits have already spurred innovations such as the Lightning Network, Ark, Spark, Cashu, and many more. Even the boom in demand for blockspace caused by these “non-monetary” ledger entries (yes, that does sound ridiculous) has increased the use of these scaling solutions, which require fewer entries on the main ledger.

With the justification for BIP110 thus explored, and hopefully shown to be woefully lacking, let’s look at the proposed change itself. BIP110 restricts the size of locking scripts, restricts the number of alternative scripts in taproot, makes the taproot annex invalid, removes all upgradable witness and tapscript versions, removes all tapscript upgradable opcodes, and makes OP_IF and OP_NOTIF invalid in tapscript. All of these restrictions apply to UTXOs created during the 52414 blocks (approximately 1 year) after its activation. BIP110 also proposes a miner readiness signaling threshold of 55% instead of the threshold used in prior miner signaled softforks of 90% or more. If 55% of blocks do not signal readiness before block 961632, nodes enforcing BIP110 will treat blocks not signaling readiness as invalid to force the change to lock in by block 963648 and activate by block 965664.

BIP110 would be the most sweeping restriction of Bitcoin script since Satoshi’s well-known deactivation of many opcodes in response to a critical vulnerability (CVE-2010-5137) back in 2010. It proposes miner signaled activation with an unprecedentedly low threshold and node-forced activation after less than 9 months from the date the BIP was assigned a number. It does all of this because (as discussed above) other people are viewing certain ledger entries in ways which the BIP110 supporters do not approve of. Worse yet, the folks who use such disapproved ledger entries have already updated their software to continue making such entries even if BIP110 were to become Bitcoin’s consensus rule set. This was, of course, a predictable outcome (many of us explicitly predicted it) because it is fundamentally impossible to restrict how other people use external software to analyze entries on an open-access public ledger.

In summary, BIP110 is a proposal to do something impossible (limit how users of an open access ledger use that ledger) in response to a problem that is already fully addressed through Bitcoin’s existing protocol limits. It proposes to do this impossible thing on an irresponsibly short activation timeline, with incredibly limited code review, and regardless of whether the change reaches any type of ecosystem consensus. Fortunately, Bitcoin is not such a delicate flower of a system that such a foolhardy attempt at modifying it will succeed. Not only have miners soundly rejected BIP110, but other voices throughout the developer, investor, influencer, and corporate landscape have spoken out against the changes.  In August, this particular attack against Bitcoin’s consensus rules will have made Bitcoin stronger through its failure, and the network will continue its steady rhythm of tick-tock, next block.

This post The Bitcoin Softfork That Tried to Police “Junk Data” — And Why It’s Already Failing first appeared on Bitcoin Magazine and is written by Brandon Black.

RELATED ARTICLES
- Advertisment -
Google search engine

Most Popular

Recent Comments