Autor: Thibaud Maréchal | Data Original: 07/12/22 | Traduzido por: Cyber Hornet | Bitcoin Magazine
"Dividir e conquistar" é uma estratégia militar testada para fraturar um grupo de pessoas, fazendo-as discordar e lutar umas contra as outras em vez de se unirem contra um inimigo comum. Wasabi e Samourai, duas carteiras populares de bitcoin com diferentes implementações de CoinJoin têm vindo a lutar há muitos anos. JoinMarket, uma terceira implementação de CoinJoin, também tem estado envolvida em debates coloridos com outros criadores de privacidade.
Aprender sobre a privacidade do bitcoin e o CoinJoins tornou-se bastante difícil com o drama contínuo. Em quem confiar? Como se pode verificar por si próprio? Tudo isto é muito pouco claro. O que é que isso traz para os pré-coiners, bitcoiners casuais e puristas? Confusão, medo, incerteza e dúvida (FUD). O estado de privacidade do bitcoin é embaraçoso com todo este drama perpétuo que afugenta os novos utilizadores. O tempo precioso é desperdiçado por criadores, educadores e utilizadores regulares que provavelmente estariam melhor se não tentassem acompanhar o drama.
É óbvio que ninguém concorda sobre "como fazer bem o CoinJoins", quanto mais sobre como o CoinJoins deve ser implementado para optimizar a privacidade dos utilizadores e bloquear a eficiência do espaço na rede Bitcoin? Quais são as soluções de compromisso entre as diferentes implementações? Algumas implementações são completamente defeituosas? Como é que o CoinJoins "atravessa o abismo" desde os primeiros utilizadores até aos utilizadores habituais, quando milhares de milhões de pessoas irão recorrer ao Bitcoin nos próximos anos?
Vamos agora analisar o CoinJoins fazendo perguntas fundamentais e levantando alguns pressupostos para construir algum tipo de modelos mentais, que serão úteis na avaliação de diferentes implementações em artigos futuros.
NEM TODAS AS UNIÕES DE MOEDAS SÃO FEITAS IGUAIS
A eficiência do espaço em bloco deve ser considerada para garantir a escala de transacções CoinJoin à medida que a Bitcoin for sendo utilizada por mais pessoas em todo o mundo. Isto raramente é discutido como uma prioridade máxima. Qualquer desenho de CoinJoin que ignore a escassez do espaço de blocos é desnecessariamente spam na cadeia de blocos enquanto acumula dívidas técnicas, o que será difícil de pagar como mais utilizadores CoinJoin no futuro. Ter uma pegada mínima na cadeia de blocos é um objectivo que parece muito razoável de visar: um pequeno número de transacções para se chegar a um nível aceitável de anonimato parece ideal.
- O que é um nível aceitável de anonimato?
- O que significa o anonimato, mesmo no contexto da privacidade do bitcoin?
- Como é que os desenhos particulares da CoinJoin lidam com a escassez de espaço em bloco?
RECUPERE A SUA PRIVACIDADE
O anonimato em bitcoin significaria que não existem características extraordinárias ou invulgares que tornariam uma dada transacção notável de outras transacções no livro razão. Isto, claro, não é por defeito, na rede Bitcoin, que é um sistema pseudónimo onde as moedas (UTXOs, que significa, em termos técnicos, "Unspent Transaction Output") não são fungíveis devido ao facto de terem histórias de transacções únicas.
CoinJoins adicionam um nível de anonimato à rede de bitcoin, quebrando ligações entre entradas e saídas de transacções, tornando os UTXOs resultantes indistinguíveis uns dos outros. Existem outras heurísticas que as empresas de análise de cadeia utilizam para observar a rede de bitcoin, tais como a propriedade comum de entradas, auto-utilização, quantidades redondas ou análise temporal para citar algumas, que podem ou não ser obscurecidas pelas CoinJoins.
As CoinJoins ajudam os bitcoiners a recuperar a sua privacidade, mas não são a solução para tudo. Se a privacidade for entendida como a escolha de partilhar informação sobre si próprio, uma grande privacidade pode ser alcançada através de CoinJoins, mas é essencial escolher a implementação correcta.
- Qual é o meu objectivo de privacidade utilizando CoinJoins?
- De que heurística é que uma implementação CoinJoins me protege?
- Quais são os riscos que eu quero evitar?
NÚMERO DE PARTICIPANTES
As implementações CoinJoin existentes têm formas muito diferentes de melhorar a privacidade. Independentemente de cada desenho de implementação CoinJoin, o conjunto de anonimato (uma medida para o nível de anonimato) parece ser a forma mais tradicional de avaliar quanta privacidade se obtém de um CoinJoin. Há outras formas que serão discutidas em outros artigos. Os pressupostos são que ou se consegue um conjunto elevado de anonimato com uma grande transacção de CoinJoin ou que se consegue através de múltiplas transacções de CoinJoin mais pequenas. Estes dois parâmetros são ambos importantes, mas haverá um que seja mais importante do que o outro?
Em termos de eficiência de espaço em bloco, a suposição seria que alcançar um grande conjunto de anonimato com uma única transacção muito grande que tenha muitos participantes é melhor do que múltiplas transacções muito pequenas com poucos participantes.
- Uma única CoinJoin grande ou múltiplas CoinJoins pequenas é melhor para a privacidade?
- Como é que isso pode ser verificado de forma verdadeira e rigorosa? Quão pequeno é demasiado pequeno para um CoinJoin?
- Qual é a métrica certa para avaliar quanta privacidade se pode obter de um CoinJoin?
- Qual é o espaço de bloco mais eficiente quando se trata do tamanho e número de CoinJoins para recuperar a sua privacidade?
- É realista esperar que as moedas participem em múltiplos CoinJoins ao longo do tempo, à medida que mais pessoas começam a utilizar o CoinJoins? Quantas rodadas CoinJoins são suficientes ou demasiadas?
Em termos simples, os CoinJoins permitem aos bitcoiners recuperar a sua privacidade, dando-lhes uma negação plausível de privacidade. A plausibilidade é uma medida de probabilidade. Quão provável é que as suas moedas de bits tenham sido gastas ou simplesmente movidas para outro endereço que ainda controle? Qual é a probabilidade de uma entrada estar ligada a uma determinada saída?
Obviamente, quanto menores forem as probabilidades através de muitas opções, melhor é a negação plausível que obtém como hodler. A negação plausível é difícil de preservar porque os erros são fáceis de fazer. Mudar os resultados são frequentemente problemáticos para os bitcoiners que se preocupam com a privacidade e são frequentemente uma fonte de discussões e críticas controversas. Porque é que a mudança de resultados é um tema tão controverso no CoinJoins?
MUDANÇA DE SAÍDA
É tudo sobre ligações determinísticas. Se as transacções de bitcoin tivessem um espectro de privacidade, num extremo seria uma transacção com absoluta negação plausível, o que significa 0% de hipóteses de conhecer a ligação entre entradas e saídas. Isto também é referido como aleatoriedade ou entropia num CoinJoin. A suposição é que quanto mais aleatória ou superior for a entropia, melhor. Por outro lado, seria uma transacção com ligações 100% determinísticas entre a sua única entrada e a sua única saída.
Unintuitivamente, uma alta entropia não significa necessariamente que uma transacção proporcione uma boa privacidade. Uma transacção com três entradas e três saídas de quantidades iguais tecnicamente tem 100% de entropia, o que significa que não há forma de distinguir cada saída entre si; e ainda assim, há uma probabilidade de 33,33% de que cada entrada esteja ligada a uma determinada saída. Alta entropia não significa necessariamente uma boa negação plausível.
A mudança tem quase sempre uma ligação determinista muito elevada com a sua transacção anterior. Por outras palavras, há poucas dúvidas de que a saída de uma mudança não esteja ligada à transacção anterior que a gastou. Isso pode ser uma questão de privacidade considerável se uma determinada alteração produzida fosse co-despendida com outras entradas anónimas após a CoinJoins (embora possam aplicar-se excepções em certos casos). Isto é normalmente referido como consolidação UTXO e pode ser fatal para a sua privacidade se for feito de forma ingénua.
A alteração das saídas pode anular o anonimato das saídas que tenham ganho alguma negação plausível da CoinJoins se forem gastas em conjunto. Os erros são comuns para os bitcoiners e por vezes a realização chega demasiado tarde, desfazendo anos de diligentes melhorias de privacidade num único gasto. Como eliminar este problema de saída de mudança?
As implementações CoinJoin existentes têm três formas de lidar com os resultados da mudança: isolar a mudança para outra carteira que não seja CoinJoining, incluir a saída da mudança na mesma carteira que é CoinJoining ou livrar-se da saída da mudança por não ter quaisquer resultados da mudança. Esta última parece ser a mais aconselhável em termos de privacidade e eficiência de espaço em bloco, mas é necessário investigar mais para validar ou rejeitar esta suposição.
- Será uma alta pontuação de entropia suficiente para qualificar uma CoinJoining como boa para a sua privacidade?
- É melhor isolar as saídas de mudança noutra carteira ou deve ser totalmente removida?
- Uma saída de mudança é sempre má para a sua privacidade?
DENOMINAÇÕES DE MOEDAS
A eliminação de saídas de trocos em CoinJoins requer que as denominações das moedas sejam variáveis num CoinJoin. Por outras palavras, as entradas registadas numa dada CoinJoin não podem ter um tamanho fixo como 0,1 BTC, caso contrário torna-se impossível (ou pelo menos muito difícil) consumir entradas sem criar saídas de trocos, uma vez que a maioria dos UTXOs não têm números redondos (ou seja, 0,19572394 BTC onde 0,09572394 BTC seria a alteração numa CoinJoin de 0,1 BTC de denominação fixa de moeda).
A mudança de resultados pode ser perigosa para a sua privacidade, lembra-se? Ter vários tamanhos para entradas e saídas num CoinJoin parece ser uma má ideia, pois aproxima-nos mais das ligações determinísticas entre entradas e saídas, certo? Bem, sim e não. Depende. Se uma CoinJoin tem um pequeno número de participantes (o que significa poucas entradas e poucas saídas), então as diferentes denominações são uma má ideia. Mas e se um grande número de entradas e saídas estiver incluído num determinado CoinJoin?
Numa grande CoinJoin, múltiplas denominações podem trazer um elevado nível de negação plausível a cada saída resultante sem criar saídas de alteração e exigindo transacções adicionais, o que é uma utilização altamente eficiente do espaço de blocos. Parece que muitas caixas poderiam ser assinaladas neste ponto.
- Será melhor ter moedas de denominação fixa ou variável numa CoinJoin?
- Qual deve ser o tamanho de uma CoinJoin para que as denominações variáveis façam sentido?
- As denominações variáveis de moedas são a melhor maneira de se livrar da saída de trocos nas CoinJoins?
Escusado será dizer que a interconectividade das rodadas CoinJoin não deve ser tolerável em quaisquer circunstâncias, independentemente de as denominações das moedas serem diferentes ou se a CoinJoin é uma transacção grande ou pequena, certo? Bem, aqui mais uma vez, há uma importante nuance a entender.
INTERCONECTIVIDADE DAS RONDAS DE MOEDAS
Afirma-se que o registo de entradas de CoinJoins do passado partilhadas em novas CoinJoins é desaconselhável em todos os casos. Os participantes de CoinJoins passadas mutuamente partilhadas não parecem beneficiar da mistura em outras CoinJoins. Parece prejudicial à privacidade, e é frequentemente criticada.
E se um CoinJoin for grande e alguns inputs registados vierem de múltiplos outros CoinJoins, sendo cada um deles também a jusante de múltiplos outros CoinJoins? Neste caso, os participantes remixando juntos ainda estão a melhorar a sua privacidade, apesar de terem vindo de uma CoinJoin passada partilhada. Se cada CoinJoin for suficientemente grande, os participantes não são obrigados a remixar várias vezes, embora possam fazê-lo se quiserem aumentar ainda mais os seus conjuntos de anonimato.
Se muitas CoinJoins grandes entrelaçadas estiverem envolvidas, o conjunto de anonimato resultante deverá proporcionar muita negação plausível, apesar de partilhar CoinJoins passadas como origem de fundos.
- Será o CoinJoin, que é partilhar CoinJoins do passado mútuo, uma coisa má por si só?
- Qual deve ser o tamanho de uma CoinJoin para remixar com outros inputs do passado para ser considerada segura?
NÓ PESSOAL COMPLETO
Deve gerir o seu próprio nó de bitcoin full quando participa no CoinJoins? Na superfície, parece ser uma grande ideia, e normalmente é. Algumas implementações de CoinJoins permitem isso, enquanto outras requerem-no directamente. Outras não lhe permitem sequer utilizar o seu próprio nó completo. Isso é condenar absolutamente? Se leu até agora, deve saber que a resposta é matizada e abre uma profunda toca de coelho para ser explorada mais tarde.
A exploração do seu próprio nó completo vem com compensações de usabilidade, e pode não acrescentar muita protecção de privacidade se nem todos os utilizadores o fizerem. Correr o seu próprio nó pode até dar-lhe uma falsa sensação de segurança e privacidade se poucos participantes do CoinJoin o fizerem, o que pode ser profundamente prejudicial. Se o Tor for utilizado como uma forma anónima de CoinJoin (e deixá-lo-emos como tal por agora), então a utilização de um nó completo de confiança para transmitir a transacção de CoinJoin pode ser o padrão. Muitas nuances, e claro, não se confia, verifica-se.
Há algumas perguntas essenciais a fazer para não cair na armadilha da sinalização da virtude da privacidade.
- A implementação do CoinJoin permite a execução de nós completos, exige-os por defeito ou não os permite?
- Se os nós completos pessoais não são obrigatórios, quais são os escudos de privacidade existentes? ou seja, Tor, filtros de bloco, etc...
- Se eu correr o meu próprio nó completo, mas esperar que a maioria dos utilizadores utilize um nó de confiança padrão para o CoinJoin, como é que isso afecta a minha privacidade? O coordenador pode desanonimizar-me?
Com preocupações de privacidade, é sempre importante compreender o que se está a tentar proteger, e contra quem. Correr um nó completo e utilizá-lo com a sua própria carteira é a forma correcta de utilizar o bitcoin, pois permite-lhe verificar o equilíbrio da sua carteira e transmitir transacções para a rede sem confiar em ninguém. Mas quando se trata de CoinJoins, há normalmente um coordenador responsável. O que é que o coordenador faz e como é seleccionado? Continue a ler.
O COORDENADOR
O coordenador CoinJoin está encarregado de fazer com que cada participante registe as suas entradas e saídas, e assine a transacção de colaboração antes de a transmitir. A maior parte das implementações CoinJoin são feitas por defeito num coordenador central, o que constitui um único ponto de falha. Até agora, esta tem sido uma troca aceite na maioria das comunidades de bitcoin. Pode um coordenador central do CoinJoin falhar? Absolutamente. Outras implementações permitem que qualquer pessoa seja um coordenador para cada CoinJoin diferente, embora haja aqui outros conjuntos de trocas que serão discutidos mais tarde.
Sendo as CoinJoin não custódio, não poderá ocorrer qualquer perda de fundos se qualquer coordenador falhar. O coordenador nunca deveria saber mais do que o que todos sabem publicamente na rede Bitcoin. Porquê? Se um coordenador souber mais do que o que está publicamente disponível, um coordenador CoinJoin torna-se um honeypot com dados altamente sensíveis que podem ser explorados contra os bitcoiners que confiam no serviço.
Nunca se deve confiar num coordenador de CoinJoin. Se um coordenador CoinJoin não pode ser mau, bom. Se pode ser mau, será eventualmente, por erros, omissões, coerção ou desonestidade.
Um exemplo de dados sensíveis do utilizador seriam os XPUBs, que inegavelmente divulgam toda a informação sobre uma carteira, os seus endereços, incluindo transacções passadas, actuais e futuras de bitcoin. Outro exemplo seria a relação entre os utilizadores que executam os seus próprios nós completos e os utilizadores que confiam no nó completo do coordenador para transmitir CoinJoins, uma vez que poderia desanonimizar os utilizadores que executam os seus próprios nós, e portanto conhecer deterministicamente as ligações entre as suas entradas e saídas. Este é mais um tópico matizado, que exigiria mais investigação e discussão.
- O coordenador sabe mais do que aquilo que está disponível publicamente na rede bitcoin?
- Os utilizadores libertam dados sensíveis para o coordenador, tais como o seu XPUB ou se executam ou não os seus próprios nós completos?
- O coordenador alega que os utilizadores devem confiar neles utilizando mecanismos de defesa legal? (i.e. canários de garantia, arbitragem regulamentar, etc...)
PREÇOS
Resumindo, quem paga o quê no CoinJoins? Estas transacções de bitcoin podem ser caras e por vezes as estruturas de taxas não são claras para os bitcoiners. É difícil saber quanto lhe custará uma boa privacidade ou mesmo se está a obter alguma privacidade com ela. Algumas implementações CoinJoin permitem que um único input compre a sua privacidade a outros inputs que só participam gratuitamente para aumentar o seu próprio conjunto de anonimato. Como ser pago ao CoinJoin? Com paciência, sim.
Alguns modelos dependem de taxas partilhadas onde apenas alguns UTXOs pagam taxas enquanto outros não o fazem. Outros modelos dependem de convidar um número crescente de novos inputs claros (ainda não misturados) para financiar os CoinJoins existentes para remixar inputs que não têm níveis de anonimato suficientemente elevados. Alguns modelos parecem insustentáveis a longo prazo, enquanto outros são ingénuos, ou demasiado caros para a maioria dos utilizadores.
E de que taxas estamos a falar? Bem, normalmente, os inputs que participam no CoinJoins pagam tanto uma taxa de coordenador ou de taker fee, (a taxa de serviço para obter algum nível de anonimato) como as taxas de rede de bitcoin. Em particular os modelos CoinJoins, estas taxas são dispensadas em determinadas circunstâncias. A economia de CoinJoins é uma toca de coelho profunda que requer uma investigação mais profunda para uma compreensão muito mais profunda.
- Quem paga o quê num CoinJoin? O que são todas as taxas?
- Quais são os incentivos do coordenador do CoinJoin?
- Todas as rondas CoinJoin são pagas ou existe algum remix gratuito?
Tendo lido até agora, a esperança é que os bitcoiners que fazem compras para CoinJoins não tenham necessariamente todas as respostas, mas as perguntas certas a fazer. Um modelo mental ou enquadramento para avaliar diferentes implementações de CoinJoin pode ser bastante útil para qualquer pessoa que esteja a considerar utilizar o CoinJoins para recuperar a sua privacidade em relação ao bitcoin. A classificação através do ruído das redes sociais requer honestidade intelectual e o sistema de avaliação correcto rigorosamente aplicado.
Related Posts
La privacy digitale nell'era Bitcoin
Nov 08, 2023
SICUREZZA ed USO delle PASSWORD:Abitudini di navigazione in tutto il mondo
Aug 17, 2023
Le paradoxe de la vie privée du Nostr
Mar 29, 2023