Der Konsensmechanismus von Bitcoin bezieht sich darauf, dass es sehr schwierig ist, zumindest theoretisch, für einen Miner (oder Mining-Pool), seine eigene Rechenleistung zu nutzen, um Täuschung oder Sabotage zu betreiben. Er beruht auf der Annahme, dass die überwältigende Mehrheit der Miner in ihrem eigenen Interesse das gesamte Bitcoin-System durch ehrliches Mining aufrechterhalten wird. Wenn jedoch ein Miner oder eine Gruppe von Minern mit einem großen Anteil der Rechenleistung im System auftaucht, können sie durch einen Angriff auf den Bitcoin-Konsensmechanismus das Ziel erreichen, die Sicherheit und Zuverlässigkeit des Bitcoin-Netzwerks zu untergraben.
Es ist wichtig zu beachten, dass Konsensangriffe nur den zukünftigen Konsens der gesamten Blockchain oder höchstens den Konsens einiger weniger Blöcke in der jüngeren Vergangenheit (bis zu 10 Blöcke zurück) beeinflussen können. Mit der Zeit wird es immer unwahrscheinlicher, dass die gesamte Bitcoin-Blockchain manipuliert wird. Theoretisch kann ein Blockchain-Fork sehr lang werden, praktisch ist die dafür erforderliche Rechenleistung jedoch sehr, sehr groß, und da die gesamte Bitcoin-Blockchain kontinuierlich wächst, können vergangene Blöcke im Grunde als nicht mehr durch einen Fork veränderbar angesehen werden. Konsensangriffe beeinträchtigen auch nicht den privaten Schlüssel des Benutzers oder den Verschlüsselungsalgorithmus (ECDSA). Ebensowenig kann ein Konsensangriff Bitcoins von anderen Wallets stehlen, Bitcoins ohne Unterschrift auszahlen, Bitcoins umverteilen, vergangene Transaktionen ändern oder Bitcoin-Besitzaufzeichnungen verändern. Die einzige Auswirkung eines Konsensangriffs besteht darin, die jüngsten Blöcke (bis zu 10) zu beeinflussen und die zukünftige Blockgenerierung durch eine Denial-of-Service-Attacke zu beeinträchtigen.
Ein typisches Szenario eines Konsensangriffs ist der "51%-Angriff". Stellen Sie sich ein Szenario vor, in dem eine Gruppe von Minern 51% der Rechenleistung des gesamten Bitcoin-Netzwerks kontrolliert und sich zusammenschließt, um das gesamte Bitcoin-System anzugreifen. Da diese Minergruppe die Mehrheit der Blöcke erzeugen kann, sind sie in der Lage, absichtlich einen Blockchain-Fork zu erzeugen, um "Doppelzahlungen" vorzunehmen, eine bestimmte Transaktion zu blockieren oder durch eine Denial-of-Service-Attacke eine bestimmte Wallet-Adresse anzugreifen. Ein Blockchain-Fork-/Doppelzahlung-Angriff liegt vor, wenn ein Angreifer eine kürzliche Transaktion verneint und einen neuen Block vor dieser Transaktion neu konstruiert, wodurch ein neuer Fork entsteht und eine Doppelzahlung ermöglicht wird. Mit ausreichender Rechenleistung kann ein Angreifer sechs oder mehr jüngere Blöcke gleichzeitig manipulieren und so die ansonsten unveränderlichen Transaktionen in diesen Blöcken verschwinden lassen. Es ist zu beachten, dass Doppelzahlungen nur bei Transaktionen möglich sind, die in Wallets stattfinden, die dem Angreifer gehören, da nur der Wallet-Besitzer eine gültige Signatur für Doppelzahlungstransaktionen erzeugen kann. Ein Angreifer kann einen Doppelzahlungsangriff nur auf seine eigenen Transaktionen durchführen, aber ein solcher Angriff ist dann profitabel, wenn die Transaktion einem unwiderruflichen Kauf entspricht.
Schauen wir uns ein reales Beispiel für einen "51%-Angriff" an. In Kapitel 1 haben wir über eine Transaktion zwischen Alice und Bob für eine Tasse Kaffee mit Bitcoin gesprochen. Bob, der Besitzer des Cafés, ist bereit, Alice den Kaffee auszuhändigen, sobald ihre Überweisung mit null Bestätigungen bestätigt ist, weil das Risiko eines "51%-Angriffs" bei einer so kleinen Transaktion im Verhältnis zur unmittelbaren Bedingung des Kaufs (Alice erhält den Kaffee sofort) gering ist. Ähnlich verlangen die meisten Cafés bei Kreditkartenzahlungen unter 25 US-Dollar nicht die Unterschrift, weil das Einholen der Unterschrift teurer wäre als das Risiko, dass der Kunde die Kreditkartenzahlung zurückruft. Demgegenüber ist das Risiko einer Doppelzahlung bei größeren mit Bitcoin bezahlten Transaktionen deutlich höher, da der Käufer (Angreifer) die echte Transaktion annullieren kann, indem er eine gefälschte Transaktion ins Netzwerk sendet, die identisch mit den UTXO der echten Transaktion ist. Die Doppelzahlung kann auf zwei Arten erfolgen: entweder bevor die Transaktion bestätigt wird oder durch den Angreifer mittels eines Blockchain-Forks. Die Person, die den 51%-Angriff durchführt, kann die auf dem alten Fork aufgezeichnete Transaktion annullieren und dann eine Transaktion mit dem gleichen Betrag auf dem neuen Fork erzeugen, wodurch die Doppelzahlung erreicht wird.
Um diese Art von Angriff zu vermeiden, sollten Händler, die Waren in großen Mengen verkaufen, warten, bis die Transaktion sechs netzwerkweite Bestätigungen erhalten hat, bevor sie die Ware ausliefern. Alternativ sollte der Händler für die Transaktion ein Drittanbieter-Multisignatur-Konto verwenden und ebenfalls warten, bis das Transaktionskonto mehrere Bestätigungen im Netzwerk erhalten hat, bevor er die Ware ausliefert. Je mehr Bestätigungen eine Transaktion hat, desto schwieriger ist es für einen Angreifer, sie durch einen 51%-Angriff zu manipulieren. Bei großen Transaktionen sind Bitcoin-Zahlungen für Käufer und Verkäufer bequem und effizient, selbst wenn die Waren 24 Stunden nach der Zahlung versandt werden. Nach 24 Stunden wird die Transaktion mindestens 144 netzwerkweite Bestätigungen haben (was die Wahrscheinlichkeit eines 51%-Angriffs effektiv reduziert).
Neben dem "Doppelzahlungs"-Angriff besteht ein weiteres Angriffsszenario bei Konsensangriffen darin, einer bestimmten Bitcoin-Adresse die Dienstleistung zu verweigern. Ein Angreifer, der die Mehrheit der Rechenleistung im System besitzt, kann eine bestimmte Transaktion problemlos ignorieren. Wenn sich die Transaktion in einem von einem anderen Miner erzeugten Block befindet, kann der Angreifer absichtlich einen Fork des Blocks erzeugen, ihn neu generieren und die zu ignorierende Transaktion aus dem Block entfernen. Das Ergebnis dieses Angriffs ist, dass der Angreifer, solange er die überwiegende Rechenleistung im System besitzt, kontinuierlich alle von einer bestimmten Wallet-Adresse oder einer Gruppe von Adressen erzeugten Transaktionen stören kann, um diesen Adressen den Dienst zu verweigern.
Beachten Sie, dass ein 51%-Angriff nicht, wie der Name vermuten lässt, zwingend mindestens 51% der Rechenleistung des Angreifers erfordert; in der Tat kann ein solcher Angriff auch versucht werden, wenn der Angreifer weniger als 51% der Systemrechenleistung besitzt. Der Grund für die Bezeichnung 51%-Angriff liegt schlicht darin, dass ein Angreifer, dessen Rechenleistung die Schwelle von 51% erreicht, mit hoher Wahrscheinlichkeit erfolgreich sein wird. Im Wesentlichen ähnelt ein Konsensangriff einem System, in dem die Rechenleistung aller Miner in zwei Gruppen aufgeteilt ist: eine mit ehrlicher Rechenleistung und eine mit Angreifer-Rechenleistung. Beide Gruppen konkurrieren darum, als Erste neue Blöcke in der Blockchain zu berechnen, wobei die Angreifer-Rechenleistung jedoch sorgfältig konstruierte Blöcke berechnet, die bestimmte Transaktionen einschließen oder ausschließen. Je weniger Rechenleistung der Angreifer besitzt, desto unwahrscheinlicher ist es, dass er den Wettstreit gewinnt. Andererseits gilt: Je mehr Rechenleistung ein Angreifer hat, desto länger kann die Kette von absichtlich erzeugten Fork-Blöcken sein und desto mehr jüngere Blöcke könnten manipuliert oder zukünftige Blöcke unter seine Kontrolle gebracht werden. Einige Sicherheitsforschungsgruppen haben mithilfe statistischer Modelle zu dem Schluss gekommen, dass 30% der Netzwerkrechenleistung ausreichen könnten, um einen 51%-Angriff zu starten.
Der dramatische Anstieg der netzwerkweiten Rechenleistung hat es für einen einzelnen Miner unmöglich gemacht, das Bitcoin-System anzugreifen, da es einem einzelnen Miner nicht mehr möglich ist, auch nur 1% der Netzwerkrechenleistung zu besitzen. Zentral gesteuerte Mining-Pools bergen jedoch das Risiko, dass ein Pool-Betreiber aus Profitgründen angreift. Der Pool-Betreiber kontrolliert die Generierung von Kandidatenblöcken und entscheidet auch, welche Transaktionen in die neu erzeugten Blöcke aufgenommen werden. Auf diese Weise hat der Pool-Betreiber die Macht, bestimmte Transaktionen auszuschließen oder Doppelzahlungen vorzunehmen. Wenn diese Macht vom Pool-Betreiber in subtiler und dosierter Weise missbraucht wird, kann er Konsensangriffe starten und davon unbemerkt profitieren.
Nicht alle Angreifer verfolgen jedoch Profitinteressen. Ein mögliches Szenario ist, dass ein Angreifer einen Angriff startet, um das gesamte Bitcoin-System zu stören, nicht um Profit zu erzielen. Ein solcher Angreifer, der das Bitcoin-System stören will, würde erhebliche Investitionen und sorgfältige Planung benötigen, sodass es vorstellbar ist, dass ein solcher Angriff wahrscheinlich von einer staatlich finanzierten Organisation ausgeht. Ebenso könnten solche Angreifer Mining-Geräte kaufen, Mining-Pools betreiben und Konsensangriffe wie Dienstverweigerungen durchführen, indem sie die zuvor erwähnte Macht des Pool-Betreibers missbrauchen. Mit dem geometrischen und schnellen Wachstum der Rechenleistung des Bitcoin-Netzwerks sind diese theoretisch möglichen Angriffsszenarien jedoch in der Praxis zunehmend schwer umzusetzen geworden. Jüngste Upgrades des Bitcoin-Systems, wie das P2Pool-Mining-Protokoll, das die Dezentralisierung der Mining-Kontrolle weiter vorantreiben soll, erschweren diese theoretisch möglichen Angriffe zusätzlich.
Es besteht kein Zweifel, dass ein ernsthafter Konsensangriff das Vertrauen in das Bitcoin-System beeinträchtigen würde, was wiederum zu einem starken Preisverfall von Bitcoin führen könnte. Das Bitcoin-System und die zugehörige Software verbessern sich jedoch ständig, sodass die Bitcoin-Community mit hoher Wahrscheinlichkeit schnell auf einen Konsensangriff reagieren wird, um das gesamte System robuster und zuverlässiger denn je zu machen.