Taproot does not enable Ordinals/glyphs etc ❌
Recently on Twitter, I often see this statement: Taproot has enabled functions such as Ordinals/Inscriptions. However, this view is not only wrong but can have extremely negative consequences. Many people therefore want to further solidify Bitcoin (prevent it from changing) and refer to Ordinals as "spamming", which I think will lead to extremely bad consequences.
In short, we should focus on how to improve the performance of Bitcoin through contract technology.
But to understand this properly, we need to dig into the details behind it.
Arbitrary data has always been possible in Bitcoin
What many people don't understand is that systems like Bitcoin are fundamentally designed for data storage, albeit primarily for monetary data. Bitcoin has been designed from the ground up to allow arbitrary data to be embedded in the blockchain, either through methods like OP_RETURN (a good way to store arbitrary data because it can be easily pruned) or in modified public keys (a bad way because it cannot be pruned).
For example:
Satoshi Nakamoto embedded a news headline in the coinbase of the genesis block (https://mempool.space/tx/4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b)
In 2011, Luke Dash Jr. embedded biblical text and prayers in the coinbase (https://bitcointalk.org/index.php?topic=38007.0)
In 2013, someone added the entire Bitcoin whitepaper to the UTXO set (https://bitcoin.stackexchange.com/questions/35959/how-is-the-whitepaper-decoded-from-the-blockchain-tx-with-1000x-m-of-n-multisi)
All of these events occurred before SegWit and Taproot, and there are many similar examples.
But doesn't Taproot enable this feature?
Unfortunately, there is a common misconception that Taproot enables this type of data storage, thereby opening the door to “spam” by Ordinals. In reality, arbitrary data storage has always been possible on Bitcoin, it just became more economical to do so since the introduction of SegWit in 2017.
SegWit is a major upgrade and bug fix for Bitcoin that enables the Lightning Network to be built, includes 3MB of "witness" data in each block, and provides a data price reduction incentive to encourage the consumption of UTXO (making it pruneable). For more information on SegWit, see @River's article:
https://river.com/learn/what-is-segwit/
This incentivized part of a transaction (the "witness" data) is meant to be used for things like Bitcoin Script, but it can be used to store any data if it's done the "right" way. Specifically, Ordinals store data in an "envelope" between two opcodes so that the data can be used as witness data and get a discount. This storage method existed before SegWit, but now it's cheaper than before.
While this was not the original intention of SegWit, it highlights a simple fact: if someone wants to store arbitrary data in the blockchain, they will find a way.
Does this mean SegWit is bad?
If your first reaction is to oppose any change to Bitcoin, remember — without the SegWit soft fork, we would not have the Lightning Network, there would be no discounts for consolidating UTXOs, and instead, users would be incentivized to create more non-scalable UTXOs because it is cheaper to create UTXOs without SegWit than to spend them.
Additionally, storing Ordinals in witness data allows those running nodes to easily tailor this data, unlike methods that embed arbitrary data on-chain using public key tweaks or other means. This means that the actual impact of Ordinals on those running nodes is greatly reduced compared to other arbitrary data storage methods.
Without SegWit, Ordinals will all use the UTXO set
If we had never included the SegWit soft fork in Bitcoin, the Ordinals mania could still have occurred, with far worse outcomes for the blockchain. In this alternate reality, Ordinals (and all similar NFTs) could have been burned directly into the UTXO set, similar to how stamps are done today.
While this is more expensive for the people who create these NFTs, it also means that people running Bitcoin nodes cannot prune the data. Bitcoin relies on nodes being able to retain the entire UTXO set in order to correctly verify transactions and prevent double spending, and any data in the UTXO set must be retained forever.
This will be a significant burden on people running Bitcoin nodes, with more negative impacts than Ordinals in SegWit witness data.
So what should we do?
The solution to reducing the cost of using Bitcoin does not lie in censoring Ordinals (which is technically impossible, by the way), but in building effective solutions for Bitcoin’s long-term scaling. Ordinals highlights what most of us expect to happen: base layer fees will become prohibitively high, which is necessary for Bitcoin’s long-term security.
In order for regular people to be able to use Bitcoin, we need strong scaling solutions, like second layer networks. Unfortunately, the Lightning Network in its current form is not the ultimate solution. The Lightning Network relies on each channel owner (i.e. user in a non-custodial manner) being able to settle on-chain to resolve disputes, which is not economically feasible in a realistic fee environment.
The solution? Contract technology.
Contracts are an important improvement to Bitcoin that has been a long-in-progress project that is finally getting the attention it deserves in the space. Not only do contracts make it possible to improve the Lightning Network, allowing it to scale dramatically, but they also enable the construction of new second-layer networks that have different (and often better) tradeoffs than the Lightning Network.