Open-source software, by its very nature, encourages public scrutiny, collaboration, transparency, and adaptability. When you put anything out online for the world to see, you’re asking to be roasted by the masses. The internet will always give you their opinion; this is true for something as simple as a bad-take tweet to something more complex like an attempt at digitally recreating sound money principles in a decentralised network.
There is no perfect software, the only software that’s been able to accept the brunt of the internet and survived to tell the tale. Bitcoin has had bugs in the past (like the inflation bug), and so have projects built on top of it, like the Lightning Network.
Wallets have had bugs; in fact, your ability to re-use Bitcoin addresses is seen as a bug by some, just one we can live with and have to guard against by adopting best practices and incentives.
I guess what I’m trying to say is software designed for unrestricted, public use is an iterative process, and the road to improving open-source software is akin to traversing a rocky terrain – it involves navigating the perils of unanticipated issues, unconventional use cases, hidden backdoors, and unforeseen problems. The mantra here is to accept the inevitable truth: your creation, no matter how well-intended or carefully crafted, is not flawless.
This year the open source software protocol, causing quite a stir in Bitcoin circles, has been, without a doubt, Ordinals and Inscriptions. It formalised the ability to add arbitrary data into the Bitcoin blockchain and assign a serial number to it, effectively creating an NFT-type transaction on Bitcoin. By using the ordinals protocol to index this data, secondary markets have been created to view, mint, trade and transfer these inscribed files.
While several developers and projects have come on board to create NFT collections, supporting wallets, secondary markets and more, the protocol itself hasn’t had the smoothest ride, despite all the hype.
Supertest net breaks ordinals
In May of this year, Developer “Super Testnet” found the first chink in the armour when he initiated a transaction that didn’t output a satoshi (the smallest unit of a bitcoin). Since there was no satoshi to inscribe with a serial number, but the transaction was seen as valid in the Ordinals system. It knocked the numbering system that Ordinals used for its inscriptions off by one.
The program’s inscription No. 349272 had zero value in output and input but could be programmed into a number. The bug founder said it could be debugged by upgrading the system, affecting all inscriptions after 3492721. Super Tesenet immediately provided a guide and invited other programmers to conduct similar tests on Ordinals.
Throwing off serial numbers by one might not seem like a big deal; if constantly repeated, it can completely throw off the system with time.
The serial number skipping bug, while bothersome to some, is not a major issue, as indexers can ignore these transactions. The serial numbering doesn’t affect files added to the chain, merely the numbering system; it’s insufficient to bring down the Ordinals protocol.
What are cursed ordinals?
Since then, the serial number drama died down, with users continuing to use ordinals to create NFTs and unregistered securities in the form of BRC-20, BRC-30 and ORC-20 tokens. But it looks like serial numbers on Ordinals have come into question once again with what is being dubbed “Cursed Ordinals”.
When you create an inscription, the Ordinals protocol needs to assign a satoshi a serial number, which references the file in the blockchain. When everything is going swimmingly, the inscription count will rise by the number of files inscribed.
In the case of cursed inscriptions, it works in the opposite manner, where negative values are displayed and counted backwards with each inscription that is created. Cursed inscriptions have been created in the following instances.
- Multiple inscriptions per transaction for efficient batching.
- Inscriptions on inputs after the first, which is useful for collections.
- Multiple inscriptions on the same Satoshi, so that the entire history of a sat doesn’t need to be checked to determine if a new inscription is valid.
- Inscriptions with unrecognised even headers, so that new even headers don’t cause upgraded clients to disagree about inscription numbers.
- Using unsupported OP_CODES like OP_66
Cursed inscriptions were found when a group of developers discovered a bug in the existing Ordinals code responsible for the standardisation of inscriptions.
Casey Rodarmor, the creator of Ordinals, became aware of the loophole and posted on GitHub his thoughts and potential solutions for the bug, where he mentioned:
“Consider these new inscriptions “cursed” and assign them negative inscription numbers.”
Paying for a dud
So what’s the big deal about cursed inscriptions? In a speculative market like unregistered securities and NFTs, valuations are completely made up, and the community around these assets decide what is valuable or not.
If cursed inscriptions are considered borked attempts at creating an inscription, it might not have a market price or fetch well below market price due to the Ordinal number attached, making it useless to the minter, and they would have paid on-chain fees for nothing. If the ordinals protocol is seen as a game of Russian roulette, users might not wish to use it and migrate to something more robust.
A freak for the unique
While a part of the ordinals community is working on a solution, another cohort says they should leave it as is and embrace the chaos. They feel that this bug gives Ordinals a more real-world collective feeling with a certain batch having “Factory defects”. Like a collectable card that has a small printing error on it that the main collection doesn’t have.
In fact, some believe that this is an opportunity to create unique ordinals with a rush to inscribe cursed inscriptions below the 10K mark currently in progress. Part of its appeal is that supporting wallets like Xverse, Hiro, Ordinals Wallet, and other well-known wallets will not recognize these inscriptions.
The only wallet that does is Sparrow Wallet, giving it even more mystique. Speculators have even created a meme coin using BRC-20 known as $CRSD in a bid to either honour or exploit this new bug in the protocol.
If this will work out for these users, it remains to be seen, but hey, speculators gotta speculate, right?
A possible curse removal
While the speculation and debate around cursed inscriptions continues, there have been calls to do a snapshot and re-inscribe cursed inscriptions with a new ordinal number.
“At a future, pre-announced block height X, new inscriptions that would have been cursed before X are now not cursed, or “blessed”, and receive a positive inscription number instead of a negative one.”Casey Rodarmor
How or if this will be solved is anyone’s guess, but what I do know is users of this protocol will continue to attract those who value speculation on block space over the value satoshis hold. These ordinal users will pay fees as long as there is a new narrative to keep minting going, in the hope that they can create wealth out of stuffing blocks with arbitrary data.
Which side of the ordinals debate are you on?
Do you like the idea of bringing NFTs to the Bitcoin base chain, or is it a distraction? Does it bring additional utility or a new set of narrative attack vectors for Bitcoin? How do you think the incentive structure around transactions will change with this new form of transaction competing for on-chain block space?
Let us know in the comments below.