Skip to main content

A brief history of blockchain privacy

Bitcoin

The original blockchain.

Programmability:
None.
Transfer bitcoin only.

Privacy:
None.

Ethereum

Programmability:
Turing complete smart contracts.

Privacy:
Originally: None.
Now: some specific apps, deployed via L2, like zk.money and Aztec Connect (see below).

ZCash

Programmability:
None.
Transfer ZCash only.

Privacy:
Transfers of shielded zcash are private.

zk.money

Programmability:
Any custom ERC20 token (on Ethereum L1) can be deposited to L2, transferred within L2, and withdrawn from L2.

Privacy:
Transfers of the ERC20 tokens within the L2 are private.

Aztec Connect

Programmability:
The functionality of zk.money, plus:
Tokens can be sent from the L2 shielded pool to many L1 defi contracts, and the resulting tokens can be re-shielded. This gives anonymity to L1 defi users.

Privacy:
Transfers of the ERC20 tokens within the L2 are private.
User defi interactions are anonymous.

Aztec

Programmability:
Fully programmable private smart contracts:

  • private functions which can edit general private state
  • cheap L2 public functions
  • L1 (public) functions.

Privacy:
Executing private functions grants:

  • Function privacy
  • Input privacy
  • User anonymity

Executing a private function which calls a public function grants varying degrees of privacy, depending on the application someone deploys. (Similar to how deposits and withdrawals to/from shielded pools can leak privacy).