Saltar al contenido
0%

¿Qué son los niveles de compromiso de Ethereum?

Alchemy team headshot

Escrito por Alchemy

Publicado el 13 de septiembre de 20224 min de lectura

La Beacon Chain introduce dos nuevos niveles de compromiso ("commitment levels") de Ethereum, safe y finalized, que se usan para etiquetar bloques junto con la etiqueta latest ya existente de la cadena PoW. La etiqueta de bloque latest es el bloque más reciente agregado a la blockchain de Ethereum, también conocido como el "head", el nivel de compromiso safe está un epoch (es decir, 32 slots) detrás del epoch actual, y el nivel de compromiso finalized está un epoch detrás del bloque más recientemente marcado como safe.

Los niveles de compromiso de Ethereum son útiles porque ofrecen primitivas útiles para que los desarrolladores de web3 consulten bloques con baja probabilidad de sufrir un reorg, algo posible gracias a los cambios del algoritmo Proof-of-Stake de Ethereum.

Debido a que los desarrolladores tienen mayores garantías de que los bloques justified y finalized tienen baja probabilidad de sufrir un reorg, pueden incorporar suposiciones más sólidas en sus smart contracts y aplicaciones descentralizadas.

¿Qué es un número de bloque?

El número de bloque es un valor numérico usado para designar el orden de un bloque agregado a la blockchain. Por ejemplo, si el bloque pendiente que se está construyendo y validando tiene el número de bloque 100, el bloque validado más recientemente (es decir, el bloque latest) tendría el número de bloque 99.

¿Qué es una reorganización de cadena (re-org)?

Una reorganización de cadena ocurre cuando un bloque que fue agregado a la cadena canónica (es decir, la cadena principal, o la cadena más larga) se elimina y se reemplaza por un bloque diferente. Los reorgs afectan la finalidad de la liquidación ("settlement finality") porque los bloques agregados a la cadena canónica pueden cambiar mediante un reorg.

Debido a que los reorgs pueden ocurrir por exploits y como resultado del Maximal Extractable Value (MEV), confiar en que el último bloque está liquidado es una suposición difícil de hacer para los desarrolladores.

Con la migración de Proof-of-Work a Proof-of-Stake, la Beacon Chain de Ethereum introdujo los niveles de compromiso de bloque safe y finalized para brindar a los desarrolladores garantías más sólidas.

¿Qué es un epoch?

En el entorno de Ethereum posterior al merge, la Beacon Chain introduce los slots, que son oportunidades para construir nuevos bloques, y los epochs, que equivalen a 32 slots. Debido a que se puede validar un nuevo bloque exactamente cada 12 segundos, un epoch equivale a 6.4 minutos.

Durante cada epoch, la Beacon Chain aleatoriza un comité de validadores para atestiguar la validez de los bloques que se agregan a la blockchain. Los niveles de compromiso de bloque safe y finalized se determinan en función de los epochs.

Aunque hay 32 slots en cada epoch, en raras ocasiones (menos del 1%), un bloque podría no validarse en cada slot, por lo que algunos epochs pueden tener menos de 32 bloques. Un ejemplo es cuando el validador elegido aleatoriamente no está en línea.

¿Qué son los niveles de compromiso de Ethereum?

Los niveles de compromiso de Ethereum son etiquetas usadas para marcar bloques validados como latest, justified o finalized, lo que ofrece a los desarrolladores ciertas garantías respecto a qué tan probable es que esos bloques sean reorganizados.

1. Latest

El bloque latest es el bloque más reciente construido y validado por los validadores de Ethereum. El bloque latest debe usarse con precaución porque no hay garantías de que la Beacon Chain no se reorganice, y este bloque se convierta en un Uncle Block, o un bloque que no fue agregado a la cadena canónica.

2. Safe

El bloque safe es un bloque que ha recibido atestaciones de dos tercios del conjunto de validadores de Ethereum. Los bloques safe se entienden como poco probables de ser reorganizados.

Por ejemplo, una de las pocas formas en que los bloques safe podrían experimentar una reorganización de cadena es si hay un ataque coordinado a gran escala sobre la red.

3. Finalized

Un bloque finalized es un bloque justified que está 1 epoch detrás del bloque justified más reciente. Los bloques finalized tienen una probabilidad extremadamente baja de ser reorganizados, con la única excepción de que una mayoría de dos tercios de los validadores finalice una cadena de bloques competidora.

¿Cómo se determinan los niveles de compromiso safe y finalized?

Los niveles de compromiso safe y finalized se determinan por la finalización de los epochs. Imaginemos los primeros tres epochs (epoch 0, 1 y 2) después de The Merge para visualizar cómo funcionan los bloques safe y finalized.

  • Epoch 0 = bloques 0-31
  • Epoch 1 = bloques 32-63
  • Epoch 2 = bloques 64-95
  • Epoch 3 = bloques 96-127

Supongamos que el último bloque es el bloque 96, que marca el inicio del epoch 3 y el fin del epoch 2.

Debido a que el bloque 96 incluye atestaciones (es decir, votos de validadores que señalan que el encabezado de bloque canónico propuesto es verdadero) para el bloque 64, una vez que la Beacon Chain recibe atestaciones de dos tercios de los validadores, el bloque 64 se etiqueta como justified (safe).

Una vez que el bloque 64 se etiqueta como justified y se marca como safe, el bloque previamente justified se marca como finalized. Debido a que los bloques safe y finalized ocurren al inicio de los epochs, el bloque 32 (el primer bloque del epoch 1) se marca como finalized.

Aquí hay otra forma de visualizarlo si el número de bloque actual es 96:

  • Bloque 96 (inicio del epoch 3) = latest
  • Bloque 64 (inicio del epoch 2) = justified (safe)
  • Bloque 32 (inicio del epoch 1) = finalized
Background gradient

Construye magia blockchain

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