Guia sobre Coin Mixing e CoinJoins
P√°gina Inicial
Artigos
Guia sobre Coin Mixing e CoinJoins

Guia sobre Coin Mixing e CoinJoins

Avançado
Publicado em Mar 25, 2020Atualizado em Dec 28, 2022
6m

Introdução

√Č comum se referir ao Bitcoin como uma forma de dinheiro digital, mas esta √© uma afirma√ß√£o question√°vel. Se Alice paga a Bob dez d√≥lares em dinheiro, Bob n√£o tem ideia da origem do dinheiro. Se mais tarde ele enviar os dez d√≥lares a Carol, ela n√£o saber√° que Alice j√° foi dona desse dinheiro.
O Bitcoin √© diferente devido √† sua natureza inerentemente p√ļblica. O hist√≥rico de uma moeda (mais precisamente, de um output de transa√ß√£o n√£o gasto ou UTXO) pode ser facilmente verificado por qualquer pessoa. √Č como escrever o valor de cada transa√ß√£o e os nomes correspondentes na fatura de um cart√£o de cr√©dito, sempre que ele for usado.¬†
Dito isso, o aspecto de pseud√īnimo de um endere√ßo p√ļblico garante que as identidades dos usu√°rios n√£o sejam facilmente reveladas. Ainda assim, o Bitcoin n√£o √© totalmente privado. A an√°lise de blockchain est√° ficando mais sofisticada e a sua capacidade de associar endere√ßos e identidades se torna mais eficiente a cada dia. Com a ajuda de outras t√©cnicas de vigil√Ęncia, uma entidade especializada pode remover o anonimato dos usu√°rios de criptomoedas. Para remediar isso, surgiram ao longo dos anos, t√©cnicas que possibilitam a remo√ß√£o dos v√≠nculos das transa√ß√Ķes.


O que é coin mixing?

Em termos gerais, o coin mixing pode se referir a qualquer atividade que envolva a ofuscação de fundos e a substituição dos mesmos. No entanto, no setor das criptomoedas, o coin mixing geralmente denota um serviço fornecido por terceiros. Normalmente, os provedores desse serviço recebem as moedas dos usuários (e uma pequena taxa) e devolvem moedas que não têm vínculo com as moedas enviadas. Esses serviços também são conhecidos como tumblers ou mixers.

Obviamente, a segurança e o anonimato desses serviços centralizados são questionáveis. Os usuários não têm garantia de que seu dinheiro será devolvido pelo mixer ou de que as moedas devolvidas não estão "comprometidas" de alguma forma. Um aspecto adicional a se considerar ao usar um mixer é que os endereços de IP e de Bitcoin podem ser registrados por terceiros. No final das contas, os usuários abrem mão do controle de seus fundos na esperança de receber fundos sem nenhum vínculo.

Existe outra abordagem, indiscutivelmente mais interessante, na forma de transa√ß√Ķes CoinJoin, que geram um grau significativo de nega√ß√£o plaus√≠vel. Isso quer dizer que, ap√≥s uma CoinJoin, nenhuma evid√™ncia √© capaz de associar, com certeza, um usu√°rio √†s suas transa√ß√Ķes anteriores. Muitas solu√ß√Ķes CoinJoin fornecem uma alternativa descentralizada aos mixers. Embora possa existir um coordenador encarregado, os usu√°rios n√£o precisam sacrificar a cust√≥dia de seus fundos.


O que é CoinJoin?

As transa√ß√Ķes CoinJoin foram inicialmente propostas pelo desenvolvedor de Bitcoin, Gregory Maxwell, em 2013. Em seu artigo, ele fornece uma breve vis√£o de como essas transa√ß√Ķes s√£o estruturadas e de como √© poss√≠vel obter um alto grau de privacidade sem qualquer altera√ß√£o no protocolo.
Essencialmente, uma CoinJoin envolve a combina√ß√£o de inputs (entradas) de m√ļltiplos usu√°rios em uma √ļnica transa√ß√£o. Antes de explicarmos como (e por qu√™), vamos dar uma olhada na estrutura de uma transa√ß√£o b√°sica.

As transa√ß√Ķes de Bitcoin s√£o compostas de inputs (entradas) e outputs (sa√≠das). Quando um usu√°rio deseja fazer uma transa√ß√£o, ele usa seus UTXOs como inputs, especifica os outputs e ent√£o assina os inputs. √Č importante observar que cada input √© assinado de forma independente, e os usu√°rios podem definir m√ļltiplos outputs (direcionados a diferentes endere√ßos).



Se observamos uma determinada transa√ß√£o composta de quatro inputs (0,2 BTC cada) e dois outputs (0,7 BTC e 0,09 BTC), podemos fazer diferentes suposi√ß√Ķes. A primeira √© que a transa√ß√£o representa um pagamento ‚Äď o remetente est√° enviando um dos outputs para algu√©m e retornando um valor de troco para ele mesmo. Como foram usados quatro inputs, o maior output √© provavelmente para o destinat√°rio. Podemos ver que estamos perdendo 0,01 BTC dos outputs, que √© a taxa dada ao minerador.

Também é possível que o remetente queira criar um UTXO grande a partir de outros menores, então ele consolida inputs menores para obter o resultado desejado de 0,7 BTC.

Outra suposição que podemos fazer é baseada no fato de que cada input é assinado de forma independente. Essa transação pode ter até quatro partes diferentes assinando os inputs. Esse é o princípio que torna o CoinJoining eficaz.


Como funciona uma CoinJoin?

A ideia é que várias partes se coordenam para criar uma transação, cada uma fornecendo os inputs e outputs desejados. Como todos os inputs são combinados, torna-se impossível dizer com certeza qual output pertence a cada usuário. Veja o diagrama abaixo:



Aqui, temos quatro participantes que desejam remover o v√≠nculo entre as transa√ß√Ķes. Eles se coordenam entre si (ou s√£o coordenados por um servi√ßo especializado) para anunciar os inputs e outputs que gostariam de incluir.¬†

O coordenador transforma todas as informa√ß√Ķes em uma transa√ß√£o e faz com que cada participante assine, antes de transmiti-la para a rede. Ap√≥s a assinatura dos usu√°rios, a transa√ß√£o n√£o pode ser modificada. Se houver alguma modifica√ß√£o, ela se tornar√° inv√°lida. Portanto, o coordenador n√£o corre o risco de perder os fundos.¬†

A transa√ß√£o funciona como uma esp√©cie de caixa preta que mistura as moedas. Lembre-se, os UTXOs s√£o destru√≠dos, efetivamente, para a cria√ß√£o de novos. O √ļnico v√≠nculo entre os UTXOs antigos e novos √© a pr√≥pria transa√ß√£o, mas, √© claro, n√£o √© poss√≠vel distinguir os participantes do processo. Na melhor das hip√≥teses, √© poss√≠vel afirmar que um participante forneceu um dos inputs e √©, talvez, o novo propriet√°rio de um output resultante.

No entanto, isso n√£o √© de forma alguma, uma certeza. Quem poderia afirmar, observando a transa√ß√£o acima, que s√£o quatro participantes? Ou uma √ļnica pessoa est√° enviando seus fundos para quatro de seus pr√≥prios endere√ßos? Seriam duas pessoas fazendo duas compras separadas e devolvendo 0,2 BTC para cada um de seus endere√ßos? Poderiam ser quatro pessoas transferindo para novos participantes ou retornando a transa√ß√£o para elas mesmas. N√£o √© poss√≠vel afirmar com certeza.


Privacidade via negação plausível

O simples fato de existirem implementa√ß√Ķes de CoinJoin gera d√ļvidas sobre os m√©todos usados para a an√°lise de transa√ß√Ķes. Podemos deduzir que ocorreu uma CoinJoin em diversos casos, mas n√£o √© poss√≠vel saber quem √© o real propriet√°rio das transa√ß√Ķes de outputs. √Ä medida que a popularidade da CoinJoin aumenta, a suposi√ß√£o de que todos os inputs pertencem ao mesmo usu√°rio se enfraquece,¬†‚Äď isso representa um grande avan√ßo em termos de privacidade no ecossistema, de modo geral.

No exemplo anterior, dizemos que a transa√ß√£o teve um anonimato de grau 4 ‚Äď o propriet√°rio de um output pode ser qualquer um dos quatro participantes envolvidos. Quanto maior o grau de anonimato, menor a probabilidade de que as transa√ß√Ķes possam ser associadas ao propriet√°rio original. Felizmente, implementa√ß√Ķes recentes da CoinJoin tornam trivial para os usu√°rios misturar seus inputs (sem necessidade de confian√ßa) com dezenas de outros. Isso fornece um alto grau de nega√ß√£o plaus√≠vel. Recentemente, uma transa√ß√£o de 100 pessoas foi executada com sucesso.


Considera√ß√Ķes finais

As ferramentas de coin mixing s√£o um acr√©scimo importante ao arsenal de qualquer usu√°rio que se preocupa com a sua privacidade. Ao contr√°rio das propostas de atualiza√ß√Ķes de privacidade (como as Transa√ß√Ķes Confidenciais), elas s√£o compat√≠veis com o protocolo atual.¬†

Para quem confia na integridade e metodologia de terceiros, o serviço de mixing é uma solução fácil. Para aqueles que preferem uma alternativa verificável e não custodial, as alternativas de CoinJoin são mais indicadas. Isso pode ser feito manualmente por usuários com experiência técnica ou através de ferramentas de software que se encarregam dos mecanismos mais complexos. Já existem diversas ferramentas disponíveis, que continuam ganhando popularidade, já que os usuários se preocupam cada vez mais com a privacidade.