2021-07-29 11:25:09
智能合约其实一点都不智能,它不能直接发出指令,只能被动被触发。这就需要预言机扮演数据代理人的角色,通过它接受外部数据并辨别真伪后发送给智能合约,智能合约才能被触发并执行相应条款。可以说,预言机让智能合约变得更加智能。可以将预言机简单的理解为,将互联网的信息传递给区块链网络的信使。
以太坊的系统设计和智能合约是为了更好地进行数字资产的交易。智能合约处理的数字资产分为:链上资产和链下资产。其中链下资产又包括:线上资产与线下资产,因为他们均不在链上。通常,我们需要辅以预言机等工具链接链下资产(线上、线下的资产),然后通过智能合约在链上进行交易。
那么在处理链下资产的时候,如何把这些外部数据提供给智能合约?通过需要区块链中间件--安全可靠的预言机可以实现。预言机扮演着数据代理人的角色,链接外部数据与智能合约。通过API(Application Programming Interface,应用程序接口),实现计算机软件之间的相互通信。预言机充当区块链数据API之间的中间层,将数据转换为区块链可以读取的格式;此外预言机还负责验证外部数据的正确性。
在中心化的预言机服务中,预言机会有被攻击的可能性,这导致智能合约丢失了确定性和可靠性这一最关键的特征,从而使大多数基于现实场景的智能合约用例的不可用。Oraclize 市场上中心化的预言机,是一个为以太坊提供中心化数据传输预言机服务的项目,其依托亚马逊 AWS 服务和 TLSNotary 证明技术,提供预言机的服务。它是中心化的,而且TLSNotary要花费很多的Gas,这笔消耗最终还有要由用户买单。
为了解决中心化预言机存在被攻击的可能性,从而导致智能合约丢失确定性和可靠性,去中心化的预言机网络就诞生了。Chainlink 是以太坊区块链上第一个被提出的去中心化预言机解决方案。比起 Oraclize 的中心化,Chainlink 更符合区块链去中心化的准则。Chainlink 主要提供用于帮助智能合约访问关键链外资源、网站 API 和传统银行账户支付的预言机服务。
智能合约的触发和运行不能没有数据源,预言机作为中间数据代理人为智能合约提供数据。这些预言机是智能合约与外部进行数据交互的唯一途径,如果没有预言机智能合约的实用性也会大打折扣。
1、预言机提供了智能合约在合约条款得到满足时运行的必要条件,这些条件可以是与智能合约有关的任何东西:温度数据、支付完成、价格变化等;
2、在区块链和互联网之间建立一道可信的数据网络,打破智能合约获取数据的束缚,在保证可信的情况下,使其具有访问互联网数据的能力;
3、为保证所获数据的真实可信,预言机需要提供多种加密证明方法,构建可信环境;
4、预言机具有减少大量围绕传统书面合约的强制执行的浪费性工作的潜能;
5、基于区块链具有的潜力,可以通过强制让所有事情都在一个完全透明的、匿名的情况下,来减少膨胀的官僚主义。
智能合约无法主动获取现实世界的数据,即不能直接引入互联网数据,也不能执法调用外部网络API,而任何商业应用都不可避免地要与现实世界交互,特别是与互联网数据交互。这就是预言机(oracle)诞生的理由。随着区块链网络的不断完善,现实应用场景不断开拓与细化,未来会产生越来越细致的智能合约类型,以及新的预言机结构。这些都会共同构建一个更加实用易用的区块链底层结构,让互联网和区块链之间深化融合,沟通更加便捷和简单。