5つの分散ストレージプラットフォーム概説(Swarm、IPFS、SiaCoin、Storj、MaidSafe)

ブロックチェーンや分散テクノロジーに関して重要なことは、コンセンサスアルゴリズム(ネットワーク全体が共通の決定に達する方法)とスマートコントラクト(この集中化された世界で毎日使用されるアプリケーションの実装)でしょう。

しかし、日常のアプリケーションを代替えするかと考えたとき、分散テクノロジーの特性は今日の世界的なニーズをサポートするには十分ではありません。Netflixのようにお気に入りの映画やTVを楽しんだり、Facebookのように思い出に残るコンテンツを保存/共有したり、DOTAのようなオンラインゲームをプレイしたりすることを想像するのは困難です。

私たちに欠けているのは、今日のアプリケーションにも役立つ堅牢で安全な分散型コンテンツストレージおよび配信システムです。

したがって、ここでは最も普及している分散ストレージプラットフォームのいくつかを調べ評価します。

『StoragePedia: An Encyclopedia of 5 Blockchain Storage Platforms by vasa』の俺的翻訳記事。

1.Swarm

5つの分散ストレージプラットフォーム概説

https://swarm-gateways.net/bzz:/theswarm.eth/

説明

Swarmは、分散ストレージやコンテンツを行うEthereum web 3スタックのネイティブベースレイヤサービスです。Swarmの主な目的は、特にDappのコードやデータ、さらにはブロックチェーンデータの保存と配布であり、Ethereumのオープンレコードを十分に分散し冗長に保存することです。経済学的な観点からは、Swarm参加者がネットワークの参加者にサービスを提供するため自身のストレージと帯域幅リソースを効率的にプールさせることを可能にします。

目的

Swarmのより広い目的は、分散Webアプリケーション(dapp)の開発者にインフラストラクチャサービスを提供することです。特に、メッセージング、データストリーミング、P2Pの計算、可変リソースのアップデート、ストレージの保険やスキャン、ペイメントチャネル、データベースサービスなどがあります。

エンドユーザーの観点から見ると、Swarmはアップロードされたファイルが特定のサーバーでホストされていないことを除いて、ワールドワイドウェブ(www)とさほど変わりません。

Swarmは、DDoS、ゼロダウンタイム、耐故障性、検閲に耐性があり、インセンティブシステムが組み込まれていることで、自律分散的型のピアツーピアストレージおよびサービスソリューションが提供可能となります。

また、ドメインネームの解決(ENSを使用)や、支払い、コンテンツの可用性が保証されるよう、Ethereumのdevp2pマルチプロトコルネットワーク層およびブロックチェーンと統合するように設計されています。

*ENS名を使用するには、SwarmノードをEthereumブロックチェーン(mainnetかtestnet)に接続する必要があります。

概要

Swarmは、新しい分散型インターネットのベースとなるインフラストラクチャを提供することを目指しており、リソース(ストレージ、メッセージの転送、支払い処理)を互いに補完し動作する、分散デジタルサービスを提供するノード間のP2Pネットワークです。Ethereum Foundationは、Ethereumテストネット(ropsten)と同様の方法で機能をテストできるSwarmテストネットを運営しています。サーバー、デスクトップ、ラップトップ、モバイルデバイス上でSwarmクライアントノードを実行することで、誰でもネットワークに参加できます。クライアントはEthereumスタックの一部で、リファレンス実装はgolangで書かれているためgo-ethereumリポジトリの下にあります。

他、SwarmはDapp開発のためのlocal HTTP proxy APIやコマンドラインツールを提供しています。メッセージングのようないくつかのモジュールは、RPC-JSON APIを通してのみ利用可能です。テストネット上のインフラサーバーは機能を簡単に実証できるよう、無料でアクセスを許可されるパブリックゲートウェイが提供されているので、ユーザーは自分でノードを実行することなくSwarmを試すことができます。

Swarmは、同じネットワークIDでbzz protocolを実行するdevp2pネットワークノードの集まりです。

Swarmノードは、ドメイン名を解決するためや帯域幅およびストレージを補正するためEthereumブロックチェーンと接続することもできます。同じネットワークIDを実行しているノードは、支払いのために同じブロックチェーンに接続することになっています。Swarmネットワークは、任意の整数であるネットワークIDによって識別されます。

Swarmはアップロードと削除を可能にします。つまり、どのノードでもSwarmにコンテンツをアップロードしたりオフラインにすることができます。ノードが落ちるなどして利用できなくならない限り、ノードは利用可能なデータを継続的にやり取りする「同期」により、コンテンツへアクセスできます。

データのアップロードとダウンロード

コンテンツのアップロードは、コンテンツをローカルのSwarmノードに「アップロード」したあと、ローカルのSwarmノードが結果として得られたデータの集合体をネットワーク内のピアと「同期」するのとイコールです。一方、コンテンツのダウンロードは、ローカルのSwarmノードがネットワーク内のピアに関連するデータのチャンクを照会してから、コンテンツをローカルで再編成することで構成されます。

ENS

ENSは、Swarmが「theswarm.eth」のような人間が読みやすい形式でコンテンツを参照できるようにするためのシステムです。ENSの場合は、参照しているコンテンツのSwarmハッシュをDNSと同じように動作させ、人間が読める名前をマシン識別子に変換しています。ドメインネームを登録し、サイトのルートマニフェストのコンテンツハッシュで解決するよう設定することで、ユーザーは`bzz://theswarm.eth/`のようなURLを介してサイトにアクセスできます。

*現在bzzはChromeやFirefox、Safariなどの主要ブラウザではサポートされていません。ブラウザを介してbzzへアクセスしたい場合は、https://swarm-gateways.net/bzz:/theswarm.eth/などのHTTPゲートウェイを使用するか、またはbzzをサポートしているMistを使用する必要があります。

可変リソースのアップデート

可変リソースのアップデートは、Swarm POC3から利用可能になった非常に実験的な機能です。現在活発に開発されているので、進化していくことが期待できます。このガイドでは、Swarmでデータを変更すると、そのデータをアップロードしたときに返されるハッシュがまったく予測できないもので変更されることを以前に学習しました。可変リソースのアップデートにより、Swarmは変化するデータに対して永続的な識別子を保持する方法を提供します。

データの変更に対して同じポインタを保持する通常の方法は、Ethereum Name Service(ENS)を使用することです。ただし、ENSはオンチェーンの機能であり、一部の分野では機能が制限されていまいます。

  • ENSリゾルバを更新するたびに、実行にコストがかかる
  • 新しいブロックがマイニングされる速度よりも早くデータを変更することは不可能
  • ENSを正しく解決するには、常にブロックチェーンと同期している必要がある

可変リソースのアップデートを使用することで、ENSを使用せずともデータを変更するための変数ではない識別子を使用できます。可変リソースは、リソースが作成されたときに取得されたキー(MRU_MANIFEST_KEY)を使用して、通常のSwarmオブジェクトのように参照できます。可変リソースは、リソースが作成されたときに取得されたキー(MRU_MANIFEST_KEY)を使用して、通常のSwarmオブジェクトのように参照できます。

ENSリゾルバ契約と一緒に可変リソース更新を使用する場合、MRU_MANIFEST_KEYを登録するための最初のトランザクションは1つだけ必要です。このキーは最新バージョンのリソースで解決されます(リソースを更新してもキーは変更されない)。可変リソースのアップデートを行う方法は3つあり、HTTP API、Golang API、およびSwarm CLIです。

