Ethereum: de historia a labs

Artículo 26 de 48

54%

completado al llegar aquí

Sistemas distribuidosNota de investigación12 min de lectura

"Ethereum 2" ya no es el nombre: execution y consensus layer

Por qué Eth1 y Eth2 pasaron a llamarse capa de ejecución y capa de consenso, y cómo se reparten el trabajo los dos clientes de un nodo actual.

Ruta Ethereum: 0/48

Un compañero te escribe: "¿tenemos que migrar nuestros contratos a Ethereum 2?". La respuesta corta es no. No hay una segunda red a la que mudarse ni un token ETH2 que comprar. Lo que hubo fue un cambio de motor de consenso dentro de la misma red, y un cambio de nombres para dejar de sugerir lo contrario.

En enero de 2022 la Ethereum Foundation explicó que los términos Eth1 y Eth2 se retiraban: Eth1 pasó a llamarse capa de ejecución (execution layer), Eth2 pasó a llamarse capa de consenso (consensus layer), y Ethereum es la suma de ambas. Este capítulo cuenta por qué el nombre viejo tenía sentido en su momento, por qué dejó de tenerlo y qué significa la división en dos capas para quien opera un nodo o depura una dapp.

Brújula de lectura

Actor, evidencia y estado

Antes de avanzar, ubica quién actúa, qué prueba queda y qué parte del sistema cambia.

Actor

Dos clientes por nodo

El cliente de ejecución corre la EVM; el de consenso sigue slots, votos y finalidad.

Evidencia

Engine API autenticada

Los dos clientes se hablan por un canal JWT; si falla, el nodo queda fuera de juego.

Estado

Una sola cadena

Cuentas, contratos e historial siguen en la misma red desde 2015; solo cambió quién decide el orden.

Preguntas guía

  • ¿Qué parte del nodo ejecuta tu transacción y qué parte decide en qué bloque queda?
  • ¿Por qué un nodo con JSON-RPC respondiendo puede estar, aun así, fuera de sincronía?
  • ¿Qué evidencia pedirías para saber cuál de las dos capas está fallando?
  • ¿Por qué un cambio de nombre se consideró también una medida contra estafas?

Conexiones dentro de la serie

Historia del nombre: un plan por fases que cambió

El nombre "Ethereum 2.0" nació de un plan concreto. La idea era construir una cadena nueva de prueba de participación, con sharding, mientras la cadena original de prueba de trabajo (Eth1) se iba abandonando con la difficulty bomb, un mecanismo que hace cada vez más difícil minar. Los usuarios y las aplicaciones migrarían a la cadena nueva, Eth2.

Ese plan se encontró con dos cosas. Primero, al empezar a construir la Beacon Chain quedó claro que la hoja de ruta por fases tardaría años. Segundo, apareció la propuesta de "Early Merge": conectar la cadena EVM existente al sistema nuevo, de modo que el paso a prueba de participación no exigiera ninguna migración a las aplicaciones.

Además, el trabajo sobre rollups mostró una vía de escalado más cercana que el sharding de ejecución. El resultado fue reutilizar los clientes existentes, probados durante años en mainnet, como mitad de ejecución del sistema final.

Con ese giro, "1" y "2" dejaron de describir la realidad. No había una cadena primera que desaparecía y una segunda que la sustituía; había dos componentes que trabajarían juntos. A finales de 2021 los desarrolladores del núcleo ya hablaban de capa de ejecución y capa de consenso, y en enero de 2022 ethereum.org hizo el mismo cambio.

Qué rompía el nombre viejo: modelo mental, estafas y tickers

El artículo de la renombrada da tres motivos. El primero es el modelo mental: "Eth2" sugiere que Eth1 va primero y deja de existir después, y ninguna de las dos cosas es cierta.

El segundo es la prevención de estafas. Hubo actores que pedían a los usuarios "cambiar" su ETH por tokens ETH2 o "migrarlo" antes de la actualización. El tercero es la claridad del staking: algunos operadores mostraban el ETH depositado en la Beacon Chain con un ticker ETH2, cuando no existe ningún token ETH2.

