什么是区块链预言机(oracle)?
区块链预言机是连接区块链与外部系统的实体,使智能合约能够根据现实世界的输入和输出执行操作。预言机为Web3提供了一种能连接到目前的传统系统、数据源的方法。
去中心化预言机网络(Decentralized oracle networks — DONs)使得混合智能合约的实现成为可能,在这些合约中,链下基础设施与链上代码相结合,从而提供相对复杂的去中心化应用——这些应用能够响应现实世界的事件并与传统系统交互。
举个例子,假设爱丽丝和鲍勃想在赛马结果上进行下注。总计80美元被智能合约托管,爱丽丝下注50美元在X队,而鲍勃下注30美元在Y队。当比赛结束后,智能合约如何知道该将钱给爱丽丝还是鲍勃呢?解决方案是需要一个预言机来获取准确的链下比赛结果,并安全、可靠地将其传递到区块链上。
区块链世界需要与现实世界连接。为了实现DeFi,我们需要将ETH及其他加密货币的价格输入到合约中。我们需要气象数据来提供去中心化的、无需信任的保险。而如果要利用区块链实现智能合约,我们需要数据。
区块链预言机问题
区块链预言机问题强调了智能合约的一个关键限制,即智能合约无法以任何方式与其原生区块链之外的数据和系统连接。外部资源被称为“链下”,而当前记录在区块链上的数据被称为“链上”。
区块链通过有意与外部系统隔离来实现其最有益的特性——例如防止双花、对用户交易真实性的强共识以及减少网络停机时间。要从区块链安全地与链下系统交互、并弥合两种环境之间的信息差距,你需要一个称为“预言机”的额外基础设施。
由于绝大多数智能合约用例(如DeFi)需要了解链下发生的现实世界数据和事件,因此解决预言机问题至关重要。
金融资产价格、政府身份验证、游戏随机性、保险气象信息只是受益于预言机与智能合约集成的少数几个领域。
区块链预言机的作用
任何将确定性的区块链与链下数据连接的设备或实体都被称为区块链预言机。这些预言机中的每一个数据输入都通过一个外部交易传递。
然而,我们可以确定区块链包含了验证自身所需的所有信息。预言机被认为是区块链中间件,因为它们充当了这两个世界之间的桥梁。
Chainlink是去中心化预言机的行业标准,因为它解决了外部数据访问和智能合约中心化的问题。那么,什么是Chainlink预言机呢?
Chainlink是一个去中心化的预言机网络,将现实世界的数据提供给区块链智能合约。LINK代币是一种用于支付网络服务的数字资产代币。
另一方面,单一的中心化预言机会导致去中心化、区块链保护的智能合约本该解决的特殊问题:单点故障。如果预言机出现故障或被攻破,你如何知道你的数据是否准确?如果智能合约依赖的数据存在问题,那么区块链上的安全可靠的智能合约又有什么用呢?
Chainlink通过一个去中心化的节点网络使用预言机将链外来源的数据和信息提供给链上智能合约,从而解决了这个问题。这种技术结合其他安全技术,消除了仅使用单一中心化来源可能出现的可靠性问题。
Chainlink是链抽象的,它通过一个框架连接所有主要的公共和私有区块链环境,为跨网络通信提供了一个典型的抽象层。
因此,你可以参考已经从现实世界中提取、并使用Chainlink等服务收集的去中心化链上数据,这类似于一个公共图书馆,但存储的是去中心化数据。你甚至可以创建自己的模块化预言机网络,以获取所需的特定信息。此外,你可以执行链下计算并将数据传输到现实世界中。
其他顶级区块链预言机包括Witnet、Paralink、Provable和Dos.Network。这些服务提供由智能合约和一些链下组件组成的预言机,这些组件可以查询应用程序接口(APIs),然后定期发送交易以更新智能合约中的数据。
预言机在DApps中的应用
预言机是许多市场上的DApp用于弥合链下世界与智能合约之间差距的机制。以下是预言机可能提供的数据实例:
基于精确时间测量的事件触发的时间和间隔数据。
来自资本市场的数据,例如标记化资产和证券的价格捆绑包。
基准参考数据,例如包含在智能金融衍生品中的利率。
气象数据,例如用于根据天气预报计算保险费。
地理位置数据,例如用于供应链跟踪的数据。
保险合约中需要的损害验证。
体育赛事用于预测市场和梦幻体育合约。
航班统计数据,例如团体和俱乐部用于汇集机票的统计数据。
注意安全问题
预言机通过将外部数据引入到智能合约执行中而起着关键作用。另一方面,预言机带来了巨大的风险,因为如果它们是被信任的信息来源又受到了黑客攻击,它们可能会危及它们所服务的智能合约的执行。
一般来说,在考虑使用预言机时,必须仔细考虑信任模型。如果我们简单轻信了预言机,那么你可能会因为引入错误的输入信息而危及智能合约的安全性。然而,如果这一安全假设被仔细地考量过了,那么预言机会非常有价值。