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 on L1
    • some specific apps, deployed via L2, like zk.money and Aztec Connect.

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 private.

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 privacy
  • 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).