Technical analysis & news on Blockchain & Cryptocurrencies | Coincronica
Dienstleistungen Nachrichten

Stresstest zeigt: Bitcoin Cash skaliert auf mehr als 2 Millionen Transaktionen am Tag

Am Wochenende fand der Bitcoin-Cash-Stresstest statt. Er war ein schlagender Triumph für die Big Blocker. Mit mehr als 2 Millionen Transaktionen am Tag und einem Rekordblock von 21 Megabyte und knapp 100.000 Transaktionen stellt sich Bitcoin Cash damit klar als die am höchsten skalierende dezentrale Kryptowährung auf.

Der Bitcoin-Cash-Stresstest begann schon einige Stunden vor dem 1. September und dauerte auch länger als 24 Stunden an. Zum Teil läuft er noch jetzt. Das Ziel war es, die Miner dazu zu bringen, möglichst große Blöcke zu produzieren und zu beobachten, was dann passiert.

Ein solcher Stresstest ist das Horror-Szenario der Small Blocker, die Ausgeburt jener Apokalypse, die als schwarzer Schatten hinter dem jahrelangen Blocksize-Streit gestanden hat: Man hat eine kaum limitierte Größe der Blöcke, und die Community startet mithilfe von Skripten und Spam-Transaktionen einen großen Angriff auf sich selbst. Laut allem, was man die letzten Jahre gehört hat, müsste das einem Blockchain-Suizid gleichkommen.

Es kam dem offenbar nichrt gleich. Der Stresstest war ein maßlos glorreicher Erfolg. Im Lauf von 24 Stunden wurden mehr als 2 Millionen Transaktionen bestätigt. Der größte gefundene Block hatte 21,35 Megabyte und beinhaltete fast 96.000 Transaktionen; mehr als 50 Megabyte an Blöcken in 100 Minuten war zeitweise die Regel. Bitcoin Cash hat damit den Skalierungs-Rekord für dezentrale Blockchains aufgestellt und bewiesen, dass die Währung bereit ist für einen sehr viel breiteren Einsatz als Zahlungsmittel.

Zusammenfassung der Stresstest-Stats von Blockchair.com

Allerdings gingen einige Teile des Ökosystems während des Stresstests in die Knie:

  • So gut wie alle Transaktions-Visualisierungen wie Txhighway oder txstreet sind ausgefallen. Ich glaube, es liegt daran, dass die Webseiten erstens ein ungewohntes Besucheraufkommen hatten und zweitens schlecht gebaut sind: Sie benutzen einfach Javascript, um jede einzelne Transaktion durch ein Auto oder eine Person darzustellen. Das überfordert die Computer der meisten Systeme – und vermutlich auch das Backend.

TxStreet ist kaputtgegangen. Während mein Node eine Menge Transaktionen je Sekunde sieht, herrscht an der Bushaltestelle von TxStreet gähnende Leere.

  • Auch einige Blockexplorer haben den Geist aufgegeben. Blockdozer, das auf Basis des Nodes BitPrim läuft, hat schon relativ früh aufgegeben und blieb relativ lange offline. Auch Blockexplorer.com war zeitweise down, lieft aber die meiste Zeit über sehr stabil und auch schnell. Blockchair.com dagegen blieb die ganze Zeit online, zeigte größere Blöcke aber teilweise mit einer minutenlangen Verzögerung. Vollständig funktional blieben schließlich die Blockexplorer von BTC.com und Coin.Dance.
    Man darf vermuten, dass die Blockexplorer von zwei Seiten unter Druck gerieten: Erstens durch die vielen Daten, die sie vom Node in ihre Datenbanken überspielen mussten, zweitens durch die vielen Besucher der Webseite, die den Stresstest verfolgen wollten.

Blockchair ist zwei Blöcke hinter meinem Node, holt aber in einigen Minuten wieder auf.

  • Am gravierendsten dürfte der vorübergehende Ausfall von BitPays Insight gewesen sein. Er führte nämlich dazu, dass man die CoPay/BitPay-Wallet einige Zeit lang nicht benutzen konnte.
  • Die Börse CoinEx.com fiel vorübergehend aus. Es ist aber nicht klar, ob dies am Stresstest lag, oder ob noch ein zusätzlicher DoS-Angriff dazukam.
  • Das Tool von Scale.Cash schaffte es teilweise nicht mehr, weitere Transaktionen in den MemoryPool zu bringen.

Mehr direkte Ausfälle sind mir nicht bekannt. Die Basisinfrastruktur von Bitcoin Cash, die Nodes und Miner, haben sich extrem widerstandsfähig gezeigt. Ich habe den Stresstest auf meinem persönlichen System beobachtet, auf dem ich einen Bitcoin-Unlimited-Node laufen lasse. Das System hat acht i7-Kerne und 32GB Arbeitsspeicher, was nicht eben High-Tech ist, aber doch auch nicht schlecht. Besser als ein Raspberry Pie, und als VPS nicht ganz günstig.

Ein 13MB-Block beschäftigt einen der Kerne meiner CPU für einige Sekunden. Der Rest meines Systems bleibt aber unbeeindruckt.

Mein Bitcoin Unlimited (BU) Node hat sich wunderbar geschlagen. Die Belastung war zu keinem Zeitpunkt wirklich zu spüren, selbst nicht beim Rekord-Block von 21 Megabyte. Ich war überrascht, wie stabil und unauffällig der Client unter diesen extremen Umständen läuft. Insgesamt brachen so gut wie keine Bitcoin Unlimited Nodes weg, die Anzahl stieg über den Tag hinweg sogar. Ein Entwickler erzählte mir, dass der schwächste seiner BU-Nodes – ein altes Laptop mit 32-bit-System und 2GB Arbeitsspeicher – eingefroren ist, nachdem ein 15-MB-Block eintraf.

