Changpeng “CZ” Zhao não teve um 7 de maio tranquilo. O nome soa estranho ao afegão médio, mas já é notável nos círculos empreendedores.
Na noite da terça-feira fatídica, CZ , a descoberta de um hack na maior bolsa de criptomoedas do planeta. Uma operação meticulosa invadiu contas de usuários, roubou credenciais, e executou uma . O prejuízo era multimilionário.
Quando a equipe de segurança da notou, era tarde demais.
Os 7000 — U$40 milhões — já haviam sido movidos para endereços controlados pelos ladrões, fora da exchange.
Mas… era tarde demais mesmo?
🗿 A Imutabilidade do bitcoin
O é imutável: uma vez feita, uma transação jamais pode ser revertida. Quem esquece uma chave privada, perde permanentemente o acesso aos fundos que ela controla — não há ninguém que se possa “ligar para reclamar”.
A concepção acima é correta, mas não absoluta. O atributo da imutabilidade não é binário. Essa propriedade tem um custo, e esse custo cresce ao longo de uma escala, com o passar do tempo.
Esse custo, no , é mensurável.
Para que uma transação de seja considerada matematicamente finalizada (finalizada <> “imutável”), é preciso que o custo de se revertê-la seja maior que o valor “capturável” por alguém capaz de revertê-la.
Uma transação só deve ser considerada finalizada quando a soma das recompensas por bloco emitidas entre o bloco no qual ela foi inserida e o bloco atual ultrapassar o valor da transação.
Pera aí: então quer dizer que dá pra “reverter” transações de ?
Vamos lá: no , mineradores competem para “estender” um registro coletivo, acrescentando blocos de transações a uma cadeia. Eles gastam energia fazendo isso porque o minerador que consegue encontrar o próximo bloco antes do resto recebe uma recompensa em (o “prêmio” da competição).
A qualquer momento, — mas isso não quer dizer que ela não se bifurque, frature e desdobre em múltiplas versões da história.
Qualquer minerador capaz de produzir blocos pode incluir o que quiser neles. Se for capaz de manter uma cadeia com mais poder computacional do que a cadeia da qual bifurcou, pode construir a própria versão da história, e, inclusive, ignorar certas transações acontecidas após a sua bifurcação. Isso poderia ter sido posto em prática com a transação que hackeou a .
💔 O que são re-orgs?
Esse fenômeno tem um termo próprio no cripto-jargão: re-org, ou re-organização. A cadeia se “re-organiza” numa nova série de blocos, que passa a ser a mais longa.
Manter uma re-org propositadamente tem um custo recorrente equivalente ao que recebem os mineradores da cadeira original, a cada bloco.
O que o lá no começo do texto sugeria era que CZ, CEO da , considerasse a possibilidade de fazer com que mineradores causassem uma re-org, salvando os furtados.
CZ jamais conseguiria entrar em contato com todos os mineradores (ou >50%) de em tempo hábil — ou seja, antes que as recompensas recebidas por eles desde o hack excedessem o valor que CZ estivesse disposto a pagar para recuperar o que perdeu.
Mas o que aconteceria se ele conseguisse, de alguma forma, endereçar uma oferta dessas a eles?
🏃 O que a Binance poderia ter feito
As opções de curso de ação para a foram se estreitando com o tique-taque do relógio.
Durante a escrita deste texto, muitas centenas de blocos já haviam se passado desde o hack, e, na prática, é impossível que qualquer “contra ataque on-chain” seja empreitado.
No entanto, dependendo do quão cedo a infiltração tivesse sido descoberta, CZ poderia:
- ~Segundos após o hack: caso detectadas anomalias nos padrões de transações internas, contas envolvidas poderiam ter atividade congelada.
- Até ~minutos após o hack: poderia-se ter bloqueado todas retiradas (e depósitos) nas carteiras da bolsa para fechar o cerco ao adversário.
- Até ~10 minutos após o hack: poderia-se ter executado um para sobrepujar a transação do hacker, ainda na .
- Até ~1 dia depois do hack: poderia-se ter incentivado mineradores a causarem uma reorg.
Mas como assim, causar uma re-org? — a maioria das pessoas se pergunta. Pois há uma infinidade de maneiras, desde as que envolvem coordenação mais complexa e suborno a mineradores, até a mais direta de todas.
Num cenário extremo, com nada a perder, bastava CZ revelar ao mundo (postar no twitter?) a chave privada dos roubados, e aguardar que mineradores competissem para estender a cadeia a partir do momento antes do hack, de modo a tomar controle dos fundos que viriam a ser roubados.
🛡 Quantas Confirmações o Sr. Deseja?
Na prática, re-orgs pequenas, de um ou poucos blocos, são comuns. Pense nelas como leves acidentes de trânsito, ou chutes para fora do gol.
Mineradores “erram” o tempo todo… e voltam para a cadeia mais longa.
É por isso que exchanges exigem certo tempo antes de dar o OK para que você movimente criptomoedas recém-depositadas.
A quantidade de confirmações (leia-se: blocos) exigida varia de rede para rede, porque a finalidade em cada uma funciona de modo diferente. A mesma garantia de segurança atingida em 6 confirmações no pode ser obtida em 20 confirmações na , por exemplo.
A finalidade (“imutabilidade”) de uma transação tende a 100% quanto maior o número de confirmações, mas, após certo tempo, o ganho de confiança passa a ser marginal. É aí que as exchanges determinam a linha de seus prazos — sendo, no fundo, uma decisão de cada uma.
Published at Fri, 17 May 2019 19:10:06 +0000