Saltar al contenido principal

Una publicación etiquetados con "Shapella"

Ver Todas las Etiquetas

La Actualización Shanghai (Shapella) de Ethereum, Desmitificada

· 7 min de lectura
Dora Noda
Software Engineer

Retiros, ajustes de gas, y lo que vino después—sin la propaganda.


La Versión Corta

La actualización Shapella, un acrónimo de Shanghai (para la capa de ejecución) y Capella (para la capa de consenso), se activó en Ethereum el 12 de abril de 2023. Su característica principal fue habilitar los retiros de staking por primera vez desde el lanzamiento de la Beacon Chain.

El cambio más destacado, EIP-4895, introdujo un sistema donde los retiros de validadores se "empujan" automáticamente desde la capa de consenso a la capa de ejecución, sin requerir transacciones de usuario ni tarifas de gas. Junto a esto, se implementaron cuatro EIPs menores para ajustar la EVM, incluyendo reducciones en el costo del gas (Warm COINBASE), optimizaciones de bytecode (PUSH0), y límites en la creación de contratos (Initcode metering). La actualización también sirvió como advertencia final a los desarrolladores de que el opcode SELFDESTRUCT estaba siendo descontinuado.

Shapella cerró efectivamente el ciclo del Merge, y la siguiente actualización mayor, Dencun, llegó el 13 de marzo de 2024, cambiando el foco de la red hacia la escalabilidad con los "blobs" de EIP-4844.


Por Qué Shapella Fue un Hito Crítico

Desde el inicio de la Beacon Chain hasta abril de 2023, hacer staking con ETH era una calle de un solo sentido. Podías depositar 32 ETH para ayudar a asegurar la red y ganar recompensas, pero no podías retirar tu capital principal o esas recompensas de la capa de consenso. Esta liquidez bloqueada representaba un compromiso significativo y una barrera para muchos stakers potenciales.

Shapella cambió todo al abrir la puerta de salida.

El núcleo de la actualización fue EIP-4895, que diseñó ingeniosamente una "operación de retiro" a nivel de sistema. En lugar de requerir que los stakers elaboren una transacción y paguen gas para retirar, el protocolo mismo ahora automáticamente recoge fondos elegibles de la capa de consenso y los empuja a la capa de ejecución. Este diseño limpio, basado en empuje, minimizó la complejidad y el riesgo, haciendo mucho más fácil probar e implementar el cambio de manera segura.


Lo Que Realmente Cambió: Los EIPs en Español Simple

Shapella fue un paquete de cinco Propuestas de Mejora de Ethereum (EIPs) clave:

  • EIP-4895 — Retiros de Beacon Chain (Basados en Empuje) Este fue el evento principal. Habilitó tanto retiros parciales (recompensas) como completos (principal + recompensas) para fluir desde la capa de consenso a la dirección de retiro especificada del staker. La innovación clave es que estas no son transacciones iniciadas por usuario; son operaciones automáticas embebidas en bloques propuestos.

  • EIP-3651 — "Warm COINBASE" Este EIP hizo una optimización de gas pequeña pero importante. En la EVM, COINBASE se refiere a la dirección del productor del bloque (el validador), no el exchange. Antes de Shapella, la primera vez que un contrato inteligente accedía a esta dirección dentro de una transacción, incurría en un costo de gas más alto. EIP-3651 hizo que la dirección COINBASE fuera "warm" por defecto, reduciendo el costo de gas para protocolos que interactúan frecuentemente con ella, como aquellos que pagan propinas MEV directamente al constructor de bloques.

  • EIP-3855 — Opcode PUSH0 Una adición simple pero elegante a la EVM. Este nuevo opcode, PUSH0, hace exactamente lo que dice: empuja el valor cero al stack. Anteriormente, los desarrolladores tenían que usar opcodes más pesados y costosos para lograr esto. PUSH0 hace el bytecode ligeramente más pequeño y eficiente en gas, especialmente para los numerosos contratos que inicializan variables en cero.

  • EIP-3860 — Limitar y Medir initcode Este cambio introdujo dos reglas para el código usado para crear un contrato inteligente (initcode). Primero, estableció un límite máximo en el tamaño del initcode de 49,152 bytes. Segundo, agregó una pequeña tarifa de gas por cada chunk de 32 bytes de este código. Esto previene ataques de denegación de servicio que involucran contratos excesivamente grandes y hace los costos de creación de contratos más predecibles.

  • EIP-6049 — Deprecar SELFDESTRUCT (Advertencia) Esto no fue un cambio de código sino una advertencia formal a la comunidad de desarrolladores. Señaló que el opcode SELFDESTRUCT, que permite a un contrato eliminarse a sí mismo y enviar su ETH a una dirección objetivo, tendría su funcionalidad drásticamente cambiada en una actualización futura. Esto dio tiempo a los desarrolladores para eliminar gradualmente su dependencia de él antes de que la actualización Dencun alterara posteriormente su comportamiento con EIP-6780.