注意事項

  • リソースを作成した秘密鍵(アドレス)だけがそれを更新できる
  • 可変リソースを作成するとき提供する必要があるパラメータの1つは、予想される更新頻度。これは、リソースが更新される頻度(秒数)を示す。他のレートでリソースをアップデートすることはできるが、リソースを取得するプロセスが遅くなる

Swarmの暗号化

POC 0.3で導入された暗号化は、swarm upのコマンドで使用できるようになりました。暗号化メカニズムは、情報を保護しチャンクとなったデータをどのSwarmノードにも解読できないようにするためのものです。

Swarmは、暗号利用モードを使用してコンテンツを暗号化および復号化します。 Swarmにコンテンツをアップロードすると、アップロードされたデータは4 KBのチャンクに分割されます。

暗号利用モード(あんごうりようモード、Block cipher modes of operation)とは、ブロック暗号を利用して、ブロック長よりも長いメッセージを暗号化するメカニズムのことである。 ECBモード(単純なブロック暗号の利用法)では、ある鍵で同一の平文を暗号化すると、同一の暗号文になる。 したがって、長いメッセージ(画像データなど)のある部分が他の部分と同じであるかどうかが、暗号文の比較によって判断できてしまうので、他のモードが必要となった。 暗号利用モードには、秘匿用の利用モードと、認証用の利用モードとがある。

Wikipedia 

これらのチャンクはすべて、ランダムに生成された個別の暗号化キーでエンコードされます。暗号化はローカルのSwarmノードで行われ、暗号化されていないデータは他のノードと共有されません。

単一のチャンクやコンテンツ全体を参照することは、エンコードされたデータのハッシュと復号化キーの連結です。これは、参照が標準の暗号化されていないSwarm参照(32バイトではなく64バイト)よりも長くなることを意味します。

あなたのノードが暗号化されたコンテンツのチャンクを他ノードと同期するとき、他ノードとは完全にデータは共有されません。意味するところは、他のノードはあなたの元のデータにアクセスすることができず、さらに同期化されたチャンクが暗号化されているかどうかを検出することができないということです。

データが取得されると、ローカルのSwarmノードでのみ復号化されます。検索プロセスを通しデータのチャンクは暗号化された形式でネットワークを通過します。参加しているピアは復号化できません。あなたがダウンロードに使用するSwarmノード上でのみ解読され再構築されます。

Swarmでの暗号化の処理方法に関する詳細は、こちらをご覧ください。

注意事項

  • Swarmは暗号化をサポートしている。暗号化されていない機密データのアップロードは、アップロードを元に戻す方法がないためオススメできない。ユーザーは違法であったり、物議を醸す非倫理的なコンテンツのアップロードを控えるべきである
  • Swarmは、現在暗号化および非暗号化の両方のswarm upコマンドをサポートしている。これは将来変わるかもしれない。
  • 暗号化機能は(アップロード要求ごとにランダムキーが生成されるため)非決定的であり、APIユーザーは結果が冪等であると信じるべきではない。そのため、暗号化を有効にして同じコンテンツをSwarmに2回アップロードしても、同じ結果にはならない

数学において、冪等性(べきとうせい、英: idempotence 「巾等性」とも書くが読み方は同じ)は、大雑把に言って、ある操作を1回行っても複数回行っても結果が同じであることをいう概念である。まれに等冪(とうべき)とも。抽象代数学、特に射影(projector)や閉包(closure)演算子に見られる特徴である。”idempotence” という単語はラテン語の “idem”(同じ=same)と”potere”(冪=power)から来ている。

Wikipedia

PSS

pss(Postal Service over Swarm)は、Swarmを介した強力なプライバシー機能を備えたメッセージングプロトコルです。pss APIは、APIリファレンスに記載されているJSON RPCインターフェイスを通じて公開されています。ここでは、基本的な概念と機能について説明します。

Basics

PSSを使用すると、Swarmネットワーク内の任意のノードにメッセージを送信することができます。メッセージは、チャンクの取得要求と同じ方法でルーティングされます。集合ハッシュを参照する代わりに、pssメッセージはメッセージペイロードとは関係なくオーバーレイアドレス空間内の宛先を指定します。

この宛先は、完全なオーバーレイアドレスである場合は特定のノードを、部分的に指定されている場合は最も近いノードを表すことができます。宛先までは、メッセージはforwarding kademliaを使用してdevp2pピア接続を介してリレーされます(kademliaルーティングを使用してリレーノード間で半永久的なピアツーピアTCP接続を介してメッセージを受け渡す)。目的のノード付近では、メッセージはゴシップを使用してブロードキャストされます。

PSSメッセージは暗号化されており、最終的な受信者は誰でもメッセージを復号化できます。この暗号化は、非対称または対称暗号化方式を使用して実行できます。

メッセージのペイロードは、受信者ノードによってmessage handlersに送られた後、APIを介して目的地に到達します。

プライバシー機能

エンドツーエンドの暗号化により、pssはプライベート通信に対応します。forwarding kademliaが使用されるこよで送信者の匿名性は担保されます。

pssは部分アドレスの指定を使用することで受信者の匿名性のスライド式スケールを提供します。これは、意図した受信者のオーバーレイアドレスがより小さく表示されるので、実際の受信者を識別することは非常に困難です。一方、ダークルーティングは非効率的であるため、匿名性とメッセージ配信の待ち時間、帯域幅、コストとの間にトレードオフがあります。この選択はアプリケーションに任されています。

Handshakesモジュールを使用すると、前方への機密性が確保されます。

注意事項

  • 機密性の高いコンテンツには常に暗号化を使用するべきである。暗号化されたデータは保護されており、チャンクのルート参照を知っているもののみがコンテンツにアクセスできる。この参照を(ENSやMRUを使用して)公開するには追加の手順が必要なので、ユーザーは暗号化を使用している限り不用意な情報から保護される。削除の保証はないが、未アクセスのコンテンツは明示的に保証されていない場合最終的にSwarmから消える。ストレージ容量に制限がある場合、ノードはゴミ箱へ送るように奨励されるしくみ。
  • アップロードされたコンテンツは、ストレージ保険が実施されるまではテストネット上に存続することが保証されない。参加しているすべてのノードは、正式な義務を負うことなく任意のサービスと見なすべきであり、ノードの意思でコンテンツを削除することが期待されるべき。したがって、インセンティブシステムが機能するまではSwarmを安全な保管場所と見なすべきではない。
  • SwarmはPersistent Data Structureであるため、削除アクションの概念はない。これは、コンテンツが提供するように動機付けられているスSwarmノードに配布されるため。

2.IPFS

5つの分散ストレージプラットフォーム概説

https://ipfs.io/

説明

IPFS(Interplanetary File System)は、情報が世界中に分散する方法を根本的に変えることを目的としたp2pのファイル共有システムです。IPFSとSwarmは多少似ているとも言えます。

IPFSは、通信プロトコルと分散システムにおけるいくつかの革新から成り立っており、組み合わせることで他に例を見ないファイルシステムを作り上げています。IPFSが達成しようとしていることの幅と深さを完全に理解するためには、その目標を可能にする技術の進歩と解決しようとしている問題を理解することが重要です。

IPFSはhttpを置き換えることを目指しています。それでは、今日のインターネットの仕組みを見てみましょう。

簡単に言えば、インターネットはデータがネットワーク上をどのように移動するかを記述するプロトコルの集まりです。開発者はこのプロトコルを時間をかけて採用し、インフラストラクチャ上に多くのアプリケーションを構築しました。Webのバックボーンとして機能するプロトコルの1つは、HTTPやHyperText Transfer Protocolと呼ばれます。これは1991年にTim Berners-Leeによって発明されました。

