Ist es gefährlich, mehrere Bitcoin-Implementierungen zu haben? PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Ist es gefährlich, mehrere Implementierungen von Bitcoin zu haben?

Dies ist eine Meinungsredaktion von Bill Scoresby, ein Bitcoin-basierter Kleinunternehmer und Autor mehrerer Leitfäden zur Bitcoin-Selbstverwahrung.

Die Fehler, die kürzlich dazu führten, dass viele LND-Knoten nicht mehr mit der Bitcoin-Blockchain synchronisiert waren, waren wahrscheinlich durch eine alternative Implementierung verursacht.

Vielleicht fragen Sie sich: „Wer in aller Welt verwendet etwas anderes als?“ Bitcoin Core?“ Möglicherweise wussten Sie nicht, dass es andere Implementierungen von Bitcoin gibt. Vielleicht sind Sie sich nicht sicher, was eine andere Implementierung überhaupt bedeutet.

Bitcoin Core begann als Software Satoshi Nakamoto in C++ geschrieben und der Welt zugänglich gemacht. Es wurde mit neuen Versionen bis zum heutigen Tag aktualisiert. Eine alternative Implementierung ist Software, die das Gleiche tut wie Bitcoin Core – die gleichen Konsensregeln durchsetzt –, aber anders geschrieben ist, meist in einer anderen Programmiersprache.

Wie hat eine alternative Implementierung dazu geführt, dass Knoten im Lightning-Netzwerk unterbrochen wurden?

Eine der wichtigsten Lightning Network-Knotenversionen (LND) basiert auf einer alternativen Bitcoin-Implementierung namens btcd. Als ein Entwickler eine sehr große Multisig-Transaktion erstellte, betrachtete BTCD diese als nicht gültig, da sie zu viele Zeugendaten enthielt. Andere Bitcoin-Implementierungen – vor allem Bitcoin Core – hatten keine solche Beschränkung der Taproot-Transaktionszeugendaten und akzeptierten daher die Transaktion und den Block, der sie enthielt, als gültig.

Das Ergebnis war, dass Miner ständig neue Blöcke zur Kette hinzufügten, weil sie kein BTCD verwendeten, und gemäß ihren Regeln war nichts falsch, aber LND Lightning-Knoten konnten keinen dieser neuen Blöcke erkennen, weil sie auf dem Block aufgebaut waren, der sie enthielt diese eine Transaktion sahen sie als ungültig an.

Als der Fehler am 1. November erneut auftrat, waren nicht nur LND-Knoten betroffen. Einige Electrs-Instanzen (eine Implementierung des Backend-Servers für Electrum Wallet) konnten ebenfalls keinen Konsens mit dem Rest der Kette erzielen. Während die LND-Knoten aufgrund eines ähnlichen Problems in btcd aus dem Konsens gerieten, handelte es sich hierbei um eine in Rust geschriebene Implementierung von Bitcoin führte dazu, dass die Elektrknoten zurückfielen, darunter einige sehr sichtbare Server Wird von mempool.space ausgeführt.

Die Größe der Zeugendaten ist begrenzt um DoS-Angriffe zu verhindernund ist auch Teil von Bitcoin Core (obwohl Core ein größeres Limit für Taproot-Transaktionen hat). Es scheint, dass die anderen beiden Implementierungen, die nicht synchron waren, diesen Code hatten behielt die kleinere Grenze bei.

Sehr kleine Unterschiede in der Umsetzung können zu mangelndem Konsens führen.

Mehrere Implementierungen von Bitcoin sind gefährlich

Satoshi Die Idee mehrerer Implementierungen von Bitcoin gefiel mir nicht. „Ich glaube nicht, dass eine zweite, kompatible Implementierung von Bitcoin jemals eine gute Idee sein wird.“ Als Begründung gab er an: „Das Design hängt so stark davon ab, dass alle Knoten im Gleichschritt exakt identische Ergebnisse erzielen, dass eine zweite Implementierung eine Bedrohung für das Netzwerk darstellen würde.“

Bedrohung? Was ist die große Sache?

