区块链预言机架构原理:以 Oraclize 与 Chainlink 为例(中)

论坛 期权论坛 期权     
信链全球   2020-4-11 02:41   2254   0
区块链预言机架构原理
Oracle



在昨日的推送中,我们向大家介绍了预言机的基本架构原理,(传送门:区块链预言机架构原理:以 Oraclize 与 Chainlink 为例(上))在今日的推文中,我们将通过对当下预言机项目的比较和简析帮助大家更好的理解预言机的工作模式。


预言机项目比较和简析





项目分类与比较
在昨日的推文中我们向大家介绍了预言机的分类,预言机项目按商业组织模式的差异可以分为中心化预言机网络和去中心化预言机网络。


因为数据掌握在特定数据源(大型机构)手上,项目方需要通过整合多方资源为预言机网络引流,所以行业存在显著的先发优势和团队优势,而 Oraclize 和 Chainlink 本身作为最早布局且流量规模最大的两个预言机网络恰好具这一优势。


因此,本文仅对代表性项目 Oraclize 和 Chainlink 进行介绍。


以 DOS Network 为代表的对一种数据请求开发一条区块链的预言机项目本身因开发成本和运营维护成本较高,不具备规模效应的需求所以本文不做赘述。




从商业模式看可扩展性
从商业模式的角度出发,中心化预言机的商业模式本质上是一个数据服务平台(类似 Wind 和 Bloomberg),而去中心化预言机是一个多元的数据服务网络,后者的商业模式显然更加有利于扩大全网规模。


原因在于——虽然二者将数据服务网络扩大取决于项目方本身的资源,但是去中心化预言机网络在不仅仅有效利用了项目方本身的资源,更有效整合了其加盟的多个预言者的资源,有利于整合多方的资源共同扩大预言机网络,从而形成有效的商业闭环。




安全性比较分析
中心化预言机与去中心化预言机在安全性方面各有优劣。前者的安全隐患主要来源于第三方的信任成本和黑客攻击,后者的安全隐患主要来源于因数据腐败导致整个网络失灵。


对于中心化预言机,其安全性取决于可信第三方的身份。如果可信第三方为政府权威部门,则第三方信任成本较低;如果可信第三方为大型企业,则可信程度较高,但仍存在一定程度上的委托代理问题。


对于去中心化预言机,其安全性取决于大多数节点是否诚实,并且在一旦发生数据腐败行为后,采取有效的惩罚措施。有效遏制数据腐败的前提是大多数的节点是诚实的(每个节点均为了实现自身利益最大化),只有在满足这个条件下,女巫攻击、镜像攻击和吃空饷(Freeloading)等腐败行为就会得到有效遏制。




成本定价分析
中心化预言机在成本和定价方面比去中心化预言机更具优势。


定价方面,二者在同样费用中心化预言机采用法币作为计价单位,不存在大幅波动的风险,而去中心化预言机一般采用其代币作为计价单位,波动幅度较大,无法遏制投机性需求对交易需求的负面效应;


成本方面,虽然二者的主要成本为智能合约执行的 Gas Fee,但是去中心化预言机网络需要将结果在链上汇总和调用信誉合约。因此,对同一种数据服务请求,去中心化预言机的代码运行比中心化预言机需要消耗更多的 Gas Fee,即使去中心化预言机将信誉统计、答案汇总和计算处理放在链下(Off-chain)处理也是一样。


未来,以 Chainlink 为代表的去中心化预言机网络将会进一步完善定价机制,采用法币(如美元等)作为计价单位,而其 Token 仅仅只发挥交易职能和监管职能,中心化预言机的定价优势将会逐步弱化。




服务效率比较分析
中心化预言机和去中心化预言机的服务运行效率因服务请求的时效性不同而存在差异。


对于高时效性的数据调用请求,中心化预言机因为无需多重签名的验证机制和链下答案汇总,只需要可信第三方单方验证和审查即可,所以其服务效率高于去中心化预言机网络,智能合约可以更快地获取数据。当其他条件不变时,数据调用的对时效性的要求越高,中心化预言机的效率优势就越凸显。
对时效性要求相对较低的数据服务请求,去中心化预言机更具备优势。


一方面,去中心化预言机网络通过外部任务适配器(External Task Adapter)将复杂的数据服务请求步骤化(分布式),从而实现了资源的有效配置;


