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
| Momento | O que é |
|---|---|
| Pré-confirmação | minibloco assinadometa de agendamento de 10 ms. O sequenciador se comprometeu com esta ordem e este resultado |
| Confirmação | bloco EVMmeta de agendamento de 250 ms. O que carteiras e exploradores veem |
| Finalidade | liquidaçã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.
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.