前回のナメきったご挨拶の記事を除くと、今回が初めての記事となります!

記念すべき記事に、脱毛体験記とか、電気代理論とか、何を書くか迷ったのですが、まずは Proxima X について書いてみることにしました!

公式にいろいろ質問した結果、現時点で予想される「ProximaXのネットワークは、どのようなシステムで実現しようとされているのか?」について書いてみたいと思います。

余計な手間をかけないことがサイト運営方針なので、さっそく本題です。

※ なるべく間違いがないように注意して書いていますが、もし間違いがありましたら教えて頂けると助かります。ツイッターアカウントまでお知らせください。

<この記事が役に立ったら、投げ銭をお願いします!>

ProximaXとは?

ProximaXは、分散型のストレージサービスです(と理解しました)。

分散型のデータセンターのようなイメージでしょう。

ホワイトペーパーによれば、分散型のかたちをとることによって、従来型の集権型のサーバーにくらべて、

  • DDoS攻撃に強くなるなどのセキュリティ向上
  • データセンターの運営主体への信頼が不要になる
  • 遅延やダウンタイムの回避(単一障害点がないということなのでしょう)
  • 低コストとスケーラビリティの解決
  • 管理者によるデータへの検閲の回避

などで優位性があつとのことです。

詳細は、@YuKimura45zさん(プロフィール)が日本語訳してくれたホワイトペーパーもあるので、そちらを読んでみてください。

こちらから「Japanese」を選択して読むことが出来ます。

個人的には、「本当に、従来型データセンターにコスト面で勝てるの?」等の心配はしていますが、たとえコスト面では従来型サービスに勝てなかったとしても、集権的な管理者不在のデータセンターというのは面白いと思います。

DropBoxのようなサービスも、とても便利ではあるのですが、どうしても検閲の恐怖などがあるので利用を躊躇ってしまいます。

政府が善意で動いてくれることも信用できないような、ひねくれ者のビットコイナーにとっては興味のわくサービスなのではないでしょうか?

また、経済的に成り立つシステムを立ち上げることに成功すれば、データストレージも通信帯域も確実に需要が見込まれる基本的なインフラサービスだということも個人的には注目ポイントです。

「いや、それ実現できたとして、誰が使うの?」

みたいな心配はなく、本当に、従来型のデータセンターにくらべてセキュリティが高く、低コストで大容量・高帯域のサービスが出来れば、確実にユーザーが付くはずです。ユーザーがつくどころか、耐検閲性のようなブロックチェーンの特性がなかったとしても低コスト・大容量・高帯域だけでも、とてつもないマネーが流れ込んでくるほどの市場だと思います※。

まあ、トマトみたいな堅い需要が見込まれるプロダクトを確実に作りあげたにもかかわらず、投資家を大損させるプロジェクトなんかもありますから、どうなるかわかりませんけどねw

※ ただし、「本当にそんな夢のようなサービスがつくれるの?」という部分は大きなハードルのはずなので、「絶対儲かる!」みたいな盲信はしないでくださいね。私はProximaXへの投資は推奨も否定もしませんので、くれぐれも投資判断は自己判断・自己責任でお願いします。

ProximaXの開発者に聞いてみた

そんなわけで、私のProximaXへのスタンスは次のような感じです。

  • もしこれができたら、社会へのインパクトは計り知れない!
  • とはいえ、本当に実現できるの?という疑問もある…
  • という建前はさておき、どうやって実現するんだろうという技術的なワクワクで質問が抑えられなかった!

というわけで、ProximaXの開発系テレグラムでちょっと質問してみました。

質問内容はややマニアックかもしれませんが、質問の意図としては、純粋な興味が8割、どのくらいシステムの構想が固まっているのかを探る目的が2割くらいです。

せっかく貴重な時間を割いて回答してくれたので、許可をとって日本語訳(翻訳するのはgoogole先生だけどw)を公開をすることにしました。

消せないはずの Proxima X 上のファイルを消すためには?

これは私の勝手な予想ですが、分散ストレージをつくるのであれば、P2Pネットワークに参加する各ノードをHDDと見立てると、ネットワーク全体ではRAID構成のようなシステムをつくるのだろうと予測しました。

