DeFiスマートコントラクトのためのデータ品質

Chainlink Japan
Chainlink Community
38 min readFeb 26, 2021

本記事はChainlinkオフィシャルブログに公開された“Data Quality for DeFi Smart Contracts”の和訳です。

Chainlink公式より許可をいただいた上で記事を翻訳・公開しています。

分散型金融(DeFi)アプリケーションのエコシステムとブロックチェーンオラクルによって確保された価値は、互いに成功と成長を支え合いながら拡大しています。DeFiによって確保された価値が急速なペースで成長し続ける中、この革命的な新しい分散型金融エコシステムがより高いレベルのセキュリティと信頼性をユーザーに保証することが重要になってきています。

ブロックチェーンの「オラクル問題」は多くの記事で詳細に検討されているように、かなりよく知られています。しかし、オラクルによって提供される「データ品質」の話題はまだほとんど知られておらず、誤解されています。この誤解は、オラクルは外部データをオンチェーンで転送し、高品質なデータを生成するために使用されるものであるとの思い込みに根ざしています。セキュアなオラクルソリューションを研究・構築してきた私たちの経験では、ブロックチェーンオラクルは、データをオンチェーンで転送し、操作に対してデータを堅牢にするために設計されており、データそのものを生成するために設計されているわけではありません。

これらの問題(データ配信対データ品質)の分離は、DeFiで最も使用されているオラクルであり、Ethereumの分散型デリバティブ市場の90%以上を動かしているChainlinkの価格参照データを動力源とする分散型オラクルネットワークのアーキテクチャに適用されています。これらのオラクルネットワークがライブアプリケーションに高品質のデータを提供した成功を踏まえ、データ品質の問題を解決するための5つの重要なコンポーネントを特定しました。

  1. オラクル ノードがプレミアム データ プロバイダに接続して、ユーザーのコントラクトが最高品質のデータにアクセスできるようにします。これにより、すべてのノードがAPIキーを安全に保存し、有料サブスクリプションのアカウントログインを管理できるようにするために、オラクルプロトコルにパスワードとクレデンシャル管理機能を持たせる必要があります。
  2. ノードは、正確な価格データの生成に特化した高品質のオフチェーンデータプロバイダーから価格データを取得します。オラクルのメカニズムを使用して、生のデータフィードのコレクションからグローバルな市場価格を生成することは非常に困難であり、暗号通貨市場では珍しくない急激なボリュームシフトやデータの異常値など、多くの攻撃の対象にオラクルを晒します。
  3. オラクルが提供するセキュリティと信頼性の保証の積極的な一部としての分散化の組み込み。複数の独立したノードから集約し、オラクルのメカニズムが操作に強く、コントラクトにデータを配信する際に利用可能性が高いことを保証します。品質を犠牲にすることなく複数の高品質なデータプロバイダからデータソースを提供し、データソースレベルにさらなる分散化をもたらします。
  4. 各ノードの現在および過去のパフォーマンスと分散化されたオラクルネットワーク全体へのオンチェーンの洞察を提供することで、ユーザーと開発者の両方がオラクルメカニズムを設計する際に、情報に基づいた意思決定を行う能力を与えるシステムを選ぶこと。隠れたリスクを最小限に抑えるために、隠蔽性のあるアプローチによるセキュリティを避け、可能な限り多くの人が潜在的な問題を早期に発見できるようにします。
  5. 単一の交換データソースを使用したり、安全なオラクルソリューションからの高品質なデータを、安全性の低いオラクルソリューションからの低品質なデータで希釈したりするような大きなリスクを回避する。品質管理基準のない分散化は、コントラクトをより複雑でより大きな攻撃対象にさらすことになり、高品質なオラクルソリューションを低下させるという意図しない結果につながることがよくあります。

データ品質を確保する上で重要なこれらの機能のそれぞれをさらに発展させるために、安全な分散型オラクルネットワークの理想的な構成、Chainlinkの広範な柔軟性を適切に活用して高品質なデータを生成する方法、価格オラクルネットワークを設計する際に回避すべき大きなデータソーシングリスクについて検討しています。

安全な分散型オラクルネットワークの構成

オラクルとは、ブロックチェーンと外界との橋渡し役となるミドルウェアのことです。オラクルは、スマートコントラクトがブロックチェーンに保存されていない情報を消費し、現実世界の日常的なイベントを外部から認識することを可能にします。この外部との接続性により、スマートコントラクトが書き込めるイベントの数が指数関数的に増加し、開発者はより幅広い市場でより多くの価値を獲得できるようになります。スマートコントラクトのコアテナントである耐タンパー性、不変性、可用性を維持するためにセキュアにしなければならない新たな攻撃領域が、接続性の向上に伴い現れてきます。

