レポート

次世代Webの最前線を知る ―「IPFS Workshop Tokyo」レポート

この記事を読むのに必要な時間:およそ 4 分

10月14日,東京・渋谷のNeutrinoで「IPFS Workshop Tokyo」が開催されました。IPFS(InterPlanetary File System)は,ハッシュ化とP2Pネットワークを組み合わせて動作するハイパーメディアプロトコルのシステムです。現在のインターネットで主要なプロトコルであるHTTP(Hyper Text Transfer Protocol)を補完または置換するプロトコルとして位置付けられています。

今回はIPFS開発陣がNeutrinoに集結して,IPFSの仕組みやエコシステム,使い方などを紹介するハンズオンセミナーを日本で初めて開催しました。台風の影響で当初の日程から延期されたにもかかわらず,50名から60名ほどが参加する盛況ぶりでした。初心者であってもIPFSとは何か,またその具体的な使い方を理解できる内容になっており,このレポートでは,ワークショップの様子を紹介します。

会場の様子(渋谷Neutrino)

会場の様子(渋谷Neutrino)

How does it work

まずはじめに,Go言語で実装されたIPFSクライアントの技術リーダーであるSteven Allen氏が登壇して,IPFSはどのような仕組みになっているかを説明しました。

Steven Allen氏の発表

Steven Allen氏の発表

IPFSではデータをアップロードする際に,256KBより大きければchunking(データを分割)し,UnixFS形式でファイルとそのすべてのリンクとメタデータを表すためのブロック(もしくはブロックのツリー)を形成します。その後,IPLD(InterPlanetary Linked Data)と呼ばれる仕組みによって,アドレス指定およびリンク可能な分散型データ構造(Merkle DAG:有向非巡回グラフ)を作成します。

UnixFSファイルとチャンキングしたファイルの例

UnixFSファイルとチャンキングしたファイルの例

IPFSでは各データにCID(Content Identifier)と呼ばれるラベルが付与されます。このCIDはコンテンツのhashに基づいているため,それぞれのコンテンツに個別のCIDが付与され,異なるIPFSノードに同じコンテンツを追加しても,それぞれのコンテンツのCIDは同じとなる特徴があります。次にPathについてです。IPFSでは,URLではなくpathでコンテンツにアクセスします。たとえば,/ipfs/QMfoo/index.htmlのような表記のパスです。また,IPFSではファイルを編集するとハッシュが変わるため,IPNSを利用することでファイルのハッシュの代わりに自分のPeerIdを結びつけて利用します。

次に,ルーティングについてです。ルーティングテーブルをピアが保持することでルーティングを決めますが,P2Pネットワークでは各ピアが接続しているため,ルーティングテーブルは巨大になるという懸念があります。そこで,IPFSではルーティングテーブルを細かく分けて分散化(DHT:分散ハッシュ―テーブル)しています。そして,アルゴリズムに合わせて分散化されたルーティングテーブルの一部を知ることができます。距離のメトリックとして,XOR(Hash(CID),Hash(Peer))を用いており,自身が知っている一番近いピアに問い合わせをして,アクセスしたいデータがどこにあるかを発見できます。

最後に,データ配布についてです。IPFSではBitTorrent(P2Pを用いたファイル転送用プロトコルおよびその通信を行うソフトウェアに強く影響されたBitSwapプロトコルがあり,これに準拠したピア間のブロック交換によってデータが配布されます。各ピアは自身が所持したいブロックリストと,自身が提供できるブロックリストを保持することで,ピア間でデータを交換することができます。

IPFS Ecosystem Growth and Adoption

IPFSのプロジェクトリーダーであるMolly Mackinlay氏が2番目の発表者として登壇し,IPFSのエコシステムの成長と採用について説明しました。

Molly Mackinlay氏の発表

Molly Mackinlay氏の発表

まずはじめに,IPFSではHTTPで採用されているドメインネームではなく,ハッシュ値をベースとしたコンテントアドレスによるパス表記だということを伝えました。そして,IPFSがいま取り組んでいる問題として,中央集権,オフラインで使えない,リンク切れ,セキュリティ問題などを挙げました。

次に,IPFSのコミュニティの成長について説明をしました。IPFSでは現在4,000以上のIPFSのコミュニティコントリビュータが北米やヨーロッパを中心に世界中に存在しているとのことです。

IPFSを活用したアプリ一覧

IPFSを活用したアプリ一覧

さらに,IPFSを活用したアプリ数の増加についてふれ,特にD.tube(STEEMブロックチェーンを活用した動画サイト⁠⁠,EVERIPEDIA(EOSブロックチェーンを活用したWikipediaのような百科事典サイト⁠⁠,BitTube(動画視聴時にマイニングさせる動画サイト)はそれぞれ1ヵ月に数百万ものアクティブユーザが利用しているとのことです。IPFSの需要は年々高まってきていることが伺えます。

具体的な活用例として,IPFSネットワークを介して分散データベースやリモートストレージなどを提供するオープンソースのツールであるTextile,インターネットの接続やネットワークの信頼に関わらず動作するメッセージアプリのberty,Ethereumアドレスに名前などの個人情報を付帯することでログイン処理の一元化や分散管理を簡単で安全にできるuPortなどが紹介され,IPFSを活用したさまざまなDapps(分散型アプリケーション)があることを説明しました。

さらに,IPFSへのアクセスが容易になってきているという状況を説明しました。コマンドラインを使わずにデスクトップアプリでIPFSにアクセスできるIPFS Desktopの紹介,Google ChromeやFirefoxなどのブラウザで拡張機能として利用できるプラグインの紹介,分散型WebプロトコルのチュートリアルであるProto Schoolなどを紹介しました。

著者プロフィール

藤谷知季(ふじたにともき)

筑波大学大学院博士前期課程1年/株式会社BUIDL インターン

1996年生まれ。奈良県出身。2017年に奈良高専情報工学科卒業後,筑波大学情報学群に3年次編入。2019年に筑波大学卒業後,筑波大学大学院システム情報工学研究科博士前期課程に入学,在学中。

ネットワークセキュリティ分野の研究室に所属しており,学士課程の卒業研究では暗号資産取引所のセキュリティ部分をメインとして実態調査を行う。大学院ではブロックチェーンのセキュリティに着手している。