广场
最新
热门
资讯
我的主页
发布
WalletDivorcer
2026-05-11 13:55:11
关注
在区块链的世界里,智能合约访问现实数据时,Oracle机器是不可或缺的。这实际上是很多人低估的部分。
智能合约对区块链内部的数据非常强大,但完全无法访问外部世界的信息。例如,想将今天的原油交易量反映到合约中,但这些信息在链外,因此需要某种中介。这就是Oracle机器的作用。
这个Oracle机器的机制其实是简单的请求-响应方式。智能合约向外部发出“请提供这些数据”的请求,Oracle捕获请求,获取现实世界的数据,然后返回到链上。这一系列流程就是Oracle机器的基本操作。
在区块链行业中占据压倒性份额的是Chainlink项目。Chainlink是一个去中心化的Oracle机器,专注于以最安全的方式将现实世界的数据提供给区块链。它以LINK代币为核心,通过激励设计构建生态系统。
要运行Chainlink的Oracle机器,需要转移LINK代币。这个LINK是在以太坊网络上的ERC677标准中实现的。这里是关键点。标准的ERC20不能同时执行支付和服务请求,因此Chainlink提出了自己版本的ERC677。
ERC677的核心方法是“transferAndCall”。通过它,代币转移和服务请求可以在一个交易中完成。当用户执行transferAndCall时,除了进行ERC20转账外,还会自动调用接收地址的onTokenTransfer方法。
当Oracle机器收到请求后,首先会进行多项安全检查。确认发起方是否确实是LINK代币合约,数据大小是否合适,函数选择器是否正确。通过验证后,会生成一个唯一的requestId,并在事件日志中记录。
这个事件由链下节点监控。节点读取事件中的必要信息,通过网络API获取现实世界的数据。然后调用fulfillOracleRequest方法,将数据返回到链上。这一流程构成了Oracle机器的完整循环。
在实现方面,Chainlink提供了现有交易对的价格数据源,也就是Aggregator。使用它,开发者无需自己指定API。像ETH/USD这样的主要交易对已经准备好,只需调用latestRoundData()方法,即可获取最新价格。
大多数应用只需要读取最新的价格数据。特别是以美元计价的价格,精度统一设为8位,因此无需复杂处理。也就是说,使用Oracle机器实现价格数据源其实比想象中简单。
正因为有这样的机制,DeFi协议和复杂的金融产品才能得以实现。没有Oracle机器,区块链与现实世界的桥梁就无法建立。Gate.io也可以看到利用这些Oracle的各种项目,如果感兴趣,可以去了解一下。
ETH
-5.79%
查看原文
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见
声明
。
赞赏
点赞
评论
转发
分享
评论
请输入评论内容
请输入评论内容
评论
暂无评论
热门话题
查看更多
#
0成本拿2股SK海力士
153.71万 热度
#
美光市值超越Meta跻身全美前十
3.62万 热度
#
法国VS挪威
33.1万 热度
#
美国5月PCE通胀升至4.1%创三年新高
52.23万 热度
#
USD1链上质押享年化9.48%
97.94万 热度
置顶
网站地图
在区块链的世界里,智能合约访问现实数据时,Oracle机器是不可或缺的。这实际上是很多人低估的部分。
智能合约对区块链内部的数据非常强大,但完全无法访问外部世界的信息。例如,想将今天的原油交易量反映到合约中,但这些信息在链外,因此需要某种中介。这就是Oracle机器的作用。
这个Oracle机器的机制其实是简单的请求-响应方式。智能合约向外部发出“请提供这些数据”的请求,Oracle捕获请求,获取现实世界的数据,然后返回到链上。这一系列流程就是Oracle机器的基本操作。
在区块链行业中占据压倒性份额的是Chainlink项目。Chainlink是一个去中心化的Oracle机器,专注于以最安全的方式将现实世界的数据提供给区块链。它以LINK代币为核心,通过激励设计构建生态系统。
要运行Chainlink的Oracle机器,需要转移LINK代币。这个LINK是在以太坊网络上的ERC677标准中实现的。这里是关键点。标准的ERC20不能同时执行支付和服务请求,因此Chainlink提出了自己版本的ERC677。
ERC677的核心方法是“transferAndCall”。通过它,代币转移和服务请求可以在一个交易中完成。当用户执行transferAndCall时,除了进行ERC20转账外,还会自动调用接收地址的onTokenTransfer方法。
当Oracle机器收到请求后,首先会进行多项安全检查。确认发起方是否确实是LINK代币合约,数据大小是否合适,函数选择器是否正确。通过验证后,会生成一个唯一的requestId,并在事件日志中记录。
这个事件由链下节点监控。节点读取事件中的必要信息,通过网络API获取现实世界的数据。然后调用fulfillOracleRequest方法,将数据返回到链上。这一流程构成了Oracle机器的完整循环。
在实现方面,Chainlink提供了现有交易对的价格数据源,也就是Aggregator。使用它,开发者无需自己指定API。像ETH/USD这样的主要交易对已经准备好,只需调用latestRoundData()方法,即可获取最新价格。
大多数应用只需要读取最新的价格数据。特别是以美元计价的价格,精度统一设为8位,因此无需复杂处理。也就是说,使用Oracle机器实现价格数据源其实比想象中简单。
正因为有这样的机制,DeFi协议和复杂的金融产品才能得以实现。没有Oracle机器,区块链与现实世界的桥梁就无法建立。Gate.io也可以看到利用这些Oracle的各种项目,如果感兴趣,可以去了解一下。