ChainLink(チェーンリンク)のホワイトペーパーの翻訳 #5

4. ChainLinkの非中央集権化のアプローチ

悪意的なノードに対処するための補完的なアプローチについて話をする。(1)データソースの分散化。(2)オラクルの分散化。(3) 信頼のおけるハードウェアの利用. このセクションでは、前者の2点について詳しく話をする。ハードウェアの件についてはセクション6で話をする。

4.1データソースの分散化

Srcの中に誤ったデータが入っている問題を防ぐためのソースの分散化は、複数のソースからデータを獲得することである。つまり、データソースの分散化である。たとえば、Src1, Src2,…,Src k,からソースを獲得し、レスポンスをa1 ,a2 ,…,a kを獲得し、単一の回答であるA = agg (a1,a2,…,ak)という形でアグリゲーションする。

ORACLEは、複数の手法のうちから、いずれかを選んでこれを実行する。一つの方法は、多数決である。多数決の結果、正しいと判断された場合、aのアグゲートされた値を返して、間違っている場合はエラーを返す。このケースでは、(> k/2)の値で多数をとったデータを正しいと判断して処理する。そして、ORACLEは、正しい値Aを返す。株価のデータのやりとりなどでは、時間によって値が動くことはかなり問題となる。

4.2. オラクルの分散化

データソースの分散化と同様に、オラクルも分散システム化する必要がある。{O1,O2,…,On}のような形で、単一ノードではなく複数のノードが分散化して稼働している状態を目指している。

各オラクルのOiコントラクトは、

Figure3:リクエストは、オラクルとデータソースの両者をまたいで分散化される。上記の図は、2段階に分散化されている状態を表してる図である。

Oiは、そのデータソースからのリスポンスをアグリゲートし、Req のクエリにユニークな回答Aiを算出する。このオラクルのうちいくつかは誤っているかもしれない。オラクルがアグリゲーションするA1,A2,…,Anの回答は、単一の値であるAに信頼のある方法によって回答集約いなければならない。では、悪意的なノードがいることを想定した環境では、Chainlinkでは、どのようにこのアグリゲーションを正常に機能させるのか?

初期のソリューション:で我々が考えているm、in-contract アグリーゲーションと呼んでいるものである。

CHAINLINK-SCは、Chainlinkのオンチェーン領域を表示し、それ自体が、オラクルのレスポンスをアグリゲーションする。別の言い方をすれば、CHAINLINK-SCは、他のAggに対してA=Agg(A1,A2,…,An)の計算を行い、USER-SCに結果Aを返す。

このアプローチは、nが小さい場合に実用的であり、いくつかのユニークな利点がある

・概念的にシンプルであること:オラクルが分散化されているにも関わらず、単一のエンタティであるCHAINLINK-SCは、Aggを実行することによって、アグリゲーションを実行できる。

・信頼性:CHAINLINKのコードは、公開されているため、その正しい振る舞いは、認証される(CHAINLINK-SCのコードは比較的小さい)。加えて、CHAINLINK-SCの実行は、オンチェーン上で視認可能である。故に、ユーザー、たとえば、USER-SCの作成者は、CHAINLINK-SCに置いて、高いレベルの信頼を構築することができる。

・柔軟性:CHAINLINK-SCは、平均化など、もっとも必要とされているアグリゲーション機能のAggを実行することができる。

単純であるが故、このアプローチは、フリーローディングの問題を引き起こす。オラクルOzが、別のオラクルOiのレスポンスであるAiを認識することができ、コピーすることができる。この手法では、Ozは、データソースのクエリにかかる支払いが不要になる。フリーローディングの問題は、データソースの多様化を蝕み、オラクルが迅速にレスポンスを回答する意欲をそぐことによって、ネットワーク全体のセキュリティレベルを引き下げる。我々は、この問題に対して、コミット&リビールスキームという、よく知られた解決策を適用する。第1のラウンドでは、オラクルとCHAINLINK-SCは、それらのレスポンスに対して暗号化されたコミットメントを送る。

CHAINLINK-SCが、レスポンスの定足数を受け取ったのち、オラクルらが受け取ったレスポンスを開示するための第2ラウンドを開始しする。アルゴリズム1は、3f+1ノードの可用性を保証する単純な順次的レスポンスである。これは、コミット&リビールスキームを使い、フリーローディングを防ぐ。オラクルのレスポンスは、ディコミットされるため、全てのコミットメントが完了したのちに、フリーローダーの可能性のあるプレイヤーに晒されることになるため、フリーローダーは抑止できる。オンチェーンのプロトコルは、ブロックタイムをレバレッジして、同期するためのプロトコルを支援する。しかし、ChainLinkでは、オラクルのノードは、レスポンスタイムは可変的であり、ディコミットメントの時間も、イーサリウム上の異なるガスプライスを使って処理されるため、可変的である。であるから、可能な限り最速のレスポンス率を保証するために、Alg1は、非同期のプロトコルとしてデザインされている。ここに、コミットr(A)は、値Aとその目撃者rを示し、SIDは、正当なセッションIDを表示する。

