“Wir sind zu 100 Prozent gewiss, dass wir das Bitcoin Cash Netzwerk in viele verschiedene Forks spalten können.”

Am 1. September wird der Bitcoin Cash Stresstest-Day stattfinden: Die BCH-Community versucht, einen ganzen Tag lang 32 Megabyte große Blöcke zu bilden. Ein mysteriöser Miner kündigt derweil an, an diesem Tag Bitcoin Cash durch eine Reihe von Angriffen zum Kollaps zu bringen – und wählt dabei auch ein bisher eher wenig diskutiertes Angriffsziel: die LevelDB-Datenbank und den Arbeitsspeicherbedarf.

Bitcoin Cash rühmt sich ja, der Bitcoin mit mehr Kapazität zu sein. An sich ist das auch nicht falsch, da in die 32 Megabyte Blöcke von Bitcoin Cash an sich rund 100 Transaktionen je Sekunde reinpassen. Die Ironie der Geschichte ist nur, dass Bitcoin Cash kaum auf mehr als 0,1 Transaktionen je Sekunde kommt. Trotz Yours, trotz MemoCash, trotz allem. Webseiten wie txhighway.com oder bitcoinsubway.cash zeigen auch bald ein Jahr nach der Fork weiterhin eine Geisterstadt.

Bitcoin Cash ist wie ein Ferrari, der nicht aus der Spielstraße rauskommt, wo man nur mit Schrittgeschwindigkeit fahren darf. Um zu beweisen, dass der Motor auch wirklich das hält, was er verspricht, und nicht, wie die Kritiker sagen, abschmieren wird, sobald man einmal Vollgas gibt, veranstaltet die Bitcoin Cash Community am 1. September den Bitcoin Cash Stresstest Day:

“Der Bitcoin Cash Stresst Test,” erklärt die Webseite, “ist ein von der Community geführter Stresstest des Bitcoin Cash Netzwerks und der damit verbundenen Services. Unser Ziel ist es, im Lauf von 24 Stunden Millionen von Transaktionen mit minimalen Gebühren zu erzeugen.” Dieses Volumen soll Händler und Unternehmer weltweit davon überzeugen, “dass das BCH Netzwerk in der Lage ist, onchain zu skalieren und ein solches Volumen schon heute zu prozessieren.” Beim Stresstest sollen Daten gesammelt werden, die für Entwickler und Unternehmen äußerst nützlich sein werden.

32 Streifen, aber keine Karre: Der Transaction Highway auf Bitcoin Cash.

Jeder, der sich für Bitcoin Cash interessiert, kann mitmachen. Man kann ohne Ende auf yours.org tippen und bezahlen, seine Coins, wenn es denn funktioniert, mit CoinShuffle mixen, auf MemoCash ein Memo nach dem anderen senden, liken und beantworten, auf Satoshi Dice und Blockchain.Poker ohne Ende zocken, einen Hash von jeder Datei und Email, die man jemals erhalten hat, auf der Blockchain abspeichern, mit ChainBet eine Wette nach der anderen eingehen, und so weiter. Und wenn das nicht ausreicht, um die 32-Megabyte-Blöcke voll zu kriegen – was ziemlich wahrscheinlich ist – kann man immer noch auf die Skripte zurückgreifen, die die Organisatoren des Stresstest-Days bereitstellen wollen: “Skripts werden derzeit noch entwickelt und getestet und werden einige Wochen vor dem Stresstest verfügbar sein, damit Leute sie schon im Vorfeld testen können. Die Links werden hier bekanntgegeben,” verspricht die Webseite.

Ob das alles gut gehen wird? Glaubt man einer Gruppe namens “BitPico”, wird es ein Disaster werden.

Angriffsvorbereitungen haben bereits begonnen

BitPico ist, so viel kann man sicher sagen, ein Social Media Account auf Slack, Twitter und so weiter. Laut eigenen Angaben ist BitPico ein Kollektiv von Bitcoin-Entwicklern, -Minern und -Walen, die vor kurzem 1.300 Halong-Dragonmint-Miner ans Netzwerk angeschlossen haben, eine kumulierte Hashrate von mehr als 40.000 Terahash je Sekunde aufbringen und im Lauf des nächsten halben Jahres insgesamt 500.000 Terahash aus Atomenergie mit einem Hydro-Backup mobilisieren wollen.

Insgesamt ist BitPico, ob auf Twitter oder Slack, ziemlich großmäulig, und man weiß nie so genau, was dahintersteckt. So hat die Gruppe etwa damals angekündigt, SegWit2x trotz der Absage der Hardfork zu minen, und fiel vor kurzem mit einem kurzen, aber ergebnislosen DoS-Angriff auf das Lightning-Netzwerk auf. Nun tönt BitPico, das Angrifs-Equipment, das sie für die Lightning-Stresstests benutzt haben, auf Bitcoin Cash umzustellen. “Warum? Es ist Zeit, zu zeigen, wie zentralisiert bcash wirklich ist, und wir sind zu 100 Prozent sicher, dass wir das Netzwerk in viele verschiedene Forks spalten können. Wir freuen uns darauf, im September einen 51-Prozent-Angriff auf Bitcoin Cash zu fahren.”