分散型オラクルネットワークは、オンチェーン環境とオフチェーン環境を接続するためのセキュアなミドルウェアであり、ユーザーが外部接続された 数十億ドル以上のユーザーファンドを持つスマートコントラクトを信頼するために必要なセキュリティと信頼性の保証を構築するためのフレームワークを提供します。オラクルをブロックチェーンと同じセキュリティと信頼性の基準に保持していなければ、たとえコントラクトコード自体に欠陥がなくても、スマートコントラクト全体が危険にさらされることになります。

Chainlinkの価格参照データは、Ethereumエコシステムの中で最大のオンチェーン価格データのセットを提供する分散型オラクルネットワークのコレクションであり、ますます多くの主要なDeFiアプリケーションによって頼りにされています。これらの価格オラクルネットワークの設計パターンは、検証可能な分散化アプローチによるセキュリティに準拠し、ユーザーに最大限のセキュリティをもたらすために、最高のデータ品質のプラクティスに準拠しています。ここでは、データ品質を確保したいと考えているすべての分散型オラクルネットワークに適用すべき、Chainlink の価格参照データ全体に実装されている 4 つの主要な機能を紹介します。

プレミアムデータプロバイダによる高品質なデータ

ブロックチェーンのハッシュのマイニングは相当に不変な操作ですが、実際に何億ドルもの価値を確保するために信頼できるほど高品質な業界固有のデータを生成することは、誰もが信頼できる作業ではありません。生データのコレクションから高品質のデータを生成するためにオラクルのメカニズムを使用しようとするよりも、大規模なチームとフルスタックインフラストラクチャを持ち、特定の業界向けに高品質のデータを生成することに唯一の焦点を当てている尊敬されるデータアグリゲータ企業から直接データをソースする方が、開発者にとっては良い場合が多いのです。

高品質のプロプライエタリなデータを生成することは資本集約的であり、無料ではなく、アクセスするためには法的拘束力のある契約とクレデンシャルが必要です。ノードは、データ プロバイダ(API)への有料サブスクリプションを持つか、データプロバイダによって特別に許可されている必要があります(企業内データなど)。これらの許可されたモデルはいずれも、ノードとAPIの間の相互作用を橋渡しするためのパスワードおよびクレデンシャル管理機能を必要とします。したがってノードオペレータはこれらのプレミアムデータプロバイダとの相互作用のために、APIキーを保存し、アカウントログインを管理する機能を必要とします。

クレデンシャル管理機能がないためにプレミアムAPIに接続できないオラクルソリューションは、オープンAPI、無料API、または海賊版APIの提供に限定されています。これらのAPIは一般的に、低品質のデータ、レート制限スロットル、信頼性の低い応答時間、法的拘束力のある可用性やサービス品質の保証がなく、これらすべてが、このようなデータソースを高価値、中価値、または多くの少価値なユースケースには適していないものとしています。低品質のデータが供給されるスマートコントラクトは、消費されるデータの信頼性や正確性を保証するものではなく、その過程でより大きな攻撃対象となります。データによって駆動される他のテクノロジーにも言えることですが、”ガベージイン、ガベージアウト”です。

価格参照データコントラクトに参加しているChainlinkノードは、External Adapterを利用して任意のプレミアムAPIに接続することができます。これらのAPIは、高品質のデータを提供し、応答時間を短縮し、可用性とサービス品質を保証します。External Adapterはモジュール化されており、任意のプログラミング言語で記述でき、Chainlink ノードとは異なるサーバーからホストすることができます。データプロバイダー、Web API、企業システム、IoTデバイス、決済システム、その他のブロックチェーンなどからデータを取得するために使用することができます。

高品質なノードオペレータの分散化

データ品質は、スマートコントラクトにデータを配信するための安全で信頼性の高いオラクルメカニズムがなければ意味がありません。高品質なノードオペレータの分散化は予測できないダウンタイムの期間から保護し、データ配信プロセスを改ざんしないように単一のエンティティを信頼する必要性を排除するための重要な設計パターンです。分散型コンセンサスはたとえ少数のノードがダウンタイムを経験したり、悪意を持ったノードになったとしても、最終的な集約されたレスポンスにはほとんど影響を与えないため、攻撃のコストを大幅に増加させます。

Chainlinkの価格参照コントラクトは、多数の独立したセキュリティ審査済みでシビル耐性のあるオラクルノードからのレスポンスを集約した分散型オラクルネットワークを利用しています。参加しているChainlinkのノードは、オフサイトのクラウドとオンサイトのベアメタルサーバーの両方を含む、世界中に分散したブロックチェーンDevOpsとセキュリティのリーディングチームによって運営されており、オラクルメカニズムの単一障害点を回避しています。また、コミュニティが運営する多数のノードがスタンバイしており、追加の分散化のためにいつでもネットワークに追加することができます。

高品質なデータソースの分散化

