# オラクルマシン技術解析:Chainlinkを例にブロックチェーンエコシステムにおいて、オラクルマシンは重要な役割を果たしており、スマートコントラクトと外部世界をつなぐ橋渡しの役割を担っています。オラクルマシンの主な機能は、ブロックチェーン上のスマートコントラクトにオフチェーンデータを提供することで、契約が現実世界の情報を取得し処理できるようにすることです。! チェーンリンク(オラクル解説シリーズのパート1)](https://img-cdn.gateio.im/social/moments-ced3348559da0aabbf1c67c4d84ddc88)例えば、私たちがイーサリアムネットワーク上に、特定の日の原油取引量データを取得する必要があるスマートコントラクトをデプロイしたとしましょう。スマートコントラクト自体はオフチェーンデータに直接アクセスできないため、オラクルマシンの助けが必要です。コントラクトは必要な情報をイベントログに書き込み、その後、オフチェーンプロセスがこのログを監視します。リクエストが検出されると、そのプロセスはチェーン上のトランザクションを提出することによって、コントラクト関連のメソッドを呼び出し、指定された日の原油取引量データをスマートコントラクトに送信します。! オラクル解説シリーズのチェーンリンク(パート1)](https://img-cdn.gateio.im/social/moments-30dffd84ae22b9fa8f93929cd523ef990192837465674839201多くのオラクルマシンプロジェクトの中で、Chainlinkは最大の市場シェアを占めています。Chainlinkは、ブロックチェーンに現実世界のデータを安全かつ信頼性の高い方法で提供することを目的とした分散型オラクルネットワークです。基本的なオラクルマシンの原理に基づいて、LINKトークンを中心に経済的インセンティブ駆動のエコシステムが構築されています。Chainlinkオラクルのトリガーは、LINKトークンの転送を通じて実現され、LINKはイーサリアムネットワーク上の特別なERC677トークンです。! オラクル解説シリーズのチェーンリンクパート1])https://img-cdn.gateio.im/social/moments-36eedcde4ebee55bf1c0e6c5f02934df(ERC677標準はChainlinkがオラクルマシンサービスシナリオを満たすために提案したものです。それはERC20標準の基礎の上にtransferAndCallメソッドを追加し、支払いとサービスリクエストを一つに統合します。ユーザーがtransferAndCallを呼び出して送金を行うと、ERC20の送金機能を完了するだけでなく、受取先アドレスがコントラクトアドレスである場合、そのアドレスのonTokenTransferメソッドも呼び出されます。! チェーンリンク(オラクル解説シリーズのパート1)])https://img-cdn.gateio.im/social/moments-d05f88f78a86510920ca9cb9cb97fcd6(Chainlinkの設計では、オラクルマシン契約のonTokenTransferメソッドが最初に転送がLINKトークンであるかどうかを検証し、その後リクエストデータの有効性をチェックします。一連のセキュリティチェックを経て、契約はリクエストの詳細データを含むOracleRequestイベントを発行します。! オラクル解説シリーズのチェーンリンクパート1])https://img-cdn.gateio.im/social/moments-dae23b36c6a83626aa95ba58fa8dbee5(オフチェーンノードはこれらのOracleRequestイベントをリスンします。新しいリクエストが検出されると、ノードはイベント内のデータを解析し、API呼び出しを通じて必要な情報を取得します。その後、トランザクションを提出する方法で、オラクルマシンコントラクトのfulfillOracleRequestメソッドを呼び出し、データをオンチェーンに提出します。このメソッドは一連の検証を行った後、以前に記録されたコールバックアドレスと関数を介して結果をリクエスト元のコントラクトに返します。! オラクル解説シリーズのチェーンリンク(パート1)])https://img-cdn.gateio.im/social/moments-1994fff156354700fda0609f9e317726(開発者にとって、既存の通貨ペアの価格データを取得するだけであれば、Chainlinkが提供するPrice Feedインターフェースを直接使用できます。各取引ペアには個別のPrice Feed(別名Aggregator)があり、実際にはAggregatorProxyコントラクトです。これらのインターフェースは、価格精度、取引ペアの説明、バージョン情報を取得するためのいくつかの重要なクエリメソッドを提供しており、ラウンドIDに基づいて過去の価格データと最新の価格データを取得することができます。! オラクル解説シリーズのチェーンリンク(パート1)])https://img-cdn.gateio.im/social/moments-bb84d77f358852f47e9adf3e74ba5bf9(ほとんどのアプリケーションシーンでは、契約は最新の価格を読み取るだけで済む場合があります。latestRoundData)(メソッドを呼び出すことで最新の価格データを取得できます。このとき、answerパラメータが最新の価格です。注意すべきは、米ドルを基準としたほとんどの取引ペアの価格精度が統一されて8桁の小数であるため、異なるトークン間の精度処理が簡素化されるということです。! オラクル解説シリーズのチェーンリンク(パート1)])https://img-cdn.gateio.im/social/moments-527bd8714534f5f06ccdd9afe40b253a(この方法により、Chainlinkはブロックチェーンの世界に強力で柔軟なオラクルマシンソリューションを提供し、スマートコントラクトが安全かつ信頼性高くチェーン外データを取得し利用できるようにします。! Chainlink(Oracle Explainerシリーズのパート1)])https://img-cdn.gateio.im/social/moments-06e79466fe62a401c6140e09e5bd5401(
Chainlinkオラクルマシン:スマートコントラクトが現実世界とつながる橋
オラクルマシン技術解析:Chainlinkを例に
ブロックチェーンエコシステムにおいて、オラクルマシンは重要な役割を果たしており、スマートコントラクトと外部世界をつなぐ橋渡しの役割を担っています。オラクルマシンの主な機能は、ブロックチェーン上のスマートコントラクトにオフチェーンデータを提供することで、契約が現実世界の情報を取得し処理できるようにすることです。
! チェーンリンク(オラクル解説シリーズのパート1)](https://img-cdn.gateio.im/webp-social/moments-ced3348559da0aabbf1c67c4d84ddc88.webp)
例えば、私たちがイーサリアムネットワーク上に、特定の日の原油取引量データを取得する必要があるスマートコントラクトをデプロイしたとしましょう。スマートコントラクト自体はオフチェーンデータに直接アクセスできないため、オラクルマシンの助けが必要です。コントラクトは必要な情報をイベントログに書き込み、その後、オフチェーンプロセスがこのログを監視します。リクエストが検出されると、そのプロセスはチェーン上のトランザクションを提出することによって、コントラクト関連のメソッドを呼び出し、指定された日の原油取引量データをスマートコントラクトに送信します。
! オラクル解説シリーズのチェーンリンク(パート1)](https://img-cdn.gateio.im/webp-social/moments-30dffd84ae22b9fa8f93929cd523ef99.webp0192837465674839201
多くのオラクルマシンプロジェクトの中で、Chainlinkは最大の市場シェアを占めています。Chainlinkは、ブロックチェーンに現実世界のデータを安全かつ信頼性の高い方法で提供することを目的とした分散型オラクルネットワークです。基本的なオラクルマシンの原理に基づいて、LINKトークンを中心に経済的インセンティブ駆動のエコシステムが構築されています。Chainlinkオラクルのトリガーは、LINKトークンの転送を通じて実現され、LINKはイーサリアムネットワーク上の特別なERC677トークンです。
! オラクル解説シリーズのチェーンリンクパート1])https://img-cdn.gateio.im/webp-social/moments-36eedcde4ebee55bf1c0e6c5f02934df.webp(
ERC677標準はChainlinkがオラクルマシンサービスシナリオを満たすために提案したものです。それはERC20標準の基礎の上にtransferAndCallメソッドを追加し、支払いとサービスリクエストを一つに統合します。ユーザーがtransferAndCallを呼び出して送金を行うと、ERC20の送金機能を完了するだけでなく、受取先アドレスがコントラクトアドレスである場合、そのアドレスのonTokenTransferメソッドも呼び出されます。
! チェーンリンク(オラクル解説シリーズのパート1)])https://img-cdn.gateio.im/webp-social/moments-d05f88f78a86510920ca9cb9cb97fcd6.webp(
Chainlinkの設計では、オラクルマシン契約のonTokenTransferメソッドが最初に転送がLINKトークンであるかどうかを検証し、その後リクエストデータの有効性をチェックします。一連のセキュリティチェックを経て、契約はリクエストの詳細データを含むOracleRequestイベントを発行します。
! オラクル解説シリーズのチェーンリンクパート1])https://img-cdn.gateio.im/webp-social/moments-dae23b36c6a83626aa95ba58fa8dbee5.webp(
オフチェーンノードはこれらのOracleRequestイベントをリスンします。新しいリクエストが検出されると、ノードはイベント内のデータを解析し、API呼び出しを通じて必要な情報を取得します。その後、トランザクションを提出する方法で、オラクルマシンコントラクトのfulfillOracleRequestメソッドを呼び出し、データをオンチェーンに提出します。このメソッドは一連の検証を行った後、以前に記録されたコールバックアドレスと関数を介して結果をリクエスト元のコントラクトに返します。
! オラクル解説シリーズのチェーンリンク(パート1)])https://img-cdn.gateio.im/webp-social/moments-1994fff156354700fda0609f9e317726.webp(
開発者にとって、既存の通貨ペアの価格データを取得するだけであれば、Chainlinkが提供するPrice Feedインターフェースを直接使用できます。各取引ペアには個別のPrice Feed(別名Aggregator)があり、実際にはAggregatorProxyコントラクトです。これらのインターフェースは、価格精度、取引ペアの説明、バージョン情報を取得するためのいくつかの重要なクエリメソッドを提供しており、ラウンドIDに基づいて過去の価格データと最新の価格データを取得することができます。
! オラクル解説シリーズのチェーンリンク(パート1)])https://img-cdn.gateio.im/webp-social/moments-bb84d77f358852f47e9adf3e74ba5bf9.webp(
ほとんどのアプリケーションシーンでは、契約は最新の価格を読み取るだけで済む場合があります。latestRoundData)(メソッドを呼び出すことで最新の価格データを取得できます。このとき、answerパラメータが最新の価格です。注意すべきは、米ドルを基準としたほとんどの取引ペアの価格精度が統一されて8桁の小数であるため、異なるトークン間の精度処理が簡素化されるということです。
! オラクル解説シリーズのチェーンリンク(パート1)])https://img-cdn.gateio.im/webp-social/moments-527bd8714534f5f06ccdd9afe40b253a.webp(
この方法により、Chainlinkはブロックチェーンの世界に強力で柔軟なオラクルマシンソリューションを提供し、スマートコントラクトが安全かつ信頼性高くチェーン外データを取得し利用できるようにします。
! Chainlink(Oracle Explainerシリーズのパート1)])https://img-cdn.gateio.im/webp-social/moments-06e79466fe62a401c6140e09e5bd5401.webp(