Bitcoin heeft uptime van 99,98%. Met deze twee incidenten ging het fout
Het Bitcoin netwerk is als een kloppend hart. Iedere keer als een miner een block aan de blockchain rijgt, is dit een teken van leven. Je zou kunnen zeggen dat Bitcoin een hartslag heeft van gemiddeld zes slagen per uur. Maar dat is wel eens anders geweest.
Bitcoin downtime
In de meer dan tien jaar dat Bitcoin bestaat, is het wel eens down geweest. Twee keer om precies te zijn. Maar schrik niet. De laatste keer dat dit gebeurde was alweer in maart 2013. En ook in de begindagen in 2010 was het ook een keertje raak.
Al met al kunnen we stellen dat Bitcoin een uptime heeft van ruim 99,98%. En dit percentage loopt met iedere minuut op. En als we vanaf 2013 beginnen met meten, komt deze uptime zelfs neer op 100%! Inmiddels is het al meer dan 2,700 dagen niet meer fout gegaan.
Problemen in 2010
In 2010 ging het mis met een “value overflow incident”. Er waren twee adressen die ten onrechte 92,2 miljard coins kregen toegerekend. Als gevolg hiervan, was het (juiste) netwerk acht uur en zevenentwintig minuten offline. Een softfork deed deze buggy transacties teniet en het netwerk ging weer foutloos door.
Om exact te zijn was het 15 augustus 2010 en ging het om block 74.638. De transactie creërde in totaal ruim 184.467.440.737 BTC voor drie verschillende adressen. Op de Bitcoin Wiki is meer te lezen over deze bug.
Binnen vijf uur na de ontdekking werd een nieuwe versie van de client gepubliceerd. De soft fork bevatte een wijziging in de consensusregels. Hierdoor is de value overflow transactie met de te grote output(s) afgewezen.
Probleem in 2013
In 2013 stond Bitcoin kort ‘stil’ nadat een blok werd afgewezen doordat miners verschillende versies van de Bitcoin client gebruikten. Dit resulteerde in een korte chain split die na zes uur en twintig minuten werd opgelost. De miners schakelden over naar dezelfde client en zo loste het probleem zich op.
Op GitHub staat dit probleem en ook de oplossing nader uitgelegd onder de BIP 50, met de naam March 2013 Chain Fork Post-Mortem.
Het ging mis bij een blok met een groter aantal totale transactie-inputs dan er ooit tevoren werd gemined en gebroadcast. De 0.8-nodes konden dit aan, maar sommige pre-0.8 Bitcoin-nodes wezen dit block af. Hierdoor onstond er een splitsing van de blockchain.
De pre-0.8-incompatible chain had op dat punt ongeveer 60% van de rekenkracht, waardoor de splitsing niet automatisch werd opgelost.
Om een blockchain zo snel mogelijk te herstellen, hebben BTCGuild en Slush hun Bitcoin 0.8-nodes gedowngraded naar 0.7. Hun pools wezen daardoor ineens ook de grotere blocken af. Op deze manier kwam alles toch weer goed.
Op Bitcointalk is er nog een hele discussie ontstaan over een double spend die destijds plaats vond. De “unconfirmed” transactie zat in een block dat later de status orphaned kreeg.