少しずつ、日本でもWEB3.0について語られるようになりました。
WEB3.0を語る上で重要なキーワードとなるのが「分散」です。
「GAFA(ガーファ)」の四大ビックテック企業の中央集権的な力から分散しようとする動きです。
この場合の分散は「データ」を指します。
そして、データに限らず「通信」も分散することを目指そうとされています。
このような背景を受けて「IPFS」という通信の分散を実現するプロトコルが注目されているのです。
となるような耳慣れない言葉ですよね。
この記事では、「IPFS」を具体的な例をもとにわかりやすく解説していきます。
最後までお読みいただけると、IPFSがどのようなものなのかが理解できるはず。
ぜひ、最後までお付き合いください。
参考
WEB3.0については【わかりやすく解説】WEB3.0とは?具体例を元にメリットとデメリットを解説で解説しています。ぜひ、ご一読ください。
次世代プロトコル「IPFS」
いま現在は、WEB2.0に該当するネットワーク事情となっています。
非常に中央集権的なデータ管理の構造です。
ウェブサイトのデータは基本的にはサーバーに保管されています。
技術が高度になるにつれ、データ量が増え続けるのは容易に想像できます。
当然ですが、データが増えれば増えるほどサーバーも増強しくてはなりません。
その分、コストもかかってしまうし、サーバーの負荷も大きくなってしまいます。
現在のネットワークの問題点をまとめると、、、
ここが問題
- サーバーに依存している
- コストがかかる
大まかに挙げるとこの二点です。
この問題を解決するにはどうすれば良いでしょうか?
ポイント
- サーバーに依存しない
- コストがかからないようにする
ということですね。
これを実現するのが「IPFS」という通信技術であり、WEB3.0時代のデフォルトのプロトコルになると言われています。
プロトコルとは?
まず、プロトコルについて解説します。
ネットワーク上ではプロトコルと呼ばれる規格(決まりごと)があります。
例えば、日本では「日本円」が法定通貨として定められており、日本中どこでも使うことができますよね。
仮に、「東京では東京円、大阪では大阪円だけしか利用できません」となると、とても不便です。
経済を円滑に回すには、共通の通貨を利用できた方が便利なわけです。
ネットワークにも全く同じことが当てはまります。
ウェブサイトは、Chromeなどのブラウザを利用して、サーバーに保管されたサイトのデータを閲覧することができます。
ブラウザやサーバーもさまざまな種類がありますよね。それぞれに独自のプロトコルがあれば、アクセスする環境によって閲覧できなかったりしてしまうという問題が出てきます。
例えば、chromeだと表示できるがsafariではできない、というようなことです。
それでは大変不便ですよね。
そこで、ブラウザとサーバー間のやり取りは世界共通であった方が便利だよねということで、「http」や「https」というプロトコルが定められました。
どちらも、ほとんどの方が一度は目にされているのではないでしょうか?
ウェブサイトURLの冒頭部分ですね。
「http」の状態であれば暗号化されておらず、セキュリティ上問題があります。
「https」とすると「暗号化して通信してね」というプロトコルとなり、現状のほとんどのウェブサイトの規格となっています。
たとえば、ぼくのブログサイトなら、
https://yoshi-blog2021.com
というURLになっています。
ロケーション指向型とは?
サイトを閲覧するときの流れを考えてみましょう。
ぼくのこの記事を例に考えてみます。
https://yoshi-blog2021.com/web3/web3-ipfs
というようなURLになっています。
httpsの規格でyoshiblogのweb3ディレクトリのweb3-ipfsのファイル
と読み取ることができます。
ディレクトリとは、カテゴリーのようなものです。
つまり、場所(サーバー、ディレクトリ、ファイルなど)を指定して通信されているということになります。
step
1ユーザーがブラウザでURLを入力し、サーバーにリクエストする
step
2httpsの規格でyoshiblogのweb3ディレクトリのipfsのファイルがレスポンスされる
step
3ユーザーがサイトを閲覧できる
というのが、サイトを閲覧する流れとなります。
ファイルの場所を指定して通信する流れを「ロケーション指向型」といい、現在の最も利用されている通信方法となります。
しかし「ロケーション指向型」の場合、ちょっとした問題が出てきます。
ロケーション指向型のデメリット
ぼくのブログサイトのデータは、全てレンタルサーバー内に保存されています。
めったにありませんが、サーバーにトラブルがあったり通信障害があったりすると、サーバーがダウンしてしまうこともあります。
その場合、当然ぼくのサイトは検索してもヒットしません。
個人ブログならばまだしも、銀行や証券を取り扱うサーバーがダウンしてしまうと、とんでもないことになりますよね。
また、サイトへのアクセスの制限や禁止などもサーバーができてしまいます。
自分が運営管理しているにも関わらず、サーバーサイドにすべての権限があるということになってしまうのです。
確かにレンタルしているので当然ではありますが、あまりにも中央集権的になってしまうのはいかがなものか、という声が出てくることも考えられますよね。
つまり、一つのサーバーだけに全てのデータを預けるということは、非常にリスクがあるということです。
もっと分散的にデータを管理することはできないものか?
そこで、登場するのが「IPFS」というプロトコルになります。
IPFSとは?
IPFSとは「Inter Planetary File System」の頭文字を総称しています。
日本語訳をすると、「惑星間管理システム」となります。
もう少しわかりやすくいうと、「分散型ファイル管理システム」という感じです。
ですよね。
先述した「http」「https」に代わる次世代プロトコルとして注目されています。
主な特徴は以下の二点です。
ココがポイント
- P2Pネットワーク上で動作する
- コンテンツ指向型である
一つずつ解説していきますね。
P2P(ピアツーピア)でつながるネットワーク
P2Pとは、通信技術の一つで「Peer to Peer 」の略称です。
従来のネットワークは、サーバーを介して送受信されることが多いです。
が、P2Pではサーバーを介すことなく、端末同士で接続し、通信をすることができます。
簡単にいうと、世界中の端末それぞれがサーバーの役割を果たすことができるようになるということですね。
重要なのは、物理的なデータの場所です。
どこから持ってくるのか?ということになるのです。
サーバーからではなく、それぞれの端末であるノードから優先的に持ってくるということですね。
日本の多くの方はSNSアプリのLINEを使っておられると思いますが、LINEでもP2Pの通信技術が使われています。
簡単に速く写真や動画を送ることができますよね。
大規模なサーバーを置かずに、それぞれの端末のデータを利用することでP2Pを実現できるのです。
以上のことをまとめてみると、P2Pの主な特徴としては、以下の点が考えられます。
✔︎通信速度が速い
サーバーを介さず、物理的に近い端末同士での通信となるので速度が速くなります。
✔︎データの分散管理
個々の端末同士での通信を実現することにより、サーバーへの負荷が軽減されます。
一つのサーバーにデータが存在するわけではなく、個々の端末に分散して保存されます。
そのため、サーバーがダウンしたとしても通信は遮断されず、端末から直接通信することができます。
サーバーへの依存を防ぐとともに、それぞれの端末にかかる負荷も軽減されます。
P2Pの種類
P2Pには、3つの通信方法があります。
ピュアP2P
端末同士のみで接続して通信する方法です。
ハイブリッドP2P
端末同士で接続して通信するのですが、データの保存はサーバーとなる方法です。
スーパーノード型P2P
非常に高性能な端末(ノード)が、それに接続されている端末の情報を管理する接続方法です。
本店が支店の情報を管理するというイメージがわかりやすかもしれません。
コンテンツ指向型とは?
少し振り返ると、既存の通信方法はロケーション指向型となっていると解説しました。
場所(サーバー、ディレクトリ、ファイル)を指定して通信されているということでしたね。
しかし、ユーザーから考えてみると、場所つまりロケーションはあまり重要ではありませんよね?
どこのサーバーに保存されているとか、どのディレクトリに分類されているなどということは、あまり必要ではない情報です。
それよりも、そのコンテンツの内容が重要となりますね。
例えば、「ワンピース1巻」が読みたくなったとしましょう。
本屋さんで買おうとAmazonで買おうと同じ「ワンピース1巻」であり、中身こそが重要だということです。
ネットワークでも全く同じことが当てはまります。
どのサーバーであろうがどのディレクトリであろうがユーザーにはとっては重要ではありません。
中身の記事やコンテンツそのものが重要だということです。
つまり、コンテンツ指向型とは、場所を指定して通信するのではなく、コンテンツそのものを指定して通信をするということです。
では、どのようにして指定すれば良いのでしょうか?
そこで出てくるのが「ハッシュ」という値になります。
ハッシュ値とは?
ハッシュ値というのは、非常にざっくりとした言い方をすると、一つのデータから非常にややこしい計算をして算出される値のことです。
このハッシュ値をコンテンツのIDとして利用します。
当然、何か一箇所でも違えば、ハッシュ値は変わってきます。
IPFSは、ハッシュ値をもとめて通信するので、場所(ロケーション)を必要とせず、いわば狙いうちでコンテンツをもとめることが可能になります。
これがコンテンツ指向型という通信方法となります。
参考
ハッシュに関しては、専門的な用語がたくさん出てくるので、細かな解説は割愛しています。詳しく知りたい方はこちらのサイトを参考にしてみてください。
ここまでのまとめ
ここまでを一旦まとめてみますね。
既存のネットワークは、、、
既存のネットワーク
- データの場所(サーバー、ディレクトリ、ファイル名など)を指定して通信するロケーション指向型
- サーバーと端末のみの通信
これによって生じる問題が、、、
ココが問題
- サーバーに依存してしまう
- サーバー増強のコストがかかる
ということでした。
これを解決するのがIPFSであり、その特徴は、、、
IPFSの特徴
- ハッシュ値をもとめ、コンテンツそのものを指定して通信するコンテンツ指向型
- P2Pによって端末同士が通信可能
ということが挙げられ、分散的にデータの通信が可能となったということです。
以上の内容を踏まえて、メリットについて考えてみます。
IPFSの4つのメリット
IPFSのメリットには、以下の四つを挙げることができます。
ココがメリット
- 障害に強い
- 負荷が分散される
- 検閲
- 詐欺サイト等への流入阻止
具体例を挙げつつ、解説していきます。
例えば、有名なアーティストのライブチケットを購入するとしましょう。
申し込みサイトが東京のサーバーに保存されていると仮定してみます。
販売開始になると、日本中から東京のサーバーにアクセスが集中します。
中には、運良くアクセスできるユーザーもおられるでしょう。
障害に強い
アクセスが集中して、サーバーに何らの障害が発生する恐れも出てきます。当然サーバーがダウンしてしまうこともあるでしょう。
IPFSの場合
アクセスできたユーザーの端末がサーバーの役目を果たすことができます。
東京のサーバーがダウンしても問題ありません。
負荷が分散される
アクセスが集中するということは、その分サーバーに負荷がかかります。これによってもサーバーがダウンしてしまうことがあります。
IPFSの場合
アクセスできたユーザーが増えれば増えるほど、それぞれがサーバーの役目を果たします。東京のサーバーに一点集中するのではなく、負荷が分散されるようになります。
検閲
人気アーティストであれば、海外からのアクセスもあるかもしれません。
しかし、国によっては検閲で日本のサーバーにアクセスできないということもあります。
IPFSの場合
東京のサーバーだけではなく、日本中の端末がサーバーとなるので、検閲を回避することが可能です。
詐欺サイト等への流入阻止
中には、チケット申し込みサイトを偽造して詐欺を考える人もおられるかもしれません。そっくりそのままのサイトであれば、間違って購入してしまう方もおられるでしょう。
IPFSの場合
申し込みサイトのハッシュ値をもとめて通信します。
ほんの少しでも手を加えても、算出されるハッシュ値は変わってきます。
正しいハッシュ値をもとめて通信されるので、フィッシングや詐欺サイトへの流入を防ぐことができます。
チケット販売を例に考えてみましたが、何となくイメージしていただけたのではないでしょうか?
これが、世界規模で繋がっていくと考えると莫大な通信経路が生まれてくるということになります。
しかし、繋がり過ぎてしまうため新たな問題も出てきます。
P2Pネットワークの場合、マルウェアなどのウィルスに弱いです。
サーバーを介すことなく、ユーザー同士で通信してしまうため、感染拡大が懸念されます。
また、ログも残らずマルウェアの出元を探ることも非常に困難です。
それぞれが気をつけてセキュリティ対策をする必要があります。
便利になる反面、自己責任の比重が大きくなってきます。
これも一つのWEB3.0の特徴であると言えるかもしれません。
IPFSの実例
IPFSは、従来のネットワークにはないメリットがたくさんあり、着実に広がってきています。
✔︎WEB3.0時代の主役となりそうな、イーサリアムのメインサイトがIPFSでホスティングされることが発表されています。この注目度は非常に高いです。
✔︎また、次世代ブラウザとしても注目されている「brave」でもIPFSをサポートしています。
「ipfs://」で始まるURLを指定すると、IPFSのコンテンツが利用できるようになります。
今後もさまざまな事例が出てくることでしょう。
IPFSについてのまとめ
以上、IPFSについて解説してみました。
最後にもう一度まとめてみます。
IPFSとは
- P2Pネットワークによる分散的な通信を実現
- データの場所ではなく、コンテンツそのもののハッシュ値を求めて通信
その結果、、、
ココがスゴイ
- サーバーに依存することがなくなる
- サーバーの増強コストが軽減される
ということでした。
WEB3.0のキーワードともいえる「分散」を実現する次世代のプロトコルということですね。
セキュリティの面では気をつけなければならない部分もありますが、それ以上にメリットも多いです。
未来にワクワクしながら、新しいネットワーク時代を楽しみに待ちましょう!
最後までお読みいただき、ありがとうございました。