ビットコイン・インスティテュート

Bitcoin Core v0.1コードウォークスルー — Forensicxsに​よる​31,794行分析

濃紺地に、コードエディター風ウィンドウへ虫眼鏡が重なった図、金色とティール色に二分割された横棒グラフ、南京錠・ひし形・ノードの点・ウォレット・積み重ねたバーのアイコンを収めた五枚のカード、丸い目盛りが並び琥珀色の印が一つ付いた横長の年表を配置したインフォグラフィック風のイラスト。

2024年8月6日、サイバーセキュリティ研究者Forensicxsが「Bitcoin Core v0.1: コードウォークスルー」を公開した。同記事は、2009年1月8日にリリースされたサトシ・ナカモトのオリジナルのビットコインソースコードの包括的な分析である。

範囲: ForensicxsはBitcoin v0.1コードベースを31,794行(31ファイル)として分析している。C++ で記述され、MIT X11ライセンスの下でリリースされている。

なお本アーカイブのソースコード分析では、ローカル一次ソース上のv0.1系C++/ヘッダー行数は約19,901行、v0.3.19までに31,909行へ増えるものとして扱う。したがって31,794行はForensicxs記事内のカウントであり、本アーカイブの基準値ではない(カウント対象ファイル・空行・コメント・wxWidgetsヘッダー扱いなどの差で値がずれる)。

主な発見

  • コード分布: wxWidgets GUIの実装が約18,000行(最大の単一コンポーネント)を占めた。ブロックチェーン操作、データベース管理、ネットワーキング、スクリプティングが残りの約13,000行を構成した。

  • アーキテクチャ: 分析はコードベースを以下のカテゴリに分類した。いずれも本アーカイブが同じ主題を扱う設計文書と対応している:

  • v0.1にハードコードされた技術パラメーター: コインベース成熟度100ブロック、難易度調整幅25%〜400%、目標ブロック間隔10分。

31,794行というコード行数は、The New Yorkerの2011年10月の記事でジョシュア・デイヴィスが、サトシが2009年1月に生み出したビットコインの規模として挙げた「3万1000行のコード」と整合している。同じ記事はダン・カミンスキーによるビットコインのコード分析を取り上げており、カミンスキーは悪用可能な欠陥を見つけられなかった。