掌桥专利:专业的专利平台
掌桥专利
首页

一种用于区块链的多层混合交易扩容系统及方法

文献发布时间:2023-06-19 12:14:58


一种用于区块链的多层混合交易扩容系统及方法

技术领域

本发明涉及区块链技术,尤其涉及部分采用Rollup建立多层混合结构以扩容交易量的系统及方法。

背景技术

随着数字货币的影响越来越大,越来越被人们接受。人对对数字货币的需求也越来越大,对区块链系统的性能要求越来越高。但是现存主流公链系统都有TPS性能问题。比特币的出块时间在10分钟左右,一个区块大约承载大约数千交易,TPS只有7,以太坊ETH的出块时间是15s,TPS在30-40左右。而中心化交易系统VISA 有2000的TPS。某一数字货币系统如果要满足社会交易的需求,成为主流,必须达到数千TPS。TPS增长也称为扩容。影响TPS的因素主要有:

(1) 共识算法

(2) 区块的广播和验证时间

所以,围绕着 TPS 扩容问题,也有很多优化方案,分为如下几类:

(1) 采用不同共识算法: POS,DPOS,POA等

(2) 针对同一共识算法:扩大区块大小,分片,Layer2方案。

其中,POS和DPOS无需赘述,POA,Proof-of-Authority(权威证明),的共识机制的思路其实是非常简单的,每当有了交易,大家不再互相发了,而是统一发送到 Authority手中,由它来验证交易。POA 网络中的 validator 验证人,就是大家选举出来的Authority 。Validator 验证并签署交易之后,普通节点都从 validator 那里同步数据。POA的最大特点是效率高,但是中心化程度也是最高的。

另外,针对同一共识算法的优化方法,扩大区块大小的方案会提高节点的准入门槛,从而降低去中心化程度,分片依赖业务逻辑的划分,在技术实现上也遇到了很多挑战。而Layer2转换了解决问题的思路,不是增加区块链本身的容量,而是让已有的容量做更多的事情,取得了较好效果。Layer2目前也有很多解决方案如:

(1) 状态通道

(2) Rollup

状态通道比较简单,但是缺点也很多,最大的缺点是有活性假设,即参与者需要随时在线。Rollup不需要活性假设和数据可用性假设,其中zkRollup有证明小,验证时间快,且不会随着交易数量的增长而变大。通过以太坊伊斯坦布尔升级后,zkRollup的TPS理论值可达 2666。但是zkRollup 的生成证明的时间很长,通常几分钟。生成零知识证明的时间将是限制 TPS 达到理论值的瓶颈

发明内容

本发明的主要目的在于提供一种用于区块链的多层混合交易扩容系统及方法,以基于零知识证明,并引入权威证明,建立多层混合交易扩容系统,来提高系统的TPS。

为了实现上述目的,根据本发明的一个方面,提供了一种用于区块链的多层混合交易扩容系统,其特征在于包括:

第一层:主链;

第二层:子链,其依附于主链;

第三层:zkrollup扩容单元,其依附于子链;

其中子链在主链上设有第一特定账户,zkrollup扩容单元在子链上设有第二特定账户;

当向第一特定账户转账时,第二特定账户向该层的对应账户中储值;

当向第二特定账户转账时,zkrollup扩容单元向该层对应账户中存入代币,以供在zkrollup扩容单元中通过代币交易,以完成交易合约。

其中,所述代币与子链及主链的货币之间存在对应的价值转换关系。

在可能的优选实施方式下,zkrollup扩容单元采用Merkle tree存储账户状态,由Operator收集用户的交易,交易收集完成后Operator执行交易,当交易执行完成后产生一个新的Merkle tree Root,且Operator会在交易执行完成后生成一个零知识证明的proof。

在可能的优选实施方式下,Operator执行交易步骤包括:校验余额,校验nonce,校验签名,执行状态转换。

