Uma visão geral das técnicas de análise de blockchain anônimas

Em um dos artigos anteriores , revisamos tecnologias de criptomoedas anônimas. Hoje, examinamos o problema do anonimato, por outro lado, e fornecemos uma visão geral dos métodos mais famosos para analisar hoje as cadeias de blocos anônimas. Neste artigo, focaremos na análise das próprias transações blockchain, ignorando a possibilidade de conectar endereços de carteira com seus endereços IP no nível do protocolo p2p, pois nesse caso as técnicas são bastante monótonas. Para entender este artigo, basta um conhecimento superficial do dispositivo de criptomoedas populares no nível de compreensão de quais são as entradas e saídas de uma transação.

imagem

Em 2009, quando o bitcoin apareceu, era considerado um meio de transferências anônimas, porque não era possível comparar a chave pública da carteira com seu proprietário. Mas esses tempos passaram e hoje as técnicas são conhecidas para analisar o gráfico de pagamento e identificar os pools de endereços de quase todos os sites da rede: mercados de trocas, pools de mineração, trocadores e darknet.

Quase todas essas técnicas usam as mesmas abordagens - primeiro, usando heurísticas simples, os endereços são combinados em clusters e, empiricamente, determinados se cada cluster pertence a um site específico. Você pode ler mais sobre isso em Um punhado de Bitcoins: caracterizando pagamentos entre homens sem nome .

Como a privacidade das transferências ainda não é o principal objetivo do bitcoin, começou a surgir uma demanda por maneiras de manter em segredo o gráfico de seus pagamentos. As primeiras tentativas foram "alternar chaves" - serviços que enviam transações em nome de vários usuários, que exigem confiança no próprio mixer. Para reduzir os riscos associados à confiança em serviços centralizados, apareceu o conhecido protocolo CoinJoin, que não permitia que terceiros (a saber, o próprio misturador) controlassem o dinheiro dos usuários. Quando o desenvolvimento dessa idéia começou a aparecer, as criptomoedas, para as quais o principal é a privacidade das transferências. Agora, no topo do Coinmarketcap, você encontra três deles - Monero, Dash e ZCash, cuja capitalização total no momento da escrita é de cerca de US $ 1,8 bilhão. A seguir, examinaremos mais de perto as maneiras de analisar essas cadeias de blocos.

Coinjoin


O protocolo CoinJoin foi proposto por Greg Maxwell em 2013 como um substituto para os misturadores existentes, o que não requer a transferência de seus bitcoins para terceiros. A essência do protocolo é que vários usuários são dispensados ​​para efetuar seus pagamentos em uma transação.

imagem

Neste exemplo, Ernie e Barack decidem entrar e fazer transferências para Charlie e Donald com uma transação conjunta. Como vemos na figura, fica difícil entender quem decidiu pagar pela campanha de Donald - Ernie ou Barack.

