Chainlink:智能合約與現實世界的橋梁

robot
摘要生成中

預言機原理與Chainlink介紹

預言機是區塊鏈世界中不可或缺的基礎設施,它能爲智能合約提供外部數據。作爲連接智能合約和現實世界的橋梁,預言機在區塊鏈生態中扮演着至關重要的角色。

預言機詳解系列之 Chainlink(上)

智能合約本身無法獲取鏈下數據,因此需要預言機來實現這一功能。例如,若以太坊上的智能合約需要某日的原油交易量數據,它會將請求寫入事件日志。隨後,鏈下進程會監聽該日志,並通過調用合約方法將所需數據上傳至智能合約中。

預言機詳解系列之 Chainlink(上)

Chainlink是目前市場份額最大的去中心化預言機項目。它通過LINK代幣建立了一個經濟激勵驅動的生態系統,確保以最安全的方式向區塊鏈提供現實世界的數據。Chainlink預言機的觸發需要通過LINK代幣的轉帳來實現,這屬於請求/響應模式。

預言機詳解系列之 Chainlink(上)

LINK代幣是基於ERC677標準的代幣,在ERC20的基礎上增加了transferAndCall方法。該方法將支付和服務請求合二爲一,更好地滿足了預言機的業務需求。當用戶使用transferAndCall進行轉帳時,除了轉帳操作外,還會調用接收地址的onTokenTransfer方法。

預言機詳解系列之 Chainlink(上)

預言機合約的onTokenTransfer方法會進行一系列安全檢查,包括驗證轉帳代幣是否爲LINK、檢查數據長度是否超限、驗證function selector等。通過檢查後,會通過delegatecall調用oracle合約的oracleRequest方法。

預言機詳解系列之 Chainlink(上)

oracleRequest方法會生成唯一的requestId,設置過期時間,並發出OracleRequest事件。該事件包含了請求數據,通常是CBOR格式的二進制數據。

預言機詳解系列之 Chainlink(上)

鏈下節點監聽到OracleRequest事件後,會解析出具體請求信息,通過API調用獲取結果,然後調用fulfillOracleRequest方法將數據提交到鏈上。該方法經過一系列驗證後,會調用請求者合約的回調函數,將結果返回給消費者合約。

預言機詳解系列之 Chainlink(上)

對於開發者而言,Chainlink還提供了更簡便的Price Feed接口。每個交易對都有一個AggregatorProxy合約,提供了查詢價格的幾個簡單方法。其中latestRoundData()方法可直接獲取最新價格數據,無需自行指定API等復雜設置。

預言機詳解系列之 Chainlink(上)

總的來說,Chainlink通過LINK代幣和精心設計的合約架構,在保證安全性的同時,爲智能合約提供了便捷可靠的外部數據訪問能力,推動了區塊鏈生態的進一步發展。

預言機詳解系列之 Chainlink(上)

LINK6.73%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 5
  • 轉發
  • 分享
留言
0/400
GasFeeSobbervip
· 08-07 15:41
预言机真香啊
回復0
Crypto金矿vip
· 08-07 13:36
技术黄金期布局
回復0
地板价观察员vip
· 08-06 01:54
链下链上无缝通
回復0
链上侦探小饼vip
· 08-06 01:53
link必须得看懂
回復0
MemeTokenGeniusvip
· 08-06 01:49
最大的预言机 Link
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)