Een Bitcoin UTXO staat voor een Unspent Transaction Output. Het is een wezenlijk bestandsdeel van het ontvangen en versturen van een Bitcoin transactie. Dit proces wordt automatisch verzorgd door de Bitcoin wallet software, maar een goed begrip van de Bitcoin UTXO is van groot belang voor vooral de Bitcoin ontwikkelaars.

Een transactie bestaat uit een aantal in- en uitgangen (inputs en outputs), waar een waarde aan gekoppeld is in Bitcoin. Hierbij is het van belang om op te merken dat een Bitcoin de grootste rekeneenheid is, die verder deelbaar of splitsbaar is tot 8 cijfers achter de komma tot haar kleinste rekeneenheid, de Satoshi. Bitcoins binnen een transactie worden berekend in Satoshis (SATS). De bitcoins onder jouw beheer staan verdeeld over unspent outputs (de UTXO’s). Wanneer je een bitcoin transactie uitvoert zul je één of meerdere UTXO’s gebruiken als inputs in de nieuwe transactie. Deze zijn de nieuwe UTXO’s voor de ontvanger van de transactie.

Bitcoins werken als geviseerde cheques!

Bitcoin UTXO’s kunnen vergeleken worden geviseerde cheques. Ze geven je het recht om geviseerde Bitcoin cheques uit te schrijven (transacties uit te voeren) met behulp van de Bitcoin wallet private key en het zetten van een digitale handtekening.

Laten we eerst de werking van geviseerde cheques omschrijven om dit verder uit te diepen:

Een cheque is oorspronkelijk een schriftelijke betalingsopdracht, een betaalwijze door middel van een gedrukt waardepapier. Het is een type wissel waarmee iemand zijn bank opdraagt uit zijn tegoed bij de bank een uitbetaling te doen aan de ontvanger van de cheque. Bij een geviseerde cheque maakt de bank een document op waarbij deze bevestigt dat er op dat welbepaald ogenblik het bedrag van de cheque op de betrokken bankrekening staat van de opdrachtgever.

Bitcoin is boekhoudkundige revolutie gebaseerd op een programmeertaal (Script) en cryptografie. Het omvat een gedistribueerd driedimensionaal boekhoudsysteem, de blockchain met de benodigde algoritmes (zoals PoW & Nakamoto Consensus) om banken als derde partijen overbodig te maken voor het veilig en correct ontvangen en uitschrijven van betalingsopdrachten. Het probleem van dubbel spending (Byzantijnse generalenprobleem) is dankzij dit geniaal ontwerp opgelost.

Wanneer je over bitcoins beschikt, dan beschik je in feite over specifieke Bitcoin tegoeden in de vorm van UTXO’s (cheques) die aan jouw bitcoin adressen zijn overgeboekt door de vorige eigenaars. Deze tegoeden (de UTXO’s) kun je nu uitgeven; en wanneer je deze bitcoins uitgeeft, dan schrijf je in feite een nieuwe cheque waarbij je refereert naar de oudere checks die je hebt ontvangen en op basis waarvan je de nieuwe transactie (de input) samenstelt en vervolgens overmaakt naar de nieuwe ontvanger.

De vergelijking met een cheque is verder relevant aangezien je een ontvangen bedrag in bitcoins op je bitcoin adres in zijn geheelheid moet aanspreken bij het maken van een nieuwe transactie (input). Wanneer je 1 BTC hebt ontvangen als output (de UXTO) en je wilt deze vervolgens gebruiken bij het maken van een nieuwe input betaling van 0.25 BTC, dan zul je de gehele 1 BTC moeten verwerken in de betaling waarbij het restbedrag van 0.75 BTC als wisselgeld terug wordt gestuurd naar je Bitcoin adres als de resterende UTXO. Binnen Bitcoin speak heet dit sending the change to the change address. Deze worden met het wisselgeld gemarkeerd als spent outputs totdat de volledige transactie is afgerond. Dit proces wordt automatisch verzorgd door de Bitcoin wallet software en een normale Bitcoin wallet gebruiker hoeft zich hier niet druk over te maken.

Een software ontwikkelaar daarentegen kan stilstaan bij het feit dat een transactie verder kan worden uitgewerkt en er verschillende voorwaarden aan kunnen worden toegekend. Bitcoin transacties zijn gebaseerd op een scripttaal en programmeerbaar. Het is mogelijk om een Bitcoin cheque uit te schrijven die moet worden afgetekend door twee verschillende private keys, of twee van de drie, of vier van de vijf etc. Dit zijn de multisignature transacties. Deze kunnen worden opgezet met een bitcoinadres die met een 3 begint. Een Bitcoin cheque kan verder ook voorzien worden met een extra wachtwoord of zo opstellen dat niemand de UTXO kan uitgeven. Op deze manier kan iemand bitcoins definitief vastleggen en onbruikbaar maken als een transactiemiddel waardoor de schaarste toeneemt. Zeer veel gebruikers zijn hun private keys verloren waardoor ze nooit meer aan hun UXTO’s kunnen komen. Miljoenen bitcoins liggen definitief vast en maken daardoor de bitcoins nog schaarser dan ze al zijn. Verder kan er een tijdslot op een Bitcoin cheque worden gezet op basis waarvan een UTXO aan bepaalde tijdsvoorwaarden is verbonden. Het is verder ook mogelijk om een transactie op te stellen waarin geen bitcoins worden verplaatst, maar waarmee je een overeenkomst vastzet in de blockchain. De mogelijkheden zijn uiterst divers voor een creatieve Bitcoin ontwikkelaar.

Voor een goed boek over dit ondwerp:

Koop Bitcoin bij Bitvavo in Amsterdam!