[caption id="attachment_3169" align="alignnone" width="1000"]

Flickr by Juan N Only CC-BY-NC-SA[/caption]

ビットコインのスケーラビリティの問題は深刻だ。ビットコインは現在ブロックサイズの制限により、プロトコルレベルで7tps（取引/秒）までしか処理できず、これは一日で最大604,800取引までしか処理できないことを意味する。

VISAやMasterなどといった既存のトランザクション処理サービスは、最大で45,000tpsまで処理することができると言われている。通常状態ではおよそ10分の1の処理を行っており、一日にすると4億から5億程度のトランザクションを処理していることになる。ビットコインのトランザクションサイズは平均するとおよそ300bytesであり、仮に無制限のブロックサイズかつクレジットカードネットワークと同等のトランザクションを処理することになった場合、一日に129.6GBのブロックチェインデータが生成され、ビットコインに関連するサービス提供者やサーバー提供者ひとりあたり、年間47TBの容量を消費することになる。現在ビットコインのノードは6,300近く建てられているため、累計300PBの膨大なデータが毎年蓄積されていくことになる計算だ。

限界

これは、一般的なパソコンと回線では到底処理しきれないデータ量である。ビットコインのスケーラビリティを単純に「ブロックサイズを上げて対応する」場合、「スケールさせる」という面では極めて妥当であるように思える。しかし一方で、個人単位での参入が困難になり、その結果マイナーやウォレットサーバーといった大規模中央管理システムへの依存が強まり、中央集権化を招きやすくなるといった問題が顕在化する。

これに対する反対意見としては、集積回路のコストやスペックといった費用対効果は年々倍増するという、「ムーアの法則」が今後も継続するため、そのような問題は発生しないというものがある。確かに毎年2倍近くの半導体の進化があれば、ブロックサイズ等の問題はそれほど顕在化しないように思える。しかし、最近ではムーアの法則にも限界が来ている、というのが通説だ。

少なくとも、一般ユーザーはハードディスクやメモリといったハード限界に対しビットコインのためだけに拡張するということは考えにくく、健全に分散化したネットワークの維持を求めるのであれば「ブロックサイズの拡張」を安易に主張するのは危険だ。誰もがフルノードをインストールし、相互に監視できる環境というのが、本来的には安全だからだ。

Lightning Network

Lightning Networkの提唱者であるジョセフ・プーンは、こういった多くの「懸念」に対して、ブロックチェイン外(off-blockchain)のトランザクションで実行することが望ましいと考えている。加え、彼は現在の主流である金融機関のトランザクション処理からヒントを得て、ユーザー間でHashed TimeLock Contract（HTLC：ハッシュ化されたタイムロック契約）を行うことでスケーラビリティの課題を解決しようと試みている。

参考：The Bitcoin Lightning Network DRAFT 0.5

HTLCの仕組みは複雑なように見えるが、実のところ単純だ。、支払いの際にLightning Networkのルールに則った支払いチャネルを作成し、TimeLockで設定した期限が満了した際にネットワークへとトランザクションをブロードキャストするという単純な仕組みだ。これにより、ビットコインの送信者および受信者は、リアルタイムのゼロ承認取引における二重支払い攻撃やブロックの遅延による送信障害、中間者攻撃による送信先のすり替えなどの影響を受けないようにすることが可能となる。

さて、想定しうる質問は「オフ・ブロックチェイン取引なら既にChangeTipなりCoinbaseなり、ウォレットサービス、取引所が行っているじゃないか。これが何故スケーラビリティの問題を解決するんだ。」だろう。

これには単純明快な解がある。それは、取引が独自のサービスを経由せず、二者間で完結するモデルであるということだ。例えばセブン-イレブンのナナコカードを例に上げると、ナナコはセブン-イレブンと消費者の間で契約を結び、デポジットされたお金に関してはセブン-イレブンとの支払いチャネルが確立されているため即座に支払いできることになっている。しかし、セブン-イレブンが一方的にそのチャネルを閉じた場合、ナナコはもはや使用できなくなってしまう。これはビットコインのサービスにも言えることで、サービス内でデータの移動を行っていたとしても、そのサービスが閉鎖されてしまえばもはやそのチャネルは一生利用することが出来なくなってしまう。

Lightning Networkは個人間の支払いチャネルであるため、利用したい人とHTLCを結ぶだけで、一生使うことができるのだ。ただ、これもImpulseと同様に、スケーラビリティの本質的な解決策ではなく、一種のソリューションである。

スケーラビリティへの対応は急を要する

ビットコインのトランザクション数（取引のこと、トレードと区別するためカタカナ表記）は当然のことながら、ブロックチェイン上で行われる取引のみを想定したものだ。ゆえに、取引所やウェブウォレットサービス、投げ銭サービスなど、個別サービスが抱える独自ノードの内部的なデータの移動は除外されている。ビットコインのトランザクションは、利用者がそれぞれ各自のウォレットから自動的にブロードキャストされたデータを検証し、正しい記述がなされているかを確かめた上で手数料の高い順に自動的に発見したブロックへと格納される。すなわち、ブロックサイズの上限に達し、溢れたトランザクションは次のブロックが発見されるまで待たなくてはならない。

この問題は、現在の平均取引数10万tpd( txs / day )ではさほど顕在化していないが、20万tpdまで増加した場合、徐々にネットワークに障害が現れ始めるだろうと考えている。より具体的には、ビットコインの価格の次のバブルが起こった際、あるいは2018年から2019年には、こういった問題が解決されない限り、間違いなく取引の遅延が発生するだろう。前者の例では、2013年12月には4万tpd程度だったものが10万tpdを超えるまで急激に上昇しており、ビットコインの価格が騰がるのと相関してビットコインネットワーク全体の取引高も上昇しているのがわかる。

このことから次のバブルが起これば同様にネットワークの取引数が上昇することは明らかであり、2015年末にかけて徐々にトランザクション数が成長していった場合バブルの発生と同時に大幅な取引遅延が発生する可能性は高い。また、後者の例では、2014年のはじめから2015年にかけ、取引高は徐々に上昇し45,000トランザクション増加し恒常的に10万トランザクションを超えた。このペースで増加を続けると2019年の初めには30万トランザクションに達することになるため、同様に取引の遅延が発生する。

現状、ブロックサイズを段階的に引き上げることで、ビットコインのスケーラビリティに対応する案が最も妥当であると言われているが、どのタイミングで実装するのか、そしてマイナーやウォレットサービスの中央集権化をどのようにして防ぐのか、といった課題解決も同時並行で行わなければならないだろう。幸い、ビットコインの価格は最近低迷しているためこういった問題に腰を据えて対処できているが、不確定性要素の多い業界であるため、いつまたバブルが発生してもおかしくない状況にある。

ビットコインのスケーラビリティへの対応は急を要する問題だ。長く見積もったとしても、この2年の間に対策されなければ、他の暗号通貨プロトコルへの移行も考えなければならないかもしれない。

画像出典: Flickr by Juan N Only CC-BY-NC-SA