声明:本文旨在传递更多市场信息,不构成任何投资建议。文章仅代表作者观点,不代表火星财经官方立场。
边肖:记得要集中注意力。
来源:哈什基资本研究公司
原标题:一万字讲解区块链预言机的架构原理:以Oraclize和Chainlink为例
原标题:《区块链的热门风口预言机设计——解析 Oraclize 和 Chainlink》
陈奕欣写的
Predictor本质上是一个用于数据调用和访问的中间件。它解决了“是或否”和“数据多少”两类问题,从而实现智能合约调用外部数据。它不仅可以从原生链获取数据,还可以通过爬虫或可信第三方机构从链获取数据。
一个理想的Oracle网络应该满足五个条件:数据调用基于相互信任且不可篡改,数据调用高效,数据调用安全,Oracle网络的设计符合激励相容原则,数据资本化。
根据业务组织模式的分类,预测机可分为集中式预测机和分散式预测机。虽然它们的体系结构自下而上可以分为网络层、运营层、契约层和应用层,但是它们在运营层和契约层有很大的区别。
集中式预测机在性价比和用户体验上有先发优势,而分散式预测机因为在客户和生态模式上的优越性,有很大的后发优势。Oraclize和Chainlink分别对集中式和分散式Oracle的优点和局限性做了适当的改进。
Oracle在数据资产化、物联网、金融、保险、导航等领域有很大的应用场景和可扩展性。但仍面临一定的挑战,需要改进。
预言机的背景和现状预言机的起源和发展预言机的起源
神谕是指古代原始人向诸神祈祷和祭祀时,诸神所降下来的神谕。顾名思义,古代的象形文字和甲骨文大多是以甲骨文的形式记录的,在艺术和文化上充满了神秘的色彩。
甲骨文的目的是传达神的旨意,预测未来,比如石器时代巫师对神的祝福,《易经》的八卦推演。
传统计算机领域的预测机器
在传统计算机领域,预言机最早的原型是图灵在1939年提出的[1],它是由单带图灵机衍生而来的。预测器本质上是一个回答问题的黑盒,只适用于回答决策性问题(两个层次“是”或“否”两个答案)和功能性问题(比如24能否被哪些数整除)。然而,predictor不具备大规模数据处理能力。
甲骨文公司,美国高科技巨头,1970年以甲骨文命名,最初为美国联邦调查局提供关系数据库的软件服务。我们认为数据库中有Oracle这个词,反映了关系数据库解决了搜索数据时“判断数据是否存在”等决策问题,以及“搜索并输出数据搜索结果”等功能问题。
从此,“Oracle”在计算机领域的应用逐渐与数据的访问和调用联系在一起。
传统计算机领域的预测机真的能独立预测未来吗?答案显然是否定的。
预测机在计算机领域起着记录、交流和反馈决策事件结果的作用。它只完成数据调用和信息反馈,所以数据计算和处理不是它的重点。
在计算机领域,对未来发展趋势的预测主要是通过人工智能(AI)算法来实现的,而AI算法的本质是数据的优化和迭代,更不用说利用数据对未来的预测了。所以现在的预测机器需要预测未来,并结合预测方法(AI算法等。).
区块链的预言机器
自1995年Nick Szabo[2]首次提出智能合约的概念以来,越来越多的网络交易合约采用了智能合约的模式,尤其是以ETH为代表的公链平台。主要原因是人们想实现tran
智能合约虽然允许无第三方的可信交易,实现了交易的可追溯性和不可逆性,但不能与区块链之外的数据直接接触(如获取和调用外部数据等。),所以需要外部图灵机将数据写入区块链或分布式账本。
它在数据源的API接口之间起到桥梁的作用,从而实现block link端口与外部API接口的对接,而这个图灵机就是Oracle。
Oracle和智能合约在智能合约本质上是控制类的脚本代码,而Oracle本质上是回答决策和功能问题,只实现数据调用而不实现计算这一点上自然不谋而合。
在安全性方面,智能合约不具备处理大规模数据的能力,容易造成计算溢出。因此,需要添加一个预测器来调用外部数据而不是计算,从而避免智能合约在调用智能合约时陷入图灵停机的窘境[3];在可扩展性方面,使用Oracle解决了“指定数据源时智能合约上传数据可能被篡改”的问题,弥补了智能合约平台网络效应和可扩展性的不足。
因此,Oracle在智能合约调用中的应用有利于实现数据资本化和价值化,扩展了智能合约的可移植性。
我们用两个案例来进一步解释预言机的使用:
案例一:A计划于2019年12月31日上午10: 00买入10个以太坊,报价140美元。它通过Oraclize从CoinMarketCap调用约定时间的以太坊价格,在收盘时判断智能合约是否可以执行。如果在约定的交割时间ETH价格高于140美元,则交易失败;如果ETH价格不高于140美元,则交易成功。
案例二:B计划构建多因素量化策略模型,预测ETH价格未来走势,通过Oraclize从coinmetrics.io实时调用难度系数、全网平衡、交易量等指标原始数据,利用公司三台服务器进行多线程分布式计算,实现程序化自动交易。
案例1包括一个决策问题和一个功能问题。预测机完成ETH价格的实时调用,计算过程简单。
2案例既是数据调用的决策问题和功能问题,也是量化投资策略的具体实施和计算问题。计算过程复杂,一旦在智能合约上执行,就会导致计算溢出,导致智能合约失败。所以一般在链下实现分布式计算后,通过Oracle实现数据调用。
预测机器的定义和分类预测机器的定义
在计算机领域,甲骨文机器(Oracle Machine)又称甲骨文机器,是一种抽象计算机(图灵机),其决策机制是研究决定性问题的黑匣子,可以解决任何决策或功能问题。
在区块链领域,区块链的甲骨文起着将外部信息写入链条的作用,是整个写入机制的总和[2]。它至少与一个神谕有关。
在区块链领域,Oracle是连接智能合约与区块链外部世界的中间件,是区块链的重要基础设施。其功能是为区块链的智能合约提供数据信息。
注意Oracle网络中设置的令牌多基于ETH网络,使用需要消耗燃气。Oracle本质上是一种中间件,没有单独的区块链,其令牌在Oracle网络中只起到价值传递媒介的作用。
预言机的数据采集方式
预言机可以从链上获取原生数据,也可以通过网络爬虫或者传统的第三方机构获取数据。
对于Oracle机器从链上获取数据来说,链上应用(Dapp)并没有预想的那么好,导致用户对链上数据的需求有限,不足以支撑这种模式的长期发展。
如果甲骨文从链上获取数据,要么可以把功劳让给传统的第三方机构作为公链或联盟链的节点向链上输出数据,要么先知可以通过网络爬虫的方式抓取特定的数据。
一般来说,对于数据调用要求低延迟的服务请求(如ETH price实时调用),不适合使用爬虫获取数据,因为爬虫代码和数据的准确性受到网页结构和网络环境的制约;
目前主流的预言机项目(如Chainlink等。)都采取第三方可信机构授信(如谷歌、甲骨文等。)为节点,从而完善相关DeFi产品的定价机制。
图表1:预言机的数据采集模式
数据机和爬虫的区别
目前有业内人士认为Oracle机器给爬虫增加了去信任机制。
我们认为这是有偏差的,如上面1.2.2节所述,因为爬虫只是抓取网页数据的一种方式,而预测器虽然使用爬虫获取数据,但大多是使用传统的第三方机构作为节点来获取数据。
Oracle和crawler在数据输出格式上也有很大的区别。
一方面,爬虫捕获的数据很可能是非结构化的,可读性差,而Oracle获取的数据格式必须满足智能合约调用的要求,用户和先知可以根据智能合约的要求定制数据的输出格式。
更重要的是,Oracle在调用高频数据(如BTC价格等需要实时更新的数据)方面远远优于爬虫,可以避免数据在采集过程中因程序运行失败而被关闭,而爬虫在程序运行过程中容易被中断。
理想预测器网络应满足的条件。理想的预测器网络应满足以下五个条件:
1.数据通话是基于双方的相互信任(不可篡改)。Oracle调用外部数据引入智能合约时,要保证最终反馈给用户的数据与数据源本身的数据一致,防止先知中途篡改。
经服务请求者确认和其他先知验证后,如果调用数据结果正确,则将调用数据写入智能合约,并将交易记录上传至区块链;如果调用数据不一致,交易将被定义为非法。
2.数据呼叫是高效的。根据智能合约,如果预言者在发出请求后,没有在规定时间内响应用户的请求,或者预言者没有在规定时间内将数据反馈给用户,交易将自动取消,服务提供商将受到惩罚。
3.数据通话安全性高。预测机的设计必须有效遏制各种数据腐败,如女巫攻击、镜像攻击、抄袭答案(吃空饷)等等。
此外,节点被强制在可信执行环境(Tee)中执行解密,所有用户和节点可以看到的公共答案被报告给区块链。
4.符合激励相容原则。预见性激励机制和监督机制的建立必须实现激励兼容,但PoW(工作证明)和PoS(利害证明)都容易引起大多数人的攻击。前者体现在采矿,3354通过矿池等组织形式攻击,后者通过过质押、行贿等方式攻击。
因此,治理机制的设计必须充分调动其他竞争预测者的监督积极性,不能将令牌奖励、打包概率等决定预测者利润的指标联系起来。否则,不可避免地会出现因预言者和使用者利益不一致而导致的委托代理风险。
5.数据资产化。数据应该作为一种资产,根据其资源的重要性和稀缺性来定价,并以公允价值的形式写入智能合约。
目前缺乏有效的数据资产定价机制,因为数据的类型多种多样,不同类型的数据对不同用户的影响也有显著差异。但目前数据的定价权是由数据的资源方主导的,并没有去中心化。
预言机架构的起源与发展预言机是根据企业组织形式进行分类的。预言机可以是集中式单预言机机制(如Oraclize)——集中式预言机,也可以是分散式多预言机机制(如Chainlink、DOS Network等。)3354分散预言机。
集中式Oracle机器(图2)为服务请求者提供数据。对于一个具体的数据服务请求,请求者指定N个数据源,向集中式Oracle发送契约请求后,服务提供者从一个或多个数据源的接口调用数据,最终反馈给请求者的数据可以是一个数据源,也可以是多个数据源的结果汇总。
一般来说,由于单个数据源的成本远低于多个数据源,集中式的Oracle只能从最可信的数据源调用数据,实现整个Oracle系统的高效运行。
分散式Oracle(图3)由多个先知联合提供数据采集服务,利用纠删码技术实现答案的冗余,从而增强整个Oracle系统的容错能力。
当预言者提交的所有答案在规定时间内汇总完毕(汇总的方法有加权平均、中值或众数,视调用的具体数据而定),汇总后的答案会反馈给请求者。
图2:预言机的分类
图3:集中式Oracle机器的关系模型(针对特定的数据请求)
图4:分布式Oracle机器的关系模型(针对特定的数据请求)
除了底层网络协议(TCP/IP协议)、加密基础设施和硬件执行环境(通常是TEEs)相似之外,集中式Oracle和分散式Oracle在技术架构上有很大的不同。
其中,象征性的区别在于,中心化的甲骨文机器需要一个可信的第三方作为验证者或者审查者来证明自己的清白,而去中心化的甲骨文机器则通过多个甲骨文相互验证。
集中式Oracle的技术架构。集中式Oracle从可信中心提供数据,通过第三方企业提供智能合约运营所需的外部数据,并将数据传输到智能合约。
其技术架构自下而上由网络协议(一般为TCP/IP)、运营层、契约层、应用层组成。
图5:集中式预测器自底向上的技术架构(红色部分指的是集中式预测器的独特架构组件)
网路层
底层是网络协议。在集中式预测器的网络拓扑中,一个或多个中间节点由单个或寡头垄断的集中式服务提供商控制,其网络传播速度完全取决于中间节点对服务请求的响应,因此面临一定程度的单点故障风险。
操作层
上层是运营层,包括可信第三方验证系统、可信执行环境(TEEs)和格式配置器。
可信第三方验证的渠道必须是用户信任的。一般来说,集中式Oracle网络的审查员最好由国家权威部门和大型企业(如脸书、亚马逊等)担任。),且审查员与项目方不存在利益关系。
比如Oraclize被Amzon云主机审查,通过TLSNotary证明证明其诚实[4]。
在硬件方面,智能契约的运行和数据调用都在可信执行环境(TEEs)上进行。TEEs基于可信硬件(即与系统其他部分隔离的硬件),拥有独立的处理器和内存,其运行完全独立于普通计算机的操作系统、虚拟机监视器、VMM、Bios等核心组件。
TEEs分别在安全和保密方面起着重要的作用。在安全方面,TEEs建立了多重安全层,将可信硬件与计算机最脆弱的部分完全隔离,从而大大缩小了黑客可以攻击的范围。在保密性方面,TEEs防止节点查看运营数据,数据在链下传输和计算。
配置器通常统一最终传输给服务请求者的数据格式。为了增强数据的可读性,便于验证服务合同的执行情况,一般采用JSON格式。
合同层
在契约层,集中式Oracle包括订单匹配契约、服务请求契约、数据调用接口和服务标准协议。
用户(服务请求者)通过调用服务请求契约提出获取特定数据内容的请求,并指定服务标准协议(如指定服务响应时间、获取什么内容的数据等。).集中服务提供者接受请求后,调用订单匹配契约生成服务订单,最终通过数据源接口(数据调用接口)获取数据。
去中心化的Oracle技术架构去中心化的Oracle系统架构也可以自下而上分为网络协议层、操作层、契约层和应用层。
尽管分散式Oracle系统和集中式Oracle系统在网络协议和应用客户端上没有显著差异,但由于其P2P (Peer-to-Peer)网络结构,分散式Oracle系统和集中式Oracle系统在操作层和契约层上存在显著差异。
图6:分散预测器的自底向上架构(红色部分指的是分散预测器的独特架构组件)
操作层
在操作层面,分布式Oracle在集中式Oracle的基础上增加了多重签名机制和外部适配器。
去中心化的甲骨文不需要可信第三方的背书来证明自己的清白,而是需要依靠多重签名机制,让满足最低诚实点的甲骨文同时在相应的节点上签名。
例如,如果Chainlink采用门限签名技术,以便其他节点可以检查提供服务的预言者是否有不当行为,交易是否合理,则至少有一半可用节点必须在链下签名,交易才能实施。
更重要的是,外部API适配器的设置使得Oracle能够将复杂的数据调用需求拆分成多个子任务,并以协作的方式将多个先知参与到服务流程中。
类似于我们在论文《万字讲透去中心化存储》中提出的分布式存储,外置适配器恰好是一个分布式系统。做出多步复杂请求的节点越多,参与其中的先知就越多,这样请求服务的人就越多,反馈速度就越快,服务完成时间就越短。
合同层
分散式Oracle系统在集中式Oracle系统的基础上增加了信誉契约和摘要契约。
在声誉方面,由于去中心化的甲骨文系统本质上是由多个甲骨文组成的服务网络,需要调用声誉契约来统计每个先知的历史服务,并扣除有不当行为(如搭便车、复制其他先知提供的哈希值、镜像攻击、女巫攻击等)的先知的声誉得分和信物。).
在契约方面,由于去中心化的Oracle是一个有多个先知的数据服务网络,在大多数情况下,多个先知在指定的时间内同时响应同一个服务请求。
此时,先知者网络通过调用汇总契约,采用加权平均或中位数的方法,汇总所有先知者提供的答案。
预测机项目的比较与分析分类与比较根据本文1.2.2节对预测机的分类,预测机项目根据业务组织模式的不同可分为集中式预测机网络和分散式预测机网络。
由于数据掌握在特定数据源(大型组织)手中,项目方需要整合多方资源引流Oracle网络,行业具有明显的先行者和团队优势,而Oraclize和Chainlink作为布局最早、流量最大的两家Oracle网络,恰好具备这种优势。
因此,本文只介绍了代表项目Oraclize和Chainlink,对于其他缺乏流量的预测性计算机网络,如FOAM和DOS网络,不做过多的详细介绍。
再者,以DOS网络为代表的预测机项目,针对一种数据请求开发区块链,由于开发成本和运维成本较高,不具备规模效应的需求。
图7:集中化预测机器与去中心化预测机器
从商业模式的角度看可扩展性
从商业模式来看,集中式Oracle的商业模式本质上是一个数据服务平台(类似于Wind和彭博),而去中心化的Oracle是一个多元化的数据服务网络。后一种商业模式显然更有利于扩张
原因在于——,虽然两家公司对数据服务网络的拓展依赖于项目方自身的资源,但去中心化的Oracle网络不仅有效利用了项目方自身的资源,还有效整合了其加入的众多先知的资源,有利于整合多方资源共同拓展Oracle网络,从而形成有效的业务闭环。
安全对比分析
中心化预测机和去中心化预测机在安全性方面各有优缺点。前者的安全风险主要来自第三方的信任成本和黑客攻击,后者的安全风险主要来自数据损坏导致的全网瘫痪。
对于集中式Oracle,其安全性取决于可信第三方的身份。如果可信第三方是政府机关,则第三方的信任成本较低;如果被信任的第三方是大企业,信任度高,但还是存在一定程度的委托代理问题。
对于去中心化的Oracle,其安全性取决于大多数节点是否诚实,如果发生数据损坏,将采取有效的惩罚措施。有效遏制数据腐败的前提是大部分节点是诚实的(每个节点都在努力实现自身利益的最大化)。只有在这种条件下,女巫攻击、镜像攻击、白吃白喝等腐败行为才会得到有效遏制。
成本分析
集中式预测机在成本和定价方面比分散式预测机有优势。
在定价方面,两者在同一成本集中预测机中均以法币为定价单位,不存在大幅波动的风险,而分散预测机一般以其代币为定价单位,波动幅度较大,无法遏制投机需求对交易需求的负面作用;
在成本上,虽然两者的主要成本都是智能合约执行的煤气费,但去中心化的甲骨文网络需要在链上汇总结果,调用信誉合约。因此,对于同样的数据服务请求,去中心化的Oracle机器的代码运行需要比去中心化的Oracle机器消耗更多的气费,即使去中心化的Oracle机器把信誉统计、答案聚合、计算处理放在链外处理。
未来以Chainlink为代表的去中心化Oracle网络将进一步完善定价机制,采用法定货币(如美元)作为定价单位,其Token将只发挥交易功能和监管功能,因此去中心化Oracle的定价优势将逐渐减弱。
服务效率的比较分析
由于服务请求的时效性,集中式和分散式预测机的服务运行效率是不同的。
对于时效性较高的数据调用请求(如ETH price等数据源为DeFi金融合约实时确定的服务请求),集中式的Oracle machine由于不需要多重签名验证机制和链式答案汇总,只需要可信的第三方进行单方验证和审核,因此其服务效率高于分散式的Oracle machine network,智能合约可以更快的获取数据。在其他条件不变的情况下,数据调用的时效性越高,集中式预测器的效率优势越突出。
对于时效性要求相对较低的数据服务请求(如获取甲骨文中小企业的数据库、年度数据、月度数据等。),分散预测器更有优势。
一方面,去中心化的Oracle网络通过外部任务适配器步进(分发)复杂的数据服务请求,从而实现资源的有效分配;
另一方面,通过数据源多元化、汇总契约、信誉契约等机制的设计,分散数据源本身造成数据失真的风险,遏制数据腐败的动机,从而进一步提高数据的准确性。
同样,在其他条件不变的情况下,服务请求的时效性要求越低,去中心化Oracle网络的优势就越突出。
目前时效性高的服务请求(如智能合约调用相关的数字货币价格)占主导地位,集中预测机处于优势地位。然而,随着数据资本化的推进和互联网的快速发展
从性价比、用户体验、客户情绪、生态等方面比较集中式和分散式预测机的竞争优势和劣势;
1.从性价比来说,目前集中预测机更有优势。一方面,目前的集中式预测器项目在成本定价上有很大优势。另一方面,目前价格转移(支付DeFi契约)等低延迟服务请求仍是Oracle应用最广泛的场景,M2M(机器对机器)的应用场景尚未落地,因此集中式的Oracle在性能上更胜一筹。
2.在用户体验方面,由于大部分数据服务请求是低延迟的DeFi feeds,因此集中式预测机目前也具有优势。
3.在客户情况和生态方面,主流的去中心化预测机(如Chainlink)会利用多方资源整合,通过对作为节点的第三方实体进行授信来增强整个网络的可扩展性。未来,随着M2M场景的普及和数据资产化的推进,会有一个美好的未来。显然,集中式预测机没有这个优势。
图8:目前集中式预测机和分散式预测机的竞争优势比较
鉴于以上讨论的集中式和分散式预测机各自的优缺点,以Oraclize为代表的集中式预测机项目和以Chainlink为代表的分散式预测机项目进一步完善了各自的优缺点。
Oraclize——最大的Oracle网络Oracize简介
Oraclize于2015年首次提出,是世界上使用最广泛的区块链预测器服务。它为智能合约和区块链应用提供外部数据调用服务,每天处理ETH、根茎、R3 Cord、Hyperledger Fabric和EOS上的数千个数据服务请求。
Oraclize旨在通过TLSnow proof、Android proof等证明从原始数据源获取的数据是真实的,不可篡改的。
Oraize Oracle协议——可批准的协议
Oraclize的架构与上图4中集中式Oracle的架构相同,自下而上也包括网络协议、操作层、契约层和应用层。其特殊性在于基于可信第三方的认证机制、数据源、解析帮助器和服务定价四个维度。
(1) Oracize可信第三方证明机制3354软硬件让Oracize证明自己清白。
TLSnow Proof TLS公证人证明充分利用了TLSNotary 1.0和1.1协议(开源代码)的功能,允许TLS主密钥在服务器、被审计方(Oraclize)和审计方(Amazon云主机)之间拆分。通过与亚马逊云主机共享部分服务请求数据,允许审核人员在不泄露更多信息的情况下进行信息验证,从而有效避免其他参与者在本地修改html代码、PS图片等证书为假的情况。
Android ProofAndroid Proof使用Google开发的名为SafetyNet的软件远程证明技术,分别验证“特定应用在没有后门的安全环境中运行”、“运行代码是否与事先公布的一致”和“系统版本是否为最新版本”。
首先,Android Proof通过验证给定的Android应用程序是否运行在连接到可证明基础设施的物理设备上来实现第一个证明要求。
其次,Android Proof远程验证应用程序代码的哈希值,从而验证设备上运行的应用程序的身份,实现第二种证明要求;
更重要的是,Android Proof通过新推出的Android硬件证明,证明物理设备已经更新到最新可用的Android版本,从而实现第三个证明要求。
账本证明(Ledger Proof)账本证明(Ledger指的是法国专门做硬件强制加密货币钱包的账本公司,不是账本)使用代码证明和设备证明的功能来证明Oraclize开发的应用运行在真实账本设备的TEE中的任何第三方。证明格式如下:
图表9:分类帐证明格式
(2)数据来源
Oraclize支持的数据类型主要有URL、WolframAlpha、IPFS和计算。其中,URL是数据源的HTTP链接地址(输出格式为JSON),WolframAlpha是支持直接访问WolframAlpha知识引擎的API(输出格式为string),IPFS是存储在星际网络(IPFS)上的所有文件(如果20s后IPFS系统上没有匹配文件,数据调用请求失败),计算通过访问亚马逊云主机实现金融产品套利交易的结算。四种类型的数据服务请求通过以下机制进行验证:
图10:不同数据类型的验证方法
(3)数据输出格式多样化
Oraclize支持JSON、XML、HTML解析器、二进制帮助器作为不同数据源、不同服务请求的输出,支持不同输出格式之间的转换,增强了数据的可读性。
(4)服务定价
一审免费;电话费)——佣金:包括基础费和认证费,根据ETH对美元的最新汇率结算,并结算将由魏兑换成美元的气费。服务费请求的结果如下表所示:图11:组织服务定价模型,N/A表示不收费,数据来源为http://docs.provable.xyz/#安全-deepe-验证-证明类型-分类帐-证明
支付方式以连锁支付渠道为主。项目评估
Oraclize是目前最大的Oracle机器网络,其优势体现在以下几个维度:
在安全性方面,Oraclize亚马逊云主机、Google、Ledger等第三方可信机构足以证明自己的清白。在Oralize Oracle network中,区块链应用的开发者和这类应用的用户不必信任Oralize,导致Oralize调用智能合约和代码的燃料成本比去中心化的Oracle network更低,并使整个Oracle network高效运行,自然满足了时效性要求高的数据服务请求。就用户体验而言,数据提供商可以在不修改其服务的情况下兼容区块链协议。智能合约可以直接从网站或API访问数据。在服务定价上,Oraclize以美元计价,充分保证了其服务价值不会出现大幅波动,更有利于全网规模流量的扩大。然而,Oraclize在项目可伸缩性方面是有争议的:
在可扩展性方面,Oraclize作为单一模型的Oracle网络,在可扩展性上很难像分散式Oracle那样整合多个Oracle的资源。在数据验证方面,Oraclize很难对时效性要求较低的数据服务请求进行容错和纠错,尤其是对于善意的数据调用错误。而且Oraclize缺乏有效的信誉评分体系,用户(服务请求者)无法对相应的服务进行评分和反馈。
Chainlink——分散预测机的前身Chainlink介绍
Chainlink本质上是一个Oracle机器的去中心化网络,它为任何区块链上的复杂智能合约提供可靠的防篡改输入和输出,并以“链上链下”的架构模式实现。
当初Chainlink依靠的是ETH网络。2019年,Chainlink与Google、甲骨文、Etherisc等商业巨头合作,逐步接入外部数据源,通过使用元预测机,使DeFi相关金融产品的数据导入更加完善。
Chainlink架构3354“上链和下链”技术架构
Chainlink架构分为链上部分和链下部分。链上部分作为契约层,记录Chainlink中的所有信息,而链下部分负责代码、命令行和输出数据的具体执行。
图12: Chain Link的“链上链下”技术架构
(1)合同层上部3354闭环
在链的上部执行的操作包括用户(服务请求者)的Oracle选择、数据服务的反馈报告和最终结果汇总。Chainlink通过调用记录预言者历史服务的信誉契约、订单匹配契约和总结契约,实现整个Chainlink网络在链内的闭环系统。
信誉合同——记录了服务提供商(先知)的历史业绩
当请求者(用户)选择合适的预言者为其请求提供服务时,必须调用信誉契约来检查预言者的历史表现,然后根据服务请求中指定的数据源、响应时间和具体的数据需求来完成对甲骨文的选择。
服务请求完成后,Chainlink网络记录其完成情况,生成数据报告,然后调用信誉契约适当增加或减少提供服务的预言者的信誉得分。
服务提供商将对不同先知的声誉进行评级,Chainlink计划安排如下参考标准:
先知同意的请求总数,包括已实现和未实现的请求;完成请求数,计算完成率();对比其他先知的回应,通过计算契约()判断为可接受的请求总数。一般用接受任务总数和完成任务总数的平均值来衡量。平均回复时间(-);累计违约金金额(-)——违约金是因预言者的不当行为(免费下载抄袭对方答案、泄露或使用服务请求的数据)而导致的质押环节的扣款。注意:这意味着增加将给予先知额外的分数,-这意味着增加将给予服务提供商额外的分数。
订单匹配合同
Chainlink通过调用订单匹配契约,将特定的数据服务请求与用户选择的一个或多个预测器进行匹配,生成订单后将订单抽象到链中。
汇总合同
Chainlink根据具体问题对多个Oracles提供的答案进行汇总,汇总方式一般是对反馈数据进行加权平均(不含极值)得到的汇总答案,最后反馈给服务请求者。
(2)离链)——执行层
链的下部分为Chainlink核心、外部适配器和子任务模式。其中,Chainlink Core是可信执行环境(TEEs)中的命令窗口。外部适配器根据服务的特定需求将复杂的任务分成多个子任务,以便于执行。子任务模式将所有先知的最终输出答案统一为JSON格式,便于代码执行和可读性。
图13:Chain Link的执行过程,数据源:《Chainlink 白皮书》
如图13所示,Chainlink工作流程分为以下七个步骤:
用户-SC合同发送数据呼叫请求;ChainLink-SC契约记录对prophet的请求,并编译到核心命令行;Core通过在合约程序前添加外部API来设置适配器,并分配任务;适配器将请求反馈给外部API;ChainLink接收来自Oracle服务提供商的响应,并将其反馈给核心命令行;ChainLink核心向ChainLink-SC报告和反馈数据;ChainLink-SC汇总所有答案并反馈给客户端。链环的激励机制和验证系统
Chainlink的令牌是link,任何个人或组织都可以通过质押LINK令牌成为Oracle系统中的先知,为用户提供数据服务。Chainlink通过信誉契约对用户的行为进行评分,对好先知奖励一定数量的链接令牌,对行为不端者则通过扣除其已抵押的链接进行惩罚,并将其评分记录在信誉契约中。
最重要的是,通过揭露同行先知的不端行为,可以获得链接令牌奖励,这是Chainlink实现整体激励兼容的根本原因。
Chainlink的验证系统从可用性和准确性两个维度实现验证。
在可用性方面,Chainlink要求Oracle对从其他Oracle收到的一组回复答案进行数字签名,验证契约将接受并奖励再次提交证书的Oracle。在证书语句中表现不佳的Oracles对其同行表现出一致的不回复特征;
在准确性方面,ChainLINK将验证服务实现为一个智能契约,将奖励甲骨文提交偏离答案的证据(因为数字签名很容易被发现),并获得相应的链接,从答案中扣除提交偏离的甲骨文,以惩罚其质押的链接。
项目评估
Chainlink是Oracle project中的一个去中心化模型。实现了激励机制、运营机制、嵌套契约的有效闭环,落实了甲骨文网络激励兼容的价值主张。无论是内部机制设计还是外部引流开发都有很大优势:
在安全性方面,Chainlink有以下四个优点:
1.Chainlink使用Schnorr多重签名机制解决了免费下载(预言者直接复制之前提交答案的哈希值的行为)的问题。最大容错节点数为Chainlink节点总数的2/3(其中无可用性的Oracle数为节点总数的1/3,无准确性的容错节点数为1/3),要求至少需要1/3的同行先知签名才能通过验证。
2.Chainlink在一定程度上遏制了女巫攻击和镜像攻击。Chainlink计划通过背书(认证)高质量的Oracle来监控验证系统中Oracle的统计数据,并对提交给chain的数据进行事后检查,并与直接从信誉良好的数据源获得的答案进行比较。认证机制仍在进一步设计中。
3.Chainlink通过数据源和预测机的多样化,有效分散了数据源本身的问题导致数据失真的风险。
4.Chainlink很早就引入了可信执行环境(TEEs)作为硬件的安全保障,从而实现了契约的保密性,产生了可靠的随机性。
在激励机制方面,链家实现了有效的闭环。对先知举报其他先知并提供有效证据的行为进行奖励链接,对有不当行为的先知扣除质押链接作为惩罚,Chainlink只是作为一种中间件。甲骨文的收入与其提供服务和提供甲骨文不当行为的其他证据的行为挂钩。
在可扩展性方面,Chainlink将不断降低对ETH网络的依赖。Chainlink与Google、Oracle、Etherisc等巨头达成战略合作,实现在保险、物联网、DeFi金融合约、随机数生成等领域的应用,进一步增强了数据来源的多样性。而在依托ETH网络的智能合约中,Chainlink将通过构建元预测机,聚合链下的真实市场数据和链上的价格数据,既保证了对用户的定价效率,也提高了对链上流动性池的定价效率。
但是,Chainlink仍有进一步改进和完善的空间,并付诸实践:
1.在服务定价方面,Chainlink仍然以链接令牌为计量单位,导致服务价格波动较大,不利于为Oracle构建长期稳定的服务体系。
2019年5月至2020年2月,由于Chainlink与谷歌、甲骨文等行业巨头的战略合作等类似事件,link的价格从不到0.5美元上涨到4美元以上。
一方面,链接价格的大幅上涨大大提高了服务收费标准,很容易导致客户流失,转移到Oraclize;另一方面,LINK tokens的兴起使得成为先知的资金门槛大幅提高,而Chainlink只有21个官方认证的节点(可以运行数字货币价格数据调用的服务节点),总共只有73个合约节点在运行。因此,Chainlink正在部署基于美元的支付系统,以便其服务定价趋于稳定。
2.在激励机制上,Chainlink中先知的未来收益仍然与其质押的链接令牌份额挂钩,容易导致安全隐患和信誉评分系统失效。
新发行链接代币金额的35%仍将按照先知初始质押份额给予奖励。一方面,先知很容易在不提供相应服务和贡献的情况下,大量质押链接代币,从而赚取链接代币的红利,享受收益。另一方面,大量质押链接令牌的先知可以通过同时控制多个节点轻松攻击。一旦超过1/3的节点被控制,其信誉评分系统的举报机制就会失效,遏制女巫攻击、镜像攻击、白吃白喝的前提就不成立。
这是Chainlink目前面临的最大挑战。
预测机器的未来前景预测机器的未来发展前景预测机器在金融、保险、导航定位、物联网等面临大规模数据调用的领域大有可为。
虽然智能合同技术门槛较高,在法律上不具备一般合同的法律效力,但自动化的合同执行有利于避免因权责不清而引发的纠纷,迎合了程序化、自动化发展的大趋势。
预测机器和数据资本化
数据资产化扩展了Oracle的可扩展性。数据资本化是未来必然的发展趋势,大部分数据资源和定价权掌握在互联网巨头和行业寡头手中。Oracle项目方通过与掌握数据的巨头的战略合作,大大增强了Oracle网络的可扩展性。
一旦数据资产的定价方法得到改进,由互联网巨头控制或互联网巨头自己开发的Oracle项目将在未来主导Oracle服务的市场,充当数据价值传递的主要媒介。
预言机和物联网
在物联网方面,物联网已经渗透到我们生活的方方面面,因此需要引入智能合约,使其产生的数据成为资产,而智能合约的引入将需要Oracle获取外部数据调用。
以车联网为例,车险是最容易发生权责纠纷的合同之一,而物联网通过传感器实时记录车辆行驶、车辆碰撞部位、车辆违章记录等数据。假设车险合同以智能合同的形式呈现,需要通过预测器技术调用相关数据来判断智能合同的执行条件是否可以触发。
预测机器和金融
在金融(尤其是DeFi)中,需要通过预测机器来保证链条结算的正确执行。尤其是利率互换、期权、分散杠杆交易等金融产品。兼容智能合约,如MakerDao、CDx、0x协议等。以确保每笔交易都以准确的价格和数量交付。
预言机和保险
在保险方面,预测机的设计让智能合同保险在实现权利义务明确、自动执行的基础上,进一步遏制保险欺诈,防范投保人和保险人的委托代理风险(消除传统保险合同中因表述模糊而产生的纠纷)。
比如Etherisc和Fizzy实现了航班延误自动补偿。Nexus Mutual让受激励驱动的本地oracle验证本地未发布的报表,并将其报告给区块链。飞毯是人工智能和地理数据的新型可编程保险。
但目前智能合同保险仅限于权责明确的保险合同,对于权利义务模糊的智能合同(尤其是复杂保险案件的界定)有很大的局限性。但随着今后保险案件的逐渐增多和法律制度的完善,这种局限性会逐渐被弥补。
预测机器和智能导航
在导航方面,GPS一旦被黑,不仅会给货运、海运、空运带来严重的无序(如定位误差导致的违约、国际贸易交割损失),还会给国家安全带来难以想象的调整(如GPS导弹系统的入侵)。因此,有必要引入Oracle的技术,使从GPS接口获得的定位数据不被篡改。
例如,FOAM强调用户拥有其GPS数据的所有权。它利用Oracle技术将GPS导航相关数据上传到链上,通过位置证明(POL)证明某人或某物在特定时间确实在特定地点,从而有效降低GPS数据的信任成本。
预测机面临的调整目前,预测机网络的发展面临以下六大挑战:
预测器不能保证数据源本身的准确性。
预言机只是解决了数据在传输过程中可能被篡改的风险,从而在预言者和用户之间建立可信机制,让不可信方实现v
例如,黑客以两种不同的方式攻击GPS系统。第一种方式是篡改状态数据传输通道中目标位置的数据,第二种方式是直接攻击GPS系统的数据存储系统。
假设甲骨文中的大部分节点都是诚实的,显然第一种攻击方式采用的是去中心化的甲骨文模式。只要GPS系统更新数据,对比不同先知调用的结果,就可以解决这个问题。
第二种攻击方式,造成GPS系统本身数据源的数据被篡改。即使后来GPS系统更新了数据,其存储数据库中的错误数据也没有得到纠正,导致定位数据失真,进而导致发货违约。
对冲数据源错误数据失真的方法是保持数据源的多样性,从而降低数据源本身的问题导致数据失真的可能性。
但当数据源单一时(如GPS定位数据、物联网传感器记录的数据),这种缺陷会以较大概率造成数据失真。
由于不可篡改性,很难修复安全漏洞。
区块链的数据不可篡改是一把双刃剑。不可篡改的优点在于没有人可以篡改现有的智能契约,规章制度是去中心化的(前提是大部分节点是诚实的),但也有一些缺点。
一方面,安全漏洞修复起来很昂贵。如果调用数据的智能合约存在安全漏洞或错误,由于合约本身的不可篡改性,漏洞无法修复,除非社区更新软件版本,进行硬分叉(比如ETC和ETH的分叉)。
而且很多项目因为类似问题没有及时修复,导致代币价值为零。
另一方面,如果在发现错误后更新数据源,由于智能合约的不可篡改性,链中记录的数据仍然是更新前的数据。虽然实际情况下一切都可以被篡改,但如果后果不严重(只有一小部分数据失真),项目方或社区不会以硬叉的高成本篡改数据。
开源代码更容易被黑客攻击
从理论上讲,开源程序代码可以帮助更多人修复代码bug,进而完善智能合约本身。
但实际上,智能合约的开源代码让黑客或恶意节点更容易发起攻击。
一方面,由于绝大多数人没有足够的时间或精力去检查智能合同码本身的问题,存在较大的技术壁垒,群众对智能合同码的监督有限。
另一方面,由于合约代码不可篡改,虽然没有人可以随意更改交易规则,但一旦代码出现bug,纠错的阻力很大。目前处理大规模bug最好的方法是硬分叉(比如ETH社区处理DAO),这使得去中心化本身没有意义,或者导致项目破产。
而大多数项目方没有足够的人力、物力、财力(如ETH社区),使得项目的收益远远小于风险。
数据壁垒的加剧导致Oracle网络引流困难。
本质上,Oracle网络是一个数据资源整合的平台。要实现数据共享,就要通过引流来扩大网络规模。但是数据壁垒使得引流异常困难,限制了甲骨文的网络规模。
目前,大部分数据掌握在脸书、谷歌、腾讯等少数互联网巨头手中。或者Swift等行业寡头。他们不愿意共享自己的数据,这使得核心数据难以获取,也限制了Oracle网络的规模。
但是,一旦获得数据资源,引入将使Oracle的网络规模迅速扩大。
例如,Chainlink与Google、甲骨文、Swift等面向数据的网络巨头达成战略合作,Google的BigQuery数据仓库作为数据源,为Chainlink提供了大量的数据流支持,大大提升了Chainlink网络的活跃度。
随着现代产权制度的逐步完善,数据壁垒将成为未来数据交互的巨大挑战,数据资本化趋势将成为必然。能够获得数据资源的Oracle计算机网络将获得更多的数据流量。
目前,预言机项目处于初创期,数据壁垒将会导致当前预言机项目风险大于收益,掌握数据资源的组织倾向于自己控制数据资产的定价权,这会从数据真实性和预言机网络规模两个维度形成掣肘。
一方面,数据来源的多样性是分散数据来源出错的唯一方法,但是实际上在绝大多数情况下,数据来源往往是单一的,因数据来源出错导致最终反馈给用户的数据失真的风险仍然无法得到有效分散。
另一方面,预言机网络的流量是决定其项目价值的决定性因素,如果掌握数据的巨擘(特别是 Google 等以数据为主导的公司)自行发展预言机项目将会带来巨大的冲击。因此,未来预言机项目的流量取决于掌控数据资源的一方是以什么形式参与到预言机市场。
高效性与冗余容错设计的冲突
高效性和冗余容错存在不可避免的冲突。如果预言机网络采用中心化的商业模式(如 Oraclize),数据反馈速度就会比去中心化预言机网络更快,即便可以证明自己的诚实,并通过分布式服务器规避单点故障的风险,也可以也难以分散因无法验证数据源致使数据失真的风险;
反之,如果预言机网络采用去中心化的商业模式(如 Chainlink),则冗余容错将不可避免的导致数据反馈的低效,但是又可以通过共识机制和信誉评级等机制充分证明预言者(Oracle)的诚实,并且可以有效分散数据源失真的风险。
预言机对低时延的数据服务应当降低其交易时间
预言机应当尽可能降低服务时延。DeFi 产品大部分以智能合约的形式实现日常的交割,以 The DAO 为代表等产品需要通过预言机网络频繁的获取 ETH 等数字货币的实时价格数据,使其有效的执行。
毫无疑问,当前价格信息实时获取是是 Oraclize 和 Chainlink 等预言机网络中最频繁的数据服务请求,然而,数字货币资产价格波动的速度很快而且波动的幅度较大,从而导致预言机反馈给客户的价格与当前实际价格产生严重的偏离。
参考文献
[1] Turing, A., On Computable Numbers, With an Application to the Entscheidungs problem, Proceedings of the London Mathematical Society, Series 2, Volume 42, 1936
[2] Nick Szabo, Smart Contracts: Building Blocks for Digital Markets. www.fon.hum.uva.nl., 2017
[3]《DOS Network 技术白皮书》:
http://iii67.cn/zi9Evi
[4] Provable Documentation:
http://suo.im/6qLCse
[5]《Chainlink 白皮书》:
https://chain.link/cn/
来源链接:mp.weixin.qq.com