Bitcoin Forum
May 08, 2024, 03:09:34 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 [2]  All
  Print  
Author Topic: [FAQ] - Coinjoin - O que é e como funciona  (Read 210 times)
joker_josue
Legendary
*
Offline Offline

Activity: 1652
Merit: 4564


**In BTC since 2013**


View Profile WWW
August 22, 2023, 06:27:19 PM
 #21

Gosto de exemplificar o Coinjoin de forma visual pensando em uma cesta onde 5 pessoas colocam 1 moeda de R$ 1 cada, balançam a cesta, e outras 5 pessoas pegam uma moeda cada. Ninguém sabe quem pagou quem, mas entraram 5 e saíram 5.

Um bom exemplo.

Já usou Coinjoin? Alias quem é que já usou Coinjoin?

Por acaso, gostava de fazer uns testes para ver (se der para fazer pelo Electrum).  Tongue

.
.HUGE.
▄██████████▄▄
▄█████████████████▄
▄█████████████████████▄
▄███████████████████████▄
▄█████████████████████████▄
███████▌██▌▐██▐██▐████▄███
████▐██▐████▌██▌██▌██▌██
█████▀███▀███▀▐██▐██▐█████

▀█████████████████████████▀

▀███████████████████████▀

▀█████████████████████▀

▀█████████████████▀

▀██████████▀▀
█▀▀▀▀











█▄▄▄▄
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
.
CASINSPORTSBOOK
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀▀█











▄▄▄▄█
1715137774
Hero Member
*
Offline Offline

Posts: 1715137774

View Profile Personal Message (Offline)

Ignore
1715137774
Reply with quote  #2

1715137774
Report to moderator
Even if you use Bitcoin through Tor, the way transactions are handled by the network makes anonymity difficult to achieve. Do not expect your transactions to be anonymous unless you really know what you're doing.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1715137774
Hero Member
*
Offline Offline

Posts: 1715137774

View Profile Personal Message (Offline)

Ignore
1715137774
Reply with quote  #2

1715137774
Report to moderator
darkv0rt3x (OP)
Hero Member
*****
Offline Offline

Activity: 1204
Merit: 658


I rather die on my feet than to live on my knees


View Profile
August 25, 2023, 08:41:15 AM
 #22

Gosto de exemplificar o Coinjoin de forma visual pensando em uma cesta onde 5 pessoas colocam 1 moeda de R$ 1 cada, balançam a cesta, e outras 5 pessoas pegam uma moeda cada. Ninguém sabe quem pagou quem, mas entraram 5 e saíram 5.

Um bom exemplo.

Já usou Coinjoin? Alias quem é que já usou Coinjoin?

Por acaso, gostava de fazer uns testes para ver (se der para fazer pelo Electrum).  Tongue

Se tentarmos fazer um Coijoin manual, quem ficar a coordenar o processo, fica a sabera quem pertece cada input e a quem pertence cada output. No entanto, eu acho que podemos randomizar um pouco o processo e pelo menos o coordenador ficar sem saber sobre os outputs, com apenas um pouco de boa vontade.

O que tenho em mente é algo como, para os inputs, arranjar forma de os enviarmos a todos para um local sem que nos identifiquemos. Parto também do princípio que o coordenador não vai andar a ver IPs e a comparar com os IPs de onde postamos aqui no forum, por exemplo, para descobrir a quem pertece cada IP. Eu pelo menos, de certeza que não me vou dar a esse trabalho.
Não sei se há possibilidade de se criar uma espécie de container online onde cada um dos participantes envia para lá os seus inputs, e depois o coordenador não tem forma directa de associar os inputs aos respectivos donos.
E quanto aos outputs, a idea era, por exemplo, se tivermos 10 outputs para gerar, com um script randomizava números de 1 a 10, e depois colocava os outputs por essa ordem aleatória, também sem andar a ver em que posição calhou cada output para o associar ao respectivo input. Não sei se insto faz sentido, só mesmo testando para perceber se realmente podia dar algum nível de privacidade aos otuputs!

Todos os participantes apenas precisam de um meio para assinar os seus inputs. Portanto, a Electrum será suficiente para o efeito.

Bitcoin is energy. Bitcoin is freedom
I rather die on my feet than living on my knees!
joker_josue
Legendary
*
Offline Offline

Activity: 1652
Merit: 4564


**In BTC since 2013**


