Wanneer is een blockchain-transactie definitief?

Binance wacht bij een Bitcoin-storting nog maar 1 confirmation voordat ze het geld vrijgeven. Nemen ze daarmee een groot risico? Na hoeveel confirmations is een transactie eigenlijk definitief? Wij zochten het uit. De opmerkelijke conclusie is dat het afhangt van hoeveel geld je verstuurt!

BitcoinBinance

Wanneer is een blockchain-transactie definitief?
0%
Bert Slagter
Door Bert Slagter

Begin juli 2019 maakte Binance bekend dat ze voor inkomende bitcoin-transacties nog maar 1 confirmation wachten voordat het bedrag beschikbaar is om mee te handelen. Dit was eerder 2 confirmations.

Dit betekent in de praktijk dat als je bitcoins naar Binance stuurt, dat je er eerder mee kunt handelen. Goed nieuws dus. Maar wat betekent het aantal confirmations eigenlijk? En wanneer is een transactie definitief?

Wat zijn confirmations?

Het bitcoinbedrag in je wallet bestaat eigenlijk uit nog niet bestede stukjes bitcoin, die we UTXO's noemen (unspent transaction output). De waarde van die UTXO's bij elkaar is het beschikbare saldo.

Als je een bedrag gaat versturen, dan bouwt je wallet een transactie op, waarbij je bewijst dat jij het recht hebt om de UTXO's te besteden, bijvoorbeeld omdat je een bepaalde geheime sleutel bezit. Die transactie wordt verstuurd naar de nodes van het Bitcoin-netwerk.

Je transactie zit op dat moment in de mempool, een soort wachtruimte om opgenomen te worden in het volgende block. Omdat je transactie nog geen onderdeel is van een block, en dus de blockchain, kan de ontvangende partij er nog niet op vertrouwen dat het geld daadwerkelijk van hem is. Je transactie heeft nu 0 confirmations.

Op het moment dat er een block aan de blockchain wordt toegevoegd met jouw transactie erin, is de validiteit van je transactie bevestigd, en heeft je transactie 1 confirmation. 

Het gevonden block wordt rondgestuurd en de miners beginnen het volgende block te bouwen, met daarin nieuwe transacties uit de mempool. Onderdeel van het volgende block is een verwijzing naar het laatstgemaakte block met daarin jouw transactie. Als dat volgende block gevonden is, dan heeft jouw transactie 2 confirmations.

Hoe meer blocks er na jouw block komen, en dus hoe meer confirmations, hoe groter de zekerheid dat jouw transactie onomkeerbaar is.

Bij 1 confirmation kan het zijn dat er elders tegelijk een ander block is gemaakt waarop het volgende block gebaseerd zal worden. Dat gebeurt af en toe. Eén van de twee blocks zal dan niet gebruikt worden in de chain.

Miners kiezen altijd de langste keten die ze kennen om mee verder te werken, omdat nodes de langste keten die ze kennen beschouwen als de waarheid. Als er twee blocks tegelijk zijn gemaakt, dan zullen miners verdergaan met het block waarop als eerste een volgend block gevonden wordt.

Als jouw transactie alleen in het ongebruikte block zat, en niet in de andere, dan is die dus alsnog niet vastgelegd. In de praktijk zit een transactie vaak ook in het andere block, en zo niet, dan zal die terug Hoe meer blocks er na jouw block komen, hoe kleiner de kans dat dit gebeurt.

Bij 2 confirmations is de kans bij Bitcoin al klein dat er onder normale omstandigheden tegelijk een alternatieve chain is met dezelfde lengte. De laatste keer dat dit gebeurde was in 2015 bij block 363998.

Maar onder abnormale omstandigheden kan dit wel degelijk gebeuren. Bijvoorbeeld als het netwerk tijdelijk in twee stukken gesplitst is door een wereldwijde internetstoring, of als kwaadwillenden proberen transacties terug te draaien.

