归根到底,预言机要解决的还是信任和安全的问题,去中心化是一种解决问题的方向。
原文标题:《预言机 — 链接加密世界与现实世界的桥梁》
撰文:鹿目圆
区块链是独立于现实世界运行的系统。加密世界的数据在链上产生,也在链上继续被使用。链外世界的数据无法直接传递到区块链上。
但是在某些智能合约的应用场景中,又需要使用外部世界的数据,例如在某些 DeFi 合约中,需要获取外部资产的价格作为智能合约运行的参数。在这些场景中,就需要用到预言机(Oracle)。预言机是向链上智能合约传递链外数据的工具,也可以将链上数据传输给链下世界。
预言机是链接链上智能合约和链外世界的桥梁,是智能合约获取链下数据的途径。如果没有预言机,智能合约能使用的就只有链上产生的数据,不能使用外部的数据。
随着各种协议之间的互动增多,相互之间的数据依赖性也逐渐增强,预言机正成为区块链世界重要的基础设施。
从表面上看,预言机解决的是将链下数据传递到链上的问题。但实质上,这并不是一个很难的过程, 如何让这些传递到链上的数据真正可信、可靠,才是预言机真正要解决的问题。
也就是说,预言机解决的其实是信任的问题。预言机需要通过技术和机制的设计,使自己提供的数据能够被数据需求者接受和信任。
预言机分类
如前文所述,如何令人对其提供的数据产生信任,是预言机的头等大事。
根据信任产生机制的不同,预言机可以分为几种不同的种类:
- 中心化预言机
- 去中心化预言机
- 联盟预言机
中心化预言机
中心化预言机由单个中心化机构为智能合约提供数据。这种情况下,数据需求方需要相信这个预言机不会欺骗他们,所以这个中心化预言机需要证明自己是值得信任的。
中心化预言机有两种实现机制:
- 第一种是通过算法等真实性证明机制来证明自己运行在可信的执行环境中,提供的数据是数据源在某个时间点真实的、未被篡改的数据。数据使用者无需信任中心化的机构本身,只需要信任中心化机构使用的技术和机制即可。
- 第二种是由数据源提供的官方预言机。这些数据源通常是一些链下世界可靠可信的机构,自身拥有比较好的信用和声誉,数据使用者只需要信任机构本身。这种模式比较类似于传统的互联网,用户使用机构提供的服务,并全权信任这些服务商。
中心化预言机有自己的优势和劣势。
由于数据由单一机构提供,用户对机构的信任决定了预言机的信用,单一数据源无法避免单点故障,对作恶行为也无法进行约束,安全性难以保证。
另外,中心化预言机通常也很难连接到其他的预言机,因而提供的数据范围受限。
但是由于无需多节点进行协调和博弈,节省了大量的时间,提升了效率,同时因为不需要多个节点来支撑服务,也就无需支付多节点网络的费用,使用费用较低。
去中心化预言机
去中心化的预言机符合区块链去中心化的设计精神,通过机制的设计,来保障数据的可信。
在去中心化预言机中,众多节点组成分布式节点网络,一起合作来提供数据,相互博弈和制约,通过经济模型减少作恶的可能性,提升整个系统的容错能力。
因为需要多节点共同工作,去中心化预言机的节点网络的规模会影响其提供的数据的可靠性,规模更大的网络提供的数据具有更高的可信度,所以系统通常会提供一些经济激励来鼓励更多节点参与。
参与提供服务的节点在提供数据时通常也被要求质押一部分代币(一般是项目代币本身),一旦系统发现节点有作恶行为,质押的代币就会被没收。
去中心化预言机在设计时需要考虑以下几个问题:
- 节点共谋问题,如果多个节点联合起来作恶,应该如何应对;
- 数据隐私,在节点数据开放传输和查询的情况下,如何保障这些数据的私密性;
- 数据获取的时效性,如何减少多个节点之间数据的协调和确认时间;
- 节点从其他节点复制数据的问题,如何防止节点直接获取其他节点的数据而非从数据源处提取数据;
去中心化节点网络可以避免产生中心化预言机的单点故障,但是相应的,由于需要向多个节点支付服务费用,去中心化预言机使用起来也更加昂贵。
联盟预言机
联盟预言机是去中心化预言机的一种特殊形式。组成节点网络的不止有普通节点,还有一些指定的可信机构作为节点。例如 MakerDAO 的 v2 版本的预言机,其节点就包括了 dYdX、0x 等机构。
联盟预言机的信任来源相比前面两种更加复杂,既包括了对作为节点的有业内声誉的机构的信任、也包括了对整个网络制衡机制的信任,还包括了对预言机项目方挑选节点的机制的信任,数据使用者需要信任所有这些相关方不会因为利益而选择作出伤害自身信誉的行为。
这种节点网络的组成方式带有某种程度上的中心化的特性,但是作为高性价比的 trade-off,在行业发展的初期,不失为一个不错的选择。只是这种带有中心化色彩的信任机制,可能难以承载价值过大的智能合约的需求。
从上述描述中不难看出联盟预言机面临的问题:
- 可信节点的身份保密程度会影响到节点是否会被勒索或者贿赂,进而影响网络的安全运行;
- 可信节点提供的数据是否具有很大的自身利益相关性,毕竟如果涉及到自身利益,很难避免数据被恶意操控的可能。
预言机赛道代表项目
下文将简单介绍预言机赛道的龙头项目 Chainlink 和 NFT 预言机中的代表项目 Banksea。
Chainlink
预言机的工作机制可以概括为:有使用数据需求的用户智能合约(User-SC Contract)向预言机合约请求数据,预言机从外部数据源 API 获取数据后,汇总处理后返回一个加权结果给用户智能合约。
这个过程中有几个主要角色:数据需求方(用户智能合约)、预言机和链外数据源。
Chainlink 属于去中心化的预言机,它的分布式节点网络中的多个节点在收到数据需求后,会向外部的多个数据源请求数据,然后各个节点将收集到的数据发送给链上进行数据聚合的预言机合约,这个合约会对收集到的数据进行审核,剔除异常值后,取一个均值数据传给数据需求方。
Chainlink 中有三个主要的智能合约,分别是声誉合约、订单匹配合约和汇总合约。
声誉合约用来记录预言机节点提供服务的历史表现;订单匹配合约通过 Service level agreement(SLA,服务水平协议)为数据需求方匹配合适的节点网络方案,参考因素包括节点声誉、价格、节点网络的节点数量等;汇总合约对预言机节点提供的数据进行汇总处理,并给出最终的结果数据。
用户通过选定价格水平、网络规模、节点声誉等参数,筛选组合出符合需求的预言机节点服务商,确定 SLA 提案,提案会被提交到订单匹配合约,之后被筛选出来的服务商节点选择是否出价,出价时需要附上质押金(一定数量的 LINK 代币),质押金用来避免节点进行恶意行为,一旦发生恶意行为,押金会被扣除。当出价的节点数量达到要求后,就不再接受新的节点出价,并在之前出价的节点中挑选出最终的服务提供者。没有被选中的节点质押的押金会被退还。
被选中的节点会去链下收集数据,并最终将在多个数据源收到的数据提交给汇总合约,汇总合约经过各种处理,如剔除明显偏离的数据、进行加权计算等。用户智能合约使用 LINK 代币来支付费用给提供数据的服务商节点。
在节点提供服务的过程中,声誉合约会记录节点的表现。主要包括:被分配的请求总数(完成响应和未完成响应的);已完成的请求总数、完成的成功率;被接受的请求总数、被合约接受的请求总数、准确率;平均响应时间;质押金额、罚金数额等。
Banksea
NFT 预言机作为 NFTFi 行业重要的基础设施,为市场上 NFT 的估值定价提供参考,支撑后续的金融服务的开展。
比较典型的应用场景是 NFT 的抵押借贷。借助 NFT 预言机的数据,借贷服务商可以确定借款方能够借出的金额,并在市场价格发生变化时决定抵押的 NFT 是否需要被清算,以及时止损。
根据 Banksea 的官方白皮书,Banksea 是一个去中心化的 NFT 预言机,集成了 NFT 数据分析、NFT 估值和 NFT 综合风险评估等功能。
Banksea NFT 预言机由数据聚合器、AI 分析和用户界面组成。其中数据聚合器收集和处理原始数据,包括链上数据、NFT 交易市场上的交易活动、社交媒体上的用户观点等;AI 分析通过 AI 模型生成 NFT 估值、24 小时均价、地板价、风险评估等数据提供给智能合约;用户界面 (Oracle Contract / Banksea API) 可以对外输出这些估值。
结语
预言机刚刚诞生的时候,因为缺少应用场景,并没有受到太多重视。
但是随着智能合约的应用场景逐渐增多,各种 DeFi 和 NFTFi 应用破土而出,区块链越来越需要与链外世界进行交互,预言机也渐渐成为区块链世界重要的基础设施。
中心化的预言机虽然费用低、效率高,但是其设计违背了去中心化的精神,永远摆脱不了关于可靠性和安全性的质疑。相较起来,去中心化预言机虽然效率稍低,但是可以有效地避免单点故障的风险,网络节点间互相竞争制衡也可以减少作恶行为。
归根到底,预言机要解决的还是信任和安全的问题。去中心化是一种解决问题的方向,未来是否还会有其他方向和产品出现,我们也拭目以待。