在可能的优选实施方式下,Operator执行交易后,本地的merkle tree root由prev state root转换成post state root,而Operator把prev state root,post stateroot,交易数据和proof证明提交至链上合约,合约校验proof通过后会将来新的状态写入链上。

在可能的优选实施方式下,交易数据存储在CALLDATA上。

为了实现上述目的,根据本发明的另一方面,提供了一种用于区块链的多层混合交易扩容方法,其特征在于步骤包括:构建子链,使其依附于主链;构建zkrollup扩容单元,使其依附于子链;其中子链在主链上设有第一特定账户,zkrollup扩容单元在子链上设有第二特定账户;当向第一特定账户转账时,第二特定账户向该层的对应账户中储值;当向第二特定账户转账时,zkrollup扩容单元向该层对应账户中存入代币,以供在zkrollup扩容单元中通过代币交易,以完成交易合约,其中所述代币与子链及主链的货币之间存在对应的价值转换关系。

在可能的优选实施方式下,zkrollup扩容单元采用Merkle tree存储账户状态,由Operator收集用户的交易,交易收集完成后Operator执行每个交易的、校验余额、校验nonce、校验签名、执行状态转换,当交易执行完成后会产生一个新的Merkle tree Root,且Operator会在交易执行完成后生成一个零知识证明的proof。

在可能的优选实施方式下,Operator执行交易后本地的merkle tree root由prevstate root转换成post state root,而Operator把prev state root,post state root,交易数据和proof证明提交至链上合约,合约校验proof通过后会将来新的状态写入链上。

在可能的优选实施方式下,交易数据存储在CALLDATA上。

通过本发明提供的该用于区块链的多层混合交易扩容系统及方法,能够以基于零知识证明,并引入权威证明,建立多层混合交易扩容系统,来提高系统的TPS至上千。从而满足一般社会交易系统的需求,使该系统商业落地具备可能性。

附图说明

构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明的多层混合交易扩容系统框架示意图;

图2为本发明的多层混合交易扩容系统中子链和zkRollup的关系示意图;

图3为本发明的多层混合交易扩容系统中子链和zkRollup的关系示意图;

图4为本发明的多层混合交易扩容系统中主链和子链之间的关系示意图。

具体实施方式

下面对本发明的具体实施方式进行详细地说明。以下示例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。

为了使本领域的技术人员更好的理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,在本领域普通技术人员没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明的保护范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。

为了实现基于零知识证明,并引入权威证明,建立多层混合方案,来提高系统的TPS的目的,本发明提供了一种用于区块链的多层混合交易扩容系统,其主要提出了一种三层混合的方案,如图1所示,在优选实施方式下其包括:

(1)第一层:主链:优选采用POW共识算法;

(2)第二层:子链:优选采用POA共识算法;

(3)第三层:zkrollup扩容单元,其针对子链采用基于零知识证明的Rollup方案。

其中子链在主链上设有第一特定账户,zkrollup扩容单元在子链上设有第二特定账户;当向第一特定账户转账时,第二特定账户向该层的对应账户中储值;当向第二特定账户转账时,zkrollup扩容单元向该层对应账户中存入代币,以供在zkrollup扩容单元中通过代币交易,以完成交易合约。且所述代币与子链及主链的货币之间可存在对应的价值转换关系。

具体来说,其中该第一层主链在本实施例中优选为一般公链,如BTC或者ETH等,而第二层子链则用采用现有POA共识建立如二级交易扩容场景,分散交易合约,并以打包交易方式向主链记录一个二级交易扩容场景中的结果性交易信息,使得单机事实上就可以达到上百的TPS。

而本案中设计的该第三层zkrollup扩容单元(以下简称zkrollup),则如建立了三级交易扩容场景,通过利用Rollup不需要活性假设和数据可用性假设,且zkRollup有证明小,验证时间快,且不会随着交易数量的增长而变大的特性,从而更进一步分散交易合约,并以打包交易方式向子链记录一个三级交易扩容场景中的结果性交易信息,从而透过该zkrollup的方案,使得该层的TPS理论可以支持约2000,籍此来有效扩容交易提高TPS,使得整个系统的整体TPS可以达到数千以上,满足一般交易系统的需求。

