Overview
JoinMarket is a decentralized implementation of CoinJoin that creates an economic marketplace for Bitcoin privacy. It divides participants into two roles: "makers" who offer their bitcoin as liquidity for CoinJoin transactions and earn fees for doing so, and "takers" who pay small fees to perform CoinJoins using the makers' liquidity. This market-based approach solves the coordination problem of finding CoinJoin partners without relying on a centralized server.
How It Works
JoinMarket Marketplace:
MAKERS (provide liquidity, earn fees):
┌─────────────────────────────────────────────────────┐
│ Maker A: "I'll mix up to 0.5 BTC for 0.0001% fee" │
│ Maker B: "I'll mix up to 2.0 BTC for 0.0003% fee" │
│ Maker C: "I'll mix up to 1.0 BTC for 0.0002% fee" │
│ Maker D: "I'll mix up to 0.8 BTC for 0.0001% fee" │
│ ... (many makers available on the network) │
└─────────────────────────────────────────────────────┘
│
▼
TAKER (wants privacy, pays fees):
┌─────────────────────────────────────────────────────┐
│ "I want to CoinJoin 0.3 BTC with 4 other parties" │
│ │
│ 1. Selects makers from the orderbook │
│ 2. Negotiates CoinJoin parameters │
│ 3. Constructs the joint transaction │
│ 4. All parties sign │
│ 5. Transaction is broadcast │
└─────────────────────────────────────────────────────┘
The Maker-Taker Model
Makers:
- Run a bot that continuously advertises CoinJoin offers on the JoinMarket messaging network
- Specify the amount range they are willing to mix and their fee
- Passively earn yield on their bitcoin by providing liquidity
- Their funds remain under their control at all times (non-custodial)
Takers:
- Initiate CoinJoin transactions when they want privacy
- Select makers from the available orderbook
- Pay small fees to makers (typically 0.01-0.1% of the mixed amount)
- Construct and coordinate the transaction
Advantages Over Centralized CoinJoin
┌────────────────────┬────────────────────┬──────────────────┐
│ Property │ JoinMarket │ Centralized │
├────────────────────┼────────────────────┼──────────────────┤
│ Coordinator │ None (P2P) │ Central server │
│ Single point of │ No │ Yes │
│ failure │ │ │
│ Censorship risk │ Low │ Higher │
│ Privacy from coord.│ Full │ Coord. sees all │
│ Liquidity │ Market-driven │ Pool-dependent │
│ Learning curve │ Steeper │ Easier │
└────────────────────┴────────────────────┴──────────────────┘
Fidelity Bonds
JoinMarket introduced fidelity bonds as a Sybil-resistance mechanism. Makers can time-lock bitcoin to prove their commitment, making it costly for an attacker to create many fake maker identities. Takers preferentially select makers with fidelity bonds, as these makers have a verifiable economic stake in their reputation.
Use Cases
- Privacy enhancement: Break the transaction graph linking your UTXOs
- Passive income: Makers earn fees for providing CoinJoin liquidity
- Fungibility improvement: CoinJoins make chain analysis harder for all participants
- Scheduled mixing: Takers can configure automated mixing schedules
Common Misconceptions
- JoinMarket is not a mixer or tumbler. It is a decentralized protocol where participants jointly construct transactions. No single entity ever takes custody of funds.
- Maker fees are extremely small. The yield is modest, typically fractions of a percent per transaction, but accumulates over time for patient makers.
- JoinMarket does require technical knowledge to set up and operate. It is primarily a command-line tool, though GUI interfaces (like JAM) have been developed to improve usability.
- Using JoinMarket is not illegal. CoinJoin is a standard Bitcoin transaction type, and enhancing privacy is a legitimate use of the Bitcoin protocol.