InterPlanetary File System

InterPlanetary File System
開発元 Protocol Labs
リポジトリ github.com/ipfs/ipfs
プログラミング
言語
プロトコル実装: Go (参照実装), JavaScript, Python
クライアントライブラリ: Go, Java, JavaScript, Python, Scala, Haskell, Swift, CommonLisp, Rust, Ruby, Swift, PHP, C#
対応OS FreeBSD, Linux, macOS, Microsoft Windows
サポート状況 現行
種別 プロトコル, 分散ファイルシステム英語版, コンテンツデリバリネットワーク
ライセンス MITライセンス
公式サイト ipfs.io
テンプレートを表示
ウィキペディアのロゴには QmRW3V9znzFW9M5FYbitSEvd5dQrPWGvPvgQD6LM22Tv8D というIPFSのハッシュが付けられている。ロゴにはハッシュを使って 公共ゲートウェイローカルのIPFSインスタンスによってHTTP経由でアクセスできる。

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

解説[編集]

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

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

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

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

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

歴史[編集]

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

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

評価[編集]

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

脚注[編集]

  1. ^ "How IPFS works". 2022年4月23日閲覧
  2. ^ "Distributed Hash Tables (DHTs)". 2022年10月26日閲覧
  3. ^ "The IPFS Project - How it works". 2015年9月11日閲覧
  4. ^ "IPFS README". 2015年9月11日閲覧
  5. ^ arweave
  6. ^ lighthouse
  7. ^ "IPFS - Content Addressed, Versioned, P2P File System (DRAFT 3)" (PDF). 2022年4月23日閲覧
  8. ^ "Timeline of Work 2014 may". 2022年4月23日閲覧
  9. ^ "Protocol Labs: Creating New Networks". 2022年4月23日閲覧
  10. ^ "About Protocol Labs". 2022年4月23日閲覧
  11. ^ "Brave Integrates IPFS". Brave. 19 January 2021. 2021年3月5日時点のオリジナルよりアーカイブ。2021年3月11日閲覧
  12. ^ 松尾公也「Braveが非中央集権Webをブラウズする「IPFS」をサポート 政府で禁じられたサイトへもアクセス可能に」『ITmedia』、2021年1月21日。2021年3月11日閲覧。オリジナルの2021年1月23日時点におけるアーカイブ。
  13. ^ Ayala, Dietrich. "IPFS in Brave - Native Access to the Distributed Web". IPFS. 2021年2月25日時点のオリジナルよりアーカイブ。2021年3月11日閲覧
  14. ^ Matney, Locus「ウェブブラウザーBraveがピア・トゥ・ピアプロトコルIPFSのネイティブサポートを追加」『TechCrunch』、2021年1月20日。2021年3月11日閲覧。オリジナルの2021年3月11日時点におけるアーカイブ。
  15. ^ 広告ブロック機能搭載ブラウザ「Brave」が分散型システム「IPFS」を統合」『GIGAZINE』、2021年1月20日。2021年3月11日閲覧。オリジナルの2021年1月21日時点におけるアーカイブ。
  16. ^ Porter, Jon (19 January 2021). "Brave browser takes step toward enabling a decentralized web". The Verge. 2021年2月26日時点のオリジナルよりアーカイブ。2021年3月11日閲覧
  17. ^ Cimpanu, Catalin (19 January 2021). "Brave becomes first browser to add native support for the IPFS protocol". ZDNet. 2021年1月21日時点のオリジナルよりアーカイブ。2021年3月11日閲覧
  18. ^ "HTTP is obsolete. It's time for the distributed, permanent web". 2015年9月11日閲覧

関連項目[編集]

外部リンク[編集]