BSV: Blöcke von mehr als 200 Megabyte werfen einige Knoten aus dem Netzwerk

Laut vielen Medien gab es bei Bitcoin SV einen “dreifachen Chainsplit” in Folge der Erhöhung des Blocksize-Limits auf 2 Gigabyte. Dem ist nicht so. Tatsächlich wurden in zwei Stresstests neue Rekord-Blöcke produziert – die viele Knoten im Netzwerk an ihre Belastungsgrenze getrieben haben.
Wenn man auf Nummer sicher gehen will, etwas zu schreiben, das in der weiteren Krypto-Szene gut ankommt, ist es immer eine gute Idee, etwas schlechtes über Bitcoin SV (BSV) und große Blöcke zu sagen. Das findet garantiert Zustimmung.
Crypto.IQ, ein Portal für “Bitcoin und Investment News von Insider-Experten, denen man vertrauen kann”, hat sich in der Beziehung letzte Woche besonders hervorgetan. Es ging um einen der periodisch auftretenden Stresstests von Bitcoin SV. Eigentlich wollte ich dazu nichts schreiben, aber da die Berichterstattung dazu relativ einseitig daherkommt, fühle ich mich genötigt.
Laut Crypto.IQ kam es zu einem “dreifachen Chain-Split” nachdem Bitcoin SV “unnötigerweise” das Blocksize-Limit auf 2 Gigabyte erhöht hat. In dem Artikel erfahren wir, dass bereits die Erhöhung des Blocksize-Limits auf 128 Megabyte in der Fork im November “lächerlich” war; die Anhebung auf 2 Gigabyte mit dem kürzlich erfolgten “Quasar-Upgrade” sei dementsprechend “absurd.” Nach dem Upgrade habe CoinGeek, das Bitcoin SV “zentral kontrolliert”, jeden zum Upgrade gezwungen, indem sie einen “lächerlichen” 210 Megabyte Block gemined haben, was wie eine “totalitäre und zentralisierte” Weise wirke, Dinge zu tun.
Tatsächlich wurde mit der Quasar-Hardfork das Blocksize-Limit für Nodes auf 2 Gigabyte erhöht, während für Miner ein weicheres Limit von 500 Megabyte gilt. Dieses Limit ist mit voller Absicht sehr weit über dem alltäglichen Bedarf, um zu verhindern, dass es in Zukunft zu Kapazitätsengpässen kommt und um den Usern zu signalisieren, dass es keine begrenzte Kapazität geben wird. Man kann dies wie Crypto.IQ “lächerlich” finden, sollte aber zumindest begründen können, weshalb man diese Zuschreibung verwendet.
Die Geschichte vom dreifachen Chainsplit ist jedoch schlichterdings falsch. Sie geht auf einen Tweet von BitMex zurück, demzufolge 19 Prozent der Nodes von BSV es versäumt haben, das Upgrade durchzuführen. Diese sind auf einer anderen Chain als die Nodes mit Upgrade, und es wurden tatsächlich in den Tagen nach der Fork einige Blöcke an diese Chain angehängt. Von einer ernstzunehmenden, dauerhaften Spaltung der Blockchain – wie bei der Fork von Ethereum und Ethereum Classic oder der Fork von Bitcoin Cash und Bitcoin SV – kann jedoch keine Rede sein.
Kurz nach der Hardfork gab es Versuche der Community, die neuen Limits auszureizen. Zunächst wurden in der “Operation Datablast” so viele Daten wie möglich auf die Blockchain hochgeladen, um sehr große Blöcke zu generieren. Dies resultierte in mehreren Blöcken von einer Größe von 256 Megabyte, die das Netzwerk größtenteils ohne Probleme verarbeiten konnte. Es gab einige weniger vorübergehende Ausfälle – etwa bei MoneyButton oder Whatsonchain – die jedoch nach einem kurzen Bugfix oder einem Upgrade des Servers behoben wurden.
Daten auf eine Blockchain hochzuladen verbraucht zwar viel Speicher, ist aber für die Knoten im Netzwerk relativ unproblematisch, da sie nicht so viele rechenintensive Signatur-Operationen beanspruchen. Anstrengender ist es für die Nodes, große Blöcke voller Transaktionen zu bilden, die alle einzeln zu validieren sind. Während schon vor einigen Monaten einige Blöcke mit 128 Megabyte an Daten recht problemlos waren, hat ein vergleichbar großer Block mit Transaktionen dazu geführt, dass es zu einer Reorganisation der Blockchain über mehrere Blöcke kam, weil die Verarbeitung des großen Blocks voller Transaktionen so lange gedauert hat.
Letzte Woche hat nun ein Stresstest der chinesischen BSV-Community das Netzwerk in sehr kurzer Zeit mit rund 2 Millionen vorgefertigte Transaktionen geflutet. Dies mündete darin, dass es innerhalb von 90 Minuten zwei Blöcke gab, die rund 200 Megabyte groß waren und je 800.000 bzw. 700.000 Transaktionen enthielten. Zum Vergleich: Bitcoin prozessiert am Tag maximal 500.000 Transaktionen, Ethereum maximal eine Million. Die Folge dieser großen Blöcke war erneut, dass die Nodes unter Druck gesetzt wurden. Es gab zwar keine Reorganisation der Blockchain, doch rund 17 Prozent, so BitMex, scheiterten daran, einen Block zu verarbeiten und blieben dementsprechend hängen. Das einen Chainsplit zu nennen, ist recht weit hergeholt.
Natürlich sind die Stresstests für viele Service-Provider ein ziemliches Ärgernis. Für Firmen, die sich auf Bitcoin SV spezialisiert haben, etwa MoneyButton oder Whatsonchain, sind sie Tests dafür, ob die eigene Hard- oder Software bereit ist, um groß zu skalieren. Ein Ausfall ist dann als ein Problem auf dem Weg zum Ziel zu bewerten, eine vielleicht kurzfristig unangenehme, aber langfristig wertvolle Erfahrung.
Firmen dagegen, die sich nicht auf Bitcoin SV eingeschossen haben, sondern die BSV als eine von vielen Kryptowährungen unterstützen, und für die der BSV-Node nur ein Teil einer viel größeren Infrastruktur darstellt, dürften dies anders sehen. Für sie werden die Stresstests zu einer Belastung, die eventuell die gesamte Infrastruktur betrifft, und ein stabiler BSV-Node zu einem immer größeren Kostenfaktor. Wo bei anderen Coins 2 CPU-Kerne und 2 Gigabyte Ram ausreichen, verlangt ein produktionsfähiger BSV-Node, so die offizielle Empfehlung von bitcoinsv.io, mindestens 8 Kerne und 16 Gigabyte Ram, besser 12 Kerne und 32 Gigabyte. Diese hohen Anforderungen stehen in keiner Relation zu der tatsächlichen Nutzung von Bitcoin SV, die bei den meisten Service-Providern eher geringfügig bis minimal ausfällt. Daher stimmt es, dass die Stresstests für Bitcoin SV tendenziell eher schädlich sind, weil sie Anreize für Service-Provider setzen, die Kryptowährung aus dem Portfolio zu nehmen.
Grundsätzlich jedoch hat das Netzwerk die Blöcke von Größen über 200 Megabyte relativ gut verarbeitet, sowohl die Blöcke mit Daten als auch die mit Transaktionen. Sie haben weder Chain-Splits noch Reorganisationen verursacht, sondern wurden vom größten Teil der Knoten relativ reibungslos verarbeitet. Mit dieser Bereitschaft, die Kapazitäten einer Blockchain auszureizen, steht Bitcoin SV unter allen Blockchain-basierten Kryptowährungen allein da; keine andere wagt so sehr, die Größe der Blöcke zu erhöhen, um herauszufinden, wo die Schmerzgrenzen und Flaschenhälse sind. Dabei zeigt sich, dass die Kapazität einer Blockchain größer ist, als viele es vermutet haben – aber auch, dass die Skalierung zuweilen Probleme verursacht. Dass diese Tests das Wissen über Blockchains erweitern, dürfte dabei außer Frage stehen.
Nach diesem Artikel denke ich nicht mehr nur negativ über BSV, danke dafür.
Auch ich als alter “Big-Blocker” sehe das neue 2GB Limit sehr kritisch und sehe dafür weder Bedarf noch Nutzen, es ist eher Willkür, warum gerade 2 und nicht 2,5 oder 3 oder 18GB. Man hätte moderat erhöhen können, entweder durch Abstimmung der Miner oder z.B. antizyklisch zum Halvening und von mir aus die bereits ohnehin sehr hoch angesetzten 128MB als Ausgang nehmen können. Verifizierungsaufwand ist für Onchain Skalierbarkeit tatsächlich das größte Problem und dort sollte man z.B. mit “Batching” ansetzen, bevor man allen Knoten surreale Bedingungen stellt. Das von Dir angesprochene “weiche” 500MB Limit für Miner ist soweit ich das sehe nur Client-bezogen und könnte von jedem Miner überschritten werden, wenn sie eine modifizierte Software einsetzen. Der Block wäre dank des eigentlichen 2GB Limits trotzdem Konsens-konform.
Das Stress-Testing durch die Community sehe ich eher als harmlos an, aber bin mir ziemlich sicher, dass sich jemand finden wird, der das auf die Spitze treibt und z.B. mit Millionen von vorgefertigten Multisig Transaktionen auch eben die 2GB Spitze über mehrere Blöcke ausnutzen und womöglich einen sehr großen Teil an Nodes über ihre Belastungsgrenze treiben wird. Cores pro Maschine sind begrenzt, Speicher vielleicht nicht so stark. Wenn man an die Grenzen von Hardwareupgrades kommt, muss man splitten und z.B. Master/Slave Datenbanken oder mehrere “Worker” einsetzen, die man per Load-Balancing anspricht. Davon ist Bitcoin aber noch Lichtjahre entfernt und ja, ich halte die plumpe Einführung der 2GB für dumm, nicht durchdacht und unnötig. Die Blockchain an sich ist auch der falsche Ort, Transaktionsfremde Daten zu speichern und das meine ich schon seit ich vor Jahren Luke DashJr’s Bibelverse dort gefunden habe.
Selbst das Payment-Processing wird zur Qual, sogar ohne eigenen Node, denn Du musst auf einmal etliche Block-Explorer abfragen, um Dir sicher zu sein, auf der richtigen Chain zu sein. Womit Du natürlich auch deren Ressourcen noch weiter ausreizt…
Hmm … die Miner wurden ja quasi gefragt, CoinGeek und nChain, die beiden größten Miner, haben sich darauf geeinigt, und die Miner haben ein Produktions- und Akzeptanzlimit von 500mb. Um größere Blöcke durchzubringen, braucht man mehr als 51 Prozent der Hashrate.
Wenn jemand einen Stresstest macht, um es vollkommen zu übertreiben, können die Miner ja immer noch darauf verzichten, maximal große Blöcke zu bilden. Das haben sie ja schon beim letzten Mal. Im Endeffekt wird ein solches netzwerkschonendes Verhalten ja auch belohnt, weil man damit die Chance hat, einem anderen Miner, der einen Monster-Block gebildet hat, den Reward zu stehlen, weil sich der kleinere Block schneller im Netzwerk ausbreitet.
Das was du ansprichst, ist in ziemlich weiter Zukunft. Zunächst werden die Verifizierungsprozesse parallelisiert.
Transaktionsfremde Daten können Unfug sein, sie können aber auch nützlich sein. Was zum Beispiel funktionieren könnte, wäre eine verschlüsselte Brainwallet auf der Blockchain, die sehr viel sicherer ist als die normalen Brainwallets (da man ja nicht beliebig alles angreifen kann, was jemals in einer Brainwallet gespeichert wurde, sondern nur diese eine).
“Die größten Miner wurden gefragt und haben 500MB akzeptiert” steht irgendwo im Gegensatz zu den 2GB, die das Protokoll erlaubt. Man sieht also bereits ein, dass der Schritt eigentlich falsch war, da man dafür nicht bereit ist. Und ich behaupte, man ist tatsächlich nich dafür bereit, weder CoinGeek noch nChain, noch Bitmain. Verifizierungsparallelisierung haben wir schon heute, deswegen “läuft” der Bitcoin Node auf 2 Cores besser als auf einem. Das Problem wird erst akut, wenn man keine Cores hinzufügen kann und auf mehrere Maschinen verteilen muss.
Bitte um mehr Details, da der Gedankengang in der Tat interessant ist, ich ihm aber auch nach mehrfachem Lesen nicht folgen kann 🙁
Ja was denn nun? Ist die Blocksize nun zu klein oder zu groß? Sind sie nun zu vorsichtig oder zu unvorsichtig? Die Node-seitige Hardfork auf 2gb sorgt dafür, dass die Miner, wenn sie soweit sind, mit weniger Disruption das 500mb Limit brechen können.
Gedankengang: Wenn du eine Brainwallet bildest, leitest du deterministisch aus X einen oder mehrere priv Keys ab. Wenn jemand als einen Brute Force Angriff auf X macht, greift er alle Brainwallets gleichzeitig an. Deswegen lohnt es sich so sehr, viel Geld in einen BruteForce-Angriff auf Brainwallets zu investieren, und deswegen ist da auch ein 12-stelliges gutes Passwort vermutlich ungenügend.
Wenn du dagegen einen priv Key mit Passwort X verschlüsselst, leitest du ihn aus Ciphertext+X ab. Ein Angreifer muss nun seine Brute Force schön auf jede Brainwallet einzeln machen. Eine öffentliche verschlüsselte Wallet ist viel sicher als eine Brainwallet bei gleicher Passwortstärke. Aber es ist halt keine Brainwallet, weil du über die Datei verfügen musst, um an deine Keys zu kommen. Du hast sie nicht immer bei dir, und du willst nicht darauf vertrauen, dass sie in der Cloud liegen bleibt und so.
Was man bräuchte wäre eine permanente (bzw. immutable, das ist kein einfaches Thema) Datenbank, die absolut öffentlich und zugänglich ist, so dass die verschlüsselte Wallet ebenso bedingungslos zugänglich ist wie eine Brainwallet … du weißt, worauf ich hinaus will 🙂
Wenn du dann noch das Entschlüsselungsprogramm onchain hast, musst du dir keine Sorgen machen, dass du in dem Moment, in dem du die Brainwallet leeren willst, auch an die Entschlüsselungssoftware kommst. Bei einer Brainwallet musst du den allgemeinsten möglichen Weg von X zum priv Key nehmen, weil du da die größte Sicherheit hast, dass die Software auch in Zukunft da sein wird (bzw. du sie dir selbst rekonstruieren kannst). Wenn du sie onchain stellst, sie also immer da ist, kannst du auch exotische Verschlüsselungssoftware benutzen, die beispielsweise 100 Runden hartes Scrypt durchläuft, so dass ein normaler Rechner für einen Versuch ein paar Minuten braucht. Da wird dann sogar ein 8-stelliges Passwort wieder einigermaßen sicher.
Und he, wenn du schon dabei bist, du kannst auch die Wallet selbst onchain stellen; im Prinzip könntest du dich mit deiner verschlüsselten Brainwallet mit einem simplen Passwort und vielleicht einer PIN bei Dutzenden von Onchain-Wallets einloggen, die alle individuelle Funktionen haben …
Nimm’ die Details nicht zu wörtlich, dazu verstehe ich zu wenig. Aber im Groben bzw. in der Tendenz dürfte das, was ich schreibe, stimmen.
Wäre das eine sinnvolle Anwendung von onchain-Speicher?
Hätte Apple die Entwickler nach deren Meinung gefragt ob es in Ordnung wäre sich der CD/DVD Laufwerk zu entledigen – wir würden die DVD Laufwerke noch immer in Unseren Geräten mit Uns rumschleppen. Ich find es super das BSV ein klar kommuniziertes Ziel sportlich verfolgt. Mein Eindruck ist das BSV der einzige Lichtblick im Cryptobullshit Universum ist.
Das erhöhen der Blockgröße den Minern zu überlassen hat in der Vergangenheit nicht funktioniert. Es bedarf vielleicht erst einer nützlichen Größe für eine solche Infrastruktur, damit die Entwickler und Anwender Vertrauen gewinnen und auf ein solches Netzwerk aufbauen.
In der Vergangenheit war der Anreiz offenbar größer neue Wechselstuben und Token am Fließband zu kreieren. Es verging ja eine Zeitlang kein Tag ohne das ein angeblich Weltverändernde neue Währung “gelaunched” wurde. Langsam wird vielleicht klar das sich viele die Finger verbrannt haben und dieses Model sich ohne Vertrauen erschöpft.
Dann haben die Miner vielleicht auch irgendwann wieder Interesse in direkten Wettbewerb um bessere Infrastruktur zu treten.
Du meinst, das haben nicht Entwickler beschlossen? Natürlich war es von Steve Jobs visionär, sich von einem optischen Medium zu trennen, aber ich bin weiterhin froh, ein Macbook von 2011 und sogar einen iMac von 2007 in meinem Bestand zu haben und eben diese Laufwerke noch zu haben. CSW mit Steve Jobs zu vergleichen ist allerdings absurd und es wäre selbst absurd, Steve Jobs mit Satoshi zu vergleichen, denn ersterer hat die Technikwelt durch Kontinuität ständig weiterentwickelt, worum ich ihn auch bewundere, denn ich verliere zu schnell den Elan. Ein Steve Jobs hätte sich wahrscheinlich weder mit einem 1MB Limit zufrieden gegeben noch mit einem 2GB Limit.
Als man sie damit vor den Kopf gestoßen hat, als ihnen dies herzlich egal war, solange sie ihren Coinbase Reward einkassieren? Genau diese Lösung funktioniert seit Jahren bei Monero (auch wenn ich nicht behaupten würde, sie ist ausreichend Stress-getestet, aber aus meiner Sicht zumindest unkritisch selbst wenn sie versagt). Mit der Professionalisierung des Minings haben wir in Bitcoin sehr starke Player bekommen, denen außer dem Geld nichts an der Entwicklung an sich hängt. Selbst das kann zum Problem werden, wenn sich kein Fee-Markt entwickeln sollte, denn ein leerer Block ist schneller generierbar, verifizierbar und am Ende auch propagierbar. Selbst in der BTC Chain machen Fees aktuell weniger als 5% des Rewards für Miner aus und sind am Rande der Profitabilität, ob man Transaktionen überhaupt in “seinen” Block aufnimmt oder lieber einen leeren Block erstellt.
Sicher sportlich, aber ziemlich unbedarft, denn eine Erhöhung eines Limits um das 1.000-Fache ist eher dumm als mutig. Einen “Lichtblick” kann ich ehrlich gesagt nicht erkennen und CSW leider eher schädlich als nützlich. Ich versuche sogar meine Meinung regelmäßig zu revalidieren und lese oder schaue mir Interviews mit ihm an, aber bisher ist er aus dem Loch “Donald Trump der Kryptoszene” nicht herausgekrochen. Bezeichnend ist, dass er mich nach der ersten ernsthaften Anfrage über Twitter geblockt hat, damit ist er übrigens in bester Gesellschaft mit den Maximalisten, denen er nicht über den Weg traut…
Wie denn? Das Halving senkt den Reward regelmäßig, ohne einen sinnvollen Fee Markt wird dieser auch nicht ersetzt…
@Paul Janowitz /
CSW gibt sich mit 2 GB nicht zufrieden. Nächtes Jahr kommt Blockgröße unendlich. Vielleicht passt dann Dein Vergleich mit Steve Jobs doch – von der Genialität auf alle Fälle – von der sozialen Kompentenz bisher sicher nicht – aber Extrembegabte haben damit immer Probleme. Es ist strategisch sehr sinnvoll die Blockgröße auf 2 Gb und dann auf Unendlich auszuweiten, weil sich dadurch ganz andere Anwendungen ergeben. BSV ist auf Professionalität und Business ausgerichtet – im Gegensatz von BTC ( technisch Sackgasse, allenfalls als Settlement Coin vielleicht noch geeignet, aber die weltweit bestimmenden Familien im Finanzbereich werden sicherlich nicht irgendwelche hodelnde Honks zu Millionären machen) und BCH ( Gefangen im grünen- sozialistischen Dezentralisierungswahn, der sich sowieso nicht durchsetzen wird