オラクルソリューションは個々のデータソースの品質を犠牲にしない限り、複数のデータソースを組み込むことでより強固なものになります。高品質なデータソースを分散化することで、単一のデータプロバイダが唯一のSource of Truthとなることを防ぎ、単一のデータプロバイダがオフラインになった場合の状況から保護することができます。しかし、単一の高品質なデータソースしか利用できない場合もあります。その場合は、データ品質を確保するためのより高度な暗号技術、例えば、ステークバックサービスアグリーメント(後述)、TLS 検証(Town CrierDECO)、ゼロ知識証明などが重要になります。

Chainlinkの価格参照コントラクトはデータソースレベルで分散化されています。各価格参照ネットワークは複数の独立した信頼性の高いデータプロバイダーから市場データを収集しています。これらのデータプロバイダーはBrave New CoinKaikoAmberdata、その他多くの評判の高いデータAPIを含む、すべての取引環境で市場を完全にカバーしているプレミアムデータアグリゲーターで構成されています。各データポイントは、その後、単一の参照価格を形成するために集約され、シンプルな読み取り機能を使用してコントラクトが消費するためにオンチェーンに保存されます。

オープンソースの可視化とモニタリング

DeFiアプリケーションの基礎となるスマートコントラクトが一般の人がリアルタイムで監視できるようにオープンソース化されている場合、データを提供する価格オラクルメカニズムも透明であるべきです。オラクルソリューションの透明性がなければ、データがどこから供給されたのか、どのノードがデータを提供しているのか、応答の待ち時間、オラクルネットワークの過去のパフォーマンスとそのデータの正確性などを検証する能力がdAppユーザーにはありません。

Chainlinkの各価格参照データコントラクトには、以下のような非常に詳細な情報セットを表示するオンチェーンデータから派生した透明な可視化が添付されています。

  • 各参考データフィードの最新価格
  • どのDeFiプロジェクトがスポンサーとなり、各価格帯のフィードを支援しているか
  • 価格フィードを確保しているのはどのセキュリティレビューされたノードのオペレータであるか
  • 更新が発生するタイミング
  • アグリゲーションを開始するために必要なノードレスポンスの最小量
    その他、オラクルネットワーク全体および各ノードオペレータに関する重要な情報が多数含まれています。
Chainlink価格参照データは、ノードとデータプロバイダーの分散化されたネットワークを使用して、高品質の価格データをスマートコントラクトに提供しています

さらに個々のノードのパフォーマンスをデータリクエストごとに分析し、ノードがデータリクエストを正常に完了できたかどうかを確認することができます。Chainlink Explorerを使用すると、ノードオペレータ、データプロバイダ、およびユーザは、ネットワーク内の各ノードのパフォーマンスを調査し、途中でエラーが発生したかどうかを特定するためにどのような手順がとられたかを正確に確認することができます。

Chainlinkを利用したデータソーシングの柔軟性

柔軟性は、一般化されたオラクルネットワークに不可欠な要素であり、DeFi全体で使用される標準となる可能性があります。これにより、開発者は必要とするセキュリティと信頼性の保証を与えてくれると感じたオラクル設計パターンを作成することができるようになります。Chainlink価格参照データフィードが多数のデータアグリゲータの組み合わせを利用してグローバルな市場価格を生成するのに対し、Chainlinkプロトコルは、オラクルネットワークの構築方法やデータの出所に関して、一つのデザインパターンを強制するものではありません。その代わりに、市場で最もオープンなモジュラーフレームワークを提供し、特定のニーズを満たすことができます。

任意のデータの組み込み、ノードの収集、集計モデル

開発者はこれらのExternal Adapterを使用して、スマートコントラクトを実行に必要なあらゆるデータソースに素早く接続します。また、必要な分散化の正確な量、データを取得する正確なデータソース、データを集約するために使用するアルゴリズム、更新の頻度などをカスタマイズすることもできます。これにより、コントラクトが外部データをどのように消費するかについて最大限の柔軟性を提供します。

Market.linkは開発者が様々なデータソースを提供する、事前に構築されたExternal Adapterの中から選択できるサードパーティのウェブサイトです。

このカスタマイズ可能なフレームワークは開発者が求めるセキュリティに応じて、オラクルネットワークを簡単にスケールアップしたり、スケールダウンしたりすることを可能にします。Chainlinkはセキュリティを保証するために、どのオラクルネットワークにも素早く追加することができるジョブを競う多くのコミュニティノードと一緒に、安全なノードオペレータの巨大なプールを持っています。さらに開発者は事前の開発作業なしにデータ集計に含めることができる、さまざまなフォーマット済みのデータソースにアクセスすることができます。

