Confirmações e reorganizações: quão definitivo é o definitivo?

·7 min de leitura·Por SSP Editorial Team
Capa da SSP Academy: confirmações, reorganizações e finalidade na blockchain

Confirmações e reorganizações: quão definitivo é o definitivo?

Sua transação confirmou. Você viu o sinal de visto. O dinheiro está liquidado — só que «liquidado» acaba sendo um espectro, não um estado, e onde você se situa nesse espectro depende da cadeia, do valor e de quanto custaria a alguém desfazer aquilo.

Este é um dos poucos cantos da mecânica das cadeias de blocos em que os detalhes mudam o que você de fato deveria fazer, então vale vinte minutos da sua atenção.

O que uma confirmação realmente conta

Uma confirmação não é o carimbo de aprovação de ninguém. É uma medida de profundidade.

Quando sua transação é incluída num bloco, esse bloco fica em certa altura da cadeia. Cada bloco minerado por cima o enterra mais uma camada. O número de confirmações é simplesmente quantos blocos estão empilhados sobre o seu, incluindo o dele próprio.

A SSP calcula isso do jeito padrão: tipHeight - blockheight + 1. Esse +1 não é um erro de contagem — uma transação que está no bloco mais recente tem uma confirmação, não zero. Zero confirmações significa que ela ainda está na mempool: propagada, mas ainda não incluída em lugar nenhum.

A razão de a profundidade significar algo é que reverter sua transação exige substituir o bloco que a contém, mais todos os blocos construídos por cima. Cada bloco adicional torna esse trabalho mais difícil. Nada é jamais impossível de reverter numa cadeia de prova de trabalho; apenas fica cada vez mais caro, e a certa profundidade o custo supera o que qualquer um poderia ganhar.

Reorganizações são normais, não um ataque

Aqui está a parte que alarma as pessoas sem necessidade: reorganizações curtas da cadeia acontecem rotineiramente, e quase nenhuma é maliciosa.

Dois mineradores em lados opostos do mundo podem resolver um bloco com segundos de diferença. Por um instante a rede genuinamente discorda sobre qual bloco é o topo. Então o bloco seguinte pousa sobre um deles, aquele ramo fica mais longo, e o outro bloco vira órfão. Qualquer transação que estivesse só no bloco órfão volta para a mempool e é minerada de novo logo em seguida.

Isso é o protocolo funcionando exatamente como projetado. E é também exatamente por isso que uma confirmação é mais fraca do que parece — uma transação com profundidade um vive num bloco que ainda pode perder um cara ou coroa.

Reorganizações profundas são outro animal. Exigem ou uma quantidade enorme de poder computacional ou, ocasionalmente, algo mais estranho: a falha de consenso do Ravencoin forçou uma reescrita muito mais profunda que qualquer reorganização comum, não porque alguém a tenha atacado, mas porque os nós discordavam sobre quais eram as regras. Isso é raro. E também lembra que «a cadeia não pode mudar» é uma abreviação, não física.

De onde vieram as seis confirmações

A convenção das seis confirmações não é um número mágico e nunca foi pensada como lei universal.

Ela vem do próprio cálculo de probabilidade do documento fundador do Bitcoin: dado um atacante controlando certa fração do poder computacional, qual a chance de ele alcançar a cadeia por trás depois de determinado número de blocos? A resposta cai exponencialmente com a profundidade. Seis blocos colocam a probabilidade de sucesso em território desprezível para um atacante com uma minoria modesta do poder numa cadeia tão grande quanto o Bitcoin.

Cada parte dessa oração em itálico importa, e é aqui que as pessoas erram. Seis confirmações no Bitcoin representam cerca de uma hora da computação mais cara do planeta. Seis confirmações numa cadeia de prova de trabalho pequena podem representar uma quantidade de poder que alguém simplesmente aluga por uma tarde.

Isso não é hipotético. Cadeias de prova de trabalho menores — Ethereum Classic e Bitcoin Gold entre elas — sofreram ataques de 51% reais, com gastos duplos genuínos contra corretoras. A resposta do setor não foi abandonar essas cadeias, mas elevar drasticamente a exigência de confirmações, às vezes para os milhares. Essa assimetria é a lição inteira: profundidade de confirmação só é significativa em relação a quanta segurança a cadeia de fato compra por bloco.

A prova de participação muda a pergunta

Numa cadeia com finalidade explícita, o modelo é diferente em espécie, não apenas em grau.

