コンセンサス・ベイスブロックチェーン技術のポータルサイト。ビジネスに関する記事や技術メモ、最新のSNSでシェアされたニュースも見ることができます。本稿では、分散型ストレージの具体的な例として”IPFS”と”Swarm”という2つのプロダクトを取り上げ、両者の特徴やそれぞれの違いなどに触れながら理解を深めていくことを目指します。ゴールIPFS、Swarmの大まかな仕組みを理解します。ターゲット分散ファイル、ブロックチェーンを使ったストレージに興味がある方。前提知識P2Pネットワーク、ブロックチェーンの基礎的知識が必要となります。加えて、前回の記事を読み、分散型ファイルストレージについての理解をしておくことが望ましいです。System(惑星間ファイルシステム)という壮大なネーミングの略称です。テキスト、動画、画像、グラフィックデーターなどをP2Pネットワーク内で、分散ファイルシステムを利用して保存することを可能にする技術です。us.(IPFSはHTTPに取って代わり、私たちすべてにとってより良いwebを作ることを目指すものである)(カッコ内の訳は編集部によるもの)とあるように、分散ファイルストレージそのものというよりは、その下のレイヤーでシステムを支えるP2P分散プロトコルと位置づけられます。既存のWebサービスのように特定の管理されたサーバーにリクエストが集中することなく、世界中にあるIPFSのP2Pネットワークに参加しているノードにリクエストが分散されるのが特徴です。単一障害点がなく、ノード間で信頼関係も必要ない(トラストレス)ため、誰でもIPFSネットワークに参加が可能です。例IPFSネットワークにコンテンツをアップロードするときの動作を簡単に説明します。一度IPFSのネットワークにアップロードしたコンテンツは削除できません。その他公開したくないプライベートなもの)をアップしないよう気をつけてください。Web」と書かれており、一度アップロードしたコンテンツは削除することはできません。アップロード後、ローカルにあるコンテンツを削除しましても、他のノードに分散されキャッシュ化されているともう取り消すことができません。コンテンツに対して暗号化がされていませんので、プライバシーに関係するものや機密性が高いコンテンツをそのままアップロードすることは控えたほうがよいです。Swarmとは何か?SwarmとはEthereumのブロックチェーン上に組み込まれている分散ファイルストレージの仕組みです。SwarmもIPFSと非常によく似ており、P2Pネットワーク、停止時間ゼロ、DDOS耐性、フォールトトラント耐性、インセンティブシステム(※Swarm個有)など、多様な機能を提供しています。Stackのイメージ図を作成しました。Contractは契約を含めたロジックを、Whisperはコミュニケーションのためのメッセージングを、Swarmはストレージおよびコンテンツ配信を行うための機能を提供してくれます。web3.0のベースレイヤーという位置づけになっており、Ethereumブロックチェーンと深く統合されています。そのため、Swarmのコマンドはgo-ethereum(Geth)のリポジトリ配下に含まれて配布されています。Swarmでも同じようにアップロードするときの動作を簡単に説明します。具体的な実装方法はオンラインサロン会員限定で公開中!サロン詳細はこちら注意点として、Swarmも一度ネットワークにアップロードしたコンテンツは削除できませんので、プライバシーに関係するコンテンツや機密性が高いコンテンツはアップロードを控えたほうがよいでしょう。IPFSとSwarmの違いよく似ているIPFSとSwarmですが、その中でも異なっている点について以下にまとめてみました。現時点で、IPFSは開発中ステータスで、α版と捉えたほうがよいです。0.2ということで、実証実験中です。両者ともに安定版の提供はまだ先になると思います。アーキテクチャSwarmはEthereumのブロックチェーンと密結合されています。IPFSは下記の5つのモジュール構造で設計されています。ネットワークルーティングエクスチェンジデーター構造ネーミングIPFSはSwarmとは逆に、コンポーネントが疎結合で構成されているので、モジュールを入れ替えられる柔軟性があります。ネットワークIPFSはlibp2p、Swarmはdevp2p(※devp2p公式wikiがあるのですが、記事が古く参考にしないほうがいいかもしれません。)と、それぞれ異なるライブラリ(フレームワーク)を使用しています。機能的にこの2つは通信の暗号化フォワーディングパーシステンスなど、同じような機能を提供しています。これにより何百、何千というノードとP2P接続を可能としています。DAG(リンクハッシュ型の有向非巡回グラフ)と呼ばれるアルゴリズムを使用し、コンテンツの暗号、ハッシュ、キャッシュ、永続化、階層化を行っていきます。Gitのオブジェクト構造に似たディレクトリ構造でコンテンツを格納していきます。DAGの利点を活かし、コンテンツが増えてきた時のスケーリングに力を発揮します。hashと呼ばれ、Ethereum本体のブロックチェーンを利用して、ハッシュしたコンテンツを格納していきます。Hashはchunksという小さい塊にコンテンツを分割していきます。そのときに1chunkのサイズは4Kbyteになるように決められているのが特徴です。ネーミングサービス先の説明でIPFS、Swarmはコンテンツの内容でハッシュを決定しているのはご理解いただけと思います。ここで問題なのが、コンテンツを更新した場合にハッシュが変わってしまい、パーマネントリンクも書き換わってしまうことです。このままでは、同じコンテンツにアクセスしたいのに、更新する度にURLが変更されます。そこでIPFS、Swarmでは、ネーミングサービスを提供することでURLの変動に対処できるようにしています。IPFSパーマネントリンクに使用するリンクの一部をコンテンツのハッシュではなく、ノード固有のIDで置き換えてくれます。このネーミングサービスをIPNSと呼びます。IPFSと名前が似ていて紛らわしいのですが、コンテンツ更新の度に変更されるハッシュ値ではなく変わりにくいノードのIDを使い、パーマネントリンクを作成します。(コンテンツハッシュ)http://localhost:8080/ipfs/QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x↓(ノードID)http://localhost:8080/ipns/QmRPrEwYjF8r6SJa13s7ptM9Ut97TFWMee9sXyHqY1上の例では、青色のコンテンツハッシュから緑色のノードハッシュに置き換られています。このIPNSによりコンテンツを更新しても、パーマリンクが変更されることなく一意性を保つことが可能となります。Service)を使いパーマネントリンクに一意性をもたせます。addressのaliasなどでも使用可能です)ENSを使うことにより、Swarmのパーマネントリンクは(コンテンツハッシュ)http://localhost:8500/bzz:/0xc777819a8eaa98d61615d94be49cd3bfaa95a2ccbe0225a3c3cf354777f33↓(ENS)http://localhost:8500/bzz:/swarm.eth/のようになります。「.eth」ドメインを使用することができ、パーマネントリンクが覚えやすくなり、IPFSのIPNSよりヒューマンフレンドリーです。テスト用途むけに、「.test」というドメインも用意されています。パブリッシュIPFS、Swarmともに、コンテンツをブラウジングする場合は、ローカルに起動したデーモンを通じてアクセスする必要がありました。IPFSに関しては、パブリッシュ機能(グローバルへの公開)がデフォルトで提供されています。https://gateway.ipfs.io)URLでコンテンツを公開することができます。https://ipfs.io/ipfs/QmQio5XVkXYeSanS6HM27sF5ZZj8znpY3MbBAGBTLxzp1U実際にサンプルファイルをパブリッシュしてみました。published」と表示されると思います。参加者へのインセンティブシステムIPFSとSwarmを比較したとき、一番の違いがインセンティブシステムになります。インセンティブシステムの背景には貢献者(ノード)に対してインセンティブを払うことにより、利用者に安全に迅速にコンテンツ提供するという考えがあります。このインセンティブシステムは、IPFSには存在していない機能になります。SwarmのインセンティブシステムはPoC4アップデートで実装されるということで、現時点(PoC2)では動作していません。paperの内容を自分なりに解釈してみました。インセンティブシステムには帯域インセンティブとストレージインセンティブの2種類が存在しています。帯域インセンティブでは、利用者がたくさんのコンテンツをダウンロードした場合には、コンテンツを提供してくれたノードに対して帯域使用料を支払うというものです。これは逆に言えば、人気のあるコンテンツをホストしていたノードはそれだけ多くの手数料をもらうことが出来るということです。対して、ストレージインセンティブでは様々な条件に対してインセンティブの支払いが行われます。無事にchunkの配信に成功したノードや、コンテンツを長い期間保存していたノードに対するインセンティブの支払いを行うなどすることで、Swarmの参加者に対してコンテンツの保存・配信を正当に行うことを奨励するようなデザインとなっています。終わりに今回の記事では、IPFSとSwarmという非中央集権型(分散型)ファイルストレージシステムについて、それぞれの特徴や概要を説明したうえで、両者の違いについて述べました。完全版の記事はオンラインサロン「即戦力!ブロックチェーン技術者養成道場」で公開中です。続きを見るには、即戦力!ブロックチェーン技術者養成道場(DMMのページに移動します)をご覧ください!この記事の著者block-chain.jp編集部ブロックチェーン技術の専門企業が運営するブロックチェーンのメディア。掲載されている記事の内容につきましては、正しい情報を提供することに務めてはおりますが、提供している記事の内容及び参考資料からいかなる損失や損害などの被害が発生したとしても、弊社では責任を負いかねます。実施される際には、法律事務所にご相談ください。つきましてはblock-chani.jp運営者の個人的見解です。正確性・正当性を保証するものではありません。本記事掲載の記事内容のご利用は読者様個人の判断により自己責任でお願いいたします。コンセンサス・ベイス(株)とブロックチェーン事業を行なってみませんか?当サイトを運営するコンセンサス・ベイス株式会社は、2015年設立の国内で最も古いブロックチェーン専門企業です。これまでに、大手企業の顧客を中心に、日本トップクラスのブロックチェーンの開発・コンサルティング実績があります。ブロックチェーンに関わるビジネスコンサル・システム開発・教育・講演などご希望でしたら、お気軽にお問い合わせください。(ブロックチェーン技術書籍)本書は、ブロックチェーン技術に興味を持ったエンジニアや、その仕組みを学び、自分の仕事に活かしたいビジネスパーソンを対象にして、ブロックチェーンのコア技術とネットワーク維持の仕組みを平易な言葉で解説しています。この本を読んだうえで、実際にコードを書くような専門書、ブロックチェーンビジネスの解説書を読むことで、理解度が飛躍的に高まるでしょう。BYコンセンサス・ベイスはブロックチェーン技術の専門企業です。国内でブロックチェーン実証実験を初めて行い、その後、大企業を中心に実績多数。ビジネス・STOコンサル・システム開発などのソリューションを提供しています。WordPress.。