View Profile WWW
August 25, 2023, 06:50:52 PM
 #23

O que tenho em mente é algo como, para os inputs, arranjar forma de os enviarmos a todos para um local sem que nos identifiquemos. Parto também do princípio que o coordenador não vai andar a ver IPs e a comparar com os IPs de onde postamos aqui no forum, por exemplo, para descobrir a quem pertece cada IP. Eu pelo menos, de certeza que não me vou dar a esse trabalho.
Não sei se há possibilidade de se criar uma espécie de container online onde cada um dos participantes envia para lá os seus inputs, e depois o coordenador não tem forma directa de associar os inputs aos respectivos donos.
E quanto aos outputs, a idea era, por exemplo, se tivermos 10 outputs para gerar, com um script randomizava números de 1 a 10, e depois colocava os outputs por essa ordem aleatória, também sem andar a ver em que posição calhou cada output para o associar ao respectivo input. Não sei se insto faz sentido, só mesmo testando para perceber se realmente podia dar algum nível de privacidade aos otuputs!

Basta ter um ficheiro no Google Docs (é só um exemplo - não é para usar!), onde cada um ia lá e colava o seu inputs/outputs. Depois o coordenador, só tinha de pegar nisso e dar seguimento. Assim, ele não vai saber de quem é o que. Se não se colocar em investigações, que sinceramente, aqui entre nós acredito que não.

.
.HUGE.
▄██████████▄▄
▄█████████████████▄
▄█████████████████████▄
▄███████████████████████▄
▄█████████████████████████▄
███████▌██▌▐██▐██▐████▄███
████▐██▐████▌██▌██▌██▌██
█████▀███▀███▀▐██▐██▐█████

▀█████████████████████████▀

▀███████████████████████▀

▀█████████████████████▀

▀█████████████████▀

▀██████████▀▀
█▀▀▀▀











█▄▄▄▄
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
.
CASINSPORTSBOOK
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀▀█











▄▄▄▄█
darkv0rt3x (OP)
Hero Member
*****
Offline Offline

Activity: 1204
Merit: 658


I rather die on my feet than to live on my knees


View Profile
August 25, 2023, 07:15:52 PM
 #24

O que tenho em mente é algo como, para os inputs, arranjar forma de os enviarmos a todos para um local sem que nos identifiquemos. Parto também do princípio que o coordenador não vai andar a ver IPs e a comparar com os IPs de onde postamos aqui no forum, por exemplo, para descobrir a quem pertece cada IP. Eu pelo menos, de certeza que não me vou dar a esse trabalho.
Não sei se há possibilidade de se criar uma espécie de container online onde cada um dos participantes envia para lá os seus inputs, e depois o coordenador não tem forma directa de associar os inputs aos respectivos donos.
E quanto aos outputs, a idea era, por exemplo, se tivermos 10 outputs para gerar, com um script randomizava números de 1 a 10, e depois colocava os outputs por essa ordem aleatória, também sem andar a ver em que posição calhou cada output para o associar ao respectivo input. Não sei se insto faz sentido, só mesmo testando para perceber se realmente podia dar algum nível de privacidade aos otuputs!

Basta ter um ficheiro no Google Docs (é só um exemplo - não é para usar!), onde cada um ia lá e colava o seu inputs/outputs. Depois o coordenador, só tinha de pegar nisso e dar seguimento. Assim, ele não vai saber de quem é o que. Se não se colocar em investigações, que sinceramente, aqui entre nós acredito que não.

Pronto... Podemos testar uma cena dessas. Eu ainda teria que ver exactamente com que é que tinha que lidar para perceber se depois em relação aos outputs, a cena de randomizar números para dar aleatoriedade aos outputs funcionaria!

Bitcoin is energy. Bitcoin is freedom
I rather die on my feet than living on my knees!
joker_josue
Legendary
*
Offline Offline

Activity: 1652
Merit: 4564


**In BTC since 2013**


View Profile WWW
August 26, 2023, 01:11:01 AM
 #25

Pronto... Podemos testar uma cena dessas. Eu ainda teria que ver exactamente com que é que tinha que lidar para perceber se depois em relação aos outputs, a cena de randomizar números para dar aleatoriedade aos outputs funcionaria!

Mas nesse cenário, é indiferente randomizar os outputs. Digo eu...

Qual seria o objetivo?

