第3回まで無料

ブロックチェーン入門コース

ハッシュ関数から、ブロックの鎖・マイニング・楕円曲線と署名・UTXO 取引・分散合意、そしてスマートコントラクトの仮想マシンまで。全30レッスンで「ビットコインとイーサリアムの中身を、自分の手で組み立てられる」ところまで進みます。使うのは Python の標準ライブラリだけで、外部ライブラリは1つも入れません。

カリキュラム

全30レッスンを6つの章に分けています。第1章から順に進めるのがおすすめですが、 気になるところだけ拾い読みしてもかまいません。 ※ 標準ライブラリだけの短いコードは、ブラウザ上でそのまま実行できます。共通部品(common/)を使う回は、手元の Python 3 でサンプルコードを動かしてください(教材の出力はすべて Python 3.14.2 で実際に実行したものです)。

Chapter 1 — ハッシュとブロック(第1〜6回)

管理者のいない台帳が何を解いた技術なのかを整理し、その土台になるハッシュ関数を手で確かめます。ブロックを鎖でつなぎ、マークルツリーで取引をまとめ、最後はプルーフオブワークと難易度調整まで作ります。

Chapter 2 — 鍵・署名・ウォレット(第7〜12回)

台帳に「誰が」を持ち込む章です。secp256k1 の点の足し算から始めて、秘密鍵と公開鍵、ECDSA 署名、ビットコインアドレスまでを自分の手で作ります。最後は 12 単語のニーモニックと HD ウォレットで、1 つの種から鍵を無限に生やすところまで進みます。

7

楕円曲線 secp256k1 を足し算から作る

y² = x³ + 7 の上で点を足す。スカラー倍が速いのに逆算できない離散対数問題が、そのまま鍵ペアになる。

🔒 ベーシック
8

秘密鍵はただの整数、公開鍵はただの点

秘密鍵は 1〜N 未満の整数、公開鍵はそれを G 倍した点。鍵を作るときの乱数の選び方と、33バイトの圧縮公開鍵まで。

🔒 ベーシック
9

ECDSA で本人を証明する

秘密鍵を見せずに「本人が署名した」だけを証明する。改ざんが弾かれること、k の使い回しが鍵漏洩に直結すること、RFC 6979 の決定的署名まで。

🔒 ベーシック
10

アドレスと Base58Check

公開鍵を hash160 で 20 バイトに縮め、Base58Check で包む。秘密鍵 1 から本物のアドレスを作って答え合わせし、チェックサムが誤送金を弾く仕組みまで。

🔒 ベーシック
11

ニーモニック(BIP39)の作り方

エントロピーを11ビットずつ区切って2048語の辞書番号に置き換える。チェックサムが写し間違いを検出する割合と、PBKDF2 でシードを作る公式手順まで。

🔒 ベーシック
12

HD ウォレット(BIP32)で鍵を無限に生やす

1つのシードから木構造で鍵を導出する。毎回違うアドレスの正体、xpub で秘密鍵を渡さずに入金先を配る方法、強化導出という安全装置まで。

🔒 ベーシック

Chapter 3 — 取引と UTXO(第13〜16回)

「残高」という数字が存在しない UTXO モデルを理解し、取引を手で組み立てて署名します。同じコインを2人に送る二重支払いを実際に試して、それがノードのどこで止まるのかを確かめ、最後はウォレットの UTXO 選びとお釣りの計算まで作ります。

Chapter 4 — ネットワークと合意(第17〜20回)

取引がブロックに入るまでの待合室と手数料市場、コインが生まれる仕組みと半減期を作ります。そのあと複数のマイナーがいる世界へ進み、フォークの決着のつけ方と、それを逆手に取る 51% 攻撃を実際に再現します。

Chapter 5 — EVM の仕組み(第21〜25回)

舞台をビットコインからイーサリアムへ移し、アカウントモデルの世界観を押さえます。そのうえでスタックマシンとしての EVM を自分で作り、ストレージ・ガス・calldata というスマートコントラクトの三本柱を、命令の単位で理解します。

Chapter 6 — コントラクトを書く(第26〜30回)

JUMP だけで if と while を組み立て、イベントで外の世界に通知し、契約から契約を呼びます。最後は ERC-20 トークンを作り、全30回の部品を1本のチェーンに載せて頭から通します。

全30レッスンを終えたら、土台を固め直す Python 入門や、攻撃と防御の視点を足す Python セキュリティ入門へ。メンバーシップで全コースが解放されます。