図鑑
オープンソース図鑑
ビットコインを支えるプロジェクト
中級者向け ・ くわしく読みたい人へ
ビッツ
ビットコインは、世界中の人がだれでも読めて直せるオープンソースで動いているんだ。
ビッツ
ノード、改良提案(BIP)、ライトニング、ウォレット、学ぶための資料まで。リンクから実際のリポジトリものぞけるよ。
23件を表示中
No.01ノードと基盤
Bitcoin Coreビットコインの基準となるソフト
ネットワークのルールを守る「フルノード」の、もっとも広く使われる実装。
- 始まり
- 2009年(サトシの v0.1)
- 言語
- C++
- ライセンス
- MIT
- 中心人物
- サトシ → ギャビン → ファン・デル・ラーン → 複数のメンテナー
サトシが書いた最初のソフトを受け継ぐ、ビットコインの事実上の基準となる実装。ブロックと取引をすべて自分で検証するフルノード(bitcoind)、ウォレット、画面つきのソフト(bitcoin-qt)を含む。2014年の v0.9.0 で「Bitcoin Core」という名前になり、2021年の v22.0 からは版番号の付け方が変わった。おおむね半年ごとに新しい版が出る。
年表
- 2009年1月
- v0.1 公開
- 2014年3月
- v0.9.0 で「Bitcoin Core」に改名
- 2017年
- v0.13.1〜で SegWit に対応
- 2021年
- v22.0 から新しい版番号に
- 2025年10月
- v30.0 で、取引に入れられるデータ(OP_RETURN)の上限を80バイトから大きく広げ、賛否の大論争に
技術メモ
- ルールの変更は、コードを書く人だけでは決まらない。ノードを動かす人がどの版を使うかで、最終的に決まる。
- 変更は GitHub での公開レビューを経て取りこまれる。
自分でフルノードを動かすと、だれも信用せずに残高を確かめられるよ。
資料:GitHub ↗
No.02ノードと基盤
BIPBitcoin Improvement Proposals
ビットコインの改良を提案し、議論するための文書の仕組み。
- 始まり
- 2011年(BIP1)
- 形式
- 決まった書式の提案文書
- 中心人物
- アミール・ターキ(BIP1)、ルーク・ダッシュジュニア(BIP2)
新しい機能やルールの変更は、まず BIP という番号つきの文書にまとめられ、公開の場で議論される。BIP には、ルールそのものを変える「コンセンサス」、ウォレットどうしの約束ごとを決める「情報」などの種類がある。BIP になったからといって、自動的に採用されるわけではない。
年表
- 2011年
- BIP1 で仕組みが決まる
- 2016年
- BIP2 で進め方を改訂
技術メモ
- 有名な BIP:BIP32(HDウォレット)、BIP39(シードフレーズ)、BIP141(SegWit)、BIP174(PSBT)、BIP340〜342(Taproot)。
番号を覚えておくと、ニュースや技術記事が読みやすくなるよ。
資料:GitHub ↗
No.03ノードと基盤
libsecp256k1署名の計算ライブラリ
ビットコインの電子署名を、速く安全に計算するためのライブラリ。
- 始まり
- 2013年ごろ
- 言語
- C
- ライセンス
- MIT
- 中心人物
- ピーター・ウィール ほか
ビットコインが使う楕円曲線「secp256k1」での署名の作成と検証に特化したライブラリ。Bitcoin Core は、署名の検証にこのライブラリを使うことで、処理を大きく速くした。Taproot で使われる Schnorr 署名(BIP340)にも対応している。
年表
- 2013年ごろ
- 開発が始まる
- 2016年
- Bitcoin Core が署名の検証に使いはじめる
- 2020年ごろ
- Schnorr 署名(BIP340)に対応
技術メモ
- 計算にかかる時間が秘密の値によって変わらないように作られ、盗み見の攻撃に強い。
目立たないけど、毎日すべての取引の検証を支えているんだ。
資料:GitHub ↗
No.04ノードと基盤
btcdGo で書かれたフルノード
Bitcoin Core とは別に書かれた、もう1つのフルノード実装。
- 始まり
- 2013年ごろ
- 言語
- Go
- ライセンス
- ISC
Go 言語でゼロから書かれたフルノード。ライブラリとしても使いやすく、ライトニングの実装 LND は btcd の部品を多く使っている。Bitcoin Core と同じルールで動くよう、丁寧に互換性を保っている。
年表
- 2013年ごろ
- 開発が始まる
技術メモ
- 別の実装があると、1つのソフトのバグがネットワーク全体に広がるリスクを分散できる。一方で、実装ごとの小さな違いが分裂の原因になる危険もある。
資料:GitHub ↗
No.05ノードと基盤
Bitcoin KnotsBitcoin Core の派生版
Bitcoin Core に独自の機能や設定を加えたノードソフト。
- 言語
- C++
- ライセンス
- MIT
- 中心人物
- ルーク・ダッシュジュニア
Bitcoin Core をもとに、追加の機能や、ブロックに中継する取引の選び方などをより細かく設定できるようにした派生版。コンセンサスのルールは Core と同じで、同じネットワークで動く。2025年には、取引に入れるデータ(OP_RETURN)の扱いをめぐる議論をきっかけに、利用者が増えた。
年表
- 2011年ごろ〜
- Core への独自パッチ集として始まる
- 2025年10月
- Bitcoin Core v30 が OP_RETURN の上限を大きく広げ、反対する人の一部が Knots に移る
技術メモ
- どの取引を中継するかの「ポリシー」はノードごとに選べる。ブロックが有効かどうかの「コンセンサス」とは別物。
資料:公式サイト ↗
No.06アップグレード(BIP)
BIP32(HDウォレット)1つの種から無数の鍵を作る
1つの「種(シード)」から、木のように無数の鍵を作る仕組み。
- 提案
- 2012年
- 提案者
- ピーター・ウィール
- 関連
- BIP39(シードフレーズ)、BIP44(鍵の道すじ)
昔のウォレットは鍵を1つずつ作って保存していたため、バックアップが大変だった。BIP32 では、1つのシードから決まった計算で鍵を次々に作れる。BIP39 の12〜24個の英単語(シードフレーズ)と組み合わせることで、単語をメモしておけばウォレット全体を復元できるようになった。
年表
- 2012年
- BIP32 を提案
- 2013年
- BIP39(シードフレーズ)が提案される
技術メモ
- シードフレーズを知られると、そこから作られる全部の鍵を知られるのと同じ。だから絶対に人に見せない。
第6章の「シードフレーズは命綱」は、この仕組みのせいなんだ。
資料:BIP32 ↗
No.07アップグレード(BIP)
SegWitSegregated Witness(BIP141 ほか)
署名のデータを分けて持つことで、取引の弱点を直し、ブロックの容量を増やした改良。
- 有効化
- 2017年8月24日(ブロック 481,824)
- 提案者
- エリック・ロンブロゾ、ジョンソン・ラウ、ピーター・ウィール
- アドレス
- bc1q で始まる(bech32)
取引の「署名」部分を取引IDの計算から切り離した。これにより、取引IDが第三者に書き換えられてしまう「マリアビリティ」の問題が直り、ライトニングのような仕組みを安全に作れるようになった。ブロックの大きさを「重さ(ウェイト)」で数える方式になり、実質的に入る取引も増えた。古いノードとも互換性を保つ「ソフトフォーク」として導入された。
年表
- 2015〜2016年
- 設計と提案
- 2017年8月
- ビットコインキャッシュの分裂と同じ月に有効化
技術メモ
- ブロックの上限は 400万ウェイト単位。署名部分は軽く数えられる。
- ブロックサイズ論争の中心にあった改良。
資料:BIP141 ↗
No.08アップグレード(BIP)
TaprootBIP340・341・342
Schnorr 署名と新しいスクリプトの形で、複雑な取引をより小さく、目立たなくした改良。
- 有効化
- 2021年11月14日(ブロック 709,632)
- 提案者
- ピーター・ウィール、ジョナス・ニック、アンソニー・タウンズ、ティム・ラッフィング ほか
- アドレス
- bc1p で始まる(bech32m)
複数人の署名を1つにまとめられる Schnorr 署名(BIP340)と、条件の多い取引でも「実際に使った条件」だけを公開すればよい仕組み(BIP341・342)を導入した。うまくいった場合の取引は、ふつうの1人の送金と見分けがつきにくくなり、プライバシーと効率が上がった。2017年の SegWit 以来の大きなソフトフォーク。
年表
- 2018年1月
- グレゴリー・マクスウェルがアイデアを発表
- 2021年6月
- マイナーの合意(Speedy Trial)で導入が確定
- 2021年11月
- 有効化
技術メモ
- マルチシグや時間ロックなどの複雑な条件が、ふだんは隠れたままになる。
資料:BIP341 ↗
No.09アップグレード(BIP)
PSBTPartially Signed Bitcoin Transactions(BIP174)
署名する前の取引を、機器や人のあいだで受け渡すための共通の形式。
- 提案
- 2017年
- 提案者
- アンドリュー・チョウ
- 後継
- PSBT v2(BIP370)
ウォレットのアプリで取引を組み立て、オフラインのハードウェアウォレットで署名し、また戻してネットワークに送る……という流れを、メーカーやソフトが違っても同じ形式でできるようにした。複数人の署名が必要なマルチシグでも、順番に署名を集めやすくなった。
年表
- 2017年
- BIP174 を提案
技術メモ
- 秘密鍵をネットにつながった機器に置かずに済むので、安全性が上がる。
資料:BIP174 ↗
No.10アップグレード(BIP)
Miniscriptスクリプトを安全に書くための言語
複雑な支払い条件を、安全に組み立てて分析できるようにした書き方。
- 発表
- 2019年
- 考案者
- ピーター・ウィール、アンドリュー・ポールストラ、サンケット・カンジャルカー
ビットコインのスクリプトは、書き方を間違えると資金が引き出せなくなる危険がある。Miniscript は、「AさんとBさんの署名、または90日後ならCさん1人」のような条件を、部品を組み合わせて書き、必要な署名や手数料を自動で分析できるようにした。Bitcoin Core のウォレットも2022〜2023年ごろから対応を進めている。
年表
- 2019年
- 発表
技術メモ
- 相続や会社の資金管理など、「もしもの時」の条件を安全に作るのに役立つ。
むずかしい条件も、パズルのように組み立てられるんだ。
資料:解説サイト ↗
No.11ライトニング
ライトニング(BOLT)Basis of Lightning Technology
ライトニングネットワークの共通の仕様書。
- 論文
- 2015〜2016年(ジョセフ・プーン、タデウス・ドライジャ)
- 仕様
- BOLT #1〜(複数の実装が共通で守る約束ごと)
ライトニングは、2人のあいだに「支払いチャネル」を開き、その中で何度でもすぐに送金し、最後の結果だけをブロックチェーンに記録する仕組み。チャネルをつなげれば、直接チャネルがない相手にも途中の人を信頼せずに送れる。BOLT は、LND・Core Lightning・Eclair・LDK など、別々の会社が作る実装が互いに通信できるようにするための仕様で、2017年に最初の互換性テストが行われた。
年表
- 2016年1月
- 論文の改訂版
- 2017年
- SegWit の有効化と、実装間の互換性テスト
- 2018年
- メインネットで本格的に使われはじめる
技術メモ
- ブロックチェーンに書かれるのはチャネルの開閉だけなので、手数料が安く、速い。
- チャネルを開いている間はオンラインでいる必要があるなど、独自の注意点もある。
資料:GitHub ↗
No.12ライトニング
LNDLightning Network Daemon
もっとも広く使われるライトニングの実装の1つ。
- 開発
- Lightning Labs
- 言語
- Go
- ライセンス
- MIT
- 公開
- 2018年3月(メインネット向けベータ)
Lightning Labs が開発する実装で、多くのウォレットやノード用の製品の裏側で動いている。btcd の部品を使って Go で書かれている。ライトニング上でビットコイン以外の資産を扱う Taproot Assets なども同じ会社が開発している。
年表
- 2016年
- Lightning Labs 設立
- 2018年3月
- メインネット向けベータ公開
ライトニングの入り口として、まず名前を聞く実装だよ。
資料:GitHub ↗
No.13ライトニング
Core Lightning旧名 c-lightning
プラグインで機能を足せる、軽いライトニングの実装。
- 開発
- Blockstream
- 言語
- C
- 改名
- 2022年に c-lightning から
Blockstream が開発する実装。本体は小さく保ち、必要な機能をプラグインとして追加できる設計が特徴。BOLT の仕様づくりにも深く関わってきた。
年表
- 2022年
- c-lightning から Core Lightning に改名
資料:GitHub ↗
No.14ライトニング
EclairACINQ のライトニング実装
スマホ向けウォレット Phoenix を支えるライトニングの実装。
- 開発
- ACINQ(フランス)
- 言語
- Scala
- ライセンス
- Apache 2.0
フランスの ACINQ 社が開発する実装。同社のスマホ向けウォレット Phoenix は、チャネルの管理をほぼ自動にして、ライトニングを初心者でも使いやすくした。
資料:GitHub ↗
No.15ライトニング
LDKLightning Development Kit
アプリにライトニングを組みこむための部品集。
- 始まり
- 2018年ごろ(rust-lightning)
- 言語
- Rust
- 中心人物
- マット・コラロ ほか
完成したノードソフトではなく、ウォレットやサービスの開発者が自分のアプリにライトニングの機能を組みこむためのライブラリ。鍵の管理やデータの保存方法をアプリ側で自由に決められる。
年表
- 2018年ごろ
- rust-lightning として始まる
「ライトニングを自分のアプリに」というときの道具箱だよ。
資料:GitHub ↗
No.16ウォレットとツール
Electrum長寿の軽量ウォレット
ブロックチェーン全体を持たずに使える、PC 向けの軽量ウォレット。
- 始まり
- 2011年
- 言語
- Python
- ライセンス
- MIT
- 作者
- トーマス・フォークトリン
Electrum サーバーに問い合わせることで、フルノードなしでも残高確認や送金ができる。マルチシグ、ハードウェアウォレット、ライトニング(4.0 以降)にも対応する。2018〜2019年には、悪意のあるサーバーが偽の「アップデート通知」を表示して利用者をだます事件が起き、公式サイト以外からダウンロードしない大切さが知られるようになった。
年表
- 2011年
- 公開
- 2020年
- 4.0 でライトニングに対応
技術メモ
- 軽い代わりに、接続するサーバーをある程度信頼することになる。自分のフルノードにつなぐこともできる。
資料:GitHub ↗
No.17ウォレットとツール
Sparrow Wallet細かく管理できるデスクトップウォレット
コインの一枚一枚(UTXO)まで見て管理できるウォレット。
- 始まり
- 2020年
- 言語
- Java
- ライセンス
- Apache 2.0
- 作者
- クレイグ・ロー
取引の中身や、どのコイン(UTXO)を使うかを細かく選べるのが特徴。ハードウェアウォレットや PSBT、マルチシグに強く、自分のフルノードへの接続もかんたん。中級者が「中身を理解しながら使う」のに向いている。
年表
- 2020年
- 公開
技術メモ
- 使うコインを選べると、不要な情報のつながりを減らしてプライバシーを守りやすい。
資料:GitHub ↗
No.18ウォレットとツール
BTCPay Server自分で運営する決済サーバー
お店が手数料なしで、自分でビットコイン決済を受け付けられるソフト。
- 始まり
- 2017年
- 言語
- C#
- ライセンス
- MIT
- 作者
- ニコラ・ドリエ
決済会社を通さずに、お店が自分のサーバーと自分の鍵でビットコインを受け取れる。ネットショップ用のプラグインやライトニングにも対応し、世界中の店や寄付の受付に使われている。
年表
- 2017年
- 公開
技術メモ
- 「預ける会社」を間にはさまないので、決済会社の破綻や凍結の心配がない。
第4・5章の「預かる会社」問題への、ひとつの答えだね。
資料:GitHub ↗
No.19ウォレットとツール
mempool.spaceオープンソースのブロックエクスプローラー
未承認の取引の混み具合や、ブロックの中身を見られるサイトとソフト。
- 言語
- TypeScript ほか
- ライセンス
- AGPL-3.0
承認待ちの取引(メモリプール)がどれだけたまっているか、どのくらいの手数料なら次のブロックに入りそうかを、目で見て分かるようにしたツール。ソフトはオープンソースで、自分のノードの上で動かすこともできる。
技術メモ
- 自分で動かせば、調べた取引の情報を他人のサーバーに知らせずに済む。
このサイトの「当時の実物」カードのリンク先にも使っているよ。
資料:GitHub ↗サイト ↗
No.20ウォレットとツール
bitcoinjJava のビットコインライブラリ
スマホなどの軽いウォレットを作るための初期の定番ライブラリ。
- 始まり
- 2011年
- 言語
- Java
- ライセンス
- Apache 2.0
- 作者
- マイク・ハーン
フルノードなしで動く軽いクライアント(SPV)をかんたんに作れるようにした。初期の Android ウォレットの多くがこのライブラリを使っていた。
年表
- 2011年
- 公開
資料:GitHub ↗
No.21ウォレットとツール
BDKBitcoin Dev Kit
ウォレットを作るための、新しい世代の部品集。
- 始まり
- 2020年ごろ
- 言語
- Rust
ディスクリプターや PSBT など今のビットコインの仕組みを前提に、ウォレットを作るための部品をまとめたライブラリ。スマホ向けなど、いろいろな言語から使えるようにする取り組みも進んでいる。LDK と組み合わせて使われることも多い。
年表
- 2020年ごろ
- 開発が始まる
新しくウォレットを作るなら、まず候補に上がる道具だよ。
資料:GitHub ↗
No.22学ぶ
Mastering Bitcoinオープンな技術書
ビットコインの仕組みを、開発者向けにくわしく解説した定番の本。
- 初版
- 2014年
- 最新
- 第3版(2023年)
- 著者
- アンドレアス・アントノプロス、デイビッド・ハーディング(第3版)
- ライセンス
- CC BY-SA
鍵とアドレス、取引、スクリプト、ネットワーク、マイニングまで、ビットコインの中身を順を追って解説する。本文はオープンなライセンスで GitHub に公開されていて、だれでも読める。第3版では Taproot など新しい内容も加わった。
年表
- 2014年
- 初版
- 2017年
- 第2版
- 2023年
- 第3版
資料:GitHub ↗
No.23学ぶ
Bitcoin Optech開発の動きを伝えるニュースレター
ビットコインの技術の最新の動きを、毎週まとめて伝えるニュースレター。
- 始まり
- 2018年
- 形式
- 毎週のニュースレター(オープンソースで公開)
Bitcoin Core やライトニングの変更、新しい BIP の議論などを、企業やエンジニア向けに分かりやすく整理して毎週届けている。用語集やテーマ別のまとめもあり、中級者が最新の議論を追うのに役立つ。
年表
- 2018年
- 発行開始
資料:サイト ↗