另一方面通过数据来源多样化、汇总合约、信誉合约等机制设计分散了因数据来源本身问题带来数据失真的风险的同时,遏制了数据腐败的动机,从而进一步提高了数据的准确性。


同理,当其他条件不变时,服务请求对时效性的要求越低,去中心化预言机网络的优势就更加凸显。


目前,高时效性的服务请求占主导,中心化预言机处于优势地位。但是,随着未来数据资产化的推进和物联网的快速发展,去中心化预言机将会更具后发比较优势。




汇总分析
从性价比、用户体验、客情和生态比较目前中心化预言机和去中心化预言机各自的竞争优劣:


1.性价比方面,中心化预言机目前占据优势。一方面当前的中心化预言机项目在成本定价上具有较大优势。另一方面,因为目前价格调动等低时延服务请求仍是预言机应用最多的场景,并且 M2M (Machine-to-Machine)的应用场景尚未落地,所以目前中心化预言机在使用性能上占优。

2.用户体验方面,因大多数数据服务请求为低时延的 DeFi 喂价,中心化预言机目前也占据优势。


3.客情和生态方面,主流去中心化预言机(如 Chainlink 等)通过授信第三方实体机构为节点的方式,利用多方的资源整合提升预言机全网的可扩展性,未来将随着 M2M 场景的普及和数据资产化进程的推进将大有可为。显然,中心化预言机并不具备这一优势。


针对上文论述的中心化预言机和去中心化预言机各自的优势和局限性,以 Oraclize 为代表的中心化预言机项目和以 Chainlink 为代表的去中心化预言机项目针对其优势和不足做了进一步的完善。


Oraclize——最大的预言机网络




Oraclize 简介
Oraclize 首次于 2015 年提出,是世界上最广泛应用的区块链预言机服务。


Oraclize 通过 TLSNontary 证明、安卓证明等方式旨在证明从原始数据源获取的数据是真实且不可篡改的。




Oraclize 预言机协议——Provable 协议
Oraclize 的架构与中心化预言机架构相同,同样自下而上包括网络协议、操作层、合约层和应用层,其特殊性表现在基于可信第三方的证明机制、数据来源、格式适配器(Parsing Helper)和服务定价四个维度。


(1) Oraclize 可信第三方证明机制——软件+硬件使 Oraclize 自证清白


· TLSNontary Proof
充分利用了 TLSNotary 1.0 和 1.1 协议(代码开源)的功能,允许在服务器、受审核方(Oraclize)和审核方(Amazon 云主机)之间分割 TLS 主密钥,通过给 Amazon 云主机共享部分服务请求数据的方式,让审核方可以验证信息的同时,又不至于泄漏更多信息,从而有效避免了其他参与者在本地修改 html 代码、PS 图片等证明做假的情况。


· Android Proof
Android Proof 利用 Google 开发的称为 SafetyNet 的软件远程证明技术,分别验证了「一个特定的应用运行在一个安全、没有后门的环境里」、「运行的代码和事先公开的是否一致」以及「系统版本是最新版本」。


首先,Android Proof 通过验证给定的 Android 应用程序是否在连接到 Provable 基础设施的物理设备上运行,从而实现第一个证明需求;


其次,Android Proof 通过远程验证应用程序代码的哈希值,从而实现对设备上正在运行的应用程序进行身份验证,由此实现第二个证明需求;


更重要的是,Android Proof 通过新引入的 Android 硬件证明来证明该物理设备已更新为最新的可用 Android 版本,从而实现了第三个证明需求。


· Ledger Proof
Ledger Proof (Ledger 指法国的专门硬件强制加密货币钱包的 Ledger 公司,而非指账本)利用代码证明和设备证明功能来证明任何第三方,证明 Oraclize 开发的应用程序正在真实 Ledger 设备的 TEE 中运行,证明格式如下:



Ledger 证明格式



(2)数据来源
Oraclize 支持以 URL、WolframAlpha、IPFS、Computation 为主的数据类型。其中,URL 为数据源的 HTTP 链接地址,WolframAlpha 为支持直接访问 WolframAlpha 知识引擎 API 。


(3)数据输出格式多样化
Oraclize 针对不同数据来源和不同的服务请求,分别支持 JSON、XML、HTML Parser 和 Binary Helper 四种格式作为输出,并支持不同输出格式之间的转换,从而增强了数据的可读性。


