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(上)

LINK10.09%
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 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)