InterPlanetary File System
開発元 | Protocol Labs |
---|---|
リポジトリ |
github |
プログラミング 言語 |
プロトコル実装: 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 |
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]。
脚注
[編集]- ^ "How IPFS works". 2022年4月23日閲覧。
- ^ "Distributed Hash Tables (DHTs)". 2022年10月26日閲覧。
- ^ "The IPFS Project - How it works". 2015年9月11日閲覧。
- ^ "IPFS README". 2015年9月11日閲覧。
- ^ arweave
- ^ lighthouse
- ^ "IPFS - Content Addressed, Versioned, P2P File System (DRAFT 3)" (PDF). 2022年4月23日閲覧。
- ^ "Timeline of Work 2014 may". 2022年4月23日閲覧。
- ^ "Protocol Labs: Creating New Networks". 2022年4月23日閲覧。
- ^ "About Protocol Labs". 2022年4月23日閲覧。
- ^ "Brave Integrates IPFS". Brave. 19 January 2021. 2021年3月5日時点のオリジナルよりアーカイブ。2021年3月11日閲覧。
- ^ 松尾公也「Braveが非中央集権Webをブラウズする「IPFS」をサポート 政府で禁じられたサイトへもアクセス可能に」『ITmedia』2021年1月21日。オリジナルの2021年1月23日時点におけるアーカイブ。2021年3月11日閲覧。
- ^ Ayala, Dietrich. "IPFS in Brave - Native Access to the Distributed Web". IPFS. 2021年2月25日時点のオリジナルよりアーカイブ。2021年3月11日閲覧。
- ^ Matney, Locus「ウェブブラウザーBraveがピア・トゥ・ピアプロトコルIPFSのネイティブサポートを追加」『TechCrunch』2021年1月20日。オリジナルの2021年3月11日時点におけるアーカイブ。2021年3月11日閲覧。
- ^ 「広告ブロック機能搭載ブラウザ「Brave」が分散型システム「IPFS」を統合」『GIGAZINE』2021年1月20日。オリジナルの2021年1月21日時点におけるアーカイブ。2021年3月11日閲覧。
- ^ Porter, Jon (19 January 2021). "Brave browser takes step toward enabling a decentralized web". The Verge. 2021年2月26日時点のオリジナルよりアーカイブ。2021年3月11日閲覧。
- ^ Cimpanu, Catalin (19 January 2021). "Brave becomes first browser to add native support for the IPFS protocol". ZDNet. 2021年1月21日時点のオリジナルよりアーカイブ。2021年3月11日閲覧。
- ^ "HTTP is obsolete. It's time for the distributed, permanent web". 2015年9月11日閲覧。
関連項目
[編集]- BitTorrent - P2P技術を用いたファイル転送プロトコルの一つ。
- Sia
- Storj
- 分散型アプリケーション