An objective look at the technical concerns behind Ordinals and the implications on the Bitcoin network.


by Mark Goodwin

ordinal (adj.)

c. 1400, “regular, ordinary; well-regulated, proper,” from Old French ordinel and directly from Late Latin ordinalis “showing order, denoting an order of succession,” from Latin ordo (genitive ordinis) “row, series” (see order (n.)). Meaning “marking the place or position of an object in an order or series” is from 1590s.1

There are two kinds of numbers; ordinal and cardinal. Ordinal numbers denote rank or position in a system, while cardinal numbers tally how many units of something there are. You can think of ordinals as the numbers used when communicating a runner’s position in a race, or even within driving directions. “Take the third left.” You can think of cardinals as the numbers used when counting how many jelly beans are in that big jar at the fair. In bitcoin terms, the chain’s block height would be an ordinal number – the 10th block – whereas the amount of satoshis in a transaction fee would be a cardinal number, 1000 sats.

Ordinals is an open-source project from Bitcoin developer Casey Rodarmor consisting of two distinct parts; Ordinal Theory and Inscriptions.

Ordinal Theory is an arbitrary but sensible framework for tracking the lineage of an individual satoshi using an ordinal number it acquired at issuance. At the current block height–having had three halvings starting from 50 bitcoin (50, 25, 12.5, 6.25)–when a valid block is found, the lucky miner may assign 625,000,000 satoshis to themselves in the coinbase transaction, which has no input. At current difficulty, miners use this reserved but otherwise empty input as extra nonce space for hashing. The Bitcoin network is a series of peer-to-peer databases, full of integers that contain the current state of the protocol. You can think of ordinal theory as a conceptual social lens for all the numerical data presented in bitcoin’s blocks. By making (cc: arbitrary) rules for viewing how individual satoshis are theoretically distributed after a bitcoin transaction, Ordinal Theory simply suggests a singular perspective to interpreting Bitcoin, explained in its Index. Every satoshi is given a unique ordinal number as early as the candidate block, starting from 0, and will continue until counting up to just below 2.1 quadrillion, with 100,000,000 satoshi groupings conventionally being referred to as “a bitcoin.” This number is set at block issuance regardless of the incredibly rare but legitimate accounts of successful miners completing the block reward-issuing coinbase transaction output without a valid bitcoin address. Every single bitcoin transaction, except this coinbase transaction, requires both an input and an output. Within a bitcoin transaction, satoshis from separate UTXOs, or unspent transaction outputs, are completely indistinguishable and thus atomically fungible when spent via the output address. Ordinal Theory suggests purely socially that there is an order to the mechanism of distribution, and satoshis are sent in a first in, first out manner, and ordered by input. Due to this arbitrary logistical assumption, you could scan your bitcoin wallet for UTXOs to try and locate rare ordinals. Rare ordinals are both direct from consensus itself, such as the first satoshi in a block after a halving–a legendary ordinal– or even a particular satoshi from a block issued at the time of a personal event. There is a satoshi thus associated with every number from 0 to just about 2.1 quadrillion, with all sorts of opportunities for numerical repetitions, unique integers, and interpretive iterations. An ordinal theorist could even hypothetically value the interpretation of say satoshi 5,412,388 as its base26 counterpart, “BLOCK.”

