BitcoinVonInnen

Konsensregeln

Regeln, die bestimmen, welche Blöcke und Transaktionen gültig sind.

Block 950.001Live

Was sind Konsensregeln?

Konsensregeln sind die Regeln, nach denen Full Nodes entscheiden, ob eine Transaktion oder ein Block gültig ist.

Jeder Node führt diese Prüfungen selbstständig durch. Dabei wird nicht darüber abgestimmt, welche Daten akzeptiert werden. Stattdessen wendet jeder Node dieselben Regeln auf die empfangenen Blöcke und Transaktionen an.

Bitcoin erreicht Konsens nicht durch Abstimmung, sondern durch unabhängige Validierung derselben Regeln.AbstimmungNode A✓ JaNode B✓ JaNode C✗ Nein2 von 3 stimmen zuErgebnis akzeptiertDie Mehrheit entscheidet.BitcoinBlock XNode 1Konsensregeln· Datenstruktur· Signaturen· Scripts· UTXOs· Coinbase· Proof of Work✓ GültigBlockakzeptiertBlockchainaktualisiertUTXO-SetaktualisiertNode 2Konsensregeln· Datenstruktur· Signaturen· Scripts· UTXOs· Coinbase· Proof of Work✓ GültigBlockakzeptiertBlockchainaktualisiertUTXO-SetaktualisiertNode 3Konsensregeln· Datenstruktur· Signaturen· Scripts· UTXOs· Coinbase· Proof of Work✓ GültigBlockakzeptiertBlockchainaktualisiertUTXO-SetaktualisiertGemeinsamer ZustandDieselben Regeln → Konsens überdieselbe Blockchain unddasselbe UTXO-SetJeder Node validiert selbstständig dieselben Regeln.ABSTIMMUNG→ Mehrheit bestimmt das Ergebnisvs.BITCOIN-KONSENS→ Dieselben Regeln führen zum selben Ergebnis

Dadurch gelangen unabhängige Nodes zum selben Validierungsergebnis und bauen denselben Blockchain- und UTXO-Zustand auf.

Der Konsens entsteht somit nicht durch Abstimmung, sondern durch die Anwendung desselben Regelwerks.

Konsensregeln definieren die Bedingungen, die erfüllt sein müssen, damit ein Node Daten akzeptiert.

Sie bestimmen,

Verstößt ein Block oder eine Transaktion gegen eine Konsensregel, wird er von Full Nodes verworfen.

Damit alle Nodes dieselbe Blockchain akzeptieren, müssen sie dieselben Konsensregeln anwenden.

Sobald unterschiedliche Regeln zu unterschiedlichen Validierungsergebnissen führen, entsteht kein gemeinsamer Konsens mehr und das Netzwerk kann sich in mehrere Blockchains aufspalten.

Warum sind Konsensregeln wichtig?

Die Konsensregeln legen fest, was Bitcoin überhaupt ist.

Sie bestimmen:

Würden verschiedene Gruppen von Nodes unterschiedliche Konsensregeln anwenden, würden sie unterschiedliche Blockchains akzeptieren.

Änderungen an Konsensregeln sind daher besonders sensibel und werden über sogenannte Soft Forks eingeführt.

Weiterführend: Soft Forks

Wie Full Nodes diese Regeln konkret anwenden: Validation

Was macht einen Block oder eine Transaktion gültig?

Full Nodes bewerten Blöcke und Transaktionen nicht nach Vertrauen, Mehrheiten oder ihrer Herkunft.

Entscheidend ist ausschließlich, ob alle Konsensregeln erfüllt werden.

KONSENSREGELNBLOCKREGELNBlock HeaderProof of WorkDifficultyCoinbaseBlock WeightMerkle RootTRANSAKTIONSREGELNDatenstrukturUTXO-ReferenzenBeträgeDouble SpendsLocktimeSequenceSCRIPTREGELNSignaturenWitnessScript EngineStack EvaluationScript ConditionsValidierungsergebnis GültigAlle relevanten Konsensregeln erfüllt UngültigMindestens eine Konsensregel verletzt

Dabei prüft ein Node zahlreiche Bedingungen. Dazu gehören unter anderem:

Erst wenn alle relevanten Prüfungen erfolgreich sind, wird eine Transaktion oder ein Block als gültig akzeptiert.

Bereits ein einzelner Verstoß gegen die Konsensregeln genügt, damit ein Node die Daten verwirft.

Tx / BlockDatenstrukturSignaturenScriptsUTXOsCoinbaseProof of WorkVerwerfen

Konsensregeln und Software

Nodes im Bitcoin-Netzwerk verwenden nicht zwangsläufig dieselbe Software.

Unterschiedliche Versionen, verschiedene Implementierungen oder unterschiedliche Betriebsmodi wie Archival Nodes und Pruned Nodes können miteinander kommunizieren und dieselbe Blockchain akzeptieren.

Entscheidend ist nicht die Software selbst, sondern ob dieselben Konsensregeln angewendet werden.

Die Software implementiert diese Regeln lediglich. Solange unterschiedliche Programme bei denselben Daten zum gleichen Validierungsergebnis gelangen, bleiben sie Teil desselben Konsenses.