Retiros 101: Parciales vs. Completos

Shapella introdujo dos tipos de retiros automáticos, cada uno con sus propias reglas.

  • Retiros Parciales Estos son barridos automáticos de recompensas. Si el balance de un validador crece por encima de 32 ETH debido a recompensas de la capa de consenso, el protocolo automáticamente "descremó" la cantidad excedente y la envía a la dirección de retiro designada. El validador permanece activo y continúa sus deberes. Esto sucede sin acción requerida del staker.

  • Retiros Completos (Salida) Esto es para stakers que quieren dejar de validar y recuperar todo su balance. El staker debe primero transmitir un mensaje de salida voluntaria. Después de un período de espera, el validador se vuelve elegible para un retiro completo. Una vez procesado en el barrido, todo el balance se envía a la dirección de retiro, y el validador ya no es parte del conjunto activo.

Rendimiento y Cadencia

La red está diseñada para procesar retiros suavemente sin causar inestabilidad.

  • Hasta 16 retiros pueden incluirse en cada bloque (cada 12 segundos), permitiendo un máximo de aproximadamente 115,200 retiros por día.
  • El proponente del bloque escanea la lista de validadores activos e incluye los primeros 16 retiros elegibles. El siguiente proponente de bloque continúa donde el último se quedó, asegurando que cada validador obtenga su turno en la cola.
  • Para prevenir un éxodo masivo de desestabilizar la red, el número de validadores que pueden salir por época (cada ~6.4 minutos) está limitado por un límite de rotación. Este límite es dinámico basado en el número total de validadores activos, suavizando las olas de salida.

También es importante notar que las recompensas de la capa de consenso son manejadas por este mecanismo de retiro EIP-4895, mientras que las recompensas de la capa de ejecución (tarifas prioritarias y MEV) se envían directamente a la dirección de destinatario de tarifas configurada del validador y están disponibles inmediatamente.


Lo Que Vino Después: Dencun y el Camino a la Escalabilidad

Shapella marcó la exitosa finalización de la "era del Merge." Con staking ahora siendo un proceso completamente líquido y bidireccional, los desarrolladores dirigieron su atención al siguiente gran desafío de Ethereum: escalabilidad.

La siguiente actualización mayor, Dencun (Deneb + Cancun), llegó el 13 de marzo de 2024. Su pieza central fue EIP-4844, que introdujo "blobs"—una nueva forma más barata para rollups de Capa 2 de publicar datos de transacciones a la mainnet de Ethereum. Esto redujo dramáticamente las tarifas de transacciones en L2s y fue un paso masivo hacia adelante en la hoja de ruta centrada en rollups. Dencun también cumplió la promesa de EIP-6049 al implementar EIP-6780, que redujo significativamente el poder del opcode SELFDESTRUCT.


El Panorama General

Shapella fue el hito de confianza esencial para el consenso Proof-of-Stake de Ethereum. Al habilitar retiros, des-arriesgó el staking, restauró la liquidez, y afirmó la capacidad de la red para ejecutar actualizaciones complejas y coordinadas. También entregó un puñado de mejoras pragmáticas de EVM que limpiaron deuda técnica y pavimentaron el camino para optimizaciones futuras.

En resumen, Shapella no solo abrió la puerta de salida para los stakers—solidificó la base de la era post-Merge y despejó la pista para que Ethereum se enfocara en su siguiente frontera: escalabilidad masiva.