The recently released Ordinal 0.4.2 is a specialized bitcoin wallet that programs a specific signing of a bitcoin transaction using rules within protocol consensus to inscribe any kind of data into the witness merkle tree. That is, of course, if it offers the market fee and propagates to a willing miner. This software enables, by ease of access, any willing buyer to purchase ledger space, predominantly landing in the witness data. In 2017, SegWit, a bitcoin softfork theorized by Peter Wuille and Luke Dashjr., among others, removed the signature data from the transactions in a block and placed them on a roughly 4MB block extension. By introducing a new metric for block size in the form of weight units, SegWit created a distinction between bytes and vbytes (four weight units), limiting the max block weight roughly derived from taking four times the non-witness bytes (transaction inputs and outputs) and subtracting it from the total witness data (signatures and unlocking scripts). This was executed so that previous generations of Bitcoin software could still validate transactions, but in effect increased the available blocksize by freeing up the 1MB block limit set by Satoshi in late 2010. SegWit was also constructed to solve malleability attacks by divorcing the witness data in order to preserve the transaction id. The idea of this “sidechain”, economically, was to be discounted in the rate of satoshis per vbytes to encourage slightly more complicated bitcoin scripts to be ran that traditionally have enabled scaling efforts; the Lightning Network itself requires HTLCs, or hash time locked contracts, to probabilistically enable trust in this exponentially more efficient, shared-UTXO payment channel. Taproot, a 2021 bitcoin soft fork enabled further op_codes and Merkelized Alternative Script Tree (MAST) with a transaction type called P2TR, or a pay to Taproot script, as well as raising standardness bounds for data relay. While SegWit was a critical ledger state-change when it created this witness data block extension, Taproot was more of a systems update that unlocked potential scaling and privacy features. Both of these forks are necessary to the specifics of exactly how Ordinal 0.4.2 operates, but the ability to pay miners for block space to include arbitrary data in bitcoin has existed since the genesis block. This is perhaps most infamously done in the OP_RETURN, which allows spent outputs to display a message or encode a key in its available 40 bytes, leaving the UTXO unspendable, but easily prunable from the UTXO set.

The Ordinal software allows users to generate valid bitcoin transactions that contain arbitrary-to-its-own-script data such as text files, PNGs or even a program script itself. These transactions are signed using this modified wallet software, Ordinal 0.4.2, in the form of an op_code “envelope” that is ultimately written within the transaction’s witness data. This envelope is constructed using the OP_FAIL code, which by default does not push the code beneath it into the programming stack. The data for an Inscription, containing a file type data header and the file itself, is thus placed within the OP_IF instance below this doomed to run op_code and is sealed with the if-ran, end-program OP_ENDIF. Due to using this op_code, the Inscription data is eventually entirely prunable from your own node, and the necessary computation to validate a presumably expensive weighty script is potentially below even a single Lightning channel open. Due to the blocksize being static since SegWit, implications on node runners’ fears of centralization due to increased costs to run a node are no more exacerbated than if blocks were simply routinely full; perhaps even less. Regardless, near full blocks are an expected outcome of a successful bitcoin network and one the network should be prepared for.

Inscriptions are associated with a specific satoshi from the transaction, and thus could be partnered with one noted in Ordinal Theory. This simulated way to read the Bitcoin blockchain creates potential avenues for users to sentimentally value a singular satoshi over another. If the holder of said ordinal is willing to exchange it for more than its singular satoshi value, this could, in a specific sense, break fungibility. But again, that was always the case and entirely possible within localized exchange rates for fiat pairs, market arbitrage, a poorly programmed transaction, or even a naive peer-to-peer barter. There is nothing about Inscriptions or Ordinal Theory that causes any state change within the atomic principles of a satoshi; it is purely a social lens. Privacy concerns resolve similarly; there is no molecular tracer within an inscription that tracks your individual sat within the pure functional fungibility of a bitcoin transaction. They all come out exactly the same, but you just happen to refer to one as such. You can spend an ordinal exactly as you would any other satoshi.

Bitcoin is a database with a specified consensus, and there is nothing within Ordinal Theory nor Inscriptions that violate those rules. But there is also nothing against consensus by running an adversarial node within a Lightning route gathering metadata for surveillance, pinning attacks, utilizing chain analysis software, or even a bitcoin donation scam. The point being that the mere fact something is a possible use case for bitcoin does not necessarily mean it is a net good for the users of the system. And yet Bitcoin is a system of rules, not biases, and the arbiter of validity must remain the code. The nodes that Inscribers have synced since the launch of Ordinal 0.4.2 contain the rules of what constitutes a valid block and the dynamic blockspace fee has set the truth-only market with its economic demands legitimately met. Inscriptions have a unique property of selective impermanence with the potential to utilize the database and increase market demand for bitcoin the asset and bitcoin blockspace. The worst action to be taken would be one that hastily distorts the hard-fought conditions currently set. Someone could have always simply bought every block in perpetuity. Someone could have always stuffed arbitrary data in clever transactions if they wanted to pay the fee.

But why in the world would you waste your satoshis doing that?

You might accidentally spend a rare one.


Leave a Reply