Examples#

This gallery walks through blockchainkit.privacy, one experiment per breakthrough on the privacy history page: Chaum’s mix-nets and Tor’s onion routing; ring signatures, key images and stealth addresses; k-anonymity, address clustering and Monero’s traceability; CoinJoin, TumbleBit and Tornado Cash; and the hidden amounts of Zerocoin, confidential transactions, RingCT and Mimblewimble.

Each script is self-contained and runs with python examples/privacy/<section>/<script>.py.

Hidden coins and amounts#

Coins that cannot be traced to their mint, and amounts that add up without being shown.

Zerocoin: spending a coin without saying which (2013)

Zerocoin: spending a coin without saying which (2013)

Confidential transactions: amounts that add up unseen (2015)

Confidential transactions: amounts that add up unseen (2015)

RingCT: hiding the input and the amounts together (2016)

RingCT: hiding the input and the amounts together (2016)

Mimblewimble: transactions with no addresses, and cut-through (2016)

Mimblewimble: transactions with no addresses, and cut-through (2016)

Measuring anonymity#

What a public record reveals: anonymity sets, address clusters, and traceable rings.

k-anonymity and anonymity sets: hiding among k (2002)

k-anonymity and anonymity sets: hiding among k (2002)

A Fistful of Bitcoins: clustering addresses by owner (2013)

A Fistful of Bitcoins: clustering addresses by owner (2013)

Traceability in Monero: when decoys fail (2018)

Traceability in Monero: when decoys fail (2018)

Mixing coins#

Breaking the link between payer and payee: joint transactions, blind tumblers, and mixer contracts.

CoinJoin: many payers, one transaction (2013)

CoinJoin: many payers, one transaction (2013)

TumbleBit: an untrusted tumbler that cannot link payments (2017)

TumbleBit: an untrusted tumbler that cannot link payments (2017)

Tornado Cash: a mixer contract with zero-knowledge withdrawals (2019)

Tornado Cash: a mixer contract with zero-knowledge withdrawals (2019)

Anonymous networks#

Hiding who talks to whom: mixes that batch and shuffle, and low-latency onion routing.

Chaum’s mix-nets: untraceable mail (1981)

Chaum's mix-nets: untraceable mail (1981)

Onion routing in Tor: fast, but exposed end to end (2004)

Onion routing in Tor: fast, but exposed end to end (2004)

Ring signatures and stealth addresses#

Signing for a group without saying who, spending only once, and paying a fresh key every time.

Ring signatures: leaking a secret for a group (2001)

Ring signatures: leaking a secret for a group (2001)

Linkable ring signatures and key images (2004)

Linkable ring signatures and key images (2004)

CryptoNote stealth addresses: a fresh key for every payment (2013)

CryptoNote stealth addresses: a fresh key for every payment (2013)

Gallery generated by Sphinx-Gallery