またChainlinkは平均値、中央値、あるいはソースの重み付けや外れ値の除去などの複雑なモデルを使用して、集計をカスタマイズする機能も提供しています。これには、時間ベースの更新、価格偏差の更新(例:価格の0.5%変化ごと)、複数のパラメータを使用したハイブリッドアプローチなど、更新頻度の柔軟性が含まれています。

データプロバイダは従来のAPIとして動作したり、Chainlinkノードを実行したりすることができます

Chainlinkの柔軟なフレームワークにより、データプロバイダーは従来のAPIビジネスとして運用するか、あるいはChainlinkノードを直接実行することで、新たなスマートコントラクトエコノミーにデータを提供する方法をカスタマイズすることができます。

従来のAPI
データプロバイダーは法定通貨で提供されるサブスクリプションモデルを介して有料ユーザーにデータを提供することで、現在と全く同じ方法で運営することができます。Chainlinkノードはノード設定でChainlinkのExternal Adapterを活用することで、これらのAPIをサブスクライブし、データをオンチェーンで中継することができます。これは既存のデータプロバイダーに適用することができ、Chainlinkの価格参照データネットワークではすでに実運用で使用されており、ノードはAmberdataCoinGeckoなどのプレミアムデータプロバイダーに加入しています。またChainlinkはBinanceCoinbaseのようなノードが利用できる取引所API用のExternal Adapterもすでに作成しています。

このモデルはデータプロバイダーが現在のビジネスモデルやインフラストラクチャを変更する必要がないため、強力なものとなります。データプロバイダ自身がスマートコントラクト市場に直接サービスを提供することを躊躇している場合でも、Chainlinkノードは、モジュール式のExternal Adapterを介して、開発者が必要とするデータリソースへのアクセスを提供することができます。またノードは自社のChainlinkノードを運営するデータプロバイダー(後述)にサブスクライブして、データの分散化をさらに進めることもできます。

Chainlinkノードとしてのデータプロバイダ
もう一つのモデルはデータプロバイダーがChainlinkノードを運用し、スマートコントラクトに直接データを販売するというものです。これは、データを収益化する新しい方法を提供し、すでに市場データアグリゲーターのKaikoAlpha Vantage、クリプトカレンシー取引所のHuobiなど、いくつかの主要なデータプロバイダーが利用しています。

データプロバイダーが独自のChainlinkノードを実行することで得られるユニークな利点の1つは、自社のデータを暗号化して署名できることです。ユーザーとスマートコントラクトは、データプロバイダーや取引所のChainlinkノードから直接送られてくる価格データが、スマートコントラクトに至るまでの間に改ざんされていないことを保証することができます。これは、データがオンチェーンでブロードキャストされる前に、そのノードの固有の秘密鍵を使用して暗号的に署名されているからです。署名されたデータはノードの公開鍵アドレスを介してオンチェーンで検証することができ、ソースからの直接データであるため高い整合性が確保されます。

このフレームワークを通じて、データプロバイダーはブロックチェーンに直接データをブロードキャストすることができ、データをオンチェーンに転送するために外部のアクターに頼る必要がなくなります。これにより、データプロバイダーはオンチェーン上でデータをブロードキャストする頻度を制御することができ、データ生成から最終的に消費者であるスマートコントラクトへの配信まで、データのセキュリティを維持することができます。例えばあるアプリケーションには毎分更新情報を提供し、他のアプリケーションには価格が0.5%変化するごとに価格偏差のしきい値を設定してサービスを提供するなど、独自の方法で複数の異なるアプリケーションに同時にデータを提供する柔軟性を持つことができます。

データプロバイダはそのデータをChainlinkノードのオペレータに販売することができ、および/またはChainlinkノードを直接実行することができます

単一のゲートウェイからすべてのブロックチェーン環境に販売する

特にブロックチェーン市場の新規性や、それぞれの環境を理解しているドキュメントや開発者が不足していることを考えると、データ提供者がすべてのブロックチェーン環境を理解し、それぞれの環境で安全な運用を独自に設定することは期待できません。

Chainlinkのオラクルネットワークは、既存の外部アダプター/イニシエーターを活用するか、新しいブロックチェーンを迅速に利用可能にするために新しいアダプター/イニシエーターを作成するかのいずれかで、すべてのブロックチェーン環境からアクセスすることができます。Chainlinkはオープンソースであるため、コア開発者は外部の許可なしにChainlinkを統合することができ、開発ボトルネックのない水平的なスケーラビリティにつながります。EthereumPolkadotTezosCosmosなどの主要なブロックチェーンのほとんどは、すでにChainlinkをネットワークにネイティブに統合しています。

このセットアップによりデータプロバイダとスマートコントラクト開発者は、単一のゲートウェイを提供し、そこからどのようなチェーンでもデータを販売したり、データにアクセスしたりすることができます。重要なのはこのアプローチの柔軟性により、データプロバイダがリソースをどこに配置するかを選択する必要がなくなることです。

データとサービスの品質に関する暗号経済的な保証を確立する

Chainlinkオラクルネットワークは、ノードオペレータと要求するスマートコントラクトの双方が署名した拘束力のあるサービス契約を組み込むことになりますが、この契約は、契約の全長にわたってノードが準拠する必要があるパラメータを事前に定義します。これらのパラメータはデータ配信(応答の待ち時間)、データ品質(応答の精度)、ステークされたLINKの量(暗号経済的保証)、スラッシュ条件(罰則)、およびリクエスト元によって定義されたその他の事前定義された期間と条件を設定します。ノードオペレータの支払いはこれらのパラメータを正常に満たし、最終的に高品質のデータをタイムリーにオンチェーンで提供するかどうかにかかっています。これにより独自のChainlinkノードを運営するデータプロバイダは、どのようなデータ保証を提供するかについて最大限の柔軟性を持ち、データの品質、信頼性、正確性にさらなる信頼性と完全性をもたらすことができます。

バインディングサービス契約は、データの品質と配信を暗号化して経済的に保証します

最終的にはステーキング担保型サービス契約により、データプロバイダは要求するスマートコントラクトの品質担保型保険の一形態として、自社のオラクルサービスを担保することができ、望ましくない行動に対するペナルティとしてそれを取り上げられる可能性があります。サービス契約がなければ、オラクルネットワークはデータ配信やデータ品質に関する条件が不明確であり、要求者が要求するデータやオラクルサービスの品質をほとんど保証できない状況を作り出すことになります。

評価フレームワークとノードマーケットプレイスを使って情報に基づいた意思決定を行う

柔軟性を管理する上で重要な要素は、ユーザーがオラクルネットワークに組み込む部分について、十分な情報に基づいた意思決定を行うためのツールを提供することです。これは2つの部分を含んでいます。評価システムとノードマーケットプレイスです。

評価フレームワーク
評価システムは、ノードオペレータやデータプロバイダの過去のパフォーマンスを示すオンチェーンデータの不変の記録をユーザに提供します。将来のリクエスト者は、どのノードが信頼でき、どのノードが信頼できないかを判断するための過去の暗号化証明を得ることができます。

サードパーティのサービスを通じてChainlinkノードを直接比較して、どのオラクルノードが他のノードよりも信頼性が高いかを確認することができます。これらのサイトではChainlinkネットワークに関する生データと、トランザクション数、応答時間、獲得した支払い、成功率などの個々のオラクルノードに関する具体的なデータの両方を集計して表示しています。

Reputation.linkは開発者やユーザーが、個々のノードやデータソースを含むChainlinkオラクルネットワークのパフォーマンスについて深い洞察を得ることを可能にします

ノードマーケットプレイス
もう一つの重要なコンポーネントは、オラクルノードを発見し、フィルタリングし、比較し、最終的にオラクルネットワーク内で使用するノードを選択するための場所を持つことです。LinkPoolのChainlink MarketやCLCGのHoneycomb Marketplaceなど、Chainlinkノードのための複数のサードパーティのノードリストサイトがあります。これにより開発者はどのノードを信頼するか、どのくらいの数のノードにお金を払うかを正確に選択できるため、オラクルネットワークがどのように構成されるかを完全にコントロールすることができます。

さらに各ノードオペレータは、認証、セキュリティレビュー、身元証明、External Adapter、データソース、ジョブの実行スペックをリストアップすることができ、スマートコントラクトにどのオフチェーンサービスを提供しているかを詳細に知ることができます。オペレータは、提供するジョブごとに独自の価格とパラメータを設定することができ、ノードが多様な多数の要素で競争する自由市場経済を実現します。

market.link上のノードはオンチェーンでの評判を構築することができ、信頼できるノードを探している開発者にそれを表示することができます

柔軟性を活用して大規模データソーシングのリスクを回避するプライスオラクルを構築する方法

高品質なデータを提供するためには、オラクルの仕組みを設計する際に考慮し、先制的に軽減することが重要な攻撃ベクトルがいくつかあります。これらの状況を考慮に入れないことで、開発者はユーザーの資金で大規模なリスクを負い、最終的にはdApp全体の成功を危険にさらすことになります。

ボリュームシフト/交換所ロックイン
暗号通貨市場は取引所が資産の排他的な発行を所有しておらず、ユーザーをロックインし、資産の全体の取引市場をカバーすることはできないため、伝統的な金融市場とは異なります。ブロックチェーン技術はパーミッションレスであり、したがって、誰もがいつでもアクセスできるようにトレーダーのための取引所に暗号通貨のコイン/トークンをリストアップすることができます。このダイナミックな動きのため、暗号通貨のボリュームは多くの異なる取引所に分散しており、異なる取引所間ではむしろ急速に変化することがあります。データ集計プロセスに含まれていない取引所に取引量の大部分が移動するという市場操作攻撃を避けるためには、オラクルメカニズムによってこれを説明する必要があります。

フラッシュクラッシュ
一般的に十分なサーキットブレーカーがない暗号通貨取引所は、市場価格が他のすべての取引所の市場の残りの部分から大きく乖離するフラッシュクラッシュの影響を受けやすくなっています。最大手の取引所でさえこのリスクの対象となっており、すでに何年にもわたってこのような問題を何度も経験しています。クラーケンはフラッシュクラッシュを経験し、BTC/CADの価格ペアが11,200ドルから100ドルCADに急落し、ほぼ99%の下落を記録しました。Coinbaseは、ETHが一時322ドルから0.1ドルの安値に急落するという極端なフラッシュクラッシュを経験しました。さらに、2020年の初めには、クリプトカレンシーのデリバティブ取引所であるBitmexがフラッシュクラッシュを経験し、XRPの価格が0.33ドルから0.13ドルへと1分以内に60%も急落しました。

品質の希薄化
質の低いデータソースが集約プロセスを希薄化させないように、品質管理基準を設けずに分散化を強制することを避けることが重要です。パフォーマンスの悪い履歴、未確認の評価、実証されていないセキュリティインフラストラクチャを持つデータプロバイダやノードオペレータは、オラクルメカニズムに含めるべきではありません。ノードオペレータとデータプロバイダが発生する可能性のある問題を解決できるリソースと知識を持っていることを確認し、アラートを設定してフェイルセーフを確保します。

悪意のある攻撃者は、これらの攻撃ベクトルを悪用するために経験豊富な開発者である必要はないことに注意してください。このような機会に気付いたリテールトレーダーや少数のトレーダーグループは、取引所の UI を使用して特定の市場を操作し、限られた市場範囲でオラクルによって生成された基準価格ポイントを歪めることができます。これは、不適切に設計されたオラクルを操作する能力を、インターネット接続と取引所のアカウントがあれば誰にでも開放してしまうため、攻撃対象が大幅に拡大します。

Chainlinkの価格参照データコントラクトは単一の取引所APIや取引所APIの集合体ではなくデータアグリゲータを利用して、これらのリスクを軽減するように特別に設計されています。

高品質のデータアグリゲータがあらゆる価格ディスカバリ環境でマーケットカバレッジを提供する

Chainlinkの価格参照データはデータアグリゲータのみを使用しており、これは最も堅牢な市場カバレッジを提供しているためです。これは、従来の金融市場に比べて取引量が比較的少ない市場に正確なデータを提供するために特に重要な機能です。データアグリゲータからデータを調達する場合、マーケットカバレッジを維持する役割は、取引量を継続的に追跡する経験やリソースを持たないオラクルネットワークの作成者から、プロのデータアグリゲータに移行します。

これらのデータアグリゲーターは、グローバルに分散したフルタイムのチームを擁しており、すべての取引環境を完全にカバーした正確な価格データを維持することに豊富な経験を持っています。彼らは、流動性、数量、時間、取引所間での変動などの重要な指標を考慮に入れ、外れ値を平滑化します。これらの機能により、Chainlinkの価格参照コントラクトは、ボリュームシフト、フラッシュクラッシュ、品質の希釈化に非常に耐性のあるものとなっています。

Chainlinkの価格参照コントラクトはまた、複数のデータアグリゲータを利用して、結果として得られるデータポイントを操作する単一のソースに対して価格データを硬化させます。これによりdApp開発者とエンドユーザーは、クラス最高の監視チームによるセキュリティ審査を受けたノードオペレータの使用に加えて、より高いセキュリティと信頼性を保証することができます。

Chainlinkの価格参考データコントラクトのエンドツーエンドプロセス

データ調達時にオラクルの柔軟性を不適切に活用することの主なリスク

ボリュームシフトを考慮しない、または単一のAPIからのソースのみを使用するオラクルネットワークの展開に伴うリスクを十分に理解するには、何がうまくいかないのか、どのようにしてそれが実行されるのかについて、実際の例を見てみるのが一番です。

警告:単一のExchangeをベースとしたオラクル設計は避ける

単一の取引所から価格データを引き出すオラクルネットワークでは、取引所のダウンタイム、フラッシュクラッシュ、価格操作に対する保護がないだけでなく、市場のカバー範囲が極めて限られています。このようなセットアップは、最初はボラティリティが低い時には機能しているように見えるかもしれませんが、市場のボラティリティが高まると、プライスディスカバリが発生し、取引量が異なる取引所間で頻繁にシフトすることがあります。オラクルが異なる取引所を追跡するように更新されたとしても、市場のシフトは常に同じ形をとるとは限らないため、新しい価格ポイントは非常に不正確になる可能性があります。これは、データソースが変更されたにもかかわらず、市場のカバレッジを確実に維持できないというシナリオを生み出します。

以下では、単一の取引所から引っ張ることで生まれる危険性について、順を追って説明します。

  • 開発者のジョーは、暗号資産の外部価格データを必要とするスマートコントラクトアプリケーションを書きました。彼は、自分の好きな取引所である取引所Cから価格データを引き出すオラクルネットワークを構築することにしました。オラクルを構築した日、取引所Cには資産の80%の取引量がありました。
  • 1週間が経ち、ユーザーの入金は増加しています。取引所Cは現在、資産の取引量の50%しかカバーしていませんが、資産の市場変動率は低く、オラクルのメカニズムは機能しているように見えます。ジョーは、オラクルのカバー率が低下していることを気にせずに、dAppの機能開発に集中できると考えています。
  • さらに1ヶ月が過ぎ、真夜中にジョーが目を覚ますと、彼のdAppには数百万ドルものユーザーからの入金があったことを知らせる電話がかかってきました。彼はすぐに、市場の取引量の大半が取引所Cから離れていることを知ります。彼のオラクルが引っ張ってきた唯一のソースであり、今では資産のボリュームの5%を占めているだけです。この取引所は、オラクルが外れた価格ポイントを報告する原因となっているクジラのトレーダーによって操作されました。ジョーのdAppは、無実のユーザーから不当に多額の価値を吸い上げる機会を与えてしまいました。
  • ジョーのdAppはユーザーの信頼を失い、有能な開発者としての彼の評判は汚されてしまいました。このような状況は、彼のオラクルソリューションが適切に市場をカバーしていれば回避できたかもしれません。

上記の例は、オラクルネットワークが単一の取引所からのみデータを引き出すように構築されている場合に生じる極端な危険性を示しています。市場のカバレッジはアプリケーションを作ったり壊したりする可能性があり、フラッシュクラッシュの場合には状況はさらに悪化していたかもしれません。

固定取引所集約オラクルはボリュームシフトを考慮していない

事前に選択された取引所から直接データを引き出すオラクルは、元の集計プロセスに含まれていなかった新しい取引所にボリュームがシフトする状況に脆弱です。オラクルネットワークのデータソースとして最初に選ばれた取引所は、最初の作成時には流動性があったかもしれませんが、将来にわたってボリュームがこれらの取引所にとどまる保証はありません。これは、資産全体のボリュームのごく一部を操作する必要があるだけなので、悪意のある行為者から攻撃のコストを下げることになります。

これは最小限の攻撃ベクトルに見えるかもしれませんが、次のような状況を考えてみましょう。

  • 別のスマートコントラクト開発者であるボブは、ジョーが単一の取引所しか使用していないという過ちを目の当たりにしたため、あらかじめ選択された取引所の配列から暗号資産のデータを取得するオラクルを構築することにしました。彼の考えは、複数の取引所の中央値を取ることで、市場操作が緩和されるということです。
  • 数週間が経ち、複数の取引所からデータを取得しているオラクルは、1つの取引所が操作されている場合でも正確な応答を提供し続けているため、Bobは正しい判断をしたと確信しているようです。そのため、彼はアプリケーションのコアとなるビジネスロジックの改善に焦点を移しました。彼が新しい機能に取り組んでいる間、ボブは2つの新しい取引所が現れ、暗号資産のボリュームの85%をキャプチャしていることに気付きませんでした。
  • さらに数日が過ぎ、ボブはジョーと同じように目を覚まし、彼のコントラクトがユーザーの預金を何百万ドルも盗むために悪用されていることを発見します。時間の経過とともに、ボリュームが最初の集約プロセスに含まれていなかった新しい取引所にシフトしている間に、ボブが最初にそれを構築したときに彼のオラクルネットワークのために選んだ取引所は不安定であったことが判明しました。このように彼のオラクルネットワークは最終的には15%の市場カバレッジのみを有しており、その後、ボブのスマートコントラクトアプリケーションを悪用する機会を使用したトレーダーによって操作されたのです。
  • ボブは、オラクルのデータソースを分散化するという正しいアイデアを持っていましたが、取引所間の取引量のシフトや、追跡されていない新しい取引所が資産のかなりの市場ボリュームを取り込む可能性があるという事実を考慮に入れていませんでした。新しい取引所が現れなかったとしても、ボリュームは1つまたは2つの取引所に集中していた可能性があり、それによってトレーダーはボリュームの少ない取引所を操作し、中央値の計算を自分たちに有利に歪めることができたでしょう。

ジョーとボブの両方とも、オラクルのメカニズムを使用してデータ生成プロダクトを構築しようとしたため、適切なマーケットカバレッジを欠いていました。彼らは、市場操作やマーケットカバレッジの問題を防ぐために何十年もの経験を持つデータアグリゲータからオラクルにデータを引き出させることで、この状況を完全に回避することができたかもしれません。

