Table of Contents
- Phase 1: The Backbone (Bitcoin Core v30.2)
- Phase 2: The Privacy Layer (Tor Onion Services)
- Phase 3: The Economic Solution (JoinMarket Guide)
- Total Privacy
The Sovereign Stack: Bitcoin, Tor, and JoinMarket #
True financial privacy isn't just a software feature; it's an economic solution to a surveillance problem. By combining Bitcoin Core v30.2, the Tor Network, and JoinMarket, we create a "Sovereign Stack" that breaks the deterministic links on the blockchain.
Phase 1: The Backbone (Bitcoin Core v30.2) #
Bitcoin Core is your source of truth. Running your own node ensures that you aren't leaking your XPUB or transaction history to third-party servers.
1. Installation #
On Debian/Ubuntu, download and verify the latest binaries:
1wget [https://bitcoincore.org/bin/bitcoin-core-30.2/bitcoin-30.2-x86_64-linux-gnu.tar.gz](https://bitcoincore.org/bin/bitcoin-core-30.2/bitcoin-30.2-x86_64-linux-gnu.tar.gz)
2tar -xzf bitcoin-30.2-x86_64-linux-gnu.tar.gz
3sudo install -m 0755 -o root -g root -t /usr/local/bin bitcoin-30.2/bin/*
4
2. Configuration for JoinMarket #
JoinMarket requires RPC access to your node. Edit your ~/.bitcoin/bitcoin.conf:
server=1
rpcuser=your_username
rpcpassword=your_secure_password
txindex=1 # Required for JoinMarket to track history
# Tor Configuration
proxy=127.0.0.1:9050
listen=1
bind=127.0.0.1
Phase 2: The Privacy Layer (Tor Onion Services) #
Routing your node and JoinMarket traffic through Tor masks your IP address, preventing "physical" de-anonymization.
1sudo apt install tor
2sudo systemctl enable tor
3sudo systemctl start tor
4
To allow JoinMarket to communicate with the "Trading Pit" (the market for liquidity), ensure your torrc allows SOCKS5 proxying on port 9050.
Phase 3: The Economic Solution (JoinMarket Guide) #
JoinMarket solves the "coordination problem" of CoinJoin by creating a market between Makers (liquidity providers) and Takers (privacy seekers).
1. Installation #
JoinMarket requires Python 3.8 to 3.13. We will use the automated quickstart:
1git clone [https://github.com/Joinmarket-Org/joinmarket-clientserver.git](https://github.com/Joinmarket-Org/joinmarket-clientserver.git)
2cd joinmarket-clientserver
3./install.sh
4
Follow the prompts. When finished, activate the virtual environment:
1source jmvenv/bin/activate
2cd scripts
3
2. Wallet Creation #
Generate a new BIP84 compatible wallet:
1python wallet-tool.py generate
2
Note: This will generate a 12-word recovery mnemonic. Keep this offline!
3. Understanding the Roles #
-
The Maker (Passive Income): You provide liquidity to the market and receive a small fee for every CoinJoin you participate in.
-
Command:
python yield-generator-basic.py your_wallet.jmdat -
The Taker (Instant Privacy): You want to mix your coins now. You pay a small fee to the Makers to coordinate a transaction immediately.
-
Command:
python sendpayment.py -N 5 your_wallet.jmdat <amount> <address>(The-N 5flag initiates a CoinJoin with 5 counterparties).
4. Advanced Features #
- Fidelity Bonds: To prevent Sybil attacks, Makers can "lock" coins to prove they are not a single entity trying to deanonymize the pool.
- PayJoin (BIP78): A way to pay merchants that makes the transaction look like a normal payment while actually breaking common ownership heuristics.
Total Privacy #
By the end of this setup, your stack is fully sovereign:
- Bitcoin Core validates your coins.
- Tor hides your location.
- JoinMarket obfuscates your transaction history.