Introdução

O Bitcoin é frequentemente visto como dinheiro digital, mas isso é questionável. Se Alice pagar a Bob $ 10 em dinheiro, Bob não terá como saber de onde veio o dinheiro. Quando Bob transfere os US$ 10 para Carol, Carol não tem como saber que os US$ 10 vieram originalmente de Alice.

No entanto, a natureza pública inerente do Bitcoin determina que a situação seja diferente. O histórico de um determinado token (saídas de transação não gastas, ou UTXOs, para ser mais preciso) está disponível para todos verem. É como escrever o valor da transação e os nomes dos participantes em uma fatura.

No entanto, os endereços públicos podem ser tornados anónimos, permitindo aos utilizadores ocultar facilmente as suas identidades. No entanto, o Bitcoin não consegue esconder completamente seus rastros. A tecnologia de análise para blockchain está se tornando cada vez mais madura e pode combinar efetivamente endereços com identidades. Além de outras técnicas de vigilância, entidades dedicadas também podem desanonimizar os usuários de criptomoedas. Para resolver este problema, surgiram no mercado uma variedade de tecnologias para desagregação de transações.


O que é mistura de tokens?

Em termos gerais, a mistura de tokens refere-se a todas as operações que misturam fundos através de swaps. No entanto, no mundo das criptomoedas, a mistura de moedas é fornecida por terceiros. O provedor de serviços normalmente pega os tokens do usuário (juntamente com uma pequena taxa) e depois devolve alguns tokens que não têm relação com os tokens enviados. Esses serviços também são conhecidos como copos ou misturadores de moedas.

É claro que a segurança e o anonimato de tais serviços centralizados são questionáveis. Os usuários não têm garantia de que o mixer devolverá os fundos ou que os tokens devolvidos não estejam contaminados de alguma forma. Além disso, ao utilizar um mixer, os endereços IP e Bitcoin também podem ser registrados por terceiros. O resultado da mistura de tokens é que os usuários abrem mão do controle de seus fundos na esperança de obter tokens não relacionados.

Atualmente existe um novo esquema chamado “Transação CoinJoin” que oferece aos usuários um grande espaço para negação. Em outras palavras, após usar o CoinJoin, a evidência exata da conexão entre o usuário e as transações anteriores é apagada. Muitas soluções CoinJoin tornam-se alternativas descentralizadas aos mixers. Embora seja possível a intervenção de um coordenador, os utilizadores não precisam de abrir mão dos direitos de gestão dos fundos.


O que é CoinJoin?

A negociação da CoinJion foi lançada em 2013 e foi proposta pela primeira vez pelo desenvolvedor Bitcoin Gregory Maxwell. Na postagem, ele apresentou brevemente a estrutura dessas transações e como obter altos retornos privados sem modificar o protocolo.

Essencialmente, as transações CoinJoin incorporam informações de vários usuários. Antes de explicar como funciona esta tecnologia, vamos primeiro compreender a estrutura da transação subjacente.

As transações Bitcoin consistem em entradas e saídas. Quando um usuário deseja fazer uma transação, ele toma um UTXO como entrada, especifica a saída e assina a entrada. Observe que cada entrada é assinada de forma independente, mas o usuário pode configurar várias saídas (direcionando endereços diferentes).


image of an example transaction with four inputs and two outputs


Tomando como exemplo 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 uma série de suposições sobre ela. Primeiro observe um pagamento ocorrer - o remetente envia uma das saídas para alguém e posteriormente recebe o troco. Esta transação utiliza quatro entradas, portanto a saída maior deve ser direcionada ao receptor. Observe que precisamos pagar uma taxa ao minerador e a produção perderá 0,01 BTC.

O remetente também pode querer criar um UTXO grande, combinando assim pequenas entradas para atingir uma saída alvo de 0,7 BTC.

Também podemos assumir que cada entrada é assinada de forma independente. Esta transação tem no máximo quatro partes assinando a entrada. É exatamente assim que o CoinJoin funciona.


Como funciona o CoinJoin?

A ideia central é que múltiplas partes colaborem para criar transações, com cada parte fornecendo entradas e resultados esperados. Quando todas as entradas são combinadas, outras pessoas não conseguem identificar a correspondência entre a saída e o usuário. Vejamos o seguinte diagrama:


image of an example coinjoin


Conforme mostrado na figura, quatro participantes desejam quebrar a correlação entre as transações. Eles coordenam-se entre si (ou através de um coordenador dedicado) para declarar os insumos e produtos que desejam que sejam contados.​

O coordenador pegará todas essas informações e as transformará em uma transação, fazendo com que cada participante assine antes de transmiti-la para a rede. Uma vez assinada por um usuário, a transação não pode ser alterada até que se torne inválida. Portanto, o coordenador não pode roubar fundos.​

Esta transação funciona como uma caixa preta para mistura de moedas. Não se esqueça, destruímos o UTXO inicial para criar um novo UTXO. A única conexão entre o antigo e o novo UTXO é a transação em si e, claro, não podemos distinguir os participantes. A situação ideal é apenas saber que existem participantes que fornecem insumos e podem ser os donos dos resultados de saída.

Mesmo assim, não podemos ter 100% de certeza. Vendo a transação descrita acima, quem pode ter certeza de que são quatro participantes? Ou há apenas uma pessoa enviando fundos para os seus quatro endereços? Ou duas pessoas compram duas vezes cada e cada endereço recebe 0,2 BTC? Também é possível que quatro pessoas tenham enviado fundos para novos participantes ou que os fundos tenham retornado para o indivíduo. Não podemos determinar as circunstâncias específicas.


Protegendo a privacidade através da “negação”

O advento da implementação do CoinJoin foi suficiente para lançar dúvidas sobre os métodos de análise de transações. Em muitos casos, você pode inferir que ocorreu um CoinJoin, mas não consegue determinar o proprietário da saída. À medida que esta tecnologia se torna mais comum, a suposição de que todos os insumos pertencem ao mesmo usuário enfraquece gradualmente. Num ecossistema amplo e abrangente, a privacidade melhorou dramaticamente.

No exemplo acima, assumimos que o conjunto anônimo de transações possui 4 proprietários de entrada e o proprietário de saída pode ser qualquer uma dessas 4 pessoas. Quanto maior for o conjunto de anonimato, menor será a probabilidade de encontrar uma correspondência entre a transação e o proprietário original. Felizmente, o recente esquema CoinJoin permite que dezenas de usuários fundam entradas de maneira confiável, melhorando significativamente a “negabilidade”. Recentemente, o CoinJoin executou com sucesso centenas de negociações.


Resumir

Para usuários que prestam muita atenção à privacidade, a mistura de moedas é um método complementar muito eficaz. Ao contrário das atualizações de privacidade propostas, como transações confidenciais, esta tecnologia é compatível com os protocolos existentes.

Para usuários que confiam na integridade e nos métodos eficazes de terceiros, os serviços de mistura de moedas são simples e convenientes. Para usuários que preferem uma solução verificável ou sem custódia, o CoinJoin é uma excelente escolha. Usuários experientes em tecnologia podem abstrair mecanismos mais complexos manualmente ou usando ferramentas de software. Hoje, à medida que aumenta a necessidade de privacidade, essas ferramentas se tornarão cada vez mais populares no mercado.