Wie wurde FORKID in Bitcoin Cash am ursprünglichen Fork-Punkt und in allen Upgrades seitdem verwendet?

Verweise:

https://github.com/bitcoincashorg/bitcoincash.org/blob/master/spec/replay-protected-sighash.md

https://github.com/bitcoincashorg/bitcoincash.org/blob/master/spec/2018-nov-upgrade.md

Es sieht für mich so aus, als hätte Bitcoin-ABC am ursprünglichen Fork-Punkt einen zusätzlichen Wert 0x40namens SIGHASH_FORKIDhinzugefügt, der mit den Standard-SIGHASH-Flags xoriert wird, um ein SIGHASH-Byte zu erzeugen, das mit Bitcoin Core nicht kompatibel ist. Dies bietet einen Wiedergabeschutz für alle Transaktionen, die mit ECDSA-Pubkeys signiert sind.

Fragen:

Wird das FORKIDmit jedem "Protokoll-Upgrade" aktualisiert, zum Beispiel das kürzliche "Magnetic Anomaly"-Upgrade? Wenn nein, warum nicht?

Es sieht so aus, als würde das Upgrade vom Mai 2019 das in ändern FORKID, 0xFF0001aber die Spezifikation erwähnt „Wallets, die dem Upgrade folgen, sollten nichts ändern müssen“. -- wie ist das möglich?

Hat Bitcoin-SV FORKIDseinen kürzlichen Hard Fork von Bitcoin-ABC abgeändert? Gibt es überhaupt einen Wiederholungsschutz zwischen diesen beiden Ketten?

Antworten (1)

Der Zweck von „ForkID nach einer bestimmten Zeit auf 0xSMTHNG setzen“ besteht darin, die alte Kette am Leben zu erhalten, aber getrennt zu halten, falls ein Fehler in der Hard Fork auftritt. Nach einem Bitcoin Cash Hardfork, sagen wir im November 2018, wenn Sie einen inkompatiblen Client verwenden, einen Client, der mit Mai 2018 konform ist, führt er Transaktionen mit einer FORKID durch, die mit beginnt 0xFF00, und diese Transaktionen sind in der neuen Kette ungültig . Wallets sollten diese Regel nicht durchsetzen, da davon ausgegangen wird, dass sie keine Nodes sind und sie nicht an (einigen) der neuen Konsensregeln interessiert sind, die normalerweise kleine Änderungen wie neue Opcodes sind.

Wissenswertes: Bitcoin SV wurde von Bitcoin ABC gemäß Mai 2018 abgeleitet. Wenn sie dies nicht begehen würden , gäbe es einen Wiederholungsschutz.

1. Meinst du Mai 2019? (nicht 2019) 2. Hat BCH die FORKID mit jedem Hard Fork erhöht? Es gab schon ein paar und ich glaube nicht, dass sie es getan haben. 3. Sind Brieftaschen nicht buchstäblich das Ding, das SIGHASH VERWENDET? Meinen wir hier nur SPV Wallets? Müssten sie nicht die FORKID-Regel befolgen, um tx in die Kette aufzunehmen? 4. Ich verstehe die Logik nicht 0xdead, was passiert da?
1) Nein, Mai 2018 2) Nein, ForkId wird geändert, wenn ein Client läuft, der aktuelle Konsensregeln unterstützt, aber nicht die Regeln des nächsten Konsenses, nachdem das nächste Fork-Datum kommt. Beim Haupt-Bitcoin-Cash war es immer 0 (nicht bei den Dead Forks). 3) Ja, diese Regel ist verwirrend und unlogisch. Es wird davon ausgegangen, dass Wallets für Hard Forks nicht aktualisiert werden müssen, sondern nur ihre Backends. 4) Nodes ändern den gültigen Forkid-Wert im Falle einer Hard Fork, die sie nicht unterstützen, um diese alte Kette am Leben zu erhalten und mit 2-Wege-Wiedergabeschutz. Zögern Sie nicht, weitere Fragen zu stellen, wenn etwas unklar ist.
Verstanden danke. Mein Missverständnis war, dass FORKID von Knoten ohne Upgrade zur Fork-Zeit eingeschaltet wird. Das hatte ich hinten :-)