Blockchain Technology in Depth

Blockchain Fundamentals is our 2 week part-time course created for software developers interested in learning about blockchain technology.

At Code Chrysalis, we believe that blockchain is both promising and vastly misrepresented in mainstream media. This class is designed to introduce existing developers to the core technology behind blockchains, without any hand-waving, hype, or marketing jargon.

Over 2 weeks, students will discover that blockchain technology is actually comprised of a handful of data structures, thoughtfully organized. By breaking down and constructing their very own blockchain protocols, the emergent properties of decentralization, permissionlessness and security will reveal themselves with all the potential and limitations that they entail.

Course Overview

Bitcoin is the originator of all blockchain technology. It also happens to be one of the most simply designed blockchain protocols in use, which naturally lends itself to study. This course uses the Bitcoin protocol as a blueprint for deconstructing and constructing our own blockchain protocol.

Requirements

This course is conducted in English and Typescript and is intended for intermediate programmers. Students should:

  • Have a working knowledge of git
  • Be comfortable receiving large amounts of instruction in English
  • Have experience working with relatively large codebases
  • Familiarity with Javascript/Typescript is not required, but strongly encouraged

Project

By the end of this course students will have built a UTXO-based blockchain protocol from scratch. This includes: selecting transaction outputs and signing transaction inputs, selecting difficulty adjustment algorithms, propogating blocks and transcations in a P2P network, and handling block orphans and chain reorgs.

Schedule

Precourse

Brief History: Blockchain Precursors and Overview

Bitcoin is by no means the first attempt at digital money. Ever since the beginning of the internet, people assumed a native digital currency would exist (see: "402 Payment Required" error code).

Bitcoin and Blockchains are one implementation of digital money. It's particular obessesion with decentralization and anonymity come from it's roots in the cypherpunk industry.

Day One (Monday)

Transactions and the UTXO Model

The Bitcoin system models itself in many ways to behave like a digital gold. This seriously informed its choice in a unique accounting system: the UTXO Model.

A traditional electronic system for transferring value involves accounts and balances. This differs from Bitcoin's UTXO model where UTXOs (unspent transaction outputs) are (like gold) in and of themselves the bearer instruments of value.

Day Two (Wednesday)

Transaction Pools and the UTXO Set

UTXOs are the basis of "currency" in the Bitcoin system. Determining which transactions are valid involves checking against the so-called UTXO set, to see which coins are available for spending. Valid transactions awaiting finalization in Blocks are collected in Transaction Pools.

By convention, peers mutually agree to propogate all valid transactions to all known peers on the network. This greatly contributes to Bitcoin's censorship resistance.

Day Three (Saturday)

Networking P2P Messaging and ECDSA

Bitcoin is a Peer-to-Peer network. This architecture is critical to Bitcoin's decentralization and censorship resistance. Your project will implement a rudimentary P2P networking system over LAN. This includes working through peer seeding and peer discovery strategies, and implementing behaviors specific to Bitcoin (e.g. healthy broadcasting and propagation of Transactions and Blocks) that are critical to network success.

We will also revisit Transactions by diving deep into the mathematics behind Elliptic Curve Cryptography and it's signing process (ECDSA). Bitcoin uses this (public/private key cryptography) to prove ownership of UTXOs on the network.

Day Four (Monday)

Blocks and Block Construction

Blocks are groups of transactions which collectively form the blockchain. Blocks are composed of two structures: a Block Header and Transactions. Each Block Header includes a unique fingerprint of it's own transactions, as well as the fingerprint of the block that came before it. This is directly responsible for Bitcoin's "tamper resistance".

Day Five (Wednesday)

Blockchains, Mining and Proof of Work

Mining and Proof of Work are the last pieces to the puzzle and the core innovation behind Bitcoin. Proof of work serves many purposes, among them preventing spam attacks and allowing the network to proceed at a predictable rate. It also facillitates the minting and distribution of new currency in the network, rewarding those who likely have the highest interest in network success.

Bitcoin's security model in this area is based on economic incentives. Understanding this security model will reveal the ways in which Bitcoin is vulnerable, and in what ways it can retaliate against bad actors.

Day Six (Saturday)

Forks, Scalability and Consensus

Blockchain reorganizations (a partial replacement of the most recent blocks in the canonical blockchain with different blocks) can be a trivial consequence of Bitcoin's Proof of Work and P2P architecture. But it can also be a vital tool in allowing network participants to exit the network and "fork" into their own set of consensus rules.

Here we will learn how network participants agree (informally) and implement (formally) changes to the Bitcoin protocol, and what happens when adoption of a protocol change is controversial.

We will end with a discussion of Bitcoin's limitations, (such as expressivity, scalability, privacy) and what major projects are doing to address these limitations.

Blockchain Fundamentals

Price - Early Bird: ¥225,000 | Regular: ¥250,000

Location
  • Moto-Azabu (near Roppongi Hills), Minato Ward, Tokyo
Duration
  • 2 weeks; approx. 28 hours of class time
Class Times
  • Monday: 7:00pm – 10:00pm
  • Wednesday: 7:00pm – 10:00pm
  • Saturday: 9:00am – 6:00pm
Course DatesEarly Bird DeadlineFinal Deadline
March 11 - March 23, 2019February 25, 2019March 9 , 2019

About the Instructor

Dylan Tran is an instructor at Code Chrysalis and long-time cryptocurrency advocate. Prior to joining Code Chrysalis, Dylan worked at Coins.ph, the Philippines' largest cryptocurrency wallet, and helped launch version one of their cryptocurrency exchange, Coins Pro.