(4)服务定价


· 首次试用免费;


· 服务请求费用(Call Fee)——佣金:包括基础费用和证明费用,根据最新的汇率进行结算。


· 支付方式以链下支付渠道为主。




项目评价
Oraclize 是当前最大的预言机网络,其优势具体体现在以下几个维度:



· 安全性方面,Oraclize 亚马逊云主机、Google、Ledger 等第三方可信任机构足以自证清白。Oraclize 预言机网络中,区块链应用程序的开发人员和此类应用程序的用户不必信任 Oraclize,从而导致 oraclize 调用智能合约和代码的燃料费成本低于去中心化预言机网络,并且使整个预言机网络的运行效率较高,使其天然契合对时效性要求高的数据服务请求。


· 用户体验方面,数据提供者不必修改其服务即可与区块链协议兼容,智能合约可以直接从网站或 API 访问数据。


· 服务定价方面,Oraclize 以美元为计价货币,充分保证了其服务价值不发生大幅波动,更加有利于整个网络规模流量的扩大。但是,Oraclize 在项目可扩展性上值得商榷:


· 可扩展性方面,Oraclize 作为单一模型的预言机网络,在可扩展性上难以像去中心化预言机那样整合多个预言者(Oracles)的资源。


· 数据校验方面,Oraclize 对时效性要求低的数据服务请求难以进行容错和纠正,特别是对善意的数据调用错误。并且,Oraclize 缺乏一个有效的信誉评分系统,用户(服务请求方)无法对相应服务进行打分和反馈。


Chainlink——去中心化预言机的先行者




Chainlink 介绍
Chainlink 本质上是一个去中心化的预言机网络,它为任何区块链上的复杂智能合约提供可靠的防篡改输入和输出,再配合「链上+链下」的架构模式得以实施。


2019 年 Chainlink 分别与 Google、甲骨文、Etherisc 等商业巨擘合作逐步接入外部数据源,并用元预言机使 DeFi 相关金融产品的报价的数据导入更加完善。




Chainlink 架构——「链上+链下」的技术架构
Chainlink 架构分为链上(On-chain)部分和链下(Off-chain)部分,链上部分作为合约层完成 Chainlink 内所有信息的记录,而链下部分负责代码和命令行以及输出数据的具体执行。


(1)链上部分——闭环的合约层
链上部分执行的操作包括用户(服务请求方)对预言者(服务供应商)的挑选(Oracle Selection)、数据服务的反馈报告(Data Report)和最终结果汇总(Result Aggregation)。Chainlink 通过调用信誉合约记录预言者历史服务情况、订单匹配合约和汇总合约共同实现整个 Chainlink 网络在链上的闭环体系。


信誉合约——记录服务供应商(预言者)的历史表现


服务请求方(用户)在挑选合适的预言者为其请求提供服务时,必须调用信誉合约查看预言者的历史表现情况,再根据其在服务请求中指定的数据来源、响应时间和具体数据要求完成对预言者(Oracles)的选择。


而在服务请求完成后,Chainlink 网络记录其完成的情况,生成数据报告(Data Report)后调用信誉合约对提供服务的预言者的信誉评分进行适当增减。


服务请求方对不同预言者进行信誉评级,Chainlink 计划布置以下参考标准如下:


1. 预言者同意接受请求的总数,包括已实现和未实现的;


2. 完成请求数,计算出完成率(+);


3. 与其他预言者的回复相比,通过计算合约被判断为可接受的请求总数(+)。它一般根据接受任务总数和已完成任务总数的平均值来衡量。


4. 平均回复时长(-);


5. 累计惩罚金额(-)——惩罚是因预言者不当行为(Freeloading 复制对方答案、透露或使用服务请求的数据)而扣除其已质押的 LINK。


注:+表示该项增加会使预言者加分,-表示该项增加会使服务供应商扣分。


订单匹配合约
Chainlink 通过调用订单匹配合约将特定的数据服务请求与用户挑选好的一个或多个预言者进行匹配,并生成订单后将订单抽象到链上。


汇总合约
Chainlink 通过多个预言者(Oracles)提供的答案根据特定问题进行汇总,汇总方式一般为对反馈数据进行加权平均(剔除极端值)后得到的汇总答案,并最终反馈给服务请求方。


(2)链下部分(Off-chain)——执行层