低品質のオラクルソリューションと高品質のオラクルソリューションの混合

このような外れ値のシナリオを防ぎたいという願望から、価格更新を作成するために複数の異なるオラクルを一緒に使用することを検討する人もいます。多くのオラクルソリューションに分散することは、理論的には良いアイデアのように聞こえるかもしれませんが、実際には他のオラクルメカニズムの信頼性の欠如と、それらが提供するデータの質の低さのために、より大きなリスクを伴います。

Chainlinkの価格参照データネットワークから得られる安全性と信頼性の高い価格データと、プレミアムAPIをサポートしておらず、取引所APIから直接市場データを取得している、実績のない透明性の低いオラクルソリューションから得られる質の低いデータを混在させることは、大きなリスクがあると考えています。この懸念は、DeFiによって保護された価値が高まるにつれ、オラクルのメカニズムの弱点を利用してDeFiのdAppを攻撃するインセンティブも高まるため、特に重要になります。

3つのオラクルソリューションが集約されている状況を想像してみてください。1つは高品質のノードを使用してプレミアムデータアグリゲータからデータをフェッチするChainlinkの価格参照データ、もう1つはあらかじめ選択されたいくつもの取引所APIから価格データを取得するオラクル、そして最後の1つはクレデンシャル管理をサポートしていないため、単一の低品質のデータソースまたは取引所APIにしか接続できないオラクルソリューションです。

Chainlinkの高品質なデータと、安全ではないオラクルソリューションの低品質なデータを組み合わせることで、結果として得られる集約されたデータポイントの品質が低下します

この例では、

  • 右側のChainlinkの価格参照データは、複数の高品質なデータアグリゲータからデータを取得し、100ドルのすべての取引環境をカバーする取引量と流動性を加味した市場全体の価格を算出しています。
  • 左上のオラクル・ソリューションは、あらかじめ選択された複数の取引所API(A、B、C)からデータを取得していますが、当時は市場全体の15%の取引量しかカバーしていませんでした(取引量の85%を占めていたDとEを除く)。このため、結果のデータポイントが歪んでしまい、オラクルは70ドルという誤った価格ポイントを報告してしまいました。
  • 左下のオラクル・ソリューションは、単一の低品質のデータソースにのみ接続されており、市場のボラティリティが高かったために障害が発生しました。この単一の障害ポイントにより、オラクルは0ドルという価格を報告する結果となりました。

スマートコントラクトが受け取った3つの値(0ドル、70ドル、100ドル)の中央値を取ったとき、最終的な集計価格は、100ドルの適切な市場全体の価格ではなく、70ドルと不正確でした。さらに悪いことに、3つの値の平均値は57ドル前後の価格になります。どちらのシナリオにおいても、他の 2 つのオラクル・ソリューションによって提供された低品質のデータが、Chainlinkの価格参照データによって提供された高品質のデータを希釈しています。

このような状況では、低品質のデータポイントが操作されやすくなり、Chainlinkの数量調整データによって配信される高品質のデータが希釈されてしまいます。オラクルソリューションにおける分散化は重要ですが、データやノードの品質を犠牲にしてはなりません。いかなる種類のデータの混合も、Chainlinkの価格参照データネットワークが提供する価値の品質を脅かす可能性があります。未知のソースからの価格データの使用、計算方法が十分に考えられていないオラクルの採用、プレミアムデータのないオラクルへの依存、暗号経済的な保証が不十分なオラクルへの依存を避けることを強くお勧めします。

高品質なデータを次世代アプリケーションに提供する

オラクルとデータソースは、フルスペクトルのエンドツーエンドのセキュリティを提供するために組み合わせても、同じようにレジリエントのある2つの異なるコンポーネントでなければなりません。数十億、最終的には数兆ドルにも及ぶDeFiエコシステムをサポートできる信頼性の高いオラクルネットワークを構築するためには、提供されるデータの品質が安全で信頼性の高いものでなければなりません。Chainlinkは、DeFiが今後何年にもわたってメインストリームに成長し、繁栄することを可能にする安全なエンドツーエンドの装置を作るために、オラクルメカニズムのセキュリティとデータの信頼性を一貫して最優先にしてきました。

DeFiプロジェクトで、独自の価格参照オラクルネットワークを構築したい、または既存のオラクルネットワークを使用したい場合は、開発者向けのドキュメントをご覧になるか、Discordで技術的な議論に参加するか、ここで統合についてより深く議論するために電話をください。メインネットやテストネット上で、1つまたは複数のChainlinkオラクルネットワークを簡単に統合することができ、スマートコントラクトにセキュリティと機能を追加することができます。

Website | Newsletter | Twitter | Reddit | YouTube | Telegram | Events | GitHub | Price Feeds | DeFi | Blog

Chainlink日本語リソース

--

--