OrchidOrchid
Open Menu
Close Menu
  • ホーム
  • 仕組み
  • 概要
  • ブログ
  • お問い合わせ
  • 日本語

ブログ

オーキッドのネットワーク: ランダム選 択 + ステーク加重

オーキッドのネットワーク: ランダム選 択 + ステーク加重

2019年 10月 9日

ビットコイン、イーサリアム、および他のほとんどの分散型システムと同様に、オーキッドはオープンソースソフトウェアから構築されたオープンネットワークとして設計されています。誰でもオーキッドノードソフトウェアをダウンロードして、リソースが許す限り多くのノードを実行できます。オープンな分散型システムでのシステム攻撃に対する実行可能な防御は、最終的に経済性です。システムは、攻撃者の攻撃コストがその攻撃者にとっての利益を上回るか、それとも実行するにはコストがかかりすぎる程度まで安全です。分散型システムは、これらのセキュリティパラメータを使用してネットワークを保護し、マイナーや参加者が見返りに稼ぐことができるインセンティブを提供します。現在、ほとんどのオープンブロックチェーンは次の 2 つのモデルのいずれかを使用しています。その一つはプルーフオブワークですが、これには電力が必要です。もう一つはプルーフオブステークで、これには調整作業とガバナンスが必要です。オーキッドのネットワークは、ステーク加重と呼ばれるプルーフオブステークの派生物を使用して、取引を決済するためのイーサリアムのコンセンサスと組み合わせたピアツーピア帯域幅契約を認証することが期待されています。

これは、帯域幅プロバイダーがオーキッドのネットワークで商業用のオーキッドの暗号通貨 (OXT) をタイムロックされたデポジットにステーキングし、それによってアイデンティティを証明し、ステークデポジットの規模に比例したトラフィックを受信することを意味します。私たちは最初に、当初のホワイトペーパーでメダリオンとして説明されているプルーフオブワークの使用を検討した後、ステーク加重を使用するように設計を進化させました。私たちがプルーフオブワークのシステムから離れたのは以下の理由によるものです。

  • プルーフオブワークを使用すると、エンドユーザーに追加の計算負荷が発生する
  • プルーフオブワークに対する攻撃コストは、レンタル市場を想定しても、遅延を伴うステーク加重よりはるかに低い
  • 一般的なコンピューティングのレンタル市場はすでに存在しており、その流動性は、将来の OXT ステークデポジットレンタル市場で予想される流動性をはるかに上回っている

オーキッドのネットワーク

オーキッドのネットワークは、イーサリアムブロックチェーンに保存されるデータ構造のセットとして設計されており、クライアントが帯域幅販売者のノードを効率的に選択できるようにします。オーキッドのネットワークは基本的に、イーサリアムネットワーク上でオーキッド固有のシンプルなオーバーレイを形成します。

大まかに言って、オーキッドのネットワークは次の主要な操作を提供することが期待されています。

  • 帯域幅プロバイダーがステーキングを介してノードを登録する手段
  • 帯域幅プロバイダーがカスタムサービスとメタデータを登録する方法
  • クライアントがカスタムサービスとメタデータのノードを照会する手段
  • ステークに比例する確率でランダムノードを選択する方法

ステーク加重は、預け入れられたステーク全体のサイズに比例してオーキッドのネットワークの経済的セキュリティを拡大できるように使用されています。ステーク加重選択プロセス自体は、オンチェーンのツリーデータ構造を使用して実装されます。これは、クライアントがノードの選択をスケーラブルかつ信頼性不要の方法で他のノードにアウトソースできることを目的としており、軽量のクライアントが完全なノードディレクトリをダウンロード、保存または処理する必要性を回避します。

ノードディレクトリツリー

スキャン関数を効率的に実装するために、オンチェーンのバイナリ加重ツリーデータ構造を使用します。ツリー内の各ノードはステークエントリであることが期待されています。ステークエントリには、ツリーポインタと左右のサブツリーのステーク小計に加えて、ステーキー、金額、遅延が保存されます。この構造は実質的に、すべてのステークデポジット上にプレフィックスサムのツリーを形成し、各ノードでの単純な降下決定で特定のランダムポイントを含むサブツリー(またはノード間)を見つけられるようにします。指定されたランダムポイントを含む正確なノードを見つけるために必要なのはステップの対数のみです。

ノードメタデータレジストリ

