マンガで読む ビットコインの歴史
図鑑

オープンソース図鑑

ビットコインを支えるプロジェクト

中級者向け ・ くわしく読みたい人へ

ビッツ

ビットコインは、世界中の人がだれでも読めて直せるオープンソースで動いているんだ。

ミケ

どんなプロジェクトがあるの?

ビッツ

ノード、改良提案(BIP)、ライトニング、ウォレット、学ぶための資料まで。リンクから実際のリポジトリものぞけるよ。

23件を表示中

No.01ノードと基盤
bitcoind

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ノードと基盤
BIP

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ノードと基盤
secp256k1

libsecp256k1署名の計算ライブラリ

ビットコインの電子署名を、速く安全に計算するためのライブラリ。

始まり
2013年ごろ
言語
C
ライセンス
MIT
中心人物
ピーター・ウィール ほか

ビットコインが使う楕円曲線「secp256k1」での署名の作成と検証に特化したライブラリ。Bitcoin Core は、署名の検証にこのライブラリを使うことで、処理を大きく速くした。Taproot で使われる Schnorr 署名(BIP340)にも対応している。

年表

2013年ごろ
開発が始まる
2016年
Bitcoin Core が署名の検証に使いはじめる
2020年ごろ
Schnorr 署名(BIP340)に対応

技術メモ

  • 計算にかかる時間が秘密の値によって変わらないように作られ、盗み見の攻撃に強い。

目立たないけど、毎日すべての取引の検証を支えているんだ。

資料:GitHub ↗

No.04ノードと基盤
btcd

btcdGo で書かれたフルノード

Bitcoin Core とは別に書かれた、もう1つのフルノード実装。

始まり
2013年ごろ
言語
Go
ライセンス
ISC

Go 言語でゼロから書かれたフルノード。ライブラリとしても使いやすく、ライトニングの実装 LND は btcd の部品を多く使っている。Bitcoin Core と同じルールで動くよう、丁寧に互換性を保っている。

年表

2013年ごろ
開発が始まる

技術メモ

  • 別の実装があると、1つのソフトのバグがネットワーク全体に広がるリスクを分散できる。一方で、実装ごとの小さな違いが分裂の原因になる危険もある。

同じルールを、別の言葉で書き直したソフトなんだ。

関連:LND

資料:GitHub ↗

No.05ノードと基盤
Knots

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

BIP32(HDウォレット)1つの種から無数の鍵を作る

1つの「種(シード)」から、木のように無数の鍵を作る仕組み。

提案
2012年
提案者
ピーター・ウィール
関連
BIP39(シードフレーズ)、BIP44(鍵の道すじ)

昔のウォレットは鍵を1つずつ作って保存していたため、バックアップが大変だった。BIP32 では、1つのシードから決まった計算で鍵を次々に作れる。BIP39 の12〜24個の英単語(シードフレーズ)と組み合わせることで、単語をメモしておけばウォレット全体を復元できるようになった。

年表

2012年
BIP32 を提案
2013年
BIP39(シードフレーズ)が提案される

技術メモ

  • シードフレーズを知られると、そこから作られる全部の鍵を知られるのと同じ。だから絶対に人に見せない。

第6章の「シードフレーズは命綱」は、この仕組みのせいなんだ。

資料:BIP32 ↗

No.07アップグレード(BIP)
SegWit

SegWitSegregated Witness(BIP141 ほか)

署名のデータを分けて持つことで、取引の弱点を直し、ブロックの容量を増やした改良。

有効化
2017年8月24日(ブロック 481,824)
提案者
エリック・ロンブロゾ、ジョンソン・ラウ、ピーター・ウィール
アドレス
bc1q で始まる(bech32)

取引の「署名」部分を取引IDの計算から切り離した。これにより、取引IDが第三者に書き換えられてしまう「マリアビリティ」の問題が直り、ライトニングのような仕組みを安全に作れるようになった。ブロックの大きさを「重さ(ウェイト)」で数える方式になり、実質的に入る取引も増えた。古いノードとも互換性を保つ「ソフトフォーク」として導入された。

年表

2015〜2016年
設計と提案
2017年8月
ビットコインキャッシュの分裂と同じ月に有効化

技術メモ

  • ブロックの上限は 400万ウェイト単位。署名部分は軽く数えられる。
  • ブロックサイズ論争の中心にあった改良。

第4章の「分裂」のころに入った、大きな改良だよ。

資料:BIP141 ↗

No.08アップグレード(BIP)
Taproot

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月
有効化

技術メモ

  • マルチシグや時間ロックなどの複雑な条件が、ふだんは隠れたままになる。

第5章の最高値と同じ月に有効になったんだ。

資料:BIP341 ↗

No.09アップグレード(BIP)
PSBT

PSBTPartially Signed Bitcoin Transactions(BIP174)

署名する前の取引を、機器や人のあいだで受け渡すための共通の形式。

提案
2017年
提案者
アンドリュー・チョウ
後継
PSBT v2(BIP370)

ウォレットのアプリで取引を組み立て、オフラインのハードウェアウォレットで署名し、また戻してネットワークに送る……という流れを、メーカーやソフトが違っても同じ形式でできるようにした。複数人の署名が必要なマルチシグでも、順番に署名を集めやすくなった。

年表

2017年
BIP174 を提案

技術メモ

  • 秘密鍵をネットにつながった機器に置かずに済むので、安全性が上がる。

ハードウェアウォレットの「縁の下の力持ち」だよ。

資料:BIP174 ↗

No.10アップグレード(BIP)
Miniscript

Miniscriptスクリプトを安全に書くための言語

複雑な支払い条件を、安全に組み立てて分析できるようにした書き方。

発表
2019年
考案者
ピーター・ウィール、アンドリュー・ポールストラ、サンケット・カンジャルカー

ビットコインのスクリプトは、書き方を間違えると資金が引き出せなくなる危険がある。Miniscript は、「AさんとBさんの署名、または90日後ならCさん1人」のような条件を、部品を組み合わせて書き、必要な署名や手数料を自動で分析できるようにした。Bitcoin Core のウォレットも2022〜2023年ごろから対応を進めている。

年表

2019年
発表

技術メモ

  • 相続や会社の資金管理など、「もしもの時」の条件を安全に作るのに役立つ。

むずかしい条件も、パズルのように組み立てられるんだ。

資料:解説サイト ↗

No.11ライトニング
BOLT

