发布区块链CNWW3标准的高并发快速交易及交易验证体系模型

2019-03-22 08:36李东云吴先锋
网络安全与数据管理 2019年3期
关键词:分片全网记账

李东云,白 杰,吴先锋

(傲为信息技术(江苏)有限公司,江苏 南京 210032)

0 引言

从2009年比特币(Bitcoin)[1]正式面世开始,去中心化区块链网络从概念提出、工程实现到全网实际运行,经历了长足的发展和进步。特别是随着第二代区块链网络——以太坊(Ethereum)平台及后来的EOS(Enterprise Operation System)逐步引入智能合约(Smart Contract)、去中心应用(Decentralized Application)等内容和功能,使得相应的概念和应用进一步扩展,在越来越多的实际应用中落地。同时,随着去中心化和区块链网络的概念演进和系统实践深入,去中心化区块链网络作为有可能改变当前诸多生产关系的一种新型的技术基础平台的趋向性也明显体现。因此,传统的中心化网络服务商在自身业务转型升级和新型技术探索的双重需求下,也有将现有传统中心化服务向去中心化网络转化的尝试和要求。现有的去中心化区块链网络,无论是在承接越来越多的应用,还是在尝试切换传统中心化服务的过程中,在技术方案和业务能力上,均出现了不少的问题亟待解决。其中,如何支持交易和信息的快速验证,是一个非常核心的问题。

1 问题,瓶颈和难点

在分布式系统的不可能三角CAP[2](Consistency/一致性,Availability/可用性,Partition tolerance/分区容错性)的条件下,以及区块链技术在实现上的策略选择,现有的各个区块链系统在安全性(Security)、扩展性(Scalability)和去中心化性(Decentralization)上也没有办法做到全面兼顾。安全性和去中心化性的要求往往会导致扩展性出现问题,如比特币网络和以太坊网络;对应地,考虑安全性和扩展性的同时,必然会牺牲去中心化性,如EOS。在不同的应用场景中,这三个方面可以有不同的侧重和选择。但是最根本的,去中心化性作为Web3.0的标准特性,是一个核心要素。在这点上,为了扩展性而牺牲去中心化性的EOS,某种程度上并不是严格意义上的区块链网络。

在实际应用场景下,无论是交易,还是信息验证,区块链网络中关键的一个指标为TPS(Transaction Per Second),即单位时间内的事务处理量。这个指标直接决定了该区块链网络能实际承载的业务能力。目前主流的几个区块链平台,如比特币网络平台,TPS在10以下;以太坊平台在25左右,经过优化和提升,大致能到50~100之间;EOS网络通过牺牲去中心性号称可达到百万,但还没有实际验证和应用。而对应的传统网络服务,如VISA网络在2 000左右,而淘宝天猫“双11”的尖峰交易数值已经达到数十万。因此,现有的区块链平台如果想要承接传统中心化服务,就必须要对TPS的问题有切实可行的解决办法。

在比特币网络和以太坊网络中,TPS数值无法进行有效提高的根本原因在于网络本身的架构设计。完全去中心化的网络架构,对于数据的同步和共识机制达成的限制和要求,有着时间上的妥协,比如,比特币网络数据区块的间隔时间为10 min,以太坊为15 s左右;同时,数据的同步也需要消耗一定的时间,所以对于一笔交易,在实际运行中,比特币网络往往需要6个区块周期,也就是1 h左右,才可以完全确认交易完成,而以太坊网络,则往往需要12个区块周期或以上,超过3 min。 对于一些应用场景,如此长的验证确认时间是无法有效满足需求的。而对于类似EOS这样的平台,TPS数值的提升是在牺牲去中心化性和安全性的基础之上的,所以在安全性有较强要求的应用场景中,也会存在一些障碍。

另外,对于交易来说,完成一笔交易至少有两个步骤,第一是验证该笔交易是合法的,最基本的验证包括:支付者有足够余额进行支付,收付者有合法地址进行接收;第二则是将该笔交易进行记账并全网同步完成共识。比特币和以太坊在处理交易时,这两个步骤是同步进行的,也就是验证节点(矿工)在进行区块生成的时候,同步进行交易验证和记账。这种机制导致如下问题:首先是交易在同一个节点存在多次被验证的情况,造成资源浪费;其次,如果待验证交易过多,则必然存在较长时间的等待和排队情况;最后,计算资源的利用存在较大浪费,有限的计算资源在网络运行中,并没有合理完整地进行分配和利用。

