Het afgelopen jaar stond in het teken van Ordinals en Inscriptions. Als bitcoin-gebruiker kon je er niet omheen. Toen de populariteit leek af te vlakken, werd de markt met de komst van BRC-20-tokens nieuw leven ingeblazen. Sterker nog, het aantal inscriptions steeg naar ongekende hoogte. Tijdens de halving staat er iets speciaals te gebeuren. De bedenker van Ordinals heeft iets nieuws bedacht: Runes. In deze Alpha vertellen we alles wat je moet weten over dit nieuwe fenomeen op bitcoin.

De aanleiding: fungible tokens

Om te begrijpen wat Runes zijn, moeten we terug naar de basis. Runes zijn fungible tokens. Dat betekent dat ze niet te onderscheiden zijn van elkaar en daardoor vrij uitwisselbaar zijn. Bitcoin is een voorbeeld van een fungible token. Het tegenovergestelde van fungible tokens zijn non-fungible tokens. Je kent deze tokens waarschijnlijk van de afkorting NFT. Non-fungible tokens hebben unieke eigenschappen en zijn daarom wél van elkaar te onderscheiden. Het kan daardoor voorkomen dat het ene token (van dezelfde collectie) een andere waarde heeft dan een ander token.

Ordinals veranderden satoshi’s van fungible naar non-fungible. In het Ordinals-protocol is de ene sat namelijk meer waard dan de andere, gebaseerd op het rarity level:

Tegelijk met Ordinals werd ook een ander protocol gelanceerd, het Inscriptions-protocol. Inscriptions maken gebruik van Ordinals om data in een transactie te stoppen en te koppelen aan een specifieke satoshi. In normale mensentaal: het werd mogelijk om NFT’s – plaatjes en andere objecten – vast te leggen op bitcoin.

Al vrij snel kwamen een paar knappe koppen erachter dat je niet alleen plaatjes, maar alle soorten data in een inscription kan stoppen. Je kan bijvoorbeeld ook een JSON-bestand inscriben. Dat is een door ontwikkelaars veel gebruikt dataformaat, een tekstbestand waarmee gegevens uitgewisseld kunnen worden. Instructies bijvoorbeeld, waarmee je een token protocol kunt maken. De BRC-20 tokenstandaard was geboren.

Het werkt als volgt. Je pakt een satoshi (Ordinal), daaraan koppel je (Inscription) een JSON-bestand met instructies (de in BRC-20 beschreven functies). BRC-20 heeft twee functies om tokens op je balans te krijgen: mint en transfer. In het onderstaande screenshot zie je een voorbeeld van zo’n JSON-bestand waarin 1000 ORDI-tokens gemint worden:

BRC-20 gebruikt, in tegenstelling tot bitcoin zelf, een account based model. Om te weten hoeveel tokens je op je balans (account) hebt staan, worden indexers gebruikt. Die worden op dit moment uitsluitend aangeboden door derde partijen. De indexers scannen je wallet-adres, waarbij ze alle satoshi’s met inscriptions selecteren. Hierna worden alle inscriptions die BRC-20-instructies bevatten doorgenomen. Aan de hand van de inhoud van deze bestanden komt men uiteindelijk tot een globale balans (global state).

Een tof experiment, maar in de praktijk is het BRC-20-protocol onhandig, inefficiënt en foutgevoelig. De grootste nadelen:

  • Er zijn meerdere transacties nodig om een token te minten of verzenden.
  • Er is geen universele indexer beschikbaar (kan tot verschillende global states leiden).
  • Account based model dat leidt tot UTXO bloat.
  • BRC-20 is afhankelijk van Ordinals en Inscriptions protocollen.

Daarnaast hebben de bestaande BRC-20-tokens geen onderliggende waarde. Het is pure speculatie, een soort virtuele stoelendans. Toch zijn ze een enorm succes. Het eerste token (ORDI) heeft een totale marktwaarde ruim boven de 1 miljard dollar en nieuwe projecten duwen de transactiekosten op het bitcoinnetwerk regelmatig boven de 600 sat per vByte. Mensen hebben schijnbaar de behoefte om te gokken, merkte Ordinals-bedenker Casey Rodarmor op. En als mensen dan toch willen gokken, laten we dan in ieder geval zorgen dat ze een goed casino hebben. 

Wat zijn Runes en hoe werken ze?

Eerst even wat terminologie. Als we Runes schrijven, met hoofdletter R, bedoelen we het protocol en het door Rodarmor bedachte concept. Schrijven we rune of runes met een kleine r? Dan gaat het om de tokens die eruit voortvloeien.

De eigenschappen van een volgens Rodarmor goed online casino heeft hij samengebracht in de vorm van Runes. Runes is net als BRC-20 een fungible token protocol. Volgens Rodarmor zijn tokens goed voor maar één ding: speculatie. Het probleem volgens Rodarmor is dat veel projecten zich verschuilen achter een zweem van geloofwaardigheid. Met moeilijke termen proberen ze hun zogenaamd revolutionaire projecten aan de man te brengen, terwijl de daadwerkelijke motivatie is om hun eigen zakken te vullen.

De gedachte achter Runes: als we dan toch gaan gokken, laten we er dan in ieder geval eerlijk over zijn. Daarnaast zorgt de handel in memecoins voor meer activiteit op het bitcoin netwerk. Met die gedachte in het achterhoofd ging Rodarmor aan de slag. Zijn nieuwe protocol moest sneller, goedkoper en efficiënter zijn dan de al bestaande token-standaarden op bitcoin.

