Quer garantir o anonimato? Pare imediatamente de usar Block Explorers!

Benjamin Overture
5 min readOct 25, 2017

Se você se preocupa com a sua privacidade, pare imediatamente de usar qualquer tipo de block explorer. Eu explico:

Se existe uma arma contra pessoas que querem manter o anonimato, o nome dela é ataque de correlação. Essa praga foi capaz de entregar grandes nomes do anonimato, como Dread Pirate Roberts e um pessoal do LulzSec, e é simples em conceito, eficiente na prática e coloca todo mundo que preza pelo seu anonimato em risco.

Para quem não sabe o que é um Correlation Attack: você já ouviu falar daquele desafio chamado Einstein Five-House Riddle (ou Teste de QI do Einstein, que na realidade eu duvido muito que tenha qualquer relação com o Einstein). Se você não o conhece, deve consultá-lo aqui (https://www.brainzilla.com/logic/zebra/einsteins-riddle/) ou sua versão em português aqui (https://rachacuca.com.br/teste-de-einstein/?scrap). Essencialmente é um teste estatístico, onde existe somente uma única resposta correta.

A questão maior deste teste não é sua dificuldade — até porque os problemas apresentados ali são ridiculamente simples para um computador resolve r— mas sim a sua maneira de resolver: abusar da estatística de um resultado até que a reposta seja completamente certa, sempre cortando opções a partir de dados resultantes da rodada anterior.

Eu já mencionei alguns exemplos de ataques de correlação anteriormente em meu artigo anterior, e você pode saber mais sobre esses ataques aqui (https://steemit.com/tor/@garrettfogerlie/how-tor-users-got-caught-by-government-agencies)

Antes de começar a falar sobre a ligação entre ataques de correlação e os Block Explorers, é necessário primeiro explicar o que é um Block Explorer, porque isso faz uma diferença gigantesca aqui. Essencialmente os BEs são ferramentas indexadoras que trafegam por um blockchain e incluem índices como endereços de carteiras, hashs de transações, blocos e outros. O maior objetivo desses nodes (pois todo BE está diretamente vinculado a um node para poder garantir a integridade do banco) é trazer um conforto maior para provar que uma transação está na rede. Em muitos casos, um block explorer é tido como verdade absoluta, pois é uma imagem do blockchain.

O problema todo começa porque os nodes entendem que tais índices de transações, carteiras entre outros, não devem vir como padrões, nem ao menos opcionais, dentro do seu código. Você instala um node em sua máquina, e apesar dele contar com várias funções que são completamente menos relevantes que um block explorer, como wallets e serviços de proteção de chaves privadas via password, você não tem nem a opção de instalar um indexador nativo a plataforma, que retorne os dados de acordo com que o você pedir. Para tal, você é obrigado a refazer a indexação de todo o blockchain compilado na sua máquina para um programa externo (inclusive, você tem que passar por esse processo DUAS VEZES, já que a maioria dos nodes impede você de acessar os serviços de RPC antes da primeira indexação terminar. Fora a perda nativa de desempenho por ter que realizar duas consultas (uma ao seu DB e outra ao DB dos índices após a conclusão da consulta atual).

Então você acaba refém de um serviço online, um block explorer que magicamente vai te falar que ele é o dono da verdade absoluta do saldo em sua conta. Parabéns, vocês conseguiram cagar o conceito de distribuição da coisa toda (inclusive, o mesmo ocorre para você que não verifica a quais nós você está conectado). A falta de democracia entre os Block Explorers é um problema.

E quem vai discordar? Sua wallet preferida provavelmente faz consulta a esse node graças a reputação de bom moço. Seu P2P preferido vai te mandar um link desse BE para garantir que está tudo certo. Sua exchange favorita vai mostrar ela na hora que ela disser que te pagou seus BTCs e você reclamar que eles ainda não bateram na sua conta.

Mas o risco maior não é ter um BE forjado.

Uma vez eu estava buscando em um fórum uma ajuda para compilar meu próprio node e cai numa postagem onde estava se questionando os incentivos de se criar o próprio node. Uma das argumentações que aparecia com grande frequência era a de que a sua percepção do blockchain seria a “correta”. Essa argumentação é tão errada quanto enganosa, afinal eu estou colocando voluntariamente um nó a mais no servidor e ninguém está me pagando nada por isso. Por isso, essa pessoa se torna um alvo fácil para um tipo de praga bastante chata: pessoas com dinheiro e interesses distintos dos usuários do BE.

Criei um BE, coloquei um layout bonitinho e estou com ele online. Resolvo negociar no P2P, e assim que fiz a transação te mandei o link dela no meu BE. Pronto, tenho seu endereço de IP e consigo te vincular a minha transação. Posso fazer isso com nodes Zero-Knowledge Proof e carteiras blindadas. Posso fazer com transações mixadas (em alguns contextos). Não importa, se eu tenho controle do Block Explorer, eu posso apontar o dedo para o seu computador e dizer que é você é o interessado nessa transação.

E digo mais, relacionar seu endereço a outros endereços ou transações vai me dar muito mais informações sobre você do que a própria chave privada do seu endereço me daria, uma vez que eu consigo de vincular outras transações ao seu nome.

Ai vai vir aquele amigo que vai dizer: “Estou seguro, uso VPN!”. Espera até essa pessoa ter que lidar com alguém que seja poderoso o bastante para poder usar o mesmo método contra a sua VPN. A maioria das pessoas não usa qualquer tipo de máscara nos acessos, e por isso você é um pontinho brilhante no meio de uma rede. Pegaram pessoas que usavam métodos distribuídos, e você tá ai se achando o garotão porque está usando o TunnelBear (que você nem sabe se é logless).

Enfim, como parte da minha sugestão: se você precisa garantir o anonimato, compile o próprio node e use-o para verificar suas próprias transações. A distribuição de uma transação na rede vai acontecer em 100% dos casos, resta a você esperar até que seu nó seja privilegiado com ela e que você possa consultá-lo diretamente.

É importante falar que estou trabalhando em um projeto para resolver esse problema. Tomei essa iniciativa depois que vi dois desenvolvedores da antiga Bitpay sendo escrachados por terem sugerido a inclusão dos indices extras dentro do node do Bitcoin Core. Isso vale para qualquer node de qualquer moeda!

#FreeTheIndex

--

--