こんにちは。ビットバンク技術顧問のジョナサンです。

今回は、主に業界の内側を賑わせているブロックサイズ議論について話します。BTCNをフォローしている方はご存知のことと思いますが、そうでない方のために、まずは現状の対立構造から説明します。

現在対立は、『Core』と『Classic』の二軸に分かれている。Coreとは、github.com/bitcoinで管理されているBitcoin Coreのこと。ビットコインの本家本流で、現在ほとんどがCoreに実装されたプロトコルを継承して利用しているのはご存知のとおり。Classicは、その本流であるBitcoin Coreをフォークした代替クライアントのひとつ。Classicのクライアントを使ったノードが75%に到達し、28日の猶予期間を経た後にブロックサイズが2MBに拡張されるBIP102が実装されている。ハードフォークが実行されるまでは、両者が同じプロトコルの下で稼働するが、実行後は完全に互換性のないクライアントになる。

さて、『Core』と『Classic』の両者の意見を簡潔に要約すると次のとおり。

Classic

ブロックサイズのキャパシティは既に限界を迎えている

マイナーは手数料の高い取引から受け入れるため、手数料が肥大化しネットワークが崩壊する恐れがある

手数料競争やブロックサイズの懸念から、いくつかのサービスは成立しなくなり、新しいプロジェクトもビットコイン以外のブロックチェーンを採用しはじめている

ハードフォークは今すぐ、他の技術解よりもシンプルな方法（ソースコードをほんの少し変更するだけ）でできる

他の技術解は複雑であり、未知であり、理論上実現可能だとしてもスケジュールが不透明

複雑であること＝未知のバグが大量に含まれている恐れがあるため、ブロックサイズを拡張してスケーラビリティを確保すべき

Core

技術的な観点から、ブロックサイズの拡張は不確定要素が多く無謀

歴史的に見ても、ビットコインにおける意図的なハードフォークが安全に成功した試しがない

その場しのぎの拡張が、長期的なスケーラビリティに寄与することはない

技術を蔑ろにした政治活動だけで重要なハードフォークを許してしまえば、より重要な（たとえば、発行上限などの）ハードフォークも出来てしまいかねない

長期的な成功を考えるのであれば、技術的に真と言える解決策を取り入れるべき

見解：ブロックサイズの拡張は免れない

まず、技術的な解決策をどれだけ講じたとしても、現在の1MB は小さすぎる。SegWit（分別証人）などのBitcoin Script言語の拡張や、Blockstreamが考案しているConfidential Transactions（秘匿取引）でもバイト数は嵩む。現在も数千取引でブロックが満たされてしまうため、さらに高度なSegWitや秘匿取引も導入すれば、恐らく、今以上にブロックのスペースが不足する。

以前にLightning Networkの開発者に聞いた話では、1MBのブロックであってもCheckSequenceVerifyなどの機能が実装されれば（LN最大効率パターン）、数千万人をサポートできるという。一人当たり年に二回のチャンネル開閉や変更がブロックチェーンで行われる仮定の下だけれども。

しかしこれも、Facebookの月間アクティブユーザーが15億人であることを考えると、1MBのままでは比較対象にすらならない。ブロックサイズを100MBに拡張すれば、Lightning Networkの許容人数も100倍にスケールするけれども、それでもFacebookのMAUにようやく並ぶ程度。

だから、やっぱり1MBに固定されるブロックサイズはナンセンスだってことがわかると思う。

ブロックサイズを上げるべきか、流動的なアルゴリズムを作るべきか

そう、両方必要だと思う。

ただし、意図的にハードフォークを起こすなら、なるべく単純な変更で行った方が良い。まずは1MB から2MB に上限を引き上げ、ハードフォークの経験を経た後に、ブロックサイズの流動的な計算アルゴリズムを研究し、実装すべき。

タイミングは？スケジュールは？

それでも、Coreのロードマップを慎重に待つのが得策だろう。SegWitとCheckSequenceVerifyで、Version bitsのソフトフォークプロトコルも一回実施する。そして、ルーティングの問題が解決できるかは不安だけど、Lightning Networkの実現が有望そうであれば、すぐにでもClassicの提案する「ｲﾏｽｸﾞ2MBﾌﾟﾗﾝ」に加入するのが得策なのだろう。

最後に

CoreもClassicも両方が正しくて、そして両方が間違っていると思う。Coreは今すぐ、明確にブロックサイズを上げるという意志を表明し、技術的なスケーリング対策に入ると伝えた方がいい。そして、Classicの一派は「SegWitを受け入れない」と頑なになり、裏付けられた技術実装の採用の邪魔をしようとしていたりと、全体的に子供喧嘩っぽい行いが目立ち、信頼しがたいように思う。確かに時間があまりないのはわかるが、そんなにせっかちにならなくても良いのではないだろうか。

なんといっても、もうすぐSegWitがメインネットにて実装される予定なのを忘れちゃいけない。技術者として、それが楽しみでならない。

ビットコインチップが筆者の励みになります。bitcoin:17VntiYRSqty65EcPm2iP4Ueyvhb87WAjX