🐈 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.

Felipe
8 min readMay 17, 2019

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?

Tweet de um contribuidor do Bitcoin que incendiou discussões sobre cursos de ação possíveis para a Binance.

🗿 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.

CZ considerando prós e contras de se tentar interferir na história do Bitcoin.

💔 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.

Confirmações exigidas para depósitos no Mercado Bitcoin.

É 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).

Trecho de conversa em que operador da BTC Guild percebe que sua hashrate é suficiente para mudar o destino do Bitcoin.

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.

Fonte: Blockchain.Info

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.

O feedback loop que reforça os valores essenciais do Bitcoin. Fonte: Bitcoin's Gravity.

🕋💨 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.

A gravidade do Bitcoin engolindo tudo ao redor.

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.

--

--

Felipe
Felipe

Responses (2)