Episódio envolvendo a carteira Coldcard reforça que, no universo das criptomoedas, segurança não depende apenas da tecnologia, mas também de escolhas, procedimentos e atenção aos riscos

Crédito: Magnific

Por Marco Carnut, curador do Comitê de IA do NERD

Um monte de gente veio me perguntar um monte de coisa sobre o recente incidente da Coldcard – desde um mero relato (“o que foi aquilo?”) até minhas opiniões sobre várias posições extremadas (“a autocustódia já era!”), então resolvi escrever esse texto pra explicar tudo e não ter de me repetir tanto.

Mas, antes de mais nada, gostaria de oferecer minha solidariedade às vítimas. Tem gente que perdeu as economias de uma vida toda. Não tenho, nem jamais tive, nada a ver com o produto nem com o time que o desenvolveu; portanto, empatia, apoio emocional, explicações técnicas, reflexões e sugestões para o futuro são tudo que posso oferecer. Aliás, pensando bem, posso oferecer até mais: um caminho para a solução, e vou mostrar isso mais adiante no texto.

Preparando o Terreno

A maneira mais didática que consegui imaginar para explicar o que aconteceu é comparar com o sorteio da Mega-Sena. Torna a história um pouco mais longa do que o estritamente necessário, mas nos permite um entendimento bem mais certeiro, abrangente e profundo do que tenho visto por aí.

Na Mega-Sena, toda semana seis números de 01 a 60 são sorteados a partir de um globo giratório. Isso dá um total de 50.063.860 combinações de possíveis bilhetes (pergunte ao ChatGPT e ele te explica como fazer essa conta caso não lembre das aulas de Análise Combinatória no ginásio). Ganhar na Mega-Sena significa ter a sorte de acertar uma delas.

Imagine agora que você descobriu um defeito de fabricação nas bolinhas do globo: cinquenta delas são ligeiramente maiores que o buraco de saída e jamais conseguem passar por ele; apenas dez são pequenas o suficiente para escapar. Quase imperceptível, ninguém mais percebeu além de você — nem a comissão de fiscalização, nem o notário, nem os milhões de apostadores que compraram bilhetes acreditando estar diante de um sorteio limpo.

Você sabe, então, que apenas dez números podem sair e quais são esses números. Ao fazer a conta da quantidade de combinações de 6 números sorteados dentre um conjunto de 10, vê que são apenas 210 combinações – muitíssimo menos que cinquenta milhões e totalmente ao seu alcance. Você compra os 210 bilhetes e, para seu êxtase, no próximo sorteio um deles é premiado.

Melhor ainda, se eles usarem as mesmas bolinhas no próximo sorteio (e você não der bandeira e se mantiver discreto), poderá ganhar também o próximo sorteio. E o seguinte, e o depois desse… enquanto ninguém descobrir o defeito e se mantiver discreto, você segue ganhando.

O que é a Coldcard?

A Coldcard é uma família de produtos de uma empresa chamada Coinkite. Os modelos mais recentes têm telas maiores e teclados alfanuméricos, lembrando um pouco o antigo Blackberry; as primeiras versões tinham telinhas menores e um teclado numérico, tornando-as parecidas com uma calculadora de mão. Aliás, calculadora é uma excelente descrição do que de fato elas são: elas calculam transações e endereços de depósito de Bitcoin a partir das chaves privadas.

Elas fazem parte de uma tradição da indústria de procurar puxar as operações mais cruciais com as criptomoedas em computadores (“hardware”) exclusivamente para essa finalidade, para evitar as incontáveis vulnerabilidades que os computadores Windows, Mac, Android e outros costumam ter. Por isso elas são chamadas de “hardware wallets”.

Marco Carnut é Curador do Comitê de IA do NERD e Crypto & Blockchain Researcher/Evangelist do Zro Bank (Crédito: Reprodução)

São também chamadas (ao meu ver, meio erroneamente) de “cold wallets” – “cold” (“frias”, em inglês) aqui significa que elas passam a maior parte do tempo desligadas, offline, interagindo com a rede Bitcoin apenas de formas indiretas (por exemplo, copiando transações para cartões MicroSD ou pendrives), para evitar se expor às zilhões de oportunidades de ataque que a internet oferece. Daí o termo “cold” no nome do produto.

A primeira e mais básica função para se “usar Bitcoin” é “criar uma nova carteira”. Esse é outro caso de um termo conceitualmente ruim que zoa com a cabeça das pessoas: as carteiras não são realmente “criadas” – todas as “carteiras” possíveis já existem a priori, definidas pela própria estrutura matemática do sistema.

O que realmente se faz é escolher uma a esmo dentro de um universo gigante de possibilidades e se “apossar” dela. Se a escolha for realmente aleatória e o universo de possibilidades for realmente gigante, há um lindo teorema da matemática chamado Paradoxo do Aniversário que garante que é praticamente impossível duas pessoas acabarem com uma mesma carteira acessando os mesmos bitcoins.

O que aconteceu?

A julgar pela introdução sobre a Mega-Sena, o leitor astuto já deve estar imaginando o que houve: algum defeito fez com que o universo de possibilidades deixasse de ser tão gigante assim. A grosso modo, foi exatamente o que aconteceu! Pra evitar matemática de números gigantes, digamos apenas que foi uma redução tão grande que saiu de “totalmente impossível” para “ao alcance de alguns malas”. Há diversos outros posts pela internet afora dissecando os aspectos técnicos do defeito e a matemática por trás; não vou repeti-los aqui.

A essa altura, vale explicar algumas diferenças em relação à analogia com a Mega-Sena: na Coldcard, cada novo sorteio gera uma nova chave privada, e dela, por sua vez, deriva um endereço de depósito. Os usuários começaram a depositar seus bitcoins nesses endereços, e, se não vazassem suas chaves privadas, estaria tudo certo. Jamais imaginavam que suas chaves, embora não tivessem vazado, podiam ser “redescobertas” pelo mero fato de que o sorteio inicial era viciado!