Internet Protocol stack aka. OSI Model

HTTPは要求 -応答プロトコルで、Webブラウザなどのクライアントが外部サーバーに要求を送信します。その後、サーバーは応答メッセージ、たとえばGoogleのホームページをクライアントに返します。これは、アドレスが指定されたプロトコルで、ブラウザにgoogle.comと入力すると、GoogleサーバーのIPアドレスに変換され、そのサーバーで要求と応答のサイクルが開始されます。

How people talk on Internet

httpの問題点

あなたが講堂に座っているとしましょう。そして教授はあなたに特定のウェブサイトに行くように頼みます。講義に出ているすべての学生は、そのWebサイトに要求を行い応答が与えられます。これは、同じ正確なデータが講義に出ている各生徒へ個別に送信されたことを意味します。100人の学生がいる場合、それは100の要求と100の応答になります。これは明らかに最も効率的な方法ではありません。理想的には、学生は自分の物理的に近いところの情報のみを利用することで、必要なモノのみを効率的に取り出せるようになるはずです。

ネットワーク通信回線に問題があり、クライアントがサーバーに接続できない場合はHTTPも大きな問題になります。これは、ISPが機能停止している場合や国がコンテンツをブロックしている場合、コンテンツが削除・移動された場合に発生する可能性があります。このようなリンク切れは、HTTP Webのいたるところに存在します。

HTTPが持つロケーションベースのアドレス指定モデルは集中化を促進します。一握りのアプリケーションが我々のデータを多く取得するのは便利ですが、これによりWeb上にあるデータの多くが汚れてしまいます。これはプロバイダーに私達の情報に対する莫大な責任と力を与えています。

HTTPはWebサイトの読み込みには適していますが、大量のデータ(オーディオファイルやビデオファイルなど)の転送用には設計されていません。この制約により、Napster(音楽)やBitTorrent(映画やソフトウェア)のような代替となるファイル共有システムが出現しており、いずれ主流になり成功する可能性はあります。

2018年にまで早送りしてみます。ここでは、オンデマンドの高画質なビデオストリーミングとビッグデータがどこにでもあります。私達は、このデータを処理するための強力なコンピューターを開発すると共に、さらにデータを生産・消費する行動を続けています。

ソリューション

IPFSは、バージョン管理された科学データの移動が非常に速いシステムを構築するため、Juan Benetによる取り組みとして始まりました。これは、DHTやGit、BitTorrentなど実績のあるインターネット技術を統合したものです。これは、IPFSオブジェクトの交換を可能にするP2Pのチャンクを作成します。IPFSオブジェクト全体がMerkle DAGと呼ばれる暗号的に認証されたデータ構造を形成し、このデータ構造を使用して他多くのデータ構造をモデル化することができます。

IPFSのウェブサイトには、以下のように記載されています。

IPFSは、すべてのコンピューティングデバイスを同じファイルシステムに接続しようとする分散ファイルシステムです。ある意味で、これはWebの本来の目的に似ていますが、実際IPFSはgitオブジェクトを交換する単一のtorrent群に似ています。IPFSはインターネットの新しい主要なサブシステムになる可能性があります。正しく構築されていれば、HTTPを補完または置き換えることができるでしょう。それはクレイジーです。

基本的に、IPFSはバージョン管理されたファイルシステムです。ファイルを取得・管理し、またどこかにファイルを保存した後バージョンを追跡します。

IPFSには、データとコンテンツがネットワーク上でどのように移動するかについて、bittorrentと本質的に似た規則があります。このファイルシステム層は、次のような非常に興味深い特性を提供します。

  • Webサイトは完全に分散化される
  • Webサイトにはオリジンサーバーがない
  • Webサイトは完全にクライアント側のブラウザで実行できる
  • Webサイトには通信するサーバーがない

これらのさまざまな技術の進歩がどのように連携して機能するのかを見てみましょう。

Distributed Hash Tables(分散ハッシュテーブル)

ハッシュテーブルは、情報をキーと値のペアとして格納するデータ構造です。分散ハッシュテーブル(DHT)では、データはコンピュータネットワークに分散され、ノード間の効率的なアクセスと検索を可能にするために効率的に調整されます。

DHTの主な利点は、分散化、フォールトトレランス、スケーラビリティにあります。ノードは集中的な調整を必要としないため、ノードが故障したりネットワークから離脱した場合でもシステムは確実に機能し、数百万のノードでも対応するよう拡張できます。これらの機能を組み合わせると、一般的なクライアント/サーバー構造よりも柔軟なシステムになります。

ブロックの交換

ポピュラーなファイル共有システムであるBittorrentは、革新的なデータ交換プロトコルによって何百万ものノード間でデータ転送を行うことができますが、torrentエコシステムに限定されています。IPFSは、BitSwapと呼ばれるプロトコルでより一般化されたバージョンを実装しています。これは、あらゆるタイプのデータ市場として機能します。この市場はFilecoinの基礎であり、IPFS上に構築されたP2Pストレージマーケットです。

Merkle DAG

Merkle DAGは、Merkle Treeと有向非巡回グラフ(DAG)を組み合わせたものです。Merkle Treeは、p2pネットワーク上で交換されるデータブロックが正しいこと、損傷していないこと、そして変更されていないことを検証します。この検証は、暗号化されたハッシュ関数を使用してデータブロックを編成することで行われます。これは単に入力を受け取り、その入力に対応する一意のハッシュ値を計算する関数です。入力が特定のハッシュになることを確認するのは簡単ですが、ハッシュから入力を推測するのは非常に困難です。

個々のデータブロックは「リーフノード」と呼ばれ、「非リーフノード」を形成するようにハッシュされます。そして、これらの非リーフノードは、全てのデータブロックが単一のルートハッシュによって表されるまで、結合されハッシュ化できます。これを概念化する簡単な方法は次のとおりです。

Tree vs Merkle Tree

DAGは、循環のない位相的な一連の情報をモデル化する方法です。DAGの簡単な例はファミリーツリーです。Merkle DAGは、基本的にハッシュがDAG内のデータブロックとオブジェクトを参照するために使用されるデータ構造です。これにより、いくつかの便利な機能が生まれます。各データブロックには一意のハッシュがあるため、IPFS上のすべてのコンテンツを一意に識別できます。また、データは改ざんされるとハッシュが変更されるため、耐改竄性があります。

Un-tamperable nature of Merkle tree

IPFSの中心となる原則は、一般化されたMerkle DAG上すべてのデータをモデル化することです。このセキュリティ機能がもつ重要性に言い過ぎはありません。このアイデアがどれほど強力であるかを示す1つの例は、数兆ドル相当の資産がこの原則によって保護されるということです。

バージョン管理システム

Merkle DAG構造のもう1つの強力な機能は、分散バージョン管理システム(VCS)を構築できることです。これの最も一般的な例はGithubです。これにより、開発者はプロジェクトを同時かつ簡単に共同作業できます。Github上のファイルはmerkle DAGを使って保存され、バージョン管理されます。これにより、ユーザーはファイルの複数バージョンを独立して編集・管理し、後で元のファイルに編集内容をマージすることができます。

IPFSは、データオブジェクトにも同様のモデルを使用します。元のデータに対応するオブジェクト、および新しいバージョンにアクセスできる限りファイル履の歴全体を取得できます。データブロックがネットワーク上でローカルに格納され、無期限にキャッシュできることを考えると、これはIPFSオブジェクトを永続的に格納できることを意味します。

