-
Forkd establece un filtro para las reglas que un nodo de Bitcoin aceptaría.
-
Los nodos de Bitcoin pueden estar preparados antes de tiempo.
Un usuario podría rechazar una actualización de Bitcoin antes de que se active, con una nueva línea de comandos ejecutables en un nodo de la red.
Cuando un posible soft-fork, bifurcación suave o actualización de Bitcoin, venga en camino, los nodos pueden rechazarla antes de que sea activada por otros nodos y mineros de la red.
De esa manera, antes de que una actualización entre en efecto, un nodo puede rechazar las nuevas reglas que se implementarán en Bitcoin en lo que respecta a sus transacciones y el protocolo en general.
Forkd es el nombre de esta nueva línea de comandos creada por el desarrollador Jeremy Rubin, y programada en el lenguaje Python.
Estos comandos se pueden ejecutar como llamada de procedimiento remoto (en inglés Remote Procedure Call, RPC) en Bitcoin Core, usando la misma herramienta de RPC que incluye este cliente.
No es necesario agregar librerías de Python o utilizar otro programa diferente, comentó Jeremy Rubin a CriptoNoticias.
La solución Forkd se basa en el método versionbits, que es utilizado por los mineros para señalizar su apoyo en adoptar una actualización propuesta de Bitcoin.
¿Qué es versionbits o la versión de bits de Bitcoin?
Cada bloque de transacciones incluye un campo de escritura de 32 bits o caracteres, que es usado para declarar qué versión del software de Bitcoin Core o qué conjunto de reglas se admitieron para validar ese bloque.
La versión de bloque o versionbits es distinta para cada soft-fork de Bitcoin, de modo que la combinación numérica que se utilice indicará al resto de la red qué reglas se admitieron para validar esas transacciones.
También, cuando entre la comunidad de usuarios llegan a un consenso respecto a una próxima actualización de Bitcoin, en tanto qué conjunto de reglas contiene y cuándo sería su fecha de activación, los mineros pueden iniciar un proceso de señalización usando versionbits.
Esto lo vimos por ejemplo con la activación de Taproot, que se hizo vigente en noviembre de 2021, donde los mineros de Bitcoin confirmaron bloques introduciendo la versión de bits correspondiente a esta actualización o soft-fork, manifestando así estar de acuerdo con la adopción de Taproot en el protocolo.
Taproot es una actualización cuyo set de reglas es compatible con las anteriores versiones del software Bitcoin Core, lo que significa que aquellos nodos que no ejecuten aún el software que incluye a Taproot, pueden reconocer los bloques con la versión de bit de Taproot sin causar una bifurcación fuerte.
La combinación numérica o versionbits es acordada previamente por los desarrolladores de las propuestas de mejora de Bitcoin, y estos la anuncian a la comunidad para coordinar su activación.
El desarrollador de Bitcoin identificado bajo el pseudónimo Murch explica qué es un versionbit con este ejemplo:
Con Forkd podemos indicar a nuestro nodo de Bitcoin cuál es la versión de bits de una propuesta que no queremos implementar en el cliente o software que utilizamos.
Por tanto si otros nodos o mineros en la red adoptan esta versión de bits, nuestro nodo rechazará dichos bloques minados bajo esa señal o conjunto de normas, manteniéndose en la cadena y cliente en el que quiere permanecer.
Forkd sería una herramienta adicional a la función que cumple versionbits, ya que con solo conocer el serial o versión del bloque los nodos podrían mantenerse al margen de adoptar una actualización en camino.
Sin embargo, hay que recordar que si la actualización entra en efecto, ocurriría una división de la cadena en cuanto a que los nodos a favor y los nodos en contra tendrían versiones diferentes de la blockchain de Bitcoin.
Dependiendo de la proporción o relación de los nodos a favor o en contra de una versión de Bitcoin, estas bifurcaciones fuertes podrían causar problemas o escenarios contensiosos entre los usuarios, pero ese posible escenario no es propiciado ni agravado por Forkd, técnicamente.
El sistema versionbits está recopilado en la Propuesta de Mejora de Bitcoin número 9, o BIP-9, desarrollada por Pieter Wuille para Bitcoin Core.