ライトニング(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ライトニング
lnd

LNDLightning Network Daemon

もっとも広く使われるライトニングの実装の1つ。

開発
Lightning Labs
言語
Go
ライセンス
MIT
公開
2018年3月(メインネット向けベータ)

Lightning Labs が開発する実装で、多くのウォレットやノード用の製品の裏側で動いている。btcd の部品を使って Go で書かれている。ライトニング上でビットコイン以外の資産を扱う Taproot Assets なども同じ会社が開発している。

年表

2016年
Lightning Labs 設立
2018年3月
メインネット向けベータ公開

ライトニングの入り口として、まず名前を聞く実装だよ。

資料:GitHub ↗

No.13ライトニング
CLN

Core Lightning旧名 c-lightning

プラグインで機能を足せる、軽いライトニングの実装。

開発
Blockstream
言語
C
改名
2022年に c-lightning から

Blockstream が開発する実装。本体は小さく保ち、必要な機能をプラグインとして追加できる設計が特徴。BOLT の仕様づくりにも深く関わってきた。

年表

2022年
c-lightning から Core Lightning に改名

「自分好みに組み立てる」派の人に人気だよ。

関連:バック

資料:GitHub ↗

No.14ライトニング
Eclair

EclairACINQ のライトニング実装

スマホ向けウォレット Phoenix を支えるライトニングの実装。

開発
ACINQ(フランス)
言語
Scala
ライセンス
Apache 2.0

フランスの ACINQ 社が開発する実装。同社のスマホ向けウォレット Phoenix は、チャネルの管理をほぼ自動にして、ライトニングを初心者でも使いやすくした。

むずかしいチャネル管理を、裏でまかせられるんだ。

資料:GitHub ↗

No.15ライトニング
LDK

LDKLightning Development Kit

アプリにライトニングを組みこむための部品集。

始まり
2018年ごろ(rust-lightning)
言語
Rust
中心人物
マット・コラロ ほか

完成したノードソフトではなく、ウォレットやサービスの開発者が自分のアプリにライトニングの機能を組みこむためのライブラリ。鍵の管理やデータの保存方法をアプリ側で自由に決められる。

年表

2018年ごろ
rust-lightning として始まる

「ライトニングを自分のアプリに」というときの道具箱だよ。

資料:GitHub ↗

No.16ウォレットとツール
Electrum

Electrum長寿の軽量ウォレット

ブロックチェーン全体を持たずに使える、PC 向けの軽量ウォレット。

始まり
2011年
言語
Python
ライセンス
MIT
作者
トーマス・フォークトリン

Electrum サーバーに問い合わせることで、フルノードなしでも残高確認や送金ができる。マルチシグ、ハードウェアウォレット、ライトニング(4.0 以降)にも対応する。2018〜2019年には、悪意のあるサーバーが偽の「アップデート通知」を表示して利用者をだます事件が起き、公式サイト以外からダウンロードしない大切さが知られるようになった。

年表

2011年
公開
2020年
4.0 でライトニングに対応

技術メモ

  • 軽い代わりに、接続するサーバーをある程度信頼することになる。自分のフルノードにつなぐこともできる。

ダウンロードは、必ず公式サイトからね!

資料:GitHub ↗

No.17ウォレットとツール
Sparrow

Sparrow Wallet細かく管理できるデスクトップウォレット

コインの一枚一枚(UTXO)まで見て管理できるウォレット。

始まり
2020年
言語
Java
ライセンス
Apache 2.0
作者
クレイグ・ロー

取引の中身や、どのコイン(UTXO)を使うかを細かく選べるのが特徴。ハードウェアウォレットや PSBT、マルチシグに強く、自分のフルノードへの接続もかんたん。中級者が「中身を理解しながら使う」のに向いている。

年表

2020年
公開

技術メモ

  • 使うコインを選べると、不要な情報のつながりを減らしてプライバシーを守りやすい。

取引の「中身」が見えるから、勉強にもなるよ。

関連:PSBT

資料:GitHub ↗

No.18ウォレットとツール
BTCPay

BTCPay Server自分で運営する決済サーバー

お店が手数料なしで、自分でビットコイン決済を受け付けられるソフト。

始まり
2017年
言語
C#
ライセンス
MIT
作者
ニコラ・ドリエ

決済会社を通さずに、お店が自分のサーバーと自分の鍵でビットコインを受け取れる。ネットショップ用のプラグインやライトニングにも対応し、世界中の店や寄付の受付に使われている。

年表

2017年
公開

技術メモ

  • 「預ける会社」を間にはさまないので、決済会社の破綻や凍結の心配がない。

第4・5章の「預かる会社」問題への、ひとつの答えだね。

関連:ドリエ

資料:GitHub ↗

No.19ウォレットとツール
mempool

mempool.spaceオープンソースのブロックエクスプローラー

未承認の取引の混み具合や、ブロックの中身を見られるサイトとソフト。

言語
TypeScript ほか
ライセンス
AGPL-3.0

承認待ちの取引(メモリプール)がどれだけたまっているか、どのくらいの手数料なら次のブロックに入りそうかを、目で見て分かるようにしたツール。ソフトはオープンソースで、自分のノードの上で動かすこともできる。

技術メモ

  • 自分で動かせば、調べた取引の情報を他人のサーバーに知らせずに済む。

このサイトの「当時の実物」カードのリンク先にも使っているよ。

資料:GitHub ↗サイト ↗

No.20ウォレットとツール
bitcoinj

bitcoinjJava のビットコインライブラリ

スマホなどの軽いウォレットを作るための初期の定番ライブラリ。

始まり
2011年
言語
Java
ライセンス
Apache 2.0
作者
マイク・ハーン

フルノードなしで動く軽いクライアント(SPV)をかんたんに作れるようにした。初期の Android ウォレットの多くがこのライブラリを使っていた。

年表

2011年
公開

スマホでビットコインを使う時代の、さきがけだよ。

関連:ハーン

資料:GitHub ↗

No.21ウォレットとツール
BDK

BDKBitcoin Dev Kit

ウォレットを作るための、新しい世代の部品集。

始まり
2020年ごろ
言語
Rust

ディスクリプターや PSBT など今のビットコインの仕組みを前提に、ウォレットを作るための部品をまとめたライブラリ。スマホ向けなど、いろいろな言語から使えるようにする取り組みも進んでいる。LDK と組み合わせて使われることも多い。

年表

2020年ごろ
開発が始まる

新しくウォレットを作るなら、まず候補に上がる道具だよ。

関連:LDK

資料:GitHub ↗

No.22学ぶ
Book

Mastering Bitcoinオープンな技術書

ビットコインの仕組みを、開発者向けにくわしく解説した定番の本。

初版
2014年
最新
第3版(2023年)
著者
アンドレアス・アントノプロス、デイビッド・ハーディング(第3版)
ライセンス
CC BY-SA

鍵とアドレス、取引、スクリプト、ネットワーク、マイニングまで、ビットコインの中身を順を追って解説する。本文はオープンなライセンスで GitHub に公開されていて、だれでも読める。第3版では Taproot など新しい内容も加わった。

年表

2014年
初版
2017年
第2版
2023年
第3版

このサイトの「次の一冊」に、いちばんおすすめ!

資料:GitHub ↗

No.23学ぶ
Optech

Bitcoin Optech開発の動きを伝えるニュースレター

ビットコインの技術の最新の動きを、毎週まとめて伝えるニュースレター。

始まり
2018年
形式
毎週のニュースレター(オープンソースで公開)

Bitcoin Core やライトニングの変更、新しい BIP の議論などを、企業やエンジニア向けに分かりやすく整理して毎週届けている。用語集やテーマ別のまとめもあり、中級者が最新の議論を追うのに役立つ。

年表

2018年
発行開始

「今、何が議論されているか」を知るならここだよ。

資料:サイト ↗