ethereum.org lo repite para The Merge: quien tiene ETH no tenía que hacer nada; no hay "ETH viejo" ni "ETH nuevo", y quien diga lo contrario probablemente intenta estafar. Para un equipo de producto esto es una regla de soporte: cualquier flujo que pida al usuario "migrar a ETH2" es una señal de fraude, no una funcionalidad.

El cambio de nombre no cambió la hoja de ruta. La Ethereum Foundation insistió en que era solo un cambio de terminología y que las funcionalidades planeadas seguían igual.

Anatomía de un nodo actual: dos clientes y un canal autenticado

Ahora la parte que importa a quien opera. ethereum.org define un nodo como una instancia de software cliente conectada a otros, y añade que un nodo tiene que correr dos clientes. El cliente de ejecución, antes llamado cliente Eth1, escucha transacciones, las ejecuta en la EVM y guarda el estado. El cliente de consenso, antes llamado cliente Eth2 o beacon node, implementa el algoritmo de prueba de participación.

Hay una tercera pieza opcional: el cliente validador, que se añade al de consenso para firmar bloques y votos. Sin él, el nodo verifica la cadena pero no participa en producirla. Correr un nodo no exige depositar ETH; solo validar lo exige.

Los dos clientes se comunican mediante la Engine API. Ese canal va autenticado: la especificación fija el puerto 8551 por defecto, tokens JWT firmados con HS256 y un secreto compartido de 256 bits que ambos clientes leen de un archivo. Si el secreto no coincide, ethereum.org advierte que el nodo aparece "offline" hasta que las dos capas estén sincronizadas y autenticadas.

Figura 1

Un nodo después de The Merge: dos clientes, dos redes p2p y un canal autenticado

Fuentes:

[3][5]
Un nodo después de The Merge: dos clientes, dos redes p2p y un canal autenticado
Cómo leer esta figura

Diagrama con dos columnas. A la izquierda, de arriba abajo: Red p2p de ejecución con transacciones pendientes, Cliente de ejecución con EVM, estado, mempool y receipts, y Wallet, dapp o indexador conectado por JSON-RPC. A la derecha, de arriba abajo: Red p2p de consenso con bloques y attestations, Cliente de consenso con slots, fork choice y finalidad, y Cliente validador opcional con claves de firma conectado por Beacon API. Una flecha doble horizontal une ambos clientes con la etiqueta Engine API, JWT compartido, puerto 8551. Una nota abajo dice: un nodo completo igual a dos clientes.

Visual original de TrautsLab. El cliente de ejecución atiende transacciones y JSON-RPC; el cliente de consenso atiende bloques, votos y finalidad; la Engine API, autenticada con un JWT compartido, los une. El cliente validador es opcional.

Riesgo operativo: diagnosticar qué capa está enferma

La división en capas tiene una consecuencia práctica: "el nodo responde" ya no basta como señal de salud. La capa de ejecución puede seguir contestando JSON-RPC mientras la de consenso está atrasada, y al revés. Hay que preguntar a cada una por separado.

Bash
# Ilustrativo: los puertos dependen del cliente y de su configuración.
# Capa de ejecución (JSON-RPC estándar):
curl -s -X POST http://localhost:8545 -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_syncing","params":[]}'
 
# Capa de consenso (Beacon API estándar):
curl -s http://localhost:5052/eth/v1/node/syncing

La respuesta de la Beacon API trae cinco campos: head_slot, sync_distance (slots que faltan, 0 si está al día), is_syncing, is_optimistic y el_offline, que vale true cuando el cliente de ejecución está caído. Ese último campo es el puente entre las dos capas: el cliente de consenso te dice si ve a su compañero. El campo is_optimistic indica sincronización optimista: el cliente de consenso importa bloques beacon sin haber verificado todavía sus payloads de ejecución, porque el cliente de ejecución aún se está poniendo al día.

Runbook después de The Merge

¿Qué capa está realmente enferma?

