# オラクルマシン:ブロックチェーンと現実世界をつなぐ架け橋ブロックチェーン技術において、オラクルマシンは重要なインフラストラクチャの役割を果たしています。それは、チェーン上のスマートコントラクトに外部情報を提供できるシステムであり、ブロックチェーンと外部世界との間のミドルウェアとして機能します。オラクルマシンの主な機能は、ブロックチェーン上のスマートコントラクトに必要な外部データを提供することです。例えば、私たちがイーサリアムネットワーク上に特定の日の原油取引量データを取得する必要があるスマートコントラクトを作成したとします。スマートコントラクト自体はこのようなオフチェーンの現実世界データを直接取得できないため、オラクルマシンを通じて実現する必要があります。この場合、スマートコントラクトは必要な原油取引量データをイベントログに書き込みます。その後、オフチェーンでこのイベントログを監視し、購読するプロセスが開始されます。取引内のリクエストが検出されると、そのプロセスはオンチェーン取引を提出し、コントラクトの関連メソッドを呼び出して、指定された日の原油取引量情報をスマートコントラクトにアップロードします。! チェーンリンク(オラクル解説シリーズのパート1)](https://img-cdn.gateio.im/social/moments-ced3348559da0aabbf1c67c4d84ddc88)## Chainlink:ブロックチェーンオラクルマシンのリーダーオラクルマシンの分野では、Chainlinkは間違いなく市場シェアが最も大きいプロジェクトです。分散型のオラクルマシンソリューションとして、Chainlinkの目標は、最も安全な方法でブロックチェーンに現実世界で生成されるデータを提供することです。基本的なオラクルマシンの原理に基づき、ChainlinkはLINKトークンを中心に経済的インセンティブによって良性の循環を形成するエコシステムを構築しています。! オラクル解説シリーズのチェーンリンク(パート1)](https://img-cdn.gateio.im/social/moments-30dffd84ae22b9fa8f93929cd523ef990192837465674839201Chainlinkオラクルマシンのトリガーは、LINKトークンの転送を通じて実現されます。LINKはイーサリアムネットワークに基づくERC677契約トークンです。LINK ERC677トークンを基にしたオラクルマシン機能はリクエスト/レスポンスモデルに属します。) transferAndCall を ERC677 トークンでERC677標準はChainlinkがオラクルマシンサービスのシナリオに適応するために提案したものです。それは標準ERC20の基礎の上にtransferAndCallメソッドを追加し、支払いとサービスリクエストを一つに統合し、オラクルマシンビジネスシナリオの要求を満たしました。ユーザーがtransferAndCallを使用して送金する際、通常のERC20送金に加え、受取アドレスがコントラクトアドレスであるかどうかも判断されます。もしそうであれば、そのアドレスのonTokenTransferメソッドが呼び出されます。注意すべきは、オラクルマシンサービスをリクエストする前に、ユーザーはそのオラクルマシンの信頼性を確認する必要があることです。なぜなら、オラクルマシンサービスは事前に支払いが必要だからです。! オラクル解説シリーズのチェーンリンクパート1]###https://img-cdn.gateio.im/social/moments-36eedcde4ebee55bf1c0e6c5f02934df() チェーン上オラクルマシンリクエストプロセスオラクルマシンの消費者がtransferAndCallメソッドを使用して料金を支払い、サービスをリクエストする際、オラクルマシン契約内のonTokenTransferメソッドはまず一連のセキュリティチェックを実行します。これには、転送がLINKトークンであることの確認、データの長さが制限を超えていないかのチェック、データが正しい機能セレクタを含んでいるかの検証などが含まれます。安全チェックを通過した後、契約は一意のrequestIdを生成し、リクエストの有効期限を設定します。最後に、契約はリクエストの詳細データを含むOracleRequestイベントを発出します。! チェーンリンク(オラクル解説シリーズのパート1)]###https://img-cdn.gateio.im/social/moments-d05f88f78a86510920ca9cb9cb97fcd6() オフチェーンノード応答メカニズムオフチェーンノードは、OracleRequestイベントを受信後、リクエストの具体的な情報を解析し、ネットワークAPIを通じて必要なデータを取得します。その後、ノードはfulfillOracleRequestメソッドを呼び出し、データをオンチェーンに提出します。この方法は、一連の検証を行います。これには、呼び出し元が認可されているかの確認や、リクエストの有効性の検証が含まれます。検証が通過した後、コントラクトは引き出し可能なトークンの額を記録し、commitmentsマップからそのrequestIdを削除します。最後に、コントラクトはリクエスターコントラクトのコールバック関数を呼び出し、データを消費者に返します。! オラクル解説シリーズのチェーンリンクパート1]###https://img-cdn.gateio.im/social/moments-dae23b36c6a83626aa95ba58fa8dbee5() 価格オラクルマシンの実際の応用開発者にとって、既存の通貨ペアの価格データを使用するだけであれば、Chainlinkが提供するPrice Feedインターフェースを直接使用できます。各取引ペアには個別のPrice Feed###、またAggregator(とも呼ばれ、実際にはAggregatorProxyコントラクトです。これらのインターフェースは通常、以下のいくつかのクエリメソッドを提供します:- decimals)(: 価格データを返す精度の桁数- description)(:取引ペアの名前を返します- version)(: プロキシが送信されるアグリゲーター タイプを示します- getRoundData)_roundId(:特定のラウンドの価格データを取得する- latestRoundData)(:最新の価格データを取得するほとんどのアプリケーションシーンでは、契約は最新の価格を読み取るだけでよく、つまりlatestRoundData)(メソッドを呼び出す必要があります。返されるanswerパラメータが最新の価格です。注目すべきは、ほとんどのアプリケーションが読み込むトークン価格はUSDを基準にしていることです。この場合、精度は通常8桁に統一されており、異なるトークン間の精度処理の問題を簡素化しています。! オラクル解説シリーズのチェーンリンク(パート1)])https://img-cdn.gateio.im/social/moments-1994fff156354700fda0609f9e317726(
オラクルマシンはどのようにブロックチェーンと現実世界のデータブリッジになるのか
オラクルマシン:ブロックチェーンと現実世界をつなぐ架け橋
ブロックチェーン技術において、オラクルマシンは重要なインフラストラクチャの役割を果たしています。それは、チェーン上のスマートコントラクトに外部情報を提供できるシステムであり、ブロックチェーンと外部世界との間のミドルウェアとして機能します。オラクルマシンの主な機能は、ブロックチェーン上のスマートコントラクトに必要な外部データを提供することです。
例えば、私たちがイーサリアムネットワーク上に特定の日の原油取引量データを取得する必要があるスマートコントラクトを作成したとします。スマートコントラクト自体はこのようなオフチェーンの現実世界データを直接取得できないため、オラクルマシンを通じて実現する必要があります。この場合、スマートコントラクトは必要な原油取引量データをイベントログに書き込みます。その後、オフチェーンでこのイベントログを監視し、購読するプロセスが開始されます。取引内のリクエストが検出されると、そのプロセスはオンチェーン取引を提出し、コントラクトの関連メソッドを呼び出して、指定された日の原油取引量情報をスマートコントラクトにアップロードします。
! チェーンリンク(オラクル解説シリーズのパート1)](https://img-cdn.gateio.im/webp-social/moments-ced3348559da0aabbf1c67c4d84ddc88.webp)
Chainlink:ブロックチェーンオラクルマシンのリーダー
オラクルマシンの分野では、Chainlinkは間違いなく市場シェアが最も大きいプロジェクトです。分散型のオラクルマシンソリューションとして、Chainlinkの目標は、最も安全な方法でブロックチェーンに現実世界で生成されるデータを提供することです。基本的なオラクルマシンの原理に基づき、ChainlinkはLINKトークンを中心に経済的インセンティブによって良性の循環を形成するエコシステムを構築しています。
! オラクル解説シリーズのチェーンリンク(パート1)](https://img-cdn.gateio.im/webp-social/moments-30dffd84ae22b9fa8f93929cd523ef99.webp0192837465674839201
Chainlinkオラクルマシンのトリガーは、LINKトークンの転送を通じて実現されます。LINKはイーサリアムネットワークに基づくERC677契約トークンです。LINK ERC677トークンを基にしたオラクルマシン機能はリクエスト/レスポンスモデルに属します。
) transferAndCall を ERC677 トークンで
ERC677標準はChainlinkがオラクルマシンサービスのシナリオに適応するために提案したものです。それは標準ERC20の基礎の上にtransferAndCallメソッドを追加し、支払いとサービスリクエストを一つに統合し、オラクルマシンビジネスシナリオの要求を満たしました。
ユーザーがtransferAndCallを使用して送金する際、通常のERC20送金に加え、受取アドレスがコントラクトアドレスであるかどうかも判断されます。もしそうであれば、そのアドレスのonTokenTransferメソッドが呼び出されます。注意すべきは、オラクルマシンサービスをリクエストする前に、ユーザーはそのオラクルマシンの信頼性を確認する必要があることです。なぜなら、オラクルマシンサービスは事前に支払いが必要だからです。
! オラクル解説シリーズのチェーンリンクパート1]###https://img-cdn.gateio.im/webp-social/moments-36eedcde4ebee55bf1c0e6c5f02934df.webp(
) チェーン上オラクルマシンリクエストプロセス
オラクルマシンの消費者がtransferAndCallメソッドを使用して料金を支払い、サービスをリクエストする際、オラクルマシン契約内のonTokenTransferメソッドはまず一連のセキュリティチェックを実行します。これには、転送がLINKトークンであることの確認、データの長さが制限を超えていないかのチェック、データが正しい機能セレクタを含んでいるかの検証などが含まれます。
安全チェックを通過した後、契約は一意のrequestIdを生成し、リクエストの有効期限を設定します。最後に、契約はリクエストの詳細データを含むOracleRequestイベントを発出します。
! チェーンリンク(オラクル解説シリーズのパート1)]###https://img-cdn.gateio.im/webp-social/moments-d05f88f78a86510920ca9cb9cb97fcd6.webp(
) オフチェーンノード応答メカニズム
オフチェーンノードは、OracleRequestイベントを受信後、リクエストの具体的な情報を解析し、ネットワークAPIを通じて必要なデータを取得します。その後、ノードはfulfillOracleRequestメソッドを呼び出し、データをオンチェーンに提出します。
この方法は、一連の検証を行います。これには、呼び出し元が認可されているかの確認や、リクエストの有効性の検証が含まれます。検証が通過した後、コントラクトは引き出し可能なトークンの額を記録し、commitmentsマップからそのrequestIdを削除します。最後に、コントラクトはリクエスターコントラクトのコールバック関数を呼び出し、データを消費者に返します。
! オラクル解説シリーズのチェーンリンクパート1]###https://img-cdn.gateio.im/webp-social/moments-dae23b36c6a83626aa95ba58fa8dbee5.webp(
) 価格オラクルマシンの実際の応用
開発者にとって、既存の通貨ペアの価格データを使用するだけであれば、Chainlinkが提供するPrice Feedインターフェースを直接使用できます。各取引ペアには個別のPrice Feed###、またAggregator(とも呼ばれ、実際にはAggregatorProxyコントラクトです。
これらのインターフェースは通常、以下のいくつかのクエリメソッドを提供します:
ほとんどのアプリケーションシーンでは、契約は最新の価格を読み取るだけでよく、つまりlatestRoundData)(メソッドを呼び出す必要があります。返されるanswerパラメータが最新の価格です。
注目すべきは、ほとんどのアプリケーションが読み込むトークン価格はUSDを基準にしていることです。この場合、精度は通常8桁に統一されており、異なるトークン間の精度処理の問題を簡素化しています。
! オラクル解説シリーズのチェーンリンク(パート1)])https://img-cdn.gateio.im/webp-social/moments-1994fff156354700fda0609f9e317726.webp(