メインコンテンツへスキップ
Change page

分散型ストレージ

最終編集者: @HiroyukiNaito(opens in a new tab), 2024年4月1日

単一の企業ないしは組織に運営されている中央集権型サーバーとは異なり、分散型ストレージシステムは、データ全体の一部を保持するユーザーや事業者のピアツーピアネットワークで構成されます。これにより、耐障害性のあるファイルストレージ共有システムを構築することができます。 これらの分散型ストレージシステムは、ブロックチェーン上のアプリケーションやピアツーピアをベースとしたネットワークに取り入れることができます。

イーサリアム自体を分散型ストレージシステムとして使用することができ、全てのスマートコントラクトのコードストレージがまさにそれにあてはまります。 しかしながら、イーサリアムは大量のデータの保存に適した設計にはなっていません。 チェーンは着実に大きくなっていっており、執筆時点でのイーサリアムチェーンの容量は、(クライアントによって異なりますが、(opens in a new tab))およそ500GB - 1TBにもなっています。ネットワーク上の全てのノードは、これだけのデータを保存できる必要があります。 チェーンのデータサイズが巨大になってしまった場合(たとえば5TB)、全てのノードが実行を続けることはとても現実的ではありません。 しかも、これほどのデータをメインネットにデプロイするために必要なコストは、ガス代のために法外なほどに高価なものとなります。

これらの制限のために、大量のデータを分散型の手法で保存するには異なるチェーンか方法が必要になります。

分散型ストレージ(dStorage)を実現する方法を探すとき、ユーザーが念頭に置いておくべきことがいくつかあります。

  • 永続化メカニズム/インセンティブ構造
  • データ保持の強制
  • 分散性
  • コンセンサスの方法

永続化メカニズム/インセンティブ構造

ブロックチェーンベース

データの一部を永続的に保存するためには、なんらかの永続化メカニズムを利用する必要があります。 たとえば、イーサリアムでは1つのノードを実行する際にチェーン全体で処理を行う必要があるという永続化メカニズムがあります。 新しいデータがチェーンの終わりに追加され、そのデータは増大を続けます。これに伴い、すべてのノードは埋め込まれたすべてのデータを複製する必要があります。

これは、ブロックチェーンベースの永続性として知られています。

ブロックチェーンベースの永続性には、チェーンがあまりにも大きくなりすぎると、すべてのデータを維持・保存することが難しくなるという問題があります(例: 多くの資料(opens in a new tab)がインターネットには40ゼタバイト以上のストレージ容量が必要だと見積もっています)。

ブロックチェーンには、なんらかの形でインセンティブを発生させる構造が必要です。 ブロックチェーンベースの永続化には、バリデータへの支払いというインセンティブがあります。 データがチェーンに追加されると、バリデータはそのデータを追加することで支払いを受けます。

ブロックチェーンベースの永続性を持つプラットフォーム

コントラクトベース

コントラクトベースの永続性では、すべてのノードでデータを複製し永遠に保存することはできないということが分かります。そのため、代わりにコントラクトによる合意で維持しなければなりません。 これらの合意は、複数台のノード間で結ばれる、一定期間データを保持することを約束するものです。 データを保持するためには、コントラクトの期間が切れるたびに払い戻しまたは更新が行われなければなりません。

ほとんどの場合、オンチェーンにすべてのデータを保存する代わりに、チェーン上でデータが保存されている場所のハッシュが保存されます。 こうすることで、すべてのデータを保持するためにチェーン全体を拡張する必要がなくなります。

コントラクトベースの永続性を持つプラットフォーム

その他の考慮事項

IPFSは、ファイル、ウェブサイト、アプリケーション、データの保存とアクセスのための分散型システムです。 インセンティブスキームは組み込まれていませんが、上記のいずれかのコントラクトベースのインセンティブソリューションとともに、データの長期保持に使用できます。 IPFSでデータを保持するもう一つの方法は、ピンニングサービスというデータを「固定化」してくれるサービスと連携することです。 独自のIPFSノードを実行して自分のデータや他のユーザーのデータを無料で保持し、ネットワークに貢献することもできます。

SWARMは、ストレージインセンティブシステムとストレージレンタル価格オラクルを備えた分散型データストレージおよび分配テクノロジーです。

データの保持

データを保持するには、データが保持されていることを確認するためのメカニズムをシステムに搭載する必要があります。

チャレンジメカニズム

データが保持されていることを確認する最も一般的な方法の1つに、ノードに発行されるある種の暗号論的チャレンジを使用して、ノードにまだデータがあることを確認するという方法があります。 シンプルな方法として、Arweaveのプルーフ・オブ・アクセス(PoA)があります。 これは、ノードに対してチャレンジを行い、最新のブロックとランダムな過去ブロックの両方にデータがあるかどうかを確認するものです。 ノードがチャレンジに解答できない場合、ペナルティが課されます。

チャレンジメカニズムを備えた分散型ストレージ(dStorage)のタイプ:

  • 0Chain
  • Skynet
  • Arweave
  • Filecoin
  • Crust Network
  • 4EVERLAND

分散性

プラットフォームの分散化レベルを測る優れたツールはありませんが、一般的に、プラットフォームが中央集権型ではないという証拠を示すために、KYCという形態を持たないツールを使用したいと考えるでしょう。

KYCなしの分散型ツール

  • 0Chain(KYCなし版を実装)
  • Skynet
  • Arweave
  • Filecoin
  • IPFS (ピアツーピア分散ファイルシステム)
  • イーサリアム
  • Crust Network
  • 4EVERLAND

コンセンサスの方法

これらのツールのほとんどは、独自のバージョンの合意メカニズムを持っていますが、通常は、プルーフ・オブ・ワーク(PoW)またはプルーフ・オブ・ステーク(PoS)に基づいています。

プルーフ・オブ・ワーク方式:

  • Skynet
  • Arweave

プルーフ・オブ・ステーク方式:

  • イーサリアム
  • Filecoin
  • 0Chain
  • Crust Network

IPFS - IPFS (InterPlanetary File System)は、イーサリアムのための分散ストレージとファイル参照システムです。

Storj DCS - デベロッパー向けの安全でプライベートなS3互換の分散型クラウド・オブジェクト・ストレージです。

Skynet - Skynetは、分散型Web専用の分散型PoWチェーンです。

Filecoin - Filecoinは、IPFSの開発チームによって作成されたものです。 IPFSの理想形をベースとしたインセンティブレイヤーです。

Arweave - Arweaveは、データを保存するための分散型ストレージ(dStorage)プラットフォームです。

0chain - 0Chainは、シャーディングとブロバーを備えたプルーフ・オブ・ステークの分散型ストレージ(dStorage)プラットフォームです。

Crust Network - Crustは、IPFSベースの分散型ストレージ(dStorage)プラットフォームです。

Swarm - イーサリアムWeb3スタックのための分散型ストレージプラットフォームとコンテンツ配信サービスです。

OrbitDB - IPFSベースの分散型ピアツーピアのデータベースです。

Aleph.im - 分散型クラウドプロジェクト(データベース、ファイルストレージ、コンピューティング、DID)です。 オフチェーンとオンチェーンをうまく組み合わせたピアツーピア技術。 IPFSとマルチチェーン互換性。

Ceramic - データリッチで魅力的なアプリケーションのためのユーザー制御IPFSデータベースストレージです。

Filebase - S3互換の分散型ストレージと地理冗長なIPFSピンニングサービスです。 Filebase経由でIPFSにアップロードされたすべてのファイルは、世界中で3か所にレプリケーションされてFilebaseインフラストラクチャへ自動的にピンされます。

4EVERLAND - ストレージ、コンピューティング、ネットワークのコア機能を統合するWeb 3.0クラウドコンピューティング・プラットフォームで、S3と互換性があり、IPFSやArweaveなどの分散型ストレージネットワークで同期データストレージを提供します。

Kaleido - クリックボタンIPFSノードを備えたブロックチェーン・アズ・ア・サービス・プラットフォーム

参考文献

役に立つコミュニティリソースをご存知の場合は、 ページを編集して追加してください。

この記事は役に立ちましたか?