预言机(Oracle Machine,简称Oracle),是为智能合约获取以及保护验证外部数据的中间实体,是智能合约实现外部互通的唯一途径。
1. 什么是预言机?
据说古希腊先知(Oracle)能够充当神译者,启迪普通民众了解神灵之所想。在Web3和区块链技术的世界中,预言机(Oracle Machine)扮演着类似的角色,充当着区块链生态系统与外部数据源之间沟通的桥梁,实现智能合约与真实世界的数据互通。不同的是,区块链中的预言机由数据驱动,受密码原语保护,可最大限度地提高透明度和可验证的安全性,为区块链智能合约提供可信数据源。
由于区块链分布式网络中的每个节点必须在给定相同输入的情况下获得相同的结果,因此该架构被创建为确定封闭的系统环境,只能获取到链内的数据。当智能合约的执行触发条件来自外部信息时,就需要预言机来提供数据服务以进一步对不确定的外部世界作出反应,这是目前实现智能合约与外部互通操作的唯一途径,而这类由预言机服务加持的智能合约,也被称为混合型智能合约。
▲预言机保护区块链及其外部交互,审查在混合智能合约中来回传输的数据并提供安全许可
由这类新型的混合智能合约构建的生态系统极其复杂,如果预言机出现单点故障或错误数据输入等问题,影响会非常大。现实情况中,因为预言机遭受攻击而造成的沉重损失也屡见不鲜,血淋淋地印证了预言机在打开强大的去中心化应用程序和服务闸门的过程中困难重重。
2. 预言机困境
区块链本质上是去中心化的,由于分布式网络节点构造,破坏一个或多个节点不会危及系统,区块链因此具有减少单点故障,保证安全的优势;然而,当预言机集中处理的外部数据进入到区块链时,这种优势很可能会被抵消。如果没有预言机提供的外部数据,区块链、dApp和智能合约就无法进一步广泛的使用,要想技术滚滚向前,区块链就必须要“信任”预言机。
在传统的区块链中,我们有Vitalik提出的“三角困境”,即去中心化、安全性、扩容性(性能)三者不可全得。对应到预言机网络中,就出现了“预言机困境”。
也就是说,为了提高安全性,我们需要建立尽可能多的网络节点,以提升预言机网络去中心化程度。但是网络节点越多,多轮共识耗时就越长,如果网络拥塞,用户交易的阻力就越大。这不仅会导致最终确定性和性能下降,导致数据可用性延迟,还会影响刷新率,增加了使用陈旧数据执行智能合约交易时发生滑点的可能性。
此外,不断刷新数据的成本、维护预言机网络节点络正常运行的能力、实现快速交易和较高吞吐量,这些对预言机开发者来说也是大难题。
▲如果预言机不适当去中心化,便可能会被试图操纵网络中的数据阻塞点以谋取利益的攻击利用。
3. 解决预言机困境的关键因素
截止撰稿日,市场上的预言机因为去中心化程度、安全性、速度、问责制等各方面因素,还没有哪个方案可以完美平衡各方需求,很好地解决预言机困境。对于理想中的预言机方案特性,有以下关键性因素。
去中心化
去中心化的预言机是未来dApp普及和数据资产化推进的必要条件,可以让多方应用实现无需信任、高效透明、安全及时的用户体验。目前市场上存在多数中心化预言机,也有将数据加密和算法管理与高度集中化的白名单机制集成,打造出外表“去中心化”,但内核依然是“中心化”的预言机,这些都是区块链技术发展前期没有选择的选择,我们不就此讨论。
真实性与安全性
真实性跟安全性也是预言机为区块链提供服务的必要前提。大量增加预言机网络节点,提高去中心化程度,能够降低恶意节点攻击事件;对新区块进行分散的多轮共识以验证也能提高数据的真实性和安全性。此外,还可以引入类似Certik这样专业的去中心化安全审计服务来进一步提升安全性。
最终确定性(交易速度,每秒交易吞吐量)
另一个时常被忽视的关键因素是最终确定性,在预言机应用这里,表现为当预言机告诉智能合约当时的现货价格之后,区块产生的时间。最终确定性直接影响着现实的交易速度跟每秒交易量。最终确定性慢会直接导致价格偏差等问题,例如,我们假设原油(WTI) 正在经历巨大的销量壁垒,价格急剧下跌。在下跌中的某个时间点,WTI 的价格遇到阻力位,买家开始积极倒卖,导致价格在瞬间大幅向上反弹。
如果跟踪原油现货价格的预言机节点使用效率低下的共识模型或拥塞的区块链层,那么验证价格产生新区块的速度太慢,无法给用户提供及时数据,轻则造成单纯价格偏差事件,重则导致一系列恶意攻击和黑天鹅事件。
跨链互操作性
Web3是个多链的未来,而跨链互操作性为所有用户和机构创造了一个无缝的技术网,也能进一步帮预言机网络实现扩容。同时,跨链可以确保多方去中心化应用程序在相同的安全环境下实现信息互通,帮助更多应用与不同区块链之间实现互操作性。
问责制
经济激励和信任是人类在实体金融世界中进行的绝佳操作。然而基于信任的预言机很有可能被黑客盯上或者产生鲸鱼事件。奖惩有制的去中心化节点运营可以增强预言机网络的良性循环,降低恶意攻击,是预言机系统可持续的关键机制。
4. 预言机的分类
区块链对外部数据有各式各样的需求,意味着预言机需要提供多种方式的服务满足区块链。混合智能合约或那些利用链下资源实现功能的合约,不仅要处理区块链的输入和输出,还要促进跨链通信并提供计算和随机函数。
因此预言机各种分类之间并不相互排斥,我们列的以下分类要么相交,要么相互关联。
输入预言机
输入预言机最为常见,它们获取和验证外部数据以供混合智能合约协议使用。预言机协议使用分布式节点网络,从API和其他网源中检测出聚合数据,这些数据以某种方式进一步聚合,在可接受的误差范围内达成共识数。
输出预言机
供应链管理、物联网系统和银行网络都可以用预言机来发送数据以指示事件已完成。例如,航运公司可用输出预言机在给定行程中验证敏感货物的恒温状况,单车租赁或共享汽车app也可以使用输入和输出预言机来指示已付款并解锁单车或汽车。
跨链预言机
如今,区块链和智能合约的用户越来越多。任何一种区块链都不太可能在世界范围内普遍使用。因此,区块链必须相互通信以实现互操作。跨链预言机不仅增强了Web3协议的流动性,还有助于抑制各种区块链社区之间的竞争和部落主义、激励生产性合作。
跨链预言机监控各种区块链的活动并将情况报告给其他区块链或跨链桥。一个区块链的原生加密资产可通过跨链桥在其他区块链上进行交易。预言机会预防双花或其他操纵活动发生。
计算预言机
除了获取和验证外部数据之外,预言机还执行其他功能,如生成可验证的随机计算,通常在由于网络吞吐量限制或经济障碍,需要在链下计算随机性时完成,称为可验证随机函数(VRF)。VRF可公平且透明地生成供链上智能合约使用的随机数。例如,NFT通常一组铸造10000个,每个用户随机铸造其NFT。使用预言机来生成VRF可确保铸币过程是随机、公平且可通过数学算法证明的。
预言机还可充当“软件机器人”,在特定事件发生时自动执行智能合约。例如,预言机可以等收益耕作收成达到特定金额,然后再提取资金或将其转移到其他协议以使收益最大化。预言机还可以用零知识证明安全地验证数据的真实性,最大限度保护用户隐私,而不牺牲数据安全性或交易速度。
5. 去中心化预言机案例
DeFi 和储备证明
大量集中式和分散式加密协议需要用预言机来访问外部数据。交易所、货币市场等利用数字资产的协议,使用预言机来确定特定稳定币资产的储备以及去中心化借贷中借方的抵押品。与外部市场现货价格挂钩的其他资产使用预言机来更新价格,而自动货币市场用预言机的价格汇总来执行限价单。
NFTs 和 GameFi
预言机还支持动态NFT等混用NFT。NFT于区块链上铸造,是一种完全独特的代币,可在不同钱包之间交易,不能分割或交换任何其他实物。动态NFT还可根据外部事件或成就(如当前天气、体育比赛得分或解锁游戏成就)而变化。
如前所述,计算预言机产生可验证的随机性,随机为NFT分配毛皮颜色、帽子样式或背景颜色等特征,还可选择随机获胜者竞争独家NFT空投等特殊发行物。区块链游戏和元宇宙协议将使用计算预言机来生成随机性,以创建可验证的公平竞争、获得稀有物品等概率事件。
SocialFi & DAO
预言机还能够在SocialFi和DAO的应用场景中充当去中心化的身份验证工具。通过利用集成链下和链上的活动数据,预言机在可以帮助用户在web3中验证和管理自己的身份凭证,同时也可以为个人信息管理以及公会管理方面获取性能仪表盘数据,增加信息管理效率。
企业/供应链管理
预言机还可以帮企业和供应链管理者实现Web2到Web3的通信,将前端和后端系统连接到他们选择的区块链网络。当然,许多人会选择定制的私链,这就需要预言机提供的跨链互操作性和通信。
由于系统可互操作的成本历来很高,共享敏感数据或访问内部流程也会有安全风险,因此预言机非常重要。有了预言机通过强大的加密原语来保护数据,大型规模经济便能够更有效地部署其资产并降低交易对手风险。
医疗保健和保险
保险协议使用输入和输出预言机,加上Web API、卫星图像、物联网式传感器、警察和医疗报告与法律文件,在索赔过程中验证可保事件,然后再触发赔付。农业、汽车、家庭、洪水、火灾和健康领域的保险公司的应用程序将使用混合智能合约,并利用预言机来协助合约工作。欺诈检测、索赔处理和审计部门也会利用许多新工具和资源以获得更高回报。
CBDC
在 CBDC 和公共区块链势不可挡地成为主流的世界中,Visa 和 Mastercard 正在研究的私有 CBDC 区块链通过通信渠道和跨链桥以安全和高性能的方式与公共区块链通信,并通过合约跨多个加密货币对各种法定外汇价格进行准确、实时的链上定价。在整个 CBDC 和跨链 DeFi 的加密货币交互过程中,预言机是必不可少的媒介。
6. 写在最后
按照所有加密资产的当前市值计算,未来链上的资金价值可达数万亿美元。如果资金被错误清算,将带来灾难性损失,甚至会损害到区块链、智能合约和相关Web3技术的声誉。因此解决预言机困境是Web3成为主流之前的当务之急。