NEWS
ニュース
IPFSの仕組み 2021.03.04
IPFSはp2pを用いたネットワークで、IPFS上のコンテンツはどこからでも取得することができます。IPFSは以下の3つの原理から成り立っています。
- コンテンツアドレスを用いたユニークID
- DAGsを用いたコンテンツ同士の接続
- DHTsを用いたコンテンツの検索
コンテンツアドレス
普段我々がインターネットでWebページを見るのにURLを入力していますが、このURLはコンテンツを補完している「場所」を識別しています。一方で、IPFSでは「コンテンツ」を識別するのにコンテンツアドレス(CID, Content Identifier)を用いています。
コンテンツアドレスはコンテンツのハッシュ値です。ハッシュ値は同じコンテンツであれば同じ値になりますが、すこしでも異なると全く違うハッシュ値になるという性質があるため、コンテンツによってユニークなIDが割り振られている状態になります。
そのためこのコンテンツアドレスを用いることで、コンテンツを直接検索するよりも短い時間でコンテンツを検索することができます。
DAGs(Directed Acyclic Graphs )
DAGsは日本語では「有向非巡回グラフ」と訳されます。IPFSではDAGsの一種であるMerkle DAGsが使用されており、簡単に言うと各コンテンツの繋がりを示しています。
例えばA_dirというフォルダにb.txtというファイルと、c.txtというファイルがあった場合にIPFSでは各コンテンツに固有のコンテンツアドレスが割り振られますが、DAGsを用いることで各コンテンツの関係性を知ることができます。(下記URL参照)
https://explore.ipld.io/#/explore/QmSnuWmxptJZdLJpKRarxBMS2Ju2oANVrgbr2xWbie9b2D
つまり直感的にA_dirの中にb.txtとc.txtが存在するということが固有のコンテンツアドレスから検知できるようになっています。
DHTs(Distributed Hash Tables)
どのノードが指定のコンテンツを持っているかを知るためにDHTsが使用されます。つまり、あるコンテンツのコンテンツアドレスを指定すると、それがどこにあるかが記載されている表です。
コンテンツの種類が膨大であるためこの表が非常に大きくなるため分割されてネットワーク上に分散されて保存されています。そのためDistrubuted Hash Tablesという名前がついています。
また、どのノードに保存されているか分かったらどのようなルートでそのコンテンツを取得するかもこのDHTsを用います。最短距離でコンテンツを取得できるように最適化されたルーティングを取得してその経路でコンテンツを取得します。
簡単にですがIPFSの仕組みを解説いたしました。
参考文献
https://docs.ipfs.io/concepts/how-ipfs-works/#content-addressing