QRコードをスキャンしてダウンロードしてください。
BTC $73,959.67 -0.70%
ETH $2,319.89 -2.81%
BNB $615.35 -0.44%
XRP $1.35 -1.42%
SOL $83.11 -3.40%
TRX $0.3224 +0.31%
DOGE $0.0927 -1.57%
ADA $0.2398 -1.57%
BCH $434.15 -0.73%
LINK $9.06 -1.60%
HYPE $43.65 -2.69%
AAVE $100.48 -0.55%
SUI $0.9362 -1.38%
XLM $0.1560 -0.40%
ZEC $358.02 -4.84%
BTC $73,959.67 -0.70%
ETH $2,319.89 -2.81%
BNB $615.35 -0.44%
XRP $1.35 -1.42%
SOL $83.11 -3.40%
TRX $0.3224 +0.31%
DOGE $0.0927 -1.57%
ADA $0.2398 -1.57%
BCH $434.15 -0.73%
LINK $9.06 -1.60%
HYPE $43.65 -2.69%
AAVE $100.48 -0.55%
SUI $0.9362 -1.38%
XLM $0.1560 -0.40%
ZEC $358.02 -4.84%

Web3 - オラクル基礎編: ブロックチェーンと現実世界の架け橋

Summary:
The Web3 DAO
2025-07-08 21:40:58
コレクション

一.オラクル(Oracle)とは

ブロックチェーンの世界では、スマートコントラクトは「自動実行プログラム」の一種ですが、自然な制限があります:オフチェーンデータに直接アクセスできません。これは、スマートコントラクトが天気データ、金融データ、物流状況、さらには乱数を必要とする場合、直接取得できないことを意味します。

オラクル(Oracle)はこの問題を解決するために使用されます。これは「情報の仲介者」であり、オフチェーンデータをオンチェーンに持ち込むか、逆にオンチェーンの情報をオフチェーンに送信する役割を担っています。

例を挙げると

あなたが分散型保険契約を開発していると仮定しましょう。ユーザーは「暴雨保険」を購入でき、ある日降雨量が50mmを超えると、契約は自動的に支払いを行います。

しかし問題が発生します。スマートコントラクトはその日の天気をどうやって知るのでしょうか?自分で天気APIにアクセスすることはできません------これにはオラクルが必要です。オラクルは複数の天気APIからデータを収集し、最終的な結果をブロックチェーンに提出することで、契約がこれらのデータに基づいて意思決定を行えるようにします。

二.スマートコントラクトがオフチェーンデータに直接アクセスできない理由

ブロックチェーンの分散化と決定性の設計により、外部データを処理する際にいくつかの核心的な問題に直面します:

分散化の破壊

📡ブロックチェーンの核心は「分散化」ですが、スマートコントラクトが単一のデータソース(特定のAPIなど)に依存している場合、そのデータソースは単一障害点となり、操作される可能性があります。

📡例えば、ある天気APIがハッカーに攻撃されて誤ったデータを返すと、スマートコントラクトは誤った意思決定をする可能性があります。

一貫性の問題

📡ブロックチェーンはすべてのノードが同じ計算結果を得る必要がありますが、外部APIのデータは時と場所によって異なる可能性があります。

📡例えば、あるブロックチェーンノードが中国にあり、別のノードがアメリカにある場合、同じAPIにアクセスしても異なる為替レートデータを得ることがあり、これがコンセンサスの失敗を引き起こす可能性があります。

データの可用性の問題

📡もしAPIが突然ダウンした場合、それに依存するすべてのスマートコントラクトが正常に動作できなくなる可能性があります。

データの改ざん不可性

📡ブロックチェーン上のデータは変更できませんが、オフチェーンAPIのデータは変更可能です。

📡例えば、ある分散型取引所が特定のAPIに依存してETH/USDの価格を提供している場合、APIプロバイダーが故意に価格を改ざんすると、取引が操作される可能性があります。

三.オラクルの仕組み オラクルの核心的な役割は、オンチェーンの契約が安全かつ信頼性を持ってオフチェーンデータを取得できるようにすることです。典型的な作業フローは以下の通りです:

1.オンチェーンでデータをリクエスト

スマートコントラクトまたはユーザーがリクエストを開始し、オラクルに「特定のデータを取得したい」と伝えます。このリクエストはブロックチェーンに保存され、すべてのオラクルノードに通知されます。

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract WeatherOracleRequester {
    event WeatherRequest(uint256 requestId, string city, address callbackAddress);

    uint256 public nextRequestId;

    function requestWeather(string memory city) external {
        uint256 requestId = nextRequestId++;
        emit WeatherRequest(requestId, city, address(this));
    }
}

この例では、契約がemitイベントを通じてリクエストをブロードキャストし、オフチェーンのオラクルノードがこのリクエストをリッスンします。

2.オラクルがリクエストをリッスン