システム内のHDDが壊れた時に、そのHDDに保管されていたデータを保護するためにも(冗長化)、ディスクからのデータの読み出し口を複数化することで読み出し速度を速くするためにも(高帯域化)、RAIDのような構成をとらざるを得ないと思ったからです。

RAIDについてはwikipediaに詳しい説明がありますが、簡単に説明すると次のようになります。

RAID0 … 1つのデータを分割して2台以上のHDDに書き込むことで読み出しが早くなる。仮に100文字を読みあげなければいけない時に一人で読むよりは、二人で50字ずつ読む方が早いのと同じようなイメージ。ただし、二人で違うデータを持ちあうので、どちらか片方でも間違えると、全体としても間違えが起こってしまう。(高帯域化は出来るが冗長化は出来ない。むしろ故障率が上がる。)

RAID1 … 1つのデータをまるごと2台以上のHDDに書き込むことで、どちらかが壊れてもデータは失われなくなる。ビットコインのフルノードなんかも、ある意味ではこの形。ただし、データが増える速度が限られているビットコインのフルノードならまだしも、ストレージサービスとして莫大なデータを保管するとなると、1つ1つのノードに求められるデータ容量がデータセンター並みになってしまう。

RAID1+0 or 0+1 … 上記のRAID0とRAID1を組み合わせたパターン。冗長化と高速化を両立できるけど、ディスク(ノード)がたくさん必要なので高コスト。

RAID5 … もっと複雑なやつ。詳しくはwiki読んでください。冗長化、高速化、ディスク使用効率などバランスはいいけど、複雑なのでP2Pネットワークなんかでやったらデータクラッシュの対策とか大変そう。

そういうわけで、ProximaXのネットワークもRAIDのような構成をとるだろうと予想した私は、次のような質問をしてみました。

英語が下手でごめんなさい。

ProximaXのファイル保管方法は各ノードをHDDと見立てると、RAID5のようになるのですか?
それともRAID0+1?
あるいはまったく別の方法ですか?

ProximaXネットワークへの攻撃として、ある特定の個人が大量のノードをたてて、その後に一気にノードの接続を切るという方法があると思います。

この攻撃でネットワーク上に存在するファイルを消しさる為には、攻撃者はデータ容量の何パーセントのシェアを持つ必要があるのでしょうか?

[google翻訳結果:]
I’m sorry, my English is not good.

As for the file storage method of ProximaX, if each node is regarded as a HDD, will it look like RAID 5?
Or RAID 0 + 1?
Or is it an entirely different way?

As an attack on the Proxima X network, I think there is a method in which a specific individual creates a large number of nodes and then disconnects the node at once.

In order to erase files existing on the network with this attack, does the attacker need to have a percentage share of the data capacity?

いくらRAID構成をとって冗長性を高めたとしても、複数のHDDを同時に引っこ抜くと、データが失われてしまいます。

なので、もし仮にProximaXもRAIDのような構成をとっているなら、ネットワークへの攻撃を意図した人が複数のノードを立ち上げて参加した後に、一斉にネットワークから自分のノードを切断すれば、ネットワーク利用者のデータを消し去ることが出来るはずです。

ビットコインでも、ハッシュパワーの過半数をとると51%攻撃が出来るなどと話題になることがありますが、ProximaXのネットワークでも大きなシェアを持つことで攻撃をしようとする者が現れた場合、どのくらいのシェアを持つ必要があるのか?という質問です。

驚くべき回答…

この質問への答えは次のようなものでした。

Afaik the root nodes will store all data/files

[google翻訳結果:]ルートノードがすべてのデータ/ファイルを保存するAfaik

(なぜgoogle先生がAfaikを訳してくれないのか疑問だけど、「私の知る限り」という意味らしい)

この回答には、正直、驚きました。

もし成功すれば、莫大なデータをネットワーク内に取り込むであろうProximaXで、ネットワーク内のすべてのデータを保存するルートノードを用意するということは、ProximaXが成功すれば成功するほどに、巨大なデータセンターのような設備を用意する必要に迫られると思うからです。

そこで、さらに質問しました。

ところで、それぞれのノードがすべてのデータを保存することになると、コスト面で従来型のサーバーに勝つことが出来るのでしょうか?

また、需要に対してスケールできる見込みがあるのでしょうか?

[google翻訳結果:]
By the way, if each node saves all the data, will it be possible to win a conventional server in terms of cost?

