Ein Undercutting-Angriff, wie er in diesem Artikel beschrieben wird, ist eine Mining-Strategie, bei der neue Blöcke nicht auf der längsten bekannten Kette produziert werden, sondern stattdessen die längste Kette „unterboten“ wird, indem ein Block erstellt wird, der weniger der verfügbaren Transaktionsgebühren einnimmt kürzere Kette. Dieses Verhalten schafft einen direkten Anreiz für einen anderen Miner, jetzt neue Blöcke in der „Undercutting“-Kette zu bauen, da eine höhere Summe an Transaktionsgebühren für sie zu erheben ist.
In dem Paper beschreiben die Autoren, wie dies dazu führen kann, dass ein 51%-Angriff mit weniger als 51% der Hashing-Power des Netzwerks erfolgreich durchgeführt werden kann. Dies wird ermöglicht, weil die Undercutters Blöcke verwaisen und die effektive Hashing-Leistung des Netzwerks verringern (die 51% Angreifer haben einen Vorteil, da sie ihre eigenen Blöcke nicht verwaisen müssen, aber die ehrlichen oder unterbietenden Miner arbeiten mit einer kumulativ niedrigeren Hash-Rate zum möglichen Verwaisen höherwertiger Blöcke).
Gibt es Lösungen, die das Undercutting-Verhalten abschrecken? Oder kann das Verhalten durch eine Änderung des Protokolls gemildert werden?
1. Sie werden niemals in der Lage sein, den vorherigen Block erneut zu minen und mehr Gebühren zu erhalten.
Der in diesem Dokument beschriebene Angriff besteht darin, einen Block erneut zu schürfen, um weniger Gebühren zu verlangen und andere Schürfer dazu anzuregen, ihn fortzusetzen, anstatt in der ehrlichen Kette zu schürfen. Die Bedrohung durch den Gegenangriff wurde vor langer Zeit angesprochen.
Seit Bitcoin Core 0.11.0 (Juli 2015) beinhalten Transaktionen eine Gebühr, nLockTime
um Sniping zu verhindern und sicherzustellen, dass sie nur in einer Höhe abgebaut werden können, die größer ist als die aktuelle Höhe. Ihre Gebühren können nur durch Vorwärtsbewegung und nicht durch Unterbieten des vorherigen Blocks eingezogen werden. Obwohl die Akzeptanz nicht weit verbreitet ist, können Sie damit rechnen, wenn diese Bedrohung glaubwürdig wird. Außerdem wird eine Kette, die dem nächsten Miner weniger Gebühren hinterlässt, für andere Miner weniger attraktiv sein, weiterzumachen.
2. Mempool wird nicht flach genug sein, damit aufeinanderfolgende Blöcke deutlich unterschiedliche Belohnungen haben.
Wenn die Nachfrage nach Blockraum steigt oder sein Angebot abnimmt, wird er teurer. Bitcoin-Benutzer müssen immer abwägen, ob sie etwas länger warten müssen, um ihre Transaktionen in Blöcke zu bringen (bis die Überlastung nachlässt), und höhere Gebühren zu zahlen.
Wir können beobachten, dass je mehr Transaktionen im Mempool in die Warteschlange gestellt werden, desto höher der Preis für Blockplatz und desto flacher die Steigung der Gebührensatzverteilung. Je geringer also die Differenz zwischen zusammenhängenden Blockbelohnungen ist. Ungewöhnlich hohe Gebühren für Transaktionen mit hoher Priorität, die zwischen den Blöcken veröffentlicht werden (dieser Haufen auf der linken Seite der Diagramme), stellen einen kleineren Bruchteil der Gesamtbelohnung dar, wenn der Mempool ausgelastet ist.
Überprüfen Sie den klaren Schnitt bei 250 sat/WU für die meisten Transaktionen vom 22. Dezember 2017. Wenn die Gebühren erheblich hoch werden, zeigen viele Leute, dass sie es mit der Transaktionsbestätigung doch nicht so eilig haben, und Sie können nicht erwarten, dass sie bereit sind zu zahlen viel mehr, damit ihre Transaktionen in 6 Stunden statt in 7 Stunden abgebaut werden.
Die Belohnungen unmittelbar nach dem Finden eines Blocks sind sicherlich NICHT null, „was es für jeden Miner unrentabel macht, zu minen“, wie sie behaupten.
3. Miner können das Unterbietungsrisiko jederzeit absichern.
Bergleute könnten eine Ausgabe, die jeder ausgeben kann, als Prämie in ihre Blöcke aufnehmen, um das Risiko zu mindern, dass andere Bergleute sie unterbieten, wenn ihre Belohnungen viel wertvoller sind als die im Mempool verbleibenden Gebühren (dies kann nur passieren, wenn einige Transaktionen sich auszahlen). wirtschaftlich irrationale Gebührenbeträge). Es besteht also keine Notwendigkeit, die Transaktionsauswahl zu ändern, um dies zu ermöglichen, selbst in unwahrscheinlichen Szenarien.
Ja, das wird auch als Fee Sniping bezeichnet.
Die meisten Wallets, die ich kenne ( * ), setzen das nLockTime
auf den Tipp, damit die erstellte Transaktion nur in den nächsten Block aufgenommen werden darf (oder der Block würde von allen verifizierenden Nodes abgelehnt und der Miner würde Geld verlieren : the nLockTime
Regel ist eine Konsensregel).
( * ) Bitcoin-Core , Electrum, C-Lightning , Joinmarket
G. Maxwell