さくらインターネット、テックビューロ、電子マネー事業を展開するアララの3社は協同でブロックチェーン技術mijinの次世代コア「Catapult」を電子マネーに応用する実験を実施し、最高4142取引の処理性能を確認した(発表資料)。2017年2月には詳細レポートを公開予定としている。またCatapultを含む次世代mijinもオープンソース化を予定している。まだ正式版ではない段階で平均して秒間3000取引ほどのスループットを出しているのだが、これはブロックチェーン技術の実システム適用の可能性を考える上で重要な実験といえる。
Catapultとは、ブロックチェーン技術mijinのコア部分を再構築し高速化を図ったものだ。従来バージョンのmijinを使った実証実験では、アララは秒間平均50取引の性能を確認していたが(関連記事)、今回はその約80倍の性能を確認できたことになる。
秒間4142取引がどれぐらいの性能かということだが、VISAカードのシステムはピーク性能が秒間5万6000取引(5万6000tps)と言われおり、平均スループット(処理性能)はその1/10前後と言われている。今回の実験の最高で秒間4142取引、平均して毎秒3000取引という数字は、「VISAカードの平均スループットにもうすぐ届く性能」といったところだ。ほとんどの業務システムのニーズをカバーする十分に大きな数字といえる。また、現状は正式版ではないので今後改善される可能性がある。
今回の実験は1リージョン内で実施したものだが、地理的に分散させた実験も今後予定している。地理分散により耐故障性のレベルは格段に上がるが、その一方でネットワーク遅延の発生が性能に影響するものと予想される。
実験では一部ノードを停止させても処理性能を落とさず続行できることも確認している。mijinを始め現行ブロックチェーン技術は処理の冗長化はしていても分散化はしていないので「性能が落ちない」とはノードの故障によるトラブルが起きないことを確認したという意味だ。
今回の実験はアララが事業として取り組む電子マネーのシステムを想定したもの。電子マネーは「1対N」の形の取引で、しかもNの数字が非常に大きい(今回の実験では1080万アカウント)ユースケースとなる。一方、銀行の勘定系などは「N対M」の取引ということになる。
プライベートブロックチェーン技術は「パラメータを自由にいじれる」
ブロックチェーン技術は、従来型のITと比較すると非常に分かりにくく見える。理由の一つは「性能を追求していない」ように見えることだ。例えばビットコインの処理性能は「約7tps(トランザクション/秒)」であると言われている。数字だけを見れば低い性能に見えるが、注意が必要なこととして、この値はビットコインの場合のブロックサイズ、トランザクションのサイズの平均値、ブロックタイムから算出しているので、いわば「フェルミ推定」のような数字だということだ。現実のビットコインの実効スループットはこの数字より下だと考えられるし、逆にパラメータが変われば数字は大きく上がる。例えば新技術「Segwit」はトランザクションのサイズを大幅に圧縮するし、ブロックサイズを変えるかどうかの議論も盛んだ。ただし、ビットコインは時価総額1兆4000億円以上(記事執筆時点)の価値を記録しているネットワークでもあり、ビットコイン開発者コミュニティは仕様変更にはきわめて慎重な態度を取っている。
mijinの場合、ビットコインのようなパブリックブロックチェーンではなく企業システムに閉じたプライベートブロックチェーン向けの技術なので「ブロックサイズ、ブロック承認時間のパラメータを自由に変えられる」(テックビューロの朝山氏)。つまり、もともと性能のチューニングをやりやすい構成となっている。さらにCatapultでは、性能面のネックとなっていた要素をコア再構築により取り払った。「C++により再構築した点、(ブロックチェーンの中核部の)チェーンサーバーとAPIサーバーを分けた点が性能に寄与している」(テックビューロ代表取締役社長の朝山貴生氏)。
もちろん、単にデータストアの処理性能だけを追求するならインメモリDBが一番いい。それに耐故障性とトランザクション処理性能だけを追求するなら、従来型の情報システム(OLTPシステム)の方がまだ性能は上だろう。今回の実験の意義は、ブロックチェーン技術が業務システムのトランザクション処理に耐える性能があることが確認できたところにある。従来型の情報システムと比べたブロックチェーン技術のいい所の一つは、耐改ざん性と耐故障性をソフトウェアのレイヤーで実現していることだ。今回の実験のようにクラウドサービスで動かしていても、内部不正や外部からの攻撃、故障に強い。この性質は業務システムの大幅な低コスト化に役立つと期待されている。mijinの場合は「内部にトークンの概念(Mosaic)を持っていることが、電子マネーへの適用に役立つ」(朝山氏)としており、アララでもこの点がシステム構築コストの圧縮に寄与すると期待している。
実験内容は、「さくらのクラウド」の1リージョンで実施。ブロックタイム15秒とし、1時間1080万人の利用を想定し、1080万アカウントを用意、1マイクロトークンから1080万マイクロトークンまでの異なる残高を与える。1080万アカウントから3ノードに対して残高全額を支払うリクエストを送信。なおかつ、この処理中に3ノードのうち2ノードを6分間停止、その後復旧と同期を行った。コンセンサスアルゴリズムは「mijin POS(Proof of Stake)」を使用している。