さらに、IPFSはインターネットプロトコルへのアクセスに依存しません。データは、単に別のネットワーク上に構築されたネットワークであるオーバーレイネットワークで配信できます。これらの機能は、検閲耐性のあるWebで中核要素となることから注目に値します。世界中でインターネット検閲に対抗するため、言論の自由を促進するのに有用なツールかもしれません。しかし、同時にまた悪意ある人物による荒らしの可能性も認識すべきです。

Self-certifying File System(セルフ認証ファイルシステム)

ここで取り上げるIPFSの最後の重要な要素は、Self-certifying File System:セルフ認証ファイルシステム(SFS)です。これは、データ交換に特別な許可を必要としない分散ファイルシステムです。クライアントに提供されるデータはファイル名(サーバーによって署名されている)によって認証されるため、これは「セルフ認証」です。結果として、ローカルストレージの透過性により、リモートコンテンツに安全にアクセスできます。

IPFSはこの概念に基づいて、InterPlanetary Name Space(IPNS)を作成します。これは、公開鍵暗号を使用してネットワークのユーザーによって公開されたオブジェクトをセルフ認証するSFSです。IPFS上すべてのオブジェクトは一意に識別できることを前述しましたが、これはノードにも適用されます。ネットワーク上の各ノードには、一連の公開鍵、秘密鍵、およびその公開鍵のハッシュであるノードIDがあります。したがって、ノードは自分の秘密鍵を使用して公開するデータオブジェクトに「署名」することができ、このデータの信頼性は送信者の公開鍵を使用して検証できます。

以下が主なIPFSコンポーネントの概要です。

  • Distributed Hash Tableを使用すると、ノードは集中的に調整することなくデータを保存および共有できる
  • IPNSを使用すると、交換されたデータを即座に事前認証し、公開鍵暗号方式で検証することができる
  • Merkle DAGは一意に識別され、改ざんを防止し、恒久的に保存されたデータを可能にする

ConsenSysによるこの記事では、ネットワーク内でファイルがどのように配布されるかについての詳細を確認できます。

覚えておくべきこと

  • 機密性の高いコンテンツには常に暗号化を使用するべきである。暗号化されたコンテンツの場合、アップロードされたデータは常に「保護されている」。つまりルートハッシュへの参照(ファイルのルートハッシュと復号化キー)を知っている人物だけがコンテンツにアクセスできる
  • アップロードされたコンテンツがネットワーク上で持続することは保証されていない。参加しているすべてのノードは義務を負うことなく任意のサービスと見なすべきであり、彼らの意思でコンテンツを削除することが期待されるべきである。したがって、インセンティブシステム(Filecoin)が機能するようになるまで、ユーザーはIPFSを安全な保管場所と見なすべきではない。

3.Sia

5つの分散ストレージプラットフォーム概説

https://sia.tech/

説明

SIAは、より安価に容量を借りたい人物のために分散型クラウドストレージプラットフォームへのアクセスを提供しており、誰にでも開かれた単一の管理者によって管理されていないデータセンターを使用する方法になっています。Siacoinは独立したSiaブロックチェーンをベースにしており、ストレージのレンタル業者とプロバイダの間で契約が結ばれています。

アップロード前にファイルが分割される

Siaブロックチェーンは、ネットワークへアップロードする前にファイルを30のセグメントに分割し、それぞれが世界中のホストへの配布を対象とされます。この分散機能により、1つのホストが単一障害点を表すことはなくなり、ネットワーク全体の稼働時間と冗長性が強化されます。

ファイルセグメントは、CDやDVDで一般的に使用されているリード・ソロモン符号と呼ばれるテクノロジーを使用して作成されます。符号化により、Siaは冗長な方法でファイルを分割することができます。30のセグメントのうち、任意の10セグメントでユーザーのファイルを完全に回復できます。つまり、30台のホストのうち20台がオフラインになっても、Siaユーザーはまだ自分のファイルをダウンロードすることが可能です。

各ファイルセグメントは暗号化される

Siaブロックチェーンを使用して、ホストとのフォームファイルコントラクトをレンダリングします。これらのコントラクトは、価格設定、稼働時間の約束、および賃借人とホストの間の関係などを設定します。

ファイルコントラクトはスマートコントラクトの一種です。それは、Siaブロックチェーンに格納されているService Level Agreements(SLA)の作成を可能にします。ファイルコントラクトはネットワークにより自動的に実施されるため、Siaは仲介者や信頼できる第三者を必要としません。

賃借人およびホストはSiacoinで支払う

Siaネットワークでは、貸し手もホストもSiacoinを使用します。Siacoinは、Siaブロックチェーン上に構築された独自の暗号通貨です。ホストは、Siacoinを使用して各ファイルコントラクトにSiacoinを担保として入金します。

マイクロペイメントは、ペイメントチャネルと呼ばれるテクノロジーを使用して、賃貸人とホストの間を行き来します。これは、BitcoinのLightning Networkと似ています。賃借人とホストの間の支払いはオフチェーンで行われ、ネットワークの効率とスケーラビリティを大幅に向上させます。

ホストはすべてのストレージコントラクトに担保を支払うため、オフラインにする意欲が強くなります。

ユーザーとホスティングプロバイダーがSiaでコントラクトを締結するたび、ユーザーはホスティングの代金を支払うために手当を支払う必要があり、ホスティングプロバイダーは良い行動を保証するためにデポジットしなければなりません。コントラクト締結時に、手当と預金の両方で3.9%がソフトウェアによって回収され、Siafundsの保有者に支払われます。プロトコルの2次トークンプロトコルを開発している会社Nebulous Labsは、Siafundsの約90%を保有しています。

これは興味深い長期的な資金調達モデルであり、一時期流行した「一括払い」のICOモデルに代わるものかもしれません。しかし、このシステムにある特徴は構造上コストが課されるため、競合他社よりも高価になります。

ファイルストレージは競争の激しい市場になる可能性があり、現在提供されているストレージサービスと比較して大幅に値下げされるかもしれません。いくつかの異なる分散型クラウドストレージプラットフォームが展開された場合、これらのプロトコルは集中型の選択肢と競合するだけでなく、互いに競合することとなります。Siaは手当と預金の両方に3.9%の手数料を課していますが、ほとんどのコントラクトではこれらの手数料はユーザーにより支払われています。他のプロトコルはこの構造的なコストを持たないため、より安価かつ長期的にはユーザにとって魅力的にかもれません。

価格は変わりますが、109Siacoinsまたは1TB/月あたり1ドル程度で利用することが期待できるでしょう。

契約は時間とともに更新される

ファイルコントラクト内の保管では前払いを行い、データの保管と転送に使用するSiacoinの固定金額を確保します。ファイルコントラクトは通常90日間継続します。

Siaは、一定の有効期限内にあるコントラクトを自動的に更新します。コントラクトが更新されない場合、Siaはコントラクト期間の終了時に未使用のコインを借り手に返却します。個々のホストがオフラインになると、Siaは自動的にファイルリカバリーと呼ばれるプロセスで新しいホストに賃貸データを移動します。

ホストによるストレージプルーフの送信

ファイルコントラクトの終了時に、ホストは自分が貸主のデータを保管していることを証明しなければなりません。これはストレージプルーフ(保管証明)と呼ばれます。ストレージプルーフが特定の期間内にブロックチェーンに表示された場合、ホストに支払いが行われます。そうでなければ、ホストはペナルティを課されます。

ストレージプルーフはMerkle Treeと呼ばれる技術によって可能となります。Merkle Treeを使用すると、小さなデータセグメントが大きなファイルの一部であることを証明できます。この証明にある利点は、ファイルがどんなに大きくても各々は非常に小さいということです。証明されたデータはブロックチェーンへ恒久的に保存されるため、非常に重要です。

