区块链的预言机是什么,如何应用?
很多人在了解DeFi时,关注其生态圈时就会接触到「预言机」这个词。对于链上预言机这个概念,讨论不多,甚至不少人对其了解不深 ,下面针对预言机这个概念做一简单科普!
相信看完后,大家对预言机的认识和应用也会进一步加深。
01预言机是什么?
预言机,英文为racle mechanism,它是区块链中一重要的功能。关于预言机的定义,按照中国人民银行在18年11月发布的《区块链能做什么?不能做什么?》报告中,是这样说的:
「区块链外信息写入区块链内的机制,一般被称为预言机 。」
说直白一点,预言机就是将外部的信息写入区块链中,然后区块链内与外部现实世界数据信息互通。它允许已确定的智能合约对不确定的外部世界作出判定反应,也是合约与外部进行数据互换的唯一途径,区块链与现实世界进行数据交互的接口。
02链内为什么会存在预言机?
区块链属于一个确定性、封闭的环境。在这个系统环境内,它只可获得链内已存在的数据,对于外部现实世界的数据是无法获取的,内外部属于割裂的情况。
当智能合约执行需触发条件时,合约的触发条件是外部信息时(链外),就必须要预言机提供数据服务,通过预言机将外部的数据输入到区块链上,因为智能合约自身不支持对外请求。
区块链是确定性的环境,它不允许不确定的事情或因素存在,而智能合约不管何时何地运行都必须是一致的结果,所以虚拟机(VM)不能让智能合约有 network call(网络调用),不然结果就是不确定的。
也就是说智能合约不能进行 I/O(Input/Output,即输入/输出),所以它是无法主动获取外部数据的,只能通过预言机将数据给到智能合约。
举个形象的栗子。
大家在教室上课,突然外面传来了陌生人进入学校行凶的消息。那这个时候其实在教室的我们是不清楚具体情况的,只想着保命不要踏出去,所以外部逃跑、躲藏的人的行为就给我信息,我大概清楚外部混乱等。
智能合约就等于在教室的我们,它没有办法主动获取信息,只能依靠外部把数据信息传递到内部,而预言机就是这个中间人。
从栗子来看,智能合约也并非想象中的智能。链上的智能合约实际上只是按照别人拟定好的条件来触发,甚至有的情况还需要合约双方进行私钥签署才可进行。
03预言机如何实现信息传递?
关于预言机的内外部信息传递,Chainlink在这方面是做的不错的公司之一。在《Chainlink白皮书》上,有过这样一段介绍,大概如下:
「这个网络允许智能合约访问链外资源,比如其他区块链上的信息或者网站 API 这样的标准数据源。比如,有一条记录股票市场数据的区块链,那么其他的区块链就可以通过Chainlink提供的预言机服务获取股票市场的数据。」
04预言机的信息是否可靠?
看似预言机的运作逻辑是合情合理的,能给链内提供数据,但保证数据信息的可靠性、准确仍有待进一步完善。
在之前预言机运作的案例里,bZx协议曾发生过一次严重的预言机报价异常的事件。
因bZx协议允许用户通过Fulcrum进行保证金交易,整个交易过程并不复杂,但Fulcrum需要预言机提供的数据去进行定价。而它当时选择去中心化平台 Kyber,Kyber本应为 Fulcrum提供精准的实时价格,但比起中心化平台,Kyber的交易体量偏小,流动性不足。
于是这一漏洞被某个用户发现并利用,从中实现牟利。
这个用户先贷出大量以太币,把其中一部分存入Fulcrum平台,然后用剩下的钱吃掉了Kyber的所有稳定币挂单;Kyber上的稳定币受此影响,价格从1美元涨到2美元;由于Fulcrum平台使用Kyber提供的预言机报价,导致Fulcrum误认为稳定币的价格是2美元一枚;紧接着用户提走了之前存入Fulcrum的以太币,不过以太币当时已翻价一倍,所以该用户在还清借贷后,仍获利60万美元左右。事情发生后,bZx团队也因此选择了Chainlink作为预言机。
05预言机的未来?
预言机出现的时间是比较短暂的,而预言机未来发展会怎么样,还有待我们对它的观察和运用。虽然现在可使用的预言机机制仍存在不少亟待完善优化的地方,但失败是成功之母,在经历不断的试错(或者说真金白银买教育后),未来的预言机会更加可靠、完善。
Scan QR code with WeChat