paint-brush
Exa プロトコルと Darwin ブロックチェーンをどのように開発したか@exaprotocol
375 測定値
375 測定値

Exa プロトコルと Darwin ブロックチェーンをどのように開発したか

Exa Protocol7m2023/08/11
Read on Terminal Reader

長すぎる; 読むには

このストーリーでは、モバイル デバイス上の空きストレージ スペースを利用する、Exa Protocol と呼ばれる分散型ファイル ストレージ ネットワークの開発について説明します。私たちは既存のレイヤー 1 プロトコルの課題に直面し、並列ブロックチェーン アプローチを使用して Darwin と呼ばれる新しいプロトコルを設計しました。 Darwin は、独立した子チェーンで高いスループットとスケーラビリティを実現することを目指しています。 TestNet が構築され、分散化への新しいアプローチを提供し、個人がネットワークの維持に参加し、インターネットのバックボーン インフラストラクチャとして機能できるようになりました。
featured image - Exa プロトコルと Darwin ブロックチェーンをどのように開発したか
Exa Protocol HackerNoon profile picture

Google が「Google フォト」アプリの無料無制限ストレージの廃止を決定したときのことを今でも覚えています。私のような自称写真家にとって、これはひどいニュースでしたが、それが示したのは 1 つだけでした。それは、Google Storage サブスクリプションを購入することです。それは私にこう考えさせました。私の収入の一部を政府に支払って政府に加入するだけでは十分ではなかったでしょうか? (つまり税金)」


このような時、この問題を何か解決できないかと考えてしまいます。私の頭の中には次のような考えがありました。


  • 「無料で無制限の写真ストレージ サービスを構築して、人々に提供して人々に使ってもらいましょう。そして、さらに多くのサーバーを購入して実行できるように投資家に駆け寄ります。そして損失が出たら、あなたはこう言います。ユニコーンを構築しました」 – 現実的には、投資家に写真ストレージの料金を支払うよう求めるサービスを構築します。
  • 「しかし、サービスに料金を請求したらどうなるでしょうか?!」そのとき、現実という現実が私の頭に浮かびました。「それでは、別の Dropbox を構築したいのですか?」
  • したがって、SaaSy サービスはありません。ほかに何か?

ありがたいことに、1 つの答えは Web3 の世界にあります

今日のスマートフォンは、(計算的には)ほんの 2 年前の PC と同じくらいの能力を備えていますが、かなりの時間何もせずに休止状態になっており、さらに悪いことに、TikTok や Reels の視聴中には最小限のコンピューティング リソースを使用しています。この休止中の電話機を使用して、電話機の空きストレージ容量を使用して大規模なストレージ インフラストラクチャを構築できたらどうなるでしょうか?


大まかに計算すると、毎年、約 80 エクサバイトのストレージが新しいモバイル デバイスを通じてこの世界に追加されていることがわかります。このプロトコルは、そのスペースの一部を一般に提供するためにここにあります。したがって、これを EXA…プロトコルと呼んでいます。


私たちが考えたことは次のとおりです。「イーサリアム上にトークンを構築し、その本質的価値を人々が携帯電話で共有するストレージの量に設定しましょう。誰かが自分の携帯電話にファイルを保存したり、携帯電話からファイルを取得したりするたびに、ネイティブ トークンで補償されます。」モバイルファーストのアプローチにより、分散化とブロックチェーンの力を活用する手段を持たない人々も初めてそれを行うことができるようになります。これが本当の意味でブロックチェーン技術の民主化となります。


これに取り組んでいるときに、ジョー・ヴィターレのこの言葉を思い出したことは否定しません。



「ゴールはあなたを少し怖がらせ、そしてとても興奮させるものでなければなりません。」

ジョー・ヴィターレ



アイデア出し