Also, is there a prospect of scaling against demand?

この質問に対しては、次のような回答を頂きました。(回答してくれる方が管理者の方に変わりました。)

We actually have several solutions for this. One of which is the replication to the root nodes but there is another one that came from a collective mind of our team. There is a concept of “levels of replication” to nodes. The concept is, as a service consumer, you’ll be able to set a level of replication of your data – the more replication, the higher the fee needed to pay for the nodes who will participate on replicating your data. So if you set the max, your content will be pin to up to 3 or more levels (more nodes) including our own root nodes. The catch is, you’ll have to pay more fees.

[google翻訳結果:]実際には、これにはいくつかの解決策があります。そのうちの1つはルートノードへの複製ですが、私たちのチームの集団的な心から来たものもあります。ノードには「レベルの複製」という概念があります。コンシューマは、サービスコンシューマとして、データのレプリケーションレベルを設定できるようになります。レプリケーションが増えるほど、データの複製に参加するノードの料金が高くなります。したがって、最大値を設定した場合、コンテンツは、独自のルートノードを含む3つ以上のレベル(より多くのノード)に固定されます。キャッチは、あなたはより多くの料金を支払わなければならないということです。

ProximaXネットワークの全体像を探る

どうやら、ルートノードへの全データ保管は1つのアイディアのようで、他にも解決策は検討されているようでした。

そして、google翻訳がわかりにくいので確実ではありませんが、おそらくデータをどれだけ厳重にレプリケーション(複製)したいかに応じて、ユーザーが手数料を支払う仕組みを検討しているのだと読みとれました。

より多くのノードに自分のデータを保管して、データの安全を保ちたい場合にはより多くの手数料を払い、そこまで信頼性を要求しない場合には保管するノード数を減らすことで手数料も低くする仕組みのようです。

RAIDのような構成になるのだろうという私の予想は外れ、実際には、より複雑で自由度が高いシステムをつくろうとしているようでした。

さらに興味がわいてきたため、ここまでの回答で理解した自分の認識を図にしてみました。

※ 実際には、もっと複雑なのだろうと思いますが、大枠ではこんなイメージなのだろうと予想しました。

(図は拡大できます)

簡単に説明すると、ネットワークにアップロードされたデータは、1つまたは複数のマスターノードに保管され、データの冗長性・信頼性が確保されます。そして、それとは別に存在する一般ノードにもデータを格納し、そこから各ユーザーにデータを配信することで高帯域化を実現するというイメージです。

(あくまで私の理解であり、公式の見解ではありません。上の回答で「独自のルートノードを含む3つ以上のレベル」という言葉もありますし、この3レベルが何を表わすか不明ですが、もしかしたら図のようなルートノードと一般ノードの2層構造ではなく、3層以上の構造になるのかもしれません)

そして、この理解を公式にぶつけてみました。そのやりとりと回答が次の通りです。

This is in a way accurate. The difference is when someone upload a movie, there can be multiple master nodes that replicates the data. The more replication, the higher the fees – primarily because we want to incentivized the nodes who add and pins them.

[google翻訳結果:]これは正確な方法です。違いは、誰かがムービーをアップロードするときに、データを複製する複数のマスターノードが存在する可能性があることです。レプリケーションが多くなればなるほど、料金が高くなります。主に、ノードを追加して固定するノードをインセンティブにしたいからです。

訳にイマイチ自信がありませんが、どうやら大枠ではそこまで間違ってはいないイメージのようでした。

後半は、複製ノードを増やすほど、ユーザーは高い手数料を払わなければならないという、先ほどと同様の内容だと思います。

というわけで、なんとなくイメージはつかめてきたのですが、どうしても気になる疑問があります。

それは、ルートノード/マスターノードは誰が用意するのか?現実的に用意できるのかという問題です。

先ほども書いたように、ProximaXが成功すればするほどに、ネットワークに蓄積されるデータ量は大きくなり、その全てのデータを複製するノードは、それこそ巨大なデータセンター並みのものが必要になると思ったからです。

ありがとうございます。
あなたのおかげで理解が深まった。

Master nodeはデータ保管についての信頼性を提供し、General nodeは多くのユーザーにデータを届けるための帯域を提供するのですね!