链下部分分为 Chainlink Core、外部适配器和 Subtask Schemas 三部分。其中,Chainlink Core 是在可信执行环境(TEEs)下的命令窗口,外部适配器根据服务具体的需求将复杂的任务拆分成多个子任务以便于执行,Subtask Schemas 统一所有预言者最终输出的答案为 JSON 格式,便于代码执行和可读性。


Chainlink 工作流程分为以下 7 个步骤:



1. USER-SC 合约发出数据调用请求;
2. ChainLink-SC 合约为预言者记录请求,并编译到 Core 命令行;
3. Core 通过在合约程序前添加外部 API 来设置适配器,并分配任务;
4. 适配器将请求反馈给外部 API;
5. ChainLink 收到预言机服务商的回复,并将其反馈给 Core 命令行;
6. ChainLink Core 将数据报告给反馈给 ChainLink-SC;
7. ChainLink-SC 汇总所有的答案,后反馈给用户端。


Chainlink 的激励机制与验证系统
Chainlink 的验证系统分别从可用性和准确性两个维度实施验证。


可用性方面,Chainlink 要求 Oracle 对从其他 Oracles 收到的一组回复答案进行数字签名证明,验证合约将接受并再次奖励提交证书的 Oracles,证书陈述表现不佳的 Oracles 向其对等方显示出一致的无回复特征;


准确性方面,Chainlink 将验证服务实现为一个智能合约,该合约将奖励 Oracle 提交偏离答案的证据。




项目评价
Chainlink 是预言机项目中去中心化的典范,在激励机制、运行机制和嵌套合约上实现了有效的闭环,贯彻落实了预言机网络激励相容的价值主张,不论是内部机制设计还是外部引流和发展都具有较大的优势:


安全性方面,Chainlink 具有以下四大优势:


1.Chainlink 运用 Schnorr 多重签名机制解决了 Freeloading (吃空饷——预言者直接复制之前已提交答案的哈希值的行为)的问题。设立最大容错节点数为 Chainlink 节点总数的 2/3 (其中不具备可用性的 Oracle 数量为总节点数的 1/3,不具备准确性的容错为 1/3),要求必须至少有 1/3 以上对等预言者签名才可以通过验证。

2.Chainlink 在一定程度上遏制了女巫攻击和镜像攻击。Chainlink 计划通过对高质量的 Oracle 发起背书(认证)的方式,监控验证系统关于 Oracles 的统计数据,并对提交至链上的数据执行事后检查,将它们与直接从信誉良好的数据源获得的答案进行比较,证书认证机制目前仍在进一步设计当中。

3.Chainlink 通过数据来源和预言机的多样化有效分散了因数据来源本身的问题导致数据失真的风险。

4.Chainlink 长期引入可信执行环境(TEEs)作为硬件的安全保障,从而实现合约的保密性,并生成可靠的随机性。


激励机制方面,Chainlink 实现了有效的闭环。通过对预言者检举其他预言者并提供有效证据的行为奖励 LINK,对存在不当行为的预言者扣除其质押的 LINK 作为惩罚的方式,并且 Chainlink 仅仅作为一种中间件,Oracle 的收益与其提供服务的行为和提供其他 Oracle 不当行为证据的行为挂钩。


可扩展性方面,Chainlink 通过与 Google、Oracle 和 Etherisc 等巨头达成战略合作,实现保险、物联网、DeFi 金融合约、随机数生成等多个领域的应用,进一步增强数据来源的多样性。并且在依托于 ETH 网络的智能合约中,Chainlink 通过构建元预言机将聚合了链下真实的市场数据和链上价格数据,既为用户保障了定价效率也为链上流动资金池提高了定价效率。


但是,Chainlink 仍有进一步改进和完善的空间,并付诸实践:


1.服务定价方面,Chainlink 仍然采用自有通证作为计量单位,造成了服务价格的大幅波动,不利于构建长期稳定的预言机服务体系。


2. 激励机制方面,Chainlink 中预言者的未来收益仍然与其质押份额挂钩,容易造成安全隐患和信誉评分系统的失灵。


这是 Chainlink 当前面临的最大挑战。


在明日的推送中,我们将向大家介绍预言机的未来展望,以及应用方向。敬请期待。


免责声明:版权归原作者所有,如有侵权请联系我们删除。
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:47
帖子:11
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP