InterPlanetary File System

InterPlanetary File System (IPFS) とは、分散ファイルシステムにデータを保存、共有するためのプロトコル、かつP2Pネットワークである。自由かつオープンソースでもある。IPFSはコンテンツアドレス (CID) を使用してファイルを一意に識別する。IPFSはHTTP（ロケーションベースのハイパーメディアサーバープロトコル）に代わり、World Wide Webを配布することができる。

解説
IPFSは、同じファイルシステムを持つ全てのコンピューターへの接続を試みるP2P分散ファイルシステムである。

複数の点でIPFSはウェブと共通点があるが、ウェブはコンテンツの場所を指定してコンテンツを取得するのに対し、IPFSはコンテンツのハッシュ値をIDとしたCIDを指定してコンテンツを取得する（content-addressable storage、CAS）の1種である。つまり、IPFSでコンテンツを取得する場合、そのコンテンツのCIDをネットワークにリクエストし、そのCIDのパーツ（分散化されたコンテンツのデータ）を持つ最寄のピアから取得する。

IPFSはコンテンツおよびP2Pネットワークの分散にKademliaアルゴリズムを基本としており、分散ハッシュテーブルとインセンティブブロック交換、自己証明名前空間を組み合わせている。そのため、単一障害点がなく、お互いに信頼しあう必要もない。このことにより、IPFSはハイスループットの内容アドレスブロックストレージモデルをマークル木の有向非巡回グラフで生成された内容アドレスハイパーリンクで提供する。言い換えれば、IPFSは単一のBitTorrentスウォームもしくは1つのGitリポジトリの中でオブジェクトを交換するようなことがIPFSネットワーク内で出来る。

ファイルシステムはFUSEやHTTP経由といった複数の方法でアクセスできる。ローカルファイルもIPFSのファイルシステムに追加することができ、世界中で利用することができる。ファイルはそれぞれのハッシュで識別することでキャッシングしやすくなる。また、Bittorrentをベースにしたプロトコルを使って拡散する。コンテンツを見る他のユーザーはネットワーク上で他人にコンテンツを提供することになる。IPFSにはPKIをベースにしたグローバル名前空間であるIPNSと呼ばれるネームサービスがあり、信頼できるチェーンを構築するために提供されており、他のNSesと互換性がある上、 DNS、.onion、.bitをIPNSに対応付けることができる。

重要な性質として、IPFSに一度アップロードされたファイルは消せる保証がない。IPFSはアクセス制御を実現できず、即ちCRUDを実現することもできない。全てのファイルは常に公開され、第三者にピンどめ（キャッシュの維持）をされる可能性を持つ。紐づけるIPFSアドレスを可変とするIPNSアドレスという機能もあるが、IPNSアドレスからIPFSアドレス（CID）は逆引き可能である。
ファイルを消せないという性質を逆手にとり、恒久的にデータを保存するサービスも存在するarweavelighthouse。

 歴史 
IPFSはホアン・ベネット (Juan Benet) が最初に提唱したプロトコルであり、同氏が立ち上げたProtocol Labsがオープンソースのコミュニティからの協力を得ながら開発している。

2021年1月19日、Braveはバージョン1.19から、IPFSを標準でサポートすることを発表した。これによって、BraveはIPFSを統合した初のブラウザとなった。

 評価 
ウェブホスティングサービスの設立者であるカイル・ドレイクはIPFSはHTTPその他数多くのプロトコルとソリューションの後継になると確信しているとし「HTTP分散コンテンツには根本的な欠陥があり、パフォーマンスチューンナップの意義もなく、壊れたCA SSLが強制されるが、それらも修正されるであろう。」と述べている。

 脚注 

 関連項目 

 BitTorrent - P2P技術を用いたファイル転送プロトコルの一つ。
 Sia
 Storj
 分散型アプリケーション

 外部リンク 
 IPFS Website
 HTTP is obsolete. It's time for the distributed, permanent web
 Interplanetary Networks
 Protocol Labs

Category:分散データ共有
Category:P2P
Category:アプリケーション層プロトコル
Category:インターネットのプロトコル
Category:ファイル転送プロトコル
Category:通信プロトコル
Category:World Wide Web
Category:Pythonでプログラムされた自由ソフトウェア
Category:ファイル共有ネットワーク
カテゴリ:2015年開設のウェブサイト