.
.HUGE.
▄██████████▄▄
▄█████████████████▄
▄█████████████████████▄
▄███████████████████████▄
▄█████████████████████████▄
███████▌██▌▐██▐██▐████▄███
████▐██▐████▌██▌██▌██▌██
█████▀███▀███▀▐██▐██▐█████

▀█████████████████████████▀

▀███████████████████████▀

▀█████████████████████▀

▀█████████████████▀

▀██████████▀▀
█▀▀▀▀











█▄▄▄▄
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
.
CASINSPORTSBOOK
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀▀█











▄▄▄▄█
darkv0rt3x (OP)
Hero Member
*****
Offline Offline

Activity: 1204
Merit: 658


I rather die on my feet than to live on my knees


View Profile
September 17, 2023, 08:45:34 AM
 #26

Pronto... Podemos testar uma cena dessas. Eu ainda teria que ver exactamente com que é que tinha que lidar para perceber se depois em relação aos outputs, a cena de randomizar números para dar aleatoriedade aos outputs funcionaria!

Mas nesse cenário, é indiferente randomizar os outputs. Digo eu...

Qual seria o objetivo?

De um certo ponto de vista, tens razão. Se o coordenador não souber a quem pertencem os inputs, não interessa a ordem dos outputs, acho eu. Não sei se randomizar os outputs, adicionaria alguma espécie de, ainda que rudimentar, entropia à aleatoriedade dos outputs!

Bitcoin is energy. Bitcoin is freedom
I rather die on my feet than living on my knees!
darkv0rt3x (OP)
Hero Member
*****
Offline Offline

Activity: 1204
Merit: 658


I rather die on my feet than to live on my knees


View Profile
September 17, 2023, 09:13:58 AM
Merited by joker_josue (2)
 #27

Um post muito interessante que encontrei no Stacker.news sobre Coinjoin oner nostr. Decidi transcrever e traduzir para aqui, na íntegra:

O que é o Coinjoin?


O CoinJoin é uma técnica de reforço da privacidade utilizada nas criptomoedas, principalmente em Bitcoin, para aumentar o anonimato. Consegue-se combinando várias transacções numa única transação, tornando mais difícil rastrear a origem e o destino dos fundos envolvidos.


Diferença entre Joinstr e outras implementações CoinJoin

O Joinstr se diferencia de outras implementações do CoinJoin por meio de vários recursos principais:

  • Sem Coordenador Centralizado: Ao contrário de algumas implementações CoinJoin que dependem de um coordenador central, o Joinstr opera de forma descentralizada, aumentando a privacidade do usuário.
  • Melhor UI / UX: Joinstr prioriza a experiência do usuário, garantindo uma interface mais suave e intuitiva para os participantes.
  • Implementação simples: A implementação do Joinstr é simples, tornando-o acessível a uma vasta gama de utilizadores.
  • Sem títulos de fidelidade: O Joinstr não exige que os participantes mantenham títulos de fidelidade, oferecendo mais flexibilidade.
  • Fundador anónimo: O projeto mantém um compromisso com o anonimato, alinhando-se com os seus objectivos centrados na privacidade.



Como funciona?


O Joinstr funciona através da criação de uma transacção pós-mistura com um ID de evento. Aqui está uma visão geral simplificada de como funciona:
  • Calcule o postmix_val usando a fórmula: (input_sum - taxa) / 5.
  • Gerar um ID de evento para a ronda CoinJoin.
  • Os participantes fornecem os seus UTXOs como inputs, especificando o montante e o tipo.
  • A transação CoinJoin é criada utilizando estas entradas e o ID do evento.
  •   A transação resultante é transmitida para a cadeia de blocos.


Código e detalhes de implementação
O Joinstr está disponível através de várias interfaces:

    __cli: Interface de linha de comandos para utilizadores avançados.
    __web: Interface Web para uma experiência de fácil utilização.
    __mobile app: Uma aplicação móvel para transacções CoinJoin em movimento.
    __electrum plugin: Integração com a carteira Electrum para maior comodidade.

A base de código do Joinstr e os detalhes de implementação podem ser encontrados no seu repositório: Joinstr no GitLab.

Joinstr em Electrum


O Joinstr também se integra perfeitamente com a carteira Electrum, fornecendo uma maneira fácil de aceder à funcionalidade CoinJoin. Um exemplo de transacção usando Joinstr em Electrum pode ser encontrado aqui.

Demonstração


Assistir a uma demonstração de um Joinstr:
https://www.youtube.com/watch?v=O5qbexzO37c


