分散型ファイルストレージ(decentralized/distributed storage)とは?

分散型ファイルストレージ(decentralized/distributed storage)とは?

本稿では、まずネットワークに参加する不特定多数のノード間でコンテンツを分散管理する「分散型ファイルストレージ(decentralized storage/distributed storage)」の概要を説明します。

続いて、この分散型ストレージの具体的な例として”IPFS”と”Swarm”という2つのプロダクトを取り上げ、両者の特徴やそれぞれの違いなどに触れながら理解を深めていくことを目指します。

ゴール

分散ファイルストレージの大まかな仕組みを理解します。

この記事はこんな人におすすめです

・分散ファイル、ブロックチェーンを使ったストレージに興味がある方。
・通貨以外のブロックチェーンの活用例が知りたい方

前提知識

P2Pネットワーク、ブロックチェーンの基礎的知識が必要となります。

本記事での用語の説明

ノード:P2Pネットワークの参加者。ここではチェーンを維持し、コンテンツの管理、配信などに貢献するものを指す
peer(ピア) :  P2Pで直接通信するノード同士の関係のこと。対等なもの同士の関係性をいう。
コンテンツ:  テキスト、動画、画像、グラフィックデーターなどのデータ

分散ファイルストレージ(decentralized storage)とは何か?

分散型ファイルストレージの概要

分散ファイルストレージとは、P2Pネットワークでつながったノード間でファイルを共有する仕組みです。

P2Pネットワーク上のストレージにアップロードされたファイルは、暗号化することでプライバシーが確保され、さらに断片化しキャッシュファイルとして各ノードに分散して置くことで耐障害性を高めています。

「分散ファイルストレージ」という呼称ですが、国内での認知度はまだ低いようです。(海外では、 「decentralized storage」または、「decentralized cloud storage」と呼ばれることが多いようです。)

中央集権型ストレージと分散(非中央集権)型ストレージ

分散型のファイルストレージの概念を理解するために、まずは既に身近に使われておりイメージしやすい中央集権型のストレージサービスを例に挙げ、それぞれを比較しながら見ていきたいと思います

まず中央集権型のクラウドストレージのサービスですが、有名なところで「Dropbox」、「Google Drive」などが挙げられるかと思います。それぞれ専用のアプリをインストールするなどして、オンラインに自分専用のストレージ領域を持つことができます。

下に中央集権、分散型それぞれのイメージ図を書きました。

「Dropbox」「Google Drive」は中央集権型で、分散ファイルストレージの多くは非中央集権型に属します。

中央集権型の場合、運営会社(Google、Dropbox)側に管理の全てを委託していますので、万が一中央のサーバーで致命的な障害が発生した場合にはアップロードしたファイルが消滅するなどのリスクがあります。

最悪のケースでは運営会社の倒産、ファイル喪失などの原因により、サービスの継続が不可能になった際には、利用者のコンテンツが永久に失われたまま帰ってこない可能性も考えられます。

一方で、非中央集権型の分散ファイルストレージでは、世界中にあるノードが全て失われゼロにならない限り、サービスは永遠に続けることが可能です。この考え方はブロックチェーンの分散化の仕組みとよく似ています。

DHT(分散ハッシュテーブル)

DHT(Distributed Hash Table)とは、データを分散させ、公平に偏りがなく管理するためのアルゴリズムの総称です。

特徴として、コンテンツをアップロードする際に、コンテンツ自体をハッシュ計算により、ユニーク性をもたせ、ネットワークに参加しているノードに効率的に分散させます。

コンテンツを検索する際もノード数に関係なく、O(N)オーダーよりも良いOオーダーで検索できます。

分散ファイルストレージでは、コンテンツの管理にこのDHTを利用しているケースが多いです。

アルゴリズムの種類は、Kademlia、Koorde、Chord、が代表的で、これらの他にもいろいろな種類が存在しています。

一般的なDHTのイメージが以下の図になります。

アップロードされたコンテンツは、P2Pネットワークのノードに保存される前にハッシュ関数にかけられハッシュ化されます。

保存するネットワーク上のノードにはあらかじめ、保存対象のハッシュのprefix(識別のための接頭辞)が決めてあります。

そして、このprefixとハッシュ値を利用することによって、

・チェーンに参加している各ノードに対するコンテンツの割り当て
・コンテンツ保存先ノードの検索

などの動作を実現しています。

では、その実装方法・動作の仕組みについて、上の図に沿って説明していきましょう。


これ以降の記事はオンラインサロン「即戦力!ブロックチェーン技術者養成道場」で公開中です。

続きを見るには、即戦力!ブロックチェーン技術者養成道場(DMMのページに移動します)をご覧ください!

ブロックチェーンの専門企業で働いてみませんか?

当サイトを運営するコンセンサス・ベイス株式会社では、エンジニア、プロジェクトマネージャー、ライターなど、様々なポジションで一緒に働いてくださる仲間を募集しています。

ブロックチェーン業界にチャレンジしてみたいあなたのご応募をお待ちしております!

技術全般カテゴリの最新記事