情報科学屋さんを目指す人のメモ

方法・手順・解説を書き残すブログ。私と同じことを繰り返さずに済むように。

P2P技術ベースの新クラウドストレージ LifeStuff とは

C++ (1) LifeStuff (2) MaidSafe (1) P2P (6)

P2PベースのDropboxとでも言うべきLifeStuffが、MaidSafe社から明日9月5日に公開予定となっています。Unlimited、Secure、Free*を売りにしているLifeStuffについて、公開情報をもとにまとめてみます。

非常に高い技術で作られたとおぼしきこのアプリケーションが公開直前なのにもかかわらず、海外含めあまりに話題になっていないので、本当に公開されるのか気になってしまうのですが、実際に公開されれば、はかなりインパクトのあるものだと思います

私の研究領域である構造化オーバレイというPeer-to-Peer由来の技術が利用されているため、とてもそそります。私の研究成果が活きないか、とか考えつついろいろ読みあさった結果を紹介します。

追記(2012/09/05):公式情報によると、「バグが見つかった関係で、公開は今週末以降になりそう」とのことです。また公開されるのアプリケーションのことを「ベータ版」と呼んでいます。

追記(2012/09/08):データを重複排除する仕組みについての解説を書きました→「[P2PストレージLifeStuffの仕組み] Self-Encryption法によるデータ重複排除機構

追記(2012/09/13):公式情報によると、バグの修正は終えたものの、全体の動作をテストするのにとても時間がかかってしまうが、もうそろそろ公開予定日を発表できそうだ、とのことです。

機能

LifeStuffは、インターネット越しに画像や音楽、動画、文書などを保存可能であり、簡単に複数デバイスで共有でき、しかも無料*で無制限の保存容量を利用できるオンラインストレージアプリケーションです。

LifeStuff | File Sharing, P2P File Sharing

まるでDropboxのようなアプリケーションですが、Dropboxとは明らかに違う点が「際限なく保存可能(Unlimited)」かつ「無料*(Free*)」という点です。

Dropboxは、有料会員になっても、上限容量には制限がありますし、無制限な容量を無料*で利用することはもちろんできません。他のサービスとの比較は次のようにまとめられています。

http://www.golifestuff.com/compare-lifestuff.html

LifeStuffがこのような今までになかった特徴を有している(らしい)理由は、その背景にあるとある仕組みにあるようなのです、それがP2P(Peer-to-Peer)技術です。

基盤技術はP2P

LifeStuffはPeer-to-Peer技術を利用することで、先ほどの「容量無制限+無料*」を実現しています

無料*ストレージの仕組み

つまりどういうことかというと、ユーザは、LifeStuffネットワークに対するストレージ領域の提供と引き替えに、データを保存できる仕組みになっているのです。 ユーザ同士がデータをお互いに持ち合うことで、ストレージ領域を提供した分だけ無制限にデータを保存できる仕組みを実現しているわけです。

先ほどから「無料*」と書いているのは原文の「Free*」に基づいており、「ストレージを提供した分だけ」という意味を含んでいます。

*LifeStuff is a peer to peer storage software that allows you to store data on the LifeStuff network free of charge in exchange for storing a small portion of network data on your hard drive or connected storage device. If you wish to use LifeStuff without donating any storage space to the network, you can purchase network storage on the LifeStuff network for a nominal charge. 引用元

