Bitcoin Lightning #27: Tokens uitgeven via RGB, versturen via Lightning

Met het Bitcoin Lightning Network kun je veel meer versturen dan alleen bitcoin of chatberichten. Hoe mooi zou het zijn als je ook andere assets zoals de euro, goud, aandelen of wat dan ook via dit netwerk kunt versturen?

Disclaimer: dat kan (binnenkort)! Er wordt namelijk al lange tijd gewerkt aan het RGB protocol. En hier zullen we in dit artikel van de Hup Lightning serie wat dieper op in gaan.

Koop gemakkelijk en snel Bitcoin bij Bitvavo. Ga aan de slag en betaal geen handelskosten voor je eerste aankoop tot €1.000 !

Bitcoin tokens

Eerst even een kort uitstapje. Want wat zijn tokens eigenlijk? Op Ethereum hebben we heel veel soorten tokens. Van ERC-20 tokens (waar veel ICO’s gebruik van maakten) tot ERC-721 tokens (non fungible tokens voor zeldzame in-game items).

Lange tijd was het niet mogelijk om een dergelijk iets met Bitcoin te doen. Op Ethereum kan het dus en ook Bitcoin Cash kan het met het Simple Ledger Protocol (SLP).

Maar wat als je deze chains liever níet wilt gebruiken? Dan kun je kiezen voor Liquid, een sidechain die is ontwikkeld door Blockstream. Maar ook deze oplossing is niet ideaal, gezien het netwerk wordt beheerd door een federatie van exchanges en custodians.

Er is dus nog een optie die niets te maken heeft met andere chains. Dit heet het RGB protocol en hier is al enige documentatie over te vinden op GitHub.

Het idee is in 2016 al geopperd door Giacomo Zucco en Peter Todd.

Het RGB protocol

Zelf omschrijven de ontwikkelaars het als ‘Ethereum 2.0, maar dan op de goede manier gemaakt’.

Het is een ‘programmable’ state die het mogelijk maakt om assets, games, identiteiten en reputatie via de Bitcoin blockchain te regelen. Het neemt echter geen on-chain ruimte in beslag doordat het gebruikt maakt van off-chain sharking.

Waarom zou je dit protocol willen ontwerpen? Ten eerste is een database oplossing niet bevredigend genoeg. Dit is immers gecentraliseerd. En oplossingen op andere chains zijn voor Bitcoiners ook vaak geen optie.

Om een goed gedistribueerd protocol te bouwen (wat dus niet centraal is), moet het voldoen aan drie voorwaarden:

Als onderlaag gebruikt RGB het permissieloze Proof-of-Work mechanisme van Bitcoin. Vervolgens is er een timechain nodig met informatie over de state van de assets. En deze state wil je met een protocol weer versturen naar de ontvanger.

Je geeft op de Bitcoin blockchain dus een status aan een waarde. Met RGB kun je deze ‘gekleurde’ coins versturen. Hoe werkt dit precies?

Tokens op en met Bitcoin?

Ten eerste schaalt de huidige Bitcoin blockchain niet snel genoeg om in alle behoeftes te voorzien. Daarnaast is deze ook nog eens transparant, voor iedereen in te zien. Dat is niet voor alle toepassingen nodig en nuttig.

Een simpele oplossing is dus om de data over deze gekleurde coins niet in de blockchain zelf te zetten. RGB gebruikt de bitcoin blockchain alleen maar als cryptografische commitment layer.

Alle overige data en de geschiedenis van de gekleurde coins worden opgeslagen bij de eigenaar van deze tokens. Het enige dat in de blockchain komt te staan is een bepaalde commitment, ook wel verplichting in het Nederlands.

“As a security mechanism RGB uses single-use seals defined over bitcoin transaction outputs, which provides ability for any party having smart contract state history to verify it’s uniquiness. In other words, RGB leverages Bitcoin script for its security model and definition of the ownership and access rights.”

De status van een gekleurde coin is dus een UTXO. En met een groep mensen spreek je vervolgens buiten de blockchain af dat de oorsprong van deze UTXO een ‘gekleurde coin’ of token vertegenwoordigt. Dit kan bijvoorbeeld de Tether variant zijn, uigebracht op Bitcoin.

Gelukkig biedt Lightning een oplossing als schaalbare en veilige tweede laag waarmee je deze gekleurde coins kunt versturen. Vervolgens kun je hier weer een software aan hangen wat aan ‘client-side valitation’ doet. In plaatst dat dit iedere deelnemer van het vraagt om transacties te valideren, kijkt men daarbij enkel naar double spending.

En toch is iedere gekleurde token van het RGB protocol terug te linken aan de UTXO op de bitcoin blockchain. Deze gekleurde coin heeft namelijk een corresponderende transactie output.

De persoon die deze corresponderende output mag versturen, is de owner van deze state. En dit kun je vervolgens via het Lightning Network onderling versturen.

Bitcoin Lightning #27: Tokens uitgeven via RGB, versturen via Lightning
undefined

Zo kun je dus gekleurde coins terug linken uit de blockchain zonder extra ruimte in beslag te nemen. En met de decentrale exchange van Spectrum kun je deze gekleurde munten vervolgens onderling uitwisselen.

Je kunt het zien als of Bitcoin altijd de laag is waar je op terug kunt vallen, zonder deze te hoeven gebruiken.

Meerdere componenten

Je hebt om deze tokens goed te kunnen versturen dus meerdere componenten nodig:

Ze dragen allemaal op een eigen manier bij aan de kracht van het netwerk.

Bitcoin Lightning #27: Tokens uitgeven via RGB, versturen via Lightning
undefined

Je kunt op dit moment niet zomaar even wat tokens aanmaken op Bitcoin. Alles is nog in ontwikkeling en we gaan hier de komende tijd ongetwijfeld nog meer over horen. Vooralsnog wordt er dus vooral met tokens gebouwd op Liquid. Maar technisch gezien kán het dus wel op Bitcoin zelf, in combinatie met state channels via Lightning en een client side validation software.

Hup Lightning!