Pior ainda, o “defeito nas bolinhas” do gerador de números aleatórios das Coldcards passou despercebido durante anos. Durante esse tempo, um monte de gente depositou pequenas (e não tão pequenas) fortunas em endereços derivados desse defeito – visualmente não há nenhuma indicação óbvia do defeito nos endereços de depósito em si, nem nas chaves privadas. Isso é uma coisa que pouca gente entende: a imprevisibilidade essencial à segurança está no processo de sorteio, não nas chaves privadas ou no endereço em si.

Aí, num “belo” dia, os usuários descobriram que seus fundos estavam sendo drenados para outros endereços – mesmo tendo feito todos os procedimentos certinho, sem jamais terem feito absolutamente nada errado. Ao contrário da analogia da Mega-Sena, em que os fundos foram “vazando aos poucos”, no caso da Coldcard a coisa passou anos despercebida e, aparentemente de uma hora pra outra, sem nenhum sinal prévio, veio uma enxurrada de casos de uma vez só. A Galaxy Research mapeou os prováveis endereços afetados e, à época em que esse artigo foi escrito, estimava que mais de 1.367 BTC — algo perto de 88,6 milhões de dólares — teriam sido drenados de mais de quatro mil endereços.

Sem dúvida, deve ser uma sensação horrível – a pessoa se sente violada, vulnerável, duvidando de si e de tudo. E daí vieram muitas reações extremadas: vídeos de gente marretando suas Coldcards em frustração, ameaças veladas (e algumas nem tão veladas) à Coinkite e seus colaboradores, e até gente proclamando “é o fim da autocustódia”. Não faltaram corretoras a dizer “muito melhor deixar conosco” e até a quererem revogar o antigo mantra “Your keys, your bitcoin; not your keys, not your bitcoin”.

Caso não tenha ficado claro: o Bitcoin em si passa bem — o problema foi em alguns modelos de carteira de um fabricante. A rede em si continua rodando redondo e o preço nos mercados mal se mexeu.

O Verdadeiro Problema e o Caminho da Solução

Pra mim, a grande lição que fica desse incidente é que em quase todos os aplicativos ou hardwares de carteira hoje existentes, o gerador de números aleatórios é invisível, sonegando dos usuários a possibilidade de conferir, por si próprios, que ele funciona direito. O desespero adveio exatamente porque boa parte dos usuários sequer imaginava que era um componente tão essencial cuja falha poderia ser catastrófica.

Na verdade, o único jeito que eu enxergo para o usuário ter confiança de que um processo de geração é realmente aleatório é participando dele. Então, no intuito de ajudar a resolver, coloquei no ar uma ferramenta para que os usuários possam criar suas próprias 24 palavrinhas que funcionam em qualquer carteira aderente ao padrão BIP-39 (a maioria) usando tabelas impressas e dados (aqueles cubinhos numerados usados em jogos de tabuleiro).

Caso alguém pergunte se os dadinhos comuns de tabuleiro são aleatórios o suficiente, a resposta curta é: sim. Eles são tendenciosos? Sim, mas só um pouco – os vieses costumam ser pequenos demais pra fazer diferença. Se isso importa tanto assim pra você, compre dados profissionais de cassino – é fácil achá-los no MercadoLivre, Shopee, etc. Se você quer se informar sobre isso de uma forma divertida, recomendo esse vídeo da sensacional galera do Manual do Mundo:

Minha esperança é que essa ferramenta inspire os futuros sistemas de carteira a incluir esquemas semelhantes onde o usuário possa se convencer independentemente de que está tudo certo.

Se você acha que lançar dadinhos é preciosismo demais, esoterismo dos ultraparanóicos, a ironia é que a própria Coldcard oferece um procedimento de geração baseado em lançamentos de dados e documenta como verificar independentemente os cálculos. Mas, devido à conveniência do gerador embutido, quase ninguém usava. Se fosse padrão, nada disso teria acontecido. “Ah, mas é terrível para a UX (experiência do usuário)?” Pra mim, perder os fundos é a pior experiência do usuário possível. Não podemos deixar isso acontecer de novo.

A Autocustódia Morreu?

Muito pelo contrário, e pela mais simples e óbvia das razões: no fundo, não existe outra coisa a não ser autocustódia. Se você deixa seus fundos na corretora, é apenas a corretora fazendo autocustódia. Vamos pular a parte em que muitas também terceirizam a autocustódia; o ponto é que alguém tem de autocustodiar, porque é assim que o Bitcoin funciona. O famoso “Your keys, your bitcoin; not your keys, not your bitcoin”, continua correto como sempre esteve: a questão é se as chaves estão em um computador sob seu controle ou sob controle da corretora.

Claro, muda totalmente o perfil de risco pro cliente final – passa a ter o famoso “risco da contraparte”. Mas não faltam exemplos históricos de corretoras que perderam fundos, foram hackeadas, ou cujo CEO morreu sem deixar as chaves (pesquise pelo caso da QuadrigaCX), sumiu (Africrypt), ou deu o golpe (FTX), etc. Então, tentar arguir que “é melhor deixar dinheiro na corretora” é, na melhor das hipóteses, questionável. Então, qual a maior fria pra se evitar? Confiar no gerador de números aleatórios ou na idoneidade e lisura contínua da corretora?

Talvez não precisemos fazer essa escolha – tenha um pouco na corretora e um pouco em autocustódia. O velho ditado de não colocar todos os ovos numa cesta só continua valendo. E que os dados sejam lançados!

Comments are closed, but trackbacks and pingbacks are open.