Quando ouvem a palavra “CoinJoin”, as primeiras coisas que vêm à cabeça de muitos Bitcoiners relativamente novos são provavelmente as Link Zero implementações Wasabi Wallet e Samourai Wallet. Nos últimos anos, esses dois projetos tornaram a privacidade do Bitcoin quase mainstream, tornando-a muito mais simples e acessível.
Se você é novo no espaço, talvez não esteja ciente do fato de que o projeto Junte-se ao Mercado fornece ferramentas CoinJoin para usuários de Bitcoin desde 2015.
Transações colaborativas interromper suposições comuns de propriedade foi uma ideia postulada pelo desenvolvedor do Bitcoin, Greg Maxwell, em janeiro de 2013, e mais tarde formalizada no conceito de CoinJoin em agosto daquele ano.
A ideia ficou parada por dois anos antes de algo ser lançado para implementá-la, e havia uma razão para isso: um problema com a ideia geral que levou a falhas em tentativas anteriores, como Dark Wallet por Amir Taaki, foi o de atrair liquidez. CoinJoin pode ser uma ferramenta muito útil, mas se não houver ninguém disposto a fazer CoinJoin com você ou se não houver maneira de encontrá-los, se estiverem dispostos, não adianta muito.
O problema era como convencer as pessoas a aderirem a esse pool inicial para ajudar a transformá-lo em um pool maior de liquidez e usuários. A solução da JoinMarket era bastante simples, mas brilhante na época: fornecer um mecanismo de mercado para que provedores de liquidez consistentes pudessem realmente ganhar dinheiro fornecendo liquidez aos pools CoinJoin.
O JoinMarket funciona em torno do que é efetivamente um mercado orientado por carteira de pedidos, composto tanto por formadores de mercado quanto por tomadores de mercado que compram e vendem liquidez CoinJoin para anonimizar suas atividades na cadeia.
Os fabricantes podem esperar o tempo que for necessário com ofertas abertas até que os compradores cheguem querendo pagar por seus serviços. Ele resolve o problema do usuário de ficar sentado esperando para sempre por alguém com quem se misturar. Os criadores de mercado, que procuram obter lucros, são incentivados pelas taxas que cobram a simplesmente estarem sempre online à espera dos compradores; e os tomadores, em busca de privacidade, são incentivados a pagar essas taxas. É um acordo ganha-ganha para todos.
Em sua arquitetura, bem como em seu potencial para atualizações de coordenação, o JoinMarket oferece uma versão potencialmente mais descentralizada de mistura de moedas em comparação com o mais conhecido ZeroLink. Veja como.
Como a mixagem é coordenada: ZeroLink vs. Junte-se ao Mercado
A arquitetura geral do ZeroLink, em comparação com o JoinMarket, é muito diferente.
No caso de Wasabi e Samourai, existe um único servidor coordenador operado pelo fabricante da carteira codificado na carteira. Todos os usuários participam do CoinJoin entrando em contato com este servidor central e “registrando-se” para aguardar até que usuários suficientes se registrem para construir o CoinJoin. Depois que o número necessário de usuários estiver presente e registrado, o servidor coordenador assina uma credencial cega representando o direito de criar uma saída na transação CoinJoin, e o usuário se desconecta e reconecta por meio de uma nova conexão Tor para registrar suas saídas de transação.
Isto impede que o coordenador aprenda quais entradas são mapeadas para quais saídas. Os usuários pagam uma taxa ao coordenador por seu papel na facilitação do CoinJoin. Neste modelo, não há incentivo para fornecer liquidez, exceto para ganhos de privacidade, e apesar dos problemas com tentativas anteriores como Dark Wallet, isto parece funcionar muito bem para Wasabi e Samourai.
O JoinMarket, por outro lado, possui uma carteira de pedidos na qual os fabricantes anunciam, permitindo que os compradores escolham entre as ofertas disponíveis dos fabricantes (isso atualmente é feito pelo Internet Relay Chat [IRC]).
Os fabricantes se conectarão à carteira de pedidos com um ID exclusivo e, em seguida, publicarão uma oferta na carteira de pedidos contendo as seguintes informações: a taxa que o fabricante está cobrando pela mistura com os compradores, o valor que o fabricante contribuirá para as taxas de mineração e, em seguida, o mínimo e valor de denominação máximo em que produzirão resultados denominados mistos. Eles também publicam uma maneira para as pessoas se conectarem diretamente a eles de forma privada.
Quando os compradores desejam usar o CoinJoin, eles baixam a carteira de pedidos e seu cliente seleciona os fabricantes com os quais se misturar com base em suas configurações. Após o cliente selecionar um maker, o taker postará uma chave pública temporária para criptografia e começará a se comunicar com o maker através de mensagens criptografadas via IRC (vale a pena notar que é possível que vários takers estejam conectados a um único maker ao mesmo tempo). tempo). Se todas as partes concordarem, elas assinam a transação, incluindo a taxa do tomador ao fabricante, e a submetem à rede.
Devido à forma como essa coordenação funciona, os fabricantes aprendem os resultados dos tomadores no processo de coordenação da construção do CoinJoin. Para mitigar isso, o JoinMarket possui um recurso de “tumble”, onde o cliente do taker irá mixar diversas vezes com diferentes makers até atingir o número de mixagens definido. Isto garante que nenhum fabricante será capaz de desenrolar todo o histórico de mix de um único comprador, porque cada fabricante ao longo da “rota de queda” apenas aprende as conexões naquela transação.
Essas diferenças têm muitas implicações gerais em termos de arquitetura de design para o JoinMarket, pois veremos o estado atual do projeto, bem como os planos futuros.
Como os ataques Sybil são mitigados: ZeroLink vs. Junte-se ao Mercado
Os ataques Sybil – neste contexto, um único usuário fingindo ser muitos usuários para minar a privacidade, criando uma falsa “multidão” para outros se esconderem enquanto na verdade constituem toda a “multidão” – são um problema fundamental de qualquer protocolo de mistura no Bitcoin . Se toda a multidão for composta por você e pelo atacante Sybil, e mais ninguém, o atacante conhece todas as suas moedas e você não ganhou privacidade do ponto de vista deles. No final das contas, não existe uma solução fundamental para esse problema, tudo o que você pode fazer para mitigá-lo é aumentar o custo para realizar o ataque.
No caso do ZeroLink, o problema é mitigado pela cobrança de taxas pelo coordenador. Contanto que o custo das taxas de mineração seja superior à receita de taxas que o servidor coordenador coleta em taxas, até mesmo o coordenador incorreria em uma perda líquida ao tentar atacar Sybil seus próprios usuários.
Para o JoinMarket, a questão é um pouco mais complicada. Você tem que proteger os tomadores, no caso deles, dos criadores Sybil atacando a carteira de pedidos para que um tomador apenas se misture com eles e revele todo o seu histórico de mixagem ao criador mal-intencionado. Mas você também precisa proteger os tomadores de ataques aos fabricantes, solicitando CoinJoins e saindo do protocolo depois que o fabricante revela seus resultados ao tomador.
Isso permite que o tomador mal-intencionado separe as contribuições desse fabricante em transações futuras dos tomadores com quem ele se mistura. Repetir isso várias vezes seguidas contra o mesmo fabricante permitiria que eles desanonimizassem os compradores que se misturaram com eles.
Existem dois mecanismos neste sistema para oferecer defesa apropriada para cada classe de ataque: O primeiro, para lidar com os tomadores que espionam os fabricantes, é uma prova de equivalência logarítmica discreta (defesa número dois em este artigo, também conhecido como PoDLE).
A ideia básica é que, para um par de chaves privada/pública para um Bitcoin UTXO, você possa gerar uma segunda chave pública diferente correspondente à chave privada e criar uma prova de conhecimento zero (ZKP) mostrando que ambos compartilham a mesma chave privada. Depois de fornecer a segunda chave e a prova ao criador, o tomador revela a(s) primeira(s) chave(s) pública(s) correspondente(s) à(s) saída(s) que deseja misturar.
Agora, esta configuração permite que um criador publique a segunda chave pública e o ZKP para todos os outros criadores sem doxxar os resultados reais do tomador - dessa forma, se um tomador que está coordenando com o criador original tentar reutilizar essa saída para espionar vários fabricantes em ao mesmo tempo, todos os outros fabricantes verão que a primeira chave pública do tomador corresponde à segunda chave publicada e ao ZKP. Eles então se recusarão a revelar seus próprios resultados ao tomador mal-intencionado. Isto aumenta o custo da espionagem dos tomadores sobre os resultados dos fabricantes, exigindo que um tomador tenha resultados únicos para cada fabricante que espiona, em vez de poder reutilizar os mesmos resultados para atacar vários fabricantes.
O segundo mecanismo de defesa é proteger os tomadores de fabricantes mal-intencionados que fingem ser muitos fabricantes diferentes na carteira de pedidos, permitindo assim que o criador mal-intencionado desvende a mistura de tomadores que acabam apenas se misturando com o invasor.
Este mecanismo é denominado vínculo de fidelidade, que basicamente consiste em pegar uma grande quantidade de bitcoin e bloqueá-lo por um tempo. Os fabricantes que fizerem isso poderão então assinar e publicar mensagens com essa chave para provar o controle sobre as moedas bloqueadas por tempo. Os clientes dos tomadores, se tiverem configurado seu cliente para usar títulos de fidelidade, irão então ponderar sua seleção de fabricantes a serem usados para preferir aqueles que tenham maiores valores de tempo bloqueados em títulos de fidelidade. Os títulos de fidelidade são ponderados pelo quadrado de quantas moedas estão bloqueadas, ou seja,. se você bloquear quatro bitcoins, o peso será 16; cinco serão ponderados como 25; seis serão ponderados como 36, etc.
A justificativa aqui é que você obtém benefícios compostos como fabricante quanto mais moedas você bloqueia (você é escolhido pelos clientes tomadores com mais frequência), portanto, se alguns fabricantes honestos criarem títulos de fidelidade muito grandes, eles aumentarão drasticamente o custo para os fabricantes de Sybiling que teriam que replicar aquele grande valor do título de fidelidade para cada uma de suas identidades falsas na carteira de pedidos. Ou seja, se três fabricantes honestos colocassem cada um 10 bitcoins em títulos de fidelidade, um invasor teria que gastar 30 bitcoins para ter 50% de chance de ser escolhido para se misturar, custaria 60 bitcoins para ter 66% de chance de se misturar. sendo escolhido, etc.
Quanto mais fabricantes honestos usarem títulos de fidelidade, maior será o custo dos compostos de ataque Sybil para fabricantes maliciosos.
Como o mecanismo de coordenação do JoinMarket poderia ser atualizado
No caso do ZeroLink, todos coordenam através do servidor coordenador centralizado – esta é uma parte explícita do design do sistema e do modelo de confiança em termos de confiabilidade. Se o coordenador cair, ninguém poderá usar o CoinJoin até que ele volte a funcionar.
O JoinMarket funciona em um sistema de carteira de pedidos para tentar evitar esse ponto central de falha, mas como mencionado acima, atualmente está usando o IRC como camada de hospedagem e comunicação para a carteira de pedidos. O IRC é um potencial ponto central de falha para o JoinMarket, assim como o servidor coordenador é para o ZeroLink. Sendo um projeto construído em torno da coordenação de CoinJoins de forma descentralizada, no longo prazo esta dependência do IRC precisa ser substituída por algo mais robusto.
Uma das propostas mais desenvolvidas é implementar algum tipo de esquema do servidor de diretório semelhante ao que o Projeto Tor usa. Na rede Tor, os clientes se conectam a um conjunto de servidores executados por contribuidores do Tor que lhes enviam todos os nós da rede Tor pelos quais eles podem construir rotas cebola.
A ideia do JoinMarket seria ter um conjunto semelhante de servidores que alimentassem os clientes de todos os fabricantes com ofertas abertas. Esses servidores teriam que ser administrados por alguém que não os fabricantes, porque cada fabricante teria um incentivo para apenas se anunciar em seu próprio servidor de diretório para cobrar mais taxas. Também teria que ser difícil ingressar no conjunto de servidores de diretório, caso contrário, entidades maliciosas poderiam criar um grande número deles e Sybil atacar todos os usuários que se conectassem apenas a servidores maliciosos.
Os títulos de fidelidade poderiam potencialmente resolver o problema da Sybil aqui, bem como criar um desincentivo para os fabricantes tentarem executar servidores de diretório. Bloquear moedas em um título de fidelidade para um servidor de diretório deixaria menos moedas para bloquear em um título de fabricante, potencialmente levando a menos clientes compradores selecionando-as para mixagens.
Há também uma prova de conceito e proposta de Adam Gibson para integrar o c-lightning ao JoinMarket para uso como uma camada de mensagens. No contexto dos servidores de diretório, isso poderia facilitar um método de monetização para eles como entidades separadas que usam a Lightning Network. Os servidores de diretório poderiam cobrar pequenas quantias dos fabricantes pelo Lightning para se anunciarem no diretório.
Como o protocolo de coordenação do JoinMarket poderia ser atualizado
Conforme discutido acima, os fabricantes aprendem os resultados dos tomadores durante CoinJoins únicos, é por isso que existe o modo tumbler, para permitir que os tomadores misturem vários fabricantes e mitiguem isso.
Existe, no entanto, uma solução melhor, pelo menos no caso em que vários tomadores estão conversando com um único tomador ao mesmo tempo, e eles podem coordenar a conversa diretamente entre si, em vez de apenas através do tomador (se houver apenas um tomador conversar com um fabricante, isso não ajudará porque o fabricante sabe que todos os resultados que não são deles pertencem ao tomador). Embaralhamento de Moedas é um protocolo para fazer efetivamente o que as credenciais cegas realizam no ZeroLink, para manter as coisas privadas do coordenador, exceto de forma descentralizada para um grupo sem um coordenador central.
Imagine que você tem Alice, Bob e Charlie, que desejam CoinJoin entre si (eles já definiram a denominação para as saídas CoinJoin), e todos os três geram uma chave pública temporária para a qual as mensagens são criptografadas.
Charlie dá sua chave pública para Bob, então Bob dá a Alice sua própria chave pública, bem como a de Charlie. Portanto, temos uma situação em que Alice possui as chaves públicas de Bob e Charlie, Bob possui a chave pública de Charlie e Charlie possui apenas a sua.
Alice pega o endereço para o qual deseja que sua saída seja enviada e o criptografa na chave de Charlie, mas depois pega a mensagem criptografada e a criptografa na chave pública de Bob, aninhando-a como bonecas russas. Ela então passa isso para Bob, que descriptografa sua camada apenas para encontrar uma mensagem criptografada para Charlie que ele não consegue abrir. Bob então pega o endereço para o qual deseja que sua saída seja enviada e criptografa-o na chave de Charlie. Ele passa as duas mensagens para Charlie. Charlie agora descriptografa ambas as mensagens e encontra os endereços para os quais Alice e Bob desejam que suas saídas sejam enviadas, mas ele não sabe qual endereço pertence a quem (e lembre-se, nem Alice nem Bob aprenderam os endereços um do outro).
Charlie então constrói e assina o CoinJoin, passa-o para Alice e Bob assinarem e ele é enviado à rede. Todos neste processo sabem que sua saída foi construída corretamente, mas não sabem quem é o proprietário de qual dos outros dois endereços. Este processo pode ser estendido para grupos muito maiores, e se os tomadores pudessem se comunicar diretamente entre si antes de abordar os fabricantes, este protocolo poderia ser usado para proteger a privacidade dos tomadores contra os fabricantes individuais, sem ter que jogar moedas muitas vezes com diferentes partes.
Como a estrutura de transação do JoinMarket poderia ser atualizada
A maior semelhança entre ZeroLink e JoinMarket é a dependência de resultados denominados semelhantes para criar ambigüidade sobre quais entradas são mapeadas para quais saídas em uma transação.
Embora o JoinMarket use valores arbitrários em oposição aos valores predefinidos no ZeroLink, no escopo de uma única transação CoinJoin, todas as denominações do mix devem ser iguais.
CoinjoinXT é uma proposta da Gibson para potencialmente eliminar a necessidade de confiar nisso tão estritamente (isso também poderia ser implementado pelo ZeroLink). A idéia básica é aproveitar ECDSA Computação multipartidária, ou MuSig, agora que o Taproot está ativado, e crie uma cadeia de transações pré-assinadas usando endereços multisig que se parecem com endereços regulares de assinatura única.
Quando alguém está observando o blockchain, duas grandes suposições frequentemente feitas são: uma, que todas as entradas em uma transação pertencem a uma pessoa (a grande suposição de que os CoinJoins quebram); e dois, que um pagamento significa que o controle dos fundos foi transferido.
Então, e se várias partes colaborassem para bloquear todos os seus fundos em um endereço multisig que não se parece com um, e pré-assinar uma longa cadeia de transações que parece uma pessoa gastando dinheiro lentamente ao longo do tempo, mas na realidade é apenas retirar dinheiro e devolvê-lo aos proprietários originais em pequenos fragmentos?
E se algumas dessas saídas de pagamento fossem, na verdade, canais Lightning privados entre dois dos participantes do CoinjoinXT para garantir que um observador não pudesse rastrear a cadeia de pagamento e juntar os valores em algum momento no futuro?
Isso poderia abrir uma porta totalmente nova em termos de flexibilidade para os tipos de CoinJoins em que as pessoas participam e os graus de privacidade que eles criam. Se um CoinJoin normal estiver gritando descaradamente para a sala “Vou sair e desaparecer agora!” então o CoinjoinXT poderia ser o equivalente a sair silenciosamente da festa sem ser notado.
O futuro descentralizado
No geral, o JoinMarket tem sido honestamente uma ferramenta de nicho no ecossistema, apesar de existir desde 2015, dada a necessidade de executar um nó completo para usá-lo. Na verdade, só quando o ZeroLink chegou ao mercado na forma de Wasabi e Samourai é que o CoinJoin realmente se tornou uma ferramenta acessível, mais amplamente utilizada e compreendida.
Ambas são ferramentas muito valiosas, mas, no final das contas, são serviços construídos em torno de empresas centralizadas – embora sejam serviços sem confiança construídos de uma forma que é impossível perder dinheiro interagindo com eles – mas, mesmo assim, são serviços. O que acontece se as empresas fecharem? Será que o desenvolvimento continuará a avançar da mesma forma, dado que é actualmente financiado por estas empresas?
Há absolutamente um lugar para essas ferramentas neste espaço, e também há aspectos positivos para elas. Essa mesma dinâmica de financiamento que põe em causa a sobrevivência da ferramenta em caso de falência da empresa garante muitos recursos para o seu desenvolvimento, desde que a empresa sobreviva. Mas também há lugar para uma ferramenta descentralizada que não depende de uma única empresa. O progresso poderá ser mais lento e os problemas poderão ser mais complicados de resolver, mas se for bem sucedido, o resultado final será muito mais robusto e adaptável.
Não há nada de errado com serviços e empresas neste espaço, mas para cada serviço e empresa onde seja possível construir uma alternativa descentralizada, essa alternativa deve existir como outra opção. Assim como o próprio Bitcoin, um dia você poderá precisar urgentemente dele.
Este é um post convidado por Shinobi. As opiniões expressas são inteiramente próprias e não refletem necessariamente as da BTC Inc ou Bitcoin Magazine.
Fonte: https://bitcoinmagazine.com/technical/joinmarket-zerolink-and-coinjoin-bitcoin-mixing
- "
- Vantagem
- Publicitar
- Todos os Produtos
- Permitindo
- Ambiguidade
- arquitetura
- por aí
- AGOSTO
- O maior
- Pouco
- Bitcoin
- BitcoinUTXO
- blockchain
- Obrigações
- BTC
- BTC Inc
- construir
- Comprar
- canais
- carregar
- cobrando
- Moeda
- juntar-se
- Moedas
- comum
- Comunicação
- Empresas
- Empresa
- da conexão
- Coneções
- formação
- Criar
- Credenciais
- Atual
- Estado atual
- dia
- acordo
- Descentralizada
- Defesa
- Design
- Developer
- Desenvolvimento
- perturbe
- ecossistema
- criptografia
- Evento
- Falha
- falsificação
- Característica
- Taxas
- fidelidade
- encontra
- final
- Primeiro nome
- Flexibilidade
- formulário
- para a frente
- cheio
- Nó completo
- financiado
- financiamento
- fundos
- futuro
- Dando
- Bom estado, com sinais de uso
- Grupo
- Locatário
- Visitante Mensagem
- SUA PARTICIPAÇÃO FAZ A DIFERENÇA
- Esconder
- história
- Como funciona o dobrador de carta de canal
- Como Negociar
- HTTPS
- idéia
- Incluindo
- INFORMAÇÕES
- Internet
- questões
- IT
- juntar
- Chave
- chaves
- grande
- principal
- APRENDER
- aprendido
- aprendizagem
- levou
- relâmpago
- Lightning Network
- Liquidez
- provedores de liquidez
- longo
- fabricante
- Fazendo
- mapa,
- mercado
- marketplace
- mensagens
- misto
- modelo
- dinheiro
- mover
- Multisig
- líquido
- rede
- nós
- oferecer
- Oferece
- online
- aberto
- Opiniões
- Opção
- ordem
- Outros
- proprietários
- Pagar
- pagamento
- Pessoas
- piscina
- Piscinas
- presente
- política de privacidade
- privado
- chave privada
- projeto
- projetos
- prova
- prova de conceito
- proposta
- proteger
- protocolo
- público
- chave pública
- publicar
- aumentar
- raises
- Realidade
- confiança
- Recursos
- receita
- Rota
- Execute
- corrida
- Serviços
- conjunto
- Partilhar
- Sinais
- simples
- SIX
- pequeno
- So
- RESOLVER
- Espaço
- gastar
- Passar
- Spin
- quadrado
- começo
- Estado
- apresentado
- .
- falando
- temporário
- tempo
- ferramentas
- Portão
- pista
- transação
- Transações
- Confiança
- usuários
- valor
- esperar
- Wallet
- O que é a
- QUEM
- Wikipedia
- vento
- Atividades:
- trabalho
- Equivalente há
- ano
- anos