Depois de ver as atualizações do Dusk, entrei no explorador on-chain para conferir as confirmações e notei um detalhe fácil de ignorar: aqui no Dusk, “bloco confirmado” não é apenas um simples interruptor, e sim uma escada de estágios que vai subindo em camadas.
A maioria das pessoas entende a finalização como uma decisão de dois caminhos: ou não confirmado, ou confirmado e irreversível. Mas o design do Rolling Finality é totalmente diferente. Para um bloco sair de gerado e ficar realmente bloqueado para sempre, ele passa por quatro etapas: primeiro, accepted (aceito), momento em que ele ainda pode ser substituído por blocos candidatos gerados em iterações anteriores; depois, attested (atestada), em que só pode chegar aqui depois que todas as iterações anteriores fracassarem, e não será mais substituído; em seguida, confirmed (confirmado), em que essa etapa depende de quantidades de blocos futuros para “empilhar”; por fim, final (final), que só acontece se o bloco pai já estiver finalizado — e então o próprio pode se tornar final.
O ponto mais contraintuitivo desse mecanismo é: quantos blocos posteriores são necessários para um bloco evoluir não é um número fixo. Nas regras existe uma variável n, que representa quantas iterações “sem sucesso” ocorreram antes desse bloco. Quanto maior n, mais blocos de confirmação posteriores são necessários, e isso é calculado como 2n. Em outras palavras, quanto mais turbulento é o nascimento de um bloco, mais tempo depois ele precisa para realmente ser travado. Então, mesmo que a carteira mostre “confirmado”, o grau real de travamento pode variar bastante.
O lado positivo de fazer isso é que os nós conseguem avaliar com mais precisão se um bloco “vale a pena confiar”, em vez de tudo ou nada. Mas o custo é bem claro: usuários comuns não conseguem perceber em que nível de confirmação a própria transação está. A carteira só mostra um aviso de “confirmação”, e essas camadas ficam completamente ocultas. Se houver uma bifurcação extrema, será que essa diferença de informação pode ser explorada? Difícil dizer.
Vocês costumam verificar por conta própria em qual nível a transação chegou, ou simplesmente acreditam quando a carteira diz que está confirmado? Comentem na seção de comentários.#dusk $DUSK @Dusk
A maioria das pessoas entende a finalização como uma decisão de dois caminhos: ou não confirmado, ou confirmado e irreversível. Mas o design do Rolling Finality é totalmente diferente. Para um bloco sair de gerado e ficar realmente bloqueado para sempre, ele passa por quatro etapas: primeiro, accepted (aceito), momento em que ele ainda pode ser substituído por blocos candidatos gerados em iterações anteriores; depois, attested (atestada), em que só pode chegar aqui depois que todas as iterações anteriores fracassarem, e não será mais substituído; em seguida, confirmed (confirmado), em que essa etapa depende de quantidades de blocos futuros para “empilhar”; por fim, final (final), que só acontece se o bloco pai já estiver finalizado — e então o próprio pode se tornar final.
O ponto mais contraintuitivo desse mecanismo é: quantos blocos posteriores são necessários para um bloco evoluir não é um número fixo. Nas regras existe uma variável n, que representa quantas iterações “sem sucesso” ocorreram antes desse bloco. Quanto maior n, mais blocos de confirmação posteriores são necessários, e isso é calculado como 2n. Em outras palavras, quanto mais turbulento é o nascimento de um bloco, mais tempo depois ele precisa para realmente ser travado. Então, mesmo que a carteira mostre “confirmado”, o grau real de travamento pode variar bastante.
O lado positivo de fazer isso é que os nós conseguem avaliar com mais precisão se um bloco “vale a pena confiar”, em vez de tudo ou nada. Mas o custo é bem claro: usuários comuns não conseguem perceber em que nível de confirmação a própria transação está. A carteira só mostra um aviso de “confirmação”, e essas camadas ficam completamente ocultas. Se houver uma bifurcação extrema, será que essa diferença de informação pode ser explorada? Difícil dizer.
Vocês costumam verificar por conta própria em qual nível a transação chegou, ou simplesmente acreditam quando a carteira diz que está confirmado? Comentem na seção de comentários.#dusk $DUSK @Dusk