Sie haben wahrscheinlich gehört, dass die Kette mit den meisten Proof-of-Work die wahre Kette ist. Wenn zwei verschiedene Miner gleichzeitig einen Block finden, teilt sich die Kette und andere Miner beginnen mit dem Bau auf dem Block, von dem sie zuerst erfahren.

Sobald auf einer Seite der Aufteilung ein neuer Block hinzugefügt wird, akzeptieren die meisten Knoten und Miner dies als die neue wahre Kette und geben die andere Seite der Aufteilung auf. Diese Blöcke werden als veraltete Blöcke bezeichnet, obwohl manche Leute sie auch als verwaiste Blöcke bezeichnen.

Da die durchschnittliche Zeit zwischen Blöcken bei Bitcoin 10 Minuten beträgt, ist es wahrscheinlich, dass das gesamte Netzwerk von diesem neuen Block erfährt, bevor einer zur Verliererseite der Aufteilung hinzugefügt wird, und die Kette mit der meisten Arbeit gewinnt.

„Knoten folgen der gültigen Kette mit der meisten Arbeit … Das Schlüsselwort hier ist gültig.“ Wenn der Knoten einen Block empfängt, den er für ungültig hält, spielt es keine Rolle, wie viel Arbeit an diesem Block geleistet wird, der Knoten akzeptiert diese Kette nicht.“ — Andreas Chow

Das Schlüsselwort ist „gültig“. Die Bedrohung tritt auf, wenn ein Miner einen Block findet, den einige andere Miner und Knoten für ungültig halten. Miner, die es für gültig halten, werden versuchen, neue Blöcke auf dieser Kette zu bauen. Miner, die glauben, dass der Block ungültig ist, werden versuchen, auf dem letzten ihnen bekannten gültigen Block aufzubauen. Das Ergebnis: Zwei Ketten und keine Möglichkeit herauszufinden, welche wahr ist.

Wie um alles in der Welt könnte so etwas passieren?

Nun, wie wir im Fall des jüngsten Fehlers bei LND-Knoten gesehen haben, kann ein Fehler in einer Bitcoin-Implementierung, der in anderen Implementierungen nicht auftritt, dazu führen, dass es keinen Konsens darüber gibt, ob ein Block gültig ist oder nicht.

Bitcoin verfügt nicht über einen Mechanismus, um dieses Problem zu beheben. Die Community außerhalb des Protokolls muss entscheiden, was als nächstes passiert. Es klingt sehr unangenehm.

So sehr, dass der Bitcoin-Entwickler Peter Todd das gesagt hat Andere Implementierungen müssen Fehler für Fehler mit Bitcoin Core übereinstimmen.

Los geht's: Mehrfachimplementierungen sind gefährlich!

Was sind die anderen Implementierungen von Bitcoin und warum gibt es sie?

Erstens betreibt fast jeder Bitcoin Core.

Luke Dashjr sieht etwa 43,000 Knoten, 98 % davon laufen mit Bitcoin Core und etwas namens Coin Dance sieht fast 15,000 Knoten, 96 % davon laufen mit Bitcoin Core. Im Moment sieht es also so aus, als würden nur sehr wenige Leute alternative Implementierungen verwenden.

Dennoch gibt es aktive Projekte, die versuchen, andere Codebasen aufzubauen und zu pflegen, die das Bitcoin-Protokoll implementieren. Sie beinhalten:

Jameson Lopp hat eine ausgezeichnete Seite mit einer ausführlicheren Liste und Links zu allen anderen Implementierungen.

An all diesen Projekten arbeiten äußerst talentierte Entwickler, und jedes existiert schon seit mehr als ein paar Jahren. Warum so viel Mühe in etwas investieren, das wie ein solches Problem erscheint?

Bitcoin ist erlaubnislos. Jeder kann die Kette herunterladen; Jeder kann mit dem Netzwerk interagieren. und niemand kann Sie davon abhalten, eine alternative Implementierung zu programmieren oder auszuführen.

Doch klar Einige Leute haben das Sagen Änderungen am Bitcoin-Repository vorzunehmen und der Prozess zu ihrer Auswahl erscheint informell. Zwar gibt es die Bitcoin Improvement Proposal (BIP)-Prozess Für Vorschläge zu Änderungen an Bitcoin Core ist es auch ziemlich informell.

