ファイルコイン中国語ホワイトペーパー

ファイルコイン中国語ホワイトペーパー


この記事は、IPFSの公式ホワイトペーパーに基づいて中国コミュニティによって編集され、まとめられたものです。




ファイルコイン: 分散型ストレージネットワーク

 プロトコルラボ

まとめ

現在のインターネットは革命の真っ只中にあります。集中型の独自サービスが分散型のオープン サービスに置き換えられています。信頼できる参加は検証可能なコンピューティングに置き換えられつつあります。脆弱な場所のアドレス指定は、弾力性のあるコンテンツ アドレス指定に置き換えられています。非効率的なモノリシックサービスはピアツーピアのアルゴリズム市場に置き換えられつつあります。ビットコイン、イーサリアム、その他のブロックチェーン ネットワークは、分散型取引台帳の有効性を証明しています。これらの公開台帳は、複雑なスマート コントラクト アプリケーションを処理し、数百億ドル相当の暗号資産を取引します。これらのシステムの参加者は、中央機関や信頼できる当事者のない分散型ネットワークを形成し、便利な支払いサービスを提供しました。これは、広範なインターネット上のオープン サービスの最初の例です。 IPFS は、グローバルなピアツーピア ネットワーク上で数十億のファイルを提供する分散型 Web を介したコンテンツ アドレス指定の有効性を実証しましたデータをサイロから解放し、ネットワークの分割を回避し、オフラインで動作し、検閲を回避し、永続的なデジタル情報を生成します。

Filecoinは、クラウド ストレージをアルゴリズム市場に変える分散型ストレージ ネットワークです。マーケットプレイスは Filecoinとも呼ばれるネイティブ プロトコル トークンを使用したブロックチェーン上で実行されます。ブロックチェーン内のマイナーはクライアントにストレージを提供することでFilecoin を獲得でき、逆にクライアントはFilecoinを消費してマイナーを雇い、データを保存または配布することができます。ビットコインと同様に、 Filecoin のマイナーは巨額の報酬を得るためにブロックを採掘するために競争しますが、 Filecoin の採掘効率はストレージアクティビティに比例し、顧客に有用なサービスを直接提供します(ブロックチェーンのコンセンサスを維持するためだけのビットコインの採掘とは異なります) これにより、マイナーが可能な限り多くのストレージを集約し、それをクライアントに貸し出す強いインセンティブが生まれますFilecoinプロトコルは、これらの集約されたリソースを、世界中の誰もが信頼できる自己修復型ストレージ ネットワークに組み込みます。ネットワークは、コンテンツを複製して配布し、レプリカの障害を自動的に検出して修復することで堅牢性を実現します顧客は、さまざまな脅威モデルから保護するためにレプリケーション パラメータを選択できます。このプロトコルのクラウド ストレージ ネットワークでは、コンテンツがクライアント側でエンドツーエンドで暗号化され、ストレージ プロバイダーが復号化キーにアクセスできないため、セキュリティも確保されます。 Filecoinの成果は、あらゆるデータ用のストレージ インフラストラクチャを提供できるIPFSインセンティブ レイヤーとして機能します。データの分散化、分散アプリケーションの構築と実行、スマートコントラクトの実装に役立ちます

これらのタスクには次のものが含まれます。

(a) Filecoin ネットワークを紹介し、プロトコルの概要といくつかのコンポーネントの詳細を説明します。

(b)分散型ストレージネットワーク(DSN)の計画と内容を正式化し、FilecoinをDSNとして構築します。

(c) 「Proof of Replication」と呼ばれる新しいストレージ証明スキームを導入し、データのコピーが物理的に独立したストレージに保存されていることを検証できるようにします。

(d)インセンティブ指標として、順次複製とストレージに基づく新しい有用な作業コンセンサスを導入する。

(e )検証可能な市場を形成し、 Filecoinからのデータの書き込みと読み取りをそれぞれ管理するストレージ市場と検索市場の2つの市場を構築します

(f) ユースケース、他のシステムへの接続方法、このプロトコルの使用方法について説明します。


1. はじめに


Filecoin は、ブロックチェーンが「空間と時間の証明」と呼ばれる新しい証明メカニズムで実行されるプロトコル トークンであり、そのブロックはデータを保存するマイナーによってマイニングされます。 Filecoinプロトコルは、単一のコーディネータに依存しない独立したストレージ プロバイダーのネットワークを通じて、データ ストレージ サービスとデータ取得サービスを提供しますで:

  1. 1.ユーザーはデータの保存と取得のためにトークンを支払う

  2. 2.ストレージマイナーはストレージスペースを提供することでトークンを獲得する

  3. 3.検索マイナーはデータサービスを提供することでトークンを獲得する

1.1     1基本コンポーネント

Filecoin プロトコルは、次の 4 つの新しいコンポーネントで構成されています。

  1. 1.分散型ストレージネットワーク( DSN ): ストレージおよび検索サービスを提供する独立したサービスプロバイダーのネットワークの抽象化を提供します(セクション 2 ) 。次に、インセンティブ付き、監査可能、検証可能なDSN構造として Filecoin プロトコルを提案します(セクション4 )

  2. 2.新しいストレージ証明: 2つの新しいストレージ証明スキームを提案します(第3章): ( 1 ) 複製証明により、ストレージプロバイダーは、データが独自の専用物理ストレージデバイスに複製されたことを証明できます。一意の物理コピーを強制することで、検証者は証明者がデータの複数のコピーを同じストレージスペースに複製していないことを確認できます (2) 「Proof -of-Spacetimeにより、ストレージプロバイダーは特定のデータが指定された期間保存されたことを証明することができます

  3. 3.検証可能な市場: Filecoin ネットワークによって運営される 2 つの分散検証可能な市場(セクション 5 )での注文として、保存要求と検索要求をモデル化します。検証市場は、サービスが正しく提供されたときに支払いが実行されるようにします。クライアントとマイナーがそれぞれ保管注文と検索注文を送信できる保管市場と検索市場を導入します

  4. 4.効率的なプルーフ・オブ・ワーク:コンセンサス・プロトコル適用するためのプルーフオブスペースタイムに基づく効率的なプルーフ・オブ・ワークの構築方法を示しますマイナーはマイニングに不必要な計算を費やす必要はなく、代わりにネットワーク内にデータを保存する必要があります。

1.2     2プロトコルの概要

  • Filecoinプロトコルは、ネイティブ トークンを使用してブロックチェーン上に構築された分散型ストレージ ネットワークです。クライアントはトークンを消費してデータを保存したり取得したりしますが、マイナーはストレージを提供したりデータを取得したりすることでトークンを獲得します。

  • FilecoinDSN は、ストレージ マーケットと検索マーケットという 2 つの検証可能なマーケットを通じて、ストレージ要求と検索要求を処理します。クライアントとマイナーは、要求されるサービスの価格と提供されるサービスの価格を設定し、市場に注文を送信します。

  • 市場は Filecoin ネットワークによって運営されており、このネットワークは「Proof of Spacetime」と「Proof of Replication」を使用して、マイナーが保存することを約束したデータを正しく保存することを保証します。

  • 最後に、マイナーはブロックチェーン内で新しいブロックの作成に参加できます。マイナーが次のブロックチェーンに与える影響は、ネットワーク内の現在のストレージ使用量に比例します。

図1は、用語の定義を使用したFilecoinプロトコルのスケッチであり、図2に示す例が添付されています。

  1. 1.3     3.紙の整理

この記事の残りの部分は次のように構成されています。

セクション 2 では、理論的な DNS スキームの定義と要件を示します。セクション 3 では、「複製の証明」および「時空間の証明」プロトコルを定義および紹介し、 Filecoin がそれらを使用して、データが順序どおりに継続的に保存されていることを暗号的に検証する方法について説明します。

セクション 4 では、FilecoinDSN の特定のインスタンスを説明し、データ構造、プロトコル、および参加者間の相互作用について説明します。5章では、検証可能な市場の概念保管および検索市場の実装について定義し、説明します。6では、ブロックチェーン ブロックとブロック報酬をスケーリングするために必要な、ネットワークへのマイナーの貢献を実証および評価するための Proof-of-Spacetime プロトコルの使用について説明します7 章では、 Filecoinのスマート コントラクトについて簡単に説明します。最後に第8今後の課題について議論します。

図1 Filecoinプロトコルのスケッチ

 

図 2 Filecoin プロトコルの図。クライアントとマイナーのやり取りの概要を示しています。ストレージ市場と検索市場はそれぞれブロックチェーンの上と下に表示されます。左側の注文マッチング フェーズから右側の決済フェーズへと時間が進んでいます。マイクロペイメントを取得できるようにするには、クライアントがマイクロトランザクションの資金をロックする必要があることに注意してください。


2    分散型ストレージネットワークの定義


分散型ストレージ ネットワーク(DSN)スキームの概念を紹介します DSN は、複数の独立したストレージ プロバイダーによって提供されるストレージを集約し、自己調整して顧客にストレージおよび取得サービスを提供できます。この調整は分散化されており、信頼不要です。プロトコルの調整と個々の参加者によって実行される検証操作を通じて、システムはセキュリティ操作を実現できます。 DSN は、システムの要件に応じて、ビザンチン合意、ゴシッププロトコル、 CRDTなどのさまざまな調整戦略を使用できます。後のセクション 4 では、 Filecoin DSN の構築について説明します。