Mas neste caso, "difícil" não significa "impossível". Uma das primeiras técnicas (e bastante bem-sucedidas) a des-anonimizar transações CoinJoin foi o CoinJoin sudoku . O autor sugere analisar várias combinações de entradas e saídas, que no total dão o mesmo valor, assumindo que elas podem corresponder a um pagamento. Na prática, isso pode ser algo como isto (Fonte - https://www.coinjoinsudoku.com/advisory/ ):

imagem

No trabalho "Overlays de aprimoramento da privacidade no Bitcoin", os autores foram além e examinaram o atacante - um atacante que estava envolvido ativamente em transações. Se o invasor participou de várias transações conjuntas, ele pode excluir suas entradas e saídas, facilitando a análise.

Mas o principal ponto de "desconfiança" nesse esquema é sua natureza centralizada. Os usuários devem escolher um serviço "confiável" para esses fins, que pode simplesmente salvar os registros de amassamento que passam por ele (embora não possa roubar dinheiro).

Entre outras coisas, o próprio usuário também precisa tomar medidas para reduzir o risco de cancelar o cancelamento do pagamento. É extremamente importante não usar o mesmo endereço para pagamentos mais de uma vez, pois isso facilitará muito a análise do atacante da cadeia de transações.

No entanto, embora essa seja uma das primeiras tentativas e tenha um modelo de anonimato bastante fraco, no ano passado o número dessas transações triplicou e atingiu 4,09% do número total de pagamentos (de acordo com longhash.com ), o que indica uma crescente demanda por privacidade em Redes Bitcoin.

Dash


Dash (anteriormente DarkCoin) → fork do Bitcoin. As transações no Dash não são privadas por padrão; para efetuar pagamentos privados no Dash, há uma função de Envio Privado. Ela herdou o princípio de CoinJoin, juntamente com a maioria de suas deficiências.

O Dash divide as saídas do usuário em dois tipos: regular e privado. O primeiro pode ser usado para realizar uma transação transparente, e o último é necessário para participar da mistura. Ao converter saídas comuns, a transação que as gasta as divide em denominações no formato 1.00001 DASH, 0.100001 DASH, etc., e transfere endereços únicos para os controlados pelo usuário. Depois disso, o remetente seleciona o masternode ao qual a transação será vinculada. Quando um número suficiente de participantes é recrutado, uma transação é formada e enviada para a assinatura de cada um dos remetentes. Depois disso, ela está pronta para enviar para a rede.

Um exemplo de transação do PrivateSend no Dash que usa três endereços diferentes de remetente e destinatário. Fonte - Traço detalhado :

imagem

Ao contrário do CoinJoin, o usuário se livra da necessidade de garantir que sua chave pública não apareça duas vezes em uma dessas confusões. No entanto, isso protege fracamente contra o rastreamento de origem - você pode rastrear banalmente a cadeia de "conversões" até uma saída real, de onde um dos métodos padrão para analisar fontes de transação é usado para bitcoin. Empiricamente, foi revelado que, se os resultados tiverem um ancestral comum, provavelmente esse será o remetente.

A denominação de resultados de transações privadas complica ataques como o CoinJoin sudoku, mas não os protege completamente. Juntamente com algumas heurísticas, essa vantagem pode ser anulada.

O fato de o protocolo de mixagem fazer parte do Dash e eliminar a necessidade de usar serviços de terceiros não elimina a necessidade de confiança nos masternodes selecionados. Ninguém pode garantir que o proprietário de qualquer um dos masternodes não colete logs sobre solicitações de transação do seu lado.

Como no CoinJoin, o usuário pode ter falta de liquidez para amassar sua transferência. Nesse caso, os usuários foram aconselhados a selecionar vários masternodes para a formação da transação, no entanto, isso só aumenta o risco de tropeçar em um proprietário sem escrúpulos.

Agora a web está criticando ativamente o modelo de privacidade do Dash. Você pode encontrar postagens no Reddit sobre como alguém conseguiu anular a parte de transações de envio privadas. Por exemplo, nesta postagem, o autor afirma que, nos últimos 15 dias, ele conseguiu rastrear cerca de 13% das transações na origem.

ZCash


O ZCash apareceu em 2016 como uma implementação do protocolo ZeroCash e tornou-se conhecido por todos através do uso de zkSNARKs com evidência de conhecimento zero. O ZCash não obriga a usar apenas transações confidenciais - a maioria das transações em sua rede é transparente e herdou seu dispositivo do bitcoin.

Para usar a função de pagamento confidencial, o usuário deve transferir a parte necessária dos fundos para o chamado pool protegido. Assim, as transações seguras podem ser divididas em três tipos, dependendo do estágio do pool protegido:

  • Transação de blindagem. Transação do espaço público para o pool protegido. Aqui, o remetente, ao contrário do destinatário, não está se escondendo, mas você pode ver quanto dinheiro entra "nas sombras".
  • Transação privada. Transação dentro de uma piscina protegida. Aqui, nem o remetente, nem o destinatário, nem o valor da transferência são conhecidos. De fato, sabe-se apenas que os fundos são gastos nessa transação que “já estiveram na piscina”.
  • Deshielding transação. Uma transação que retira fundos de um pool. Não se sabe quem os exibe, mas sabe-se quem e quantos.

Ilustração de diferentes tipos de transação. Da esquerda para a direita: transação transparente regular, transação de blindagem, transação privada, operação de remoção de domínio. Fonte - "Uma análise empírica do anonimato no Zcash" :

imagem

É importante observar que a rede exige que todas as moedas geradas (recompensas em bloco) caiam no pool protegido, aumentando efetivamente o anonimato definido para misturar transações.

A análise empírica das transações públicas no ZCash (no início de 2018 elas representavam 73% do número total de transações) não é particularmente difícil e está sujeita às mesmas técnicas do próprio Bitcoin. No entanto, obter estatísticas sobre quem e quanto dinheiro foi retirado do pool protegido é muito mais difícil. Uma das primeiras tentativas de analisar transações seguras em 2018 foi o trabalho "Uma análise empírica do anonimato no Zcash" . Seus autores investigaram pagamentos com base em várias heurísticas - observações feitas com base no comportamento do usuário:

  • Se uma transação gasta duas ou mais saídas transparentes (independentemente de a transação ser transparente, protegida ou mista), provavelmente essas saídas pertencem ao mesmo membro da rede.
  • Se apenas um destinatário for indicado em uma transferência transparente (ou seja, sem alterações), provavelmente todas as fontes de fundos dessa transação pertencerão ao destinatário.
  • Qualquer retirada do pool protegido no valor de 250.0001 ZEC (houve muitas dessas transferências) pertence aos fundadores da rede. Isso equivale aproximadamente à recompensa de 100 blocos.
  • Se houver mais de 100 saídas em uma transação de retirada de capital, uma das quais pertence a um pool de mineração conhecido, podemos concluir que essa é uma retirada de fundos de mineradoras. Todas as outras saídas podem ser designadas como pertencentes aos mineiros.
  • Se houver um par de transações de blindagem e remoção de proteção com uma quantidade única e uma diferença de vários blocos, e a transação de blindagem ocorreu anteriormente, essas transações serão interconectadas. Isso está descrito em Ligação às transações do Zcash .

As ilustrações abaixo mostram algumas análises que os autores do trabalho foram capazes de construir com base nessas heurísticas:

imagem

imagem

imagem

Os autores foram capazes de identificar 65,6% das transações que sacavam fundos do pool. Não foi possível alcançar êxitos significativos na identificação de pagamentos dentro do pool.

Em um trabalho recente, “Privacidade e vinculação da mineração em Zcash”, pesquisadores da Universidade do Luxemburgo analisaram o desempenho de pools de mineração e identificaram dois padrões ao pagar recompensas:

  • O pool de mineração exibe a recompensa do bloco em seu endereço público e, a partir daí, distribui a recompensa aos mineiros. Eles chamavam de Padrão T.
  • A piscina de mineração armazena as moedas extraídas na piscina protegida e, em algum momento, recompensa os mineiros de lá para seus endereços públicos. Esse padrão foi chamado de Padrão Z.

Não foi difícil estabelecer a propriedade das transações para pools específicos - os pesquisadores simplesmente compararam os endereços públicos para pagamento de recompensas com os endereços dos principais mineradores publicados nos sites dos próprios pools.

Seguindo essa abordagem, os pesquisadores conseguiram aumentar a parcela dos pagamentos de pool identificados de 65,6% no trabalho anterior para 84,1% nos mesmos dados.

No entanto, essa abordagem tem suas desvantagens:

  • Pode ser aplicado a um intervalo de tempo razoavelmente estreito de cerca de 2000 blocos (cerca de quatro dias), uma vez que os mineradores tendem a alterar os pools de mineração;
  • É muito difícil identificar transações pertencentes a pequenos conjuntos que encontraram apenas alguns blocos, pois suas transações pagas não se encaixam no padrão geral com conjuntos grandes devido ao pequeno número de saídas para eles.

Os resultados da análise são apresentados na ilustração:

imagem

Com base nesses dados, os autores concluem que 95,6% de todas as transações do ZCash são potencialmente "divulgadas", o que aproxima a privacidade do ZCash do nível de bitcoin.

Como podemos ver, apesar da forte proteção criptográfica, muitos dados para análise e conclusões podem ser obtidos a partir de informações abertas no blockchain.

Monero


O Monero foi lançado em abril de 2014 e é a implementação mais popular do protocolo CryptoNote . Em vez de endereços públicos dos destinatários dos fundos, o Monero usa endereços únicos em cada pagamento, portanto, para o observador externo, não há como corresponder criptograficamente o endereço único do destinatário ao seu endereço público. Para ocultar o remetente, essa tecnologia usa a idéia de amassar, mas é diferente de CoinJoin. No Monero, o remetente não precisa procurar outro candidato para concluir uma transação conjunta. Em vez disso, a própria carteira coleta saídas arbitrárias da blockchain, oculta entre elas a saída que deseja gastar e prende tudo com uma assinatura de anel. A assinatura do anel aqui serve para convencer o validador de transação de que o remetente realmente possui uma das saídas de amassamento e que não é gasto. Isso gera um alto grau de incerteza ao tentar rastrear um pagamento ao destinatário. Um exemplo que podemos ver na ilustração:

imagem

Acontece que o "grau de privacidade" de uma transação depende do tamanho de sua assinatura de anel - quanto mais saídas aleatórias forem usadas para mixar, mais difícil será rastreá-la.

Até 2016, a mixagem na rede Monero era opcional e, em seguida, o tamanho mínimo da assinatura do anel foi aumentado para 3. Por isso, cresceu todos os anos e agora é 11.

Em 2017, em um trabalho intitulado "Uma análise empírica da rastreabilidade no Monero Blockchain", um grupo de pesquisadores apontou duas fraquezas do protocolo de criptomoeda (vale a pena notar que eles não foram os primeiros a falar sobre isso, mas foram capazes de fornecer os resultados da análise de transações na prática )

A primeira vulnerabilidade refere-se ao efeito negativo do uso de transações anteriormente válidas com zero amassamento. É também chamado de análise de "reação em cadeia". Os autores demonstraram, na prática, que confiar apenas no anonimato com endereços únicos não é apenas inútil, mas também leva à desanonimização de outros pagamentos usando esses resultados como amassados ​​- já se sabe onde eles foram gastos. Com um pequeno número de saídas falsas em uma transação, as reais podem ser calculadas com um alto grau de probabilidade pelo método de exclusão. Assim, os pesquisadores conseguiram rastrear cerca de 62% das transações realizadas antes de fevereiro de 2017.

A segunda vulnerabilidade está relacionada à maneira como a carteira escolheu as saídas para mixagem. O fato é que as saídas falsas foram selecionadas uniformemente no blockchain, o que na época não refletia os padrões de comportamento dos usuários de criptomoedas. Os autores observaram que o usuário gasta com mais frequência o dinheiro recebido dentro de dois a três meses. Assim, na maioria dos casos, as saídas mais recentes foram realmente gastas. A seguir, exemplos da distribuição das idades de saída nas transações:

imagem

imagem

Usando essa heurística na época, os autores conseguiram revelar cerca de 80% das fontes de transações.

No entanto, agora essas técnicas têm mais interesse acadêmico, pois os desenvolvedores já corrigiram essas fraquezas - aumentaram o mixin mínimo para 11, a lei de distribuição, segundo a qual as saídas para mixagem são reunidas, substituídas por uma realidade mais aproximada e implementaram um protocolo de transações confidenciais.

Em outro trabalho, intitulado "Nova análise empírica de rastreabilidade de cadeias de blocos estilo criptoNote", os pesquisadores tentam analisar as transações do Monero usando "conjuntos fechados".

Vamos explicar com um exemplo. Suponha que tenhamos quatro saídas pk1, pk2, pk3 e pk4. Agora, precisamos encontrar quatro dessas transações em que elas serão usadas exclusivamente:

imagem

No nosso caso, podemos concluir que essas quatro saídas são todas gastas nessas quatro transações e, da próxima vez que encontrarmos uma transação que amasse pelo menos uma dessas saídas, podemos excluí-las do anonimato definido como sendo conscientemente falso.

Os autores realizaram experimentos no blockchain Monero com transações confidenciais já incluídas e um tamanho mínimo da assinatura do anel 5. No entanto, como esses conjuntos são um fenômeno bastante raro, eles conseguiram rastrear apenas 0,084% das saídas, e essa técnica pode ser considerada como uma adição a outros métodos de análise. Esse resultado permite concluir que o moderno Monero oferece garantias bastante fortes de confidencialidade.

Qual é o resultado


Realizamos um estudo bastante amplo de maneiras de analisar blockchains anônimos. Embora ninguém esteja tentando decifrar a criptografia, alguns deles têm um ponto fraco na natureza centralizada dos serviços de anonimização e outros na capacidade de realizar transações transparentes. Em nossa opinião, o Monero oferece as melhores garantias de confidencialidade para hoje (com vulnerabilidades corrigidas anteriormente corrigidas), uma vez que estudos recentes não fornecem resultados significativos da rastreabilidade das transações.

Source: https://habr.com/ru/post/pt471640/


All Articles