Warum brauchen Hard Forks spezielle Regeln, um den Replay-Schutz zu ermöglichen?

Ich habe viele Methoden gesehen, die hart gegabelte Ketten verwenden, um sowohl starken als auch Opt-in-Wiedergabeschutz zu bieten, sodass Transaktionen nur für eine der Ketten gültig sind. Beispiele für solche Regeln sind die Verwendung einer transaktionsungültig machenden Ausgabe und die Verwendung einer bestimmten OP_RETURNZeichenfolge.

Meine Frage ist, warum sind diese Mechanismen notwendig, um einen Inhaber vor Replay-Angriffen zu schützen? Genauer gesagt, warum kann sich eine Person, die Münzen vor der Gabelung hält, nicht selbst schützen, indem sie einfach ein Paar Coin-Splitting-Transaktionen für jede Kette wie folgt ausgibt:

  1. Alice hat die alleinige Kenntnis des privaten Schlüssels, der benötigt wird, um UTXO auszugeben, Ader vor der Hard Fork mit 1 „LegacyCoin“ bewertet wird.
  2. Hard Fork erstellt eine neue Münze namens „NewCoin“, die auf der Blockchain-Geschichte von LegacyCoin basiert.
    • UTXO Aenthält jetzt 1 LegacyCoin gemäß dem LegacyCoin-Netzwerk und 1 NewCoin gemäß dem NewCoin-Netzwerk, denn so funktionieren Hard Forks.
  3. Alice erstellt und signiert zwei Transaktionen: eine, die ausgibt A, Bund eine, die ausgibt A( Cbeide von denen Alice auch die alleinige Kenntnis des privaten Schlüssels hat).
  4. Alice sendet diese signierten Transaktionen dann gleichzeitig auf den beiden Netzwerken: Senden der Transaktion A->Bnur auf dem LegacyCoin-Netzwerk und der Transaktion A->Cnur auf dem NewCoin-Netzwerk.
  5. Beide Transaktionen werden in ihren jeweiligen Netzwerken bestätigt, und jetzt hat Alice den ursprünglichen Wert von UTXO effektiv Aauf die beiden Blockchains aufgeteilt, ohne dass von NewCoin implementierte Replay-Schutzmechanismen vorhanden sind. Die Münzen können jetzt als geteilt betrachtet werden, denn selbst wenn sie ausgibt B, kann niemand sonst ausgeben C(und umgekehrt), da es sich um verschiedene UTXOs handelt und zum Ausgeben unterschiedliche Signaturen erforderlich sind. Außerdem kann offensichtlich niemand Geld ausgeben, Ada es bereits für beide Ketten ausgegeben wurde.

Warum ist die Aussage in Schritt 5 nicht wahr? Wo bricht diese Logik zusammen, die erfordert, dass der tatsächliche Replay-Schutzmechanismus durch Hard-Fork-Ketten implementiert wird?

Antworten (2)

Es ist wahr, dass das, was Sie vorschlagen, die Münzen effektiv aufteilen und weitere Wiederholungen verhindern würde, wenn es erfolgreich wäre.

Es leidet jedoch unter folgenden Problemen:

  • Jede Person, die ihre Coins splitten möchte, muss dazu eine zusätzliche Transaktion erstellen (und eine Transaktionsgebühr zahlen). Vermutlich möchte niemand wirklich Replay-Angriffen ausgesetzt sein, also wird jeder dies tun wollen. Das ist kostspielig für die Benutzer und eine riesige Anzahl von Transaktionen. Beispielsweise hat Bitcoin derzeit etwa 50 Millionen Utxos; Sie alle aufzuteilen, würde genügend Transaktionen erfordern, um etwa 5000 Blöcke zu füllen, sodass das gesamte Netzwerk mehrere Wochen lang festgefahren wäre und die Transaktionsgebühren in die Höhe schnellen würden.

  • Einige Personen kennen diese Anforderung möglicherweise nicht und setzen sich unwissentlich solchen Angriffen aus. Selbst wenn dies automatisch durch Software erfolgt, verwenden sie möglicherweise immer noch alte LegacyCoin-Software, die dies nicht tut. Das ist nicht sehr benutzerfreundlich.

  • Ein Angreifer kann es zumindest vorübergehend besiegen. Angenommen, Alice sendet ihre A->B- und A->C-Transaktionen wie von Ihnen vorgeschlagen. Mallory, ein böser NewCoin-Miner, sieht die A->B-Transaktion im LegacyCoin-Netzwerk und beschließt, zu versuchen, sie im NewCoin-Netzwerk zu wiederholen. Er fügt A->B in seinen Kandidatenblock ein (was er tun kann, weil er wiederholbar ist!) und hat das Glück, ihn abzubauen, bevor jemand anderes die A->C-Transaktion bestätigt. Jetzt leben Alices Münzen in beiden Netzwerken in utxo B, und genau das versucht sie zu vermeiden. Im besten Fall bemerkt sie dies und muss von vorne beginnen (und eine weitere Transaktionsgebühr zahlen), bis es ihr gelingt, dass ehrliche Miner die richtigen Transaktionen in beiden Netzwerken bestätigen. Im schlimmsten Fall bemerkt sie es nicht und ist unwissentlich anfällig für zukünftige Wiederholungen.