最後に、Siaは参入に対していくつかの障壁に直面します。現在、Bitcoinを購入しSiacoinへ変換する必要があり、SiaソフトウェアにSiacoinを送金してネットワークの利用を開始する必要があります。まだ暗号通貨を保有していない一般ユーザーにとって、これは大きな障害です。規制や財務リスクのため、ほとんどの企業は暗号通貨の保有または取引を望んでいないため、企業が使用することにおいても問題となります。現在、Siaチームはネットワークとして利用されることにおいて重要なデザインやアクセシビリティなどの改善について、特に表明していません。

覚えておくべきこと

  • SwarmやIPFSとは異なり、Siaは分散型クラウドストレージシステムである。これは、httpを置き換えるインフラの作成に焦点を当てているのではなく、クラウドストレージ用の分散され安価な市場の創出に焦点を当てている
  • SwarmやIPFSとは異なり、Siaはストレージユーザーとストレージプロバイダーの両方に本格的なインセンティブシステムを提供している。したがって、Siacoinを用いると集権型ストレージサービスと比較しデータをよりコントロールすることができる。ネットワークに提供したデータは保存され、失われることはない。また、ネットワークからコンテンツを削除して、データがネットワークから完全に消去されていることを確認することもできる。

4.Storj

5つの分散ストレージプラットフォーム概説

https://storj.io

説明

Storj(発音:storage)は、検閲や監視、停止時間が存在しないクラウドストレージプラットフォームを目指しています。これは、最初の分散型のエンドツーエンドで暗号化されたクラウドストレージプラットフォームの1つです。

Storjは、一体となったシステムを作成するために連携し動作する多数の連動部分で構成されています。人々がStorjのシステムにおける様々な部分を考えを述べているとき、彼らはStorjが何であるかについてそれぞれ異なる考えを持っています。ホームユーザーは、ストレージスペースを共有するためBridgeやプロトコルに関する知識はなく、またStorj APIを使用するために開発者がホームユーザーについて何か知る必要はありません。では、Storjとは何でしょうか?それは、プロトコル、ストレージソフトウェア、そしてネットワークを設計、構築、使用する人々です。

Storjプロトコル

Storjのコアテクノロジーは、強制力あるP2Pのストレージコントラクトです。2つのピアは、お互いを知らなくてもある程度のストレージをお金と交換することに同意する方法を提供しています。我々は、コンピューターの販売するスペースを「farmer」、そしてコンピューターで購入するスペースを「renter」と呼びます。renterとfarmerが出会い、合意を交渉し、そして保管のためにrenterからfarmerにデータを移動します。

コントラクトと監査

コントラクトには一定の期間があります。この間、renterはfarmerは利用できていることを定期的にチェックします。farmerはrenterのデータを持っているという事を、暗号学を使うことで証明します。このプロセスは、チャレンジ->証明->支払いとなり、renterがfarmerのスペースを監視している様子から「監査」と呼ばれます。コントラクト期間の終了時、farmerとrenterは自由に関係を再交渉または終了することができます。

コアテクノロジーはあらゆる種類の支払いを可能にしていますが、いくつかは他よりも適しています。ACHやSEPAなど従来の支払いシステムは、監査ごとの支払いにはあまり適していません。理由として、取引が遅く確認するのが難しく、そして高価な料金を請求されます。Storjプロトコルの理想的な支払い方法は、暗号通貨を使用したマイクロペイメントチャンネルです。それは、最小限の手数料で直ちに検証可能かつ安全に小さな支払いを可能にします。これは、支払いと監査をできるだけ密接に組み合わせ可能な事を意味します。

強制は、単純なしっぺ返しモデルに従います。farmerが監査に合格しなかった場合、つまりオフラインの場合やデータの所有を証明できなかった場合、renterはお金を支払う必要がありません。これは、renterはfarmerにサービスを提供されなかったため当然です。同様に、renterが期限内支払いに失敗したりした場合、farmerはデータを破棄し、他の誰かからの新しいコントラクトを探すことができます。両方の当事者がコントラクト条件に従っている限り、データ間の契約は完了します。

支払いを直接的な監査を組み合わせることで、見知らぬ人と取引するリスクを最小限に抑えることができます。ファイルが契約の途中で破棄された場合、renterは監査によって証明さた実際に稼働したサービスの分のみを支払います。

Storjネットワーク

renterとfarmerが互いに会うことを可能にするため、契約および交渉システムは分散ハッシュテーブル(DHT)の上に構築されました。DHTは、多数のノードを有用なネットワークで自己組織化する方法です。我々は主にKademliaというアルゴリズムの修正版を使用しています。

中央サーバーにすべてのノードを登録し契約を執行させるのではなく、DHTはfarmerとrenterがコントラクトの申し出を幅広いノードグループにブロードキャストすることを可能にします。興味のあるノードは、契約を申し出たユーザーへに簡単に連絡することができます。このようにして、farmerやrenterは無数の潜在的なパートナーを見つけ、広い許可のいらない市場でストレージスペースを売買することができます。

パートナーを見つけるためにノードは契約に署名し、ネットワークに公開することができます。ネットワーク上の他ノードは、特定の種類の契約(すなわち興味があるもの)に加入し、公開された申し出に応答することができます。このモデルはpublish-subscribeまたはpub/subと呼ばれています。ノードはどの契約に関心があるかを簡単に判断でき、興味を持っているであろう他ノードへ契約を転送することもできます。

コントラクトシステムとネットワークによって、Storjプロトコルと呼ばれるものが形成されます。これは、ネットワーク上のノードがどのように動作・通信するのかについての説明であり、契約の交渉方法と執行方法であり、分散システムでストレージスペースを売買するために必要なその他すべてのものを指します。StorjプロトコルはOSSなので、誰でも自由に実装できます。

Storjツールセット

このプロトコルには、安全に保管契約を結ぶために必要なすべてのツールが含まれていますが、もちろん欠陥もあります。正常に機能しますが、現状は役に立ちません。renterにとって有用であるためには、システムは可用性や帯域幅、Service Level Agreement (SLA)などが必要です。farmer用のソフトウェアには、過剰なリソースの使用を避けるための管理機能と、複数のホストへ効果的に展開するための自動化機能が必要です。これらの機能すべてをコアプロトコルへ適合させる代わりに、Storjは追加のソフトウェア層で対処することを選びました。ネットワークを便利にし取引しやすくするため、Storjは2つのツールをリリースしています。Storj ShareとBridgeです。

StorjShare

StorjShareは、ファーミングのリファレンスクライアントで、ユーザーが容易にあらゆる機器でファームをセットアップし、動かすことを可能にします。StorjShareは、より高度なユーザー向けに自動化させるためコマンドラインインターフェイス(CLI)として利用できます。CLIを使用すると、ユーザーは共有するストレージ域の容量、保存場所、支払い先アドレスなどのパラメーターを設定できます。他、契約の交渉、監査レスポンス、およびその他すべてのネットワーク通信も処理します。

Storjはまた、非技術ユーザー向けのファーミングプロセスを合理化するためStorjShareグラフィカルユーザーインターフェース(GUI)もリリースしています。GUIにより、非技術者でもStorjShare GUIをダウンロードし、いくつかのフィールドに入力することでネットワークに参加できます。初期設定を済ませた後、ユーザーはStorjShare GUIと対話する必要はほとんどありません。Storjチームは設定を最小化し、バックグラウンドで実行させることができるように設計しています。

