423 / 736SONG

Jimmy Song

Programming Bitcoin著者、プログラミング講師

ウォレットで「送信」を押すと、内部では何が起こるのでしょうか。Jimmy Songは各段階を自分でプログラムしながら理解する方法を教えます。Programming Bitcoinは数学と具体的な取引を結び、検証という言葉の意味を実感できる本です。

Jimmy Songは開発者、講師、Programming Bitcoinの著者です。Pythonの例を使い、Bitcoinの取引、鍵、デジタル署名を教えます。完成品のアプリに任せるだけでなく、小さな道具を順に作って結果を見る実践的な方法です。技術書に加え、お金と社会についての意見も発表しています。その議論には、プログラミング演習とは別の種類の証拠が必要です。

Songの略歴には開発業務とProgramming Blockchain講座が記載され、O’ReillyもProgramming Bitcoinの著者と確認しています。共通するのは自分で試す学習です。原理の名前を知るだけでは理解したことになりません。実装するには、入力するデータと返すべき結果を把握する必要があります。ただし、開発者という呼称だけでBitcoin Coreの保守担当になったり、他の利用者に代わって規則を決められたりするわけではありません。 [1] [2]

Programming Bitcoinは2019年にO’Reillyから出版されました。最初は有限体、つまり有限個の要素の中で厳密な規則に従う計算と、扱う署名の数学的基礎となる楕円曲線です。その後に鍵、署名、取引、コンピューター間のメッセージが続きます。読者は他のプログラムで使える関数の集まり、Pythonライブラリを作ります。署名が機能すると信じるだけでなく、計算を追えるのです。ボタンの操作を越えて、ウォレットの内部を理解する道筋になります。 [2]

取引を受け取ったプログラムを考えましょう。まず各部分を識別します。このようなデータの分解をパースと呼びます。通常の入力は過去の出力、つまり支出条件を持つ特定の金額を参照します。次に、署名などの条件が満たされているかを調べます。しかし正しい署名だけでは、その出力がまだ未使用かどうかはわかりません。チェーンの状態との照合も必要です。Songの演習は、読めるデータ、支出の許可、取引全体の有効性を区別する助けになります。 [3]

数学的に正しい結果は重要ですが、安全な署名プログラムにはさらに条件があります。libsecp256k1は秘密鍵を扱う際の一定時間処理やメモリアクセスにも取り組んでいます。計算の振る舞いから秘密の情報が観察者に漏れるのを避けるためです。これは演習で正解を出すこととは別の問題です。原理を学ぶためのコードは、同じ試験署名を正しく検証できても、実際の資金向けに検討された暗号ライブラリを自動的に代替できません。 [4]

programmingbitcoinリポジトリには章の資料とJupyter Notebookの説明があります。これは文章、実行できるコード、結果をまとめる環境です。演習の再現にはコードの版と依存関係、つまり利用する他のパッケージも関わります。古い導入手順は、そのまま現在の推奨版になるわけではありません。環境を記録すると結果の違いを説明しやすくなります。他人のコンピューターで動いたことは、自分の実行を確かめる代わりにはなりません。 [5]

2019年の本は、さらに文書を読むための土台になります。ただし、その後のすべての拡張を扱うとは考えられません。例えば現在のlibsecp256k1は、Bitcoinで使われる別の署名方式を定めたBIP340のSchnorr signaturesも提供しています。特定の版が説明する内容と、現在のライブラリの機能は分けて考える必要があります。関数を呼び出す方法であるインターフェースを使う際は、該当する版の文書が重要です。 [2] [4]

2023年のFiat Ruins EverythingでSongは、fiat money、つまり一般的な国家の通貨が制度を大きく左右し、Bitcoinが改善策になると論じます。ここで読むのは社会についての著者の解釈であり、署名検証の手順ではありません。主張にはそれ自体の論拠が必要です。暗号技術の演習に正解しても社会的な主張の証明にはならず、経済観への反対だけで技術説明が否定されるわけでもありません。それぞれ適切な証拠で評価できます。 [6]

Songのサイトは、デジタル署名の道具PGPとファイルの指紋を作る関数SHA-256で、サイン入り品の写真を検証する方法を紹介しています。指紋の一致は同じファイルかを確かめる助けとなり、有効な署名は署名対象のデータと鍵を結びつけます。その鍵が誰のものかは別に確認が必要です。今回の確認時、ページは新旧鍵の表示に矛盾があるため、短い識別子を確認済みの身元として転載しません。データを調べることと出所を信頼することは別の段階です。 [7]

理解を深めるには、この項目とあわせて次もお読みください Alex Gladstein, Bitcoin Script, Private Key. 次の項目からも参照されています ハッカーズ・コングレス・パラレルニ・ポリス, Cathie Wood.

DOC · 001Jimmy Song — biography一次資料 DOC · 002O’Reilly — Programming Bitcoin (2019)一次資料 DOC · 003Bitcoin developer guide — Transactions一次資料 DOC · 004libsecp256k1 — implementation requirements一次資料 DOC · 005Jimmy Song — Programming Bitcoin repository一次資料 DOC · 006Jimmy Song — Fiat Ruins Everything一次資料 DOC · 007Jimmy Song — PGP signature verification一次資料
改訂日: 一次資料を優先 · 投資助言ではありません