When do we need cryptography in blockchain space?

Consensus-layer:

  • Hashes for Merkle trees
  • Signatures for transactions
  • Signatures for blocks in PoS
  • Possibly, polynomial commitments as a replacement for Merkle trees
  • ZK-SNARKs/STARKs to enable more efficient client-side verification
  • Private information retrieval for privacy-preserving light clients

Application-layer

  • ZK-SNARKs for scaling (eg. ZK rollup)
  • ZK-SNARKs for privacy (eg. Tornado Cash)
  • Other forms of cryptography for privacy (confidential transactions, bulletproofs, ring signatures…)
  • Group homomorphisms for stealth addresses and deterministic wallets
  • Multi-party computation for privacy (in some situations ZK-SNARKs are not sufficient, particularly when you want to maintain state that no one can decrypt)
  • In the future, obfuscation: How obfuscation can help Ethereum
3 Likes