理系学生日記

おまえはいつまで学生気分なのか

「Bitcoin Developer Guide」を読んだ

ここ 1 週間くらいずっと Bitcoin の勉強をしていたのですが、2 日くらいかけて Bitcoin Developer Guide を読みました。

Bitcoin Developer Guide は、bitcoin.org で公開されている Bitcoin 開発者向けのドキュメントです。 じゃぁ bitcoin.org とは何かという話になるのですが、もともとは Bitcoin Core という bitcoin のリファレンス実装をリリースしていたところです。 まぁそういうところで発表されているガイドなので、これは結構ためになると思ったのですが、実際にすごく良い資料でした。

どういう資料なのか

Bitcoin Developer Guide は、Bitcoin を使ったアプリケーションの開発者に対し、Bitcoin の基礎を理解させるために作られた資料です。

大きくは、以下の章構成になっています。

  1. Block Chain
  2. Transactions
  3. Contracts
  4. Wallets
  5. Payment Processing
  6. Operating Modes
  7. P2P Network
  8. Mining

1 の Block Chain で、最初にブロックチェーンの基礎的な述べられます。Bitcoin 上で Proof of Work がどのように実装されているかや、Fork がどのようにして起こるのかが説明されます。 それから各章で、Bitcoin の特定領域の基礎とも言える情報が詳しく説明されていきます。 勉強しはじめて歴史の浅いぼくには、まだどこが「基礎」でどこが「応用」なのかというところは明確に分かっていないわけですが、

  • 3のContracts で説明されるエスクロー取引
    • 信頼のない二者間で、どのようにして取引を行うか
  • 4のWallet で説明される、ソフトウェアとしての Wallet が取るアーキテクチャの種類
  • 7のP2P Network で説明される Bitcoin としての P2P 通信の実現方法

などは、あまり考えたことのなかった領域でもあり、

  • ぼくたちの日常生活で行われる二者間取引との違い
  • 秘密鍵 (あるいはマスターキー) をとにかく守るためにどのようなアーキテクチャであるべきか

といった点は非常に参考になりました。

先日読んだ Mastering Bitcoin と結構な範囲が重複する内容ではあったのですが、これで 2 つのドキュメント・書籍に目を通せたことになります。

その結果、自分のどこの知識は正確でどこの知識が不正確なのかということが分かってきたのが収穫でした。 Bitcoin に関する多少技術的なエントリを書いても、まぁなんとかなるという自信も少し芽生えてきましたので、ちょっとずつ書いていきたいと思います。

ちなみにこの Bitcoin Developer Guide はまだ Beta 版という位置付けなので、その点はご注意ください。

BETA: This documentation has not been extensively reviewed by Bitcoin experts and so likely contains numerous errors. Please use the Issue and Edit links on the bottom left menu to help us improve. To close this disclaimer click here

迷ったら、BIP を確認するといったことが必要なのだと思います。