Das LegacyCoin-Netzwerk und das NewCoin-Netzwerk sind nicht eindeutig voneinander getrennt. Wenn die Netzwerkmagie und die Ports nicht geändert werden, können sich LegacyCoin-Knoten mit NewCoin-Knoten verbinden, und wahrscheinlich werden viele miteinander verbunden sein. Wenn Sie also die Transaktion A->Bim LegacyCoin-Netzwerk senden, wird sie wahrscheinlich einen NewCoin-Knoten erreichen, der dann bewirkt, dass die Transaktion auch im NewCoin-Netzwerk weitergeleitet wird.

Darüber hinaus können Menschen, selbst wenn die Netzwerke deutlich getrennt sind, einen Knoten sowohl im LegacyCoin-Netzwerk als auch im NewCoin-Netzwerk betreiben. Ohne Wiedergabeschutz kann jemand Transaktionen, die er im LegacyCoin-Netzwerk hört, nehmen und sie über seinen NewCoin-Knoten übertragen und umgekehrt.

Schließlich sollte ein Zwei-Wege-Wiederholungsschutz obligatorisch sein, da das Aufteilen Ihrer Münzen mit UTXO-Verunreinigung ziemlich schwierig ist. Sie müssen über angemessene technische Kenntnisse verfügen, um dies zu tun, und Sie werden wahrscheinlich modifizierte Software benötigen, um dies zu tun. Es ist etwas, was normale Benutzer wahrscheinlich nicht ohne einige sehr spezifische Anweisungen tun können, und es besteht eine hohe Wahrscheinlichkeit, dass sie es vermasseln und möglicherweise Münzen verlieren.

Um es klarzustellen, Ihre Aussage, dass der Prozess in Schritt 4 zusammenbricht: Alice hat möglicherweise nicht die Möglichkeit, auszuwählen, dass die Transaktionen in separaten Netzwerken übertragen werden, da es sich möglicherweise nicht um separate Netzwerke handelt, und selbst wenn dies der Fall ist, besteht immer noch die Möglichkeit, dass jemand sie abfangen kann eine ihrer Transaktionen und spielt sie trotzdem ohne Alices Wissen oder Erlaubnis auf dem "anderen" Netzwerk ab?
Ja. Aus diesem Grund wird es als "Transaktionswiederholungsangriff" bezeichnet. Ihre Transaktion wird möglicherweise ohne Ihr Wissen in einem anderen Netzwerk wiedergegeben.
Rechts. Ich weiß, dass es möglich ist, diese Methode des Wiederholungsschutzes zu umgehen, aber wäre es nicht unwahrscheinlich, dass das Wiederholungsereignis eintritt, es sei denn, es gäbe einen wirtschaftlichen Anreiz für jemanden, dies zu tun (was vermutlich nicht existieren würde, da Alice immer noch private Schlüssel für B und C kontrolliert )?
Es ist ein allgemeinerer Grund für den Wiederholungsschutz. Diejenigen, die nicht wissen, wie man diese Art der Aufteilung durchführt, werden am Ende ihre normalen Transaktionen entweder versehentlich oder möglicherweise von der Person wiederholen lassen, die die Transaktion erhält, die Coins auf der anderen Kette gewinnen möchte.