定義2.1

  • DSNスキーム( Π )は、ストレージプロバイダーとクライアントによって実行されるプロトコルのタプルです( Put、Get、Manage)。

  • Put(data ) → key:クライアントはPutプロトコルを実行して、一意の識別子キーの下にデータを保存します。

  • Get(key) data:クライアントはGetプロトコルを実行し、キーを使用して現在保存されているデータを取得します。

  • 管理( ):ネットワーク参加者は管理プロトコルを通じて調整を行い、利用可能なストレージの制御、プロバイダーが提供するサービスの監査、起こりうる障害の修正などを行います。

  • 管理プロトコルはストレージプロバイダーによって実行され、多くの場合、クライアントまたは監査ネットワークと結合されます(ブロックチェーンに依存する管理プロトコルの場合、マイナーはストレージプロバイダーを検証および調整するため、監査人とみなされます

  • DSNスキーム ( Π ) は、データの整合性と回復性を保証し、次のセクションで定義される管理およびストレージ障害に耐えられる必要があります

  • 2.1     1.フォールトトレランス

2.1.1経営の失敗

管理障害は、管理プロトコルの参加者によって引き起こされるビザンチン障害として定義されます。 DSNソリューションは、基盤となる管理プロトコルのフォールト トレランスに依存します。フォールト トレランスの管理障害の想定に違反すると、システムの稼働状態と安全性に影響を及ぼす可能性があります

たとえば、管理プロトコルがストレージ プロバイダーを監査するためにビザンチン フォールト トレランスを必要とする DSN シナリオを考えてみましょう。このようなプロトコルでは、ネットワークはストレージ プロバイダーからストレージ証明を収集し、ビザンチン フォールト トレランスを実行して、これらの証明の有効性について合意に達します。合計で n 個のノードがある場合、ビザンチン障害耐性は最大で f 個の障害ノードを許容できます。そうすると、 DSN は f<n/2 個の障害ノードを許容できるようになりますこれらの仮定が破られると、監査は危険にさらされます。

2.1.2ストレージ障害

ストレージ障害はビザンチン障害とみなされ、クライアントがデータを取得できなくなります。たとえば、ストレージマイナーはデータを失い、検索マイナーはサービスを停止しました。入力データが m 個の独立したストレージ プロバイダー(合計n個のうち)格納され、最大 f 個のビザンチン ストレージ プロバイダーを許容できる場合、成功したPut 操作は ( f,m)と定義されます。パラメータfm はプロトコルの実装によって異なります。プロトコル設計者はfm を固定することも、ユーザーに選択させることもできます。 Put(data) を Put(data,f,m )展開します失敗したストレージプロバイダーが f 個未満の場合ストレージ データに対する Get 操作は成功します。

たとえば、簡単なシナリオを考えてみましょう。 Put プロトコルは、各ストレージ プロバイダーのすべてのデータを保存するように設計されています。この方式では、m=n、f=m-1 です。しかし、f=m-1 は常に成り立つのでしょうか?必ずしもそうではありません。一部のソリューションでは、各ストレージ プロバイダーがデータの特定の部分を保存する消去可能な設計を採用しているため、m 個のストレージ プロバイダーのうち x 個がデータを取得する必要があります。このシナリオでは、f = mx です。

2.2     2 件のプロパティ

DSN スキームに必要な 2 つのプロパティについて説明し、次に Filecoin DSN に必要なその他のプロパティを提案します。

2.2.1データの整合性

このプロパティでは、Get 操作の終了時にクライアントに変更または偽造されたデータを受け入れさせる可能性のある有限の敵対者 A が存在しないことが要求されます。

定義2.2

DSN スキーム (Π)はデータの整合性を提供します。つまり、キーkの下にデータ d を設定するPut操作が成功した場合キーkGet操作の終了時にクライアントd ' ( d ' はdと等しくない)を受け入れさせる計算上有限の敵対者Aは存在しません

2.2.2回復可能性

このプロパティは、次の要件を満たします。Πフォールト トレランスの仮定を考慮すると、一部のデータが Π に正常に保存され、ストレージ プロバイダーがプロトコルに従い続ける場合、クライアントは最終的にデータを取得できるようになります。

定義 2.3

DSN スキーム (Π) は回復可能性を提供します。つまり、キー kの下にデータdを設定するPut操作が成功し、キーKで取得を実行してデータを取得するクライアントGet操作が成功した場合です (この定義は、すべてのGet操作が成功することを保証するものではありません。すべてのGet操作が最終的にデータを返す場合、スキームは公平です)

2.3     3その他の特性

DSN は、アプリケーションに固有の追加プロパティを提供できます。 FilecoinDSN に必要な 3 つの主要なプロパティ (公開検証可能性、監査可能性、インセンティブ互換性) を定義します。

定義 2.4

DSNスキーム(Π)公開検証可能です。つまり、 Put操作が成功するたびに、ストレージ ネットワーク プロバイダーは、データが現在保存されていることの証明を生成できます。この保管証明は、キーのみを知っているが、キーに対応するデータへのアクセス権を持たない有効な検証者を納得させる必要があります。

定義 2.5

DSN スキーム (Π) は、データが正しい時間に実際に保存されたことを確認するために将来チェックできる検証可能な操作のトレースを生成する場合、監査可能です。

定義 2.6

DSNスキーム(Π) は、ストレージプロバイダーがデータの保存と取得のサービスを正常に提供した場合に報酬が与えられ、不正行為に対しては罰せられる場合、インセンティブ互換性がありますすべてのストレージ プロバイダーの主な戦略は、データを保存することです。


3    複製の証明と時空の証明


Filecoin プロトコルでは、ストレージ プロバイダーは、顧客が支払ったデータが自分たちによって保存されていることを顧客に納得させる必要があります。実際には、ストレージ プロバイダーは、ブロックチェーン ネットワーク (または顧客自身) が検証するための「ストレージの証明」(POS) を生成します。

このセクションでは、複製証明(PoRep)と

「空間と時間の証明」(PoSt) 実装ソリューション。

3.1     1動機

保管証明(POS)方式は、「データ保有証明」(PDP)[2]や「検索可能性証明」(PoR)[3,4 ]方式に似ています。これにより、データをサーバー証明者P)にアウトソースするユーザー検証者V)は、サーバーがデータ D をまだ保存しているかどうかを繰り返し確認できるようになります。ユーザーは、データをダウンロードするよりも効率的な方法で、サーバーにアウトソースしたデータの整合性を検証できます。サーバーは、ランダムなデータ ブロックのセットをサンプリングし、少量のデータを応答プロトコルとしてユーザーに送信することで、所有の確率的証明を生成します。

PDPおよび PoRスキームは、応答時に証明者が特定のデータを所有していることのみを保証します。 Filecoinでは悪意のあるマイナーがストレージを提供せずに報酬を受け取る 3 種類の攻撃 (シビル攻撃アウトソーシング攻撃、プロキシ攻撃)を悪用するのを防ぐために、より強力な保護が必要です。 世代攻撃

  • シビル攻撃: 悪意のあるマイナーは、複数のシビル ID を作成し、物理的に多数のコピー( 報酬を得るため)を保存しているふりをしますが、実際には 1 回しか保存しません。

  • アウトソーシング攻撃: 他のストレージ プロバイダーからデータを迅速に取得できることを前提として、悪意のあるマイナーは実際の物理ストレージ容量よりも多くのデータを保存すると約束する可能性があります。  

  • 生成攻撃: 悪意のあるマイナーは大量のデータを保存すると主張するかもしれませんが、実際には小さなプログラムを使用して効率的にリクエストを生成します。このアプレットが保存されていると主張されるデータよりも小さい場合、これはマイナーの現在の使用量に比例するため、悪意のあるマイナーが Filecoin でブロック報酬を取得する可能性が高まります。

  • 3.2     2複製の証明

「Proof of Replication」(PoRep)は、新しいタイプのストレージ証明です。これにより、サーバー(証明者P) は、ユーザー(検証者V)に対して、データDが専用の物理ストレージにコピーされていることを納得させることができます。私たちのスキームは対話型プロトコルです。証明者P が、(a)あるデータDn個の異なるレプリカ (独立した物理コピー)を保存することを約束し (b )応答プロトコルを通じて検証者Vに対して、 Pが実際に各レプリカを保存していることを納得させる場合。私たちの知る限り PoRep はPDPおよびPoR スキームを改善し、シビル攻撃、アウトソーシング攻撃、生成攻撃を防止します。

PoRepの正式な定義、その特性の説明、および詳細な研究については、[5]を参照してください。

定義3.1

PoRepスキームにより有効な証明者P はデータDP固有の独立した物理コピーRが保存されていることを検証者Vに納得させることができます。 PoRepプロトコルは、多項式時間アルゴリズムの組(セットアップ証明、検証)によって特徴付けられます。

