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 la mainnet y otros datos de estado/historial.

Después de un merge exitoso en el shadow fork, la cadena pasa a 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 blockchain (nueva) con el mismo historial que la primera pero con un camino distinto.

Un ejemplo de cómo las actualizaciones de una blockchain hechas por los desarrolladores principales 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 llaman "blockchains" porque están formadas por bloques de datos que se pueden rastrear hasta la primera transacción en 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, agregar nuevas funciones o mitigar los efectos de un hackeo, como ocurrió en 2016 tras el hackeo de The DAO.

En 2016, la blockchain de Ethereum se dividió en Ethereum Classic, que mantuvo un registro 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 se puede considerar 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 la base de código y el software cliente. Los cambios son compatibles con los bloques creados antes del fork, ya que el resultado final es una sola blockchain.

Hard fork

Cuando el código cambia tanto que la nueva versión no se puede usar 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 es el origen de 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 suposiciones sobre las próximas actualizaciones de la red frente a las condiciones más actuales del entorno de producción de la mainnet.

La red de pruebas Kiln es el último testnet para que los desarrolladores hagan pruebas en preparación para The Merge, que cambia la capa de ejecución de Ethereum de Proof-of-Work a Proof-of-Stake.

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

Los testnets que tienen estos shadow forks servirán como terreno de pruebas para garantizar 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 anterior, la fila superior de bloques de Goerli muestra un nodo en la blockchain canónica (es decir, la 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 se divida al llegar a la terminal total difficulty (TTD), es decir, 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 el TTD, los nodos de la cadena canónica siguen creando bloques como si nada hubiera pasado, y los nodos cuya configuración cambió 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 el testnet público ni la mainnet.

Al repetir esta operación de shadow fork una y otra vez, los desarrolladores pueden probar la transición del merge en distintas 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 la mainnet ha pasado por seis. La principal diferencia entre los dos shadow forks de la mainnet fue que todas las combinaciones de clientes lograron pasar por 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 la mainnet debe procesarse y marcarse como inválido. Este cálculo, que requiere muchos recursos, causó algunas condiciones límite en un pequeño número de clientes, pero la red siguió funcionando bien.

Cómo hacer 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 cumplen un papel importante en el desarrollo continuo y las mejoras de escalabilidad de la blockchain de Ethereum. Con los shadow forks, los desarrolladores principales 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.