
フロントエンドからデータベースまで:EthStorageはDAPPが真の信頼不要を実現するのをどう支援するのか?
TechFlow厳選深潮セレクト

フロントエンドからデータベースまで:EthStorageはDAPPが真の信頼不要を実現するのをどう支援するのか?
DAPPのフロントエンド、バックエンド、データをすべてイーサリアム上にホスティングするには?EthStorageは二つの主要なソリューションを提案しています。
執筆:EthStorage チーム
概要
-
分散型アプリケーション(DApp)は複数の構成要素から成るが、現状ではその中核となるバックエンドロジックのみがイーサリアム上で動作しており、フロントエンドコードなどの他の部分は依然としてイーサリアム外部にデプロイされている。また多くのデータがブロックチェーン外に存在するため、大多数のDAppはイーサリアムの安全性を完全に継承できず、理想形とはほど遠い状態にある。
-
この問題の主な原因は二つある。一つはイーサリアムが開発者に対して適切なフロントエンド標準やツールを提供していないこと、もう一つはオンチェーンデータのストレージコストが極めて高いことである。
-
分散化されたフロントエンド標準を提供するために、EthStorageチームはweb3://アクセスプロトコルを提案した。これはスマートコントラクトを通じてフロントエンドコード、さらには類似ファイルシステムをデプロイ・アクセスするための標準およびツールセットを提供するものであり、現在すでにイーサリアム公式標準(ERC-4804)として採用されている。
-
イーサリアム上のデータストレージコストを削減するため、EthStorageチームはレイヤー2ストレージプロトコル「EthStorage」を開発した。PoRA(Proof of Random Access)とゼロ知識証明(ZK)を活用し、イーサリアムレイヤー1のセキュリティを維持しつつ、大幅にストレージコストを低減している。
謝辞:Geek Web3のFaust氏、ChainFeedsのZhixiong Pan氏、LXDAOのBruce氏、EthStorageのQi Zhou氏およびLun Deng氏による本稿へのフィードバックに感謝いたします。
分散型DAppの背景と課題
イーサリアムのビジョンは「世界のコンピュータ」となることであり、その上に構築されるアプリケーションすべてが自らのセキュリティを継承することを目指している。一度デプロイすれば、アプリは永遠にイーサリアム上で動作し続け、いかなる主体もそれを検閲したり悪意を持って操作することはできない。
しかし、現在の分散型アプリケーション(DApp)は本当にこの目標を達成しているだろうか?この問いに明確に答えるために、DAppを構成する各要素に分解し、それぞれの非信頼性(trustlessness)の程度を分析することで、最終的な結論を導き出す必要がある。
一般的に、分散型DAppは以下の三つの部分で構成される:フロントエンドインターフェース、バックエンドサーバー、データベース。ユーザーがフロントエンドにアクセスする際、ブラウザとドメインサービスを通じてコンテンツが読み込まれる。具体的には:
-
フロントエンドとドメインサービス:大半はスマートコントラクトによってデプロイ・アクセスされておらず、単一障害点の回避、コードの改ざん防止、検閲耐性、コミュニティガバナンスといったブロックチェーンの特性がフロントエンド部分で実現されていない。
-
バックエンドサーバー:一部はスマートコントラクトで実装されているが、計算量の多いタスクは完全にオンチェーン化することが困難である。
-
データベース:一部はスマートコントラクトで実装されているが、オンチェーンでのストレージ費用が非常に高いため、データ量が多い場合は依然としてオフチェーンのストレージソリューションが用いられている。

上記の分析から、現在の分散型DAppは一部のコンポーネントのみがスマートコントラクトによってイーサリアムの保護を受けていることが明らかになる。つまり、イーサリアムエコシステムは「分散型の世界コンピュータ」という当初のビジョンからまだ大きく乖離しているのである。
2023年末、Vitalikはイーサリアムの発展を振り返り、「Make Ethereum Cypherpunk Again」と題する大きな反響を呼んだ記事を執筆した。彼はそこで、イーサリアムコミュニティがどのようにしてサイファーパンクの理念に回帰すべきかについて議論し、Web3コミュニティ全体が守るべき価値観をまとめた。その中で特に強調されていたのが次の一点である:
分散型アプリケーションは、いかなる単一主体にも依存しないように設計されるべきであり、たとえコア開発者が永久に姿を消しても、アプリケーションは引き続き動作し続けるべきである。

