This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
デプス解析:オラクルマシンがスマートコントラクトと外部世界をどのように接続するか
オラクルマシン技術デプス解析
ブロックチェーンエコシステムにおいて、オラクルマシンはスマートコントラクトと外部世界をつなぐ重要な役割を果たしています。インフラストラクチャの一種として、オラクルマシンシステムはオンチェーンのスマートコントラクトにオフチェーンからの情報とデータを提供することができます。
! チェーンリンク(オラクル解説シリーズのパート1)](https://img-cdn.gateio.im/webp-social/moments-ced3348559da0aabbf1c67c4d84ddc88.webp)
例えば、私たちがEthereumネットワーク上に特定の日の原油取引量データを取得する必要があるスマートコントラクトをデプロイすると仮定しましょう。スマートコントラクト自体はオフチェーンの現実世界のデータに直接アクセスできないため、この機能を実現するためにオラクルマシンを利用する必要があります。具体的なプロセスは次の通りです: スマートコントラクトは必要な日付の原油取引量をイベントログに書き込み、その後オフチェーンでそのイベントを購読する監視プロセスが開始されます。関連するリクエストが検出されると、そのプロセスはチェーン上のトランザクションを提出することで、コントラクトの対応するメソッドを呼び出し、指定された日付の原油取引量情報をスマートコントラクトに渡します。
! オラクル解説シリーズのチェーンリンク(パート1)](https://img-cdn.gateio.im/webp-social/moments-30dffd84ae22b9fa8f93929cd523ef99.webp0192837465674839201
多くのオラクルマシンプロジェクトの中で、Chainlinkは市場の主導的地位を占めています。分散型のオラクルマシンソリューションとして、Chainlinkは最も安全な方法でブロックチェーンに現実世界のデータを提供することに取り組んでいます。基本的なオラクルマシンの原則に基づいて、LINKトークンを中心に経済的インセンティブによって良性の循環を形成するエコシステムを構築しています。Chainlinkオラクルマシンのトリガーは、LINKトークンの転送を通じて実現する必要があり、LINKはイーサリアムネットワーク上のERC677コントラクトです。LINK ERC677トークンに基づいて実行されるオラクルマシン機能は、リクエスト/レスポンスモデルに属します。
! オラクル解説シリーズのチェーンリンクパート1])https://img-cdn.gateio.im/webp-social/moments-36eedcde4ebee55bf1c0e6c5f02934df.webp(
ERC677標準はERC20の基礎の上にtransferAndCallメソッドを追加し、この設計により支払いとサービス要求が統合され、オラクルマシンのビジネスシナリオのニーズにより良く応えています。ユーザーがtransferAndCallを使用して送金を行うと、通常のERC20送金操作に加えて、受取先アドレスがコントラクトアドレスかどうかを判断します。もしそうであれば、そのアドレスのonTokenTransferメソッドが呼び出されます。
! チェーンリンク(オラクル解説シリーズのパート1)])https://img-cdn.gateio.im/webp-social/moments-d05f88f78a86510920ca9cb9cb97fcd6.webp(
オラクルマシンサービスのリクエストプロセスにおいて、消費者はまずオラクルマシンの信頼性を確認する必要があります。なぜなら、サービス提供前に前払いが必要だからです。オラクルマシン契約のonTokenTransferメソッドは、一連のセキュリティチェックを行い、転送がLINKトークンであるかの確認、データの長さが制限を超えていないかの確認、function selectorの検証などを行います。チェックを通過すると、契約はユニークなrequestIdを生成し、期限を設定し、リクエストデータを含むOracleRequestイベントを発火させます。
! オラクル解説シリーズのチェーンリンクパート1])https://img-cdn.gateio.im/webp-social/moments-dae23b36c6a83626aa95ba58fa8dbee5.webp(
オフチェーンノードはリクエストを受信した後、fulfillOracleRequestメソッドを呼び出して応答します。このメソッドは、呼び出し者の権限を確認し、リクエストの有効性を検証するなど、一連の検証を行います。検証が成功すると、ノードはリクエスターコントラクトのコールバック関数を呼び出し、データをリクエスターに返します。
! オラクル解説シリーズのチェーンリンク(パート1)])https://img-cdn.gateio.im/webp-social/moments-1994fff156354700fda0609f9e317726.webp(
開発者にとって、既存の通貨ペアの価格データを使用するだけであれば、公式が提供するPrice Feedインターフェースを直接呼び出すことができます。各取引ペアには独立したPrice Feed )、すなわちAggregatorProxy(があり、decimals)(、description)(、version)(、getRoundData)(、latestRoundData)(などの照会メソッドを提供しています。その中で、latestRoundData)(メソッドが返すanswerパラメータが最新の価格となります。注目すべきは、米ドルを基準とした取引ペアの精度は通常8桁の小数に統一されている点です。
! オラクル解説シリーズのチェーンリンク(パート1)])https://img-cdn.gateio.im/webp-social/moments-bb84d77f358852f47e9adf3e74ba5bf9.webp(
このようにして、開発者は複雑なAPI呼び出しやデータ検証プロセスを自分で処理することなく、チェーン上のオラクルマシンが提供するリアルタイム価格データを簡単に取得して使用することができます。