What happened
Runes, a protocol for issuing fungible tokens on Bitcoin, went live in block 840,000, mined at 00:09 UTC on 20 April 2024 by ViaBTC. Its specification sets the boundary without ceremony: "The Runes protocol activates on block 840,000. Runestones in earlier blocks are ignored."
That is the same block as the fourth halving, which cut the subsidy to 3.125 bitcoin. The block paid 37.63 bitcoin in fees, twelve times its subsidy.
A Runes message, called a runestone, is not stored in a signature or a script tree. The
specification says to "Find the first transaction output whose script pubkey begins with
OP_RETURN OP_13", then read the data pushes after it as a sequence of integers.
What it changes
Where the data sits, and therefore who has to keep it.
An output beginning with OP_RETURN can never be spent, and Bitcoin Core recognises this.
In src/coins.cpp, the function that adds a new output to the set of spendable coins
begins by refusing any
script it can prove is unspendable. The output is written into the block, validated, and
then simply not remembered.
That is the distinction that matters: every node must keep the set of unspent outputs forever, because it needs them to validate the next block, but it never has to keep an OP_RETURN. The block chain is an archive a node may prune. The UTXO set is working memory it cannot.
This was the stated design goal. Announcing the idea in September 2023, Casey Rodarmor criticised the existing approach for its "undesirable consequence of UTXO proliferation" and argued that a protocol should promote "UTXO set minimization by avoiding the creation of 'junk' UTXOs." He was not enthusiastic about the category, opening with the observation that fungible tokens are "99.9% scams and memes."
The contrast is with BRC-20, where a balance is moved by sending a real, spendable output from one owner to another, and every one of those outputs is something all nodes carry until it is spent.
What it does not change
Bitcoin has no idea what a rune is. A node sees an unspendable output holding some bytes, declines to store it, and moves on. There is no new rule and nothing was activated in the consensus sense: the height is a convention that the indexing software agrees to honour.
Nor is there a specification in the sense the word usually carries. The project's own page
on the subject says the reference implementation, ord, "is the normative specification of
the Runes protocol", and warns that alternative implementations are used at their own risk.
Balances are what an indexer says they are.
It does not make block space cheaper either. A runestone is smaller than an inscription, but it still occupies weight and still bids against every other transaction, as the fee total in its first block shows.
Context
Inscriptions arrived in January 2023 and put content in the witness, where it is priced at a quarter rate. Token schemes built on them, and the fee spike of May 2023 was the result.
OP_RETURN is much older, and was introduced for exactly this reason. The Bitcoin Core
0.9.0 release notes from 2014 explain that the change "creates a provably-prunable output,
to avoid data storage schemes" that were "bloating bitcoin's UTXO database." The same notes
add that storing arbitrary data in the chain "is still a bad idea." Both halves of that
position have been the project's line for a decade.
