Saltar al contenido
0%

¿Qué es un shadow fork?

Alchemy team headshot

Escrito por Alchemy

Publicado el 24 de junio de 20225 min de lectura

¿Qué es un shadow fork?

Los shadow forks son similares a los devnets, pero en lugar de tener su propio estado, copian el estado de otra red (devnet o mainnet).

Por ejemplo, un shadow fork de la red principal de Ethereum sigue aceptando todas las transacciones que van a la mainnet.

Esta rama podría cambiar a Proof-of-Stake, pero conservaría las transacciones de mainnet y demás datos de estado/historial.

Después de un merge exitoso en el shadow fork, este pasa a la cadena Proof-of-Stake e ignora cualquier bloque de Proof-of-Work que se haya agregado a la mainnet.

¿En qué se diferencia un shadow fork de un fork normal?

A diferencia de un shadow fork, que se crea intencionalmente para probar actualizaciones de red con datos de estado existentes de la cadena original, un fork normal ocurre cuando la comunidad de desarrollo modifica el protocolo o se ve afectada por hackeos. Cuando ocurre un fork, la blockchain se divide, creando una segunda (nueva) blockchain con el mismo historial que la primera pero con un camino diferente.

Un ejemplo de cómo las actualizaciones a una blockchain por parte de los core developers provocan un fork es el London Hard Fork, que introdujo EIP-1559 para optimizar la estructura de comisiones de transacción de Ethereum.

Bitcoin y Ethereum se basan en tecnología blockchain y funcionan con software de código abierto. Se les llama "blockchains" porque están formadas por bloques de datos que se pueden vincular hasta la primera transacción de la red.

Como son de código abierto, sus comunidades son responsables de mantener y mejorar el código fuente. Como resultado, puede ocurrir un fork para hacer una blockchain más segura, para agregar nuevas funciones, o para mitigar los efectos de un hackeo, como el que ocurrió en 2016 tras el hackeo de The DAO.

En 2016 la blockchain de Ethereum se dividió en Ethereum Classic, que mantuvo un registro fiel que reflejaba los 3.6 millones de ETH robados, y Ethereum, que hizo un fork para revertir el hackeo.

¿Cuál es la diferencia entre soft forks y hard forks?

La diferencia entre soft forks y hard forks es que los soft forks cambian el código de una blockchain existente, mientras que los hard forks dividen la blockchain en dos blockchains distintas.

Soft fork

Un soft fork puede entenderse como una actualización del software que ejecuta la blockchain. Mientras todos lo usen, se convertirá en el nuevo conjunto de reglas de la red.

Los soft forks se han usado para agregar nuevas funciones o características a Ethereum, generalmente cambiando el código base y el software del cliente. Los cambios funcionan con los bloques creados antes del fork porque el resultado final es una sola blockchain.

Hard fork

Cuando el código cambia tanto que la nueva versión no puede usarse con bloques anteriores, esto se llama "hard fork". En este caso, la blockchain se divide en dos partes:

  1. la blockchain antigua, que sigue las reglas antiguas
  2. la blockchain nueva, que sigue las reglas nuevas

Esto crea una criptomoneda completamente nueva, y así es como surgieron muchas monedas conocidas. Un hard fork creó Bitcoin Cash a partir de la blockchain original de Bitcoin, y Ethereum Classic (ETC) se creó a partir de Ethereum (ETH).

¿Por qué son importantes los shadow forks?

Los shadow forks son herramientas importantes para los desarrolladores de web3 porque les permiten probar sus supuestos sobre las próximas actualizaciones de la red contra las condiciones más actuales del entorno de producción de mainnet.

Los shadow forks se usaron junto con testnets públicas para preparar The Merge, que cambió la Execution Layer de Ethereum de Proof-of-Work a Proof-of-Stake.

Los shadow forks son importantes para demostrar que el Merge se concretará sin una transición perjudicial para las apps existentes que operan en la red.

Las testnets que tienen estos shadow forks servirán de terreno de prueba para asegurar una transición fluida del merge, y ayudarán a generar confianza entre los operadores de nodos y los desarrolladores.

¿Cómo funcionan los shadow forks?

Una imagen que muestra cómo se crea un shadow fork a partir de una cadena Goerli existente
An image showing how a shadow fork is created out of an existing Goerli chain. Source: AllCoreDevs Update #011 https://tim.mirror.xyz/PWFVaHY3Mrx7srarMmuBWya0J5kioR1l2xaH3p5APDk

En la imagen de arriba, la fila superior de bloques de Goerli muestra un nodo en la blockchain canónica (es decir, original) que no tiene conocimiento del shadow fork.

La fila del medio de bloques de Goerli representa un nodo en la cadena con shadow fork, con una configuración distinta que le indica que debe dividirse al alcanzar la terminal total difficulty (TTD), o la dificultad total de minado que se usa como disparador para que los clientes dejen de minar y hagan la transición a PoS. En la última fila, hay una imagen de una Beacon Chain creada exclusivamente para el shadow fork. Cuando se alcanza la TTD, los nodos de la cadena canónica siguen creando bloques como si nada hubiera pasado, y los nodos cuyas configuraciones cambiaron se separan y pasan por el Merge.

Luego, el siguiente validador crea el primer bloque para la Beacon Chain después del Merge.

El shadow forking es la mejor manera de hacer esto porque permite a los desarrolladores probar qué tan bien funciona el proceso de fork y merge sin afectar la testnet pública ni la mainnet.

Al realizar esta operación de shadow fork una y otra vez, los desarrolladores pueden probar la transición del merge bajo diferentes situaciones.

¿Cuáles son los shadow forks más conocidos?

Dos testnets destacan por tener algunos de los shadow forks más conocidos: Goerli ha pasado por tres shadow forks, mientras que mainnet ha pasado por seis. La principal diferencia entre los dos shadow forks de mainnet fue que todas las combinaciones de clientes lograron completar una transferencia de shadow fork y se mantuvieron sincronizadas.

Este shadow fork también usa la rama develop/unstable de cada cliente. Esto significa que los desarrolladores ya no necesitan hacer merge de ramas. En la mainnet, se volvió a usar el contrato de depósito, pero con un fork ID diferente.

Esto implica que, en el shadow fork, cada depósito de mainnet debe procesarse y marcarse como inválido. Este cómputo, que exige muchos recursos, causó algunas condiciones límite en un pequeño número de clientes, pero la red igual funcionó bien.

Cómo hacer un shadow fork de Ethereum

Si te interesa hacer un fork de Ethereum, puedes seguir la guía paso a paso de Alchemy sobre cómo hacer fork de la mainnet de Ethereum con una cuenta gratuita de Alchemy, HardHat y una interfaz de línea de comandos (CLI).

Los shadow forks son herramientas críticas para los desarrolladores de Ethereum

Los shadow forks desempeñan un papel importante en el desarrollo continuo y las mejoras de escalabilidad de la blockchain de Ethereum. Con los shadow forks, los core developers de Ethereum, los proveedores de nodos y los stakers independientes pueden prepararse para los próximos cambios en toda la red, de modo que el ecosistema de aplicaciones de Ethereum no se vea interrumpido.

Background gradient

Construye magia blockchain

Alchemy combina los productos y herramientas de desarrollo Web3 más potentes con recursos, comunidad y un soporte legendario.