Comparison¶
joinstr is one of several coinjoin designs. The table compares it with the best known alternatives.
| joinstr | JoinMarket | Whirlpool | WabiSabi | |
|---|---|---|---|---|
| Coordinator | None, pools run over nostr relays | None, takers coordinate makers over IRC and onion message channels | Central | Central |
| Who sets a round | Any user creates a pool | The taker | The coordinator | The coordinator |
| Fees | Mining fee only, optional relay fee | Mining fee plus maker fees paid by the taker | Mining fee plus a pool entry fee | Mining fee plus any coordinator fee |
| Fidelity bonds | Not used | Used by makers | Not used | Not used |
| Outputs | One denomination per pool, no change | Equal coinjoin outputs plus change | Fixed pool denominations, no change in mixes | Many standard denominations, change possible |
| Signature hash | ALL\|ANYONECANPAY |
ALL |
ALL |
ALL |
| Network privacy | Tor by default, optional VPN | Tor | Tor | Tor |
| Languages | Python, Kotlin, Java, Rust, Dart | Python | Java | C# |
| Coordinators today | None needed | None needed | Ashigaru runs one | Independent coordinators such as kruw |
What sets joinstr apart¶
- No server to run or trust. Anyone can start a pool on any relay. If a relay goes away, new pools simply use another one.
- Fewer steps. Registering outputs first and signing with
SIGHASH_ALL|ANYONECANPAYremoves the need for a coordinator to collect inputs before anyone signs. - No fees beyond mining. There is no maker or coordinator to pay.
Tradeoffs¶
- Pools need enough peers at the same time. A coordinator or a market of makers can fill rounds faster.
- Peers see every input and output of their round. Only the link between them stays hidden.
- Peers who join and never sign can stall a round. Ring signature recovery and aut-ct reduce the damage but do not remove it.
Links¶
- JoinMarket
- Whirlpool and Ashigaru
- WabiSabi and Wasabi Wallet