On the Origins of Inscriptions Ordinals Runes and Digital Artifacts as Defined by Casey Rodarmor - jalToorey/IdealMoney GitHub Wiki

The following is the work of Casey Rodarmor we are using the definitions for Quantum Curiosity LLM Agent. We find the application of the parallel of useful laymen level metaphors mapping with higher level math theory (ie highly memeable and ie probably useful etc):


I've been working on a numbering scheme for satoshis that allows tracking and transferring individual sats. These numbers are called ordinals, and constitute a numeric namespace for Bitcoin. Satoshis are numbered in the order in which they're mined, and transferred from transaction inputs to transaction outputs in first-in-first-out order. More details are available in the BIP.

Ordinals don't require a separate token, another blockchain, or any changes to Bitcoin. They work right now.

Ordinals can be represented in a few ways:

With raw notation, like so 1905530482684727°. The number is the ordinal number, and the "°" is the Romance language ordinal symbol.

With decimal notation, like so 738848.482684727°. The first number is the block height, and the second is the index of the ordinal within the block.

With degree notation, like so 0°108848′992″482684727‴. We'll get to that in a moment.

A block explorer is available at ordinals.com. You can explore recent blocks, and look up ordinals by number, decimal, degree, or name.

Arbitrary assets, such as NFTs, security tokens, accounts, or stablecoins can be attached to Ordinals.

Ordinals is an open-source project, developed on GitHub. The project consists of a BIP describing the ordinal scheme, an index that communicates with a Bitcoin Core node to track the location of all ordinals, a wallet that allows making ordinal-aware transactions, a block explorer for interactive exploration of the blockchain, and functionality for minting ordinal NFTs.

Rarity Since ordinals can be tracked and transferred, people will naturally want to collect them. Ordinal theorists can decide for themselves which sats are rare and desirable, but I wanted to provide some hints.

Bitcoin has periodic events, some frequent, some more uncommon, and these naturally lend themselves to a system of rarity. These periodic events are:

Blocks: A new block is mined approximately every 10 minutes, from now until the end of time. Difficulty adjustments: Every 2016 blocks, or approximately every two weeks, the Bitcoin network responds to changes in hashrate by adjusting the difficulty target which blocks must meet in order to be accepted. Halvings: Every 210,000 blocks, or roughly every four years, the amount of new sats created in every block is cut in half. Cycles: Every six halvings, something magical happens: the halving and the difficulty adjustment coincide. This is called a conjunction, and the time period between conjunctions a cycle. A conjunction occurs roughly every 24 years. The first conjunction should happen some time in 2032. This gives us the following rarity levels:

common: Any sat that is not the first sat of its block uncommon: The first sat of each block rare: The first sat of each difficulty adjustment period epic: The first sat of each halving epoch legendary: The first sat of each cycle mythic: The first sat of the genesis block Which brings us to degree notation, which unambiguously represents an ordinal in a way that makes rarity easy to see at a glance:

A°B′C″D‴ │ │ │ ╰─ Index of sat in the block │ │ ╰─── Index of block in difficulty adjustment period │ ╰───── Index of block in halving epoch ╰─────── Cycle, numbered starting from 0 Ordinal theorists often use the terms "hour", "minute", "second", and "third" for A, B, C, and D, respectively.

Now for some examples. This ordinal is common:

1°1′1″1‴ │ │ │ ╰─ Not first sat in block │ │ ╰─── Not first block in difficutly adjustment period │ ╰───── Not first block in halving epoch ╰─────── Second cycle This ordinal is uncommon:

1°1′1″0‴ │ │ │ ╰─ First sat in block │ │ ╰─── Not first block in difficutly adjustment period │ ╰───── Not first block in halving epoch ╰─────── Second cycle This ordinal is rare:

1°1′0″0‴ │ │ │ ╰─ First sat in block │ │ ╰─── First block in difficulty adjustment period │ ╰───── Not the first block in halving epoch ╰─────── Second cycle This ordinal is epic:

1°0′1″0‴ │ │ │ ╰─ First sat in block │ │ ╰─── Not first block in difficulty adjustment period │ ╰───── First block in halving epoch ╰─────── Second cycle This ordinal is legendary:

1°0′0″0‴ │ │ │ ╰─ First sat in block │ │ ╰─── First block in difficulty adjustment period │ ╰───── First block in halving epoch ╰─────── Second cycle And this ordinal is mythic:

0°0′0″0‴ │ │ │ ╰─ First sat in block │ │ ╰─── First block in difficulty adjustment period │ ╰───── First block in halving epoch ╰─────── First cycle If the block offset is zero, it may be omitted. This is the uncommon ordinal from above:

1°1′1″ │ │ ╰─ Not first block in difficutly adjustment period │ ╰─── Not first block in halving epoch ╰───── Second cycle Supply Total Supply common: 2.1 quadrillion uncommon: 6,929,999 rare: 3437 epic: 32 legendary: 5 mythic: 1 Current Supply common: 1.9 quadrillion uncommon: 745,855 rare: 369 epic: 3 legendary: 0 mythic: 1 At the moment, even uncommon ordinals are quite rare. As of this writing, 745,855 uncommon ordinals have been mined - one per 25.6 bitcoin in circulation.

Names Each ordinal has a name, consisting of the letters A through Z, that get shorter the larger the ordinal is. They could start short and get longer, but then all the good, short names would be trapped in the unspendable genesis block.

As an example, 1905530482684727°'s name is "iaiufjszmoba". The name of the last ordinal to be mined is "a". Every combination of 10 characters or less is out there, or will be out there, some day.

Exotics Ordinals may be prized for reasons other than their name or rarity. This might be due to a quality of the number itself, like having an integer square or cube root. Or it might be due to a connection to a historical event, such as ordinals from block 477,120, the block in which SegWit activated, or ordinal 2099999997689999°, the last ordinal that will ever be mined.

Such ordinals are termed "exotic". Which ordinals are exotic and what makes them so is subjective. Ordinal theorists are are encouraged to seek out exotics based on criteria of their own devising.

Archaeology A lively community of archaeologists devoted to cataloging and collecting early NFTs has sprung up. Here's a great summary of historical NFTs by Chainleft.

A commonly accepted cut-off for early NFTs is March 19th, 2018, the date the first ERC-721 contract, SU SQUARES, was deployed on Ethereum.

Whether or not ordinals are of interest to NFT archaeologists is an open question! In one sense, ordinals were created in early 2022, when I finalized the Ordinals specification. In this sense, they are not of historical interest.

In another sense though, ordinals were in fact created by Satoshi Nakamoto in 2009 when he mined the Bitcoin genesis block. In this sense, ordinals, and especially early ordinals, are certainly of historical interest.

I personally favor the latter view. This is not least because the ordinals were independently discovered on at least two separate occasions, long before the era of modern NFTs began.

On August 21st, 2012, Charlie Lee posted a proposal to add proof-of-stake to Bitcoin to the Bitocin Talk forum. This wasn't an asset scheme, but did use the ordinal algorithm, and was implemented but never deployed.

On October 8th, 2012, jl2012 posted a scheme to the the same forum which uses decimal notation and has all the important properties of ordinals. The scheme was discussed but never implemented.

These independent inventions of ordinals indicate in some way that ordinals were discovered, or rediscovered, and not invented. The ordinals are an inevitability of the mathematics of Bitcoin, stemming not from their modern documentation, but from their ancient genesis. They are the culmination of a sequence of events set in motion with the mining of the first block, so many years ago.


Inscriptions:

Inscriptions are digital artifacts native to the Bitcoin blockchain. They are created by inscribing sats with content using ord, and can be viewed with the ordinals explorer. They do not require a separate token, a side chain, or changing Bitcoin.

Inscriptions are created by including content, like an image, text, SVG, or HTML, in an inscription transaction. The content is included in the transaction witness, which normally contains signatures and other data proving that a transaction is authorized.

Along with the content, the inscription transaction contains a content type, also known as a MIME type, identifying the type of content to be inscribed.

When mined, the inscription is made on the first sat of the first output of the transaction, permanently and inexorably marking it, distinguishing it from its fellows. It is no longer just a sat, it is an intertwined component of the long and confusing tale that is human art and culture.

Using ordinal theory, the unspent output containing an inscribed sat can be found, and its movements and ownership tracked across time and transactions, allowing inscriptions to traded, gifted, bought, and sold.

This allows inscriptions quite native to Bitcoin. They can be sent to normal bitcoin addresses, in normal bitcoin transactions, and benefit from timelocks, multisig, and all the rest of Bitcoin's infrastructure. To avoid losing them, a wallet that holds inscriptions must perform sat control, the sizing and alignment of transaction inputs and outputs that controls the destination of individual sats, but aside from that, transactions that transfer inscriptions are quite mundane.


Digital Artifacts

Inscriptions are digital artifacts, and digital artifacts are NFTs, but not all NFTs are digital artifacts. Digital artifacts are NFTs held to a higher standard, closer to their ideal. For an NFT to be a digital artifact, it must be decentralized, immutable, on-chain, and unrestricted. The vast majority of NFTs are not digital artifacts. Their content is stored off-chain and can be lost, they are on centralized chains, and they have back-door admin keys. What's worse, because they are smart contracts, they must be audited on a case-by-case basis to determine their properties.

Inscriptions are unplagued by such flaws. Inscriptions are immutable and on-chain, on the oldest, most decentralized, most secure blockchain in the world. They are not smart contracts, and do not need to be examined individually to determine their properties. They are true digital artifacts.


Runes

