Learn how cryptographic primitives power the blockchain and digital currencies.

A Brief History of Currency

The Fable of Cryptonia

Cryptographic Signatures

Decentralizing Cryptonia

Cryptonian Vulnerabilities

Cracking Cryptonia

Cryptographic Hash Functions

Exploring Hash Functions

Inverting Hash Functions

Securing Hash Functions


Merkle Trees

Introducing ZooCash

Account Management

Blockchain Ledger


Proof of Work

Robustness of ZooCash

Smart Contracts

Course description

Cryptocurrencies represent a fundamentally new way for people to exchange goods and services. They're powered by blockchains — data structures that are enabled by cryptographically secure hash functions. Proponents of cryptocurrencies argue that they'll lower transaction fees and democratize monetary policy, while detractors argue that they're a mathematician's pipe dream repackaged into a scam. In this course, you'll learn about the math and technology behind cryptocurrencies through hands-on puzzles. You'll also explore the mechanics of maintaining and securing a cryptocurrency, so that you can decide for yourself if cryptocurrencies are a passing fad or the next big thing.

Topics covered

  • Ledger Currencies
  • Digital Signatures
  • Decentralized Authentication
  • Hash Functions
  • Collision Resistance
  • Blockchains
  • Merkle Trees
  • Double Spending
  • Hash Puzzles
  • Proof of Work
  • 51% Attack
  • Smart Contracts

Prerequisites and next steps

A basic understanding of algorithms and computer functions will help you understand the concepts in this course, but you don't need to know how to code. Familiarity with probability concepts will help — specifically knowing the rule of product and rule of complementary probabilities. While modular arithmetic will be used, it will be developed in context.


  • Computer Science Fundamentals
  • Introduction to Probability