昨天中国人民银行发布了一篇工作论文——《区块链能做什么、不能做什么?》,非常系统的讲述了区块链的功能,发展现状、问题等。
其中有一个词让我眼前一亮,那就是预言机。
我对预言机这个词在上个月之前从没有任何概念,上个月因为接触到 DOS Network 这个项目,才开始去查询和搜索相关的资料。
但是对于这个词的概念,貌似并没有那么容易可以讲通或理解。但预言机确实是区块链中非常重要的一个东西。
在这篇论文中,提到的点,或许可以知晓一二。
在第二部分,对区块链技术的经济学解释,讲解智能合约的功能的段落中,提到了智能合约的弊端,和可能的解决方案。
引用报告中的原文。
然而,智能合约的功能短板不容忽视。第一,在智能合约的触发条件取决于区块链外信息时,这些信息需先写入区块链内,但至今没有普遍适用的去中心化预言机方案。
目前讨论得比较多的预言机有两类。一是依赖某一中心化信息源(比如彭博、路透),但这与区块链的去中心化宗旨背道而驰。二是将区块链外信息离散化后用经济激励和投票写入区块链。这类机制依靠群体智慧,根据投票结果对奖惩投票人,投票越接近全体投票的平均值、中位数或其他样本统计量的投票人越有可能得到奖励,反之就越有可能被惩罚,以此来激励投票人认真投票。
隐含假设是,参与投票的群体在投票时不存在系统性偏差。但这一假设在现实中不一定成立,因此至今没有普遍适用的去中心化预言机方案。
其实这正是智能合约所不能忽视的问题,我们之所以相信智能合约,是因为智能合约只处理确定性的事情。
例如,我写了一个智能合约,规定当北京温度达到零下1摄氏度的时候,会从我的账户中转入小明的账户中一个以太坊,并告诉他,我需要一件羽绒服。
可以确定的是,这个智能合约一旦写好便不可修改,是一个确定性的事件。
但是温度是一个不确定的数值,智能合约如果要触发这个条件,就需要从链下(现实世界或者互联网)获取当前的温度。
但是智能合约不能够直接获得现实世界的温度是多少,也无法获取某个天气网站的 URL 地址信息,所以也就无法去执行这个合约。
它必须依靠一个智能合约之外的网络把信息给到合约中,那这个网络就是预言机(Oracle)。
我们将这个论文往前翻,在区块链的 Token 范式这个段落中,对于预言机是这样写的:
特别是,区块链外信息写入区块链内的机制,一般被称为预言机(oracle mechanism)。
如果区块链外信息在源头和写入环节不能保证真实准确,写入区块链内只意味着信息不可篡改,没有提升信息的真实准确性。但区块链有助于解决数据登记追溯问题,登记在区块链内的数据有可追溯的主体身份签名并可用于事后审计,而且上链数据的不可篡改性也有助于控制操作风险。
这个段落中提到,区块链外信息源是否真实,是否是可以随意修改的,如果是获取某个网站某地的温度,这个信息在中间是可以被篡改的。
所以最好是中间有一个去中心化的网络达成共识,保证数据的准确性。
最近又更新了一篇详细介绍预言机的文章,请点击这里《什么是区块链预言机(BlockChain Oracle)》
网友评论