¿Qué impide que un gasto de Taproot siga las antiguas reglas de Taproot (inicialmente tratadas como cualquiera puede gastar) preactivación creando una activación posterior a la reorganización?

Esta pregunta es similar a esta pregunta de Signet en los nodos de Signet que aplican diferentes reglas Taproot (antiguas y nuevas) antes de la activación de la red principal. En cambio, se trata de cómo un gasto Taproot válido en la red principal de acuerdo con las reglas antiguas de Taproot (que nunca se aplicaron en la red principal) inicialmente tratado como cualquiera puede gastar por la red, no crea una reorganización masiva cuando las nuevas reglas Taproot son activado en mainnet.

Por ejemplo, supongamos que creé un UTXO gravado por las reglas de Taproot tal como se especificaron en julio de 2020 (antes de que los BIP de Taproot se cambiaran de un desempate de cuadratura para el punto R a un desempate de uniformidad). Logré gastar de este UTXO siguiendo las reglas de Taproot tal como se especificaron en julio de 2020. Por supuesto, Taproot no está activado en absoluto, por lo que todos los nodos habrían tratado mi transacción como cualquiera puede gastar y mi transacción fácilmente habría convirtió en un bloque. Ahora, digamos que en junio de 2021, Taproot se activa en la red principal con las nuevas reglas tal como se especificaron después de agosto de 2020 (con el criterio de igualdad). ¿Qué impide que mi transacción falle en la verificación de las nuevas reglas de Taproot y cree una reorganización masiva en el bloque que contiene mi transacción?

Respuestas (2)

Por supuesto, Taproot no está activado en absoluto, por lo que todos los nodos habrían tratado mi transacción como cualquiera puede gastar y mi transacción fácilmente se habría convertido en un bloque.

No, los nuevos tipos de salida para bifurcaciones blandas se construyen de manera que no son estándar para los nodos antiguos y, por lo tanto, los nodos antiguos no los incluyen en el mempool y, por lo tanto, tampoco se extraen en bloques a menos que el minero anule explícitamente el valor predeterminado. comportamiento.

Si un minero incluye una transacción no estándar de este tipo antes de que las reglas estén activas, no hay problema, ya que la transacción es válida de acuerdo con las reglas anteriores; de lo contrario, los nodos antiguos no podrían seguir la mejor cadena después de que se activaran las reglas. Las reglas entran en vigencia con la altura de activación y no se aplican retroactivamente.

Si un minero lo hace después de que las reglas están activas, crea un bloque no válido que es rechazado por todos los nodos que aplican las reglas de la bifurcación suave recién activada.

Cuando se activa la bifurcación suave (p. ej., Taproot) (suponiendo que se encuentre en algún momento), todos los nodos acuerdan verificar únicamente las transacciones de acuerdo con las reglas de Taproot desde el punto de activación de Taproot en adelante. Ningún nodo verificará la activación previa de las transacciones de acuerdo con las reglas especificadas en la activación. Por lo tanto, la red siempre estará de acuerdo en que su transacción siguiendo las antiguas reglas de Taproot era un gasto que cualquiera puede gastar, incluso si hay disponible un testigo SegWit v1 válido o no válido.

Por el contrario, después de la activación, habrá algunos nodos en la red que aplicarán las nuevas reglas Taproot (ejecutando la última versión de Bitcoin Core) y algunos los tratarán como cualquiera puede gastar (ejecutando versiones anteriores de Bitcoin Core). Los nodos que aplican las nuevas reglas Taproot rechazarán una transmisión de transacción posterior a la activación que siga las antiguas reglas Taproot (nunca activadas en la red). Aunque algunos nodos tratarán las transacciones que sigan las antiguas reglas de Taproot o las nuevas reglas de Taproot como si cualquiera pudiera gastar, solo las transacciones que sigan las nuevas reglas de Taproot se convertirán en un bloque minado aceptado por todos los nodos de la red .