はじめに
オラクルはブロックチェーン外の情報(例えば、通貨の価格など)をブロックチェーン上に提供するサービスです。
ブロックチェーン上でスマートコントラクトから外部データを取得するためには、オラクルが重要な役割を果たします。
例えばDeFiでは、ETH対ドルの価格を取得するためにChainlikなどの価格オラクルが使用されます。
従来、価格オラクルの分野ではChainlinkが主導的な地位を占めていましたが、近年ではPythなどの新興プロジェクトが台頭し、Chainlinkの市場シェアは減少傾向にあります。
そこでChainlinkと他の価格オラクルを比較するために、Chainlink、Pyth、Tellorの各オラクルについて、その特徴と分散化の仕組みについて解説していこうと思います。
Chainlink
特徴
Chainlinkは、複数の独立したノードオペレーターからデータを収集し、これを集約することで信頼性を確保しています。
ノードオペレーターは、外部データを収集してマートコントラクトに提供する役割を担い、その報酬としてChainlinkのネイティブトークンであるLINKトークンを受け取ります。
ノードオペレーターへの報酬は、スポンサーと呼ばれる多様な有料ユーザーやコミュニティによって支払われます。
同じブロックチェーン上の同じデータ(例えば、Arbitrum上のAAVE/USDレート)を必要とするようなユーザーやコミュニティがそのデータのスポンサーになります。
注意点
Chainlinkのデータ更新頻度は、各プライスフィードごとに設定されたheartbeat毎(例:24時間)、または価格変動幅が一定の閾値を超えたタイミングで更新されます。そのため、リアルタイム性が求められるアプリケーションでは、データの更新タイミングに注意が必要です。
Pyth
特徴
Pythは、複数のデータ提供者からの情報を集約し、信頼区間を設定することでデータの正確性と信頼性を確保しています。また、Pythnetと呼ばれる独自のブロックチェーン上でこれらのデータを管理し、他のブロックチェーンへはクロスチェーンでデータを提供しています。
クロスチェーンでのデータ提供は自動では実行されず、ユーザーがオンチェーントランザクションを実行して要求する必要があるため、プル型オラクルとも呼ばれています。
データの提供を要求する際にユーザーは手数料を支払う必要があり、この手数料がデータ提供者の報酬となります。ただし2024年12月現在、手数料は各チェーンで最小単位の1となっています(例: Ethereum では 1 wei)。
ガバナンスが稼働し次第、この手数料モデルが本格稼働するようです。
注意点
Pyth Network上では、データ更新が高頻度で行われているため最新のデータが保存されていますが、各チェーンでそのデータを使用するにはデータを要求するためのオンチェーントランザクションを実行する必要があります。
そのためPythのデータを利用する側のサービス設計に、データをいつどのように更新するのかを組み込む必要があります。
Tellor
特徴
Tellorは、レポーターと呼ばれる参加者がデータをオンチェーンで提供し、他の参加者がそのデータの正確性を検証する仕組みを採用しています。
レポーターはTellorのネイティブトークンであるTRBをステーキングすることでデータの提供が可能となり、その上でデータを提供することで報酬を得ることができます。
不正確なデータを提供した場合にはペナルティ(ステーキングしたTRBが没収される)が課されることで、データの信頼性を維持しています。
データの提供をレポーターに依頼するには、データフィードにチップを送る必要があります。
このチップがレポーターの報酬となります。
注意点
最新のデータは他の参加者によってまだ検証されていない不正なデータである可能性があるため、常に少し古いデータを参照する必要があります。
そのためリアルタイム性が求められるアプリケーションでは特に注意が必要です。
まとめ
Chainlink、Pyth、Tellorはそれぞれ独自のアプローチでオラクル問題を解決しようとしています。
データの更新タイミングや分散性、インセンティブモデルなどそれぞれ異なるので、使用する際には各プロジェクトの特性を十分に理解することが重要となります。
参考