BlockchainBiz KV

全てのコンピュータデバイスを同じファイルシステムにつなぐことを目的とした分散型ファイルシステムIPFS。分散型ファイルシステムは既存のインターネットの課題を解決する仕組みとしてネット業界から注目を集めている分野でもあります。本記事では分散型ファイルシステムIPFSについて説明します。

IIPFSとは?その仕組み

IPFSはInter Planetary File Systemの頭文字を取っており、全てのコンピュータデバイスを同じファイルシステムにつなぐことを目的とした分散型ファイルシステムです。また、ネットワークの各参加者(Peer)がデータを保持し、参加者同士がデータの提供や要求を行う分散型のネットワークモデルであるP2P(Peer to Peer)形式でIPFSのネットワークは成り立っており耐障害性が高い設計になっています。

 

コンテンツ指向型のプロトコル

まず、IPFSではコンテンツ指向型のプロトコルが採用されており、コンテンツの内容自体を指定して直接アクセスする仕組みになっています。コンテンツ指向型を理解するために実際の例を見て説明するとわかりやすいでしょう。

「Blockchain-biz」と書いたテキストファイル、「Gaiax」と書いたテキストファイル、そのコピーファイルの3つのファイルをIPFSにアップロードしてみます。

IPFSにアップロードすると、上の画像のように表示されます。あるデータを変換して得られる固定長のデータのこと「ハッシュ」と呼び、IPFSではコンテンツを45文字のハッシュ値に変換してネットワークにアップロードします。ここでは「blockchain-biz」の文字列のハッシュ値が「QmdviDs8tsCV7yQL1jeKZFiATS43Fx5HVCgTuk5xz96qqv」で、「Gaiax」の文字列のハッシュ値が「QmawJYXhmBWgC24C5kogjtUz4tx51cnR1vzt2R2AhEc8VW」にあたります。

そして、IPFSではこのハッシュ値がコンテンツの識別子(CID:Contents Identifier)として使用され、直接コンテンツにアクセスする形になります。

実際に、ハッシュ値にアクセスしてみるをコンテンツの中身をみることができます。

写真の1つ目のコマンドが「blockchain-biz」の文字列が保存されているテキストファイルのハッシュ値である「QmdviDs8tsCV7yQL1jeKZFiATS43Fx5HVCgTuk5xz96qqv」にアクセスしており、2つ目のコマンドが「Gaiax」の文字列が保存された「QmawJYXhmBWgC24C5kogjtUz4tx51cnR1vzt2R2AhEc8VW」にアクセスしています。

このようにIPFSでは、ネットワークにアップロードされるコンテンツをハッシュ化し、そのコンテンツに直接アクセスする形でファイルを読み込むことができる仕組みになっています。

 

コンテンツをネットワーク参加者で分散して保持

また、ネットワーク参加者間でデータを偏りなく分散させ管理するアルゴリズムであるDHT(Distributed Hash Table)を利用して、IPFSのネットワーク参加者同士で分散してコンテンツを管理できるようになっています。

そして、アクセスしたいコンテンツがある場合はそのコンテンツを持っているネットワーク参加者に直接コンテンツを受け取ることができます。

 

従来のロケーション指向型のプロトコルの課題

IPFSにメリットについてより深く理解するために、現在もっともよく使われているネットワークプロトコル、ロケーション指向型のプロトコルとその課題について理解しましょう。

ロケーション指向型のプロトコルとは、インターネット上の通信プロトコルの一種で、クライアント(ネット利用者)が欲しいデータをサーバー要求して、そのデータの配置されているサーバーからデータが渡される仕組みのことを指します。このように、アクセスしたい情報が存在する場所を指定して情報を得ることから「ロケーション指向型」のプロトコルと呼ばれています。HTTPプロトコルがロケーション指向型のプロトコルの代表的な例になります。

ロケーション指向型のプロトコルはデータの分配や管理が簡単に行えること、サーバー側とクライアント側がスケールしやすいこと、などのメリットはありますが、一方で大きな課題も抱えています。

まず、ロケーション指向型のプロトコルの課題として考えられることは、「クライアントからの要求が特定のサーバーに集中すること」です。実際の例を用いて説明すると、東京オリンピックのチケット販売サイトのログインに時間がかかる現象が起こりました。この問題は、数十万人が一斉にオリンピックのチケットサイトにアクセスし、チケットサイトのサーバーがそのアクセスの処理に対応できなかったことが原因だと考えられます。このように、ロケーション指向型のプロトコルではクライアントの要求の数が多すぎるとサーバーがその要求を処理できずに、サイトの挙動が遅くなることがあります。また、クライアントの要求を捌ききれずにさらに悪いケースになると、サーバーがダウンしてサイトすら開けない状態になります。

画像:サイトがダウンしてる画像 IT mediaより

