在区块链技术领域,预言机作为连接智能合约与链外数据的重要中间件,扮演着基础设施的角色。其核心功能是为区块链中的智能合约提供必要的外部数据支持。
例如,在以太坊网络上开发的智能合约如果需要原油某日交易量的数据,由于智能合约自身无法直接获取此类现实世界的数据,这就需要通过预言机来实现数据传输。
数据源自 https://defillama.com/oracles
Chainlink
在众多预言机解决方案中,Chainlink以其去中心化特性成为市场上的佼佼者。它通过经济激励机制围绕LINK代币构建了一个生态系统,确保了向区块链提供现实世界数据的安全性。
ERC 677 代币中的 transferAndCall
为了满足支付后提供服务的需求,Chainlink提出了ERC 677标准,该标准在ERC 20基础上增加了transferAndCall方法,简化了支付和服务请求流程。
使用LINK代币进行转账时,会触发接收地址的onTokenTransfer方法,从而激活预言机服务。
预言机可信度划分
链上 oracle 请求
当用户发起请求时,oracle合约的onTokenTransfer方法将执行一系列验证步骤,并发出OracleRequest事件。
OracleRequest 事件示例
链下节点回应
3.1 链下调用 fulfillOracleRequest
链下节点响应请求时,需经过授权和有效性验证,随后调用回调函数完成数据更新。
3.2 回调函数
回调函数负责处理返回的数据,如价格更新等。
本文由 ZAN Team(X 账号 @zan_team) 的 XiG(X 账号 @SHXiGi)撰写。