このことからも、Vitalikが分散型アプリケーションの構築方法について同様の期待を持っていることがうかがえる。以下では、分散型DAppの各コンポーネントが直面する具体的な課題を詳細に分析し、改善策を探っていく。
フロントエンドとドメインサービス
分散型アプリケーションの構成要素の中で、最も中央集権化が進んでいるのがフロントエンドとドメインサービスである。現時点では、ほとんどすべてのdAppのフロントエンドが中央集権型サーバーを使用しており、プロジェクト側はコミュニティガバナンスを経ることなく、またタイムロックの制約もなく、いつでもフロントエンドコードを変更できる。この部分のセキュリティは、イーサリアム上にデプロイされたスマートコントラクトとは比べ物にならないほど脆弱である。
ハッカーがサーバーに侵入してフロントエンドコードを改ざんし、利用者がその悪意あるフロントエンドを利用することで資産を失う事例は、前回のDeFi Summerに繰り返し発生した。ここで問わざるを得ないのは、なぜフロントエンドもバックエンドと同様にイーサリアム上にデプロイされず、変更はコミュニティガバナンスとタイムロックを経てのみ可能にならないのか、ということだ。

さらに想像してほしい。もしUniswapの開発チームが、ある日突然フロントエンドサーバーやドメインサービスの支払いを停止したら、UniswapのユーザーおよびLP(流動性プロバイダー)はどのようにしてUniswapを使い続けることができるだろうか?
ほとんどのユーザーは、フロントエンドを経由せずに直接スマートコントラクトとやり取りする方法を理解していない。確かにUniswapはフロントエンドをIPFSにアップロードする試みを行っているが、IPFSはイーサリアムとは異なるネットワークであり、信頼性と非信頼性のレベルもまったく異なる。特にIPFSのコンテンツ読み込み速度は非常に遅く、現時点では大多数のユーザーは依然として中央集権サーバーにデプロイされたUniswapのフロントエンドとやり取りしている。
さらに、Uniswapのフロントエンドの運営主体であるUniswap Labsは、規制対応のためにトークンリストに検閲を加えている。これは、誰も自由に変更できないイーサリアム上にデプロイされたスマートコントラクトとの大きな対比となっている。検閲されたトークンであっても、コントラクト層では依然としてやり取り可能である。このことから、コードをオンチェーンに置くことによる検閲耐性の重要性が浮き彫りになる。
バックエンドサーバー
EVMはチューリング完全な実行環境を提供するため、大部分のバックエンドロジックはイーサリアム上で実行可能であり、スマートコントラクト型アプリケーションは基本的にイーサリアムのセキュリティを完全に継承できる。ただし、コストの問題から計算量の多いタスクは直接オンチェーンで実行できない。
この問題に対処するため、現在広く研究されているのがZKまたはOPの手法であり、計算をオフチェーンで実行し、結果のみをイーサリアム上で最終的に検証することで、計算レイヤーのスケーリングを実現している。AI関連プロジェクトの中には、このような方法を極限まで推し進め、AI大規模モデルのような超計算集中型タスクをブロックチェーンと結びつけようとする動きもあり、注目すべきである。
データベース
データベースに関して、EVMはもともとキー・バリュー型(KVストア)のストレージをサポートしており、多くのユースケースをカバーできる。しかし根本的な問題は、オンチェーンでのストレージコストが極めて高いことにある。
いったいどれほど高いのか?ガス価格が10Gweiの場合、1GBのデータをオンチェーンに保存するには6200ETH以上、つまり2000万ドル以上がかかる!明らかに、ストレージコストがデータベースの分散化における最大の障壁となっている。
ここで考えられるのは、上述の計算スケーリングと同様のアプローチ、すなわちストレージのスケーリング=オフチェーンでの保存、オンチェーンでの検証という方法である。以降、このアイデアについて詳しく説明する。
以上のようにDAppの各構成要素を分析した結果、DApp全体として真に非信頼的な存在となるには、各コンポーネントが十分に安全かつ信頼不要である必要がある。そしてイーサリアムがdAppの実行・ホスティングプラットフォームとしてふさわしい存在となるには、開発者に適切なソリューションを提供しなければならない。
DAppの非信頼化ソリューション
DAppを完全にイーサリアム上でデプロイ・アクセスする方法について、EthStorageチームは以下の二つのソリューションを提案している:
-
web3:// アクセスプロトコル:スマートコントラクトを使ってフロントエンドコード、あるいは類似ファイルシステムをデプロイ・アクセスする問題を解決。
-
EthStorage レイヤー2ストレージプロトコル:イーサリアムのセキュリティを維持しつつ、ストレージコストを大幅に削減。
web3:// アクセスプロトコル
web3:// は、分散化されたバージョンの http:// と捉えることができる。httpのURLがサーバーのIPアドレスまたはドメイン名を指定して中央集権リソースにアクセスするのに対し、web3のURLはスマートコントラクトアドレスまたはENSドメイン名を指定して、そこに保存されたリソースにアクセスする。
つまり、ウェブサイトのフロントエンド全体をスマートコントラクトにデプロイし、web3:// 経由でアクセスできるようになるのだ。両者の違いを比較してみよう:

現在、web3:// はすでにイーサリアム公式標準(ERC-4804)として採用されている。web3://プロトコルの詳細については公式サイトを参照していただきたい。スマートコントラクト内でのより効率的なファイル管理を実現するため、我々はERC-5018を提案している。これはスマートコントラクト内でファイルシステムのインターフェースを模倣したものであり、ethfs-cliを用いてパッケージ化されたフロントエンドコードをスマートコントラクトにアップロードし、web3:// 経由でアクセスできるようにする。
興味のある方は、チュートリアルに従ってシンプルな分散型アプリのデプロイとアクセスを体験してみてほしい。
web3:// アクセスプロトコルにより、dAppのフロントエンドも真に「Code is law(コードは法律なり)」の属性を持つことができる。開発者にとって、一度デプロイすればそのフロントエンドは永久に動作し続ける。仮にUniswap Labsが自らのフロントエンドをイーサリアム上にデプロイしていたならば、たとえチームがフロントエンド上でユーザーを検閲・制限しようとしても、人々がイーサリアム上にデプロイされたフロントエンドを使うことを止めることはできない。
もちろん、技術的実現可能性が解決された後も、大量のデータをオンチェーンに保存するコストの高さが開発者の足かせとなる。そのため我々はさらに、イーサリアムのセキュリティを継承しつつストレージコストを劇的に削減する「EthStorage レイヤー2ストレージプロトコル」を開発した。
EthStorage レイヤー2ストレージプロトコル
EthStorageプロトコルは、イーサリアム上にデプロイされたスマートコントラクトと、レイヤー2ネットワーク内のストレージノードから構成される。スマートコントラクトはキー・バリューのストレージ機能を提供し、レイヤー2のストレージノードが実際のデータを保持する。
ユーザーはEIP-4844のBLOBを用いてデータをイーサリアムにアップロードするが、EthStorageのスマートコントラクトはBLOB内データのハッシュ値のみを記録するため、ストレージコストを大幅に削減できる。
同時に、レイヤー2のストレージノードは対応するBLOBデータをローカルディスクにダウンロードし、PoRA(Proof of Random Access)とゼロ知識証明(ZK)を用いてストレージ証明を生成、イーサリアム上のコントラクトに提出して検証を受ける。このコントラクトは、あらかじめ記録されたBLOBハッシュを使って、提出されたZK証明が一致するかどうかを確認し、これによりレイヤー2ノードが実際にデータを保持していることを保証する。
具体的な流れは以下の通り:

開発者にとっては、データのアップロードと取得のインターフェースが非常にシンプルである:

アプリ開発者はEthStorageが提供するコントラクトインターフェースを直接使って、大容量データの読み書きが可能になる。その書き込みコストは、直接オンチェーンに保存する場合の約1/1000程度に抑えられる。したがって、EthStorageはフロントエンドのオンチェーンデプロイを支援するだけでなく、より広範なキー・バリュー型データベース操作に対しても低コストなソリューションを提供している。
現在、EthStorageはイーサリアム財団から公式Grantsを獲得しており、Sepoliaネットワーク上にパブリックテストネットを展開済みである。皆さんの参加を歓迎する。
まとめと今後の展望
多くのDAppにおいて、フロントエンドやデータベースといった重要なコンポーネントがイーサリアム上にデプロイされておらず、イーサリアムのセキュリティを継承できていないため、アプリ全体としての永続性、検閲耐性、ガバナンスが確保されていない。
この問題に対し、EthStorageは二つのソリューションを提示した:web3://アクセスプロトコルにより、スマートコントラクトでのフロントエンドデプロイ・アクセスを可能にし、EthStorageレイヤー2ストレージプロトコルにより、過剰なストレージコストの問題を解決する。
イーサリアムの初期ビジョンを実現するためには、それが分散型のWebサーバーへと進化し、エコシステム内のDAppがバックエンド、フロントエンド、データのすべてをイーサリアム上にデプロイする必要がある。一度デプロイされたコードは永久に動作し、データは永久にアクセス可能となり、「停止不能なDApp(Unstoppable DApp)」が真に実現する。
EthStorageのパブリックテストネットでは、現在第二回インセンティブ活動を実施中である。興味のあるコミュニティメンバーは、ガイドに従って、自分自身の最初のUnstoppable DAppのデプロイとアクセスを体験してみよう!
TechFlow公式コミュニティへようこそ
Telegram購読グループ:https://t.me/TechFlowDaily
Twitter公式アカウント:https://x.com/TechFlowPost
Twitter英語アカウント:https://x.com/BlockFlow_News