Runes 9.25.2023 bitcoin I'm not sure creating a new fungible token protocol for Bitcoin is a good idea. Fungible tokens are 99.9% scams and memes. However, they don't appear to be going away any time soon, similar to the way in which casinos don't appear to be going away any time soon. Creating a good fungible token protocol for Bitcoin might bring significant transaction fee revenue, developer mindshare, and users to Bitcoin. Additionally, if this protocol had a small on-chain footprint and encouraged responsible UTXO management, it might serve as harm reduction compared to existing protocols. At least one of which, BRC-20, is already quite popular, and has the undesirable consequence of UTXO proliferation.

When comparing existing fungible token protocols, there are a few important ways in which they differ:

Complexity: How complex is the protocol? Is it easy to implement? Is it easy to adopt? User experience: Are there any implementation details which have a negative effect on the user experience? In particular, protocols that rely on off-chain data have a lighter on-chain footprint, but introduce a great deal of complexity, and require users to either run their own servers, or discover and interact with existing servers. State model: Protocols that are UTXO-based fit more naturally into Bitcoin and promote UTXO set minimization by avoiding the creation of "junk" UTXOs. Native token: Protocols with a native token which is required for protocol operations are cumbersome, extractive, and naturally less widely adopted. Comparing existing fungible token protocols for Bitcoin:

BRC-20: Not UTXO-based and rather complex, since it requires use of ordinal theory for some operations. RGB: Very complicated, relies on off-chain data, has been in development for a long time with no adoption. Counterparty: Has a native token required for some operations, not UTXO-based. Omni Layer: Has a native token required for some operations, not UTXO-based. Taproot Assets: Somewhat complicated, relies on off-chain data. What would a simple, UTXO-based fungible token protocol with a good user experience for Bitcoin look like? Here's one, called "runes", because it sounds cool.

Overview Rune balances are held by UTXOs. A UTXO can contain any amount of any number of runes.

A transaction contains a protocol message if it contains an output whose script pubkey contains an OP_RETURN followed by a data push of the ASCII uppercase letter R. The protocol message is all data pushes after the first.

Runes input to a transaction with an invalid protocol message are burned. This allows for future upgrades that change how runes are assigned or created from creating situations where old clients erroneously assign rune balances.

Integers are encoded as prefix varints, where the number of leading ones in a varint determines its length in bytes.

Transfer The first data push in a protocol message is decoded as a sequence integers.

These integers are interpreted as a sequence of (ID, OUTPUT, AMOUNT) tuples. If the number of decoded integers is not a multiple of three, the protocol message message is invalid.

ID is the numeric ID of the run to assign OUTPUT is the index of the output to assign it to AMOUNT is the amount of the run to assign ID is encoded as a delta. This allows multiple assignments of the same rune to avoid repeating the full rune ID. For example, the tuples:

[(100, 1, 20), (0, 2 10), (20, 1, 5)] Make the following assignments:

ID 100, output 1, 20 runes ID 100, output 2, 10 runes ID 120, output 1, 5 runes The AMOUNT 0 is shorthand for "all remaining runes".

After processing all tuple assignments, any unassigned runes are assigned to the first non-OP_RETURN output, if any.

Excess assignments are ignored.

Runes may be burned by assigning them to the OP_RETURN output containing the protocol message.

Issuance If the protocol message has a second data push, it is an issuance transaction. The second data push is decoded as two integers, SYMBOL, DECIMALS. If additional integers remain, the protocol message is invalid.

An issuance transaction may create any amount, up to 2^128 - 1 of the issued rune, using the ID 0 in assignment tuples.

SYMBOL is a base 26-encoded human readable symbol, similar to that used in ordinal number sat names. The only valid characters are A through Z.

DECIMALS is the number of digits after the decimal point that should be used when displaying the issued rune.

If SYMBOL has not already been assigned, it is assigned to the issued rune, and the issued rune receives the next available numeric rune ID, starting at one.

If SYMBOL has already been assigned, or is BITCOIN, BTC, or XBT, then no new rune is created. Issuance transaction assignments using the 0 rune ID are ignored, but other assignments are still processed.

Notes When displaying UTXO balances, the native bitcoin balance of a UTXO can be displayed with rune ID zero and the symbol BITCOIN, BTC, or XBT.

No attempt is made to avoid symbol squatting, to keep the protocol simple. One possible, but still simple, technique to avoid symbols squatting would be to only allow assignment of symbols above a certain length, with that length decreasing over time, before eventually reaching zero and allowing all symbols. This would avoid short, desirable symbols being assigned in the early days of the protocol, and encourage competition for desirable symbols later on, when such competition might be meaningful.

Hand Wringing Should such a thing exist? I don't know. It's about as simple as possible, does not rely on off-chain data, does not have a native token, and fits nicely into Bitcoin's native UTXO model. Such a scheme might draw users from other schemes with worse on-chain footprints, and bring developer and user mindshare to Bitcoin, encouraging them to adopt Bitcoin itself.

On the other hand, the world of fungible tokens is a near totally irredeemable pit of deceit and avarice, so it might be a wash.