Para todos / Pickle em termos simples

Quando está confirmado

Na maior parte do tempo uma carteira diz pendente e depois diz concluído. Aqui há três momentos distintos entre essas duas palavras, e eles garantem coisas diferentes.

Três momentos

MomentoO que é
Pré-confirmaçãominibloco assinadometa de agendamento de 10 ms. O sequenciador se comprometeu com esta ordem e este resultado
Confirmaçãobloco EVMmeta de agendamento de 250 ms. O que carteiras e exploradores veem
Finalidadeliquidação na Ethereumos dados necessários para rederivar o bloco estão comprometidos na Ethereum, e esse compromisso é ele mesmo final

Pense em entregar uma carta num balcão com um atendente muito rápido. Primeiro, o atendente lê a carta, calcula a resposta e lhe dá um recibo assinado: essa é a pré-confirmação, e ela acontece quase no instante em que você entrega a carta. Um pouco depois o atendente arquiva a carta no livro do dia, que é o que todo mundo pode consultar: essa é a confirmação. Por fim, uma cópia do livro é enviada a um cofre fora da loja que ninguém na loja pode editar: essa é a finalidade. Cada passo é mais lento que o anterior e cada um é mais difícil de desfazer.

Sua transação executa no instante em que chega ao sequenciador, então o resultado existe antes de qualquer bloco. A uma meta de agendamento de 10 milissegundos o sequenciador sela um minibloco contendo tudo o que foi executado nesse intervalo e o assina. Essa assinatura é a pré-confirmação: o sequenciador se comprometeu com aquela ordem e aquele resultado, e o cabeçalho assinado é prova contra ele se um bloco posterior o contradisser.

A uma meta de agendamento de 250 milissegundos o sequenciador sela um bloco EVM padrão, no formato da Ethereum, que envolve os miniblocos desse intervalo. Essa é a confirmação: o bloco que uma carteira ou um explorador lhe mostra, com um número de bloco e um hash.

A finalidade é a liquidação na Ethereum. Um bloco é final quando os dados necessários para rederivá-lo foram comprometidos na Ethereum e esse compromisso é ele mesmo final. Só nesse ponto o registro deixa de depender do sequenciador.

A execução é síncrona com a admissão, então um recibo existe antes de o bloco que o contém ser selado. Um minibloco à meta de agendamento de 10 ms transporta as transações, recibos e logs do intervalo, um hash de diferença de estado, um timestamp em microssegundos e uma assinatura da chave do sequenciador sobre o cabeçalho; ele é exposto por métodos RPC próprios e por uma assinatura WebSocket, para que uma aplicação sensível à latência possa agir sobre ele. Um bloco EVM à meta de agendamento de 250 ms envolve os miniblocos do intervalo com o timestamp do bloco seguinte fixado no selo anterior, que é o que permite à reexecução independente reproduzir o hash do bloco. A finalidade é o compromisso na caixa de entrada da L1 que nomeia a carga de derivação do bloco, ele mesmo final na Ethereum. O intervalo do minibloco é um parâmetro de consenso, não um ajuste do operador, porque uma réplica precisa concordar sobre como o fluxo é cortado.

Uma meta de agendamento não é uma promessa

Os dois intervalos são metas de agendamento e não garantias de latência, e nenhum deles é uma afirmação de vazão. Eles descrevem o ritmo que o sequenciador procura manter, não um prazo que ele cumpre a cada tique.

O que cada um garante

  • Uma pré-confirmação prova que o sequenciador disse que isto aconteceu, nesta ordem, com este resultado. Ela se apoia na honestidade do sequenciador, e é prova: um cabeçalho assinado que um bloco posterior contradissesse mostraria que o sequenciador quebrou a palavra.
  • Uma confirmação coloca a transação na sequência canônica de blocos que toda ferramenta entende. Ela ainda se apoia no sequenciador, que é a única parte a selar blocos.
  • A finalidade significa que o conteúdo do bloco está comprometido a partir da Ethereum. A partir desse ponto, qualquer pessoa pode rederivar o bloco a partir de dados públicos, e o sequenciador não pode reescrevê-lo sem que a divergência seja detectável por toda réplica.

Quando a diferença importa

Para a maior parte do que uma pessoa faz, a pré-confirmação é o momento que importa: uma aplicação pode mostrar o resultado, e o resultado não vai mudar a menos que o sequenciador contradiga a própria assinatura. Um jogo, uma interface de negociação ou um pagamento num balcão podem agir sobre ela.

A confirmação é o que as ferramentas comuns reportam, então é o momento que uma carteira mostra como concluído. A finalidade é o momento para tudo que não deve depender do sequenciador de forma alguma: um saque para a Ethereum pela bridge é revalidado contra um recibo canônico finalizado antes de os fundos serem liberados, exatamente por essa razão.

As palavras que você vai ver

  • Pendente: a carteira enviou e ainda não viu um bloco. Na Pickle isso costuma ser mais curto que a própria atualização da carteira.
  • Pré-confirmado: uma aplicação que lê miniblocos diz que o sequenciador assinou por ela.
  • Confirmado: está num bloco EVM com um número.
  • Final: os dados do seu bloco estão comprometidos a partir da Ethereum. Este site não usa a palavra para nada mais.