Reglas de decisión rápida

  • ¿JSON-RPC responde pero la Beacon API marca el_offline en true?

    El cliente de consenso no alcanza al de ejecución.

    → Revisar endpoint de la Engine API, puerto 8551 y archivo JWT compartido.

  • ¿La Beacon API muestra sync_distance alto?

    El cliente de consenso va atrasado respecto a la cabeza de la red.

    → Revisar peers de consenso y punto de partida de la sincronización.

  • ¿is_optimistic es true durante mucho tiempo?

    El cliente de consenso sigue la cabeza sin que ejecución haya validado los payloads.

    → Esperar a que ejecución termine de sincronizar antes de confiar en el estado.

  • ¿Ambas capas sincronizadas y sin el_offline?

    eth_syncing devuelve false y sync_distance es 0.

    → Registrar ambas lecturas como evidencia de salud.

Una regla para recordar: cuando un incidente diga "Ethereum 2", tradúcelo antes de actuar. Si habla de bloques, votos o finalidad, mira la capa de consenso. Si habla de transacciones, gas o estado de contratos, mira la de ejecución. Si habla de que los dos no se ven, mira la Engine API.

Referencias

Bibliografía académica

Formato IEEENumerado para ingeniería, sistemas y protocolos.
  1. [1]

    Ethereum Foundation, "The great renaming: what happened to Eth2?," Ethereum Foundation Blog, Jan. 24, 2022.

    foundation blogID: ETH-ETH2-RENAMING-2022Abrir fuente (abre en otra pestaña)

    Eth1 pasa a ser execution layer y Eth2 consensus layer; historia del plan por fases, Early Merge y motivos del cambio.

  2. [2]

    ethereum.org, "The Merge," Ethereum roadmap, accessed 2026-11-12.

    official docsID: ETH-MERGE-2022Abrir fuente (abre en otra pestaña)

    Fecha de The Merge, no existe ETH1/ETH2 para el usuario, nodo con dos clientes y secreto JWT.

  3. [3]

    ethereum.org, "Nodes and clients," Ethereum developer documentation, accessed 2026-11-12.

    official docsID: ETH-NODES-CLIENTSAbrir fuente (abre en otra pestaña)

    Responsabilidades del execution client, del consensus client y del validador opcional.

  4. [4]

    ethereum.org, "The Beacon Chain," Ethereum roadmap, accessed 2026-11-12.

    official docsID: ETH-BEACON-CHAINAbrir fuente (abre en otra pestaña)

    La Beacon Chain es hoy la capa de consenso; ambas capas se comunican por la Engine API.

  5. [5]

    ethereum/execution-apis, "Engine API: Authentication," GitHub specification, accessed 2026-11-12.

    Puerto por defecto 8551, JWT con HS256, secreto de 256 bits y ventana de iat de 60 segundos.

  6. [6]

    ethereum/beacon-APIs, "GET /eth/v1/node/syncing," GitHub specification, accessed 2026-11-12.

    specID: BEACON-API-SYNCINGAbrir fuente (abre en otra pestaña)

    Campos head_slot, sync_distance, is_syncing, is_optimistic y el_offline.

  7. [7]

    ethereum/consensus-specs, "Bellatrix: Optimistic Sync," GitHub specification, accessed 2026-11-12.

    specID: CONSENSUS-SPECS-OPTIMISTICAbrir fuente (abre en otra pestaña)

    Importar bloques beacon sin verificar los payloads de ejecución mientras el cliente de ejecución sincroniza.

Fuentes primarias, papers seminales y especificaciones técnicas citadas en esta investigación.

Rutas vecinas

Si este tema te abrió hambre, sigue por aquí.

Series y labs que comparten área o dependen de esta ruta. Pocas opciones, para no convertir la curiosidad en menú infinito.

Sigue leyendo

Ideas conectadas con este artículo

Una ruta corta para continuar sin abrir veinte pestañas y perder el hilo.

Los comentarios se cargan al final de la lectura para no meter peso antes de tiempo.