PoRep.Setup(1λ,D) → R, SP , SV 、ここで SP と SV は P と V の特性スキームのセットアップ変数であり、 λ はセキュリティパラメータです。 PoRep.Setup は、レプリカ R を生成し、PoRep.Prove と PoRep.Verify を実行するために必要な情報を P と V に提供するために使用されます。一部のスキームでは、PoRep.Setup を計算するために証明者または対話型の第三者が必要になる場合があります。

PoRep.Prove(SP, R, c) → πc、ここでcは検証者Vによって発行されたランダム検証であり、πcは証明者がデータDの特定のコピーRにアクセスできることを証明するものです。PoRep.Proveは、V(検証者)がπcを生成するためにP(証明者)によって実行されます。

PoRep.Verify(Sv,c,πc)→{0,1}は証明が正しいかどうかを確認するために使用されます。

PoRep.Verify は V によって実行され、P が R を保存したことを V に納得させます。

3.3     3空間と時間の証明

ストレージ証明スキームにより、ユーザーは、ストレージ プロバイダーがその時点でアウトソーシングされたデータをすでに保存しているかどうかを確認するよう要求できます。 PoSを使用して、データが一定期間保存されていることを証明するにはどうすればよいですか?この問題に対する自然な答えは、ユーザーにストレージ プロバイダーに繰り返しリクエスト(たとえば、1 分ごとに) を送信するように依頼することです。ただし、ストレージプロバイダーはブロックチェーンネットワークに証明を提出する必要があるため、各やり取りに必要な通信の複雑さがFilecoinのようなシステムではボトルネックになる可能性があります。

この質問に答えるために、私たちは「Proof-of-Spacetime」という新しい証明を導入しました。これにより、バリデーターはストレージプロバイダーが一定期間にわたってアウトソーシングしたデータを保存していたかどうかを確認できるようになります。プロバイダーに対する当面の要件は次のとおりです。

1)時間を決定する方法として、連続したストレージの証明この場合は「複製の証明」 を生成する

(2)再帰実行を構成して簡単な証明を生成する。

定義3.2

  • *(時空間の証明) Post 方式により、有効な証明者 P は、検証者 V に対して、P が一定期間データ D を保存していたことを納得させることができます。 PoSt は、多項式時間アルゴリズムのタプル (セットアップ、証明、検証) によって特徴付けられます。

  • PoSt.Setup(1λ,D)->Sp,Sv 、ここでSPSV は PV の特性スキームのセットアップ変数である

λは安全パラメータです。 PoSt.Setup は、PoSt.Prove と PoSt.Prove を実行するために必要な情報を P と V に提供するために使用されます。いくつかのソリューションでは、証明者または対話型の第三者による計算が必要になる場合があります。

Post.セットアップ。

  • PoSt.Prove(Sp , D , c , t) πc 、ここでc は検証者Vによって発行されたランダム検証であり、 πc は証明者が一定期間データ D にアクセスできるという証明ですPoSt.ProveはP(証明者V(検証者に対して実行し、πcを生成します。

  • PoSt.Verify(Sv , c , t,πc)→ {0,1}は証明が正しいかどうかを確認するために使用されます。 Vによるポスト確認

走って、P が R をしばらく保管していたことを V に納得させます。

3.4    PoRepPoStの実用的アプリケーション

私たちは、既存のシステムに適用でき、信頼できるサードパーティやハードウェアに依存しないPoRepおよびPoStのアプリケーションの構築に関心を持っています我々は、セットアッププロセス中にレプリカを生成するために、シールされた実行の非常に遅い順次計算を必要とするPoRepシールベースの複製証明[5 ]を参照)の構築を提示します。

PoRep と PoSt のプロトコル スケッチは図 4 に示され、Post の基礎となるメカニズムの証明手順は図 3 に示されています。


図 3: PoSt の基礎となるメカニズムの図解。時間の経過に伴うストレージを実証するために反復証明を示します。

 

図 4: Proof-of-Replicationおよび Proof-of-Spacetime プロトコルのスケッチ。ここで、CRH は衝突耐性ハッシュを表し、~x は証明される NP ステートメント、~w は証人です。


3.4.1暗号化ブロックの構築

衝突耐性ハッシュ 衝突耐性ハッシュ関数CRH : { 0, 1}* → { 0, 1}O(λ ) を使用します。また、衝突耐性ハッシュ関数MerkleCRHも使用しまし。この関数は、文字列を複数の部分に分割し、バイナリツリーを構築してCRHを再帰的に適用し、ツリーのルートを出力します。

zk-SNARKs PoRepとPoStの実用的な実装は、簡潔な非対話型ゼロ知識証明の知識理論(zk-SNARKs)[6,7,8]に依存しています zk-SNARKは簡潔なので、証明は短く、検証も簡単です。より正式には、 L をNP言語とし C をLの決定回路とします。信頼できる当事者はセットアップフェーズを経て、証明キーpkと検証キーvk の2 つの公開キーを生成します

証明鍵pkにより、任意の(信頼されていない証明者は、自分が選択したインスタンスx( x∈L)に対して証明πの証明を生成できます。 πの非対話型証明は、ゼロ知識と知識の証明の両方です。誰でも検証鍵vkを使​​用して証明πを検証できます。特に、 zk-SNARK証明は公開検証可能です。つまり、誰でもπを生成した証明者とやり取りすることなくπ を検証できます。 πは一定の大きさを持ち、 |x|線形な時間で検証できることが証明されています。 。

回路は信頼できるでしょうか? zk-SNARK は多項式時間アルゴリズムのタプルです: (KeyGen、Prove、Verify)

KeyGen(1λ,C)→ (pk,vk)、セキュリティパラメータλと回路Cを入力すると、KeyGenは確率サンプルpkとvkを生成します。これら 2 つのキーはパブリック パラメータとして公開されており、Lc での証明/検証に使用できます。

Prove(pk, x, w)→ π 入力pk、入力x、およびNPステートメントwの証拠が与えられると、証明者はステートメントx∈LCの非対話型証明πを出力します。

Verify(vk, x, π) → {0, 1} vk、x、証明πが与えられた場合、検証者は出力1がx∈LCを満たすことを検証します。

zk-SNARKシステムの正式な紹介と実装については、[6, 7, 8]を参照してください。

通常、これらのシステムでは、KeyGen を信頼できる当事者が実行する必要があります。革新的なスケーラブル計算整合性とプライバシー(SCIP)システム[9]は、信頼を前提としながらこの初期化ステップを回避する有望な方向性を示しています。

3.4.2シーリング操作

封印操作の効果は、 (1)証明者に公開鍵に固有のデータDの疑似ランダム順列を保存することを要求することによりn個のコピーの物理的に独立したコピーを作成しn個のコピーを保存するとn個別々のディスクスペースしたがってレプリカストレージのサイズがn)が生成されること、および(2) PoRep.Setup中のコピー生成を強制して、要求に応答するのに予想よりも大幅に長い時間がかかることです封印操作のよ​​り正式な定義については[ 5 ]を参照してください。上記の操作SealτAES−256を使用して実装できますが、 τによりSealτAES−256正直な証明検証要求のシーケンスよりも10〜100倍長くかかります τの選択は重要であり、 SealτBC の実行には、証明者がRにランダムにアクセスするよりも時間がかかることがより明らかになることに注意してください

3.4.3 PoReP構築の実践

このセクションでは、PoRep プロトコルの構築について説明し、図 4 に簡単なプロトコル スケッチを示します。実装と最適化の詳細は省略します。

レプリカの作成 セットアップ アルゴリズムは、シーリング アルゴリズムを通じてレプリカを生成し、証明を提供します。証明者はコピーを作成し、出力(Rを除く)を検証者に送信します。


設定

入力:

  証明者ペア (pkP、skP)

  証明者 SEALキーpkSEAL

  データDの出力: レプリカR、Rのマークル根rt、証明πSEAL


ストレージの証明Proveアルゴリズムは、レプリカのストレージ証明を生成します。証明者は検証者からランダムなチャレンジを受け取り、ルートrtを持つMerkleツリーR内の特定のリーフ ノード Rc を確認するように要求します証明者は、ルートrtからリーフRcまでのパスに関する知識の証明を生成します

証明する

入力:

  証明者保管証明キーpkPOS

  レプリカR

  ランダムチャレンジ

出力: 証明πPOS


検証アルゴリズムは指定されたソース データ ハッシュのストレージ証明とレプリカのMerkleツリー ルートの有効性をチェックします。証明は公的に検証可能です。つまり、分散システム内の台帳を管理し、特定のデータに関心のあるノードがこれらの証明を検証できます

確認する

入力:

  証明者公開鍵、 pkP

  検証SEALおよびPOSキーvkSEAL、vkPOS

  データDハッシュ、hD

  レプリカRマークルルート、 rt

  ランダムチャレンジ、c

  証明組、(πSEAL、πPOS)

出力: ビットb、証明が有効な場合は1

3.4.4 施工後の実践

このセクションでは、Post プロトコルの構築について説明し、図 4 に簡単なプロトコル スケッチを示します。実装と最適化の詳細は省略します。

セットアップおよび検証アルゴリズムは、上記のPoRep構築と同じですそこで、ここではProveについて説明します空間と時間の証明アルゴリズムは、レプリカの「空間と時間の証明」を生成します。証明者は検証者からランダムなチャレンジを受け取り、「複製の証明」を順番に生成し、その証明の出力を指定されたt回の反復の別の入力として使用します(図 3 を参照)。

証明する

入力:

  証明者PoStキーpkPOST

  レプリカR

  ランダムチャレンジ

  時間パラメータ

出力: 証明πPOST

3.5 Filecoinでの応用

Filecoin プロトコルは、「空間と時間の証明」を使用して、マイナーが提供するストレージを監査します。 Filecoin でPoSt を使用するには、指定されたバリデーターが存在せず、ネットワーク メンバー全員が検証できるようにする必要があるため、スキームを非対話型に変更しました。当社のバリデータはパブリックコインモデルで動作するためブロックチェーンからランダム性を抽出してチャレンジを発行できます


4   ファイルコイン:DSN構築


FilecoinDSNは、スケーラブルで、公的に検証可能で、インセンティブが付与される分散型ストレージ ネットワークです。クライアントは、データの保存と取得のためにマイナーのネットワークに料金を支払います。マイナーは手数料を得るためにディスク容量と帯域幅を提供します。マイナーは、サービスが正しく提供されているかどうかをネットワークが監査できる場合にのみ支払いを受け取ります

このセクションでは、DSN の定義と「空間と時間の証明」に基づいた FilecoinDSN の構築について紹介します。

 

4.1     1環境

4.1.1参加者

どのユーザーも、クライアント、ストレージ マイナー、および/または検索マイナーとして Filecoin ネットワークに参加できます。クライアントは Put リクエストと Get リクエストを通じて DSN にデータを保存および取得し、これに対して料金が発生します。

ストレージマイナーはネットワークにデータストレージを提供します。ストレージマイナーは、ディスクスペースを提供し、 Pugリクエストに応答することでFilecoinに参加します。ストレージマイナーになるには、ユーザーはストレージスペースに比例した担保を差し出す必要があります。ストレージマイナーは特定の時間データを保存することで、ユーザーのPutリクエストに応答します。

ストレージマイナーは「時空間の証明」を生成し、それをブロックチェーンネットワークに送信して、特定の期間データを保存したことを証明します。証明が無効または紛失した場合、ストレージマイナーは担保の一部の罰金を科せられます。ストレージマイナーも新しいブロックをマイニングする資格があります。新しいブロックがマイニングされると、マイナーは新しいブロックのマイニングに対する報酬と、ブロックに含まれる取引手数料を受け取ります。

検索マイナーは、ネットワークにデータ検索サービスを提供します。検索マイナーは、ユーザーのGetリクエストに必要なデータを提供することでFilecoinに参加しますストレージマイナーとは異なり、誓約したり、ストレージデータを送信したり、ストレージ証明を提供したりする必要はありませんストレージマイナーは、検索マイナーとしてネットワークに参加することもできます。検索マイナーは、顧客から直接、または検索市場から収益を得ることができます。

4.1.2ネットワークN

Filecoinフルノードを実行しているすべてのユーザーを、単一の抽象エンティティであるネットワークにグループ化します。ネットワークは、管理プロトコルを実行するための仲介役として機能します。簡単に言えば、 Filecoin ブロックチェーンの新しいブロックごとに、フルノードが利用可能なストレージを管理し、担保を検証し、ストレージ証明を監査して、起こりうる障害を修正します。

4.1.3帳簿

私たちのプロトコルは元帳ベースの通貨で動作します。一般的な目的では、これを「元帳」 Lと呼びます。任意の時点 t (エポックと呼ばれる) では、すべてのユーザーが Lt にアクセスできます。期間tでは、元帳は追加専用であり、連続した一連のトランザクションで構成されます。 Filecoin DSNプロトコルは、検証済みのFilecoin証明を実行する任意の元帳に実装できます。セクション 6 では、有用な作業に基づいて元帳を構築する方法を示します。

4.1.4市場

ストレージの需要と供給は、ストレージ市場と検索市場という 2 つの Filecoin 市場を構成します。これら 2 つの市場は 2 つの分散型取引所であり、セクション5で詳しく説明します。つまり、クライアントとマイナーは、それぞれの市場に注文を送信してサービスを要求したりサービスを提供したりするために、注文の価格を設定します。取引所は、クライアントとマイナーが一致する入札を確認し、注文を実行する方法を提供します。サービス要求が正常に満たされた場合、ネットワークは管理プロトコルを実行してマイナーに支払いが行われ、クライアントに料金が請求されることを保証します。

4.2     2データ構造

シャード シャードは、クライアントによってDSN保存されるデータの一部です。たとえば、データを任意に複数の部分に分割し、各部分を異なるストレージ マイナーのセットで保存することができます。

セクターセクターは、デポジットマイナーがネットワークに提供するディスク領域です。マイナーは顧客データの断片をセクターに保存し、サービスに対してトークンを獲得します。シャードを保存するには、マイナーは自分のセクターをネットワークに提供する必要があります。

アロケーション テーブルアロケーション テーブルは、フラグメントとそれに割り当てられたセクターを追跡するワードローブ データ構造です。割り当てテーブルはエルダーのブロックごとに更新され最新のブロックにMerkleルートが格納されます。実際には、このテーブルはDSNの状態を維持するために使用され証明検証中に高速な検索が可能になります。詳細については、図5 を参照してください。

注文サービスを提供するという注文形式のリクエストまたは意図の表明。クライアントは、サービスを要求するために市場データを保存するためのストレージ市場とデータを取得するための検索市場に入札注文を送信し、マイナーはサービスを提供するためにオファー注文を送信します。注文データ構造を図10に示します。マーケットプロトコルについてはセクション5で詳しく説明します。

注文帳注文帳は注文の集まりです。ストレージ市場の注文書についてはセクション 5.2.2 を、リトリーバル市場の注文書についてはセクション 5.3.3 を参照してください。

モーゲージ 誓約とは、ネットワークにストレージ(具体的にはセクター)を提供するという約束ですストレージマイナーは、ストレージ市場で注文を受け付けるために、担保を元帳に提出する必要があります担保には、担保セクターのサイズと、ストレージマイナーによって預けられた担保が含まれます。

  

図 4: Proof-of-Replication および Proof-of-Spacetime プロトコルのスケッチ。ここで、CRH は衝突耐性ハッシュを表し、~x は証明される NP ステートメント、~w は証人です。



4.3     3プロトコル

このセクションでは、クライアント、マイナー、ネットワークによって実行される操作について説明することで、Filecoin DSN の概要を示します図7にGETおよびPUGプロトコルの方法図8の管理プロトコルを紹介しますプロトコルの実行の例を図6に示します。図1は、ファイルコインプロトコルの概要です

4.3.1顧客ライフサイクル

顧客のライフサイクルの概要を示します。次のプロトコルをセクション5で詳細に分析します。


  1. 1。PUT :クライアントはFileCoinにデータを保存します


    クライアントは、Filecoinの鉱夫にトークンを支払うことでデータを保存できます。セクション5.2では、PUTプロトコルを詳細に説明します。


    クライアントはPUTプロトコルを通じてストレージ市場の注文帳に入札注文を送信しますマイナーからの一致する見積注文が見つかると、クライアントはデータをマイナーに送信し、両当事者は取引命令に署名し、ストレージマーケットオーダーブックに送信します。顧客は、注文を送信することにより、データの物理コピーの数を決定できます冗長性が高いほど、貯蔵障害に対する耐性が高くなります


  2. 取得:クライアントはFileCoinからデータを取得します。


  1. クライアントは、 Filecoinトークンを使用してストレージマイナーに支払うことにより、任意のデータを取得できます。 GETプロトコルについては、セクション5.3詳しく説明していますクライアントは、GETプロトコルを実行することにより、取得市場注文帳に入札命令を提出します。一致するマイナーの引用順序が見つかると、クライアントはマイナーからフラグメントを受け取ります。受け取った場合、両当事者は取引命令に署名し、それをブロックチェーンに送信して、取引の成功を確認します。

4.3.2マイニングサイクル(ストレージマイナー用)

マイニングサイクルの非公式の概要を説明します。


  1. 1。誓約:ストレージマイナーは、ネットワークへのストレージを誓約します。

ストレージマイナーは、ステーキングトランザクションに担保を預けてブロックチェーンにストレージを提供することを誓約します。 manage.pledgesectorを通じて、担保はサービスを提供することと引き換えにしばらくの間誓約され、保存することを約束したデータのストレージプルーフを生成した場合、鉱夫に返されます。ストレージプルーフが失敗した場合、一定量の担保が失われます。彼らは価格を設定し、市場注文帳に入札命令を提出し、誓約取引がブロックチェーンに表示される、鉱夫はストレージ市場でストレージを提供することができます。

manage.pledgesector•入力:

  割り当て可能な現在の割り当てテーブル

   RequestPledgeを誓約します

   出力:割り当て可能

2。注文の受信:ストレージマイナーは、ストレージ市場からストレージリクエストを取得します。

彼らは価格を設定し、Put.Addordersを介して市場注文帳に入札命令を提出し、誓約取引がブロックチェーンに表示されると、マイナーはストレージ市場でストレージを提供できます

put.Addorders

 

  入力:Orderso1..onリスト

  出力:ビットb、成功した場合は1に等しい

put.matchordersを使用して、顧客の見積注文と一致するかどうかを確認します。

put.matchorders

  入力:

  現在のストレージマーケットオーダーブック - OQを一致させるためのクエリ注文

  出力:Orderso1..onの一致

注文が一致すると、顧客はデータをストレージマイナーに送信します。ストレージマイナーがデータを受信すると、 put.receivepieceが実行されます。データを受信した後、マイナーと顧客は注文に署名し、ブロックチェーンに送信します。

put.receivepiece

  入力: -キーフォームの署名

  現在の注文bookorderbook

   Orderoaskに聞いてください

  入札注文

   PIECEP

   出力:CIおよびMJ3が署名したODEAL ORDER ORDER

シーリング:ストレージマイナーは、将来の校正のために破片を準備します。

ストレージマイナーの保管はセクターに分割されており、それぞれにマイナーに割り当てられたフラグメントが含まれています。ネットワークは、割り当てテーブルを介して各ストレージマイナーのセクターを追跡しますストレージマイナーのセクターがいっぱいになると、セクターは封印されます。シーリングは、ゆっくりと順次操作ですセクターのデータはコピーに変換され、データの唯一の物理コピーはストレージマイナーの公開鍵に関連付けられますシーリングは、複製の証明に必要な操作です。セクション3.4で説明するように

manage.sealsector •入力:  

  マイナーパブリック/プライベートキーペア

  セクターインデックス

   割り当て可能な割り当てテーブル

  出力:証明πシール、ルートハッシュrt

  1. 4。証明:ストレージマイナーは、約束の破片データを保存していることを証明しています。


ストレージマイナーにデータが割り当てられている場合、データを保存していることを保証するために、複製の証明を繰り返し生成する必要があります詳細についてはセクション3を参照)。証明はブロックチェーンで公開され、ネットワークによって検証されています。

manage.provesector

  入力:

  マイナーパブリック/プライベートキーペア

  セクターインデックス

  課題

  出力:証明πPO

4.3.3マイニングサイクル(検索鉱夫向け)

マイニングサイクルの非公式の概要を説明します。

  1. 1。注文の受信:検索マイナーは、検索市場からデータを取得するリクエストを受け取ります。

検索マイナーは、価格を設定し、市場注文帳に見積注文を追加し、引用符をネットワークに送信してデータを提供します。

get.Addorders

  入力:Orderso1..onリスト

  出力:なし

次に、マイナーを検索して、顧客の見積注文に一致するかどうかを確認します。

get.Matchorders

  入力:

  現在の検索MarketOrderBook

  マッチqへのクエリ順序

--   出力:注文の一致O1..on


2.センド:マイナーが顧客にデータフラグメントを送信することを取得します。

注文が一致すると、検索マイナーはデータを顧客に送信しますセクション5.3で詳細に説明します 。データが受信されると、マイナーとクライアントがトランザクションに署名してブロックチェーンに送信します。

put.sendpieces

  入力: - Ask OrderOask

   入札オーダービッド

   断片

   outputs:bymiに署名された契約注文

4.3.4ネットワークサイクル

ネットワーク操作の非公式の概要を提供します。

  1. 1。割り当て:ネットワークは、ストレージマイナーが保存されているセクターに顧客フラグメントを割り当てます。

顧客は、見積注文をストレージ市場に提出することにより、PUTプロトコルを開始します。問い合わせフォームと見積フォームが一致する場合、参加者は共同で取引にコミットし、完了した注文を市場に提出します。この時点で、ネットワークはデータをマイナーに割り当て、割り当てテーブルに記録します

manage.Assignorders

  入力:

   Orderso1deal..oddealを取引します

   割り当て可能な割り当てテーブル 

  出力:更新された割り当てテーブル割り当て可能


  1. 1。修理:ネットワークは障害を発見し、修理しようとします


すべてのストレージ割り当ては、ネットワークのすべての参加者に公開されています。各ブロックについて、ネットワークは必要な各証明が存在することをチェックし、それらが有効かどうかをチェックするので、アクションを実行してください。

manage.repairorders

  入力:

  現在の時刻表

  現在のLedgerl

   storageallocationsテーブルは割り当て可能です

  出力:o1deal .. dodeal、更新された割り当てテーブルを修理する注文は割り当て可能です


証明が失われたり無効である場合、ネットワークは担保を差し引くことでストレージマイナーを罰します。多数の証明が欠落または無効な場合(システムパラメーターΔfaultによって  、ネットワークは、ストレージマイナーが失敗し、注文を失敗として設定し、同じデータが市場に参入するために新しい注文を導入することを決定します。


このデータを保存するすべてのストレージマイナーが失敗した場合、データは失われ、顧客は払い戻しを受けます。


 図6:党によってグループ化され、列ごとに時系列でソートされたファイルコインDSNの実行の例

4.4     4保証と要件

Filecoin DSNがどのように整合性、検索可能性、公共の検証可能性、インセンティブの互換性を達成するかを以下に示します。

  • 実装整合性データフラグメントは、暗号化にちなんで命名されます。 PUTリクエストの後、クライアントはGET操作を通じてデータを取得するためにハッシュを保存する必要があり、受信したデータの整合性を確認できます。

  • パットリクエストで回復可能性を実装すると、クライアントはレプリカファクターを指定し、コードは消去タイプを期待します。特定のMストレージマイナーがデータを保存し、F障害に耐えることができると仮定すると、この方法は( F M)耐性ストレージです。さまざまなストレージプロバイダーにデータを保存することにより、クライアントはストレージマイナーがオフラインになったり消えたりした場合に、回復の可能性を高めることができます

  • 公的に検証可能で監査可能なストレージを実装するマイナーは、そのストレージ(πシール πポスト)の証明をブロックチェーンに提出する必要があります。ネットワーク内のユーザーは、外部委託データにアクセスすることなく、これらの証明の有効性を検証できますさらに、これらの証明はブロックチェーンに保存されるため、操作トレースはいつでもレビューできます。

  • インセンティブの互換性を達成するために、鉱山労働者がストレージを提供することにより報酬を受け取ると正式に言われていません。マイナーがいくつかのデータを保存することを約束するとき、彼らは証明を生成する必要があります。鉱夫が証拠を無視した場合、彼は(担保の一部を失うことによって罰せられ、保存された報酬を受け取りません。

  • 顧客がデータの保存を個人的に保存することを望む場合、顧客はネットワークに提出される前にデータを暗号化する必要があります。

図7:Put and Getプロトコルの説明filecoin dsn  

図8:FileCoindsnの管理プロトコルの説明


5    FileCoinのストレージおよび検索市場


FileCoinには、ストレージ市場と検索市場の2つの市場があります。

これらの2つの市場は同じ構造を持っていますが、異なる設計を持っています。ストレージ市場により、顧客は鉱山労働者にデータを保存するために支払うことができます。検索データを使用すると、マイナーに支払いを行うことができ、検索データ配信を提供できます

どちらの場合も、顧客と鉱夫は見積もりを設定して価格を要求するか、現在の見積もりを受け入れることができます。このトランザクションはネットワークによって実行されます -ファイルコインの完全なノードは擬人化されています。ネットワークは、サービスを提供する際に、鉱夫が顧客から報酬を受け取ることができるようにします。

5.1     1市場を確認します

取引市場は、特定の商品とサービスの交換を促進する契約です。バイヤーとバイヤーが取引を促進できるようにします。私たちにとっては、トランザクションが検証可能であることが必要です。分散ネットワークの参加者は、買い手と売り手の間のトランザクションを検証できる必要があります。

市場を検証するという概念を提案します。トランザクションを管理するための単一のエンティティはありません。トランザクションは透明であり、誰でも匿名で参加できます検証済みの市場契約により、サービストランザクションの分散化が可能になります。注文書の一貫性、注文決済、およびサービスの正しい実行は、参加者 - 鉱夫とFILECOINの完全なノードによって独立して検証できます。

検証可能な市場を簡素化して、以下を構築します。

定義5.1

検証可能な市場は、注文マッチングと決済という2段階の合意です。注文は、購入意図または商品またはサービスの販売のセキュリティの声明であり、注文書は利用可能なすべての注文のリストです。

5.2     2ストレージ市場


図9:veri_able市場向けの一般的なプロトコル


ストレージ市場は、顧客つまり、買い手がストレージデータとストレージマイナーつまり売り手)がストレージスペースを提供することを要求できる検証可能な市場です

5.2.1requirements

次の要件に基づいてストレージ市場の合意を設計します。

  • チェーンオーダーブックにとって重要なのは、(1)スペースを保存する注文ベースの形式であるため、最低価格の注文は常にインターネットでよく知られており、顧客は注文に関する情報に基づいた決定を下すことができます(2)顧客注文は、市場が新しいQuoteに反応できるように最低価格を受け入れても、常に注文に提出する必要があります。したがって、注文ブックに追加できるように、注文をファイルコインブロックチェーンに追加する必要があります

  • 参加者はリソースを投資します。ダメージを避ける方法として、両当事者にリソースをコミットするように依頼します。ストレージマイナーがサービスを提供していないこと避け、利用可能な資金なしで顧客を避けるため。ストレージ市場に参加するために、ストレージマイナーは、担保が保管に比例してDSNに担保が堆積するようにしなければなりません詳細については、セクション4.3.3を参照 。このようにして、ネットワークは、データを保存することを約束するが、ストレージの証明を提供しないストレージマイナーを罰することができます。同様に、顧客は、この方法で特定の金額の資金で注文を充電して、決済期間中に資金の利用可能性を確保する必要があります。

  • 障害の自己処理は、ストレージマイナーが合意された時間内にデータを保存したことを繰り返し証明した場合にのみ、鉱夫に決着しますネットワークは、これらの証明の存在と正確性を検証できる必要があり、規則に従って処理されます。セクション4.3.4には、修正セクションの概要があります。

5.2.2データ構造

PUT注文には、入札注文、問い合わせ注文、取引注文の3種類の注文があります。ストレージマイナーは、ストレージを追加するための問い合わせ注文を作成し、顧客は入札注文リクエストストレージを作成し、両当事者が価格に同意する場合、共同で処理命令を作成します。順序のデータ構造と順序パラメーターの明確な定義を図10に示します

注文帳の保管市場注文帳は現在有効かつオープンな問い合わせ、入札、取引の注文を開いています。ユーザーは、PUTプロトコルで定義されているメソッド:AddordersとMatchordersを図7に示します。

注文書は公開されており、すべての正直なユーザーには同じ注文書の試みがあります。各サイクルで、新しい注文トランザクションが新しいブロックに表示される場合、注文ブックに追加されます。注文がキャンセル、キャンセル、または解決された場合削除されます。注文はブロックチェーンに追加されるため、注文帳で有効な場合。

定義5.2

入札、問い合わせ、取引注文の有効性を定義します。

(有効な入札)クライアントCIから発行された入札、obid :=( hsize funds [、fird、time coll、coding])> ci、次の条件が満たされている場合、それは有効です。

  • CIは、少なくともアカウントに利用可能な資金を持っています

  • 時間はタイムアウトしていません

  • 最小ストレージサイクルで順序を保証する必要があります(これはシステムパラメーターです

(有効な問い合わせ)ストレージマイナーによって発行された照会MI、OASK:=(HSPACE、PRISEI)MIは、次の条件が満たされている場合に有効です。

  • MIは鉱山労働者になることを約束し、誓約期間は注文サイクル前に期限切れになりません

  • スペースは、 MIの利用可能なストレージよりも少ない必要があります。 MIは、順序で(お問い合わせの注文と取引注文)を約束したストレージを差し引く

(有効な取引命令)取引注文ODEAL:=(HASK、BID、TS)CI、MJは、次の条件が満たされている場合に有効です。

  • 参照注文OASKを要求してください。それはCIによって署名されており、ストレージ市場の注文書には他の注文が含まれていません。

  • BID ORDER REFERENT ORDER ORDER OBID OBID :それはMJによって署名されており、ストレージ市場の注文書には他の注文が含まれていません。

  • TSは将来の時間や早すぎる時間に設定することはできません

邪悪なクライアントがストレージマイナーから署名されたトランザクションを受け取ったが、注文書にそれを追加しない場合、ストレージマイナーは注文で送信されたストレージを再利用できません。このフィールドTSは、TSを超えた、注文が無効になり、注文帳で提出できないため、この攻撃を防ぐことができます

 

図10:検索およびストレージ市場のデータ構造を注文

5.2.3ストレージ市場契約

要するに、ストレージ市場契約は2つの段階に分かれています。注文マッチングと決済:

  • 注文マッチ:クライアントとストレージマイナーブロックチェーンにトランザクションを送信することにより、注文書に注文書を送信します(ステップ1 。注文が一致すると、クライアントはデータフラグメントをストレージマイナーに送信し、両当事者がトランザクションに署名し、注文ブックに送信します(ステップ2 )。  

  • 決済:   マイナーシールセクター(ステップ3 a を保存し、セクターに含まれるフラグメントのストレージプルーフを生成し、それらを定期的にブロックチェーンに提出しますステップ3 b )。同時に、残りのネットワークは、鉱夫によって生成された証明を検証し、障害の可能性を修正する必要がありますステップ3 C )。

ストレージ市場契約については、図11で詳しく説明しています。

5.3     3検索市場

検索市場により、クライアントは特定のデータを取得するよう要求できます。このサービスは検索マイナーによって提供されます。ストレージマイナーとは異なり、検索マイナーは、特定の期間内にデータの保存やストレージプルーフの生成を必要としません。ネットワーク内のすべてのユーザーは検索マイナーになることができ、検索サービスを提供することによりファイルコイントークンを獲得できます。検索マイナーは、クライアントからデータフラグメントを直接受信したり、それらを取得したり、ストレージマイナーとして保存したりできます。

5.3.1requirements

次の要件に基づいて検索市場の合意を設計します。

  • オフチェーンの注文帳クライアントは、必要なデータフラグメントを提供する検索マイナーを見つけて、価格設定後に直接交換できる必要があります。これは、注文本をブロックチェーンで実行できないことを意味します。これは、高速検索リクエストのボトルネックになるためです。代わりに、参加者は注文帳の部分的なビューのみを見ることができます。私たちは両当事者に注文を広めるように依頼します。

  • 公正な交換[10]を探している信頼できない当事者不可能性は、両当事者が信頼できる当事者なしではコミュニケーションができないことを思い出させます。ストレージ市場では、ブロックチェーンネットワークは、ストレージマイナーが提供するストレージを検証するための分散型信託当事者として機能します。検索市場では、検索マイナーとクライアントがファイルの交換を目撃することなくデータを交換します。これを行うと、検査官にデータを複数の部品に分割し、各部品をクライアントに送信するように依頼すると、鉱夫が支払いを受け取ります。このようにして、クライアントが支払いを停止するか、マイナーがデータの送信を停止した場合、どちらの当事者もトランザクションを終了できます正直な検索マイナーが常にあると常に想定しなければならないことに注意してください  

  • 支払いチャネルクライアントは、支払いを提出するときにすぐに利子の断片を取得できます。検索マイナーは、支払いが受け取られたことを確認した場合にのみ、データの断片化を提供します。公共元帳を介した取引の確認は、検索要求のボトルネックになる可能性があるため、有効なオフチェーン支払いに依存する必要があります。 FileCoinブロックチェーンは、楽観的なトランザクションの場合にのみ、紛争が発生した場合にのみ、ブロックチェーンを使用して、高速支払いチャネルをサポートする必要があります。このようにして、検索マイナーとクライアントは、ファイルコインプロトコルで必要なマイクロペイメントを迅速に送信できます。将来の作業には、 [11,12]で説明されているように、支払いチャネルネットワークの作成が含まれます。

5.3.2データ構造

Get Order Search Marketには、クライアントによって作成されたBID ORDER OBIDマイナーによって作成されたお問い合わせ注文OASK 、およびストレージマイナーとクライアントが到達したトランザクション注文ODEAL :3つのタイプの注文が含まれています。順序のデータ構造を図10に示します。

Get Order Book Search Market Order Bookは、有効な公開入札注文、問い合わせ注文、取引注文のコレクションです。ストレージ市場とは異なり、各ユーザーには異なる注文書の試みがあります。これは、注文がネットワーク全体に広がるため、各マイナーとクライアントは関心のある注文のみを追跡するためです。

 

図11:詳細なストレージ市場プロトコル


5.3.3市場契約の検索

要するに、検索市場の契約は2つの段階に分かれています。注文マッチングと決済:

注文マッチ  クライアントと検索マイナーは、ブロードキャストステップ1 を介して注文書に注文を提出します。注文が一致する、マイナーの履歴書のクライアントとマイクロペイメントチャネルが取得されます(ステップ2 )。

和解は、鉱山労働者が断片のごく一部をクライアントに送信し、各フラグメントの鉱夫に受け取った領収書を送信します(ステップ3 。検索マイナーは、報酬を受け取るためにブロックチェーンに領収書を提示しますステップ4 )。

このプロトコルについては、図12で詳しく説明しています。

図12:詳細な検索市場プロトコル

6    有用な仕事のコンセンサス


Filecoin DSNプロトコルは、検証を可能にするコンセンサスプロトコルの上に、ファイルコインの証明を実装できますこのセクションでは、ガイドに使用したものに基づいて、コンセンサスプロトコルの基礎となる方法を解決します。 Filecoin Minerは、浪費された捕虜ではなく、コンセンサスに参加するために「空間時間証明」を生成します

ブロックチェーンのセキュリティを確保するだけでなく、計算の出力がネットワークにとって価値がある場合に役立ちます。マイナーがコンセンサスプロトコルで行う作業は有用だと思います。

6。1動機

ブロックチェーンのセキュリティを確保することが重要です。 Powの証明スキームでは、パズルの解決策を見つけるために再利用することも、無駄な計算を必要とすることもできないことがよくあります。

復活できないジョブのほとんどの許可のないブロックチェーンでは、ハッシュ関数を反転するなど、鉱夫がハードコンピューティングの問題を解決する必要があります多くの場合、これらのソリューションは役に立たず、ネットワークセキュリティを保護する以外に価値はありません。この作業を行うために再設計できますか?

仕事を再利用しようとする:有用な計算のためにマイニングサーキットを再利用する試みがいくつかありました。一部の試みでは、鉱山労働者が標準的な捕虜と同時にいくつかの特別な計算を実行する必要がありますが、他の試みはPOWを有用な問題に置き換えようとすることを解決するのが依然として困難ですたとえば、 Primecoinは鉱山労働者のコンピューティングパワーを再利用して新しい素数を見つけます。イーサリアムでは、一部のデータがアーカイブされていることを証明しながら、鉱夫に仕事の証明でアプレットを実行する必要があります。これらの試みのほとんどは有用な作業を実行しますが、これらの計算で無駄になった作業の量は依然として一般的です。

廃棄物の解決パズルは、特にこれらの問題がコンピューティングの能力に完全に依存している場合、機械のコストと容量の消費の点で非常に高価です。マイニングアルゴリズムが同時にできない場合、問題を解決する通常の要因は計算能力です。無駄な仕事を減らすことはできますか?

廃棄物を削減しようとする:理想的には、ほとんどのネットワークリソースは有用な作業に費やす必要があります。一部の試みでは、鉱夫がよりエネルギー効率の高いソリューションを使用するように要求することですたとえば、「スペースマイニング」 sp a ce mi n t では、鉱夫がコンピューティングではなくディスクスペースに専念する必要があります。エネルギー効率が高くなりますが、ディスクスペースはいつでもデータで満たされているため、「無駄」です。他の試みは、パズルの解決策を、次のブロックでの利害関係者の投票がシステム内の通貨のシェアに比例する株式証明に基づいた伝統的なビザンチンプロトコルに置き換えることです

ユーザーデータストレージに基づいて有用に機能するコンセンサスプロトコルの設計に着手しました。

6。2FileCoコンセンサス

電力障害トレランステクニカルレポート[13]では、参加者がプロトコルの結果に与える影響という点でビザンチン断層を再構築するための抽象化であるパワーフォールトトレランスを提案します。各参加者は、総ネットワーク電源nのパワーの一部を制御します。ここで、Fは故障したノードまたは邪悪なノードによって制御される電力の割合です。

FilecoinのFilecoin Power 、Time Tで、Miner Miの電力Pt> iは、Miの合計のストレージタスクです。

Mi Itiは、ネットワーク内の総MIパワーの影響要因です。 Filecoinでは、Powerには次の特性があります。

  • パブリック:ネットワークで現在使用されているストレージの合計量は公開されています。ブロックチェーンを読むことで、誰でも各マイナーのストレージタスクを計算できます。そのため、誰でもいつでも各マイナーのパワーと総電力を計算できます

  • 公開された検証:各ストレージタスクについて、マイナーは「空間的時間証明」を生成して、サービスを提供し続けることを証明する必要があります。ブロックチェーンを読むことで、誰でもマイナーのパワーステートメントが正しいことを確認できます。

  • 変数:いつでも、鉱山労働者は新しいセクターとセクターの補足的な利害関係を追加することにより、新しいストレージを追加できます。これにより、鉱夫は提供できる力を変えることができます。

6.2.2電力会計と時空の証明

各∆Proofブロック ∆Proofはシステムパラメーターですについて、マイナーはネットワークに「時空証明」を提出する必要があります。ネットワーク内のほとんどの権限が有効であると信じている場合にのみ、都市管理によってブロックチェーンに追加されます。各ブロックで、各サークルノードは割り当てテーブル al l o c t ab l e を更新し、新しいストレージ割り当てを追加し、有効期限が削除され、欠落している証明レコードをマークします

マイナーMIのパワーは、割り当てテーブルを記録することで計算および検証できます。これらは2つの方法で実行できます。

  • 完全なノード検証:ノードに完全なブロックチェーンレコードがある場合、 MIに割り当てられた各「時空証明」が検証されている現在のブロックまで、設立ブロックからネットワークプロトコルを実行できます。

  • 簡単なストレージの確認:ライトクライアントが最新のブロックをブロードキャストするトラストソースにアクセスできると仮定します。現在の割り当てテーブル(2)のネットワーク内のノード(1)ノード(1)の記録からクライアントリクエストしください。このようにして、クライアントは「時間と空間の証明」の検証をネットワークに委任できます。

電力計算のセキュリティは、「時空証明」のセキュリティから得られます。このセットアップでは、投稿は、鉱夫が割り当てるストレージの量について嘘をつくことができないことを保証します。実際、彼らはポスト.setupを実行するのに時間がかかるため、ストレージスペースを超えるデータを保存できると主張することはできません。さらに、 Post.Proveはシリアルコンピューティングであり、迅速に並行して証明を生成することはできません。

6.2.3電力を使用してコンセンサスに到達します

現在の(および将来の)証明のコンセンサスプロトコルを拡張することにより、ファイルコインコンセンサスの複数の戦略を実装することを期待しています私たちは、ステークの証明契約の改善を予想しており、予想されるコンセンサスと呼ばれる以前の作業に基づいて構造を提案します[ 14 ]。私たちの戦略は、各ラウンドで1人またはそれ以上の鉱山労働者を選出することですそうすれば、選挙に勝つ確率は、各鉱夫によって割り当てられた貯蔵に比例します。

期待されるコンセンサス期待コンセンサスの基本的な直観は決定論的で予測不可能です。そして、各サイクルでリーダーの小さなコレクションを密かに選出します。予想される期待は、選択されたリーダーが各サイクルで1であることですが、一部のサイクルには0または多くのリーダーがいる可能性がありますリーダーは、新しいブロックを作成し、それらをブロードキャストすることにより、ブロックチェーンネットワークを拡張します。

各サイクルで、各ブロックチェーンは1つ以上のブロックを拡張します。リーダーがない期間、コントロールブロックがブロックチェーンに追加されます。チェーン内のブロックは直線的にソートすることができますが、データ構造は指示された非環式グラフです。 ECは確率コンセンサスです。各サイクルにより、以前のブロックよりも確実になり、最終的に十分な確実性が得られ、異なる履歴ブロックチェーンが表示される可能性は十分に小さいです。ほとんどの参加者がブロックチェーンに署名してブロックチェーンを拡張し、ブロックが属するチェーンの重量を増加させると、ブロックが確認されます。

各サイクルで鉱夫の選挙で、各鉱山労働者は、以前のプロトコル[15]、ホワイトペーパー[ 16]、およびアルゴリズム[17]を完了することに似たリーダーとして選択されているかどうかをチェックします。

定義6.1

次の条件が満たされている場合、瞬間にt miner miがリーダーです。

ここで、 RAND(T )は、時刻tブロックチェーンから抽出できるパブリックランダム変数であり、 Pt> IMIです任意のmの場合、lh(m )のサイズであることを考慮すると hは安全な暗号化ハッシュ関数であり、ここで、 (m)miはメッセージmmiの署名です

図13では、マイナー(ProveElect)とネットワークノード(VerifyElect)の間のプロトコルについて説明します。この選挙計画は、公平性、機密性、開放性の3つの属性を提供します。

  • 参加者ごとの公平性には、署名が決定論的であり、 trand(t)が固定されているため、選挙ごとに1つの裁判のみがあります。 Hが安全な暗号化ハッシュ関数であると仮定すると、h(mi)/2Lは(0、1)から均等に選択された実数でなければならないため、方程式の方程式はネットワーク内の鉱山労働者のパワーの一部に等しいpti/σjptjでなければなりません。この確率は電力市場では線形であるため、この可能性は、パワーの分割またはプーリングの場合に保持されますランダムバリューランド(t)は、時間tの前に不明であることに注意してください。

  • 機密性能力攻撃者は、署名を計算するためにMIが使用する秘密の鍵を所有していないため、これはデジタル署名の仮定を考慮して無視できます。

  • 公開可能:選択されたLeaderi∈LT、t、rand(t)、h(i)/2lを与えることにより、有効な検証者納得させることができます。前のポイントを考えると、有能な攻撃者は、秘密の鍵を獲得せずに証明を生成することはできません。

図13:予想されるConsensusprotocolのリーダー選挙


7      SmartContracts


Filecoinprovidestwobasicprimitivestotheendusers:GetandPut.Theseprimitivesallowclients tostore data and retrieve data from the markets at their preferred price. Whilethe primitives cover thedefaultusecasesforFilecoin,weenableformorecomplexoperationstobedesignedontopofGetand Put by supporting a deployment of smart contracts. Users can program newne-grained storage/retrieval requests that we classify as File Contracts aswell as generic Smart Contracts. We integrate a Contracts system (based on[18]) and a Bridge system to bring Filecoin storage in other blockchain, andviceversa, to bring other blockchains' functionalities inFilecoin.

スマート契約のweexpectaca pthoraは、Smart ContractDevelopersのコミュニティにForwardを拡張しています。

7.1    1ファイルコインスマートコントラクト

スマートコントラクトにより、 FileCoinユーザーは、Storage J/取得データをリクエストしてストレージプルーフを確認するためにトークンを使用するためのステートフルプログラムを作成することができます。ユーザーは、契約内のLedgerトリガー関数関数にトランザクションを送信することにより、スマートコントラクトと対話できます FileCoinの特定の運用市場運営、証拠の検証などをサポートするために、スマートコントラクトシステムを拡張しました

  • ファイル契約:ユーザーが提供するストレージサービスを条件付きでプログラムできるようにします。 (1)契約鉱山労働者:顧客市場に参加せずにサービスを提供するために事前に鉱夫を指定することができます(2)支払い戦略:顧客は鉱山労働者にさまざまな報酬戦略を設計できます (3)チケットサービス:契約により、マイナーはユーザーに代わってトークンとストレージ/検索の支払いを保存することができます(4)より複雑な運用:顧客は契約を作成してデータ更新を実行できます。

  • スマートコントラクト:ユーザーは、プログラムを他のシステム(Ethereum [ 18]など)にトランザクションで関連付けることができ、ストレージの使用に直接依存していません。次のアプリケーションを予測しています。分散型ネーミングサービス、資産追跡、販売前のプラットフォームです。

7.2     2他のシステムとの統合

ブリッジは、異なるブロックチェーンを接続するように設計されたツールです。現在、処理中に、ファイルコインストレージを他のブロックチェーンベースのプラットフォームに持ち込むと同時に、他のプラットフォームの機能をファイルコインにもたらすことができるように、クロスチェーンの相互作用をサポートする予定です

  • Filecoinは他のプラットフォームに入ります。Bitcoin[19]、Zcash [ 20 ]、特にEthereum [ 18]およびTezosなどの他のブロックチェーンシステムでは、開発者がスマートコントラクトを書くことができます。ただし、これらのプラットフォームは、ストレージ容量が非常に少なく、非常に高いコストしか提供していません。これらのプラットフォームにストレージと検索のサポートを提供するために、橋を提供する予定です。 IPFは、いくつかのスマートコントラクト(およびプロトコルトークン)のコンテンツを参照および配布する方法として使用されていることに気付きましFilecoinへの追加のサポートにより、これらのシステムは、Filecoinトークンを交換する方法でIPFSストレージコンテンツを確保できます。

  • 他のプラットフォームがFilecoinを入力します。他のブロックチェーンサービスを接続するために、Filecoinがブリッジを提供する予定ですたとえば、 ZCASHとの統合は、プライバシーデータのストレージリクエストの送信をサポートします。

8        今後の仕事


この作業は、ファイルコインネットワークの建設のための明確でまとまりのあるパスを提供します。ただし、この作業は、分散型ストレージシステムに関する将来の研究の出発点になると考えています。これで、将来の作業の3つのカテゴリを特定して埋めます。 This includes the work that has been done just waiting for description and release, the open-ended questions that improve the current protocol, and the formalization of the protocol.

8.1     1正在进行的工作

以下主题代表正在进行的工作。

  • 每个块中的Filecoin状态树的规范。

  • Filecoin及其组件的详细绩效估计和基准。

  • 完全可实现的Filecoin协议规范。

  • 赞助检索票务模型,其中通过分配每个可持票花费的令牌,任何客户端C1可以赞助另一个客户端C2的下载。

  • 分层共识协议,其中Filecoin子网可以在临时或永久分区进行分区并继续处理事务。

  • 使用SNARK/STARK增量区块链快照。

  • FileCoin-Ethereum合约接口和协议。

  • 使用编织(Braid?)进行区块链归档和区块链间冲压。

  • 只有在区块链解决冲突的时候才发布"时空证明”。

  • 正式证明实现了FilecoinDSN和新型存储证明。

8.2    2开放式问题

作为一个整体,有一些公开的问题,其答案有可能可以大大改善网络。尽管事实上,在正式启动之前并不是必须必须解决的问题。

  • 一个更好的原始的"复制证明“密封功能,理想情况下是O n 解码不是On m ))可公开验证,无需SNARK/ STARK。

  • “复制证明”功能的一个更好的原语,可以公开验证和透明没有SNARK/STARK。

  • 一个透明,可公开验证的可检索证明或其他存储证明。

  • 在检索市场中进行检索的新策略例如,基于概率支付,零知识条件支付)

  • “预期共识”更好的秘密Leader选举,在每个周期,只有一位当选Leader。

  • 更好的可信赖的SNARK设置方案,允许增加扩展公共参数(可以运行MPC序列的方案,其中每个附加的MPC严格降低故障概率,并且每个MPC的输出可用于系统)

8..3     3证明和正式的验证

由于证明和正式验证的明确价值,我们计划证明Filecoin网络的许多属性,并在未来几个月和几年内开发正式验证的协议规范。几个证明正在进行中还有些正在思考中。但注意,要证明Filecoin的许多属性如伸缩,离线)将是艰难的,长期的工作。

  • 预期共识和变体的正确性证明。

  • 功率故障容错正确性的证明,异步1/2不可能导致分叉。

  • 在通用组合框架中制定FilecoinDSN ,描述Get,PutManage作为理想的功能,并证明我们的实现。

  • 自动自愈保证的正式模型和证明。

  • 正式验证协议描述(例如TLA +或Verdi)

  • 正式验证实现例如Verdi)。

  • Filecoin激励的游戏理论分析。

謝辞


这项工作是Protocol Labs团队中多个人的累积努力,如果没有实验室的合作者和顾问的帮助、评论和审查这是不可能完成的。

Juan Benet2014年写了原始的Filecoin皮书,为这项工作奠定了基础。他和尼古拉·格雷科(Nicola Greco)开发了新的协议,并与提供了有用的贡献,评论,审查意见的团队其他人合作编写了这份白皮书。

特别是大卫“大卫” Dalrymple提出了订单范例和其他想法, Matt Zumwalt改进了在这篇论文中的结构,伊万·米亚佐诺(Evan Miyazono)创建了插图,并完成了这篇论文,在设计协议时, Jeromy Johnson提出了深刻的见解, Steven Allen提供了深刻的问题和清晰的说明。

我们也感谢所有的合作者和顾问进行有用的对话;尤其是Andrew MillerEli Ben-Sasson。






<<:  お知らせ | Qitmeer Medina Network 2.0が正式に開始されました

>>:  Bitpush ビットコインは1万ドルを突破したいが、米国株式市場からのさらなる支援が必要 -

推薦する

エストニアのLHV銀行がブロックチェーン部門を設立

ビットコイン業界は最近いくつかの金融大手の注目を集めているが、ビットコインとブロックチェーンを最初に...

詳細 | ETH2.0: PoSステーキングはETHに大きな影響を与える

Ethereum ストレージ コントラクトのリリースにより、ETH2.0 への関心が高まっています。...

四川省康定市の違法鉱山が是正される中、採掘は危険にさらされているのか?

今日、チャットのスクリーンショットがさまざまなWeChatグループチャットや友人間で狂ったように転送...

ランサムウェアウイルスはますます貪欲になってきています。特に「金融スポンサー」をターゲットにし、多額のビットコインを要求しています。

9月11日、タイの病院や企業がハッカーによるランサムウェア攻撃を受け、コンピューターシステムとデー...

Bitmainの第2世代7nmチップBM1397を理解する

2018 年 9 月に最初の 7nm チップを発売して以来、当社は自らに挑戦し、自らを超え、テクノ...

公安部は「百葉チェーン」は詐欺であり、「ブロックチェーン」「仮想通貨」などについては理性的に考えるべきだと警告している。

8月13日、ウルムチ市インターネット警察巡回法執行部は「公安部注意喚起:「百葉チェーン」は詐欺です...

IPFS のより深い理解 (パート 1): 初心者から上級者までを対象とした完全ガイド

この記事は、「IPFS の詳細な理解」と題された一連の記事の最初のものです。このシリーズは、IPFS...

個人投資家向け運用ガイド: イーサリアム合併前にエアドロップを最大限に獲得する方法

共同創設者兼COO 原文翻訳: wzp&FYJ、BlockBeatsこの記事は、CoinGe...

またまた大物ショット!米国務省はブロックチェーンと分散型台帳の開発促進を推奨

最近、米国国務省とASEANは共同で「アメリカン・イノベーション・ロードショー」イベントを立ち上げた...

Google トレンド分析: ビットコイン、マイニング、イーサリアムが 2017 年上半期の 3 大人気ワードに

Googleは、今年上半期にロシア居住者が検索した暗号通貨関連のキーワードを分析した。ビットコイン、...

沈涛莱:ブラックスワンビットフィネックスは通貨価格を急落、短期的には様子見

北京時間8月3日早朝、米ドル建てビットコイン取引プラットフォーム最大手のBitfinexは、ウェブサ...

新たな詐欺に注意: 偽の QR コード ジェネレーターが 46,000 ドルを盗む

これまでに、9つの悪質なQRコード生成サイトがユーザーから46,000ドルを盗んでいます。ビデオリン...

未来から未来を見つめるGTA Gene Chainがブロックチェーン3.0の新時代を切り開く

4月30日、GTA中国コミュニティが主催した「GTA遺伝子チェーンがブロックチェーン3.0(ブロック...

2016年: ブロックチェーンICOがベンチャーキャピタルモデルを変えた

クレイジーコメント:2016年、ICOプロジェクトが次々と登場し、暗号通貨分野における主な資金調達方...