Os validadores do Ethereum votam periodicamente para finalizar pontos de verificação. Uma vez finalizado um ponto de verificação — o que leva cerca de duas épocas, na ordem de treze minutos —, revertê-lo não é questão de superar alguém em computação. Exige que uma fração muito grande de todo o éter em garantia tenha votado em pontos de verificação conflitantes, o que é detectável e faz com que essa garantia seja destruída. A garantia não é «isso seria caro de desfazer», e sim «quem desfizer isso comprovadamente perde uma quantia enorme».

Essa é uma afirmação genuinamente mais forte do que profundidade probabilística, e é por isso que esperar pela finalidade no Ethereum é um tipo de espera diferente de contar blocos no Bitcoin. A Solana traça uma distinção parecida entre uma transação confirmada de modo otimista e uma plenamente enraizada.

Na prática: em cadeias de prova de trabalho você conta profundidade. Em cadeias de prova de participação você quer saber se o bloco que contém sua transação foi finalizado — uma pergunta de sim ou não, não um total corrente.

A assimetria que ninguém menciona

Confirmações importam quando você está recebendo. Mal importam quando você está enviando.

Se você pagou alguém, sua transação ser revertida por uma reorganização é um incômodo leve — ela volta para a mempool e confirma de novo, e quem recebe apenas espera um pouco mais. Você não perdeu nada.

Se alguém pagou você, e você entrega mercadoria, libera fundos ou despacha um produto com base numa confirmação rasa, uma reorganização significa que você deu algo em troca de um pagamento que não existe mais. Todos os ataques de gasto duplo que já importaram funcionaram assim: miraram partes que agiram cedo demais sobre dinheiro entrante.

Então a regra honesta é simples. Quando você gasta, uma confirmação lhe diz que a transação é real e você pode parar de se preocupar. Quando você aceita valor de um desconhecido, a profundidade que exige deve escalar com o valor em jogo e encolher sua confiança justamente nas cadeias em que blocos são baratos de produzir.

O que a SSP mostra, e o que não mostra

A lista de atividade da SSP lhe dá um selo binário: confirmada ou não confirmada. Isso é deliberado, porque para a esmagadora maioria do uso cotidiano o binário é a resposta inteira. Expandir a linha de uma transação dá a contagem de confirmações ao vivo e a altura do bloco, calculadas contra o topo atual da cadeia.

Agora a limitação honesta: nada na SSP condiciona coisa alguma à profundidade de confirmação. A carteira não vai avisar que três confirmações são poucas para o valor que você acabou de receber, e não tem nenhuma noção de «suficiente» — ela reporta o número e deixa o juízo com você. Nenhuma carteira pode realmente fazer diferente, porque «suficiente» depende do que você vai fazer com o dinheiro, e isso a carteira não tem como saber. Mas significa que a interpretação é tarefa sua, e que um visto verde não é a mesma afirmação que «irreversível».

Vale lembrar também que a contagem de confirmações que você está lendo vem do nó com que sua carteira conversa. Durante exatamente o tipo de incidente em que profundidade mais importa — uma bifurcação contestada, uma falha de consenso, uma divisão de cadeia — é precisamente quando uma fonte única é menos confiável.

Regras práticas que vale guardar

Zero confirmações não é pagamento. É o anúncio de uma intenção de pagar. Para valores pequenos, de baixo risco e presenciais, pode servir. Para qualquer outra coisa, não é uma transação liquidada.

Uma confirmação é real, mas rasa. Ótima para gastar. Pouca para aceitar algo relevante de alguém em quem você não confia.

Seis é uma convenção em escala Bitcoin, não uma constante universal. Numa cadeia em que poder computacional é barato de alugar, seis confirmações podem valer pouquíssimo, e o número certo poderia ser ordens de grandeza maior.

Em cadeias de prova de participação, pergunte sobre finalidade em vez de contar. Finalizado significa algo categoricamente mais forte do que profundo.

Escale a profundidade ao valor. Trinta segundos de paciência são baratos. Um erro irreversível não é.

A ideia de fundo é discretamente tranquilizadora depois que assenta. Nada em cripto é definitivo do jeito que uma demonstração matemática é definitiva. O que você ganha em troca é um custo de reversão que sobe íngreme com o tempo, e a capacidade de decidir por si mesmo quão alto esse custo precisa estar antes de você agir. É uma garantia mais fraca do que a maioria supõe ter — e muito mais honesta do que qualquer coisa que um banco lhe dirá sobre um pagamento que ainda pode ser estornado meses depois.

Compartilhar este artigo

Artigos relacionados