ユーザーがデータ収集を選択した場合、StorjShareはシステムテレメトリも収集します。このデータには、ハードドライブの容量と使用率レベル、およびネットワーク接続の品質に関する情報が含まれます。テレメトリデータはStorj Labsに送り返されるため、Storjの開発者はデータを使用してネットワークとソフトウェアを改善していくので、StorjShareは特別なサービスやプログラムにオプトインされることさえ可能かもしれません。

Bridge

renterがネットワークを利用しやすくするために、StorjはBridgeも作成しました。 Bridgeは、契約交渉、監査、支払い、可用性、およびその他のさまざまなニーズを処理するため本番サーバーにデプロイされるよう設計されています。Bridgeはこれらのサービスを公開し拡張すると、Application Programming Interface(API)とクライアントを介してストレージリソースを公開できます。クライアントは他アプリに統合されるように設計されているので、どのアプリケーションでもBridgeサーバーを使用してStorjネットワークにデータを保存できます。したがって、ネットワークの一部になる必要はありません。

その名前が示すように、BridgeはStorj分散ネットワークと集中型ネットワークのブリッジです。目的は、従来のアプリケーションが他のオブジェクトストアと同様にStorjネットワークと対話できるようにすることです。それは、P2Pコミュニケーションとストレージ契約交渉が持つすべての複雑さをPush/Pullすることで緩和します。

ほとんどのオブジェクトストアとは異なり、Bridgeはオブジェクトを直接処理しません。分散ネットワーク上のオブジェクトの場所へポインタとなったる、オブジェクトを監査するために必要な情報を格納します。理想的には、データがBridgeを通過せずにネットワーク上のfarmerへ直接送信されることです。

Bridgeは、ネットワークを効果的に使用するためすべてのクライアント側で作業を処理します。ファイルがネットワークに入るときに暗号化し、プライバシーとセキュリティを保護します。可用性を確保するため、ファイルの断片化、消失訂正の適用、および断片化を複数のfarmerに分散します。その後、クライアントはBridgeと通信してネットワーク上の各シャードを管理し、ユーザーが自分の暗号化キーをローカルで管理できるようにします。Bridgeクライアントの初期実装はNode.jsパッケージですが、最終的な目標はその他多くの言語で利用できるようにすることです。

実際に僕自身もStrojのGUIツールを使用したことがありますが、非常に直感的なUIであり数タップでFarmingを開始できます。実験として、Dropboxなどのクラウドストレージを有料契約しており全ての容量を使っていなかったので、余剰スペースをFarmingしてみました。

5.MaidSafe

5つの分散ストレージプラットフォーム概説

https://maidsafe.net

説明

SAFE Networkは、データの保存と通信を行うための自律分散型ネットワークです。 名前の由来はSecure Access For Everyone(皆のための安全なアクセス)から来ています。ネットワークに保存されるデータは、極めて高い可用性、耐久性、プライバシー、およびセキュリティを備えています。ネットワークが拡大するにつれ効率的に拡張され、ネットワークに保存されているデータのセキュリティが向上します。

なぜSAFE Networkなのか

既存のサーバークライアントベースのインターネットは、データを作成する人々ではなく、サーバーを操作する人にデータの所有権を与えます。オペレータは、そのデータを作成したユーザーからの承認なく制限、変更、削除、または販売することができます。作成者にとって有利な条件でユーザーデータを配布するためのフェデレーションプロトコルの受け入れや可用性が低いことが、SAFE Networkの構築を後押ししています。

SAFE Networkにデータを保存するクライアントはデフォルトで強力な暗号化により保護され、柔軟な許可レイヤーを介してアクセスを制御できます。SAFE Networkからデータを取得するクライアントは、安全なルーティングとアドレス指定システムによって保護されています。クライアントは、エンドツーエンドの暗号化による安全な認証などをデフォルト設定で利用できます。ネットワークは、データを検証、保存、配信する、独立して動作するノード(Vault:ボールトと呼ばれます)のグラフで構成されています。

Vaultオペレーターは、ネットワークで使用するためのディスク容量と帯域幅を提供することで、データとパフォーマンスの維持に貢献できます。また、Vaultオペレータはネットワークに保存されているデータのセキュリティに影響を与えることなく、いつでもネットワークに参加・脱退することができます。

Safecoinと呼ばれるネットワークトークンは、ネットワークのリソースを提供するためにボールトオペレータに配布されます。トークンは自身で使用するためにネットワークスペースを購入したり、ネットワーク上の他リソースを利用するために使用できます。 これはVaultオペレータの善意ある行動を動機づけ、悪意のある行動からネットワークを保護します。

ネットワークは、SHA3-256識別子とXORを組み合わせて使用し、匿名化したすべてのデータとトラフィックをグローバルに配信します。アドレス指定、ドメインネームシステム、トランスポートセキュリティ、パケットルーティング、httpやimapなどのサーバーソフトウェア、oauthやopenidといった認証層など、既存のインターネットインフラの多くはSAFE Networkによって改善できます。これらはすべて、SAFE Networkで動作可能にするためのモジュールにより置き換えられます。

SAFEは既存の物理的なインターネットインフラ上で動作しますが、以降はネットワークのすべての層を置き換えます。主にOSIレイヤ3〜7を対象としています。

The OSI Model

クライアントの操作

クライアントはSAFE Networkからデータをアップロードおよびダウンロードできます。このセクションでは、これらの操作がどのように行われるかについて概説します。

リソース識別子

SAFE Networkからデータをダウンロードしたいクライアントには、リソース識別子をネットワーク上のエンドポイントに変換できるソフトウェアが必要で、ブラウザがHTTP URLをサーバー上のエンドポイントに変換する方法によく似ています。データをダウンロードするには、特別な許可やアクセスは必要なく、ネットワーク上のデータを見つけて解釈できるソフトウェアだけです。

リソースは、コンテンツアドレス可能なリソースとしてネットワーク上に保存されています。これらのリソースの識別子は、リソースコンテンツのSHA3-256ハッシュです。この256ビットの識別子は、ネットワークからリソースを取得するために使用され(IPアドレスと同様に動作する)、クライアントがネットワークのどの部分が自分の要求を処理できるかを指定できるようにしています。

256ビットのリソース識別子は、safe://www.userX/video.mp4のように、組み込みのSAFE DNSを使用して人に優しい形式で表すことができます。これは、SAFE DNSレコードを解釈できるソフトウェアを使用してSAFE Network上で検索することによって、ファイルを256ビットの識別子に変換できます。

Self Encryption

SAFE Networkのリソースは、それぞれ1MBを超えることはありません。1MBを超えるファイルを扱うクライアントは、データが自動的に1MBのチャンクに分割されネットワーク全体に分散されます。これは、ネットワーク上の典型的なファイルがいくつかの部分で構成されていることを意味し、ファイルが分割された後個々の1MBであるチャンクと、ファイル各部分の識別子を格納するデータマップになります。

データマップは、参照しているチャンクの暗号化キーとしても機能します。チャンクはキーで暗号化されているため、Vaultは個々のチャンクを読み取ってオリジナルの情報を得ることはできません。これはSelf Encryption(自己暗号化)として知られています。

さらに、ファイルはクライアントソフトウェアに組み込まれている暗号化オプションを使用し、アップロードされる前にクライアントによって暗号化されることがあります。これは、ユーザーがネットワークに対して持っている認証から派生した固有の安全な鍵を使用します。これは、ファイルを復号化するための鍵がクライアントから離れず、ネットワークに公開されることもないことを意味します。データマップにアクセスしても、ネットワーク上のどの格納域でも復号化できない、極めて安全なデータの保存を可能にします。

