Author

Topic: How would one implement Coinjoin as an Electrum plugin? (Read 144 times)

legendary
Activity: 2856
Merit: 7410
Crypto Swap Exchange
Bumping this thread in light of the Wasabi Wallet and ZKsnacks privacy scandal. We need this functionality in Electrum for time's worth.

I'd suggest to fork Wasabi Wallet and adding option to choose CJ server rather than create CJ extension for Electrum.
legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
Bumping this thread in light of the Wasabi Wallet and ZKsnacks privacy scandal. We need this functionality in Electrum for time's worth.
legendary
Activity: 2212
Merit: 7064
Cashback 15%
It is known that Electrum has a little-known plugin system for extending its functionality with Python code, but nobody seems to use it. In fact, I believe I've only ever seen around 5 Electrum plugins or so in total.
I remember that Electrum wallet had Chipmixer plugin few years ago, and I am not sure if that is still working today but I would like to have something like this available.
However, that doesn't mean scammers won't try to attack people with this in similar way like they are attacking clearnet website all the time.
Would it have to be integrated with a web service that provides CJ addresses?
Making something like this for Electrum would probably end up working similar like Wasabi wallet, and that could put Electrum developers under heavy pressure.
How about doing something totally new for bitcoin privacy, instead of inventing wheel all over again when we know already know results.
ElectronCash (fork that works for bcash) had a mixing option but I never checked the details though.
I saw how that is working and it would be unusable in Bitcoin network because fees for that would be much hire than with Bcash.
It does sound cool that you can just click a button in your wallet, leave your coins and get them back broken in smaller chunks that are not connected with original address.
I think they call it CashFusion, but problem is that other wallet are not supporting this  Cheesy

legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
I wouldn't bother doing it, Electrum isn't private by design. Electrum client simply send list of address to Electrum Server and Electrum client use clearnet by default.

I'm guessing then that the more immediate problem of "make Electrum servers at least talk using self-signed generated certificates" needs to be solved first before attempting this one, right? That is assuming that Electrum Server impls need to be patched to support CJ feature.

Quote
Additionally, answer to your question heavily depends on what kind of CoinJoin you're talking about. You might want to read about WabiSabi protocol at https://github.com/zkSNACKs/WabiSabi/blob/master/protocol.md.

That will be some good reading for me.
legendary
Activity: 2856
Merit: 7410
Crypto Swap Exchange
I wouldn't bother doing it, Electrum isn't private by design. Electrum client simply send list of address to Electrum Server and Electrum client use clearnet by default. Additionally, answer to your question heavily depends on what kind of CoinJoin you're talking about. You might want to read about WabiSabi protocol at https://github.com/zkSNACKs/WabiSabi/blob/master/protocol.md.
legendary
Activity: 3444
Merit: 10537
A semi-centralized way would be to use the Electrum nodes each act as a coordinator which they could even connect to each other and update their "state" and each user that connects to these nodes could also announce their willingness to participate in CoinJoin and the amount they are willing to put in.
The rest is just CoinJoin details of constructing transactions, signing and broadcasting.

P.S. ElectronCash (fork that works for bcash) had a mixing option but I never checked the details though.
legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
Asking so I don't have to use questionable, dubious 3rd party wallets.

It is known that Electrum has a little-known plugin system for extending its functionality with Python code, but nobody seems to use it. In fact, I believe I've only ever seen around 5 Electrum plugins or so in total.

1. Would it have to be integrated with a web service that provides CJ addresses?
2. How many transactions would be required to make for a safe CJ?
3. If not using a web service, how to coordinate the address receipents so that you eventually get the BTC back in your wallet?
Jump to: