フロントエンドからデータベースまで、EthStorgeはDAPPが真の非信任化を実現するのにどのように役立つのか?
著者:ギーク Web3
要約:
分散型アプリケーションは複数の部分で構成されていますが、現在のところ最もコアなバックエンドロジックのみがイーサリアム上で稼働しており、フロントエンドコードなどの他の部分はイーサリアムの外にデプロイされています。また、多くのオンチェーンでないデータも含まれているため、ほとんどのDAPPはイーサリアムのセキュリティを完全に継承することができず、理想的な状態にはほど遠いです。
この問題の主な原因は二つあります。一つは、イーサリアムが開発者に対して適切なフロントエンドの標準とツールを提供していないこと、もう一つは、オンチェーンでデータを保存するコストが非常に高いことです。
分散型のフロントエンド標準を提供するために、EthStorageチームはweb3://アクセスプロトコルを提案し、開発者に対してスマートコントラクトを通じてフロントエンドコードをデプロイし、アクセスするための一整套の標準とツールを提供しました。現在、これはイーサリアムの正式な標準となっています。
イーサリアムのオンチェーンデータの保存コストを削減するために、EthStorageチームは二層ストレージプロトコルEthStorageを開発しました。PoRA(Proof of Random Access)とゼロ知識証明を利用し、イーサリアムの第一層のセキュリティを継承しつつ、ストレージコストを大幅に削減しました。
謝辞:この記事に対するフィードバックをいただいたギークWeb3のFaust、ChainFeedsのZhixiong Pan、LXDAOのBruce、EthStorageのQi Zhou、Lun Dengに感謝します。
分散型DAPPの背景と問題
イーサリアムのビジョンは、世界のコンピュータになることです。その上に構築されるアプリケーションはすべて、そのセキュリティを継承することが期待されています。開発者は一度デプロイすれば、そのアプリケーションは永遠にイーサリアム上で稼働し、誰もそれを審査したり悪意を持って操作したりすることはできません。
しかし、現在の分散型アプリケーションDAPPはこの目標を達成しているのでしょうか?この質問により明確に答えるためには、DAPPアプリケーションを解体し、どの部分が含まれているのかを見て、それぞれの部分の信頼性の程度を分析し、最終的な結論を導き出す必要があります。
一般的に、分散型DAPPはフロントエンドインターフェース、バックエンドサーバー、データベースを含みます。ユーザーがフロントエンドインターフェースにアクセスする際、ブラウザとドメインサービスを通じてフロントエンドコンテンツを読み込みます。その中で:
·フロントエンドとドメインサービス:ほとんどがスマートコントラクトを通じてデプロイされておらず、ブロックチェーンが提供する特性(単一障害点の回避、コードの改ざん不可、検閲耐性、コミュニティガバナンスなど)はフロントエンドの部分には反映されていません。
·バックエンドサーバー:一部はスマートコントラクトによって実現されており、計算集約型のタスクは完全にオンチェーンにはできません。
·データベース:一部はスマートコントラクトによって実現されていますが、オンチェーンのストレージコストが非常に高いため、大量のデータがある場合、DAPPは依然としてオフチェーンのストレージソリューションを採用しています。
上記の分析から、現在の分散型DAPPは一部のコンポーネントのみがスマートコントラクトを通じてイーサリアムの保護を受けていることがわかります。イーサリアムのエコシステムは、当初の「分散型の世界コンピュータ」というビジョンをまだ実現していません。
2023年末、Vitalikはイーサリアムの発展を振り返り、「Make Ethereum Cypherpunk Again」という反響の大きい記事を書き、イーサリアムコミュニティがどのようにサイファーパンクの理念に戻るべきかを議論しました。彼は、イーサリアムやより広範なWeb3コミュニティが守るべき価値観をまとめ、非常に重要な点を指摘しました:
分散型アプリケーションは、いかなる単一の主体への依存をできるだけ減らすべきであり、DAPPのコア開発者が永久に消失しても、アプリケーションは引き続き運用されることができるべきです。
このように、Vitalikも分散型アプリケーションの構築方法について同様の期待を抱いていることがわかります。次に、分散型DAPPの各コンポーネントが直面している問題を詳細に分析し、どのように改善できるかを探ります。
フロントエンドとドメインサービス
分散型アプリケーションのいくつかの構成要素の中で、フロントエンドとドメインサービスの中央集権化の程度が最も深刻です。現在、ほとんどのdAppのフロントエンドは中央集権的なサーバーを使用しており、プロジェクト側はいつでもフロントエンドコードを変更でき、コミュニティガバナンスを経る必要もなく、時間ロックの制限も受けません。この部分のセキュリティは、イーサリアム上にデプロイされたスマートコントラクトとは大きく異なります。
ハッカーがサーバーに侵入してフロントエンドコードを変更することができ、dAppユーザーはその悪意のあるフロントエンドを使用することで資産を失うことになります。この問題は昨年のDeFi Summerで繰り返し発生しました。私たちは思わず尋ねます:なぜフロントエンドはバックエンドと同様にイーサリアム上にデプロイできないのでしょうか?変更行為がコミュニティガバナンスと時間ロックを通じてのみ有効になるようにすることはできないのでしょうか?
さらに想像してみてください。もしUniswapの開発チームがある日、彼らのフロントエンドサーバーやドメインサービスの支払いをやめたら、UniswapのユーザーやLPはどのようにUniswapを使用するのでしょうか?
ほとんどのユーザーは、フロントエンドを介してスマートコントラクトと対話する方法を理解していません。UniswapはフロントエンドをIPFSにアップロードしようとしましたが、IPFSとイーサリアムは異なるネットワークであり、信頼性や非信頼性の程度がまったく異なります。特に、IPFSのコンテンツアクセス速度は非常に遅く、現在ほとんどのユーザーは依然としてUniswapの中央集権的なサーバーにデプロイされたフロントエンドと対話しています。
また、Uniswapのフロントエンドの運営主体はUniswap Labsであり、彼らは規制に応じてトークンリストの審査を強化しました。これは、彼らがイーサリアム上にデプロイしたスマートコントラクトとは対照的です。なぜなら、誰もスマートコントラクトを自由に変更することはできないからです。したがって、フロントエンドで審査されたトークンは、契約レベルでの対話が可能であり、コードをオンチェーンにすることが検閲に対抗する重要性を示しています。
バックエンドサーバー
EVMはチューリング完全な実行環境を提供できるため、ほとんどのバックエンドロジックはイーサリアムチェーン上で実行できます。私たちは、スマートコントラクト型のアプリケーションはイーサリアムのセキュリティを完全に継承できると言えます。ただし、コストの理由から、一部の計算集約型のタスクは直接オンチェーンで実行できません。
この問題に対処するために、現在多くの探求が行われているのは、ZKまたはOPの方法を使用して計算をオフチェーンで完了させ、イーサリアムチェーン上では計算結果のみを最終確認するという方法です。これにより、計算レベルでのスケーリングが行われます。一部のAI関連プロジェクトは、このような方法を極限まで推し進め、AI大モデルのようなスーパー計算集約型のタスクをブロックチェーンと結びつけようとしています。これは私たちが注目すべき点です。
データベース
データベースに関して、EVMはもともとキー・バリュー型ストレージ(Key Value Store)をサポートしており、非常に多くの使用シーンをカバーできますが、核心的な問題は、オンチェーンストレージのコストが非常に高いことです。
どれほど高いのでしょうか?ガス価格が10Gweiの場合、オンチェーンで1GBのデータを保存するには6200以上のETHが必要で、2000万ドルを超えます!明らかに、ストレージコストがデータベースの分散化の核心的な問題となっています。
私たちは考えます、上記の計算スケーリングと同様の方法を使用して、ストレージをスケーリングできないか、つまりオフチェーンストレージを使用し、オンチェーンでストレージの効果を検証することができるのではないかと。後ほど、この考え方について詳しく展開します。
上記のDAPPの構成要素を分析した結果、DAPPの各部分が十分に安全で非信頼化されている必要があることがわかりました。そのため、非信頼の全体として本当に分散型DAPPとなることができます。そして、イーサリアムはDAPPの運用とホスティングプラットフォームとして、開発者に対して適切なソリューションを提供する必要があります。そうすることで、イーサリアムのビジョンに合ったアプリケーションエコシステムが育まれるのです。
DAPPの非信頼化ソリューション
DAPPを完全にイーサリアム上でデプロイし、アクセスする方法について、EthStorageチームは二つのソリューションを提案しました:
- web3://アクセスプロトコル:スマートコントラクトを使用してフロントエンドコードをデプロイし、アクセスする方法を解決します。
- EthStorage二層ストレージプロトコル:イーサリアムのセキュリティを継承しつつ、ストレージコストを大幅に削減します。
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二層ストレージプロトコルを開発し、イーサリアムのセキュリティを継承しつつ、ストレージコストを大幅に削減しました。
EthStorage二層ストレージプロトコル
EthStorageプロトコルは、イーサリアム上にデプロイされたスマートコントラクトとLayer2ネットワーク内のストレージノードで構成されています。その中で、スマートコントラクトはキー・バリュー・ストレージを提供し、二層のストレージノードはデータ自体を保存します。
ユーザーはEIP-4844のBLOBを通じて保存するデータをイーサリアムにアップロードし、EthStorageスマートコントラクトはBLOB内のデータのハッシュのみを記録することで、ストレージコストを効果的に削減します。
同時に、二層のストレージノードは対応するBLOBデータをローカルディスクにダウンロードし、PoRA(Proof of Random Access)とZKを使用して、ストレージ証明をイーサリアム上のコントラクトに提出して検証します。このコントラクトは、以前に記録されたBlobハッシュを通じて、ストレージノードがアップロードしたZK証明が一致するかどうかを確認し、二層ネットワーク内のストレージノードが本当にこれらのデータを保存していることを確認します。
具体的なプロセスは以下の通りです:
開発者にとって、データのアップロードと取得のインターフェースは非常にシンプルです:
アプリケーション開発者は、EthStorageが提供するコントラクトインターフェースを通じて、大きなデータの読み書きを直接行うことができ、書き込みコストはオンチェーンでデータを保存するコストの約千分の一です。したがって、EthStorageはオンチェーンでのフロントエンドデプロイをサポートするだけでなく、より広範なキー・バリュー・ストレージデータベース操作にもコストの低いソリューションを提供しています。
現在、EthStorageはイーサリアム公式の助成金を受けており、Sepoliaに公開テストネットをデプロイしています。皆さんの参加を歓迎します。
まとめと展望
ほとんどのDAPPの重要なコンポーネントであるフロントエンドとデータベースがイーサリアムにデプロイされておらず、イーサリアムのセキュリティを継承できないため、アプリケーション全体が永続的に実行され、検閲耐性を持ち、ガバナンスが可能になることができません。
EthStorageはこの問題を解決するために二つのソリューションを提案しました:web3://アクセスプロトコルはスマートコントラクトを使用してフロントエンドをデプロイする問題を解決し、EthStorage二層ストレージプロトコルはストレージコストの高さの問題を解決します。
イーサリアムの最初のビジョンを実現するために、私たちはそれが分散型のWebサーバーに進化すると考えています。エコシステム内の分散型アプリケーションは、バックエンドコード、フロントエンド、データを含むすべてのコンポーネントをイーサリアムにデプロイし、一度デプロイすれば、コードは永遠に実行され、データは永遠にアクセス可能となり、真のUnstoppable Dappとなるでしょう。
EthStorageの公開テストネットは第二回のインセンティブ活動を行っています。興味のあるコミュニティの皆さんは、ガイドに従って自分の最初のUnstoppable Dappのデプロイとアクセスを完了してください!