自己暗号化によってファイルを分割することには多くの利点があります。

  • チャンクは単独では有用でないため、すべてのチャンクは代替可能でありネットワークと同等の価値がある
  • ファイルのチャンクはクライアントによって並行してダウンロードされるため、パフォーマンスが向上する
  • チャンクは一意で広く分布している名前を持っており、お互いを簡単に関連付けることはできない
  • チャンクが広く分散されているため、個々のボールトがオフラインになったときデータ損失の可能性が大幅に減少する
  • コンテンツに基づいてブラックリストに登録することはできない

不変データ

リソース識別子は、そのリソースの内容によって決定されます。これは、リソース2つの同一コピーが同じ識別子を持つことを意味します(たとえば、同じ写真が携帯電話とラップトップに保存されている状態)。これにはいくつかの利点があります。

  • 現在のインターネット上にあるURLとは異なり、リソース識別子は普遍的かつ永続的
  • ネットワーク上でリソースを複製できないため、ストレージ効率が向上する
  • リソースのキャッシュルールは非常にシンプルで効率的
  • 暗号化されたリソースは、暗号化するキーに固有のものであるため格納するVaultで復号化することはできない

ネットワークトラバーサル

クライアントがネットワークに接続すると、セッションIDが割り当てられます。セッションIDは、どのVaultがネットワークへのエントリポイントとして機能するかを決定します。

クライアントがリソースを要求すると、その要求はエントリポイントボールトに送信され、要求されたデータを格納しているVaultへ最終的に到達する前、ネットワーク上の他複数のVaultを介してルーティングされます。その後、データはルートに沿ってクライアントに戻されます。

このルーティングメカニズムは、最も近いXOR距離を介して256ビットのネームスペースを段階的に通過します。

要求されているリソースは、自己暗号化プロセスによって決定された固有の256ビットのIDを持っています。クライアントのエントリポイントとして機能するVaultにも、一意の256ビットの識別子があります(すべてのVaultと同様)。チャンク識別子はエントリポイントのボールト識別子とXORされます。結果の値は、チャンクとVaultの間のXOR距離です。

隣接する格納域にチャンクまでのXOR距離が小さい識別子がある場合、要求はその格納域に渡されます。