Nichts davon ist ein direktes Problem. Wie Marty Bent betont, Ein grober Konsens kann eine Stärke sein. Wenn der Prozess der Bitcoin-Änderung schwierig und unklar ist, bedeutet das, dass Änderungen gründlicher überprüft werden.

Der nächste Schritt eines groben Konsenses besteht darin, mehr als eine populäre Implementierung zu haben.

Das Fehlen mehrerer Implementierungen könnte gefährlicher sein

Es besteht kein Zweifel daran, dass es bereits eine sehr schwierige Aufgabe ist, einer der Menschen zu sein, die festen Zugriff auf Bitcoin Core haben. In einer Welt, in der Bitcoin als Währungsinstrument eine zentrale Rolle spielt, wird diese Aufgabe noch viel schwieriger. Eine kleine Gruppe von Entwicklern könnte ein sehr lohnendes Ziel werden. Zumindest wird ihre Aufmerksamkeit erbeten, um sich für verschiedene Einbeziehungen oder Ausschlüsse in der nächsten Softwareversion einzusetzen.

Denken Sie an die Lobbyindustrie, die derzeit in der Politik existiert. Warum sollte sich so etwas nicht um die Leute herum entwickeln, die festen Zugriff auf die einzige Implementierung des Bitcoin-Protokolls haben?

Wie die Politiker von heute wird auch ihnen der Eindruck vermittelt, sie hätten Zugang zur Macht. Daher werden die Menschen sie ins Visier nehmen, nur dass diese Entwickler nicht über die Macht eines Staates verfügen, sie zu verteidigen. Was wird das für ein Leben sein? Wer würde sich freiwillig dafür entscheiden?

Letztendlich ist das globale Finanzsystem eine ziemlich schwere Last, die auf den Schultern der kleinen Gruppe von Menschen ruht, die Commit-Zugriff auf ein GitHub-Repository haben. Vielleicht unterscheidet es sich nicht so sehr von dem globalen Finanzsystem, in dem wir versuchen, wegzukommen, wo die monetäre Zukunft der Menschen von den Entscheidungen einiger weniger Zentralbanker abhängt.

Mehrere Implementierungen zur Rettung!

Das Vorhandensein und die weit verbreitete Nutzung mehrerer Implementierungen im Bitcoin-Netzwerk können diesen Druck abmildern, indem sie es einem böswilligen Akteur erheblich erschweren, das Bitcoin-Protokoll zu ändern.

Wenn die Teilnehmer des Bitcoin-Netzwerks gleichmäßiger auf verschiedene Implementierungen verteilt sind, gibt es mehr Raum für die Entstehung guter Ideen. Änderungen an Bitcoin vorzuschlagen oder abzulehnen, ist viel dezentraler, wenn nicht alles in einem Lager geschieht.

Offensichtlich erhöht die Verwendung verschiedener Bitcoin-Implementierungen das Risiko einer Kettenspaltung. Eine katastrophale Kettenspaltung – bei der ein erheblicher Teil der Knoten und Miner versehentlich abgespalten wird – wäre nicht gut für Bitcoin und schon gar nicht für seinen Preis. Aber es würde die erlaubnislose Natur von Bitcoin nicht gefährden.

Eine zentralisierte Entwicklungsumgebung, in der jeder nur auf Bitcoin Core aufbaut, könnte die Erlaubnislosigkeit gefährden. Die Diskussion über das Thema muss sich mit den Risiken befassen, die mit einer so starken Abhängigkeit von Bitcoin Core einhergehen, anstatt sich nur auf die Probleme zu konzentrieren, die durch eine alternative Implementierung verursacht werden könnten.

Es gibt ein tolles, älteres Artikel über diese Debatte von Aaron van Wirdum. Sie können auch eine neuere, informativer Thread darüber.

Dies ist ein Gastbeitrag von Bill Scoresby. Die geäußerten Meinungen sind ausschließlich ihre eigenen und spiegeln nicht unbedingt die von BTC Inc oder dem Bitcoin Magazine wider.

Zeitstempel:

Mehr von Bitcoin Magazin