ノードメタデータレジストリによって、プロバイダーがノードにメタデータを「タグ付け」できると期待されています。帯域幅プロバイダーはこれを使用して、ブロックチェーン上のノードに関連付けられたカスタムメタデータを保存し、サービスを宣伝できます。メタデータレジストリは、シンプルな手段を将来カスタム拡張できるように、汎用的な構造となっています。これは、ノードオペレーターが新しいサービスを宣伝できるようにするためのもので、クライアントはコードを更新せずに選択できます。

地理など、特定の基準に基づいたサービスのフィルタリングに関心のあるオーキッドアプリユーザーは、タグを使用してそうすることができると期待されています。タグはプロバイダーによって追加されたメタデータの一部であるため、最終的にオーキッドアプリはプロバイダーが正直に行動しているかどうかを確認する必要があります。多くの場合、チェックは自動化されると予想しています。

メタデータタグの例

  • ジオロケーション。プロバイダーは、クライアントが地域に基づいた選別を行えるように、特定の地域でサービスを宣伝できることが期待されます(一般的な VPN サービスに類似)。オーキッドアプリは、公開の IP データベースを使用して場所を確認します。
  • レイテンシ(待ち時間)。場合によっては、ユーザーはランダムに選択されたノードよりもレイテンシの短い接続を望みます。オーキッドアプリは、同じ公開 IP データベースを使用して、より短い距離のルートを見つけることにより、「推測とチェック」戦略を採用するように設計されています。最終的に、ルートが構築されたら実際のレイテンシを測定する必要があります。レイテンシがターゲットのしきい値よりも高い場合、別の新しいルートをサンプリングする必要があると予想されます。オーキッドルートとナノペイメントの軽量な性質により、高速ルート設定とパラレルルートテストが可能になると予想されています。
  • 価格。プロバイダーは帯域幅の価格を設定すると予想されるため、クライアントは価格でフィルタリングできます。オーキッドアプリは、ユーザーの残高と、予算がどのくらいの期間持つはずかを表す目標に基づいて、現在の支出上限を決定する予算アルゴリズムを使用します。

キュレーションリスト

オーキッドアプリは、任意の出口ノードまたはリレーノードのリストに基づいてフィルタリングするようにも設計されています。これにより、実行可能なノードはカスタムサブセットに限定されます。公式のオーキッドアプリの初期リリースでは、この機能によって信頼できる VPN パートナーで構成されるデフォルトの出口ノードリストを使用し、悪意のある出口ノードからの特定の種類の攻撃 (SSL ダウングレード攻撃など) を防ぐことが期待されています。カスタマイズされたオーキッドクライアントは独自のリストを使用できますが、最終的には、広く知られたサードパーティがホワイトリストのキュレーターとして登場することが期待されています。キュレーションリストは、ステーキングによって提供される経済的インセンティブベースの信頼を、外部の評判による信頼で補完するための簡単な手段です。

オーキッドで帯域幅を販売する方法

オーキッドマーケットは、分散型アーキテクチャを使用することで、トークン化されたピアツーピアの商用ナノトランザクションを介して、ユーザーを帯域幅プロバイダーにつなげます。

Orchid bandwidth process

プロバイダーは帯域幅を販売するために、イーサリアムブロックチェーンにノードを登録し、クライアントはイーサリアムスマートコントラクトへの呼び出しを通じてノードを選択します。オーキッドアプリを実行しているユーザーは、プロキシチェーン接続を開始し、1 つ以上のリレーノードを経由して、出口ノードから目的地に接続します。クライアントは、確率的ナノペイメントを使用してパケットを転送する手数料を帯域幅プロバイダーに支払うと期待されています。販売者は、スマートコントラクトのファンクションコールを通じて、オーキッドトークン (OXT) と引き換えられるナノペイメントの当選チケットを受け取る場合があります。

オーキッドネットワークにノードを登録するための要件は、OXT をステーキングすることです。ステークのサイズは、ステーク加重選択にとって非常に重要です。ステーキングされる OXT が多いほど、プロバイダーがオーキッドアプリユーザーからトラフィックのリクエストを受け取る確率が高くなります。

ノードオペレーターとして稼ぐには 3 つのステップがあると予想されます。

  • OXT の取得。取引所から OXT トークンを購入するか、転送を通じてウォレットで OXT を受け取るか、ノードプロバイダーとして登録して OXT を獲得します。
  • OXT のステーキング。OXT トークンをノードディレクトリコントラクトにデポジットします
  • 提供する。オーキッドアプリユーザーにサービスを販売します
  • 支払い。プロバイダーが制御するウォレットで、サービスの対価として OXT による支払いを受け取ります

