Dont’ trust, verify lautet ein bekanntes Bitcoin-Motto. Der Name ist Programm: Anstatt Drittparteien wie Banken und Zahlungsnetzwerken wie SWIFT blind zu vertrauen, bietet Bitcoin die Möglichkeit, alle Vorgänge des Netzwerks eigenständig zu überwachen. Verletzen Netzwerkteilnehmer die Regeln, fällt das auf und wird sanktioniert. So geschehen am 10. Juli dieses Jahres.
AntPool propagiert ungültigen Block
Wie BitMEX Research, die Forschungssparte der Bitcoin-Börse BitMEX, tweetet, versuchte AntPool Block 584.802 mit Transaktionsgebühren auszustatten, die im Block überhaupt nicht enthalten waren.
Bitcoin had an invalid block at height 584,802, as spotted by @juscamarena
All 8 nodes at https://t.co/WKQ8hPDGON identified the block as invalid:
Bitcoin Core 0.18.0
Bitcoin Core 0.17.1
Bitcoin Core 0.16.2
Bitcoin Core 0.10.3
bcoin
Bitcoin Knots 0.14.2
btcd
Libbitcoin pic.twitter.com/p5WKJ5rO0t— BitMEX Research (@BitMEXResearch) July 10, 2019
Anders gesagt: AntPool hätte Gebühren für Transaktionen eingestrichen, die der Pool überhaupt nicht verarbeitet hatte. Leere Blöcke zu minen ist zwar möglich, nützt dem Netzwerk allerdings herzlich wenig. Denn der Sinn von Mining ist es, einen Konsens über alle Transaktionen im Netzwerk herzustellen sowie den Mempool, also den Pool an unbestätigten Outputs, zu leeren. Folglich hätte AntPool jedes Recht gehabt, einen leeren Block zu propagieren; dafür Transaktionsgebühren in Höhe von 1,265 BTC zusätzlich zum Coinbase Reward von 12,5 BTC einzustreichen hatte die Netzwerkregeln allerdings verletzt.
Full Nodes lehnen Block ab
Hier zeigt sich sodann der Reiz von dezentralen Systemen. Aufgrund der Tatsache, dass alle Knotenpunkte die selbe Software nutzen, besteht ein Konsens über die Netzwerk-Regeln. Wenn einzelne Teilnehmer diese verletzen – wie hier geschehen – stellen die Bitcoin Full Nodes einen Fehler fest und lehnen den Block als ungültig ab. Das Problem in diesem Fall: Die Transaktionsgebühren von 1,265 BTC hätten die Bitcoin-Geldmenge künstlich erhöht, da sie niemand bezahlt hätte. Dies wäre ein fundamentaler Verstoß gegen Bitcoins algorithmisches Wachstum und die Cap bei 21 Millionen Coins gewesen.
Hintergründe unklar
Obgleich Blöcke immer mal wieder für ungültig befunden werden, diskutiert die Szene die Vorgänge intensiv. Unklar ist, ob es sich hierbei um einen bewussten Täuschungsversuch von Seiten AntPools gehandelt hat oder um einen Software Bug. Letzteres erscheint indes plausibler. Schließlich ist das Minen von Bitcoin-Blöcken extrem energieaufwändig und somit kostspielig. Miner arbeiten – auch bei Einhalten aller Regeln – bereits an der Grenze zur Profitabilität. Das Propagieren gefälschter Blöcke fällt bei hinreichender Dezentralität ohne Weiteres aus und so dürfte AntPool deutliche Verluste eingefahren haben, die in keinem Verhältnis zu 15.000 US-Dollar unrechtmäßigen Profits stehen.
Yes, it looks like the block was found just seconds after the previous block. My guess would be that there was a bug in the block template generator that failed to clear out the txn fees from the previous template being worked upon.
— Jameson Lopp (@lopp) July 10, 2019
Die These eines Software Bugs vertritt auch Cypherpunk und Bitcoiner James Lopp. Der Software-Entwickler hebt hervor, dass AntPool den ungültigen Block nur 21 Sekunden nach Block 584.801 gefunden hatte. Zu dem Zeitpunkt hatte die Software die Transaktionsgebühren aus dem Coinbase Reward offenbar noch nicht gelöscht.
Der Vorfall beweist: Bei hinreichender Dezentralität gibt es schlicht keine Anreize, im Bitcoin-Netzwerk zu betrügen. Es lohnt sich nicht. Damit das Netzwerk dezentral bleibt, sollte es möglichst viele Bitcoiner geben, die eine Full Node betreiben.
Übrigens: Auch Bitcoin ist nicht unfehlbar. Zwei mal war das Netzwerk für mehr als 20 Minuten ausgesetzt. Trotzdem kann BTC eine Uptime von 99,98 Prozent vorweisen – das sollte doch genügen.