---
title: "¿Qué son los niveles de compromiso de Ethereum?"
description: "Conoce los niveles de compromiso Safe (Justified), Finalized y Latest"
---

# ¿Qué son los niveles de compromiso de Ethereum?

La [Beacon Chain](https://www.alchemy.com/overviews/what-is-the-ethereum-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](https://www.alchemy.com/overviews/what-is-a-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**](https://www.alchemy.com/overviews/what-is-a-reorg) 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\)](https://www.alchemy.com/overviews/what-is-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](https://ethereum.org/en/developers/docs/data-and-analytics/block-explorers/#consensus-layer-data), 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**](https://www.alchemy.com/docs/how-to-get-the-latest-block-on-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](https://www.alchemy.com/docs/what-are-uncle-blocks).

### **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](https://blog.ethereum.org/2021/11/29/how-the-merge-impacts-app-layer), 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](https://www.paradigm.xyz/2021/07/ethereum-reorgs-after-the-merge) \(es decir, votos de validadores que señalan que el [encabezado de bloque canónico propuesto](https://www.alchemy.com/overviews/proposer-builder-separation) 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_
