Recentemente, as coisas da Harmony foram bem chocantes. Os atacantes usaram a repetição (replay) para atravessar recibos entre shards e, do nada, cunharam tokens ONE com uma participação acima de 20%. Enquanto a equipe do projeto congelava os fundos, também se preparava para reverter toda a cadeia para um bloco anterior ao ataque. Na comunidade, a briga virou um verdadeiro pandemônio: deve ou não deve mudar? Eu fiquei encarando as duas palavras “reverter” por bastante tempo.
Isso toca num problema que muita gente entende errado: a “finalidade” de uma cadeia é um selo carimbado de uma vez só em um instante, ou algo que vai crescendo aos poucos?
Na seção 3.8 do whitepaper @Dusk , eles chamam isso de “finalidade probabilística/rolante” (rolling finality). Ela divide o estado de cada bloco em quatro níveis: accepted (aceito), attested (atestados), confirmed (confirmados) e final (final). Esses quatro níveis são progressivos — depois que um bloco é aceito, ele não fica imediatamente “cravado”; conforme novos blocos vão sendo empilhados depois dele, a certeza vai ficando cada vez mais espessa.
As regras são bem intuitivas: a cada bloco adicional “atestando” depois, o bloco anterior fica mais estável em um grau; só quando todos os seus ancestrais abaixo dele se tornarem final é que ele mesmo passa a ser final. Em outras palavras, a certeza não é algo “só dele”; ela é herdada do que vem abaixo.
O que dá peso a esses atestados é o que os validadores/stakers travam como garantia: $DUSK . Votar errado ou ajudar a fabricar falsificações será punido com confisco, então por trás de cada nível de “confirmação” existe dinheiro de verdade sustentando tudo.
Aqui existe um paradoxo escondido: eu o chamo de “certeza emprestada”. Mesmo que um bloco já tenha sido marcado como final, se um ancestral for revertido (derrubado), ele também cai junto. Isso é exatamente o mesmo princípio da reversão na Harmony — se o livro-razão pode ou não ser alterado nunca é uma questão binária (“pode ou não pode”); é uma questão gradiente: quanto custa fazê-lo. A técnica consegue classificar a certeza, mas decidir se deve reverter — no fim — é uma decisão humana. DYOR, não acredite só em mim por essa frase. #dusk
Isso toca num problema que muita gente entende errado: a “finalidade” de uma cadeia é um selo carimbado de uma vez só em um instante, ou algo que vai crescendo aos poucos?
Na seção 3.8 do whitepaper @Dusk , eles chamam isso de “finalidade probabilística/rolante” (rolling finality). Ela divide o estado de cada bloco em quatro níveis: accepted (aceito), attested (atestados), confirmed (confirmados) e final (final). Esses quatro níveis são progressivos — depois que um bloco é aceito, ele não fica imediatamente “cravado”; conforme novos blocos vão sendo empilhados depois dele, a certeza vai ficando cada vez mais espessa.
As regras são bem intuitivas: a cada bloco adicional “atestando” depois, o bloco anterior fica mais estável em um grau; só quando todos os seus ancestrais abaixo dele se tornarem final é que ele mesmo passa a ser final. Em outras palavras, a certeza não é algo “só dele”; ela é herdada do que vem abaixo.
O que dá peso a esses atestados é o que os validadores/stakers travam como garantia: $DUSK . Votar errado ou ajudar a fabricar falsificações será punido com confisco, então por trás de cada nível de “confirmação” existe dinheiro de verdade sustentando tudo.
Aqui existe um paradoxo escondido: eu o chamo de “certeza emprestada”. Mesmo que um bloco já tenha sido marcado como final, se um ancestral for revertido (derrubado), ele também cai junto. Isso é exatamente o mesmo princípio da reversão na Harmony — se o livro-razão pode ou não ser alterado nunca é uma questão binária (“pode ou não pode”); é uma questão gradiente: quanto custa fazê-lo. A técnica consegue classificar a certeza, mas decidir se deve reverter — no fim — é uma decisão humana. DYOR, não acredite só em mim por essa frase. #dusk