E agora?

O Joinstr continua a evoluir e a equipa de desenvolvimento tem um roteiro empolgante pela frente. Alguns itens da lista de tarefas incluem:

  • Implementação de novos circuitos Tor para cada pedido para aumentar a privacidade.
  • Utilização do NIP 38/48 para canais encriptados.
  • Permitir denominações personalizadas para pools CoinJoin.
  • Restringir o registo de diferentes tipos de entradas para uma ronda.
  • Implementar o NIP 9 para eliminar eventos após a conclusão de uma ronda.


Utilizar políticas Multisig e Miniscript no CoinJoin

Para utilizadores mais avançados interessados em políticas multisig e Miniscript no CoinJoin, a Joinstr oferece dois projectos relacionados:


Exemplos de transacções para estes projectos podem ser encontrados aqui.
Coinjoin usando a bandeira Sighash ALL|ANYONECANPAY



Explore uma prova de conceito (PoC) para Coinjoin usando o sinalizador ALL|ANYONECANPAY Sighash aqui.

Agradecimentos
Agradecemos às seguintes pessoas e organizações pelo seu apoio e contribuições até à data:
  • @HRF - Human Rights Foundation
  • @quaintrellexbt
  • @jeremyrubin
  • @ecurrencyhodler
  • @fiatjaf
  • @jeff
  • @achow101


Mantenha-se atualizado sobre o progresso do Joinstr através do Nostr ou usando o seguinte endereço: npub1v6qjdzkwgaydgxjvlnq7vsqxlwf4h0p4j7pt8ktprajd28r82tvs54nzyr.
O Joinstr representa um passo importante no aumento da privacidade da criptomoeda, e o seu compromisso com um design de fácil utilização e descentralização torna-o uma adição notável ao mundo das implementações CoinJoin.
Projeto: Joinstr @ BOLT.FUN
Tags:  #brainstorm #bitcoin-design #nostr #activity #discussion
Artigo original publicado em BOLT🔩FUN

Bitcoin is energy. Bitcoin is freedom
I rather die on my feet than living on my knees!
joker_josue
Legendary
*
Offline Offline

Activity: 1652
Merit: 4564


**In BTC since 2013**


View Profile WWW
September 17, 2023, 10:38:10 AM
 #28

    __electrum plugin: Integração com a carteira Electrum para maior comodidade.

Obrigado pelo o artigo, achei bem interessante.
Alias, fiquei interessado neste ponto. Só tenho que perceber como adicionar esse plugin.

Isso permitia fazer coinjoin, sem um "gestor" do projeto.

Agora, todos tinha de usar o mesmo endereço nostr, certo? Como isso se faria?

.
.HUGE.
▄██████████▄▄
▄█████████████████▄
▄█████████████████████▄
▄███████████████████████▄
▄█████████████████████████▄
███████▌██▌▐██▐██▐████▄███
████▐██▐████▌██▌██▌██▌██
█████▀███▀███▀▐██▐██▐█████

▀█████████████████████████▀

▀███████████████████████▀

▀█████████████████████▀

▀█████████████████▀

▀██████████▀▀
█▀▀▀▀











█▄▄▄▄
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
.
CASINSPORTSBOOK
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀▀█











▄▄▄▄█
darkv0rt3x (OP)
Hero Member
*****
Offline Offline

Activity: 1204
Merit: 658


I rather die on my feet than to live on my knees


View Profile
September 17, 2023, 10:43:52 PM
 #29

    __electrum plugin: Integração com a carteira Electrum para maior comodidade.

Obrigado pelo o artigo, achei bem interessante.
Alias, fiquei interessado neste ponto. Só tenho que perceber como adicionar esse plugin.

Isso permitia fazer coinjoin, sem um "gestor" do projeto.

Agora, todos tinha de usar o mesmo endereço nostr, certo? Como isso se faria?

Não sei se percebi a pergunta e para ser sincero ainda não explorei o Coinjoin no nostr.
Sei que no nostr, criamos um par de chaves usando Shcnorr e esse par de chaves podemos usar me vários sites. Eu por exemplo estou a usar na rede social nostr através dos clientes Primal e Snort.
Mas durante esta semana, se tiver algum tempo, vou explorar mais um pouco!

Bitcoin is energy. Bitcoin is freedom
I rather die on my feet than living on my knees!
Pages: « 1 [2]  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!