TECHNOLOGY

技術情報

IPFSとは(vol.1) IPFSの生い立ちと技術

IPFSとはInterplanetaryFile Systemの略で直訳すると「惑星間移動ファイルシステム」となり、宇宙をワープして素早くファイルを取りに行くといったイメージでしょうか?

IPFSはP2Pシステム

IPFSの基本構造はP2P(ピア・ツー・ピア)分散型システムによるファイル共有システムです。
開発は2015年頃から始まったようです。


ビットコインが巷に出てからP2Pという言葉をよく耳にしますが実はこのP2Pによるシステムは20年ほど前からファイル共有システムとして開発、実用化がされていました。

実用化と言っても当時の「パソコンマニア」と呼ばれる一部のマニアでとても重宝されていただけなのですが。
「Winny(ウイニー)」、「LimeWire(ライムワイヤー)」、「BitTorrent(ビットトレント)」など他にも多数リリースされていました。

当時、筆者はLimeWireで音楽ファイル共有に参加していました。

音楽を入れたフォルダーをお互いに公開してユーザー同士自由に楽曲を交換できる画期的なシステムでした。

ルールとして楽曲の入った自分フォルダーを公開する事です。
しかし、不用意に音楽以外が含まれているフォルダやドライブを公開すると全てが丸見えで、セキュリティーなんてあったものじゃなかったです(笑)。

ダウンロードしたい楽曲を検索すると多数リストアップされ回線速度も表示されるので、できるだけ早い回線に接続された楽曲を選んでダウンロードしていた記憶があります。

しかし、これらの行為は著作権法に違反しているのと、セキュリティー上非常に危険な状況に晒されている事に気づき次第に使うことを控えるようになりました。当然悪意のあるウイルスをばら撒くのも容易ですが、当時は冗談程度ウイルスで平和なネット社会でした。

蛇足になりますが、その後(2010年)米国連邦裁判所の命令で「LimeWire」アプリの配布が禁止されました。

このように当時のインターネット上のファイル共有システムはP2Pシステムで構築するのがトレンディーだったのです。

何故かというと、当時の回線(インターネット)は現在(1Gbps〜100Gbps)のように速くなく、日本国内で光ケーブルが一般家庭に敷設される以前で、公衆電話回線を利用して(速くて128K/bps)ネットワークが構成されていた時代のお話であります。

まだまだハードウエア環境も乏しい時代だったので、遅いネットワークを効率よく使う技術として、インターネット網の中にP2Pネットワークがソフトウエアによって接続されるという画期的なシステムなのでした。

前置きがずいぶん長くなってしまいましたが、この様な技術的時代背景があり現在の技術進化と手法により画期的なIPFSが開発されていると言って過言ではありません。

IPFSはクラウド型システム
ipfscloud
現在のインターネットではクライアント・サーバー型と呼ばれ、一般的なホームページやブログなどはサーバーが中心にあり閲覧ユーザーはその情報をサーバーにリクエストします。その結果が現在見ておられるこの画面なのです。

この場合の欠点は一度に多くのユーザーが閲覧のためにリクエストした場合、処理能力をオーバーすると表示が遅れたり最悪の場合はサーバーが一時的に止まって(フリーズ状態)しまいます。取引所などで売買が集中すると接続不能のエラーを発生したりする事もあります。
つまり「1対多」で繋がれているわけです。

近年の光ケーブルやそれらの接続端末などハードウエア技術が格段に上がり、回線容量をさほど考えない時代が過ぎ去ったところです。
現在では携帯端末の普及により想定以上のトラフィックが頻繁に起こり一部にアクセスが集中すると関連のない周辺(ハード的な位置)のサイトまで影響を与えることが分かってきました。
ここ最近ではAWS(アマゾンのクラウドサーバー)に於いて、トラフックが原因ではなかったのですが一部のサーバー群の停止により、かなり大規模な不具合が確認されました。

この様にネットワークシステムで一番避けたい事はサーバーダウンです。特に銀行オンラインやトレードの取引所では大きな損害を被ることになります。

ならば、サーバーを分割すれば1台あたりの負荷が減るという考え方が一般的になってきました。
実際に重要なシステムは複数台のサーバーを冗長的に稼働させているシステム構成となっています。しかし、この場合複数台のサーバーは同期とアクセスバランスをとって常に安定して動いていなければなりません、もちろんそのうちの1台がダウンしても冗長性を保ちますが、それをコントロールするシステムが他に必要になってきます。
あらゆる条件でサーバーダウンを避けるにはこのように複雑で高度なシステム構築する必要があるため設備のみならず運用コストもかさみます。

では、それだけでいいのかというと答えはノーです。
実はそれらのサーバーに接続されるライン(インターネット回線)は1本で同じアドレスに集中すればやはり回線がオーバーフローしてコントロールが出来なくなってしまいます。

さらに、セキュリティー面でも一極集中型なのでそのメインとなるサーバーには重要な情報が多く存在します、近年「ハッキング」という言葉を多く聞かれると思いますが、そのサーバーをネット越しに部外者が侵入し格納されている重要なデータを盗み取る犯罪が横行しています。つまり1台のメインコンピュータに侵入できれば全てのデーターをごっそり抜き取ること(ハッキング)が出来てしまうのです。
そういった欠点を補うシステムとしてクラウドという概念が出てきたのです。
クラウドはメインになるサーバーが分散され、データーも分散されるので攻撃されにくい利点を持っています。

そのクラウドの一つとして「分散型ファイルシステムIPFS」があると理解していただければこの先も容易に理解していただけると思います。



繰り返しにないますが、大きな特徴としては複数台の一極集中型ではなく分散したコンピュータ(技術的にはノードと呼ばれる)と回線が複数ありそれらが互いに接続されている(ピア・ツー・ピア:P2Pと呼ばれる)状態でかつブロックチェーン技術を持つ事も可能なのです。
先のAWSとIPFSの違いはデータを収納しているノード(サーバー)が消失しても別のノードにデータが送られるという仕組みによりそのデーターが永久に消えないという利点を持っています。これらの仕組は後に詳しく解説する予定です。

さらに、IPFSはブロックチェーンを持つことが可能ですから暗号通貨とブロックチェーンの仕組みにより同時にマイニングもできるという画期的なシステムも構築可能です。
実際にIPFSをベースとした「Filecoin」はSpaceXプロジェクトとの協業で注目されつつあります。

続く・・