読み取り時間: 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に関するそのような最新の記事の多くについて。
ポスト イーサリアムスマートコントラクトを使用して独自のOracleを構築する方法は? 最初に登場した ブログ.quillhash.
- "
- a
- 私たちについて
- アクセス
- 達成する
- 取得する
- 行為
- Action
- 活動
- 進歩
- すべて
- 別の
- 回答
- API
- API
- 登場
- 資産
- 割り当てられた
- 認証された
- 信頼性
- 銀行
- 賭け
- の間に
- Bitcoin
- Bitcoin Price
- ブロック
- ブロックチェーン
- ブロックチェーン
- BRIDGE
- 持って来る
- ビルド
- コール
- チェーンリンク
- コード
- 計算
- コンセプト
- 条件
- 紛争
- 接続する
- 接続性
- 縮小することはできません。
- 契約
- 可能性
- 作ります
- 作成した
- 作成
- クロスチェーン
- クリプト
- 暗号資産
- CryptoCompare
- 電流プローブ
- DApps
- データ
- 分権化
- 決定
- によっては
- 説明
- 詳細
- 決定
- 異なります
- 話し合います
- ディスプレイ
- 配布
- 各
- エンティティ
- 特に
- イーサリアム
- エテリアムブロック鎖
- イベント
- イベント
- 例
- 実行
- FRBは
- ファイナンシャル
- 金融市場
- 名
- フロー
- フォロー中
- フォワード
- から
- function
- 機能します
- 根本的に
- GitHubの
- 与え
- 助けます
- 認定条件
- How To
- HTTPS
- 実装する
- 実装
- その他の
- 情報
- インタフェース
- IT
- 言語
- 最新の
- ライン
- 見て
- 機械
- 製
- make
- 作る
- 作成
- 市場
- 一致
- 問題
- 手段
- メモリ
- メソッド
- 他には?
- 最も
- 自然
- ネットワーク
- ノード
- 得
- 提供すること
- オンチェーン
- オラクル
- その他
- 自分の
- 支払い
- 実行
- プレーヤー
- 可能
- 電力
- ブランド
- 問題
- プログラミング
- 提供します
- プロバイダー
- 公共
- 質問
- リーディング
- 現実の世界
- への
- リアルタイムデータ
- 受け取ります
- 受け
- 認識された
- 指し
- に対する
- 関連した
- 信頼性のある
- レポート
- 要求
- 応答
- 結果
- 報酬
- 同じ
- Save
- セキュリティ
- サービス
- サービス
- 重要
- スマート
- スマート契約
- スマート契約
- So
- SOL
- 固い
- 溶液
- ソリューション
- 一部
- 特定の
- Status:
- 滞在
- 株式
- 株式市場
- ストック
- ストレージ利用料
- 店舗
- データを保存する
- 3つの柱
- システム
- 技術的
- ソース
- したがって、
- 第三者
- サードパーティ
- 介して
- 時間
- トピック
- トレーディング
- 取引暗号
- 取引
- 転送
- 転送
- 信頼されている
- わかる
- USD
- つかいます
- users
- さまざまな
- バージョン
- バーチャル
- バーチャルマシン
- Web3
- この試験は
- 誰
- win
- 言葉
- 仕事
- 作品
- 世界
- 書き込み
- あなたの