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

分散型ストレージ

最終更新: 2025年10月22日

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

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

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

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

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

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

ブロックチェーンベース

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

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

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

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

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

コントラクトベース

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

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

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

その他の考慮事項

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

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

データ保持

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

チャレンジメカニズム

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

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

  • Züs
  • Skynet
  • Arweave
  • Filecoin
  • Crust Network
  • 4EVERLAND

分散性

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

KYCなしの分散型ツール

  • Skynet
  • Arweave
  • Filecoin
  • IPFS(ピアツーピア分散ファイルシステム)
  • イーサリアム
  • Crust Network
  • 4EVERLAND

コンセンサス

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

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

  • Skynet
  • Arweave

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

  • イーサリアム
  • Filecoin
  • Züs
  • Crust Network

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

Storj DCS - 開発者向けの、安全でプライベートなS3互換の分散型クラウドオブジェクトストレージです。

Sia - 暗号技術を活用してトラストレスなクラウドストレージマーケットプレイスを作成し、買い手と売り手が直接取引できるようにします。

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

Arweave - Arweaveは、データを保存するためのdStorageプラットフォームです。

Züs - Züsは、シャーディングとブロバーを備えたプルーフ・オブ・ステークの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ノードを備えたブロックチェーン・アズ・ア・サービス・プラットフォーム

Spheron Network - Spheronは、最高のパフォーマンスを持つ分散型インフラ上でアプリケーションを立ち上げたいdAppsのために設計された、プラットフォーム・アズ・ア・サービス(PaaS)です。 コンピューティング、分散型ストレージ、CDN、Webホスティングを標準で提供します。

参考リンク

Know of a community resource that helped you? Edit this page and add it!

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