链接加密世界与现实世界的桥梁

区块链是独立于现实世界运行的系统。加密世界的数据在链上产生,也在链上继续被使用。链外世界的数据无法直接传递到区块链上。

但是在某些智能合约的应用场景中,又需要使用外部世界的数据,例如在某些DeFi合约中,需要获取外部资产的价格作为智能合约运行的参数。在这些场景中,就需要用到预言机(Oracle)。预言机是向链上智能合约传递链外数据的工具,也可以将链上数据传输给链下世界。

预言机是链接链上智能合约和链外世界的桥梁,是智能合约获取链下数据的途径。如果没有预言机,智能合约能使用的就只有链上产生的数据,不能使用外部的数据。

随着各种协议之间的互动增多,相互之间的数据依赖性也逐渐增强,预言机正成为区块链世界重要的基础设施。

从表面上看,预言机解决的是将链下数据传递到链上的问题。但实质上,这并不是一个很难的过程, 如何让这些传递到链上的数据真正可信、可靠,才是预言机真正要解决的问题。

也就是说,预言机解决的其实是信任的问题。预言机需要通过技术和机制的设计,使自己提供的数据能够被数据需求者接受和信任。

预言机分类
如前文所述,如何令人对其提供的数据产生信任,是预言机的头等大事。

根据信任产生机制的不同,预言机可以分为几种不同的种类:

1.中心化预言机

2.去中心化预言机

3.联盟预言机

中心化预言机
中心化预言机由单个中心化机构为智能合约提供数据。这种情况下,数据需求方需要相信这个预言机不会欺骗他们,所以这个中心化预言机需要证明自己是值得信任的。

中心化预言机有两种实现机制:

第一种是通过算法等真实性证明机制来证明自己运行在可信的执行环境中,提供的数据是数据源在某个时间点真实的、未被篡改的数据。数据使用者无需信任中心化的机构本身,只需要信任中心化机构使用的技术和机制即可。

第二种是由数据源提供的官方预言机。这些数据源通常是一些链下世界可靠可信的机构,自身拥有比较好的信用和声誉,数据使用者只需要信任机构本身。这种模式比较类似于传统的互联网,用户使用机构提供的服务,并全权信任这些服务商。

中心化预言机有自己的优势和劣势。

由于数据由单一机构提供,用户对机构的信任决定了预言机的信用,单一数据源无法避免单点故障,对作恶行为也无法进行约束,安全性难以保证。

另外,中心化预言机通常也很难连接到其他的预言机,因而提供的数据范围受限。
但是由于无需多节点进行协调和博弈,节省了大量的时间,提升了效率,同时因为不需要多个节点来支撑服务,也就无需支付多节点网络的费用,使用费用较低。

去中心化预言机
去中心化的预言机符合区块链去中心化的设计精神,通过机制的设计,来保障数据的可信。在去中心化预言机中,众多节点组成分布式节点网络,一起合作来提供数据,相互博弈和制约,通过经济模型减少作恶的可能性,提升整个系统的容错能力。

因为需要多节点共同工作,去中心化预言机的节点网络的规模会影响其提供的数据的可靠性,规模更大的网络提供的数据具有更高的可信度,所以系统通常会提供一些经济激励来鼓励更多节点参与。

参与提供服务的节点在提供数据时通常也被要求质押一部分代币(一般是项目代币本身),一旦系统发现节点有作恶行为,质押的代币就会被没收。

暧昧贴