区块链中的预言机oracle
本文发表于,微信公众号文章有改动,本文为原文。硅谷区块链——区块链里的oracle是什么
现在的区块链白皮书中会经常出现一个词组“预言机oracle”,甚至只使用单词oracle。这些白皮书通常强调oracle非常重要,却基本没有对其含义准确的说明,而一般读者如果不懂技术自己查询往往也会陷入迷茫。因为这个词的常见翻译“先知”、“预言”等都有很大的迷惑性。这个oracle跟甲骨文公司oracle或者甲骨文公司的oracle数据库有什么关系吗?其实还真有一毛钱的关系。
1、预言机的用武之地:智能合约
理解预言机oracle,需要知道它的背景,也就是白皮书频频提到的价值,那就是oracle是智能合约的重要基础。而智能合约是以以太坊为代表的区块链2.0的标志性技术,是区块链技术走向商业化的一块重要基石。
智能合约,简单地说,就是一段满足一定条件就可以自动执行的程序。如信用卡自动还款就可以视为一个低级版的智能合约,信用卡一般和另外一张银行借记卡绑定,到了还款日,如果银行卡中有足够的余额,则信用卡会自动扣钱还款。
再举一个更复杂也更具有商业化前景的案例,2018世界杯即将开赛,球迷可用智能合约来实现对赌,比如有球迷A预测巴西队会夺冠,另有球迷B预测德国队夺冠。这样可以开设一个赌局,巴西队夺冠,则B的赌注判给A,反之亦然,如果两队都没有夺冠,则赌约自动解除。
赌约的规则很简单,但在区块链去中心化体系下存在一个关键问题是,如何将比赛结果放进这个赌约当中去?也就是说如何扣动扳机,让这个智能合约运转起来?
这对传统博彩业来说极其简单。球迷竞猜其实是和博彩公司对赌,博彩公司其实暗中承担了赌约的信息输入和胜负判决的责任,既当拳击手的一方,又当裁判员。也就是说,博彩公司承担了赌局的组织和信用职责,这也是博彩公司肥利的基础。
但是在去中心化的区块链体系中,赌局双方是意见不同的球迷,没有了第三方中介机构,也就取消了裁判,由此产生了谁来宣布赌局胜负的问题。这就需要第三方信息的介入,这个功能就是预言机oracle发挥作用的地方。
这是一个表面简单,但实际比较复杂的问题。智能合约还有更广泛的应用,比如金融领域的股票、保险、期货、期权交易,供应链中的物流、信息流、资金流的合一,智能制造中的定制化生产等等,都可以使用智能合约来提升效率。在这些复杂应用场景中,如何确保第三输入信息的准确性是智能合约发挥威力的关键。
2、链上链下的隔离
区块链系统,从功能角度讲,是一个价值交换网络。目前,BTC、ETH等虚拟币是具有货币属性的资产。未来,人类拥有的实物资产、股票、各类卡券,甚至学历、著作权等资质证明,都可以定义为token在这个网络中流通。(1)这也是区块链的独特优势。
区块链上的信息都是有序的、标准化的、可信的,但是现实世界却是无序的、复杂的、可信度难以判断的。瞄准现实世界的智能合约才有广泛性和商业价值,但区块链和现实世界的隔离是制约智能合约发展的一大障碍。
举一个简单的例子,现在有一个赌局:看川普大统领是能强力控局,干满四年任期,还是在此之前就被建制派弹劾下台?这不是无聊的政治八卦,因为大国的政治走向会深刻影响社会。基于这样的赌局,可以做很多金融交易决策。类似的案例还有英国脱欧等。这些事件在现实社会一旦发生,其真假性不言而喻。
但是区块链系统中却无从判断外面现实世界发生的事件,需要引入一种机制将现实社会的事件输入区块链之中。但因为区块链是去中心化的,没有一个节点可以对输入信息的真伪做出裁决,如果这种机制设计得不够周密,那么参与智能合约赌局的一方有可能为了利益而否认事实。
其实某些有大量“客观数据”产生的应用中,仍然存在输入信息是否可信的问题。可以拿橡胶期货交易作为的例子,橡胶是热带作物,受日照、气温等自然因素很大,橡胶的销售又受汽车、合成橡胶、外汇等多种市场因素影响。基于天气数据和各类市场交易数据可以构建一个基于智能交易合约的交易模型。从表面看,这些数据都可以从气象站、公司网站、交易所直接导入,但实际上一旦涉及利益,就不能完全保障提供这些数据的机构不作恶。因此,需要引入一种机制保障输入智能合约的数据都是可信的,这就是oracle。Oracle是连接现实世界和区块链系统的桥梁。
3、oracle是一种机制
有文章把oracle说成是为区块链提供外部数据的信息平台或技术,这么理解当然没有错,但可能没有完全揭露实质。如共识机制解决了区块链各节点信息统一的问题,不完全靠的是技术,同样依靠的是利益平衡机制。如在POW机制中,作恶的节点记账结果会遭到拒绝承认而白白浪费电力;在POS机制中,虽然存在富者恒富的弊端,但是富者和全网络的利益是一体的,所以他们有动力维护系统的稳定;在DPOS机制中,认真负责的节点会被赋予记账权并获得激励,反之则被撤销记账权。
为确保链外数据的可靠性,也需要引入各种机制“惩恶扬善”。目前,常见的机制包括“多数据源互相认证,通过投票和惩罚的机制来减弱撒谎的动机,通过事前投资获得验证权的方式减少‘僵尸粉(Sybil Attack)’的影响”等等。
尽管已经有很多尝试,但实际上目前oracle设计有两大障碍:一是安全性不够,被骗的可能比在现实世界中被骗的可能仍然大很多;二是成本高,智能合约使用oracle花费的时间和投入,比在现实世界中获取信息要高得多。其中第一个障碍涉及到尚没有得到完全解决的博弈论问题:在一个系统之中,如果一半以上的成员都是坏人的情况下(好人占多数的情况下,好人的收益是有限制的),是否存在一种机制能限制坏人作恶,并保证这个系统产生的数据是实可信?(2)
所以,基于以上原因,笔者认为,在可以不经允许即可加入网络的公有链上运行智能合约还会遇到较大困难。较为实用的智能合约可能会在相对去中心化的联盟链、私有链中首先落地,因为参与联盟链、私有链的节点已经有一定程度的信任基础,他们对进入区块链的外部数据的可信度也更容易达成共识。
附:为什么叫oracle
由上已经可以得知,oracle就是为区块链智能合约提供可信链外数据以触发智能合约顺利执行的数据源。那么问题来了,为什么叫oracle?
如果直接百度搜索oracle,你多半会查到甲骨文公司,或者是甲骨文公司的oracle数据库技术和产品。查专业词典就可以发现这个词的多种含义。Oracle一词最初是来源于古希腊宗教,意为“神谕、神使、先知、预言”,很多提到blockchain
oracle 的文章就直接取了oracle的本意。这个词还有一些宗教色彩更淡的词义,如“圣贤、哲人、睿智的回答”等。再经过演化,oracle就产生了“指示物,可靠的指导(如钟表等)”等含义,已经完全失去了宗教和神秘色彩,纯粹指可以信赖的人或物。如,My sister is the oracle on beauty matters——我妹妹是美容方面的大行家。所以,笔者认为,blockchain oracle应该理解为“区块链可信数据源”。
那么blockchain oracle和甲骨文公司的oracle有没有关系呢?甲骨文创始人Ellison和Miner给新公司起名确实是取的“神谕、先知”等宗教、神秘含义,装个B嘛,可以理解。这就是blockchain oracle与甲骨文公司的一毛钱关系。
至于为啥美国的oracle公司到中国就注册成了“甲骨文”公司,那是因为中国殷商时代的甲骨文被翻译为oracle
bone inscriptions。有中国独有文化特征的甲骨文又为啥被翻译成有希腊宗教色彩的oracle呢?因为“甲骨”也是占卜用的,和oracle的“神谕”含义接近。当然也有人认为这样的翻译并不妥当,那就是与本文更远的糊涂账了。(3)
网友评论