ブロックチェーン:スケーラビリティ問題の解決方法 --- 小宮 自由

寄稿

スケーラビリティは大きな問題である

ブロックチェーンの最大の課題の一つとして、スケーラビリティ(拡張性)をどう確保するかというものがある。ブロックチェーンプロジェクトの一つであるイーサリアムのファウンダー、Vitalik Buterinが作成に寄与した記事において、スケーラビリティの問題は以下の3つに大別されると述べられている。

1. ブロックチェーンが長大になるにつれて、その検証により多くのハードディスク容量、帯域幅、マシンパワーが必要になり、これによってブロックを処理できるノード(≒ブロックチェーンネットワークに参加しているユーザ)が少なくなってしまう(そしてブロックチェーンの信頼度が下がってしまう)という問題。

2. (ビットコインに限定した問題)ブロックチェーンは1ブロックあたり1メガバイトしかデータを格納できない(そしてそれがネットワーク全体に承認されるのに10分間を要する。これは妥協の末に生み出された方策である)。ビットコインにおいて、この制限を取り払う変更は、ハードフォーク(後方互換性のない変更)を要する。

3. ブロックチェーンネットワークが成長するにつれて、より高額のトランザクション処理費用がかかるという問題。

議論は既に多くなされているが、根本的解決には至っていない

これらの問題の解決方法は欧米を中心に議論され様々な解決方法提示されているが、未だ根本的な解決には至っていない。

この3つの問題もどれもが「スケーラビリティの問題」と表現されていることからわかるように、これは根本的には「データが大きくなりすぎて処理しきれなくなる」という問題である。GoogleやFacebookであれば、その潤沢な資金を使って大規模なサーバを構築しも問題に対処することが可能であろう。しかし、中央集権性を否定するブロックチェーンの思想上、特定の大組織にブロックチェーンの信頼性のメンテナンス権限を委譲することはできない。それゆえ、相当大きな量のブロックチェーンの処理を一般市民に頼らなければならない。彼らが保有するのは汎用品のノートパソコンやタブレット、スマートフォンだけであり、処理端末としては非常に心もとない。

重要でないものを切り捨てる決断が必要である

私は「データを捨てる」ことでしかこの問題は解決できないと考える。「重すぎる鎖は、古びた部分を切り離してしまえ」と言わんばかりに、ブロックチェーンを過去の時点で切り離して過去のブロックを捨てるのである(以下「チェーンカット」と表記する)。例えば10年以前のブロックを全部破棄すると決めれば、保有すべきデータは10年間に固定されるので、上記問題の2以外が「10年分のデータをどうやって効率的に捌くか」に単純化される(2の問題は直接は解決されないが、2の問題の背景となっている帯域幅の圧迫問題は解決される)。10年としたのに深い意味があるわけではない。重要なのは「どこかより以前は捨てる」ということである。

ある時以前のブロックチェーンを捨てるということは、それ以前の取引の信頼性はもはや確保されないということである。ブロックチェーンは巨額の取引に向いていないので、将来的には取引の多くは小額決済となるだろう。個人が100円を支払った等の履歴を長期間残しておく必要性はない。その意味でチェーンカットは合理的かつ現実的な案と言える。

仮に取引履歴を保持しておきたいというニーズが多数存在すれば、過去のブロックチェーンを信頼性のある形でアーカイブしておく事業がいずれ始まるだろう。Wayback Machineのデータが法廷での証拠として利用されたのと同じ発想で、ブロックチェーンのアーカイブも将来的には訴訟に利用できる(ようにシステムを構築・運用できる)ようになるだろう。中央集権的な運用であるが、利用対象が捨てられたデータなので、ブロックチェーンの思想にも反しない。先述の通りほとんどの取引が小額決済になると予想されるので、その利用頻度も重要性も高くなく、チェーンカットによって中央集権がブロックチェーンを脅かす事態は起こりえないだろう。

株式会社アットメディア  研究員
小宮 自由(こみや・じゆう)