Runes: An Attempt At A Serious Protocol, Or Another Children’s Toy?
Casey Rodamor, the creator of the Ordinals protocol and reference implementation, recently dropped a proposal for a replacement to the BRC-20 fungible token protocol: Runes. It took roughly seven hours before basic implementations were live and people were minting tokens. They didn’t draw from a specification, or a concrete design, just a rough blog post vaguely describing the concept.
The only concrete part of the protocol idea specified was how to handle token movement and allocations. It is a very simple proposal using OP_RETURN in each transaction to facilitate assigning tokens to a specific UTXO with an output index, a token amount field, and a token ID number. That’s it. A special message is used to issue a token initially, assigning all the balance in the issuance transaction, but that is essentially the entirety of the proposal so far.
So why did Casey create this proposal for Runes? Because the pre-existing BRC-20 protocol is an absolute mess. BRC-20 was designed specifically to use Inscriptions; why? Literally for no good reason. Just because Ordinals and Inscriptions were “the hot new thing” and no rational or logical engineering reason at all. They’re incredibly inefficient as well.
Every operation done with a BRC-20, issuing a token, transferring a token, setting up a smart contract to use them, all of these things require multiple transactions by the simple virtue of using Inscriptions as the mechanism to encode token data on-chain. Inscriptions actually require a “staging transaction” to set up the one that actually puts the inscription data on-chain in the witness. This is because the data actually has to be committed to the UTXO script being spent during the actual transcribing transaction.
So put another way: it’s pointlessly efficient for literally no reason. Counterparty (XCP), OmniLayer(OMNI), and now Runes (??) can all accomplish the same issuance and transfer of arbitrary tokens minted on the Bitcoin blockchain in a single transaction each, not two. So why was BRC-20 created? Why did people jump to use it? Nothing but social hype and the desire to try and make money. It’s analogous to people making a car with hexagonal wheels instead of circular. There is no reason behind it at all except mindless social hype.
But wait, there’s another technical problem BRC-20s are affected by, and also in some ways contribute to: Inscription numbering! BRC-20s essentially have to point backwards to prior inscriptions in order to make a coherent transaction history that can be validated. As Charlie Spears from Luxor recently wrote about, there is a large debate going on in the Ordinals community about how to handle some errors in the ord reference client and other implementations that lead to certain inscriptions not being properly indexed by the client when they were made. This makes BRC-20 tokens a huge complication in considering how to address these indexing errors going forward from a development standpoint. The irony here? From the very beginning users were warned that the Inscription numbering scheme would not be something guaranteed to be stable long-term, and they should not build things depending on it doing so. They ignored that and did it anyway.
There are numerous reasons to do away with the current ordering scheme for Inscriptions that all boil down to removing mandated manual interventions into the protocol. The thinking prior to the proposal to remove the current numbering scheme entirely was to have periodic “blessing” ceremonies where cursed Inscriptions not indexed by the prior numbering scheme would be manually “blessed” and appended to the end of the numbering system. This would require and necessitate manually forking the ord implementations and doing something akin to Ethereum’s intervention after the DAO hack: manually changing the state of things according to the protocol. So, in lieu of a perpetual need to manually intervene and account for currently unknown bugs that would create more cursed Inscriptions, Casey is proposing just doing away with the current numbering scheme entirely. Most of the counter argument to this is around people who own Ordinals not wanting the number of their inscriptions to change, for everything from certain numbers being “rare” to the number of their inscriptions having personal value to them.
These are not Earth-shattering ecosystem breaking implications if the proposal were to go through, however the effect it would have on BRC-20 tokens is. The entire scheme would have to deviate from the rest of the Ordinal ecosystem and continue maintaining the legacy numbering scheme for the purposes of BRC-20 tokens.
Runes completely sidesteps the on-chain inefficiency and need to reconcile the token scheme with the current Inscription numbering debate going on in the ecosystem right now. Here’s the problem though: people are rushing ahead to implement things based on a vague idea with no long term thought or design process going into the protocol first.
They are repeating the same mistakes that lead to the current mess being debated in the Ordinals ecosystem right now around numbering: rushing ahead to build things with no consideration for long term consequences. Ordinals, and Runes, face the same inevitable issues that Bitcoin itself is going to have to face: the scalability limitations of blockchains. Inevitably everything that does not transfer large enough pieces of value per transaction is going to have to find some way to go off-chain, or it will not be a viable use case long term. That’s just the economic reality.
However, schemes like Ordinals and Runes do not have the same limitations and lack of flexibility that Bitcoin itself does in trying to lift activity off-chain. You can see this looking back at the birth of Lightning, Bitcoin itself actually needed to change in order to support new functionality at the base layer in order to be able to safely implement Lightning and take transaction volume off-chain. Bitcoin does not need to change to accomplish the same thing for Ordinals, Runes, or any other arbitrary token protocol on top of Bitcoin.
Runes and these meta-protocols are literally just arbitrary data that means nothing to Bitcoin that people opt into interpreting against imaginary rules to see whether they are valid or not. Nothing can stop people from putting data that violates these rules on-chain, but nothing can make the people who use these protocols acknowledge or respect that valid data. Do you want to implement Solidity for Runes tokens? You can. Do you want to implement a Zero Knowledge Proof scheme so you can build ZK Rollups for Runes tokens? You can.
All doing any of that requires is putting different arbitrary data in the blockchain, and nothing can stop you from doing that. You just need people using these tokens to choose to interpret that arbitrary data against the right arbitrary rule sets. Runes, Ordinals, all these other schemes can actually scale off-chain much easier and much faster than Bitcoin itself can because of this dynamic.
You have the choice right now to either plan for the future from the beginning in how this is all implemented, or just do it live and disregard the consequences again.
So, the question is what will it be? Short-term hacking things together with no long term design or thought behind it just to pump bags to dump on other people, or does anyone in the Ordinals space actually care about designing and implementing infrastructure and tools that can be sustainable and scalable in the long term?
Is Casey the only adult among you?
29 September 2023 15:47