¿Podemos experimentar en Signet con múltiples bifurcaciones blandas propuestas mientras mantenemos la capacidad de los nodos completos para validar la cadena de Signet?

Uno de los objetivos de Signet es probar las bifurcaciones blandas propuestas antes de que se activen en la red principal. Esto no solo significa bifurcaciones blandas propuestas como Taproot que, en el momento de escribir este artículo (agosto de 2020), se encuentran en una etapa avanzada (BIP revisados, relaciones públicas en revisión en el código base de Bitcoin Core, discusión de activación iniciada), sino potencialmente otras bifurcaciones blandas propuestas que son en una etapa menos avanzada. También vale la pena señalar que, a pesar de que Taproot se encuentra en una etapa avanzada, todavía se ha debatido sobre el cambio del BIP (340). Con bifurcaciones suaves propuestas menos avanzadas, podrían cambiar y actualizarse en múltiples puntos antes de activarse en la red principal o rechazarse por completo.

¿Cómo permitirá Signet esta experimentación y prueba en las bifurcaciones blandas propuestas mientras mantiene la capacidad de los nodos completos para validar la cadena Signet desde la génesis?

Respuestas (1)

La forma en que Signet probablemente abordará esto es tener dos clases de nodos completos de Signet. La primera clase de nodos completos de Signet permanecerá en una versión estable de Signet y solo se actualizará una vez que se active la bifurcación suave propuesta en la red principal. La segunda clase de nodos completos de Signet ejecutará versiones experimentales de Signet y, como resultado, deberá actualizarse cada vez que se agregue una nueva bifurcación suave propuesta o se agregue un cambio a una bifurcación suave propuesta existente. Si no lo hacen, corren el riesgo de ser bifurcados de la cadena Signet. Esto es similar a los nodos completos que necesitan actualizarse de inmediato, suponiendo que haya bifurcaciones duras regulares.

Como ejemplo (crédito a AJ Towns por esta explicación), imagina que hay tres clases de nodo completo.

  1. No aplica Taproot en absoluto
  2. Hace cumplir las reglas Taproot actuales del bloque 800
  3. Hace cumplir un nuevo conjunto futuro de reglas Taproot del bloque 2400 (suponiendo que R cambie el desempate )

La clase 1 puede validar toda la cadena al ignorar las nuevas restricciones de la bifurcación suave de la misma manera que las versiones anteriores a SegWit de Bitcoin Core en la red principal pueden tratar los gastos de SegWit como cualquiera puede gastar. Una vez que la bifurcación suave propuesta se activa en la red principal, estos nodos completos de Signet pueden actualizarse de manera segura a lo que probablemente sería una nueva versión estable y no experimental de Signet.

Sin embargo, la Clase 2 comienza a aplicar las reglas Taproot desde el bloque 800. Cuando esas reglas Taproot cambian en el bloque 2400, a menos que los nodos de Clase 2 se actualicen, comenzarán a rechazar transacciones siguiendo las nuevas reglas Taproot, ya que no las reconocerán. Evaluarán esas transacciones de acuerdo con las reglas antiguas de Taproot y no serán gastos válidos de Taproot de acuerdo con esas reglas antiguas.

Por lo tanto, los nodos completos de Class 2 Signet deberán actualizarse cada vez que haya una nueva versión experimental de Signet. Obviamente, esto no es lo ideal, pero parece una compensación razonable dado que el propósito de Signet es la experimentación y las pruebas sin ningún valor real en la línea. Si no puede probar las cosas por temor a forzar Signet, no está proporcionando el banco de pruebas y el terreno de preparación que se requieren antes de que se consideren los cambios para la red principal con cientos de miles de millones de dólares en juego.