オフチェーンのオラクルノードはブロックチェーン上のリクエストをリッスンし、タスクを抽出します。例えば、次のようなリクエストを見つけるかもしれません:

リクエストID:101  
データタイプ:天気データ  
都市:上海  

APIデータソース:https://weatherapi.com/shanghai

3.オラクルがオフチェーンデータを取得

各オラクルノードはリクエストに従って、複数のデータソースからデータを取得します。例えば:

WeatherAPI.com:降雨量 52mm

OpenWeather.com:降雨量 51mm

LocalWeather.com:降雨量 53mm

4.データの検証と集約

異なるデータソースが異なる結果を返す可能性があるため、オラクルはデータの正確性を確保するために集約アルゴリズムを使用します:

中央値を取る:52mm

加重平均(異なるAPIの重みを考慮)

外れ値を除去(特定のAPIの結果が大きく偏っている場合は除外)

5.オラクルがデータをオンチェーンに提出

オラクルは処理されたデータをブロックチェーンに提出します。例えば:

contract WeatherOracle {

    event WeatherResponse(uint256 requestId, uint256 rainfall);

    function submitWeatherData(uint256 requestId, uint256 rainfall) external {

        emit WeatherResponse(requestId, rainfall);

    }

}

6.スマートコントラクトがデータを使用

スマートコントラクトはWeatherResponseイベントをリッスンし、それに基づいてロジックをトリガーします:

contract WeatherInsurance {

    mapping(address => uint256) public balances;

    function claimInsurance(uint256 rainfall) public {

        require(rainfall > 50, "No payout, rainfall too low");

        payable(msg.sender).transfer(balances[msg.sender]);

    }

}

降雨量が50mmを超えると、契約は自動的にユーザーに保険金を支払います。

四.オラクルの応用シーン

1.DeFiオラクル(分散型金融)

DeFiプロトコルは外部価格データを必要とします。例えばETH/USDの価格。一般的なオラクルにはChainlink、Pyth、Band Protocolがあり、信頼性のある市場データを提供します。

2.保険と天気予報機

分散型保険(Arbol、Etheriscなど)は、天気オラクルを使用して保険金の支払いを決定します。

3.サプライチェーンと物流

スマートコントラクトはオラクルを通じてサプライチェーンの状態を取得できます。例えば、貨物が配達されたかどうか。

4.乱数オラクル

オンチェーンで乱数を生成するのは難しいため、宝くじやNFTのミンティングなどは通常Chainlink VRFのような乱数オラクルに依存しています。

五.オラクルデータがすべてのマイナーのノードで一貫性を保つ方法は?

1.ブロックチェーンの状態モデル

オラクルがデータを更新すると、そのデータはスマートコントラクトに保存されます。

すべてのマイナーは取引を実行する際に、同じ状態を読み取ります。

2.データ同期メカニズム

オラクルがデータを提出すると、すべてのノードが同期して更新されます。

例えば、99番目のブロックでオラクルがETH/USDの価格を3000ドルに更新します。

100番目のブロックでは、AマイナーでもBマイナーでも3000ドルを読み取り、差異はありません。

六.まとめ

オラクルはブロックチェーンと現実世界をつなぐ橋であり、スマートコントラクトがオフチェーンデータにアクセスできるようにします。

スマートコントラクトが外部APIに直接アクセスできないため、オラクルはリクエストをリッスンし、データを取得し、データを検証し、データを提出することでこの問題を解決します。

オラクルの核心的な課題はデータの真実性、分散化、一貫性であり、一般的な解決策には分散型オラクル、データ集約、コンセンサスメカニズムが含まれます。

オラクルはDeFi、保険、サプライチェーン、NFT、乱数生成などの分野で広く利用されています。

今後、オラクル技術の進化に伴い、Web3アプリケーションはさらにスマートになり、ブロックチェーンは現実世界との相互作用がより密接になるでしょう!

The Web3コミュニティの紹介

The Web3は、Web3技術ソリューションの設計と開発に特化したコミュニティであり、個人や企業に専門的な向上を提供するチュートリアルの設計、開発、トレーニングサービスを提供しています。さらに、The Web3はプロジェクトのセキュリティ監査、投資研究分析、プロジェクトの孵化など、全方位のサポートも提供しています。

  • The Web3は三つのコアセクションで構成されています:
  • 「The Web3コミュニティ」 :教育訓練に特化し、130名の優秀な開発エンジニアと30名以上の卓越したプロダクトマネージャーを成功裏に育成しました。
  • 「The Web3セキュリティラボ」 :DappLink、FishCake、Parapack、RootHashなどの著名なプロジェクトに専門的なセキュリティ監査サービスを提供しています。
  • 「The Web3キャピタル」 :累計200万ドル以上の投資を行い、Web3の革新プロジェクトの孵化と成長を積極的に推進しています。
warnning リスク警告
app_icon
ChainCatcher Building the Web3 world with innovations.