Eu continuei voltando a uma distinção na seção de consenso do Dusk: uma iteração que não produziu o bloco sobre o qual você está construindo não é necessariamente uma iteração que falhou.
Isso soa pedante até você ler como as atestações e o fallback interagem.
Na Succinct Attestation do Dusk, votos de validação e de ratificação podem produzir uma atestação de sucesso para um quórum Válido, ou uma atestação de falha para Inválido, NoCandidate ou NoQuorum. Mas existe um terceiro estado: desconhecido, em que o quórum necessário não foi observado.
A minha primeira leitura tratou “desconhecido” como basicamente morto. A rodada seguiu em frente, outra iteração produziu um bloco.
O Dusk não.
Se um bloco é produzido na iteração I > 0, o protocolo olha para trás. Se cada iteração anterior tiver uma atestação de falha, o bloco é marcado como atestado. Esses caminhos anteriores não podem mais tarde reivindicar consenso.
Se nem uma única iteração anterior tiver essa prova de falha, o bloco é apenas aceito.
Essa diferença faz mais trabalho do que os rótulos sugerem.
As regras de fallback do Dusk permitem que um bloco de uma iteração mais alta seja substituído se um bloco de iteração mais baixa também chegar a consenso. O whitepaper observa que mensagens atrasadas ou perdidas podem produzir esse tipo de fork. Assim, uma iteração anterior que apenas ficou em silêncio ainda está sem resolução.
A finalização incremental transforma essa incerteza em tempo de espera. No Dusk, deixe n ser o número de iterações anteriores não atestadas. Um bloco aceito precisa de 2×n sucessores consecutivos atestados ou confirmados antes de se tornar confirmado. Ele só se torna final quando estiver confirmado e seu pai também estiver final.
Então o Dusk não está apenas contando blocos aqui. Ele está efetivamente contando um histórico ainda não resolvido.
Isso tornou a atestação de falha mais interessante para mim. No Dusk, ela faz mais do que dizer “essa tentativa falhou”. Ela fecha um ramo de ambiguidade. Se essa prova estiver ausente, parte do passado permanece aberta, e os blocos posteriores precisam acumular evidências suficientes antes que o Dusk trate a cadeia como liquidada.
@Dusk #dusk $DUSK $TMX $TAC
Isso soa pedante até você ler como as atestações e o fallback interagem.
Na Succinct Attestation do Dusk, votos de validação e de ratificação podem produzir uma atestação de sucesso para um quórum Válido, ou uma atestação de falha para Inválido, NoCandidate ou NoQuorum. Mas existe um terceiro estado: desconhecido, em que o quórum necessário não foi observado.
A minha primeira leitura tratou “desconhecido” como basicamente morto. A rodada seguiu em frente, outra iteração produziu um bloco.
O Dusk não.
Se um bloco é produzido na iteração I > 0, o protocolo olha para trás. Se cada iteração anterior tiver uma atestação de falha, o bloco é marcado como atestado. Esses caminhos anteriores não podem mais tarde reivindicar consenso.
Se nem uma única iteração anterior tiver essa prova de falha, o bloco é apenas aceito.
Essa diferença faz mais trabalho do que os rótulos sugerem.
As regras de fallback do Dusk permitem que um bloco de uma iteração mais alta seja substituído se um bloco de iteração mais baixa também chegar a consenso. O whitepaper observa que mensagens atrasadas ou perdidas podem produzir esse tipo de fork. Assim, uma iteração anterior que apenas ficou em silêncio ainda está sem resolução.
A finalização incremental transforma essa incerteza em tempo de espera. No Dusk, deixe n ser o número de iterações anteriores não atestadas. Um bloco aceito precisa de 2×n sucessores consecutivos atestados ou confirmados antes de se tornar confirmado. Ele só se torna final quando estiver confirmado e seu pai também estiver final.
Então o Dusk não está apenas contando blocos aqui. Ele está efetivamente contando um histórico ainda não resolvido.
Isso tornou a atestação de falha mais interessante para mim. No Dusk, ela faz mais do que dizer “essa tentativa falhou”. Ela fecha um ramo de ambiguidade. Se essa prova estiver ausente, parte do passado permanece aberta, e os blocos posteriores precisam acumular evidências suficientes antes que o Dusk trate a cadeia como liquidada.
@Dusk #dusk $DUSK $TMX $TAC