そして、次の文章によれば、たとえばマシン上のスペースを100GB提供すれば、同じ100GB分だけLifeStuffに保存可能になる、という「提供サイズ:保存容量」比がなんと「1:1」※のサービスのようなのです。なので、こんなにHDDを提供しているのに、これしか保存できない、ということはなさそうです。(※どうしてこんなに効率よく保存できるのかについては後述

The amount you give is equal to the size of the data you want to store on the network. In return, you receive the same amount of space on LifeStuff 引用元

有料オプションで容量追加も可能

また、ストレージ領域を提供する代わりに利用料金を支払い、その分だけデータを保存できるという有料オプションも存在しているようです。

公式ブログの「The cost of cloud storage」によれば、次のようなプランが存在するようです。

有料オプションによる追加容量 年間利用料 年間GB単価
50GB $10 $0.20
100GB $17 $0.17
250GB $32 $0.13
500GB $50 $0.10

Google DriveやDropboxに比較してもGB単価が安価に設定されています。

サービス名 年間GB単価
Google Drive $0.60
Dropbox $1.20
iCloud $2.00

「セキュア」が売り

ここまでで紹介したLifeStuffの売りは「(ストレージ提供さえすれば)無料で容量無制限」という点でした。

LifeStuffには、もう一つ大きな「売り」があります。それが「セキュア(情報漏洩などに対して安全である)」ということです

さて、「P2Pだから、セキュアを強調するのはわかる、でも、『売り』にするのは変じゃないか」と思った方も居るかと思いますが、確かに『売り』なのです。

なぜ「売り」なのか

LifeStuffは、前述の機能を「世界で最もプライベートでセキュアなネットワーク上で実現している」としています。

Oh yeah, we should also mention that all this comes on the the world's most private and secure network, 引用元

これがどういう意味かというと、LifeStuffのシステムはPeer-to-Peer技術により実現されているため、中央サーバが必要なく、各ユーザがどんな行動をしているのかをMaidSafe社の人も監視できないというわけです。つまり、Dropboxを利用するにはDropbox社を勝手に覗き見られないか信用する必要があるように、このようなプロダクトは従来サービス提供者を信用する必要がありましたが、LifeStuffは、そのような信用を仮定しなくて良い、と言っているのです。

そして、ユーザのデータは、LifeStuffネットワークを通じて保存される前に分割・難読化されて理解できない形式となるため、そのユーザ以外、MaidSafe社の人であっても読み出しようがなく、安全な方式である、としています。

we fragment and obfuscate your data (render obscure and unintelligible) before storing it across our network (with no need for any administrators). Nobody, not even us, can look at it 引用元

誰もが思い付きつつ、なかなか実装されないP2P型Dropbox

さて、このようなP2P技術ベースの一般向けストレージサービスをセキュアに実現する、というのは今までたくさんの人が一度は考えたアイディアだと思います。私もその一人です。

ではなぜそれがいままで実現されなかったのかを、たとえば技術的な側面から考えてみると、とにかく作るのが難しいということがまず考えられます。

インターネットという不安定な広域ネットワーク上の勝手なマシンたちで構成されるPeer-to-Peerネットワークは、本当にうまく動作するのかを確認するためのテストが困難であることで知られています。そして、セキュアに保ちつつ、攻撃やマシンの勝手な参加や離脱で破綻しないネットワークを構築する必要があり、さらに安定動作させるためにはネットワークリソースを節約しなくてはいけません。このように、P2Pアプリケーションはアルゴリズム設計・実装の難しいアプリケーションであると良く言われており、ふと実装しようと思って正しく動くものが作れるわけでない、といえます。一般ユーザに簡単に利用してもらうために必要なNAT traversalと呼ばれる実装も、気軽に実装できるものではありません。

さて、このようなアプリケーションを開発するために2006年に資金を集め、2012年の公開にこぎ着けたMaidSafe社のメンバーは「Meet the Team - MaidSafe」で閲覧可能です。

このプロダクトが2006年に資金を集めたMaidsafe社にとって初のプロダクトらしいので、6年間作り続けてリリースに至ったアプリケーションだということになります。

そして実は、LifeStuffを支えるPeer-to-Peerベースの基盤ソフトウェアMaidSafe-DHTもオープンソースとして公開されているのです

P2P基盤ソフトウェア:MaidSafe-DHT

MaidSafe-DHTのソースコードはgithubにて公開されており、自由に閲覧可能です。

その説明文をまとめると次のようになります。

  • Kademliaと呼ばれるDHTにさまざまな改良を加えたアルゴリズムを実装している
  • NAT traversal(Hole Punching, UPNP, NAT-PMPなど)が実装されている
  • CryptoPPを利用してデジタル署名を生成し、セキュアなP2Pネットワークを実現
  • Windows / OSX / Linux を対象にしている

ざっとチェックしてみましたが、ソースコードはとてもコンパクトなので、演習の題材などにも使えそうです。今度ちゃんと読んでみたいと思います。ただし、LifeStuffという仕組みからすれば、MaidSafe-DHTの役割はKeyから対応するノードのIPを取得して、何らかのデータを保存・取得するまで、まさしくDHTという機能に限定されているようで、LifeStuff全体のコード量ははるかに大きいものと予想されます。

P2Pネットワーク構築アルゴリズムはKademlia

DHTは、数百万からそれ以上のマシン上にデータを保存・取得可能なPeer-to-Peerネットワークを構築する技術であり、様々なアルゴリズムがあります。その中でもKademliaは実装がしやすいことや、ノードの頻繁な参加離脱があったとしてもネットワークが破綻しにくいという耐障害性にすぐれていることが特徴です。DHTの仕組みについて興味のある方は、類似のDHTアルゴリズムChordの解説をどうぞ。

実際にはKademliaを強化したアルゴリズムを利用しているとのことですが、このアルゴリズムの設計やシミュレーションにあたっては、イギリスの国立大学であるスターリング大学のMario Kolberg氏らと協力したとのことで、技術的な関連資料などはそこから見つけられるかもしれません(記事末尾の関連資料参照のこと)。

データ保存サイズの効率化

無料*ストレージとして利用する場合、提供したストレージサイズと同じだけのデータが保存可能とのことでした。しかし、データをたとえば5カ所に保存したとすると、ネットワーク上でデータが5倍に増えるはずですから、提供したデータの5分の1しか保存容量をもらえないはずで、1:1なんていうのは不可解に聞こえます。

A Survey, Cloud File Sharing and Object Augmentation」によると、MaidSafeはたしかにデータのレプリカを分散配置して堅牢性(robustness)を向上させているようなのですが、データサイズの問題については、「ユーザのアップロードする75%から90%のデータは重複しており、それらの冗長を排除すれば節約できる」としています。

ここで、「ユーザ毎に違うパスワードで暗号化しているのだから、元のデータが同じでも、暗号化後のデータは全く違う物になっていて、重複排除できないのではないか」、と思われるのですが、同文書によると、異なるユーザであっても、同じように暗号化するとしています。つまり、暗号化した結果も重複するというのです。

これはどういうことか、周辺の文章から推測してみると、ユーザはデータを、データそのもののハッシュ値で暗号化して保存します。すると、異なるユーザであっても、暗号化結果は同じとなり、重複が排除可能となります。このとき、データのハッシュ値は、データを持っていた人は知っていて、データを持っていなかった人は知り得ないわけですから、ちょうど「持ち主なら復元できる」を実現できるわけです。そして、そのハッシュ値の一覧などをユーザのパスワードで暗号化してこれまたMaidSafeのネットワーク上に保存しておけば、ハッシュ値まで含めてデータを手元に置いておかなくても、MaidSafe上に保存したデータを取得できるようになります。

これについては文章中であっさりとしか説明されていませんでしたが、こういう仕組みではないかと推測されます。公式FAQでも、容量については次のように述べられています。

The LifeStuff network can never run out of space due to clever de-duplication and compression techniques. 引用元

詳細な解説動画

2008年のGoogle Tech Talks で MaidSafe CEO の David Irvineさんが講演した動画が公開されています。まだ見ていませんが、後で見てみようと思います。

関連資料

MaidSafe/LifeStuffの仕組みについて調べるにあたって有用そうなウェブページがいくつかあるので、ここに掲載しておきます。

感想

とりあえず、ささっと調べて分かったところまでをまとめておきましたが、非常に興味深いアプリケーションなので、より詳しいことが分かったら、また追記なり別記事なりにまとめておこうと思います。

繰り返しになりますが、本当に興味深いアプリケーションだと思います。

コメント(4)

  1. 森下恵
    2013年1月7日(月) 19:36

    facebookのこと分かりますか?
    パソコンでアカウントを入力しないままずっと使っていましたが、この度タブレットPCを買い、そちらから見ようと思いアカウントを入力して開くと、別の自分になってしまいました。
    最初の自分にはもう戻れないのでしょうか?

  2. k
    2013年4月8日(月) 23:42

    これいまだに公開されないんですか?

  3. did2
    2013年4月15日(月) 20:18

    >kさん
    はい、未だに公開されていません。

  4. kuboon
    2013年9月10日(火) 10:54

    開発停止してしまったのでしょうかね。
    楽しみにしていたのですが。

新しいコメントを投稿




  • カテゴリ ナビ
  • 著者紹介

    ブログが趣味で、スマホアプリの利用中に発生するトラブルや不具合の対策手順や障害情報、 設定の変更方法などについて、解説記事をよく書いています。

    自分が困ったことをブログに書けば、次に困る人の参考になって、みんながみんな同じ苦労をせずに済む、というのが原点です。

    最近の関心は、スマホやパソコンが苦手な人の行動や思考、そしてそんな人を手助けする方法です。

    Amazonのアソシエイトとして、did2は適格販売により収入を得ています。

    RSS | Facebook | Twitter | About