🐈 Blocos de Schrödinger: o hack de U$40M que poderia ter sido desfeito
Uma lição do Bitcoin sobre a natureza probabilística da verdade.
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.
Capa da Forbes, o CEO da Binance levou a empresa de poucos funcionários ao posto de unicórnio mais "novo" da história, chegando a U$1 bilhão em valor de mercado antes do 1º ano de vida completo.
Na noite da terça-feira fatídica, CZ anunciou, pelo Twitter, 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 série de retiradas praticamente ao mesmo tempo. O prejuízo era multimilionário.
Quando a equipe de segurança da Binance notou, era tarde demais.
Os 7000 BTC — 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 Bitcoin é 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 Bitcoin, é mensurável.
Para que uma transação de bitcoin 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 bitcoin?
Vamos lá: no Bitcoin, 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 bitcoin (o "prêmio" da competição).
A qualquer momento, a cadeia mais longa é a que vale — 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 Binance.
💔 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 tweet lá no começo do texto sugeria era que CZ, CEO da Binance, considerasse a possibilidade de fazer com que mineradores causassem uma re-org, salvando os bitcoin furtados.
CZ jamais conseguiria entrar em contato com todos os mineradores (ou >50%) de Bitcoin 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 Binance 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 replace by fee para sobrepujar a transação do hacker, ainda na mempool.
- 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 bitcoin 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 Litecoin pode ser obtida em 20 confirmações na Ethereum, 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.
📜 Re-orgs que entraram pra história
Re-orgs pequenas ocorrem, mas re-orgs que persistem são raras.
Em moedas alternativas, até se têm um histórico. A EOS é famosa pela "constituição de 21 agentes", capaz para bloquear ou reverter transações específicas. A própria Ethereum já tomou caminho similar, sendo, tecnicamente (há margem para discussão), um fork da Ethereum Classic.
No Bitcoin, uma única re-org persistiu a ponto de dominar uma cadeia alternativa com mais hashrate. Foi em 2013, quando um upgrade no software usado por mineradores levou a divergências com versões passadas, e um downgrade foi orquestrado com o apoio de uma pool que acabou sendo a fiel da balança, à época (a BTC Guild).
Re-orgs já foram sugeridas e debatidas em seguida a hacks passados — como no caso do roubo de 120.000 bitcoin da BitFinex em 2016. Como a discussão no link revela, a teoria dos jogos por trás da situação converge para um cenário em que mineradores levam 100% do valor roubado pelo hacker.
Uma das razões pelas quais o incidente de 2013 jamais se repetiu é o fato de que a hashrate, hoje, é muito mais distribuída que na época; além de uma porção cada vez maior dela ser anônima ou independente de pools.
Outra razão é a força gravitacional do Bitcoin. O feedback loop que reforça os valores primordiais da rede e que, como um buraco negro, engole qualquer oposição a tais valores a passar pela órbita. A ideia da re-org considerada por CZ foi engolida tal qual, como veremos adiante.
🕋💨 Blocos de Schrödinger
O Gato de Schrodinger é um experimento conceitual no qual o filósofo ilustra a natureza probabilística da realidade.
Para encurtar a história, o gato não está nem vivo nem morto, mas sim vivo e morto ao mesmo tempo (ver ao lado).
Diante da possibilidade de que Binance agisse para, de alguma forma, interferir na história do Bitcoin, a comunidade reagiu com agressividade.
O tom dos tweets que inundaram a criptosfera na manhã seguinte ia da incredulidade à ameaça:
O instinto bitcoiner, apegado ao valor da imutabilidade, opõe-se veementemente a qualquer possibilidade de interferência institucional no registro histórico mantido voluntariamente (sem coerção) por uma rede independente de mineradores.
A reação está no DNA de uma comunidade que foi ignorada, zombada, combatida e oprimida desde sua incepção.
Para fins práticos, o que importa é que nada de anormal transcorreu. É importante ressaltar o atributo inimitável de imutabilidade do Bitcoin, e não confundir a cabeça de novos entrantes.
Para fins filosóficos, a mera possibilidade de que uma re-org tivesse acontecido é que importa.
Como em poucas outras ocasiões, CZ tinha a mãos os recursos, a rede, e o tempo para empreitar um feito inédito na história do Bitcoin.
Em uma transmissão ao vivo realizada horas após a descoberta do ataque, o CEO da Binance falou, com todas as palavras, que estava considerando a hipótese, e que um time calculava detalhes da eventual operação. CZ chegou a postar um lista de pessoas com quem se consultou durante o processo!
No fim das contas, curvou-se aos fatos. Eis a última mensagem típica de um CEO de exchange prestes a ser engolido pelo buraco negro do Bitcoin:
Vale a pena ressaltar a prudência dos hackers: as contas infiltradas possuíam milhões em outras criptomoedas, que não bitcoin. O atacante as deixou intactas, e só moveu $BTC.
Sabia que, além da liquidez incomparável, o bitcoin era o único dentre todos a prover a segurança de que, uma vez feita, a transação do furto jamais seria revertida.
No Bitcoin, a diferença entre celebrar ou condenar o sucesso de um hack de quase 200 milhões de reais é mera questão de ponto de vista.
Na próxima vez que checar sua carteira, e "ver" seus bitcoin… lembre-se: ao mesmo tempo, eles podem estar e não estar ali.