Bitcoin maakt gebruik van unspent transaction outputs (UTXO’s). Dit systeem is de tegenhanger van het eerder besproken account based systeem, dat gebruikt wordt door ethereum. Je totale saldo is een optelsom van de totale waarde van de UTXO’s die je bezit. Runes maakt handig gebruik van dit principe, door tokens te koppelen aan een UTXO en informatie over de tokens op te slaan in de transactiedata.

Een UTXO vertegenwoordigt een bepaalde hoeveelheid nog uit te geven bitcoin en is altijd gekoppeld aan een bitcoinadres. Het bitcoinadres wordt afgeleid van een public key. De UTXO kan uitgegeven worden als de eigenaar van de public key een transactie ondertekent met de bijbehorende private key. Elke transactie heeft een of meerdere UTXO’s als input en creëert een of meerdere nieuwe UTXO’s als output.

Runes zorgt ervoor dat UTXO’s niet alleen een nog uit te geven hoeveelheid bitcoin bevatten, maar ook een of meerdere tokens. Een voorbeeld: een UTXO kan bestaan uit 0,0018 bitcoin, 2.000 CAT-tokens en 100.000 BIDEN-tokens. 

Belangrijk om te snappen is dat Runes geen aanpassing aan het bitcoin-protocol is. Bitcoin-nodes zien dus helemaal geen tokens, maar enkel een UTXO met een waarde van 0,00018 bitcoin. De tokens zijn alleen zichtbaar binnen het Runes-ecosysteem. Door een runes indexer te draaien, kan je zien welke tokens er aan een UTXO gekoppeld zijn. Het Runes-protocol staat dus los van en draait bovenop bitcoin.

De grote vraag is nu hoe runes gekoppeld worden aan bitcoin-UTXO’s. Rodarmor gebruikt hier een bestaande bitcoinfunctie voor: OP_RETURN. Die maakt het mogelijk een klein beetje data (maximaal 80 bytes) op te nemen in een bitcoin-transactie. Het Runes-protocol gebruikt deze ruimte om informatie over de tokens op te slaan. Deze data wordt een runestone genoemd (niet te verwarren met de gelijknamige Runestone NFT).

Een runestone kan drie soorten instructies bevatten: etch, mint en transfer. Met een etch-instructie wordt een nieuw token aangemaakt. Elk token heeft een unieke naam en ID. Wil je tokens in roulatie brengen? Dan gebruik je de mint-instructie. Om ze naar een ander adres te versturen, gebruik je de transfer-instructie.

Terug naar het voorbeeld. Stel dat ik 1.000 CAT-tokens wil versturen naar Peter en 75.000 BIDEN-tokens naar Bert. De bitcoin en het restant van de tokens wil ik houden. We gebruiken de eerder beschreven UTXO als input. De runestone zal dan de volgende informatie bevatten:

  1. transfer 1.000 CAT from input 1 to output 1 (adres Peter)
  2. transfer 75.000 BIDEN from input 1 to output 2  (adres Bert)
  3. transfer 1.000 CAT & 25.000 BIDEN from input 1 to output 3 (eigen adres)

Om mee te kunnen liften met een bitcoin UTXO moet er natuurlijk wel een UTXO gecreëerd worden. Dat kan alleen door bij elke etch, mint of transfer een klein beetje bitcoin te versturen. Dat noemen we postage, een soort postzegel. Bijkomend voordeel is dat je met deze postage ook de transactiekosten kan betalen. We kiezen voor een postage van 10.000 sats. Voor bitcoin nodes ziet onze transactie er dan als volgt uit:

  1. fee - de transactiekosten voor de gehele transactie
  2. OP RETURN - deze bevat de runestone met instructies 
  3. send 0.0001 bitcoin from input 1 to output 1 (adres Peter)
  4. send 0.0001 bitcoin from input 1 to output 2 (adres Bert)
  5. send 0.0016 bitcoin from input 1 to output 3 (adres Bart)

In dit voorbeeld eindigen we dus met drie verschillende UTXO’s:

  1. UTXO 1 (Peter) bevat 0,0001 bitcoin en 1.000 CAT tokens
  2. UTXO 2 (Bert) bevat 0,0001 bitcoin en 75.000 BIDEN tokens
  3. UTXO 3 (Bart) bevat 1.000 CAT tokens, 25.000 BIDEN tokens en 0,0016 bitcoin

Deze manier van werken heeft een aantal voordelen. Doordat de tokendata in de transactie zelf wordt opgeslagen, werkt het zonder gebruik te maken van Ordinals en Inscriptions. Dat levert een efficiënter en robuuster protocol op met minder afhankelijkheden.

Door slim gebruik te maken van het UTXO-model van bitcoin, leveren runes minder UTXO bloat op. Bij andere tokenstandaarden levert elke transfer een nieuwe UTXO op, zonder dat de oude verdwijnt. Dat is bij Runes anders: om een token te verzenden gebruik je de ‘oude’ UTXO, die hierna verdwijnt. Daarnaast wordt de gebruikte OP_RETURN UTXO niet opgeslagen in de UTXO set, omdat die geen spendable output heeft. Hierdoor heeft dit nieuwe tokenprotocol een aanzienlijk lagere impact op het aantal UTXO’s dat nodes in hun geheugen moeten houden in vergelijking met BRC-20.

Nu we de technische achtergrond gehad hebben, is het tijd om verder in de wereld van Runes te duiken. In de rest van deze Alpha vertellen we onze premium leden:

  1. Wat de great rotation is en waarom veel memecoin-handelaren overstappen naar runes
  2. Wat de impact van runes kan zijn op bitcoin
  3. Hoe je zelf mee kan doen