I want to open a debate on something practical: how do we make JoinMarket useful for more people?
But before that, a framing question: how should a normal person use Bitcoin with some privacy? Nothing crazy, not OpSec level. Just "I don't want people I transact with to know what I own."
My current answer would be: buy P2P (Bisq or lnp2pbot depending on the person), run the UTXOs through a few JoinMarket rounds (ideally the tumbler) and then either move them to cold storage or open a Lightning channel with the clean outputs. For Lightning on mobile, honestly only Phoenix works well for non-technical people. Everything else is too fragile or slow or kills your battery.
This workflow sounds reasonable on paper. In practice it's a mess: you need a full node, you need a computer, Bisq has its own learning curve, and JoinMarket's install alone is challenging.
So what's actually worth building?
My guess is a light-client mobile wallet with the tumbler baked in: deposit, wait, get clean UTXOs out, ready for cold storage or a LN channel. Simple enough that you don't need to know what's happening underneath.
But is that the right call? Is there a better abstraction? I'd love to hear where you think the effort should go.
Build in Zeus Wallet! I tried to use join market using umbrel and Jam and I found the fees stupid high and it wasn’t easy to use.
I think if the team can some how develop in a mobile environment I think you will get more usage.
Good idea!
Here's one anon that would use a mobile solution like that. Would help testing too.
Just use electrum, duh
If you pay me onchain, I can see what UTXO(s) you've used to pay me with. No matter if you use electrum.
With that information, I can try cluster your wallet using heuristics and estimate your balance and who you transact with.
never heard of LN?
Lots of caveats there.
If you open a channel to make payments, you have decent privacy. But you did not break the link from whoever you got that Bitcoin from. And if your node is public, opening new channels would be equivalent to address reuse.
Then, for receiving payments you're not in a good position. Would you share your LN node pubkey? Would you share a Bitcoin address instead? And then what, consolidate it together with your preexisting UTXOs?
LN is great but not bulletproof. And for the case of HOLDing into cold storage it doesn't help much.
All this brain hoops for not learning to use swaps and LN.
NGMI
I think you don't understand privacy.
Whatever makes you sleep at night, sweetheart
yes why not? never heard about private and disposable LN nodes? Decoy nodes?
Buying a LSP channel in advance, without using any of your UTXOs... using a private disposable LN node... through that single fucking channel you can pass through infinite sats, endlessly.
These are just few examples... Are several scenarios to use.
Nobody is forcing you to run PUBLIC LN nodes. Private and disposable / decoy nodes are just fine.
It's an option, for sure. The question is the privacy and costs that would have over the privacy and costs of CoinJoining.
As a rule of thumb anything over 10M sats will be cheaper to CoinJoin for the same level of anonymity (and the possibility of more, and measurable).
you are comparing ln costs to on chain costs
two different worlds
Exactly. Ones are proportional to the transaction amount and the others are fixed. Those lines intersect.
If you use a single UTXO onchain to coinjoin, you cannot pass more sats than you have in that UTXO...
Meanwhile through a single LN channel you can coinjoin as many sats you want.
More than that, if you are smart you can make it to leave NO onchain trace..
Just think about, even if you are traced, a single UTXO of 1M sats that is in a public block, in fact it was transferring let's say 10 BTC through that single channel and nobody have any trace (except the channel peers - but that is another aspect).
Think in perspective. Mastering LN is an art of using all its properties and solutions.
People thatt are lazy and don't want to read and learn... fuck'em'all they do not deserve BTC in the first place.
I used bisq frequently for a while. I've used wasabi and samurai, but not join market.
I have not met a normal person who would be willing to do even 1/10th of what use of those tools requires.
Most normal people I have met are not even willing to use a self custody Bitcoin wallet. Writing down seed words (and not losing them) seems a bridge too far.
So: whatever solution there is needs to require an absolute minimum from users. Like ideally, it just does coinjoins in the background and there is nothing more than send and receive in the wallet.
My experience has been that privacy tools can be built for power users and the anonymity set will always be tiny. Or there can be things that take no effort from the user and fold into the normal user experience and lots of people will use them.
The light client you describe sounds good. But I worry that even something like that won't be easy enough for the normal user. The distinction between lightning and on chain is probably too much for a normal user to grasp.
Very good points.
Focus on steering the UX towards sweeping entire UTXOs using the taker role. Each payment you receive and change output you create (from payments) should be isolated and swept into the next mix depth with a coinjoin. Then, automatically switch back to maker in between your regular transactions to blend in with the rest of the pool.
I'd like to see something that converts the change into LN during a CJ round.
Thanks for the idea. That would be technically possible already without changing the protocol.
And doing so (with a few other additions) would bring great improvements to privacy. See CoinJoinXT
For now we're experimenting with LN swap inputs and outputs for avoiding change or getting it back on lightning:
Wonder if it would be possible to add JoinMarket as an Electrum plugin....
Is Floppy still working on Joinstr?
It would be possible.
Yes he is!
would likely get banned from app stores but as long as it works with fdroid it moves the needle I would say.
it the mobile client could be utreexo / floresta based rather than trusting an electrum server not to dox your utxos. that would be ideal.
i like it!
IMHO
Trying to add privacy onchain is like trying to patch today a Windows 95. It doesn't work, no matter what you try, is obsolete. Focus on LN and leave onchain in peace.
Of course there are some improvements for LN that need change in onchain, that I agree. But trying to do onchain what already is doing LN is kind of useless.
payjoin has a pass with me
In other words you want dumb people to use Bitcoin.
I call that bullshit. Bitcoin needs HARD education, to make people to use those smooth brains.
to open a channel w Blixt or Zeus is more complicated than all the hoops and spending they promote?
fucking make it make sense
from now on we should do an IQ test with all nocoiners that want to get into bitcoin, to see if they are capable to use their brain.
i would rather test all these gatekeepers and talking heads
Most downzap censored post of the last 24 hours-
https://stacker.news/items/1475219
The light client mobile wallet idea sounds good in theory but how do you keep it trustless? Someone has to coordinate the joins and on mobile you cant run a full node to verify everything yourself. How are you thinking about making sure the coordinator can't link inputs to outputs or log participants? Because that's usually where the tradeoff between usability and privacy gets made.