ハッシュ関数から、ブロックの鎖・マイニング・楕円曲線と署名・UTXO 取引・分散合意、そしてスマートコントラクトの仮想マシンまで。全30レッスンで「ビットコインとイーサリアムの中身を、自分の手で組み立てられる」ところまで進みます。使うのは Python の標準ライブラリだけで、外部ライブラリは1つも入れません。
全30レッスンを6つの章に分けています。第1章から順に進めるのがおすすめですが、 気になるところだけ拾い読みしてもかまいません。 ※ 標準ライブラリだけの短いコードは、ブラウザ上でそのまま実行できます。共通部品(common/)を使う回は、手元の Python 3 でサンプルコードを動かしてください(教材の出力はすべて Python 3.14.2 で実際に実行したものです)。
管理者のいない台帳が何を解いた技術なのかを整理し、その土台になるハッシュ関数を手で確かめます。ブロックを鎖でつなぎ、マークルツリーで取引をまとめ、最後はプルーフオブワークと難易度調整まで作ります。
台帳に「誰が」を持ち込む章です。secp256k1 の点の足し算から始めて、秘密鍵と公開鍵、ECDSA 署名、ビットコインアドレスまでを自分の手で作ります。最後は 12 単語のニーモニックと HD ウォレットで、1 つの種から鍵を無限に生やすところまで進みます。
「残高」という数字が存在しない UTXO モデルを理解し、取引を手で組み立てて署名します。同じコインを2人に送る二重支払いを実際に試して、それがノードのどこで止まるのかを確かめ、最後はウォレットの UTXO 選びとお釣りの計算まで作ります。
取引がブロックに入るまでの待合室と手数料市場、コインが生まれる仕組みと半減期を作ります。そのあと複数のマイナーがいる世界へ進み、フォークの決着のつけ方と、それを逆手に取る 51% 攻撃を実際に再現します。
舞台をビットコインからイーサリアムへ移し、アカウントモデルの世界観を押さえます。そのうえでスタックマシンとしての EVM を自分で作り、ストレージ・ガス・calldata というスマートコントラクトの三本柱を、命令の単位で理解します。
JUMP だけで if と while を組み立て、イベントで外の世界に通知し、契約から契約を呼びます。最後は ERC-20 トークンを作り、全30回の部品を1本のチェーンに載せて頭から通します。
全30レッスンを終えたら、土台を固め直す Python 入門や、攻撃と防御の視点を足す Python セキュリティ入門へ。メンバーシップで全コースが解放されます。