Pular para o conteúdo
0%

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

Alchemy team headshot

Escrito por Alchemy

Publicado em 13 de setembro de 20224 min de leitura

A 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, 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 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), 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, 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 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.

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, 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 (ou seja, votos de validadores que sinalizam que o proposed canonical block head é 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
Background gradient

Construa magia blockchain

A Alchemy combina os produtos e ferramentas de desenvolvimento Web3 mais poderosos com recursos, comunidade e suporte lendário.