文:通证通研究团队导读区块链的优势在于不依赖第三方解决信任问题,智能合约在其中起了重要作用。智能合约可能需要与外部世界进行数据交互,但区块链无法主动获取现实世界的数据,该如何解决呢?摘要区块链是一个确定的、封闭的系统,无法主动获取链外的数据。预言机便是区块链智能合约与外部世界交互的接口,是区块链与外界相互沟通的桥梁。预言机有多种应用场景,将会极大拓展区块链在现实世界的应用范围。所有需要与链外数据交互的非中心化应用都需要借助预言机,例如非中心化的衍生品交易平台、借贷平台、稳定通证、保险应用、应用、预测市场等。预言机的主要作用是为智能合约提供可靠的外部数据,其核心价值是在可信的基础上,使区块链与外部世界连接起来。理想状态下预言机的工作流程是接受请求、获取数据、返回数据。可供预言机查询的数据源一般有互联网的URL链接、搜索引擎、其他区块链的数据、星际文件系统IPFS的数据等。预言机有多种类型,可以按软硬件进行分类、按中心化与否进行分类、按数据流向进行分类。实际应用设计预言机时,需要着重加以考虑信息保密性、完整性、可获得性等问题。典型的预言机项目有ChainLink、Oraclize、DOSNetwork、OracleChain等。总体来看,目前市场上的预言机类项目主要为非中心化预言机,且多数都致力于支持多条主流公链。为了保障预言机信息的保密性、完整性和可获得性,不同项目采取了不同的方案,如ChainLink的方案是结合声誉合约、订单匹配合约和聚合合约,Oraclize是利用真实性证明,DOSNetwork采用了可验证随机方程和阈值密码学,而OracleChain采用了声誉和抵押证明。风险提示:隐私泄露目录1预言机的含义1.1\t预言机在传统互联网里的含义1.2\t预言机在区块链里的含义1.3\t预言机的应用场景2预言机的工作流程与类型2.1\t预言机的工作流程2.2\t预言机的分类方法3预言机实际应用中需要攻克的问题4典型项目分析4.1\tChainLink4.2\tOraclize4.3\tDOSNetwork4.4\tOracleChain正文1预言机的含义1.1预言机在传统互联网里的含义预言机英文为Oracle,最初源于古希腊宗教,意为“神谕、先知、预言”。计算机科学之父艾伦·图灵于1939年在博士论文里提出预言机的概念,介绍了超计算。预言机比图灵机更加强大,可以回答一些无法通过计算解决的问题,例如,“今年世界杯,哪只球队将问鼎冠军?”。一部预言机是一个带着“魔法黑盒”的图灵机,其中黑盒可以解答两类问题:一是决定性问题,二是功能性问题1.2预言机在传统互联网里的含义以太坊将区块链带入到2.0时代,通过采用图灵完备的编程语言,实现逻辑判断等更复杂的功能,而不像BTC那样仅限于地址间转账,从而极大丰富了区块链商用落地的场景,智能合约是其中的关键性技术。所谓智能合约,指的是满足一定条件会触发一段程序的自动执行,相当于计算机里的“if…then…”编程语句。区块链是一个确定的、封闭的系统,每个节点需要获取精确一致的状态,这赋予了区块链的不变性,但同时也意味着缺少灵活度。触发智能合约的“一定条件”可以是链上的状态,例如支付是否完成,也可以是外界的信息,例如天气的状态、航班是否晚点、哪支球队赢了比赛等等。区块链网络无法独立地搜集外界的信息,预言机便是区块链智能合约与外部世界交互的接口,可以查找和验证真实世界的数据,并以加密的方式将信息提交给智能合约使用,它允许确定的智能合约对不确定的外部世界作出反应,可以简单理解为外界数据的预处理器或第三方数据代理商。《区块链能做什么、不能做什么?》一文,对预言机是这样定义的:区块链外信息写入区块链内的机制,一般被称为预言机。以Alice和Bob球为例来说明预言机在智能合约里的作用。假设Alice和Bob先各自向智能合约里的地址发送1ETH作为注,并约定:1)双方将注提前发送到智能合约地址,智能合约根据预言机提供的外界信息自动执行相应的程序;2)如果Alice押注的球队赢了,Alice将从Bob那里赢得1ETH,智能合约地址里的2ETH将自动发送给Alice;3)如果Bob押注的球队赢了,Bob将从Alice那里赢得1ETH,智能合约地址里的2ETH将自动发送给Bob;4)Alice和Bob押注的球队打成了平局,智能合约地址里的ETH原路退回,两人均未有输赢。
预言机UMA已在Optimistic上部署:2月1日消息,据预言机 UMA Protocol 官方表示,已在 Optimistic 上部署 UMA Optimsitic Oracle。目前 UMA 协议已部署于 Optimism、Arbitrum、Boba Network、Polygon 和以太坊主网。
开发人员可以构建使用这种乐观预言机的协议,并且完全基于 Optimism、Arbitrum 或 Boba,这意味着他们可以使用这种预言机类型提供的更强大的功能以及这些 L2 的较低费用。[2022/2/1 9:25:52]
整个过程都没有人为的干预,即便Alice和Bob是两个陌生人,也不会产生额外的信任成本。1.3预言机的应用场景所有需要与链外数据交互的区块链应用都需要借助预言机,典型的应用场景有:1)\t加密资产衍生品交易平台目前典型的加密资产衍生品交易平台有dydx等,允许用户做多或做空通证资产。智能合约需要从链外获取资产价格,来触发平仓、确定参与方的收益和损失等。2)\t非中心化运作的稳定通证稳定通证是一类通过特定机制锚定其价值和价格的数字通证。根据价值支撑划分,稳定通证当前主要有法币锚、资产锚和内部锚三种模式。通过非中心化运作的稳定通证目前有DAI等。这些非中心化运作的稳定通证需要借助预言机来感知其自身的价格变化,进而作出相应的决策来稳定价格。DAI是MakerDAO平台通过抵押加密资产发行的稳定通证。MakerDAO平台通过多个预言机获取抵押物和DAI的市场价格,在抵押物市场价格跌幅过大时可以作出警告和清算决策。3)\t借贷平台基于区块链的借贷平台目前有ETHLend、SALT等,这些平台允许用户抵押加密资产来借贷法币或其他加密资产,与DAI类似,平台会借助预言机监控抵押物的保证金比率,在保证金不足时将会发出警告并触发清算程序。同时,预言机可以导入借款人的信用等级,进而确定相应的贷款利率。4)\t保险应用基于区块链的保险应用目前有Etherisc、HGS等。用户在平台上可购买航空延误险、农作物保险等保险。预言机可以为这类事件引入外部数据源,以便智能合约根据协议对保险产品作出是否理赔的决策。5)\t应用基于区块链的应用目前有FunFair、Edgeless等,通过智能合约保障游戏公平、即时安全支付,相比于传统中心化具有较大优势。对非中心的应用来说最重要的是不可预测、可验证的随机数输入。传统的随机数产生方式是中心化的,随机数的具体数值与特定机器的物理状态有关。区块链上的随机数需要满足分布式的特点,在每个节点产生的随机数要具有一致性的随机性,传统方式无法满足这一要求,通过预言机可以实现从链外输入具有这种特性的随机数。6)\t非中心化的预测市场非中心化的预测市场目前有Augur、Gnosis等项目,在体育赛事、总统竞选、通证价格变化等事件上可以做出预测,押注不同的结果预测。押注之后可以选择等待最终结果,也可以选择在二级市场提前交易“开奖券”。预言机将获取最终真实的结果,并根据此结果来计算盈亏。7)\t基于区块链的物联网应用基于区块链的物联网应用,是将链外传感器信息通过预言机传到链上,让智能合约验证后触发下一步行为。2预言机的工作流程与类型2.1预言机的工作流程预言机的主要作用是为智能合约提供可靠的外部数据,其核心价值是在可信的基础上,使区块链与外部世界连接起来。理想状态下预言机的工作流程如下:1)\t接受请求。预言机接收到用户合约发送的请求Req=\t获取数据:将查询内容q在时间τ发送到Src,进行查询;3)\t返回数据:一旦获得答案a,将a返回给智能合约使用。
Chainlink预言机推出链上注册表Feed Registry:9月5日,Chainlink预言机推出链上注册表Feed Registry,映射了Chainlink Price Feeds的当前通证合约地址。智能合约可以通过一个通用的注册表合约从任何Chainlink Price Feed获取价格数据,并极大降低开发混合型智能合约应用时的集成难度。[2021/9/6 23:02:32]
可供预言机查询的数据源一般有:1)\t互联网的URL链接;2)\t搜索引擎;3)\t其他区块链的数据;4)\t星际文件系统IPFS的数据;5)\t传感器的数据等。2.2预言机的分类方法1)按软硬件进行分类预言机获取数据的来源是线上,和线下,分别对应软件预言机和硬件预言机。2)按中心化与否进行分类预言机反馈的结果是通过单一节点获得,或通过分布式节点“集思广益”而获得,分别对应中心化预言机、非中心化预言机。非中心化的预言机效率较低,中心化的预言机可靠性较差。3)按数据流向进行分类外部数据可以通过预言机流向区块链触发智能合约执行下一步程序,智能合约产生的数据也可以通过预言机流向物理世界。
3预言机实际应用中需要攻克的问题预言机在实际应用进行设计时需要着重考虑以下三个要素:完整性、保密性、和可获得性。完整性是指信息完整准确可靠,没有被有意无意地破坏、篡改。保密性是指智能合约向预言机请求查询的内容不会被泄露出去。例如非中心化的保险业务,用户或许并不希望预言机透露自己的航班信息给全世界;再如非中心化的衍生品交易,用户也并不愿意透露自己的投资组合和操作策略。可获得性是指通过预言机调取数据时,可以及时得到所需要的信息,包括可以实现抗审查。针对完整性,一般可通过多重数据源、多重预言机、声誉系统、可信执行环境、真实性证明等方案加以解决。具体参见下文典型项目分析。针对保密性,预言机节点使用公钥对查询请求进行加密,并对预言机做出信息流限制,仅仅在查询信息源时才去解密。针对可获得性,非中心化的预言机可以有效解决。4典型项目分析4.1ChainLinkChainLink致力于打造高可靠性的分布式预言机网络。用户合约发出查询请求,CHAINLINK-SC为请求的事件分配适配器,适配器调用外部API并返回结果,CHAINLINK-SC聚合相关响应并把一个最终结果反馈给USER-SC。
Compound预言机改进提案通过,采用Chainlink喂价代替Coinbase:6月22日消息,DeFi借贷协议Compound已通过此前由社区成员发起的预言机改进提案,Chainlink喂价取代此前主要使用Coinbase作为喂价信息的来源,UniswapV2仍然用作断路器(circuitbreaker),锚点偏差窗口从20%降至15%。[2021/6/22 23:57:20]
CHAINLINK-SC主要由声誉合约、订单匹配合约、聚合合约构成。声誉合约通过响应时间、保证金数额、请求完成率等指标对预言机节点进行声誉评分,订单匹配合约借助声誉合约将请求事件与预言机节点进行自动匹配,增加可用性。聚合合约收集汇总预言机节点的响应,并将节点指标反馈给声誉合约。为保障信息的完整性和可获得性,ChainLink采用分布式数据源、分布式预言机、使用可信硬件三种方案。ChainLink的愿景是支持所有的智能合约,轻松实现智能合约与数据源和API的连接,可实现跨链和链下的交互和支付。4.2OraclizeOraclize是一个具有真实性证明的中心化预言机,目前支持以太坊、Rootstock、R3Corda、HyperledgerFabric和EOS等多个平台。智能合约通过对Oraclize发布一个调用请求来获取数据,指定数据源和参数,Oraclize根据请求获取数据后,利用callback函数返回结果。Oraclize认为非中心化预言机的解决方案具有效率低下、所有参与方都需要付费、耗费时间长等局限性。Oraclize的思路是证明从源头获取的数据是真实的且未篡改的,类似于网络技术中,HTTPS协议取代HTTP,在客户端和服务器之间创建加密和验证通道,提供身份验证。真实性证明可以通过硬件或软件的方案来加以解决,例如可信执行环境TEE、可审计的虚拟机。
Chainlink和世界经济论坛提出行业预言机标准:为了促进遗留系统与区块链技术的互操作性,Chainlink和世界经济论坛发表了一篇论文。题为“弥合治理差距:区块链和遗留系统的互操作性”,旨在作为一个框架来促进集成、加速开发,并鼓励采用“整体标准”,在遗留系统和区块链环境之间建立一座桥梁。该论文考虑的遗留基础设施中,提到了政府、机构、公司等。根据世界经济论坛的说法,这些实体可以创建新的用例,特别是增加用户对由区块链或基于分布式账本技术的系统保护的数据的信心。(Crypto News Flash)[2020/12/10 14:50:21]
4.3DOSNetworkDOSNetwork是支持多条主流公链的非中心化预言机服务网络。
DOSNetwork是一个Layer-2的预言机解决方案,由链上和链下两部分构成。智能合约指明合约需要的数据源以及数据类型,向链上系统合约发送一个预言机请求,接着该请求会被随机分配给一个链下工作组。工作组内的每个成员节点都会从指定的数据源获取数据并按照规定的类型和结构来解析。随后组内节点通过阈值密码学的方式对数据结果达到组内共识并且产生一个对共识结果的证明。经过组内共识的数据和相应的证明将会以一条交易的方式发回系统合约,并触发合约对提交组返回结果证明的验证。DOSNetwork认为基于声望来选择服务节点容易因“马太效应”造成中心化问题,因此采用随机的方法来选取预言机工作组合节点。DOSNetwork基于可验证随机方程和阈值密码学的方式产生安全、无法被预测并且可以被公开验证的随机数,避免了声望系统的种种问题,对参与节点更加公平公正。4.4OracleChainOracleChain是基于EOS平台面向EOS生态的非中心化预言机平台。OracleChain采用PoRD的双效机制,本质上是一种抵押保证金的声誉系统,奖励善意节点,惩罚恶意节点。
医疗区块链平台Solve.Care将使用Chainlink预言机:据官方消息,医疗区块链平台Solve.Care正在与Chainlink携手以扩大智能合约在医疗行业的作用。Chainlink预言机将为基于区块链的医疗服务所需的链外医疗数据提供来源&交付。[2020/10/26]
总体来看,目前市场上的预言机类项目主要为非中心化预言机,且多数都致力于支持多条主流公链。为了保障预言机信息的保密性、完整性和可获得性,不同项目采取了不同的方案,如ChainLink的方案是结合声誉合约、订单匹配合约和聚合合约,Oraclize是利用真实性证明,DOSNetwork采用了可验证随机方程和阈值密码学,而OracleChain采用了声誉和抵押证明。
附注:因一些原因,本文中的一些名词标注并不是十分精准,主要如:通证、数字通证、数字currency、货币、token、Crowdsale等,读者如有疑问,可来电来函共同探讨。往期回顾:坎坷的“共识机制”之路——区块链技术引卷之一扩容,解决区块链的阿克琉斯之踵——区块链技术引卷之二主流区块链共识机制的简介与比较——区块链技术引卷之三分片:分而治之,无限扩展——区块链技术引卷之四PoS共识机制及设计哲学——区块链技术引卷之五公链共识与治理迷局——区块链技术引卷之六跨链:打破孤岛,万链互联——区块链技术引卷之七隐私计算:动态的加密技术——区块链技术引卷之八状态通道:链下交互链上清算,两条腿走路——区块链技术引卷之九捍卫隐私:匿名技术的兴起——区块链技术引卷之十密码学初探:隐藏信息的艺术——区块链技术引卷之十一第0层扩容,区块链扩容明日之星——区块链技术引卷之十二链下计算,尚在征途的扩容良方——区块链技术引卷之十三四面楚歌:陷入困境的隐私捍卫者——区块链技术引卷之十四
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。