2. Contents
A normal transaction
What is the problem for privacy?
How does CoinJoin help?
JoinMarket: peer-to-peer CoinJoin for Bitcoin
Masternode mixing: ahead-of-time mixing for
Dash
Summary
6. Typical “send money”
case
10 BTC 7 BTC
3 BTC
signature
change returned to sender
money drawn
from wallet
money sent
to recipient
What does Bob know
about Alice’s finances?
7. Multiple inputs
a: 6 BTC 7 BTC
3 BTC
signature
change returned to sender
money drawn
from wallet
money sent
to recipient
b: 4 BTC
signature
How much extra information
does this reveal to Bob?
8. Address reuse
10 BTC 7 BTC
3 BTC
signature
3 BTC 4 BTC
1 BTC
signature
1abcxyz…
What does this reveal about Alice and Dorothy?
3 BTC
signature
10. Disjunct transactions
10 BTC 7 BTC
3 BTC
signature
input output
output
3 BTC 4 BTC
1 BTC
signature
input output
output
2 BTC
signature
Even they are made by different people,
do they need to be separate on the blockchain?
11. Joined transactions
10 BTC 7 BTC
3 BTC
signature
input output
output
3 BTC 4 BTC
1 BTC
signature
input output
output
2 BTC
signature
input
Is it possible to correlate the inputs with the outputs?
14. JoinMarket principle
Ivan the Investor
How do we get people like Ivan to
keep his coins in a wallet for mixing?
taker fee
15. Network topology
IRC server
(trading pit)
Tor network
mixing peer mixing peermixing peer
(future versions of
JoinMarket may replace
IRC with P2P
communication)
22. Switch to
Bitcoin full node
display wallet
command
% python wallet-tool.py wallet.json
2016-05-01 18:58:49,303 [MainThread ] [DEBUG] hello joinmarket
Enter wallet decryption passphrase:
2016-05-01 18:58:50,722 [MainThread ] [DEBUG] requesting wallet history
2016-05-01 18:58:54,491 [MainThread ] [DEBUG] rpc: getaddressesbyaccount
['joinmarket-wallet-9e5123']
2016-05-01 18:58:54,496 [MainThread ] [DEBUG] importing 200 addresses
into account joinmarket-wallet-9e5123
restart Bitcoin Core with -rescan if you're recovering an existing wallet from backup
seed
otherwise just restart this joinmarket script
importing into a local watch-only wallet
local Bitcoin node has only public keys, not private keys)
37. What is Dash?
Fork of Bitcoin
Launched 18 January 2014
Initially named XCoin, then Darkcoin, then Dash (“digital
cash”)
Initial goal was to add privacy features to Bitcoin
Current blockchain approx size: 2GB
Current valuation:
40-50m USD market cap
(compare Bitcoin 6-7bn USD)
6 400 000 Dash @ 6-7USD
(compare Bitcoin 15 500 000 coins @ 400-500USD)
38. What is a
masternode?
Bitcoin:
Miner:
secures the blockchain
100% of block reward
Node:
stores, validates and shares the blockchain
0% of block reward
Dash:
Miner:
secures the blockchain
45% of block reward
Masternode:
stores, validates and shares the blockchain
provides higher-tier services eg mixing
45% of block reward + fees1000 Dash
collateral
62. References
CoinJoin Wikipedia article:
https://en.wikipedia.org/wiki/CoinJoin
CoinJoin: Bitcoin privacy for the real world (Greg Maxwell):
https://bitcointalk.org/index.php?topic=279249
Joinmarket - Coinjoin that people will actually use (Chris Belcher):
https://bitcointalk.org/index.php?topic=919116.0
Dash whitepaper (Evan Duffield, Daniel Diaz):
https://www.dash.org/wp-content/uploads/2015/04/Dash-
WhitepaperV1.pdf
An Analysis of Darkcoin’s Blockchain Privacy via Darksend+ (Kristov
Atlas):
http://cdn.anonymousbitcoinbook.com/darkcoin/darksend-
paper/Atlas_Darksend-Analysis-v001.pdf