I wanted to learn crypto. I read a lot of posts. I got overwhelmed. The list of buzzwords was long and unending - proof-of-work, Merkle trees, elliptic curves, smart contracts, DeFi, DAOs, NFTs, ZK-rollups. I asked myself...

<aside> 🤔 What would Tim Ferriss do?

</aside>

I took out my mental khukuris, started hacking away until I ended up with a set of core ideas to build a foundational mental model and create a new cryptocurrency from scratch. Here we go!

If you're curious what the end result looks like, a sample run can be seen here. If you prefer a Jupyter notebook version, identical content can be read here. The Github repo is here.

<aside> 🚨 Disclaimer: For educational purposes only.

</aside>

Special thanks to Andreas Antonopoulos, Daniel van Flymen, Andrej Karpathy and Taro Kuriyama for their posts! The Bitcoin white paper and dev guide are respectively here and here.

Subscribe or questions/comments here.

Part I: Blocks

Bitcoin is commonly thought about as a ledger of transactions. Let's use that as a starting point.

Headers

We group the transactions into 'blocks'. Each block starts with a header, with information on the block's contents: