🐳

Storage-based Consensus Paradigm (SCP) の衝撃

2022/08/10に公開

はじめに

ワールド・コンピュータと呼ばれるイーサリアムは、スマートコントラクトによるオンチェーンコンピューティングを可能にすることで、ブロックチェーンの可能性をとてつもなく、大きいものとした。一方でスケーラビリティ問題の解決はイーサリアム単体では難しく、コンセンサスレイヤーやシャーディング、レイヤー2といった技術で対応しようとしているようだ。

ただ長年インフラエンジニアだった自分の経験から言うと、ネットワークやシステムというものは可能な限りシンプルな構成にすべきであり、技術的に可能であるということと、運用に耐えれるか、もしくはビジネス基盤として使えるかというのは全く別の話であると思っている。実際、ほとんどのケースにおいて、構成の過度な複雑化はよい結果をもたらさない。

セキュリティの点でも、構成が複雑になればなるほど脆弱性は多くなる。最近、仮想通貨の流出事件が増えているが、これはシンプルであるべきインフラ構成がレイヤードやブリッジング、クロスチェーンなどより複雑な構成になることで、わかりにくく、バグが増え、予期せぬ自体が発生していることを示しているのではないだろうか。

シンプルイズベスト、というのはビットコインがまさに証明してくれているところであり、そして今後Web3においてシンプルさを求めるのであれば、一つのプロダクト上に、ID管理、Web、コンピューティング、データ、ストレージの全てを持つのが理想だと思う。

Internet Computer と SCP

そういう意味で、ビットコイン、イーサリアムの次の第3世代ブロックチェーンとして期待しているのが Dfinityの Internet Computer である。これであれば Webもストレージも、全てオンチェーンで完結し、Internet Identity という素晴らしい仕組みもある。

しかしながら最近、Internet Computer は理想的すぎるゆえに、逆に一般への普及が難しいのかも、と思い始めた。Internet Computer だけで全てをまかなうということは、性能面で高い水準を保ったまま、Web3の普及スピードにリソース面で対応していく必要がある。しかし、Internet Computer のネットワークは誰でも参加できるというものではない。

実際に Internet Computer にノードを接続するためのハードウェア要件、ネットワーク要件、可用性要件などのハードルは高く、データセンターレベルのスペックが求められる。個人レベルの参加は現実的には難しい。これでは限られたサービスしか乗せられなくなるのではないか。

思うに Intenet Computerは技術的には素晴らしいが、モノリシックで柔軟性に欠けるため、他と相容れることができず、孤立し、メジャーになれないかもしれないと思っている。いわゆるガラパゴス化の危険性だ。過去の様々な例からも、技術的に優れているものが必ずシェアを取れるとは限らない。

そこで最近注目しているのが ArweaveをベースとしたSCP (Storage-based Consensus Paradigm) という考え方だ。これがイーサリアムや Internet Computer とは方向性が真逆の、パラダイムシフト的なものである。SCPであれば、シンプルさと柔軟性、理想と現実を両立できるのではないかという気がしている。今回はこのSCPについて自分なりの理解を整理してみたい。

参考サイト

https://mirror.xyz/0xDc19464589c1cfdD10AEdcC1d09336622b282652/KCYNKCIhFvTZ1DmD7IpXr3p8di31ecC283HgMDqasmU
https://medium.com/everfinance/a-storage-based-computation-paradigm-enabled-by-arweave-de799ae8c424

SCPとは?

SCPを端的に言うと、コンピューティングとストレージの分離である。イーサリアムでは全てのフルノードでスマートコントラクトの計算が行われるが、それはある意味無駄であり、永遠に全体のボトルネックになるという考え方だ。ブロックチェーンをあくまでストレージとして利用することで、ブロックチェーンの透明性や信頼性と、従来のWebシステムが持つ性能や可用性を両立させようとしている。