Angeblich, so BitPico auf Twitter, hat die Vorbereitung des Angriffs bereits begonnen, indem die Gruppe langsam Angriffs-Nodes hochfährt, um mit insgesamt 5000 Nodes einen Sybill-Angriff zu initiieren. Für manche in der Bitcoin(BTC)-Szene ist dies Anlass genug, BitPico plötzlich zu mögen und “zu beten, dass es wahr ist.”

In einem Interview mit Coindesk, das noch nicht veröffentlicht ist, aber von dem BitPico die Antworten schon mal über Pastebin “geleakt” hat, nur für den Fall, dass sich Coindesk sträubt, das Interview zu veröffentlichen, erklärt die Gruppe genauer, was sie plant. Das ganze ist, ob nun Scherz oder Ernst, zu interessant, um es hier nicht zusammenzufassen.

Nodes fallen aus, frieren ein, forken sich weg

Auf die Frage, warum sie Bitcoin Cash angreifen, erklärt BitPico, dass es ein “Stress Test” sei, um “die Integrität des Bitcoin Cash Netzwerks im Sinne seiner Investoren zu validieren […] Die erste Regel aller dezentralen Computer-Netzwerke ist, dass es übel ausgeht, wenn sie nicht genügend angegriffen werden, um alle Probleme zu identifizieren und zu lösen.” An Angriffen plane man “alles von low-level TCP/IP stack attacks” zu “high level Bitcoin Cash protocol attacks.” Diese Kombination garantiere, dass es zu zwei Problemen kommt: “1. die schwächsten Nodes auf VPS werden abstürzen oder ihr Bandbreiten-Pensum verbrauchen und nicht mehr antworten”. Dies ist bei einem 32-MB-Stresstest nicht weiter erstaunlich.

Eine Überraschung ist hingegen das nächste von BitPico aufgezählte Problem: “2. alle anderen Nodes werden ausfallen, weil es eine Reihe fortlaufender vorgeminter 32 Megabyte-Blöcke gibt. Unsere LevelDB-Stresstests zeigen, dass die Bitcoin Cash UTXO Datenbank bis zu 200 Gigabyte Arbeitsspeicher braucht, um einer komplexen 32 Megabyte-Block vollständig zu verarbeiten. Wenn dieser Arbeitsspeicher nicht verfügbar ist, wird die UTXO-Datenbank korrumpiert, und wenn LevelDB den Arbeitsspeicher nicht freigibt, wird das Betriebssystem einfrieren. Unsere LevelDB-Stresstests sind seit mehr als 7 Monaten aktiv, seit wir das UTXO-Set unserer Bitcoin-Implementierung in eine eigene Datenbank überführt haben. LevelDB wurde nicht dafür gemacht, um damit umzugehen, dass so komplexe Big Data parallel gelesen, geschrieben und gelöscht wird.”

BitPico ist zuversichtlich, die Bitcoin Cash Blockchain zu forken, weil es nur eine Handvoll von Pools und nicht genügend Full Nodes gibt, um die Netzwerk-Regeln durchzusetzen. “Wenn wir die Mehrheit dieser Nodes isolieren, können wir unsere eigenen Nodes benutzen, um Blöcke oder Header zurückzuhalten, Blöcke oder Header abzulehnen, absichtlich zu scheitern, Blöcke oder Header weiterzuleiten, und so weiter.” Zugute kommt den Angreifern dabei das jüngst auf 32 Megabyte erhöhte Limit der Blocksize: “Durch eine Kombination von Sybil-Angriffen und 32-Megabyte-Blöcken, die wir durch unsere Farm produzieren, können wir genügend Blöcke injizieren, um die Latenz zu erhöhen, so dass die Miner den Konsens verlieren und beginnen, je ihre eigenen Chains zu bilden, da wir ja alle Mining-Nodes isoliert haben durch unsere Nodes, die alle verschiedene Regeln über die maximal akzeptierten Größen der Blöcke haben.” Wenn es so weit sei, könne jede sicher und ohne Mühe Double-Spends von unbestätigten Transaktionen ausführen.

Dabei scheint BitPico nicht genuin schlechte Absichten zu haben. Sie endet das Interview mit dem Ausspruch, dass “nur die Zeit zeigen kann, ob Bitcoin Cash diesem Angriff standhalten kann.” Andere in der Bitcoin(BTC)-Szene hoffen dagegen offen darauf, dass dies nicht geschieht: “Lasst uns weiterhin wünschen. Es wäre wundervoll für uns alle, wenn Roger Vers betrügerische Hoffnungen und Träume in die Vergessenheit geforkt werden.”

