読者の皆さんのほとんどはBIPという用語をご存知かと思います。Bitcoin Improvement Proposal (BIP)とはビットコインに対してなにか変更(新しい機能や仕様など)を加えるためのプロセスで、誰でも参加できる状況で、慎重にゆっくりとその是非を検討するための仕組みとなっています。

ところが、近年このBIP採択パイプラインが非常に遅いことに不満を持つ開発者が増えています。また、昨年注目を集めていたコベナンツに関連してソフトフォークをSignetで実際に動かしてみて評価するためのクライアント:Bitcoin Inquisitionというものも生まれています。このBitcoin InquisitionにおいてBINANAというBIPを置き換える仕様追加プロセスが導入されました。

今日はBINANAがBIPプロセスとどう異なるのか、そしてBitcoin InquisitionとBINANAが描くビットコイン開発の今後のあり方を解説していきます。

・BIPプロセスの問題点

・BINANAとBitcoin Inquisition

・これからのビットコイン開発はどうなる?

BIPプロセスの問題点

冒頭でBIPプロセスのパイプラインが非常に遅いと書きました。実際のパイプラインは下記の画像のようになっています:

Image preview
BIPのパイプライン。Filippo Chiricozzi氏作成

まず数ヶ月~数年間議論されたり実装されている内容がBIP Draftとして提案(GitHubへのプルリクエスト)され、コミュニティでその内容についてBIPとして採択すべきかの議論がなされます。仮に採択されるとなった場合、bipsのGitHubリポジトリ管理者であるLuke Dash JrまたはKalle Almの2人のどちらかによってマージされ、番号が割り振られます。

ところが今年に入ってKalle Almは管理者の立場を降り、bipsリポジトリの管理者は1人になりました。また、BIP番号の割り当ても実質的にLuke Dash Jrが行っており、他にも多数の責務があるためなかなか進まないほか、Luke Dash Jr本人の意向に沿わないOrdinalsTaproot AssetsなどのBIP採択プロセスが長期停滞しているなど、プロセス自体がうまく機能していないという見方が広がっていました。

去年はいくつものコベナンツ関連のソフトフォーク議論が盛り上がったり、OrdinalsやBRC20など新しい標準が出てくるなどビットコイン開発自体は活発で、その中でBIP採択がボトルネックとなっていることを理由に新しい提案プロセスが出てくるのは自然な流れといえます。

BIP採択プロセスがほぼ機能停止している例として、Package RelayのBIP331は特に採択されない理由が残っていないにも関わらず半年以上リポジトリ管理者から反応がありません。

Package Relayに期待される役割はこちら↓

Package Relayの導入がライトニングの弱点を改善
ビットコインのソフトウェアは常にアップデートされています。目立つのはコンセンサスに関わる変更-ハードフォークやソフトフォークと呼ばれるもの-ですが、その頻度は非常に低いためあまり積極的に開発されているイメージは強くないかもしれません。しかしながら、それ以外の部分でも重要な改善が加えられています。 たとえばBitcoin Coreのフルノードの同期はサイズの割に高速ですが、これもノードの挙動をアップデートし最適化し続けている成果です。また、ポリシールールという、コンセンサスには影響しないがノードの挙動を決めるルールがあり、ネットワーク関連の機能に使われることが多いです。 今日はポリシールールとして近い将来に導入されるであろう“Package Relay”というトランザクションの伝播に関わる新しい仕様と、それがライトニングやDLCにとってどのような問題を解決するのかについて説明します。 メモリプールとトランザクションのリレー ビットコインの手数料を意識したことのある方にとってメモリプールというものは馴染み深いものかもしれません。一応説明すると、フルノードが他のノードからまだブロッ

BINANAとBitcoin Inquisition

そこで出てきたのがBitcoin InquisitionとBINANA (Bitcoin Inquisition Numbers And Names Authority)です。

Bitcoin Inquisitionはソフトフォーク提案を実際に動かしてみるためのテストネットワーク(Signetとして作成)とクライアントのことを指します。要するに、ビットコインをフォークしてネットワークを1から新調したものです。

なぜBitcoinのテストネットやSignetを使わないかというと、それにはまずBitcoin Coreにソフトフォークのコードを実装する必要があり、本末転倒になってしまうためです。それならフォークしてそこにコードを追加するハードルを下げることで実際に使ってみましょうという魂胆です。

またBINANAはIANA (Internet Assigned Numbers Authority)というIPアドレスの割当などを行う機関の名前をもじったもので、BIPプロセスの中で厳しい審査のようなものを最低限にしたBIPプロセスに相当するものです。あくまで現時点ではBitcoin Inquisitionに関するものであり、実際のビットコインネットワークで使われるものではないため、このようなスピード感を実現できるということでしょう。また、あくまで実装を提供してBitcoin Inquisitionにマージしないといけない部分は変わらないため、ある程度のコードレビューなどは可能です。

ビットコイン本体とは関係ない、BIP採択プロセスを待つ必要のないテスト用ネットワークとしての性質を最大化したもの、それがBitcoin Inquisition。そして標準を提案するだけの機能に特化させた、審査機能のほとんどないBIPプロセス、それがBINANAです。

(そういえばライトコインがビットコインに展開させるソフトフォークの練習台として使われていた時代はもう終わりということでしょうか?)

これからのビットコイン開発はどうなる?

ビットコイン開発はスピード感が足りない!という指摘は過去からされてきたものの、このようにここ数年ではビットコイン開発者もこれを問題視する流れが続いており、その結果として生まれたのがBitcoin InquisitionやBINANAです。

ひっくり返せば、これからのビットコイン開発は過去数年と比較して加速する可能性は小さくありません。新しいソフトフォーク提案、レイヤー2の発明、投機性の高いユースケースの流行などが予想されます。

もちろん、ビットコインに対して加えたい変更をBitcoin Inquisitionで実証したところで現実のビットコインネットワークにデプロイするにはBitcoin Coreへのマージやノードのアップデートが必要になるので、必ずしもそこの速度感は加速するとは限りませんが、少なくともBitcoin Inquisitionでの動作実績はBIP採択プロセスの参考にはなり、年単位かかることもあり非常に遅いと言わざるを得ないBIP採択パイプラインの所要時間削減につながるでしょう。

最近はビットコイナーの中でも開発に対しての意見が割れており、今後も慎重派と推進派の間で摩擦が増えていくかもしれませんが、これは全くの停滞と比べるとぜいたくな悩みかもしれません。