Arpan Gargと私 ( Saurabh Singh ) が何ヶ月もホワイトボードに向かいましたが、問題を解決する方法についてまだ困惑していたのを覚えています。ソリューションの最初のバージョンは、「イーサリアムを使用し、ユーザーがモバイル ストレージの使用を許可するたびに、ユーザーに当社のトークンで補償するスマート コントラクトを展開します。」でした。そしてこれには大きな問題が山積していました。


  1. イーサリアムでは、TPS が 12 に制限されています (PoS フォーク前)。平均して 1 日に 100 回トランザクションを行うわずか 10,000 人のユーザーがいるイーサリアム ネットワークは機能不全に陥っていたでしょう (1 つのファイル リクエストは、シャーディングのため、50 回のリクエストを意味する可能性があります - 前述)。これは連鎖的な効果をもたらし、取引を実行するためにガソリン価格が高騰することになります。 – これでは規模が拡大しません。

  2. 他人の携帯電話に自分のデータを保存するよう人々を説得するにはどうすればよいでしょうか?

  3. 携帯電話はオンになったり切れたりし、2 年後には故障します。携帯電話が故障した場合でもデータが安全であることを確認するにはどうすればよいでしょうか?


まず、問題 2 と 3 に取り組みました。


  1. 十分なセキュリティを提供する AES 256 暗号化を使用して、ファイルを他のノードに送信して保存する前にユーザーが暗号化できるようにします。
  2. ファイルが暗号化されたら、ファイルを共有し、さまざまなデバイスにファイルを保存できます。冗長性と、「デバイスの 1 つがオフラインになったら、データがすべて失われる!?」というシナリオのために、複数のデバイスがシャードを保存するために使用されます。はい、この質問はよく受けます…

図 1: ファイルはシャードに分割され、クライアントによって暗号化およびリンクされ、ネットワーク内の複数のノードに保存されます。 1 つのノードがオフラインになった場合の冗長性を確保するために、1 つのシャードを複数のノードに保存できます。


公平を期すために言うと、上記の解決策は試行され、テストされており、この問題の解決については特に落ち着いていました。主な問題はレイヤー 1 プロトコルにありました。彼らは遅かった。本当に遅いみたいですww。彼らが提供したスループットは、ストレージ ネットワーク上で 1000 人のユーザーを維持するのに十分ではありませんでした。前述したように、簡単にネットワークを停止させてしまいます。 L2 にも希望はありませんでした。


そこで、モバイル デバイス上でネイティブに拡張および実行できる新しいレイヤー 1 を設計することにしました。私たちは L1 – ダーウィンと呼んでいます。

解決

ある晴れた朝、Arpan と私はオフィスに座って、新しいブロックチェーン アーキテクチャについて議論し、議論していました。私たちはこの質問を自問しました。「 1 つのブロックチェーンではなく、複数のブロックチェーンが並行して実行されていたらどうなるでしょうか?」


それはいいことのように聞こえますが、どうやってそれを管理しますか?


私たちが国、州、都市を独立して機能させることで統治するのと同じです。


よく考えてみましょう。この地球上に人間が数人しかいなかったとき、彼らにとっては全世界が一つの大きな国だった。」


そうですね。


そして人間が増えると、彼らは土地を分割し、別々の国を作りました。


本当だよ。


同じことをモバイルノードでもやってみたらどうでしょうか?」


試してみましょう…


そして私たちは試してみました!私たちは丸一週間ホワイトボードに向かって現実世界からのアナロジーを使って L1 を設計しました。私たちのホワイトボードは、アーキテクチャの詳細を理解して解決するために、次のようになっていました。


図 2: ホワイトボード上の木のパターンからダーウィンの作成まで。


1 か月半後、私たちはアーキテクチャを完成させ、それを「ダーウィン」と名付けました。


ダーウィンは、文明が時間の経過とともに進化し、私たちが知っている都市、州、国家を形成したのと同じように建築されてきました。ダーウィンは、より良いガバナンスを実現し、ネットワークのパフォーマンスを向上させるために、すべてのノードを 1 つのブロックチェーン全体の一部として見るのではなく、ノードを複数のチェーンにセグメント化します。

図 3: 初期の人類にとって、完全な土地は 1 つの完全な国家と見なすことができました。より多くの人間が出現するにつれて、土地は独自の統治を持つ国と呼ばれる小さなセクションに分離されます。


