イーサリアムスマートコントラクトを使用して独自のOracleを構築する方法は? PlatoBlockchainデータインテリジェンス。 垂直検索。 愛。

イーサリアムスマートコントラクトを使用して独自のOracleを構築する方法は?

読み取り時間: 5

イーサリアムは、dappの作成、ブロックチェーンでの暗号資産の取引などの品質を継承した初めてのブロックチェーンです。

スマートコントラクトを記述し、それらをイーサリアム仮想マシンに実装して、アクティビティの実行に分散化を注入するプログラミング言語があります。 

スマートコントラクトは、事前定義されたコード行を実行し、目的のタスクを実行します。 しかし、リアルタイムの結果に基づいてスマートコントラクトを機能させたい場合はどうでしょうか?

これを実現するには、スマートコントラクトが現実の世界から入力を受け取ることができるブロックチェーンオラクルの概念を理解する必要があります。 

暗号通貨のオラクルとは何ですか?イーサリアムスマートコントラクトでオラクルを作成する方法は? これについては、次のセクションで詳しく説明します。 

ブログの重要なトピック

  • 暗号オラクルとは何ですか、そしてオラクルはどのように機能しますか
  • さまざまな種類のオラクル
  • オラクルからイーサリアムスマートコントラクトへのデータの流れ
  • イーサリアムオラクルのコーディング方法
  • 暗号オラクルの問題

オラクルとは何ですか、なぜそれが必要なのですか?

神託 ブロックチェーンと外部システムを接続するブリッジとして機能するエンティティです。 言い換えると、オラクルはオフチェーンイベントデータをスマートコントラクトに提供して、入力に基づいてアクションを実行します。

たとえば、賭けイベントでは、ユーザーは試合に勝つと思うプレーヤーに賭けることができます。 リアルタイムの出来事に基づいて、勝者に賭けたユーザーに報酬が分配されます。 

ブロックチェーンオラクルは、勝者に関するデータをスマートコントラクトに補足するのに役立ちます。 オラクルのデータフローは双方向であり、天気予報から株式市場のステータス、スマートコントラクトまでのリアルタイムデータを変換するために使用できます。 

イーサリアムブロックチェーン内のすべてのノードは、トランザクションに関する情報を持っています。これは均一である必要があります。 したがって、APIからデータをフェッチすると、不一致が生じる可能性があります。 対照的に、オラクルはデータをブロックチェーンにロードします。ブロックチェーンはすべてのノードで同じように見えます。

ブロックチェーンオラクル
ブロックチェーンオラクル

Oracleからデータにアクセスする方法は?

スマートコントラクトは、要求と応答のサイクルを使用して、オラクルノードから情報を取得します。 HTTP GETで実装されたオラクルはスマートコントラクトからリクエストを受信し、コールバック関数はオラクルからリクエストされたデータを取得できます。 

このように、データはオラクルからスマートコントラクトによって収集されます。 各オラクルは特定の情報を提供するように構成されており、探しているデータを取得するためにサードパーティのサービスを探すことができます。 

ここにいくつかのオラクルサービスがあります

  • チェーンリンク
  • 提供可能
  • ウィットネット
  • パラリンクなど。

オラクルの分類

オラクルは、データのフェッチ、検証、および転送に応じて、さまざまなタイプに分類されます。 

入力オラクル: データがリアルタイムの出来事からオフチェーンでフェッチされる、最も広く認識されているタイプ。 例: 株式の価格フィードは、金融市場の状況に基づいてスマートコントラクトのアクションをトリガーするためにオフチェーンから取得されます。

出力オラクル: スマートコントラクトがオラクルにアクションを実行するように促す入力オラクルの逆。 例: データを保存するためにストレージプロバイダーに信号を送信するか、支払いを行うために銀行ネットワークを開始します。

クロスチェーンオラクル: クロスチェーンオラクルは、異なるブロックチェーンでのデータの読み取りと書き込みの両方を容易にします。 また、あるブロックチェーンでイベントをトリガーし、別のブロックチェーンで動作させることもできます。 

コンピューティング対応のオラクル: コンピューティング対応のオラクルは、オフチェーン計算を利用してサービスを提供します。 特に、技術的または財政的制約のためにオンチェーンが信頼できない場合は、このタイプのオラクルが使用されます。

オラクルからのデータフェッチ

ステップ1:スマートコントラクトはオラクルにクエリを送信します。

ステップ2:クエリはデータキャリアに送信され、データキャリアはデータソースからデータを検索します

ステップ3:データはソースから取得され、オラクルに送られます。

ステップ4:Oracleは、要求に応じてスマートコントラクトに応答を送信します。 

イーサリアムスマートコントラクトでのOracleの作成–コード構造

Provableと呼ばれるオラクルサービスを使用して、ビットコインの現在の価格を米ドルで決定する際にオラクルがどのように機能するかを確認します。 

pragma solidity >= 0.5.0 < 0.6.0; //Declaring the Solidity version import "github.com/provable-things/ethereum-api/provableAPI.sol"; //Importing latest version of provable API contract BitcoinPrice is usingProvable { //Contract named BitcoinPrice, UsingProvable refers to the API uint public bitcoinPriceUSD; //bitcoinPriceUSD is the variable created to store the price, Provable query event that makes a constructor event LogNewBitcoinPrice(string price); event LogNewProvableQuery(string description); constructor() public { update(); } // callback function to call the smart contract after the output is received and transfers the result from callback function to the variable assigned function __callback( bytes32 _myid, string memory _result ) public { require(msg.sender == provable_cbAddress()); emit LogNewBitcoinPrice(_result); BitcoinPriceUSD = parseInt(_result, 2); // Let's save it as cents... } //passing output string and API string to fetch bitcoin price to our constructor function update() public payable { emit LogNewProvableQuery("Provable query was sent, standing by for the answer..."); provable_query("URL", "xml("https://min-api.cryptocompare.com/data/generateAvg?fsym=BTC&tsym=USD&e=Kraken" ); } } 

Oracleの問題

オラクルの問題は、サードパーティからのデータのセキュリティと信頼性を考慮すると、基本的に信頼できないスマートコントラクトと信頼できるサードパーティのオラクルの間の競合です。

スマートコントラクトは、実行に関する決定をオラクルに依存しており、オラクルの機能に計り知れない力を与えています。 実際のところ、スマートコントラクトの分散型の性質が疑問視されています。 

ただし、ChainLinkやOraclizeなどのオラクルサービスは、斬新で認証された方法に基づいてデータを導出する分散型ソリューションとして機能します。 したがって、得られるデータは分散型の手段によるものです。  

まとめ

ブロックチェーンと現実の世界との接続性は、分散型の世界に向けて飛躍するために受け入れられるほど重要です。 オラクルは、リアルタイムデータを使用したスマートコントラクトの信頼性の高いインターフェイスのためのソリューションを提供しています。 

ただし、持続可能性を実現するために、オラクルサービスによって、オフチェーンで取得されたデータのセキュリティと正確性を強化するための進歩が見られます。 

より関連性を保ちたい Web3セキュリティ?

続きます クイルオーディッツ Web3に関するそのような最新の記事の多くについて。

23 ビュー

ポスト イーサリアムスマートコントラクトを使用して独自のOracleを構築する方法は? 最初に登場した ブログ.quillhash.

タイムスタンプ:

より多くの クイルハッシュ