Unterschiedliche Software kann denselben Konsens durchsetzen. Entscheidend sind die Regeln, nicht die Implementierung.ABitcoin Core v25Archival NodeVersionv25.0Speicher~600 GBNetzwerkStandardPerformanceMittelBBitcoin Core v28Pruned NodeVersionv28.1Speicher~8 GBNetzwerkSchnellPerformanceHochCBitcoin Knots v27Archival NodeVersionv27.1Speicher~600 GBNetzwerkPolicies+PerformanceMittelDBitcoin Knots v27Pruned NodeVersionv27.1Speicher~8 GBNetzwerkPolicies+PerformanceHochDieselben KonsensregelnProof of WorkBlockstrukturUTXO-RegelnSignaturenScriptsCoinbaseGleiches ErgebnisDieselbe Blockchain · Derselbe Chainstategleiche Blöcke · gleiche TX · gleicher UTXO-Zustand✕ Nicht entscheidendSoftware-VersionArchival oder PrunedDatenbankBenutzeroberflächeNetzwerkoptimierungen✓ EntscheidendDieselben Konsensregeln

In der Praxis verwenden die meisten Nodes heute Bitcoin Core.

Neue Versionen erweitern regelmäßig die Netzwerkkommunikation, verbessern die Performance oder verändern interne Speicherstrukturen.

Solche Änderungen beeinflussen den Konsens jedoch nicht zwangsläufig.

So können beispielsweise Bitcoin Core v25 und Bitcoin Core v28 trotz vieler technischer Unterschiede dieselbe Blockchain validieren und denselben Chainstate aufbauen.

Erst wenn sich die Regeln ändern, nach denen Blöcke oder Transaktionen als gültig bewertet werden, kann dies Auswirkungen auf den Konsens haben.

Was passiert bei unterschiedlichen Regeln?

Damit alle Nodes dieselbe Blockchain akzeptieren, müssen sie dieselben Konsensregeln anwenden.

Sobald unterschiedliche Regeln zu unterschiedlichen Validierungsergebnissen führen, entsteht kein gemeinsamer Konsens mehr.

Ein Block, der von einer Gruppe von Nodes als gültig betrachtet wird, kann von einer anderen Gruppe verworfen werden.

Ab diesem Zeitpunkt bauen die beteiligten Nodes unterschiedliche Blockchains und UTXO-Zustände auf.

Es entstehen voneinander unabhängige Konsensgruppen mit jeweils eigener Sicht auf den Zustand des Netzwerks.

Chainsplit durch unterschiedliche KonsensregelnAb Block 478558 (1. Aug. 2017) bewerten verschiedene Nodes dieselben Daten unterschiedlich.GEMEINSAME HISTORIEGemeinsame BlockchainAlle Nodes verwenden dieselben Konsensregeln.Block 478556478556Block 478557478557Block 478558 · 136 kB · 0000000000000000011865af4122fe3b144e2cbeea86142e8ff2fb4107352d43478558136 kB00000000…07352d43Fork-Punkt · Block 478558AUFSPALTUNGBlock 478559 · 1,92 MB · 00000000000000000019ede3ee2578e5ade25eed9ae35d129717d3fbdd44db684785591,92 MB00000000…dd44db68verworfenBlock 478559 · 273 kB · 00000000000000000019f112ec0a9982926f1258cdcc558dd7c3b7e5dc7fa148478559273 kB00000000…dc7fa148Block 478560478560Block 478559 · 1,92 MB · 00000000000000000019ede3ee2578e5ade25eed9ae35d129717d3fbdd44db684785591,92 MB00000000…dd44db68Block 478560478560Bitcoin (BTC)Regel: Blockgröße ≤ 1 MBBCH-Block 478559 (1,92 MB) wird verworfen.BTC-Block 478559 (273 kB) bleibt gültig.Die BTC-Chain baut auf dem eigenen Block 478559 weiter.Bitcoin Cash (BCH)Regel: Blockgröße ≤ 8 MBErster BCH-Block 478559 (1,92 MB, ViaBTC).Ergebnis: GültigDie BCH-Chain baut auf diesem Block weiter (z. B. Block 478560).REGELÄNDERUNGRegeländerung · 1. Aug. 2017Bitcoin (BTC): Max. 1 MB · Bitcoin Cash (BCH): Max. 8 MBAb Block 478559 verwenden verschiedene Nodes unterschiedliche Konsensregeln und bewerten dieselben Blockdaten unterschiedlich.
Was hat sich bei Bitcoin Cash geändert?Block 478559 nach dem Fork (1. Aug. 2017): dieselben Bytes, unterschiedliche Regeln.Alte Regel (BTC)Maximale Blockgröße1 MBBlock 478559 · 1. Aug. 2017Block 478559 · 1,92 MB · 00000000000000000019ede3ee2578e5ade25eed9ae35d129717d3fbdd44db684785591,92 MB00000000…dd44db68Prüfung (Blockgröße)1.92 MB ≤ 1 MB ? NeinBlock ungültigBTC-Node verwirft den Block.Neue Regel (BCH)Maximale Blockgröße8 MBBlock 478559 · 1. Aug. 2017Block 478559 · 1,92 MB · 00000000000000000019ede3ee2578e5ade25eed9ae35d129717d3fbdd44db684785591,92 MB00000000…dd44db68Prüfung (Blockgröße)1.92 MB ≤ 8 MB ? JaBlock gültigBCH-Node akzeptiert den Block.Block 478559 (1,92 MB) + unterschiedliche Konsensregeln = unterschiedliches ValidierungsergebnisAb Block 478559 entsteht kein gemeinsamer Konsens mehr; die Blockchain spaltet sich (BTC / BCH).