SCPでは計算と保存は完全に切り離され、スマートコントラクトはオフチェーンで実行される。極端に言うと、計算を行うのはAWSでもスーパーコンピュータでも、個人のPCでも何でもかまわない。自由である。それにより、理論的には無限のコンピューティング能力を持つことができる。処理能力が足りなくなればどこからか持ってきて、追加すればいいからだ。これにより、スケーラビリティのボトルネックが無くなる。

また開発コストも大幅に下げることができる。Solidityなど特定の言語に縛られないので、任意のプログラミング言語で開発できるのだ。なぜならストレージ上にコードはあっても、実行するのは外部のシステムだからである。外部のシステムがストレージからコードを読み込み、実行し、結果をまたストレージに保存する。ブロックチェーンでデータの信頼性が保証される。

チューリングマシン

エンジニアであればチューリングマシンを知っている人は多いだろう。SCPの説明ではチューリングマシンの話が出てくる。

チューリングマシンはコンピュータのモデルとも言われる仮想の計算機械で、数学者のアラン・チューリングという人が1936年に発明したらしい。チューリング完全という言葉もあり、イーサリアムはチューリング完全だ、などと言ったりする。

チューリングマシンの仕組みは単純で、磁気テープとそれに文字を書き込んだり、読み込んだりするヘッドがあるだけである。ヘッドが左右に移動して、データを読み込み、計算結果をテープに記録する。この単純な仕組みで、現在のコンピュータが行う全ての計算ができ、アルゴリズムが実現できるらしい。

チューリングマシンの説明では数学的な話が色々出てくるが、私も数学は苦手で難しいことはわからない。ただ、SCPを理解する上で大事なことは、チューリングマシンで言うところのテープとしてブロックチェーンを使うということだ。ブロックチェーンはあくまでデータの読み込みと保存を行うためにある。

これまでのDBや一般的なストレージでは、データの完全性や透明性、可用性、低コストなどを保証することが難しかった。SCPは長年論理的なモデルでしかなかったチューリングマシンを現実のものにしたと言えるのかもしれない。

選択肢の重要性

計算と保存を切り離す大きなメリットは、要件に応じて計算にかけるコストを選択できるということである。その選択がイーサリアムや Internet Computer ではできない。その違いは現実的な普及を考えると大きい。

SCPではストレージとして Arweaveなどのブロックチェーンを使うことでデータの完全性を保つことができ、それを正とすることでコンピューティングが自由になった。処理がエラーになろうが、サーバがダウンしようが、やり直せばいい。ほとんどの場合それでいいのである。データは消えていないのだから。

金融サービスなど、フロントエンドやコンピューティングに高い処理能力や高可用性を求める場合だけコストをかければよく、そこを自由に選択できるというのが重要だ。既存システムとの統合や移行もやりやすい。

オンチェーンかオフチェーンか

今のイーサリアムにおけるレイヤー2やロールアップも、やっていることはコンピューティングの切り離しである。負荷の高い計算部分を切り出して、結果だけをイーサリアムに保存して完全性を担保するというやり方だ。そうすることで処理能力を上げようとしている。あれ、それなら最初からコンピューティングを持たない方がシンプルだよね、というのがSCPであるという理解だ。

そういう意味で、イーサリアムは画期的ではあったが、現実的に考えると中途半端なのかもしれない。機能の付け足し付け足しで何とかしようとして、どんどん複雑化しているように見える。もちろんそれを否定するわけではないが、最初に言ったように、私はシンプルな方が好みである。全てオンチェーンで行くなら Internet Computer でいいし、オフチェーンならSCPでいいと思う。

終わりに

ずっと Internet Computer が理想のブロックチェーンだと思っていたので、SCPを知ったときは衝撃だった。どちらが優れているということではなく、別の方向性もあるというのがわかっただけでもよかった。

自分は忘れっぽいので、覚えているうちに理解していることを残しておこうと思ってこの記事を書いた。ただあくまで個人的な意見であり、内容に間違いは多々あると思うが、ご容赦いただければ幸いである。

Discussion