文明は進化し、都市などのグループを形成します。 Darwin は、ネットワークにノードが追加されるにつれて進化します。ダーウィン チェーンの進化により、ダーウィン チェーンが複数の子チェーンに分割され、近くにあるノードがグループ化され、ネットワーク パフォーマンスが向上します。


文明には、適切に機能するための強固な統治システムもあります。 Darwin は、子チェーンを定期的に監査するサーバー ノードを使用してガバナンスを実現します。

ダーウェインはどのように機能するのでしょうか?

Darwin Chain は、ネットワークの成長に応じて TPS を向上させるために継続的に進化し、また、チェーンを動的にシャーディングおよび最適化して、独立して動作し、トランザクションを検証するための独自の完全なノードのセットを持つ並列子チェーンを作成します。これらのノードは、低レイテンシーで相互にトランザクションできるノードのチェーンを形成し、ミューテーションと呼ばれるいくつかの条件に一致すると、各チェーンが異なるチェーンに分割されます。

図 4: 完全なノードの数が増加し、相互にトランザクションを行う際のダーウィン チェーンの突然変異の表現。ここに示されている化石ブロックは、各子チェーンのジェネシス ブロックです。


チェーンが変化すると、各子チェーンは独立して成長し、トランザクションを検証するための独自の独立したノードを持ちます。ノードは、各子チェーンの通信とトランザクションの待ち時間を短縮するアルゴリズムを使用して子チェーン間で分散されます。これにより、各子チェーンが独立して動作してトランザクションの作成と検証を行うため、チェーンのスループットが飛躍的に増加します。


サーバーへのトラフィックが最大になるエリアに近いサーバー上でホストされる Web2 アプリケーションの場合と同様に、ノードが近い距離に基づいてグループ化されるため、リソースはより速く利用可能になります。 Darwin チェーンは、子チェーンの作成中に、コンピューティング能力、共有ストレージ スペース、ノードのネットワーク可用性/評判などの要素も使用します。


Darwin を作成することで、分散ストレージ インフラストラクチャをサポートし、モバイル デバイス上でネイティブに実行できる L1 という最大のボトルネックが解決されました。

ダーウィンのパフォーマンス (理論上の最大値): ~ 780 万 TPS。


これらすべては、当社のウェブサイトから入手できるイエローペーパーに正式に規定されています。

しかし、それは本当に効果があるのでしょうか?

図 5: Darwin チェーン エクスプローラーのスクリーンショット。ツリー内のすべての行は、独立して動作するブロックチェーンです。


はい、そうです!


私たちは最近、理論を実際のコードに変換して TestNet を構築しました。上のスクリーンショットでは、Darwin ブロックチェーンが視覚的にどのように見えるかを確認できます。ツリー構造には、それぞれ独立したブロックチェーンが保持されます。

次のステップ

Darwin は、現時点ではネイティブ トークンを処理できるレイヤー 1 にすぎません。次のステップは、モバイル デバイスを使用した真の分散型ストレージ インフラストラクチャという目標を達成する DFS (分散ファイル システム) ロジックを統合することです。


チェーンのスケーラビリティを考慮すると、DFS を統合した後の次のステップとして、EVM 互換の VM を作成してスマート コントラクトの展開を有効にすることが考えられます。


一部の人にとって、それは単なる別のブロックチェーンかもしれません。私たちにとって、分散化に向けたまったく新しいアプローチが見えてきます。サトシがビットコイン ペーパーを書いたとき、彼はあなたや私のような人がネットワークに参加し、ネットワークを維持できる世界を思い描いていました。 10 年以上が経過しましたが、ネットワークを維持する権限は少数の人の手に渡っているようです (超大規模なマイニング ファームについて話しています)。


私たちはダーウィンとともに、暗号資産の移転を可能にし、インターネットのバックボーンインフラストラクチャーとして機能する分散型システムを人々(企業や少数の富裕層ではない)に管理してもらうつもりです。


私たちと一緒にこの旅に参加しませんか?


Arpan (左) と私がダーウィンのアーキテクチャを完成させた日。


ここでも公開されています。