Übersicht über MemPool und Blockhöhe im Debug-Fenster von Bitcoin-Unlimited. Mit am spannendsten sind die Statistiken zu den Xthin und Graphene.

Anders sah die Lage bei BitcoinABC aus. Hier sind von etwa 1450 Nodes rund 250 ausgefallen. Es gab einen Bericht, dass stark vernetzte BitcoinABC-Nodes mit mehr als 50 Peers  eingefroren sind, weil sie die Netzwerk-Nachrichten nicht parallelisieren konnten, während Bitcoin Unlimited die Nachrichten schon länger besser filtert. Aber das ist nur Spekulation. Es wäre ebenso gut möglich, dass der massive – und offenbar dauerhafte – Verlust von BitcoinABC-Nodes auch politische Gründe hat: ABCs harte Position in der kommenden Hardfork behagt nicht jedem, während BU einen stärker kooperativen Ansatz gewählt hat.

Eine Schlappe für ABC, ein Triumph für BU: Anzahl von Bitcoin-Cash-Nodes auf Coin.Dance

Eindeutiger sieht die Lage bei den BitPrim-Nodes aus. Diese sind von 32 auf kurzzeitig 2 gefallen und stehen mittlerweile wieder bei 32. Das spricht sehr dafür, dass die BitPrim-Nodes Probleme mit dem hohen Transaktionsaufkommen hatten.

Auch die Miner scheinen den Stresstest gut bestanden zu haben. Sie sind relativ verantwortungsbewusst mit der Produktion von Blockspace umgegangen. Die meisten Pools haben ihre internen Limits nur nach und nach angehoben und sich langsam an größere Blöcke herangetastet. Erst wurde die 8MB-Marke geknackt, dann gab es die ersten Blöcke mit mehr als 10MB, dann mehr als 12 und schließlich mehr als 15.

Der absolute Rekord war ein Block mit 21,5 Megabyte, den BMG zu einem Zeitpunkt gefunden hat, zu dem der Stresstest eigentlich schon vorbei war. Mit 95.000 Transaktionen hat dieser Block 158 Transaktionen je Sekunde bestätigt, was ein phänomenales Ergebnis ist und das durchschnittliche Volumen von Bitcoin Cash um das etwa Tausendfache übersteigt.

Der mit Abstand größte Block, der jemals mit der Bitcoin-Software produziert wurde.

Bitmains Antpool dagegen hat ausschließlich Blöcke mit weniger als 100 Kilobyte geschürft. Ich vermute, der Pool hat die Spam-Transaktionen durch Scale.Cash ignoriert, was eine voldieselbe Taktik gefahrenlkommen legitime und auf Dauer vermutlich auch notwendige Strategie ist. BTC.com – eine Tochterfirma von Bitmain – hat lange Zeit denselben Kurs gefahren, dies aber im Lauf des Stresstests geändert und schließlich auch mehrere Blöcke von mehr als 10 Megabyte geschürft. Alle Pools haben jedoch auf besonders große Blöcke kleinere Blöcke folgen lassen, vermutlich, um dem Netzwerk die Zeit zu geben, die Blöcke und Transaktionen zu verarbeiten.

Für das Bitcoin-Cash-Ökosystem war der Stresstest ungemein interessant. Er hat gezeigt, dass die Bitcoin-Software durchaus in der Lage ist, auf ein Volumen von mehreren Millionen Transaktionen am Tag zu skalieren. Der Stresstest hat allerdings auch gezeigt, dass die Software noch weit davon entfernt ist, perfekt zu skalieren. So mangelt es etwa an der Parallelisierung der Aufgaben, bei ABC mehr als bei BU, aber grundsätzlich bei allen Implementierungen. Um mit einer dauerhaften Blocksize von 32 Megabyte klar zu kommen, bedarf es noch einer Menge Arbeit am Code.

Die vielleicht wichtigste Erkenntnis des Stresstests ist jedoch ein Wandel der Ziele: Es geht nicht länger darum, ein Limit für die Blocksize zu setzen oder zu erhöhen, sondern darum, die Technologien zu entwickeln, die größere Blöcke ermöglichen. Die Miner haben nicht einmal versucht, das Limit von 32 Megabyte auszureizen. Vielleicht haben sie Furcht, das der Block verwaist – was eine Art Selbstregulierung wäre – oder es scheiterte daran, dass das Programm, mit dem die Miner Blöcke bilden, zu lange braucht, um einen 32-MB-Block zu erzeugen. Auch hier müssen die Operationen stärker parallelisiert werden.

Trotz der Ausfälle einiger Services und des Bedarfs, die Software weiter zu optimieren, hat der Stresstest eines in aller Deutlichkeit gezeigt: ein großer Teil der Bedenken, die maßgeblich für den jahrelangen Blocksize-Streit verantwortlich waren – und dafür, dass Bitcoin bei 1MB + SegWit verharrt – waren unnötig. Aber für diese Erkenntnis ist es eigentlich bereits zu spät …

Related posts

Neues von Lightning: Eclair, ATM, WebLN und ein Rubellos

Kathrin Jung

Noch mehr Blacklists: US-Finanzministerium setzt Bitcoin-Adressen chinesischer Drogenschmuggler auf eine schwarze Liste

Kathrin Jung

Die letzten Infos vor dem Hashwar …

Kathrin Jung

Leave a Comment