其中该zkRollup的工作原理为,在链下利用Merkle tree存储账户状态,由Operator收集用户的交易,交易收集完成后Operator会执行每个交易(校验余额,校验nonce,校验签名,执行状态转换),当交易执行完成后会产生一个新的Merkle tree Root,为了证明链下状态转移是正确的,Operator会在交易执行完成后生成一个零知识证明的proof。

如图2所示,表示Operator工作过程,Tx1至Tx3表示用户发送的交易,post/prevstate poot表示Operator中维护的merkle tree,Operator执行交易后本地的merkle treeroot会由prev state root转换成post state root。而Operator把prev state root,poststate root,交易数据和proof证明提交至链上合约,合约校验proof通过后会将来新的状态写入到链上,因此合约不需要单独校验每笔交易的合法性,只需要校验proof是否有效,籍此降低了链上gas消耗,其中交易数据是存储在较便宜的位置CALLDATA上。链下每一次的状态转变都需要提供零知识证明,由主链上的合约进行验证,只有验证通过才能更改状态。即每一次状态转变都严格依赖密码学证明。

此外由于zkRollup生成的证明大小(很小),验证时间(很快基本上是常数),不会随着交易数量的增长而变大,所以zkRollup可以极大地提高TPS。影响zkRollup链上性能的只有链上CALLDATA存储数据的成本。

另外上链的数据中prve state root,post state root与proof基本上是不会随着交易增长变化的,只有用户发送的交易部分会随着交易增长变大,所以为了能在一个区块链中容纳更多的交易,需要对上链的交易进行压缩。

而zkRollup使用merkle tree来记录地址,这样地址就可以表示成merkle tree的索引值,如地址数据的大小就从原本的20 bytes减少到3 bytes,如在以太坊上金额用32个字节256位的大整型来表示,这里压缩到6个字节,货币最小单位从wei变成Mwei=10

因此假定一个子链POA单机可以支持500 TPS。经过rollup扩容,通过水平并行生成证明,假定1秒钟生成1个rollup证明,一个rollup证明包括10个rollup 交易,则系统可以支持 5000 TPS(500 * 10)。除此之外,在条件允许的情况下,我们还可以根据业务或者地域划分多个子链, 生成rollup证明的并行程度可以更高,从而获得更高的TPS。

如图3所示,展示了该系统运行过程示例,其中用户通过向子链在主链上的第一特定账户(如Holder账户)充值,挂到侧链上,而用户通过向子链的第二特定账户(如rollup合约的特定账户)转账,以拥有rollup代币方式完成储值交易,而用户通过rollup代币交易,并向rollup合约提交交易,来实现扩容交易的过程。

另一方面,如图4所示,主链上的用户(User或者Miner)往子链的Validator在主链的Holder账户转账;Validator 监听到主链的Holder账户有收到款项,则创建或者增加对应的子链账户;则子链账户在子链系统中交易,而当主链上的用户(User或者Miner)从Validtor 账户申请提款时,Validator检查用户对应的子链账户余额是否满足要求,若满足则Validator使用Holder账户往用户的主链账户打款,从而实现向上提现的交易过程。

从而通过上述方案,使得第二层和第三层所构建的交易扩容场景可以与第一层的主链形成挂钩,以此来扩容以主链为基础及价值托底的,适用于区块链的多层混合交易扩容系统,并据此使得整个系统的整体TPS可以达到数千以上,满足一般交易系统的需求。

以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

本领域技术人员可以理解,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。

此外实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

此外,本发明实施例的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施例的思想,其同样应当视为本发明实施例所公开的内容。

相关技术
  • 一种用于区块链的多层混合交易扩容系统及方法
  • 面向跨区块链交易的可扩容存储方法
技术分类

06120113227763