IPFS
InterPlanetary File System : 惑星間ファイルシステム
Protocol Labsにより開発が進めれられているP2Pネットワーク上で動作するハイパーメディアプロトコルとその実装
従来はロケーション指向。
HTTPはロケーション指向のプロトコル
HTTPで通信するWebでhttps://www.xxx.com/aaa/index.htmlといったURLを指定してアクセスにアクセスするやつ。
「www.xxx.comというWebサーバにあるaaaというディレクトリの中のindex.htmlというファイル」
Web。
中央集権なことが問題になっている。Facebookのデータ収集の問題とか、Googleなどのビッグテックの問題。他にはWikipediaがアクセス遮断も問題になっている。
コンテンツ指向型プロトコル
Torrent スウォームを採用
SHAなどの暗号ハッシュ関数を利用してコンテンツのハッシュ値を求め、それをそのコンテンツのIDとして利用する方法を採用
分散ハッシュテーブル(DHT、Distributed Hash Table)
多数のシャード(断片)に分割されたファイルを複数の場所から同時にダウンロード
耐障害性
IPFSでは、コンテンツのハッシュ値を指定しそのコンテンツがある場所(サーバ等)は指定しません。そのため、たとえオリジナルのサーバが何らかの原因でダウンしていても、同じハッシュ値(=コンテンツ)のデータを持っているどこか他の場所から同じ情報を取得することができます。
負荷分散
コンテンツの場所を指定しないIPFSでは、同じコンテンツを複数のサーバから取得できる場合、より近いサーバから取得します。そのため一つのサーバに負荷が集中することを防ぐことが可能になります。
耐検閲性
ロケーション指向ネットワークでは、その情報のある場所(サーバ)へのアクセスを遮断するだけで検閲が可能でした。一方、コンテンツ指向ネットワークでは同じコンテンツは無数のサーバで保持されることが可能であり、どこかのサーバがアクセスを遮断されても、代理の他のどこか別のサーバから同一の情報が取得可能になり、検閲を難しくします。
耐改ざん性
データのハッシュ値をキーにデータにアクセスするということは、データの改ざんを不可能にします。データを取得した人はアクセスしたデータのIDであるハッシュ値と、そのコンテンツから得られるハッシュ値を比較することで容易にコンテンツの正当性を検証することができるからです。
データをアップロードする際に、256KBより大きければchunking(データを分割)し、UnixFS(Unix File System)形式でファイルとそのすべてのリンクとメタデータを表すためのブロック(もしくはブロックのツリー)を形成
IPLD(InterPlanetary Linked Data)
分散型データ構造(Merkle DAG、 Directed Acyclic Graph:有向非巡回グラフ)
IPFSの問題点
IPFSのP2Pネットワークのノードがコンテンツを保持する動機となるもの(インセンティブ)がないこと
採用事例
NeoCitiesがそのホスティングにIPFSを採用