Het terugdraaien van één of twee blocks kan met een beetje geluk zomaar lukken. Maar een groter aantal blocks terugdraaien lukt alleen als je voor langere tijd een flinke meerderheid van de rekenkracht beheerst.

Steeds definitiever

Veel clients zoals wallets en exchanges hanteren een groter aantal confirmations voordat ze een transactie als definitief presenteren. Ergens tussen 3 en 6 confirmations is gebruikelijk.

Maar het kan nog veel veiliger.

De block subsidy die de miner krijgt bij het maken van een block (op dit moment 12,5 bitcoin) kan pas worden gebruikt na 100 confirmations. Dit wordt ook wel de block maturation time genoemd. Dat is om die reden ook het aantal confirmations dat Bitcoin-sidechain Liquid nodig heeft.

Als je praat over settlement en finality, zie dat dan niet als een discrete grootheid ("eerst is het niet gesetteld, en daarna wel"). Zie het als een proces waarbij door het verstrijken van de tijd een transactie steeds zekerder wordt.

Nic Carter vergelijkt het met het verstenen van een houten tak. Slechts twee dingen bepalen de snelheid waarmee het hout versteent. De omstandigheden en de tijd.

Instead of viewing settlement as a function of some preconceived number of confirmations, think of settling a transaction in a proof of work system as the process of wood petrifying slowly. It happens at a given rate and can’t be accelerated. The rate is determined by the variables enumerated above: chiefly, ledger costliness, transaction size, and the availability of addressable hardware. Once completed, the wood has been replaced by minerals and is rock solid, no longer soft and malleable. The features of the wood are forever frozen in time.

Nick Szabo heeft het over computational amber. Een andere mooie beeldspraak is dat je block begraven ligt onder de blocks die erna komen. Hoe meer, hoe dieper, hoe moeilijker op te graven.

Verschillende blockchains

De block time, en dus het aantal blocks per uur, verschilt per blockchain. Bitcoin heeft een block time van 10 minuten, Litecoin 2,5 minuut en Ethereum 15 seconden.

Eén confirmation van Ethereum betekent dat er maar 15 seconden is gewerkt. Je hebt veel meer confirmations nodig om dezelfde zekerheid te verkrijgen als bij Bitcoin. Dat is alleen al te zien in het aantal orphaned blocks, dat bij Ethereum ruim 10x zo hoog is.

Je kunt de hoeveelheid zekerheid die één confirmation toevoegt met elkaar vergelijken, door de tijd dat er met een bepaalde energie (rekenkracht, geld) is gerekend voor die confirmation vergelijken.

Als we dan één Bitcoin-confirmation als rekeneenheid nemen, dan zien we dat je bij Ethereum daar zo'n 300 confirmations voor nodig hebt en bij Litecoin zo'n 50.

De block time is dus niet interessant voor hoe snel je een transactie als definitief kunt beschouwen. Een blockchain met een block time van 1 seconde zorgt voor heel snelle vastlegging van de transactie, maar het kan wel dagen duren voordat die transactie net zo zeker is als na 10 minuten op de Bitcoin-blockchain.

Hoeveel confirmations heb ik nodig?

We begonnen dit artikel met het nieuws van Binance dat het aantal confirmations verlaagd heeft voor inkomende transacties.

De vraag is hoeveel confirmations moet je wachten voordat je zeker genoeg weet dat je het geld daadwerkelijk ontvangen hebt?

Je kunt daarvoor kijken naar hoeveel het kost om de blockchain te herschrijven, en de waarde die jouw transactie vertegenwoordigt. Zodra het duurder is om de blockchain te herschrijven dan jouw transactie zou opleveren, is het economisch niet meer interessant voor een aanvaller om dat te doen.

Op Crypto51 kun je zien hoeveel het kost om 1 uur lang een 51%-attack uit te voeren op Bitcoin, op dit moment is dat ruim $600.000. Dit bedrag is de absolute ondergrens overigens, omdat in de praktijk 51% te weinig is voor een geslaagde aanval.