ユーザーステークデポジット

オーキッドアプリユーザーがネットワークに参加するには、帯域幅と引き換えにプロバイダーにチケットを発行するために、ナノペイメントスマートコントラクトに有効なデポジットが必要です。このデポジットのごく一部が、ユーザーのインセンティブがネットワーク全体のインセンティブと一致するように、ユーザーの「ステーク」としてエスクローに保持されます。

ノードの選択方法

アプリは、ランダムな相対ステーク加重線形選択と、それに続く 2 次制 約フィルタリングによる 2 段階プロセスを使用して、プロキシチェーンのノードを選択すると期待されています。第 1 段階の線形選択は、ノードディレクトリツリーのスキャン関数によって実行されるように設計されています。アプリはローカルにランダムなポイントを生成し、それをスキャンの単一引数として渡します。この引数は、ノードディレクトリツリーを下っていきます。この検索は、ステークセグメントが選択されたランダムポイントと交差する単一かつ一意のリーフ(またはノード間)で終了します。

スマートコントラクトを使用してメインノードのスキャン関数を実装することにより、この選択プロセスは容易にサーバーノードに外部委託できます。クライアントは 1 つまたは複数のスキャン呼び出しを要求します。リモートサーバーノードが各スキャンをローカルで実行し、実行トレースの簡単な証拠を送り返します。

線形の相対的なステークウェイティングに基づいて 1 つ以上のノードを選択した後、出口のロケーション、レイテンシ (ping)、価格、カスタムノードメタデータタグ、任意のホワイトリストなどの追加基準でクライアントがフィルターできるように設計されています。

ステークの引き出し遅延

オーキッドのステークデポジットは意図的な引き出し遅延制限の対象であるため、すぐに引き出すことはできません。引き出しの遅延は、重要なセキュリティ制限です。それは、オーキッドアプリの接続リクエストの大部分を取得しようとする攻撃者にとって障害となり、特に、システムの乗っ取り攻撃の防止に役立ちます。これは、攻撃者がデポジットステークの大部分を獲得し、クライアントを悪意のあるサーバーに誘導する攻撃です。悪意のあるサーバーは、意図的に貧弱な接続を提供し、トラフィックをログに記録して報告するか、アクティブな接続攻撃 (SSL ダウングレードなど) を試みます。

システミックテイクオーバー攻撃に対する主な防御策は、OXT ステーク全体の大部分を取得しロックアップするコストを非常に高くすることだと考えています。引き出しの遅延がなければ、この障壁は単に十分な流動性にアクセスできないという問題になり、実際の攻撃の純コストはわずかです。

十分に長い引き出し遅延は、攻撃者が最終的に攻撃を終了し、大規模な OXT ポジションを売却するまでに、追加の損失を発生させる可能性を高めます。その後、アプリソフトウェアは、引き出しの遅延に基づいてフィルタリングし、遅延がアプリのしきい値を満たしていないステークデポジットを無視します。オーキッドの最初のアプリのソフトウェアは、3 か月以上の引き出し遅延を受け入れますが、これを柔軟なパラメータにすることにより、将来のアプリ更新で、ハードフォーク同等物や関連する困難な調整をすることなく、このパラメータを変更できます。

結論

ステークウェイトアプローチを採用して攻撃のインセンティブをなくし、オーキッドトークンに裏付けられたインセンティブのあるマーケットプレイスを作成することで、私たちは最終目標の達成に一歩近づきました。私たちの最終目標は、インターネットを世界中のユーザーにとってより開かれた包括的なスペースにすることです。オーキッドを使用してリソースを購入または販売する場合、オーキッドネットワークは、地理的な場所に関係なく、ユーザーにインターネットへのプライベートで安全なアクセスを提供するように設計されています。

オーキッドの最新ニ

ュースを常に入手するには、ニュースレターに登録し、今年後半に開始されるネットワークを一番にお試しください。

Webサイト: www.orchid.com

Twitter: https://twitter.com/OrchidProtocol

Linkedin: https://www.linkedin.com/company/orchidprotocol/

Telegram (お知らせ): https://t.me/officialorchidlabs

Telegram (コミュニティ): https://t.me/OrchidOfficial

Facebook: https://www.facebook.com/OrchidProtocol/

Medium: https://medium.com/orchid-labs

Github: https://github.com/OrchidTechnologies

Reddit: https://www.reddit.com/r/orchid