そのプロトコルは、全てのプレイヤーの認証されたチャネルを想定する。これで、Alg1の役割は成功裏に完了する。全体として、3f+1の与えられたノード環境において、大半のfは間違っており、少なくとも2f+1は、Step4でコミットメントを送る。それらのコミットメントの中で、最大fが誤ったノードからのものになる可能性があるため、少なくともf+1は、正常なノードでなければならない。全てのそのようなコミットメンは、結果的にディコミットされる、。加えて、Aが、Alg1に正しく処理されることは容易である。単一の値Aにおけf+1のディコミットメントは、少なくとも一つは、正常なノードから来なければならない。

対照的に、Alg1を通じたアグリゲーションは、短期に置いて、Chain-Linkにサポートされるメインアプローチになるだろう。提案された初期のインプリは、より高度な要素を含み、そのアルゴリズムの並列化した変異の存在も含む。より長期の提案では、より複雑なプロトコルであるOCA(オフチェーンアグリゲーション)をAppendix Aで表記しているアルゴリズム2と3で特定している。OCAというオフチェーンアグリゲーションプロトコルは、オンチェーントランザクションコストを最小化する。そのプロトコルは、オラクルへの支払いも含めており、当然、フリーローダーに対する抑止も含めている。

中期戦略:オフチェーンアグリゲーション

In-contractアグリゲーションは、一つの不利な点を生み出している。それは費用である。オンチェーン上のメッセージのやりとりの費用である。パーミッションブロックチェーンでは、このオーバーヘッド分は許容範囲になるだろう。

パーミッションレスブロックチェーンでは、イーサリウムに払うオンチェーントランザクション手数料は、nの値が増えるほど、その費用は恐ろしく高額になる。もっともコスパの良いアプローチは、オフチェーンで、オラクルのレスポンスのアグリゲーションを行い、CHAINLINK-SCAに単一メッセージを送る形である。我々は、このアプローチのディプロイを中長期のソリューションとして提案しており、off-chain aggegationと名付けている。

値Aのコンセンサスを得るための課題は、ブロックチェーンのコンセンサスの課題と同じである。特定されたオラクルの中で、値Aを計算するためのBFTコンセンサスアルゴリズムを実行する必要がある。ブロックチェーンにおいては、コンセンサスを取れたのち、各ノードは同じ値を保存することになるのだが、Chainlinkの場合は、少し異なる。CHAINLINK-SC(それからUSER-SC)が、コンセンサスプロトコルに参加することなしに、また、複数のオラクルからの回答を受ける必要性がなく、A=Agg(A1,A2,…,An)の集計回答を獲得する。ただし、フリーローディングの問題はここにまだ残されている状態である。

ChainLinkシステムは、thresh-old signaturesを含む単純なプロトコルを提案する。色々な著名方法が検討可能だが、Schnorr signatureを採用する。このアプローチでは、オラクルが、集合的な公開鍵であるpkをもち、また、それに対応する非公開鍵skをもち、O1,O2,…,On in a(t,n)というthreshold mannerで保持する。このマナーでは、ノードOiが、それぞれ対応するパブリックキーとプライベートキーをもつ。


Oiは、σi=Sig sk i [Ai]という部分的な著名を生成し、これはpk i.に対応する著名になる。Σ = Sig sk [A] という単一の正当な集合的著名をtのオラクルが値Aを証明するために生成する。しかし、t−1 のオラクルは、正当な著名を作ることができない。だから、Σは、少なくともtオラクルの部分的な著名を表すことになるのである。

スレッシュホールド著名は、個別のノードからの独立した著名である正当な一連のtの集合体としてのΣによってのみ認識することができる。であるから、いわゆる一般的なネイティブアプローチによるセキュリティをスレッシュホールド著名は使っているのである。しかし、これによって、オンチェーンのパフォーマンスは劇的によくなる。tの分だけ、Σを認証するためのデータ量とコストを小さくすることができる。この環境であれば、Σの計算をその部分的著名が可能にするまで、オラクルは、部分的著名の生成とブロードキャストを行うことができる。

しかし、ここに再び、フリーローディングの問題が生じる。しかるに、オラクルは、別のオラクルのデータをコピーしたりするのではなく、誠実に彼らの指定されたデータソースからデータを受けとる必要がある。我々の解決策は、金融のメカニズムを含む。オラクルに報酬を与えるPROVIDERは、オラクルが、部分著名のためにコピーではなくオリジナルのソースからデータを取得した場合のみに報酬を与えるルールにする。

分散環境では、どのオラクルが支払いを受けるとるべきかの決定が厄介である。オラクル同士は、オフチェーンでコミュニケーションをとることができ、我々は、CHAINLINK-SCという、レスポンスを受け取る単一の当局のエンタティは持たないため、参加いているオラクルの中から直接支払いを受けるべきオラクルを特定することができない。

結果的に、PROVIDERは、オラクルたち自身から誤った振る舞いの証拠を獲得する必要があり、そのいくつかは信頼性に欠くかもしれない。故に、PROVIDERがオラクルに与える報酬メカニズムにおいては、フリーローダーに報酬が行かないようにするためのコンセンサスメカニズムが必要なのである。

ホワイトペーパーの翻訳はここまです。続きを読まれたい方は、原文の英語になりますが、こちらをご覧ください。

関連記事