Bevor wir aber weiter auf dem leidigen Thema des unverständlichen Hasses gegen Bitcoin Cash und Roger Ver herumreiten, kommen wir wieder zurück zum Angriff von BitPico. Es klingt auf jeden Fall interessant. Aber ergibt es auch Sinn?

Interessant, aber auch zweifelhaft

Ich habe einige Bitcoin Cash Entwickler darauf angesprochen. Dass schwache Nodes, deren Bandbreite nicht ausreicht, um eine Reihe von 32 Megabyte-Blocks zu verbreiten, vom Netz fallen, dürfte nicht weiter überraschend und auch ein begrenzter Schaden sein. Wenn man 32 Megabyte-Blöcke erlaubt, braucht man auch Knoten, die damit klarkommen. Es dürfte aber hochinteressant werden, wie viele Knoten dies tatsächlich sind.

Dass es zu Forks kommt, bezweifeln die meisten Entwickler, da die Bitcoin-Cash-Miner und auch die Börsen und Händler ein dichtes Netzwerk bilden, das auch durch sehr viele falsche Nodes kaum oder gar nicht zu isolieren ist. Wenn der Node einer Börse oder eines Blockexplorers mit den großen Minern verbunden sind – man darf annehmen, dass sie es sind – und mit diesen dieselben Konsens-Regeln teilt, dann bleiben Versuche, sie durch Fake-Nodes zu trennen, vermutlich wirkungslos. Aber wie es aussieht, wenn es gezielte, lange vorbereitete Angriffe durch Miner und Nodes in einem Stresstest-Szenario gibt, dürfte noch einmal eine andere Frage sein.

Was ist schließlich mit der LevelDB-Korruption? Dieses Szenario ist mit Sicherheit am interessantesten und am schwierigsten einzuordnen. Einige Entwickler haben gemeint, es klinge nicht unplausibel, dass man den Arbeitsspeicherbedarf von LevelDB auf 200 Gigabyte hochtreibt, aber man müsse dies genauer erforschen. Normale Blöcke sollten kein Problem sein, erklärt ein Entwickler von Bitcoin Unlimited. Man habe mit dem Gigablock-Testnet Blöcke bis zu einer Größe von 500 Megabyte getestet und keine Probleme mit LevelDB festgestellt. Aber es wäre denkbar, dass ein speziell gebauter Block zu solchen Problemen führt.

Ein anderer Entwickler bezweifelt auch dies. Der Cache von LevelDB wird in der Config-Datei eingestellt, weshalb LevelDB gar nicht mehr Arbeitsspeicher verwenden kann, als dem Bitcoin-Cash-Node an sich zugewiesen wird. Es gebe bei einer veralteten Implementierung teilweise Spitzen im Arbeitsspeicherbedarf, wenn der Inhalt der Datenbank auf die Festplatte geschrieben wird, aber das sei schon längst behoben. Zudem gebe es sehr riesige Anwendungen, die LevelDB nutzen, deutlich größer als Bitcoin, und auch dort gäbe es keine Probleme.

Das Argument bzw. BitPicos Angriffsplan wirke insgesamt suspekt. So implizieren manche Angaben – etwa die fortlaufenden, vorproduzierten 32-Megabyte-Blocks – einen 51-Prozent-Angriff, zu dem BitPico wohl eher nicht in der Lage ist. Aber auch dies ist schwer zu sagen, da Bitcoin Cash meist nur einen geringen Anteil der gesamten von SHA256-Asicminern produzierten Hashrate hat. Wenn sich 10 bis 20 Prozent der Bitcoin-Hashrate aufmachen, um Bitcoin Cash anzugreifen, dürften sie genügend Power haben.

Einig sind sich die Bitcoin Cash Entwickler darüber, dass fortlaufende 32-Megabyte-Blöcke in jedem Fall noch eine Verbesserung der Software brauchen. Die Aussicht, dass ein entsprechender Block den Arbeitsspeicher-Bedarf von LevelDB auf 200 Gigabyte hochtreibt, finden manche auch eher spannend. Wird Parallel Validation von Bitcoin Unlimited dafür sorgen, dass parallel zu diesem Block ein anderer gemined wird? Wird das Netzwerk einen spontanen Konsens finden, welche Blöcke erlaubt sind? Was wird passieren?

All dies sind Gründe, weshalb man dem Stresstest mit viel Interesse, aber auch ein wenig Bangen entgegenfiebern darf.

The post “Wir sind zu 100 Prozent gewiss, dass wir das Bitcoin Cash Netzwerk in viele verschiedene Forks spalten können.” appeared first on bitcoinmining.shop.