因此,问题可以归结为两个方面,一个是如何处理好去中心化性、安全性和扩展性的问题;另外一个是如何处理好验证和记账的问题。

2 有效去中心化

从中心化系统向去中心化系统转换的一个显著特点在于:通过分布式系统以相同账本的方式构建一个有序不可篡改数据记录集,以算法达成全网数据和逻辑一致。因此在理论上,网络中的所有对应节点都可以具有相同的逻辑和功能,共同参与维护整个网络的可用性和一致性,但是这就会带来TPS的问题。同时在实际中,并不是所有的网络节点都具备足够的资源用于支持相应的逻辑和功能,大部分的节点是作为网络参与者与使用者,而不是维护者。所以方案设计上,在保证安全性和可扩展性的基础上,需要对去中心化性做相应的优化和折中。

从比特币、以太坊的绝对去中心化,EOS的伪去中心化,向有效去中心化方向进行演进,是一种合适的方式。有效去中心化的含义在于:通过恰当的机制和算法,在保证网络安全性和扩展性的基础上,积极有效利用网络资源,达成数据和业务逻辑的去中心化。相应的原则和定义如下。

2.1 节点分组原则

网络中的参与节点是分组的。分组包含如下几个方面:

(1)节点功能上,并不是所有节点都具有相同的功能;

(2)运行网络上,不同的节点也具有不同的优先级和层级;

(3)分组的依据是根据节点自身的资源和意愿,通过随机选举产生;

(4)分组并非是永久固定不变的,仅仅是某个时间周期内相对固定;

(5)相同小组内的节点也并非同时具有相同的功能,其也同样存在竞争和监督关系。

2.2 节点角色原则

不同组中的节点承担不同的角色,相同组中的节点逻辑上归属同一个角色,不同角色的节点完成对应的工作,共同维护网络的运行和稳定。网络中的角色按照CNWW3[1]标准框架可以灵活地进行划分,也可以在逻辑上进行相应的抽象和概括。

(1)核心角色:完整拥有网络的所有功能,通过选举和竞争参与网络的维护并获取对应的收益。

(2)监督角色:对于核心角色所产生的结果进行监督和管理,同时提供相应的网络服务。

图2 交易分层示意图

(3)参与角色:不会参与网络的维护和监督,更多地作为网络的使用者出现。

需要说明的是,相同角色中的节点,在相同时间点,并不是都具有相同的功能,互相之间同样存在竞争和监督关系。

2.3 转化原则

节点可以在不同组中进行转换以及进行角色转换。节点在不同的时间节点,可以根据自身的资源情况和意愿,通过选举竞争的方式变换不同角色,成功之后就可以行使对应角色所赋予的功能和权利,获取对应的网络收益。

2.4 运行随机/机会均等原则

分组和角色的转换是随机的。通过随机机制,保证节点的分组和角色的转换过程中,不同节点享有相同的机会进行分组和角色转换,从而最大限度保障网络中节点的积极性和活跃性,进而提高网络的能力。

2.5 互相监督原则

不同节点在不同角色下进行网络数据同步和更新时,会同步进行数据的校验和监督工作。如果发现核心分组节点产生了异常或者错误数据,则可以进行相应的举报和纠察工作,如果无误则会获得网络对应的奖励。

通过上述原则和方法,区块链网络中的节点能从绝对去中心化向有效去中心化进行转变,从而大幅度提高网络运行的效率,提高资源的利用率,同时又能完整地保持去中心化性,满足了网络的安全性和可靠性要求。有效去中心化示意图如图1。

图1 有效去中心化网络示意图

3 交易分层

如前所述,交易完成的瓶颈在于交易的验证和记账混合,最终的交易完成确认因记账周期和其他限制导致延迟。网络中的节点归属不同分组,赋予不同角色后,就可以对交易过程进行有效的分层处理,如图2所示。

网络中的节点可以按照交易过程分为3大类:交易验证节点、交易记录节点和交易参与节点。

3.1 交易验证节点

