Introdução

Bitcoin é frequentemente referido como dinheiro digital, mas esta é uma comparação aproximada. Se Alice paga a Bob $ 10 em dinheiro, Bob não tem ideia de onde veio o dinheiro. Se ele o entregar a Carol, ela não poderá saber que Alice o possuía.

O Bitcoin é diferente devido à sua natureza pública. O histórico de uma determinada moeda (mais precisamente, uma saída de transação não gasta ou UTXO) pode ser visualizado trivialmente por qualquer pessoa. É como escrever o valor da transação e os nomes dos participantes em uma fatura cada vez que ela é usada.

Dito isto, pseudonimizar um endereço público garante que as identidades dos utilizadores não sejam facilmente reveladas. No entanto, o bitcoin não é totalmente privado. A análise Blockchain está se tornando cada vez mais sofisticada e é capaz de vincular endereços a identidades de forma cada vez mais eficiente. Juntamente com outras técnicas de vigilância, uma entidade dedicada pode desanonimizar os usuários de criptomoedas. Para resolver este problema, técnicas de separação de transações surgiram ao longo dos anos.


O que é mixagem de ambiente?

De modo geral, a mistura de moedas pode referir-se a qualquer atividade que envolva a ofuscação de fundos, substituindo-os por outros. No entanto, no espaço das criptomoedas, a mistura de moedas geralmente indica um serviço prestado por terceiros. Normalmente, os provedores de serviços recebem os fundos dos usuários (e uma pequena comissão) e devolvem os fundos que não estão relacionados aos enviados. Esses serviços também são conhecidos como copos ou misturadores.

A segurança e o anonimato destes serviços centralizados são obviamente questionáveis. Os usuários não têm garantia de que seu dinheiro será devolvido pelo mixer ou que as moedas devolvidas não serão adulteradas de alguma forma. Outro aspecto a considerar ao usar um mixer é que os endereços IP e Bitcoin podem ser registrados por terceiros. Em última análise, os utilizadores abrem mão do controlo dos seus fundos na esperança de receber em troca fundos desvinculados.

Uma abordagem provavelmente mais interessante existe na forma de transações CoinJoin, que criam um grau significativo de negação plausível. Isso significa que após um CoinJoin, nenhuma evidência pode vincular um usuário com certeza às suas transações anteriores. Muitas soluções CoinJoin oferecem uma alternativa descentralizada aos mixers. Embora possa haver um coordenador envolvido, os usuários não precisam sacrificar a custódia dos seus fundos.


O que é um CoinJoin?

As transações CoinJoin foram originalmente propostas pelo desenvolvedor Bitcoin Gregory Maxwell em 2013. Em seu tópico, ele fornece uma breve visão geral da estrutura dessas transações e como os enormes ganhos de privacidade podem ser obtidos sem nenhuma modificação do protocolo.

Em essência, um CoinJoin envolve combinar informações de vários usuários em uma única transação. Antes de explicarmos como (e porquê), vejamos a estrutura de uma transação básica.

As transações Bitcoin consistem em entradas e saídas. Quando um usuário deseja fazer uma transação, ele toma seus UTXOs como entradas, especifica as saídas e assina as entradas. É importante observar que cada entrada é assinada de forma independente e os usuários podem definir múltiplas saídas (indo para endereços diferentes).


image d'un exemple de transaction avec quatre entrées et deux sorties


Se considerarmos uma determinada transação que consiste em quatro entradas (0,2 BTC cada) e duas saídas (0,7 BTC e 0,09 BTC), podemos fazer algumas suposições diferentes. Primeiro, veremos que ocorre um pagamento: o remetente envia uma das saídas para alguém e devolve a diferença para si mesmo. Como usaram quatro insumos, o resultado mais importante é provavelmente para o destinatário. Observe que faltam 0,01 BTC nas saídas, que é a taxa dada ao minerador.

Também é possível que o remetente queira criar um UTXO grande a partir de UTXOs pequenos e consolidar as pequenas entradas para atingir o resultado desejado de 0,7 BTC.

Outra suposição que podemos fazer é baseada no fato de que cada entrada é assinada de forma independente. Esta transação pode ter até quatro partes diferentes assinando as entradas. E este é o princípio que torna o CoinJoins eficaz.


Como funciona um CoinJoin?

A ideia é que várias partes se coordenem para criar uma transação, cada uma fornecendo as entradas e saídas desejadas. Como todas as entradas são combinadas, torna-se impossível dizer com certeza a qual resultado o usuário pertence. Examine o diagrama abaixo:


image d'un exemple de coinjoin


Aqui temos quatro participantes que querem quebrar o vínculo entre as transações. Eles se coordenam entre si (ou por meio de um coordenador dedicado) para anunciar as entradas e saídas que desejam incluir.

O coordenador pegará todas as informações, transformará em uma transação e pedirá que cada participante assine antes de divulgá-las para a rede. Depois que os usuários assinam, a transação não pode ser alterada sem se tornar inválida. Não existe, portanto, qualquer risco de o coordenador fugir com os fundos.

A transação funciona como uma espécie de caixa preta para misturar as peças. Lembre-se de que destruímos UTXOs para criar novos. A única conexão entre o antigo e o novo UTXO que temos é a transação em si, mas é claro que não podemos distinguir os participantes. Na melhor das hipóteses, podemos dizer que um participante forneceu um dos insumos e talvez seja o novo proprietário de um produto resultante.

Mas isso não é de forma alguma garantido. Quem pode dizer, no que diz respeito à transação acima, que há quatro participantes? É uma pessoa enviando seus fundos para quatro endereços próprios? Duas pessoas fazendo duas compras separadas e cada uma enviando 0,2 BTC de volta para seu próprio endereço? Quatro pessoas enviando dinheiro para novos participantes ou de volta para si mesmas? Não podemos ter certeza.


Confidencialidade através da possibilidade de negação

O simples fato de existirem implementações de CoinJoin é suficiente para lançar dúvidas sobre os métodos utilizados para analisar as transações. Você pode inferir que ocorreu um CoinJoin em muitos casos, mas ainda não consegue dizer quem é o proprietário das saídas. À medida que ganham popularidade, a suposição de que todas as entradas são detidas pelo mesmo utilizador é enfraquecida, implicando um aumento maciço da privacidade no ecossistema como um todo.

No exemplo anterior, dizemos que a transação tinha um conjunto de anonimato igual a 4. O proprietário de uma saída poderia ser qualquer um dos quatro participantes envolvidos. Quanto maior for o anonimato definido, menor será a probabilidade de as transações poderem ser vinculadas ao seu proprietário original. Felizmente, as implementações recentes do CoinJoin permitem que os usuários mesclem de forma confiável suas entradas com dezenas de outras, proporcionando um alto grau de anonimato. Recentemente, uma transação de 100 pessoas foi executada com sucesso.


Concluir

As ferramentas de mistura de moedas são uma adição importante ao arsenal de qualquer usuário preocupado com a privacidade. Ao contrário das melhorias de privacidade propostas (como Transações Confidenciais), estas são compatíveis com o protocolo tal como existe hoje.

Para quem confia na integridade e metodologia de terceiros, os serviços de mixagem são uma solução fácil. Para aqueles que preferem uma alternativa verificável e sem custódia, as alternativas CoinJoin são superiores. Isto pode ser feito manualmente por usuários tecnicamente competentes ou usando ferramentas de software que abstraem os mecanismos mais complexos. Já existem algumas dessas ferramentas cuja popularidade só aumenta à medida que os usuários se esforçam para melhorar sua privacidade.