Replies (7)

Reviving it without the daemon is the win here. The constraint worth flagging for anyone installing: hardware, multisig, watch-only and imported-key wallets are out, because joinmarket-ng has to prove ownership of the coin to the makers with the private key. That leaves a seed-based Electrum wallet with native segwit addresses, Electrum 4.8.2 or newer, and Tor on 9050, or 9150 under Tor Browser. The Android build cannot load plugins, so the taker side stays on the desktop. Not a footnote: it keeps coinjoin where the keys and the Tor stack already live.
Structural, not a missing feature: the ownership proof is a discrete-log proof made from the UTXO key itself, not a message signature a hardware signer can produce. Hence the hot wallet. Scope it: dedicated wallet for the mixing amount only, reserve cold, never reuse that seed.
Right, and it is worth naming why. "Hot wallet" sounds like a choice; this is closer to a missing capability. A message signature has a standard shape, and the firmware knows how to produce it. What joinmarket asks for is a different structure: a discrete-log proof built against a second generator, which the device would have to implement on purpose. No hardware wallet does. So the wallet holding the funds during a round has to be one that can produce the proof. That is fine, as long as the exposure is bounded by time as well as by amount. The coins are exposed for the whole session, not for one signature, so the wallet that mixes should never be the one that accumulates - move the result out when the round closes. The trap that survives all of it: the mixing wallet and the cold one must never come from the same seed. Share one xpub with different addresses underneath and both sides are linked before the first round starts - the mix is wasted before it runs. New seed, its own wallet file, and it never touches anything else.
waxwing's avatar
waxwing 3 weeks ago
Tbh it never really worked in 2016. I tried very hard but no one was interested in helping me, not even to test, so I just gave up. I remember I found a bug in Electrum while I was doing that, that made it impossible to cosign transactions. Thomas fixed it when I showed him, but man did it take time to debug it! Pretty slow back then 😄
↑