基于主子链架构的新型许可公有链

2022-12-18 08:11谢家贵李志平聂凡杰
计算机应用 2022年12期
关键词:主链许可合约

谢家贵,李志平,金 键,张 波,郭 健,聂凡杰

(中国信息通信研究院 工业互联网与物联网研究所,北京 100191)

0 引言

区块链技术是一种多方共同维护的账本技术,由共识机制、密码算法、分布式网络、合约脚本等多种技术融合组成[1],具有分布式可信、难以篡改、多方维护等特点[2]。区块链凭借其特有的低成本信任建立机制,成为继云计算、物联网、大数据之后的又一项重大技术创新,正在被越来越多的行业接纳和认可,逐渐应用起来,是未来构建新型信任体系不可或缺的技术之一[3]。

区块链的发展经历了三个阶段。在区块链1.0 中,出现了以比特币为代表的加密货币。2008 年11 月1 日,Nakamoto[4]发表了《比特币:一种点对点的电子现金系统》论文,论文中详细描述了如何使用对等网络来创造一种“不需依赖信任的电子交易系统”,由于比特币的代码是开源的,任何人都可以基于现有代码构建新的体系。因此随后出现了许多所谓的比特币的替代品,旨在改善比特币加密货币的缺陷和不足[5]。

区块链2.0 中,主要以智能合约为特点。智能合约[6]作为一种在区块链中实时存在的自动化的小型计算机程序,可以在预先定义的条件下自动执行,区块链为智能合约提供了安全的存储与运行环境。以以太坊[7]为代表的智能合约将区块链应用扩展到加密货币之外的众多领域[8]。

区块链3.0,以去中心化应用程序(decentralized Application,dApp)为主要特点,避免了集中式基础结构,使用去中心化存储和通信机制,后端代码部署在去区块链上运行,dApp 由前端、在区块链上运行的合约构成[9],进一步加速了区块链相关技术的发展。

区块链产业格局初现,以芯片、网络等基础资源为主的上游产业竞争格局基本形成,以底层基础平台架构和技术服务等为主的中游产业竞争激烈,围绕行业应用展开的下游产业逐渐铺开,产品应用不断深入和多元化。但是由于不同业务、不同技术底层的区块链之间缺乏统一的互联互通的标准,导致区块链只是在小范围内应用,形成了一个个的链岛,限制了区块链技术规模应用带来的产业协同效应,因此跨链互通是未来的演进方向[10]。如何实现不同区块链之间的互联互通成为当前的一大研究热点,本文提出一种基于主子链架构的新型许可公有链系统,既可以解决区块链间互联互通的问题,又能解决区块链的安全、监管等问题。

1 许可公有链及主子链概述

公有区块链简称公有链,是完全开放的区块链[11],任何人都可以随时加入并参与到公有区块链的网络治理中来。公有区块链的账本是透明的,节点是分散的,没有中央实体控制,完全去中心化。但有些公有链维护分布式账本需要大量的算力,由于公有链网络中有非常多的节点和交易,这种规模的扩展需要大量的努力才能达成共识[12]。而许可链则不是完全公开的,是需要邀请或者授权的,参与到区块链系统中的节点都需要经过许可,区块链位于封闭网络中,实体可以查看或验证交易的程度取决于网络启动者。常见的联盟链、私有链都是一种许可链,由于成员较少,共识机制经过优化等原因,许可链通常可以更快、更高效、更容易达成共识[13]。

将“许可”和“公有”结合在一起,构成许可公有链,使其兼具许可和公有的特性,可既兼容公有区块链开放灵活、可扩展性,又有机结合了许可区块链的易于监管、高性能、安全可控的特性;既可支持开放接入,发挥公有区块链的优势,又可支持监管要求,发挥许可区块链的优势[14]。

主子链是一个主链+多个子链的一种区块链技术架构,如图1 所示。主链支持节点自由接入,所有节点可获得开放数据同步与开放数据查询权限,未开放的数据需要申请权限;节点权限根据提供的服务不同需申请相应许可。而子链侧重于具体的个性化业务活动,并且可以独立执行共识。子链接入方式一般分为两种,一种是基于主链创建同构子链,另一种是现有异构区块链根据主链接口规范开发接口接入主链。子链接入需要向主链申请注册,通过授权与主链对接;子链也可以根据需求部署个性化应用或智能合约。

图1 主子链示意图Fig.1 Schematic diagram of main-sub chain

主子链的模式本质上是一种跨链模式,区块链的跨链技术可以实现不同链间信息传输和价值流通,有助于提高交易吞吐量,提升扩展性。同构链之间的共识机制、网络、存储、块生成验证逻辑一致,它们之间的跨链交互相对简单;异构链的跨链交互相对复杂[15],通常需要第三方服务的协助来完成跨链交互。

跨链的首要问题是将链之间建立一套信任机制,一条链能够验证并信任另一条链的数据[16]。目前主流的区块链跨链技术方案[17]根据其具体实现方法主要分为公证人机制、中继机制、哈希锁定等三类[18]。

2 方案设计

本文提出一种基于主子链架构的许可公有链跨链方案,该方案借鉴公证人机制和中继链技术的核心思想并加以改进,有效避免了公证人机制带来的中心化严重以及中继链适配性差难以接入等问题。面对不同场景提供不同的跨链技术接入方案,满足在不同场景中对隐私性、有效性的不同要求[19]。

2.1 整体架构

本文设计的主子链架构中,从功能上将区块链的节点分为普通节点和共识节点两大类。普通节点主要是负责同步数据、广播消息、对外提供区块链服务等,共识节点主要负责区块的打包验证,维护整个区块链安全稳定的运行。其中共识节点是由用户投票从候选节点选取产生的,后文会详述。

整个架构的组成如图2 所示,主要包括主链、子链,以及连接主子链的可插拔网关组件。主链由多个共识节点组成,使用较高的每秒处理事务数(Transactions Per Second,TPS)的共识算法有效提高跨链的效率,满足子链跨链对性能的不同要求。子链是所有参与接入跨链生态的同构/异构区块链,可以是各种公链、联盟链等。可插拔网关组件是主链和子链的桥梁,实现主子链之间的通信。许可公有链跨链技术是以高性能共识的主链为核心的跨链网络结构以及子链动态接入机制,使用可插拔网关组件作为跨链的桥接器,保证跨链技术的高效性、扩展性和安全性。

图2 基于主子链的许可公有链架构Fig.2 Framework of permissioned public blockchain based on main-sub chain

2.2 基础链关键技术

许可公有链兼具许可和公有的特性,首先只有经过许可授权的节点才可以加入该区块链网络,读取数据、发送交易、打包记账等,未经许可的节点是不可接入区块链系统的,无权读取区块链数据信息。其次该区块链对任何人都是开放的,任何人都可以申请加入,参与共识节点的选取,同时对外提供公共服务,是开放公有的。另外许可公有链也是去中心化的,任何人或机构都不可以控制或篡改其中数据。本节通过共识机制和可信许可机制,实现区块链的公有许可。

2.2.1 共识机制

许可公有链共识算法支持模块化设计和可插拔架构,主链共识采用混合类算法,在委托权益证明(Delegated Proof Of Stake,DPOS)、可验证随机函数(Verifiable Random Function,VRF)、实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)等基础上进行算法创新,设计出的一种创新双层共识算法,实现区块链的公有属性。

算法整体架构如图3 所示。许可公有链共识算法分为基于DPOS 的验证池选取、融合VRF 的PBFT 算法两部分,用户通过验证池选取协议投票产生共识节点集合,随后再由被选出来的共识节点通过融合VRF 的PBFT 算法产生区块,这样既能够保证出块的节点随机性和不可预测性,同时兼顾了区块链的去中心化、高性能及安全性。

图3 共识算法架构Fig.3 Consensus algorithm architecture

1)基于DPOS的验证池选取。

拜占庭容错算法需要进行多轮的投票,并且信息是以广播的方式在网络中传播,所以随着参与者的数量增加,网络带宽和时延将成为性能瓶颈;同时参与者的节点性能如果差异太大,将造成整体性能不理想。达到最优性能的方式是限制参与者的数量,给系统添加准入门槛,避免低性能的节点参与到系统中造成整体性能下降。这种方法虽然能确保拜占庭容错算法性能达到最优,但同时意味着系统中共识节点参与者的数量是受限的,不具备去中心化的特性。这里设计了一种动态随机的验证池选取算法,在提供公平性的基础上,确保系统运行可靠。

图4 基于DPOS的验证池选取Fig.4 Verification pool selection based on DPOS

动态的验证池的选取主要包含:角色划分,准入和退出机制,选取机制。

(1)角色划分。

要选取出拜占庭容错算法中的节点,应该有用户、候选节点和共识节点角色,普通节点参与节点竞选,由原有的共识节点集合审核通过后,进入验证池,成为候选节点,用户通过投票选择候选节点,区块链系统根据预设共识节点数量选择投票数靠前的候选节点成为共识节点。各参与者如下。

用户 区块链服务的使用者,在区块链上拥有账户,拥有选举权。

候选节点 由共识节点审核通过后进入验证池的节点。不参与共识,只同步区块链中的数据,并对外提供服务。

共识节点 许可公有链共识算法中参与共识、打包区块的节点,需要独立的服务器参与记账。

(2)准入机制。

选取机制运行在拜占庭系统模型下,意味着参与者的行为是任意的,所以必须设定准入门槛。共识节点的选取可以使用质押金保证方式,从而提高节点作恶的代价。

①普通节点申请成为候选节点。

②共识节点审核节点的服务能力、资质条件、质押金缴纳情况等,服务能力包括节点的服务器性能、网络带宽、计算能力等;资质条件包括企业的信用记录等,可以通过调用国家企业信用信息公示系统获取;另外通过调用账户余额的相关接口验证质押金缴纳情况。

③共识节点根据审核结果各自投票,2/3 以上同意则审核通过。这里的投票会调用相关的智能合约,满足条件将自动执行。

(3)退出机制。

①候选节点申请退出。

②所有候选节点查看该节点近期是否有作恶,如有作恶则提出废止申请,共识节点对废止申请进行审核并投票,如有2/3 以上同意则废止该节点,并扣除全部质押金;如果在一定时间内废止申请未通过或者没有人提出恶意节点废止申请,则自动返还质押金。

(4)选取机制

动态验证池选取离不开一个公平可靠的选取机制,这个机制是整个动态验证池选取的核心。共识算法使用智能合约实现了在线动态选取的机制,分离了选取逻辑部分和数据部分,使得选取逻辑可以动态更新。这里选用DPOS 投票选举出共识节点,投票选举的整个流程分为质押申请、共识节点审核、用户投票、打包区块。选取流程大致包含以下步骤:

①节点通过质押申请成为候选节点;

②共识节点审核候选申请是否符合准入条件,2/3 的共识节点成员同意表示通过;

③用户对候选节点进行投票;

④投票排名靠前的候选节点成为新共识节点;

⑤新共识节点参与打包区块。

投票选取机制是实时动态的,某一个节点可能当前是共识节点,下一个区块打包时可能因为票数落后而退出共识节点集合。质押申请、审核、用户投票三者保证了选取机制公平性和可靠性。然而投票选取需要足够多的参与者才能确保共识节点的选取代表大多数人的意志,才能确保整个机制的去中心化。

2)融合VRF的PBFT算法。

区块链系统是一种分布式系统,共识算法运行的环境类似于分布式系统的执行环境,要保证共识算法的安全性和可靠性,不可避免地要解决拜占庭将军问题。在PBFT 共识中,所有的节点称为副本,这些副本有两个角色,分别为主节点和备份节点。其中在每一轮选举中,都会从共识节点中选出一个主节点,称为Leader,来负责新区块的生成。除主节点之外所有的节点都为备份节点。

PBFT 共识过程包括提案阶段、确认阶段、提交阶段。节点之间通过协议传播自己获得的信息,并根据自己收集的信息判断是否发送确认或者提交信息。系统状态将在3 个阶段迁移,节点只需判断收到的消息是否足够就可以自动进入下一个阶段,3 个阶段完成代表着共识成功。

用户提交交易后,这些节点通过三个阶段对交易集合达成一致,如果在共识过程中,Leader 不作为或作恶,则变更流程选举下一个Leader,当有大多数节点投票选举了下一个Leader,则变更成功。假设区块链系统中节点总数为N,那么该共识能容忍的错误节点个数为f=(N-1)/3,大多数节点的个数为N-f=2f+1[20]。

每个区块打包完成后,即主节点会按预设规则变更一次,确保不会有某一个节点长期担任Leader,同时为提高可用性,并且在正常共识流程中加入了超时重发机制,提高网络层面的消息传达率。传统方式下,共识节点按照固定的顺序轮流成为Leader 节点发起共识投票,但是这种方式存在一定风险。Leader 节点可被预测,攻击者可以针对性地提前做好攻击策略,极大地提高了作恶的成功率。这里采用公平的VRF 算法实现Leader 节点的随机轮换,任一共识节点在共识开始之前并不知晓自己是否是Leader,以达到其不可预测性,使得共识更加安全可靠。

VRF 是一个可验证随机函数,由Micali 等[21]提出。对于特定的密钥对和输入x,VRF 产生唯一的随机输出v,同时该输入可以验证。可验证随机函数主要由3 个多项式时间算法组成:函数生成器G、函数评估器F、函数验证器V。G 是概率性的算法,接收一个安全参数k字符串作为输入,输出为两个二进制字符串,公钥PK和私钥SK;F 是确定性算法,F=(F1,F2),接收SK和x两个字符串作为输入,输出两个二进制字符串value 和proof,其中value=F1(x,SK),是输出的随机值,proof=F2(x,SK),是对随机值的证明;V 也是概率性的,接收(PK,x,v,proof)4 个二进制字符串输入,输出YES 或NO。VRF 是一种低能耗,高效率的随机数算法,目前已在多个区块链项目共识机制中采用。

VRF 算法在这里主要应用在提案阶段,分为3 个步骤:

(1)共识节点使用上一个区块的哈希、当前共识的视图号以及临时生成的一个私钥作为种子,生成一个32 字节的哈希值作为随机数以及针对这个随机数的零知识证明。

(2)共识节点生成新区块,通过消息广播区块、第1)步中生成的随机数以及零知识证明。

(3)共识节点收集并验证其他节点的消息,选择其中随机数最小的区块作为本轮共识的提案,广播确认消息并进入确认阶段。

该共识机制创造性地将DPOS、VRF、PBFT 算法融合在一起,优化了验证池的选取和拜占庭算法,设计出适用于许可公有链的共识算法,既兼顾了区块链的去中心化的需求,又保证了区块链的高性能和安全性。

2.2.2 可信许可机制

作为许可公有链,要充分发挥“许可”的作用。该许可公有链在区块链的底层实现了身份的可信认证,主要包括普通节点的可信许可和用户的可信许可。

1)节点的可信许可。

作为许可公有链,只有经过认证的节点才可以接收用户交易并将交易广播给其他节点,未经过认证的节点发起的交易将不被其他节点承认。

当节点接收到普通账户发来的交易时,会到链的系统合约中查询自己的节点是否有资质接收交易,如果没有资质,则拒绝接收交易;如果有资质,则存入本地交易池,然后使用节点私钥对交易进行签名并把签名后的消息进行广播。其他节点接收到广播过来的消息,会验证该消息,验证方法是:通过消息来计算公钥,然后通过查询系统合约是否存在该公钥,从而确定该消息是否从可信的节点发来的,如果不是,则直接丢弃;如果是,则把交易本身存入交易池,然后把交易的原始消息广播出去。

其他节点收到消息后,先对交易验证(验证方法:通过签名计算公钥,查看公钥是否在前一节的系统合约中),如果验证通过就接收交易,并把原始消息广播出去,如果验证不通过,就直接丢弃。具体流程如图5 所示。

图5 节点可信许可流程Fig.5 Node trusted permission flow

2)用户的可信许可。

为防止有人部署恶意合约,造成无法挽回的损失,需要对部署合约的用户做出限制,只有经过链上身份认证机构认证过的用户才能部署合约,这样如果有人部署恶意合约,也可以快速定位到对应的部署合约的人,尽量挽回损失。未经过链上身份认证机构认证的普通账户没有部署合约和发送大额基本交易权限。

图6 用户可信许可流程Fig.6 User trusted permission flow

2.3 主子链技术

跨链系统中包括主链和子链,主子链共同构成了跨链生态系统。主链作为链跨链技术的核心,使用了满足跨链在性能和安全性上高要求的许可公有链;子链则由其他区块链构建而成,具有较强的独立性,即使出现异常也不会影响其他子链正常的跨链过程。

2.3.1 主链构建

跨链方案设计使用安全性高、性能稳定的许可公有区块链来承担主链。主链维护了各个子链的注册申请和信息维护,链接各个区块链的跨链交易和交易验证过程,很好地保证了数据的一致性与安全性。

主链作为许可公有链跨链技术的核心,必须使用满足跨链在性能和安全性上高要求的区块链。子链则由其他区块链构建而成,具有较强的独立性,即使出现异常也不会影响其他子链正常的跨链过程。本文设计使用安全性高、性能稳定的区块链来承担主链。主链需要维护各个子链的注册申请和信息维护,链接各个区块链的跨链交易和交易验证过程。

主链跨链平台设计了安全的注册机制,保证注册到其上的子链是可控有效的。任一条想加入跨链平台接入主链的子链,都需要通过抵押的方式在主链的注册合约中发起注册提案,共识完成后会给该子链分配唯一的ID。主链也可以通过多个节点投票的方式注销恶意注册的信息,拒绝所有该恶意子链信息的跨链请求。

主链中设计了可插拔网关组件,保证与注册到其上的子链进行有效的通信。以往中继跨链方式中,子链要加入到跨链体系中都需要为子链的加入进行大量的适配工作,复杂度和工作量都将严重影响了跨链体系多种子链的动态进入过程。作为子链和主链的链接通道,通道必须尽量在子链端简化使其易加入而又不影响安全性和独立性。许可公有链跨链技术通过使用可插拔网关组件链接主子链,并负责将子链的区块头、跨链交易和简单支付验证(Simplified Payment Verification,SPV)信息等提交到主链中。

主链中设计了相关的跨链智能合约,保证主子链间跨链的顺利实现。主要通过子链注册管理合约(Register Manager Contract,RMC)、子链资产管理合约(Asset Manager Contract,AMC)、SPV 合约。其中:RMC 合约主要负责子链的注册服务,包括管理子链的名字、子链ID、节点信息等;AMC 合约主要负责子链中的数据、token 等的管理;SPV 合约主要是负责子链的简单支付验证,来支撑跨链业务的核心逻辑,保证跨链交易的有效性与安全性。

2.3.2 子链注册

子链需要跨链,首先必须在主链里注册登记,分配跨链ID。跨链的注册需要子链支持智能合约或接口调用,以此满足可信的跨链计算。

新注册的子链可以向注册合约输入计划跨链的子链ID,申请和对方子链进行跨链映射,即将该链上的资产或数据在另一条链上进行映射,允许双方进行跨链互操作。子链的注册管理账户查询到新子链的映射请求后,可以通过向注册合约提交映射请求的反馈。如若同意映射请求,则反馈成功映射信息,之后跨链组件就可以转发跨链交易信息和事件。

图7 子链注册Fig.7 Sub chain registration

这种注册机制是安全的。其安全性主要表现如下。一是子链在注册前必须进行资金抵押,如出现子链恶意注册行为,前期抵押的资金将会被没收,提高了子链的作恶成本;二是子链注册调用合约过程中,由用户投票选出的共识节点会对子链的注册进行背书,可以投票对恶意注册的信息进行注销,可以对所有该恶意子链信息的跨链请求进行拒绝处理。三是注册相关的智能合约如RMC 合约、AMC 合约、SPV 合约等逻辑简单,对代码进行模块化使合约函数保持较小,在部署前进行全面充分的测试,一旦部署,即具有不可篡改性,防止黑客利用合约漏洞进行攻击。

2.3.3 跨链过程

该系统中跨链过程需要使用跨链交易合法性证明,即Proof,主要用来证明某条跨链交易的合法性与有效性。包括两个方面:一个是形成子链区块头部列表链,一个是SPV 数据验证。

跨链操作时会通过可插拔网关组件链接两条子链,同时监听链的出块信息并传递区块头信息等到主链上形成子链的区块头连接信息。网关组件会实时获取子链的区块数据,同时提交区块头部数据到Proof 合约(用于跨链交易合法性证明的智能合约)当中形成一个简化的子链,供主链进行校验和SPV 运算验证。SPV 能够以最小的代价来计算判断某条交易是否已经被验证过。主链承担子链交易数据校验的责任,因此在Proof 合约中需要校验并保存提交上来的子链区块头和相关交易的SPV 数据,以此来证明子链数据的有效性。方便确认另一条链的交易,保证了两条链的资产总量不变。

跨链操作由用户在子链发起一笔跨链交易开始,至主链向子链提交跨链交易反馈,子链确认跨链交易的完成终止。整个过程由跨链网关参与主链和子链的跨链操作,跨链网关主要负责监听子链和主链的跨链交易数据,解析不同链的数据,检查和校验数据的正确性,补充跨链通信协议完整数据,转发子链到主链、主链到子链的跨链交易数据,以及监控子链的正常出块。这种模式能够简单方便实现跨链的过程,具备更大的同构/异构链之间的兼容性,也更容易部署和使用,同时保持整个跨链过程的隐私性和安全性。

跨链系统中主子链之间的交易,以子链A 中的Alice 用户和子链B 中的Bob 用户进行跨链交易为例说明其交互过程,具体主子链间跨链交易流程如图9 所示。

图8 跨链过程Fig.8 Cross-chain process

图9 主子链跨链过程示意图Fig.9 Schematic diagram of cross-chain processes between main chain and sub chains

主子链之间跨链正常过程处理流程如下。

1)用户Alice 向子链A 的节点发起跨链数据交易。

2)多个跨链网关监听子链A 的符合跨链通信协议的跨链提案,提交到主链的跨链合约上。

3)主链跨链合约对跨链网关提交的交易进行校验,并进行投票统计达到拜占庭算法要求的共识个数达成提案成功的共识,标示提案成功;否则继续等待或标示失败。

4)子链B 的多个跨链网关监听需要转发到子链B 的跨链交易,把交易提交到子链B 的跨链合约中。

5)子链B 的跨链合约对跨链网关提交的交易进行校验,并进行投票统计。达到拜占庭算法要求的共识个数后标示接收到跨链交易。

6)多个跨链网关监听子链B 的已接收跨链交易数据,把反馈数据提交到主链的跨链合约中更新跨链交易状态,表示子链B 已收到跨链交易。

7)子链B 的多个跨链网关监听到主链已确认子链B 收到跨链交易,把最终确认跨链交易提交到子链B 的跨链合约中。

8)子链B 的跨链合约对跨链网关提交的确认接收跨链交易进行校验和投票统计。至此就能确定子链B 已经收到跨链交易数据了。

9)子链A 的多个跨链网关监听到主链已确认子链B 收到跨链交易,把最终确认跨链交易提交到子链A 的跨链合约中。

10)子链A 的跨链合约对跨链网关提交的确认接收跨链交易进行校验和投票统计。标示此次跨链交易过程正常结束。

3 实验测试

基于上述关于主子链架构的许可公有链的研究,构建实验环境,并对该许可公有链的性能进行测试,以验证许可公有链设计的可行性、共识机制的先进性和运行的高效性。

本次实验选用18 台服务器,每台服务器配置为32 GB 内存、16 核CPU、1T 存储硬盘,服务器之间通过千兆网络进行通信。由于PBFT 共识容忍的错误节点个数f=(N-1)/3,为保证每个链具备足够的健康共识节点数量,实验搭建1 条主链和2 条子链,主链部署10 个节点,2 条子链各部署4 个节点。节点以Docker 容器的形式部署在相应的服务器上,保证共识机制的正常工作。实验利用自定义脚本对主链进行测试,待系统稳定后开始计时,共监测24 h,每6 min 记录一次数据,从交易吞吐量、交易延迟、区块大小、资源消耗等几方面处理能力进行评估,为确定该系统是否满足业务需求提供参考数据。

自定义脚本的伪代码如下:

同时,实验中还与超级账本Fabric、企业以太坊联盟Quorum 在交易吞吐量、交易延迟等方面做了对比。综合来看,该基于主子链的许可公有链比Fabric、Quorum 具有更高的交易吞吐量、更低的交易延迟。

1)交易吞吐量。

区块链的交易吞吐量一般用TPS 来表示,指系统每秒处理并写入区块链的交易数目。主要用来衡量区块链单位时间内处理交易的能力,是区块链系统性能的重要指标。如果TPS 值太低,很容易造成区块链网络的堵塞拥挤,大量交易排队等待打包的场景。比如以太坊区块链在高峰期就会很拥堵,导致用户需要花费很高的gas 费用才能实现区块的打包。由此可见,每秒几十或者上百的吞吐量在日益增长的用户需求面前显得捉襟见肘。实验中通过发送大量的交易请求,统计服务端处理过的交易的数量。图10 是交易吞吐量实验图。

图10 交易吞吐量Fig.10 Transaction throughput

经测试,该基于主子链的许可公有链吞吐量最高可达到25 000 TPS,远远高于Fabric、Quorum 的1 000 TPS 左右的数值,极大地提高了交易的并发处理能力,基本满足了用户的使用需求。

2)交易延迟。

区块链的交易延迟是指一笔交易从提交到共识确认完成花费的时间[22],具体包括从客户端发起请求、经过共识节点验证、最终被打包到区块链账本整个过程。理论最小时延为共识所需时间加上网络消息往返时间。理论最大时延(交易不排队的情况下)为一笔交易提交时,刚好有一个新的区块正准备生成,则该笔交易会放到下一个区块。实验通过在发送交易的瞬间记录时间,当收到交易已经处理的通知时再次记录时间,最后求出求两次时间差,结果如图11 所示。经过测试,该基于主子链的许可公有链的交易延迟都很短,平均延迟时间在8 s,Fabric、Quorum 的延迟大多集中的12 s 左右。相比于其他区块链,该许可公有链交易更高效。

图11 交易延迟时间Fig.11 Transaction delay time

后期又通过改变节点数量,对节点数量加倍,观察测试不同的节点数量对时延数据的影响,实验发现,该基于主子链的许可公有链的交易延迟随着节点数量的增加并未出现明显变化,平均延迟时间在8~9 s,而Fabric、Quorum 的延迟大约有10%的增长。

图12 不同节点数量下的交易延迟时间对比Fig.12 Comparison of transaction delay time under different node numbers

3)区块数据大小。

区块的大小一定程度上也影响着区块的性能:区块太大,传输的速度相就会减慢,意味着需要更长的时间来验证和传播;但如果区块太小,每个区块打包的交易就会相应减少,也会影响交易速度。结合选用的DPOS+PBFT 双层共识机制,综合考虑当前网络状况和交易排队情况,该基于主子链的许可公有链可自主对区块的大小进行配置,兼顾速度和效率的平衡。实验中测得的区块链大小数据在1~1.5 MB。

图13 区块数据大小Fig.13 Block data size

4)交易资源消耗。

服务器CPU 指标表示的CPU 的负载情况,测试中取一段时间的平均值进行记录并绘制图形,如图14 所示。实验发现在服务器配置相同的条件下,该基于主子链的许可公有链的CPU 负载明显低于Fabric、Quorum 区块链,处理速度更快,效率更高。

图14 CPU负载Fig.14 CPU load

实验结果表明,通过对本文改进的新型许可公有链、Fabric 以及Quorum 这3 条区块链在交易吞吐量、交易延迟、资源消耗等方面的对比,本文改进的新型许可公有链无论是设计的可行性,还是共识的先进性和运行的高效性,都具有较显著的优势。共识时延是算法性能的直接体现,由于Fabric、Quorum 采用的传统PBFT 共识,没有针对具体的业务场景进行改进,其交易延迟、资源消耗等相对较高。本文设计的新型许可公有链采用混合共识机制,通过使用DPOS 的验证池选取,既限制了参与者数量,又保证了动态随机的选取,确保了拜占庭容错算法性能达到最优;通过融合VRF 的PBFT 算法两种方式,使得节点区块打包的不可预测,确保了共识机制的安全可靠。这些都表明本文改进的新型许可公有链共识算法更具先进性,系统运行更高效、更安全。

4 结语

主子跨链技术是区块链领域发展的里程碑,是一种实现链间融合的核心技术。本文基于区块链技术,采用“主链+子链”链群架构,既具有公有区块链开放、灵活、可扩展性等特性,又具有联盟区块链易于监管、高性能、安全可控等特性。融合中继、公证人跨链模式的优点,通过安全注册服务、可插拔网关组件、强兼容的跨链通信协议等保证了跨链交易的安全、高效性。

本文提出的这种新型的许可公有链架构,是对区块链跨链技术、链群可扩展性的一次重要尝试,丰富了区块链生态。为进一步研究不同异构类型区块链跨链互通、数据互联提供了技术支撑,下一步会结合具体场景对许可公有链进行优化,在智能合约、共识算法的灵活接入方便做一些研究,推动区块链行业的发展。

猜你喜欢
主链许可合约
版权许可声明
版权许可声明
版权许可声明
本期作者介绍
WDC主链正式启动创世区块已诞生
有机化合物命名易错题直击
“烷烃”的五字命名方针
高聚物单体的判断方法