Dus als je wacht op een transactie van 6 miljoen dollar, dan zou je het beste 10 uur kunnen wachten voordat je de goederen verstuurt, oftewel 60 confirmations.

Als je t-shirts verkoopt en iemand je $20 heeft betaald, dan is 1 confirmation misschien wel prima.

Met 1 confirmation kan Binance redelijk zeker zijn van de geldigheid van transacties tot enkele honderdduizenden dollars. Voor grotere bedragen zullen ze vast een uitzondering hebben en nog even wat extra confirmations afwachten.

En mocht het alsnog misgaan, dan hebben ze een flinke reserve om het mee op te lossen. Ze nemen vermoedelijk bewust een gecalculeerd risico om de gebruiksvriendelijkheid te vergroten.

Blockchains zonder Proof-of-Work

We hebben het tot nu toe alleen gehad over blockchains met Proof-of-Work als consensus-algoritme.

Er zijn ook blockchains die op een andere manier bepalen hoe het volgende block eruit ziet, bijvoorbeeld met één van de vele PoS of BFT-varianten.

In de meeste van die gevallen is er geen natuurkundige belemmering om grote stukken van de blockchain te herschrijven. De nodes die de blockchain valideren kunnen niet zien dat er een bepaalde hoeveelheid werk is verricht, en daarmee een bepaalde hoeveelheid geld en tijd is geïnvesteerd.

Dat betekent dat als de block validators gezamenlijk besluiten om de chain te herschrijven, dat dit gewoon kan. Bijvoorbeeld omdat ze daar economisch belang bij hebben, of omdat ze daartoe worden gedwongen door autoriteiten.

Er is dan daarna een langere keten die aan de regels voldoet, en de nodes zullen die gewoon accepteren als de nieuwe waarheid.

Dit geldt voor bekende chains als Ripple, EOS, TRON en Stellar, maar ook voor de door Facebook voorgestelde Libra.

Wanneer is een transactie echt definitief?

Bij proof-of-work wordt een transactie met elke confirmation definitiever. Tot de mogelijkheid om de geschiedenis te herschrijven praktisch onmogelijk wordt.

Bij andere consensus-algoritmen kan een transactie heel snel met zekerheid opgenomen zijn in de blockchain. Maar je blijft voor altijd afhankelijk van de betrouwbaarheid van de validators die op elk moment kunnen besluiten de geschiedenis te herschrijven.

Tot slot

In januari 2013 besloot Duitsland om de helft van hun overzeese goudvoorraad naar het eigen grondgebied te halen. Ruim 50.000 baren goud moesten worden vervoerd, een totale waarde van 27 miljard dollar. Een enorme klus. Dat begon al bij de verzekering. De meeste verzekeraars keren uit in dollars, en niet in goud, en dat was een te groot risico. Na het verschepen is een deel van de baren in Zwitserland omgesmolten om de juiste zuiverheid en vorm te verkrijgen.

De hele operatie kostte 5 jaar en 7,6 miljoen dollar.

Als het om grote bedragen gaat, dan mag settlement wat kosten. Die 100 confirmations wachten voor 10 miljoen dollar is een kleine moeite. En dat is de kern van dit artikel. Kies de zekerheid die past bij je transactie. Hoeveel confirmations dat is, hangt af van de blockchain.

Wil je hier meer over weten? Lees dan dit zeer goede artikel van Nic Carter op medium. Een aantal schema's bij dit artikel hebben we van hem overgenomen.

Iedereen heeft een mening

Onder de noemer Opinie schrijven we regelmatig over een spraakmakende podcast, video of tweetstorm. We zijn het niet noodzakelijkerwijs eens met de spreker of schrijver, maar vinden het interessant genoeg om te delen, duiden en ondertitelen.

Over de auteur

Bert Slagter

Bert Slagter

Medeoprichter van LekkerCryptisch. Achtergrond in informatica en natuurkunde. Bouwt mooie software, teams en bedrijven. Student van geopolitiek, macro-economie, complexe systemen en waarschijnlijkheid. Op zoek naar het signaal in de ruis.