Chainlink解析:区块链预言机的技术架构与应用

robot
摘要生成中

预言机技术解析:以Chainlink为例

在区块链生态中,预言机作为连接链上智能合约和外部世界的桥梁,扮演着至关重要的基础设施角色。它的主要功能是为区块链上的智能合约提供外部数据。

举例来说,如果我们在以太坊网络上部署了一个需要获取特定日期原油交易量的智能合约,由于合约本身无法直接访问链下数据,这时就需要通过预言机来实现。具体过程是,智能合约首先将所需信息写入事件日志,随后链下进程监听并订阅该日志。一旦检测到请求,该进程会通过提交链上交易的方式,调用合约相关方法,将指定日期的原油交易量数据上传至智能合约中。

预言机详解系列之 Chainlink(上)

Chainlink是目前市场占有率最高的去中心化预言机项目。它围绕LINK代币构建了一个基于经济激励的生态系统,通过最安全的方式向区块链提供现实世界的数据。Chainlink预言机的触发需要通过LINK代币转账实现,而LINK是以太坊网络上的ERC677合约。

预言机详解系列之 Chainlink(上)

ERC677标准在ERC20的基础上增加了transferAndCall方法,将支付和服务请求合二为一,更好地满足了预言机业务场景的需求。当用户进行transferAndCall转账时,除了常规的ERC20转账外,还会判断接收地址是否为合约地址,如是则调用该地址的onTokenTransfer方法。

预言机详解系列之 Chainlink(上)

在请求预言机服务之前,用户需要先确认该预言机的可信度,因为服务提供前需要预先付款。预言机的可信度可以根据多个因素来评估,如历史表现、声誉系统等。

当预言机收到服务请求后,会进行一系列安全检查,包括验证转账是否为LINK代币、检查数据长度是否超限、验证function selector等。通过检查后,预言机会发出OracleRequest事件,该事件包含了请求的详细信息。

预言机详解系列之 Chainlink(上)

链下节点监听到OracleRequest事件后,会解析出具体的请求信息,通过API调用获取所需数据,然后通过提交交易的方式调用Oracle合约的fulfillOracleRequest方法,将数据提交到链上。最后,Oracle合约会将结果通过之前记录的回调地址和函数返回给请求方。

预言机详解系列之 Chainlink(上)

对于开发者而言,如果只需要使用已有的币对价格数据,可以直接调用官方提供的Price Feed接口。每个交易对都有独立的Price Feed(也称为Aggregator),实际上是AggregatorProxy合约。通过调用latestRoundData()方法可以获取最新的价格数据,其中answer参数即为所需的最新价格。

预言机详解系列之 Chainlink(上)

值得注意的是,以USD为计价单位的交易对,其价格精度通常统一为8位小数,这简化了不同代币间精度处理的复杂性。

预言机详解系列之 Chainlink(上)

LINK-3.05%
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 7
  • 转发
  • 分享
评论
0/400
nft_widowvip
· 08-12 01:17
希望Link币能继续起飞吧
回复0
Pump分析师vip
· 08-11 11:40
割不到就等着被割
回复0
跳跃的蜡烛线vip
· 08-11 01:37
太高深了吧! 能不能通俗点讲?
回复0
半仓就是空仓vip
· 08-11 01:37
全仓空link的老韭菜来支持下
回复0
WenAirdropvip
· 08-11 01:34
明牛啊 Link yyds
回复0
0xLuckboxvip
· 08-11 01:27
卧槽 有谁懂预言机不用chain的?
回复0
WagmiWarriorvip
· 08-11 01:13
chain一直都在冲
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)