---
title: "O que são níveis de confirmação do Ethereum?"
description: "Conheça os Níveis de Confirmação Safe (Justified), Finalized e Latest"
---

# O que são níveis de confirmação do Ethereum?

A [Beacon Chain](https://www.alchemy.com/overviews/what-is-the-ethereum-beacon-chain) introduz dois novos níveis de confirmação do Ethereum, _safe_ e _finalized_, que são usados para rotular blocos junto com o rótulo _latest_ já existente, da PoW chain. O block tag _latest_ é o bloco mais recente adicionado à blockchain do Ethereum, também conhecido como "head"; o nível de confirmação _safe_ está um epoch \(ou seja, 32 slots\) atrás do epoch atual; e o nível de confirmação _finalized_ está um epoch atrás do bloco mais recentemente marcado como _safe_.

Os níveis de confirmação do Ethereum são úteis porque oferecem primitivos úteis para desenvolvedores web3 consultarem blocos com baixa probabilidade de [reorg](https://www.alchemy.com/overviews/what-is-a-reorg), viabilizados pelas mudanças do algoritmo Proof-of-Stake do Ethereum.

Como os desenvolvedores têm garantias maiores de que blocos _justified_ e _finalized_ têm baixa probabilidade de sofrer reorg, eles podem incorporar premissas mais fortes em seus smart contracts e aplicações descentralizadas.

## **O que é um block number?**

**O block number é um valor numérico usado para designar a ordem de um bloco adicionado à blockchain.** Por exemplo, se o bloco pendente sendo construído e validado tem block number 100, o bloco mais recentemente validado \(ou seja, o bloco _latest_\) teria block number 99.

## **O que é uma chain re-organization \(re-org\)?**

Uma [**chain re-organization**](https://www.alchemy.com/overviews/what-is-a-reorg) ocorre quando um bloco que foi adicionado à canonical chain (ou seja, a main chain, ou chain mais longa) é removido e substituído por um bloco diferente. Reorgs afetam a finalidade da liquidação (settlement finality), pois blocos adicionados à canonical chain podem ser alterados por meio de um reorg.

Como reorgs podem ocorrer devido a exploits e como resultado de [Maximal Extractable Value \(MEV\)](https://www.alchemy.com/overviews/what-is-mev), confiar que o bloco mais recente está liquidado é uma premissa difícil para os desenvolvedores assumirem.

Com a migração de Proof-of-Work para Proof-of-Stake, a Beacon chain do Ethereum introduziu os níveis de confirmação de bloco _safe_ e _finalized_ para fornecer garantias mais fortes aos desenvolvedores.

## **O que é um epoch?**

**No ambiente pós-merge do Ethereum, a Beacon Chain introduz slots, que são oportunidades para a construção de novos blocos, e epochs, que equivalem a 32 slots.** Como um novo bloco pode ser validado exatamente a cada 12 segundos, um epoch equivale a 6,4 minutos.

Durante cada epoch, a Beacon Chain randomiza um comitê de validadores para atestar a validade dos blocos sendo adicionados à blockchain. Os níveis de confirmação de bloco _safe_ e _finalized_ são determinados com base em epochs.

Embora existam [32 slots em cada epoch](https://ethereum.org/en/developers/docs/data-and-analytics/block-explorers/#consensus-layer-data), em raras ocasiões \(menos de 1%\), um bloco pode não ser validado em algum slot, então alguns epochs podem ter menos de 32 blocos. Um exemplo é quando o validador escolhido aleatoriamente não está online.

## **O que são níveis de confirmação do Ethereum?**

[**Níveis de confirmação do Ethereum**](https://www.alchemy.com/docs/how-to-get-the-latest-block-on-ethereum) são tags usadas para rotular blocos validados como latest, justified ou finalized, o que oferece aos desenvolvedores certas garantias quanto à probabilidade de os blocos serem reorganizados.

### **1. Latest**

O bloco _latest_ é o bloco mais recente a ser construído e validado pelos validadores do Ethereum. O bloco _latest_ deve ser usado com cautela, pois não há garantias de que a Beacon Chain não será reorganizada, e esse bloco se torne um Uncle Block, ou [um bloco que não foi adicionado à canonical chain](https://www.alchemy.com/docs/what-are-uncle-blocks).

### **2. Safe**

O bloco _safe_ é um bloco que recebeu attestations de dois terços do conjunto de validadores do Ethereum. Blocos _safe_ são entendidos como tendo baixa probabilidade de sofrer reorg.

Por exemplo, uma das poucas formas de um bloco _safe_ passar por uma chain reorganization seria um ataque coordenado em larga escala à rede.

### **3. Finalized**

Um bloco finalized é um bloco justified que está 1 epoch atrás do bloco _justified_ mais recente. Blocos _finalized_ têm uma probabilidade extremamente [baixa de serem reorganizados](https://blog.ethereum.org/2021/11/29/how-the-merge-impacts-app-layer), com a única exceção sendo se uma maioria de dois terços dos validadores finalizar uma chain de blocos concorrente.

## Como os níveis de confirmação safe e finalized são determinados?

Os níveis de confirmação safe e finalized são determinados pela conclusão de epochs. Vamos imaginar os três primeiros epochs \(epoch 0, 1 e 2\) após o Merge para visualizar como funcionam os blocos safe e finalized.

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

Vamos supor que o bloco mais recente seja o bloco 96, que marca o início do epoch 3 e o fim do epoch 2.

Como o bloco 96 inclui [attestations](https://www.paradigm.xyz/2021/07/ethereum-reorgs-after-the-merge) \(ou seja, votos de validadores que sinalizam que o [proposed canonical block head](https://www.alchemy.com/overviews/proposer-builder-separation) é verdadeiro\) para o bloco 64, assim que a Beacon Chain recebe attestations de dois terços dos validadores, o bloco 64 é rotulado como _justified \(safe\)_.

Uma vez que o bloco 64 é rotulado como justified e marcado como _safe_, o bloco anteriormente justified é marcado como _finalized_. Como blocos safe e _finalized_ ocorrem no início dos epochs, o bloco 32 \(o primeiro bloco do epoch 1\) é marcado como _finalized_.

Aqui está outra forma de visualizar isso, considerando que o block number atual é 96:

- Bloco 96 \(início do epoch 3\) = _latest_
- Bloco 64 \(início do epoch 2\) = _justified _\(_safe_\)
- Bloco 32 \(início do epoch 1\) = _finalized_