そのシステム設計はとても興味深いですね!

そして、データをアップロードする人が、その人が必要とする信頼性に応じて、いくつのmaster nodeにデータを格納するかを選び、必要な手数料を払うのですね?

ということは、master nodeは複数存在するということになると思います。

そして、master nodeにはデータセンター並みのデータ保管領域が必要になります。

master nodeはいったい誰が用意するのでしょうか?
一般のP2Pネットワーク参加者がmaster nodeを用意するのですか?

[google翻訳結果:]
Thank you very much.
My understanding has deepened thanks to you.

The Master node provides reliability on data storage and the General node provides bandwidth for delivering data to many users!

That system design is very interesting!

Then, who uploads data chooses how many master nodes to store data according to the reliability that the person needs, and pays the necessary fee?

That means that there will be more than one master node.

And the master node needs a data storage area similar to the data center.

Who will prepare the master node?
Do general P2P network participants prepare the master node?

これについては回答がなかったのですが、別な方がかぶせて発言してきた質問と回答があったので、そちらを張りつけます。

@brambear could you explain in detail the master node systems pls will there be just master nodes or master nodes and p2p nodes?
Or is this being structured now and we will find out once the team has decided on the structure

[google翻訳結果:]
@brambearあなたはマスターノードシステムplsがマスターノードかマスターノードとp2pノードだけであるかを詳しく説明できますか?
あるいは、これは現在構造化されており、チームが構造を決めたら

We are still structuring it. I can try and give a better view of this tomorrow morning my time 🙂 its hard to type all details on a mobile phone lol. Basically there will be client (consumer), a storage node and a verifier node. The verifier node is a blockchain node that takes care of the token economics exchange to ensure that the incentives are given.
These are just ideas that we have. We are still discussing internally if this is the right approach and the models. :blush:

[google翻訳結果:]
私たちはまだそれを構成しています。私はこの明日の朝私の時間のよりよい見通しを試してみることができます:)その携帯電話の笑にすべての詳細を入力するのは難しいです。基本的には、クライアント(コンシューマ)、ストレージノード、および検証者ノードが存在します。検証者ノードは、インセンティブが与えられることを確実にするためにトークン経済学の交換を行うブロックチェーンノードである。
これらは単に私たちが持っているアイデアです。これが適切なアプローチとモデルであるかどうかについては、内部的に議論しています。 :赤面:

おわりに・結論

というわけで、まだネットワーク全体のシステム構成は検討中のようですね。

まだ今回のような具体的な質問をするには時期尚早だったようで、つい楽しくなっていろいろ聞いてしまい公式チームには余計な手間をかけてしまったと、ちょっと反省しています。

その罪滅ぼしの意味も込めて、せっかくの回答を日本語化して共有する記事を書いているのですが。

なので、まだProximaX、これは行けそうじゃね!?とか、こりゃダメだ…とか言える段階までは来ておらず、もうしばらくはワクワクしながら様子見する必要がありそうです(そんなに簡単に実現できる訳がありませんので、年単位で見守ることになるのは当たり前ですが)。

この記事の結論としては、こういう妄想するの楽しくね!?ってことです!(最初に書いた予告からややズレてる気もするけど、まあいいや

もちろんお金が増えるのは嬉しいし、価格も上がって欲しいけど、こういう妄想も楽しいので、英語が苦手な私のために誰かProximaXや、Filecoinみたいなそれ以外のストレージ系プラットフォームについても日本語で解説してくださいw(他力本願

追記:ProximaXを体験してみよう!テストネットにアップロードされた動画

この記事の公開後、ProximaXのテストネット上にアップロードされた動画が投稿されていました。

(テストネットがいつまで公開されているか不明ですので、今後、見れなくなる可能性もあります)

【 さらに追記 】
先ほど見た時には普通に再生できたのですが、アクセスが増えたためなのか、再生が激遅になっています。おそらく、テストネットであるため、たいした帯域を確保していないためではないかと思います。

普通の動画と同じように再生することができますが、この動画は分散ファイルシステムから送信されていると思うと、面白いですね。

逆にいえば、一般視聴者は、特別な操作や知識がなくても、普通にProximaXのネットワークを利用できるということです。

「特別な体験」、「新しい体験」よりも「当たり前の体験」が出来ることに注目してみてください。