交易验证节点需要同步当前全网数据区块、账号信息、账本信息等其他内容,作为网络的全量节点提供相应的服务。同时,验证节点共同维护了两个虚拟列表:待验证交易和已验证交易。这两个列表均为先进先出,在交易验证节点组中是全网共同维护的。交易验证过程如下:

(1)当网络中发出一笔交易,验证节点接收到该交易后,将其首先放入待验证交易列表。

(2)验证节点从待验证交易列表中获取一笔交易,先查询是否已有其他节点已经验证该交易,如果没有,则通过全量数据确认该交易是否合法,如果合法,将其放入已验证交易列表并签名。

(3)如该交易已由另外验证节点验证,则同步验证该交易,如交易合法,则更新该交易,附加签名;如验证交易非法,则忽略该交易。

(4)如交易未验证通过,则忽略该交易。

(5)同步记账网络中的数据区块,将已记账的交易移除已验证交易列表。

通过这种方式,无需依赖记账完成的状态,能使得交易的确认时间快速提高。

3.2 交易记账节点

交易记录节点为传统意义上的矿工节点,通过抢夺记账权的方式进行记账。记账节点可以直接从已验证交易列表中获取被验证的交易构造区块,而无需再进行交易的验证,可以把资源都用在记账权的争夺和数据的同步上。记账过程如下:

(1)向交易验证节点网络同步已验证的交易列表;

(2)从其中获取足够数量的交易构造数据区块;

(3)抢夺记账权并发布数据区块。

3.3 交易参与节点

交易参与节点本质上是网络的使用者,其通过查询验证节点的已验证交易列表,向记账节点同步记账区块数据,来完成其自身的业务和交易的闭环。在这个过程中,对于实时性要求并不高的场景,可以通过记账区块进行最终确认,而对于那些对实时性要求高的场景,就可以通过已验证交易列表快速完成相关的确认工作。

通过交易分层的方式,解决交易确认的瓶颈点,同时也支持不同的场景下的业务需求。

4 网络分片

通过节点分组、角色划分和交易分层,已经可以大幅度提高区块链网络的TPS数值,对于行业性或者区域性的区块链平台已经足够支持大部分的应用场景。但是如果是一个全球性的公链平台,则会因网络传输、带宽限制等方面的原因,导致相关交易和验证发生延迟。因此就需要通过一种机制,对交易验证和记账过程做进一步的分解和组合,进一步提升区块链平台无论是在地理上还是逻辑上的应用宽度和广度。

在交易场景中,简单来说有两类交易:一类是大宗交易,比如能源、原材料等;另外一类是小额交易,如生活中的购物、支付等。对于大宗交易,无论是安全性还是重要性,都需要全网验证并记账,同时其对于时效性的要求并没有那么高;而对于小额交易,一方面在地理上,交易双方往往较近,另外一方面在业务逻辑上,也会有更多的相关性。所以从这点出发,可以将全网网络做进一步的分片,使得交易以一种“就近原则”能最快速得到验证和处理。

通过将全网网络节点以分片的方式组合成多个子网络,每个子网络处理其被指定的交易,生成对应的数据区块,并最终通过分布式网络,达成全网统一。需要说明的是,分片仅仅只针对交易,记账区块不会做切片,还是会保持全网唯一。

一笔交易发起后,发起方可以通过一定原则指定其交易的处理方式,即是需要全网验证记账,还是分片网络验证记账。如果选择后者,那么该交易只会被同步至指定的分片网络,并由该分片网络进行验证、记账并全网广播最终的结果。

图3所示为网络切片示意图。

图3 区块链网络切片示意图

5 结论

本文提出一组机制,通过有效去中心化、交易分层和网络分片机制,可以在保证去中心化区块链网络的安全性、扩展性和去中心化性上,极大地提高网络单位时间内处理事务的能力,从而能有效地支持传统中心化应用向去中心化平台转移,完成业务和技术的双重升级。

猜你喜欢
分片全网记账
上下分片與詞的時空佈局
利用状态归约处理跨分片交易的多轮验证方案①
物联网区块链中基于演化博弈的分片算法
财务自由第1步,从记账开始
记账类APP
双十一带货6500万,他凭什么?——靠一句“把价格打下来”,牛肉哥火遍全网
记账理财的好处有哪些
基于模糊二分查找的帧分片算法设计与实现
电力系统全网一体化暂态仿真接口技术
让手机帮你记账吧!