これは、チャンクまでのXOR距離が近いVaultがなくなるまで続きます。チャンクは、(XOR距離を使用して測定された識別子に最も近い形でVaultに格納されます。Vaultは、リクエストされたチャンクのコピーがあるかどうかをチェックし、リクエストが来たルートに沿ってレスポンスを返します。

このプロセスはリクエストチェーンを形成し、各ボールトはチェーン内にいる一歩先のノードの詳細しか知りえません。元の要求者とチャンクを格納している格納域はチェーンによって分離されているため、要求は匿名になります。

チャンクを格納するときにも同じネットワークトラバーサルが発生します。チャンクは、エントリポイントの格納域を介してネットワークに入り、次に最も近い格納域に到達するまで渡され格納されます。

ルートに沿ったノードはチャンクをキャッシュすることができるので、後で別のルートによってリクエストが行われた場合、リクエストを最後のストレージボールトまで延長することなく、より早く応答することができます。

メッセージング

Eメールとインスタントメッセージは、現在のインターネットのいたるところにある体験です。SAFE Networkは、imap/smtp/xmppサーバーに代わるメッセージングを容易にします。

メッセージは、あらゆるリソースが格納され得るのと同じ方法でネットワーク上に格納されるのと同様です。メッセージが非公開のままであることを保証するために、受信者キーを使用して送信する前にメッセージを暗号化することができます(そのキーはSAFE Network上のリソースとして格納することもできます)。同じ方法で、連絡先間の接続(gpg web of trustなど)もネットワーク上でリソースによって表すことができます。このリソースの集まりは、安全なメッセージングプラットフォームの基盤を形成します。

残りの手順は、メッセージを受信したときに受信者に通知することです。

現在のインターネットでは、新しいメッセージは通常受信箱に追加することでユーザーに表示されます。受信箱は単なるメッセージリストであるため、このリストはネットワーク上のリソースとして表されることがあります。ただし、SAFE Networkの場合受信トレイは不変データとしてではなく、可変データとして作成されます。この2番目のデータ型は、リソースの内容に依存しない固定の識別子を持ちます。これを許可システムと組み合わせると、その識別子のデータを更新できます。

このデータタイプを使用すると、受信者の受信トレイの識別子にあるデータを更新することで、受信者に新しいメッセージを通知できます。受信トレイのリソースは、誰でも新しいデータを追加する許可を得て作成することができます。メッセージの送信者は、受信者の受信トレイに自分のメッセージの識別子を追加し、受信者は新しいメッセージを見つけることができます。

このメッセージングシステムは、Eメールやインスタントメッセージングなどの機能を容易にしますが、支払い、スマートコントラクト、ソーシャルネットワーキング、プロセス間のシグナリング、動的Webコンテンツ、Webrtc用のスタンサーバーなどのメッセージングに基づく他のシステムへの導入も可能です。

可変データ

可変データは、ネットワーク上に存在する2番目の最後のデータ型です。ネットワーク上の固定位置にあるデータを変更することができます。

強力なパーミッションレイヤーにより、可変データの所有者は誰が変更できるのかや、どのように変更できるのかを指定することができます。

所有権の検証および可変データの変更は、デジタル署名を使用してネットワークで実行されます。可変データの所有者は、どのキーがデータの変更を許可または拒否されるかを指定できます。

各キーは既存のコンテンツに対する特定のアクションを許可または拒否されます。これらのアクションは「更新」または「追加」のいずれかです。

明確に定義された許可を暗号学的に安全な署名と組み合わせることによって、可変データへの変更は所有者によって厳密に管理されるかもしれません。可変データの内容は他の可変データを指すことがあり、バージョン管理や分岐、検証可能な履歴、データ復旧などの多くの目的に使用できる可変データのチェーンを作成できます。

ネットワークのオペレーション

クライアントがデータを安全かつ確実に保存および検索できるようにするネットワークによって、実行されるいくつかの操作があります。これらの操作は、攻撃に強い自律的自己修復ネットワークを生み出します。

Close Group Consensus

ネットワーク上のノード(Vaultと呼ばれる)は、主にデータのチャンクを格納する役割を果たします。チャンクの可用性はネットワークの成功にとって重要です。

だれでもネットワークに自分の格納域を追加または削除できるため、データが失われる前にネットワークが悪意のある動作を検出して対応できる必要があります。これには、Vaultの許容可能な動作を管理する一連の規則を適用する必要があります。ルールに従わないVaultはネットワークから拒否され、クライアントデータには責任を負いません。

規則の施行は、Close Group Consensusと呼ばれるプロセスを通じて行われます。

ボールトは、ネットワーク上のデータ状態について合意に達するよう、互いに調整するグループを形成します。グループの合意に従わないボールトは拒否され、別のボールトに置き換えられます。

グループが実施する規則は以下のデータです。

  • 格納することができる
  • 取得することができる
  • 変更されない

これは、グループ内の格納域によって異なります。

  • 新しいデータを保存するために利用可能なスペース
  • 要求されたときにそのデータを中継するために利用可能な帯域幅
  • 他グループとの合意形成への十分な参加

Vaultのネーミング

すべてのVaultには、参加または再参加時にネットワークによってランダムな一意の256ビット識別子が割り当てられます。互いに近いVault(識別子間のXOR距離によって測定される)はグループを形成します。グループ内の格納域は連携してネットワーク上のデータについて合意を形成し、格納および取得できるようにします。グループは、8〜22個のクローズドVaultのセットで形成されます。ネットワーク上の格納域が多いほど、ネットワーク上のグループ数は多くなります。

グループ内にいる大多数のVaultが不正である場合、そのグループ内のデータは破損に対して脆弱です。

これは、グループサイズがグループ内の大多数のVaultを制御するのが困難であるほど十分に小さいことと、合意に早く達することができるほど十分に小さいとの間のトレードオフであることを意味します。

ネットワークのセキュリティは、主に攻撃者がVaultの識別子を選択できないために発生します。ネットワークがボールトに、制御しようとしているグループ内の識別子を割り当てるまで、参加して退場する必要があります。彼らは、グループ内のコンセンサスを管理するために、グループ内の大多数のVaultに対してこれを実行する必要があります。

したがって、グループを制御することの難しさはネットワークのサイズによって決まり、ネットワークが大きくなるにつれて比例的に厳しくなります。ネットワークが大きくなればなるほど、グループは増えます。グループが多いほど、特定のグループに参加するのが難しくなります。

新しいボールトのネットワーク割り当て識別子を克服することは、コンセンサスメカニズムを悪用しようとする際に困難となる主な原因です。

Disjoint Section

グループ形成の考慮事項は、グループ間メッセージングの効率性です(個々のボールト動作の合意ではなくグループメンバーシップの合意)。

グループは、識別子の先頭ビットの類似性に基づいて形成されます(識別子のこの部分は、セクションのプレフィックスと呼ばれる)。

これにより、グループを離れたり参加したりするボールトの調整がはるかに簡単になります。

グループが8個のVaultの恒久的なメンバーシップを維持する場合や新しいVaultが加わって退会するときに、グループ間で個々のVaultを再編成する必要があります。これは近くのグループにカスケード効果があるかもしれません。

この段階的な再編成を行うのではなく、グループのサイズが8〜22のボールトで異なる場合があります。グループが22個のVaultよりも大きくなると2つの新しいグループに分割され、8個未満のVaultになると最も近いグループにマージされます。このグループ編成方法は、Disjoint Sectionと呼ばれます。

Churn

グループコンセンサスメカニズムへの攻撃を防ぐために、ボールトはネットワーク上のランダムな場所に確立されます。このセキュリティは、ボールトの断続的な再配置によってさらに強化されています。グループへの攻撃は移転が起こる前に起こらなければなりません。

ボールトは、新しいランダムな識別子を割り当てることによってネットワークによって再配置されます。これにより、既存のグループを離れ、新しいグループの一部になります。以前に格納していたチャンクはすべて別の格納域の責任となり、自動的にグループ合意メカニズムによって処理されます。移動した格納域は、新しい識別名に最も近いチャンクを格納し、新しい格納域グループとのコンセンサスを構築し続ける必要があります。

このメカニズムはChurnと呼ばれ、新しいVaultがネットワークに参加したり、既存のボールトが脱退したときに発生するのと同じプロセスを拡張したものです。

Farming

ボールトオペレータがネットワークに参加し、安全なデータストレージの目標に向かって協力するように動機付けることは、ネットワークトークンによって動機付けられます。このトークン(safecoinと呼ばれます)は、ネットワーク上のリソースと交換することも、ネットワーク上で提供されている他のリソースと連携するために使用することもできます。トークンのモチベーションはブロックチェーンと似ており、協調的な参加が非協調的参加よりも合理的な行動方針であることを保証するためです。

トークンはネットワーク上で可変デー​​タとして表されます。ネットワークは、合計2³²の可変データリソースをSafecoinオブジェクトとして定義しています。最初は所有者がいないため、トークンの経済性は存在しません。

ネットワークは、リソースの証明メカニズムを介して所有していないSafecoinを断続的にネットワーク参加者に割り当てます。

Safecoinがネットワークリソースと交換されると、割り当てられるSafecoinの総数も減少する可能性があります。ユーザーはデータをネットワークに保存するため金銭の交換が必要です。これには、Safecoinをネットワークに送信することが含まれます。これにより、Safecoinの所有者がクリアされ、そのユーザーが使用するネットワークストレージスペースが割り当てられます。このメカニズムは、コインリサイクルとして知られており、Proof Of Resourceを通じて割り当てられたSafecoinの成長に対するカウンターバランスを提供します。

Safecoinは、可変データリソース所有権の譲渡を受取人の鍵にデジタル署名することによってユーザ間で取引されます。デジタル署名は、可変データリソースに格納されている既存所有者のキーを使用して簡単に検証できます。所有者が更新されると転送は完了し、Safecoinの転送は非常に速く効率的で安全になります。

Proof Of Resource

Vaultからの協力的な行動がネットワークに観察されると、VaultはSafecoinの所有権を主張する権利を得ます。各請求に対する特定のSafecoin識別子は、ネットワークによってランダムに生成されます。

特定識別子のsafecoinが現在所有されていない場合、ネットワークはそれをVaultの所有者に割り当て、新しいsafecoinを経済圏に投入します。

識別子のsafecoinがすでに所有されている場合、それ以上のアクションは行われません。この意味で、ブロックチェーンのProof of Workと同じようにsafecoinのFarmingには供給されるリソースに比例した均等な配分につながるであろう要素があります。

safecoinが割り当てられる割合は、ブロックチェーンの難易度メカニズムと同様な方法で調整されます。調整は、ネットワーク上リソースの可用性バランスをとることを目的としています。必要なときにより多くの資源を提供することを奨励し、過剰供給時の報酬を減らすことによってトークンの需給バランスを保ちます。

safecoinの支払いアルゴリズムは、まだ正式には規定されていないか、実装されていません。

ネットワークは、協調的な振る舞いを帯域幅とストレージスペースの信頼できる供給、そして合意に達することへの継続的な関与として定義しています。エンドユーザーがマイニング容量の増加から収益を減少させるブロックチェーンのProof Of Workとは異なり、Proof Of Resourceメカニズムは、ネットワークリソースの増加に比例してエンドユーザーにユーティリティを提供し続けます。

結論

SAFE Networkは、信頼性の高いデータ保存と通信を行うための自律ネットワークです。堅牢なデータストレージとメッセージングシステムを組み合わせることで、インターネットの既存インフラにおける大部分に代わる安全でプライベートな手段となることが期待されます。

データは、コンテンツアドレスの指定可能なリソース識別子と自己暗号化を使用して効率的かつ確実にネットワーク上に保存されます。データは破損することなく保持され、密接なグループコンセンサスおよび独立したセクションを使用していつでも取得できます。

システムの合意された規則の範囲内で資源の供給を奨励するためのネットワークトークンは、悪意のある行為を阻止し将来の顧客のため資源の持続可能な供給を保証します。この配布システムでは詐欺を働くのが難しく、積極的な外部性を示すProof Of Resource(資源の証明)メカニズムに基づいています。

より多くのValtが追加されると、ネットワークの速度、セキュリティ、および信頼性が向上し、規模の急激な増加が懸念事項ではなくメリットになります。

エンドユーザーはデフォルトで保護されたモジュールと、自分のニーズに最も適した方法でアクセスを制御するための柔軟なアクセス許可レイヤーの恩恵を受けます。SAFE Networkは多くのモジュールを組み合わせてSecure Access For Everyoneでネットワークを構築します。

以上です。ぶっちゃけ全部理解できているわけではないので、間違いなど気軽にコメントください。

Default image
Keisuke Kuribara
零細企業の代表 / ウェブマーケティング、コンサルティング、EC / 漫画と本が好き / 生物捕獲が趣味