Konsens im Bitcoin-Netzwerk

Liebe Community, gibt es ein Video, wo man die Ausführung des Konsensmechanismus durch eine Full Node im Bitcoin-Netzwerk quasi live sehen kann? Also z.B. wie eine Full Node den neu erstellten Block verifiziert und dann in die bestehende Kette einfügt? Mich interessiert vor allem, ob das alles automatisch durch die Software erfolgt und wenn nicht, an welcher Stelle genau der Full Node-Betreiber manuell eingreift. Danke.

Hi,

Der Konsensmechanismus sind eben genau die Regeln, die durch den Bitcoin Client sichergestellt werden. Ein manueller Eingriff des Node Betreibers erfolgt lediglich durch Aktualisierung dieser Software. Da sich die Regeln selten ändern, wäre eine andere Form eines manuellen Eingriffs auch nicht sinnvoll.

Die Software stellt jede Menge Bedingungen sicher, die nicht gerade einfach zu visualisieren sind. Dazu gehören technische Spezifikationen, z.B. wie eine Transaktion beschaffen sein muss, sowie inhaltliche Bedingungen, dass z.B. die Inputs einer Transaktion noch nicht ausgegeben wurden.

Vermutlich ist gerade der Code selbst die prägnanteste Beschreibung dieser Regeln. Eine Visualisierung wäre dann das Durchschreiten des Codes mit einem Debugger (für nicht-Programmierer eher langweilig).

Hier sind die meisten Regeln aufgeführt:
https://en.bitcoin.it/wiki/Protocol_rules

Zusammen mit der Dokumentation des Protokolls lässt sich ein Client implementieren, der am Bitcoin Netzwerk teilnehmen kann.
https://en.bitcoin.it/wiki/Protocol_documentation

Das gute an Bitcoin ist, dass die grundlegenden Regeln intuitiv sind:

  • Die Geldmenge ist durch Block Reward begrenzt
  • Man kann nur ausgeben, was man hat
  • Man muss den Besitz durch Signatur beweisen
5 „Gefällt mir“

Danke für deine Antwort! Da ich selbst (noch) keine Full Node betreibe (und damit quasi ein „Holger“ bin), fehlt mir aktuell die praktische Sicht bei der Umsetzung des Bitcoin-Netzwerks. Ich kenne zwar das theoretische Gerüst und auch die einzelnen Prozesse des Konsensmechanismus, inkl. der dort jeweils enthaltenen Regeln, nicht aber die praktische Funktionsweise des Referenzclients.

Der Hintergrund meiner Frage war die Überlegung, ob das böswillige Unterwandern der Full Nodes im Bitcoin-Netzwerk durch eine zentrale Entität eine Gefahr darstellen könnte. Ich spreche hier explizit nicht von Minern und der Übernahme von mehr als 50% der Rechenleistung im PoW-Beweisverfahren, sondern die eigentliche Verifikation und Freigabe der bereits geschürften Blöcke durch Full Nodes.

Denn wäre hier auch eine manuelle Überprüfung und Freigabe durch FN-Betreiber vorgesehen, dann wäre m.E. auch das Unterwandern theoretisch möglich, wenn man zu den bestehenden etwa 10.000 Nodes beispielsweise weitere 11.000 „Sabotage“-Nodes hinzunimmt und diese z.B. für Zensur bestimmter Transaktionen oder Miner nutzt.

Wenn aber - wie du beschreibst - die Validierung und Freigabe voll automatisiert durch die Client-Software und angelehnt an die Regeln des Protokolls durchgeführt wird, dann kann eine solche Sabotage praktisch nicht umgesetzt werden.

PS: An sich ist das logisch und nachvollziehbar, dass ein FN-Betreiber nicht 24*7 seine Software persönlich bedient, um das Konsensverfahren sicherzustellen. Mich hat an dieser Stelle der Grundgedanke des Zusammenwirkens der Teilnehmer in einem dezentralen Netzwerk wie Bitcoin irritiert, da hier die Full Nodes autonom und unabhängig die Prüfung der Regeleinhaltung vollziehen. Es hat für mich suggeriert, als gäbe hier eine Wahl, die eines menschlichen Eingriffs bedarf. Und da jede Software, die hier eingesetzt wird die Konformität zum Bitcoin P2P-Protokoll aufweisen muss, können die Full Nodes prinzipiell den Konsens im Netzwerk nicht sabotieren.

PPS: Mir fällt hier noch eine Analogie zum Straßenverkehr auf. Wenn die Regeln des Konsens quasi die Regeln der StVO repräsentieren, so handelt es sich hier um autonom geführte Fahrzeuge, die diese Regeln durch Einsatz der StVO-konformen Software einhalten und nicht um von Menschen geführte Fahrzeuge, die den Straßenverkehr ggf. sabotieren können.

Wenn Nodes ins Netzwerk kommen bei denen die Regeln geändert wurden würden die die geminten Blöcke nicht akzeptieren und an ihre Chain hängen uns sich dadurch vom Netzwerk anschließen.

Wenn es zuviele von diesen Nodes gibt dann kommt es zu einem Netzwerk Split wenn sie Miner finden die nach ihren Regeln spielen.
:thinking:

Ein passenderes Bild wäre folgendes: Du erklärst deiner Node, was Bitcoin für dich bedeutet, was deine persönlichen Konsensus Regeln sind. Diese Regeln, lässt du als Software auf deine Node laufen, und die Node pflegt damit deine persönliche Kopie der Blockchain, und tauscht sich mit anderen Nodes über neue Blöcke und neue Transaktionen aus.

Jetzt ist es halt so, dass weitestgehend Einigkeit über die Regeln – d.h. die Definition dessen was Bitcoin ist – besteht. Wenn deine Node von jemand drittem manipuliert wurde, und nach anderen Konsensus Regeln arbeitet, ist das zunächst mal dein Problem. Solange es aber Nodes gibt, welche nach den ursprünglichen Regeln arbeiten, existiert Bitcoin, und man kann sich jederzeit wieder einklinken.

Das Beispiel mit der Straßenverkehrsordnung ist nicht treffend, weil dort die Regeln zentral verordnet werden. Das ist bei Bitcoin etwas komplizierter, und wird zunehmend schwieriger, weil kaum jemand (mehr) an einem Chain Split interessiert ist. Ich halte es für möglich, dass Taproot die letzte große Änderung für eine sehr lange Zeit ist. Je mehr Node Betreiber es gibt, desto eher werden sie sich fragen, und versuchen zu verstehen, was neue Regeln bedeuten. Letztlich ist jede Änderung am Status Quo ein Risiko, so dass es gut sein kann, dass die Nodes sich für Robustheit und gegen das Risiko entscheiden. Das ist aber alles Spekulation und bleibt abzuwarten.