また、「ネット検閲」も課題として挙げられます。ネット検閲とはインターネットや電子メールといったネット上の情報を政府機関が不適当と判断したものを取り締まる行為のことを指します。代表的なネット検閲の例は中国で、Google検索エンジン、FacebookやTwitterなどのSNSサービス、Youtubeなどの動画配信サービスなど、多くのインターネットサービスが政府の規制により国内での利用が制限されています。また中国の例の他にも、トルコでは政治的な理由でGoogleやYoutubeなどのサイトへのアクセスが制限されたり、エジプトでは「アラブの春」の時に反政府デモの混乱を沈めるためにインターネットへの接続が遮断されたり、多くの国でネット検閲が行われています。このように、ロケーション指向型のプロトコルではデータを取得するためにある決められたサーバーにアクセスするため、第三者からがそのアクセスを遮断しやすく、政府によりインターネット規制が容易に行われる構造になっています。

ロケーション指向型の代表例であるHTTPプロトコルは1990年末に開発され、現在の多くのインターネット場での通信に利用され発展してきましたが、ロケーション指向型による様々なデメリットが浮き彫りになってきています。

 

IPFSのメリット

このように、コンテンツをネットワークの参加者で分散して管理し、コンテンツ志向型のプロトコルを持っているIPFSは「対改ざん性」「耐障害性」「対検閲性」などのメリットを持っています。

・対改ざん性:コンテンツが少しでも変化するとハッシュ値は変化するので、もしコンテンツが改ざんされたとしたらコンテンツのハッシュ値も変わるためコンテンツが正しいものであるかを簡単に検証できます。

・耐障害性:ある特定のサーバーにデータをアクセスすることなく、ネットワークの参加者同士でデータのやりとりを行います。そのため、特定の場所にアクセスが集中してネットワークが遅くなったり、サーバーがダウンしてネットに繋がらなくなったりすることを防ぐことができます。

・耐検閲性:コンテンツ指向型プロトコルではドメインやIPアドレスでコンテンツの出どころをブロックし、容易にネット検閲が可能でした。ですが、IPFSではコンテンツを複数のネットワークの参加者が持っているため、どこか特定の参加者へのアクセスが遮断されても、他の参加者にアクセスしてデータを取得できるため、政府によるネット検閲がかなり難しい仕組みになっています。

これらのことから、ロケーション指向形のプロトコルでは難しかった、改ざん、障害、検閲に対する課題をクリアしていることがわかります。

 

IPFSが使われているプロジェクト

ではIPFSはどのようなプロジェクトに使われているのでしょうか?

画像:IPFS Application Diagram

ブロックチェーンを利用した分散型のデジタルIDサービスuPort、 CtoCのマーケットプレイスを構築できるプラットフォームORIGIN、動画を見てる最中にマイニングができる動画サイトBitTube、Wikipediaのようなコミュニティー全体の力で作る百科事典サイト⁠EVERIPEDIA、など多くのサービスでIPFSが利用されています。

ですが、紹介されているサービスの多くがブロックチェーンをベースとしたサービスで、ブロックチェーンと相性が良いからIPFSが使われているだけとの意見もあり、まだ業界を超えて広く使われるまでにはいたっていません。

 

IPFSの今後

分散台帳や分散ストレージにデータが記録され、各種権限はブロックチェーンなどの分散台帳によってユーザーが自ら管理できるようになる「Web3」の世界観には、IPFSのような分散型のファイルシステムは重要な役割を果たすことが期待できます。また、IPNSと呼ばれるIPFSのハッシュにドメインネームのようにある特定の名前をつけてわかりやすくするサービスや、IPLDと呼ばれるIPFSのコンテンツのバーションを管理する技術など、IPFSを支える多くの技術がOSSとしてIPFSコミュニティーの中で自主的に開発されています。

画像:IPFS関連技術 IPFS Githubより

ですが、IPFSのような分散ストレージのサービスは他にも多く存在しており、AWS(Amazon Web Servise)でよく使われるS3やEFS、Ethereumブロックチェーンに組み込まれている分散ファイルストレージSwarmなど、それらのサービスが分散型として浸透していく可能性も十分にありえます。

また、最近では分散クラウドストレージを開発しているstorjが、クラウド上の余剰容量を活用してファイルを安全に保存し、尚且つ既存のAWSのC3などと比べてかなり安い料金でストレージを提供できることを発表しています。

クラウド上の余剰容量を活用する、分散ストレージサービス運営のStorjがエンタープライズに進出

 

このように分散ストレージサービスには多くのプロジェクトが存在しておりしのぎを削っています。これらのサービスがどのように発展していくのか、今後の動向から目が離せません。

Yosuke Aramaki

Gaiaxでブロックチェーンの研究開発を担当。ブロックチェーン業界また開発者コミュニティの発展のため、ブロックチェーンを用いたアプリケーションを開発し、それらをオープンソースとして公開する。

Search