Cada rodada de consenso deve adicionar um novo bloco, mas o white paper diz que esta rodada não é concluída de uma vez; ela é dividida em várias iterações, e cada iteração é dividida em três etapas. A seção 3.2 do white paper chama essas três etapas de Proposal, Validation e Ratification。

Primeira etapa, Proposal. O algoritmo DS seleciona aleatoriamente um provisioner como gerador de blocos, responsável por gerar blocos candidatos e transmiti-los para toda a rede. Se um bloco candidato não for gerado ou recebido dentro do tempo limite especificado, esta etapa retorna NIL e segue diretamente para a próxima etapa — mas, com as mãos vazias, sem blocos candidatos, o que é votado depois? A resposta é não votar em vazio; em vez disso, vota-se em NoCandidate, que significa "nenhum bloco candidato pode ser verificado".$DUSK

Segunda etapa, Validation. O algoritmo DS seleciona aleatoriamente um conjunto de comitês de votação para validar o bloco candidato da etapa anterior. Se o bloco candidato for válido, vota-se Valid; se for inválido, vota-se Invalid; se não houver bloco candidato, vota-se em NoCandidate. O comitê de votação precisa de uma maioria absoluta de 2/3 para atingir um quorum. Se o quorum não for alcançado antes do tempo limite, retorna-se NoQuorum. A saída desta etapa é um ValidationResult, que inclui o tipo de voto que alcançou o quorum e a assinatura agregada de todos os votantes.@Dusk

Terceira etapa, Ratification. Seleciona-se então um novo conjunto de comitês de votação para confirmar o resultado do Validation. Se a etapa anterior alcançar um quorum de Valid, eles confirmam esse resultado; se a etapa anterior for NoQuorum ou falhar, eles votam em NoQuorum. Esta etapa garante que o resultado da validação não seja decidido apenas por uma minoria, mas reconhecido por um número maior de provisioners.

Se a Ratification retornar Success, o bloco candidato é aceito oficialmente como o novo bloco, e a rodada termina. Se retornar Fail ou unknown, entra-se na próxima iteração, selecionando novamente o gerador de blocos e votando novamente. O white paper diz que o número máximo de iterações é determinado por um parâmetro global, e a configuração atual é 50. Se 16 iterações consecutivas falharem, o protocolo entra em modo de emergência (ângulo 10)。

A lógica central do desenho em três etapas é o equilíbrio e controle mútuo — o gerador de blocos só pode gerar blocos candidatos, não pode votar; o comitê de validação só pode validar, não pode confirmar; e o comitê de confirmação só pode confirmar o resultado da validação, não pode revalidar. Nenhum papel, sozinho, pode decidir o destino de um bloco.#dusk