Referencias:
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
Me parece que en el punto de bifurcación original, Bitcoin-ABC agregó un valor adicional 0x40
llamado SIGHASH_FORKID
Xor'ed con las banderas SIGHASH estándar para producir un byte SIGHASH que es incompatible con Bitcoin Core. Esto proporciona protección de reproducción para todas las transacciones firmadas con claves públicas ECDSA.
Preguntas:
¿Se FORKID
actualiza con cada "actualización de protocolo", por ejemplo, la actualización reciente de "anomalía magnética"? ¿Si no, porque no?
Parece que la actualización de mayo de 2019 cambiará FORKID
a 0xFF0001
pero la especificación menciona que "las billeteras que siguen a la actualización no deberían tener que cambiar nada". -- ¿Cómo es eso posible?
¿Cambió Bitcoin-SV FORKID
por su reciente bifurcación de Bitcoin-ABC? ¿Hay alguna protección de reproducción entre esas dos cadenas?
El propósito de "después de cierto tiempo, establezca FORKID en 0xSMTHNG" es mantener viva la cadena anterior pero separada, en caso de un error en la bifurcación dura. Después de una bifurcación dura de Bitcoin Cash, digamos en noviembre de 2018, si está utilizando un cliente incompatible, un cliente que cumple con mayo de 2018, realizará transacciones con un FORKID que comienza con 0xFF00
, y esas transacciones no serán válidas en la nueva cadena. . Las billeteras no deberían aplicar esta regla, ya que se supone que no son nodos y que no están interesados en (algunas de) las nuevas reglas de consenso, que suelen ser pequeños cambios, como nuevos códigos de operación.
Trivia: Bitcoin SV se derivó de Bitcoin ABC y cumplió con mayo de 2018. Si no cometieran esto , habría protección de repetición.
cabeza de alfiler
0xdead
, ¿qué está pasando ahí?MCCCS
cabeza de alfiler