实现二层网络卷叠的方法、二层网络和证明器与流程

文档序号:37161990发布日期:2024-03-01 11:57阅读:14来源:国知局
实现二层网络卷叠的方法、二层网络和证明器与流程

本说明书实施例属于区块链,尤其涉及一种实现二层网络卷叠的方法、二层网络和证明器。


背景技术:

1、分布式系统中存在经典的cap定理——consistency(一致性)、availability(可用性)、partition tolerance(分区容错性),三者不可兼得,简称“不可能三角”问题。区块链中也存在一个不可能三角:效率、去中心化、安全。尽管这里的区块链“不可能三角”还没有明确的理论论证,但是是对现有区块链的总结。这里的效率、去中心化和安全,分别定义如下:

2、效率:每秒处理交易的数量,即tps(transaction per second)。

3、去中心化:参与节点门槛足够低,保证系统中有大量分布式的节点。

4、安全:对区块链发动攻击的难度足够大。

5、针对上述区块链“不可能三角”的问题,ethereum(也就是以太坊,也称为“主网”或“一层”,mainnet或layer1;此外,目前较为流行的还有币安的bsc、波场tron等的公链项目,也是layer1/主网的范畴)选择了安全性和去中心化,牺牲了效率,目前只有大约12~15tps。当有大量交易需要处理时,尤其是很多操作复杂的交易时,layer1就会拥堵。除了普通的转账交易外,layer1还作为defi(去中心化金融)和nft(非同质化代币)等火爆应用的主要平台,在交易盛行时,layer1拥堵的问题就变得十分严重,带来较大的交易延迟,以致于影响到用户的使用。

6、此外,高昂的gas fee(汽油费,或交易费)很多时候成为交易的障碍。尽管已从pow(工作量证明)转向了pos(权益证明),但这只是改变了区块链上记账权的获取方式,而需要支付给获得记账权的节点的交易费没有明显减少。这是因为gas费的设计针对的是节点执行交易(包括执行智能合约代码)的消耗,这部分消耗不改变的情况下gas费并不会降低。例如,一笔去中心化交易所的货币兑换交易的交易费在拥堵时可能会超过100美元,这让很多用户望而却步。

7、layer 2技术是构建在layer1之上的扩展性解决方案,旨在解决layer1的效率低和交易费用高的问题。如图1所示,交易可以在layer2上快速执行,layer2按照一定的时机将最终状态同步回layer1。layer2用于专门提供高速的交易处理,而安全性和去中心化交由layer1去保障。这样,减轻layer1压力的同时,layer2上执行交易的gas费可以大幅下降,将layer2上交易执行的最终状态(而不是layer2上所有的状态)同步回layer1所需的gas费也可以大幅下降。在layer1之上架构layer 2的技术,实际上是将交易或合约的执行过程与最终状态的保存分离开,执行过程放到了layer2,layer1只需要保存最终的状态。这个设计中,需要保证layer2上交易或合约的执行过程的正确性,并且写入layer1的状态与layer2上正确执行的结果是一致的。

8、ethereum的layer2包括一种称为rollup的机制。rollup的核心思路如图1所示,是在layer1上保存能够验证交易过程的凭证,而将交易过程(计算过程)还有状态存储运行在layer2中。所谓交易过程的凭证,包括一组交易执行前的状态(pre-state)和该组交易执行后的状态(post-state)以及该组交易,可以用于验证这组交易对应的状态转移是否正确,还可以用于还原出layer2上所有交易的执行过程和所有账户的状态,从而消除layer2上由于数据可用性带来的安全风险。


技术实现思路

1、本说明书在于提供一种实现二层网络卷叠的方法、二层网络和证明器,通过以下方式实现:

2、一种实现二层网络卷叠的方法,其中二层网络中的执行器和证明器均采用可信执行环境实现,所述方法包括:

3、二层网络的排序器从交易池中拉取交易,对所述拉取的交易排序并打包,所述排序器从数据可用性中读取打包交易执行前的全部初始状态/打包交易读集的spv证明至证明器,并发送所述打包交易执行前的全部初始状态/读集和所述打包交易至执行器;

4、所述执行器在所述打包交易执行前的全部初始状态/读集的基础上按序执行所述打包的交易,并采用自身可信执行环境中的私钥对产生的写集生成第一签名;将所述写集及第一签名发送至证明器;

5、所述证明器验证所述第一签名通过后,根据所述全部初始状态/读集的spv构建merkle树,将树根作为前状态根,并将所述执行器发来的写集更新至所述merkle树的叶子节点中,并更新merkle根,将更新后的merkle根作为后状态根;

6、所述证明器采用自身可信执行环境中的私钥对所述前状态根和后状态根生成第二签名,将第二签名作为证明并与所述前状态根和后状态根一并通过第二主网交易发送至主网上的卷叠合约。

7、一种二层网络,包括交易池、排序器、执行器和证明器,所述执行器和证明器均采用可信执行环境实现,其中:

8、交易池,用于接收二层网络上用户发送的交易;

9、排序器,从交易池中拉取交易,对所述拉取的交易排序并打包,所述排序器从数据可用性中读取打包交易执行前的全部初始状态/打包交易读集的spv证明至证明器,并发送所述打包交易执行前的全部初始状态/读集和所述打包交易至执行器;

10、执行器,在所述打包交易执行前的全部初始状态/读集的基础上按序执行所述打包的交易,并采用自身可信执行环境中的私钥对产生的写集生成第一签名;将所述写集及第一签名发送至证明器;

11、证明器,验证所述第一签名通过后,根据所述全部初始状态/读集的spv构建merkle树,并将所述执行器发来的写集更新至所述merkle树的叶子节点中,并更新merkle根,将更新后的merkle根作为后状态根;并采用自身可信执行环境中的私钥对所述后状态根生成第二签名,将第二签名作为证明并与所述后状态根一并通过第二主网交易发送至主网上的卷叠合约。

12、一种证明器,采用可信执行环境实现,并包括:

13、接收单元,用于接收排序器发送的打包交易执行前的全部初始状态/打包交易读集的spv证明,以及接收执行器发送的写集及第一签名;

14、验证单元,用于验证第一签名;

15、执行单元,所述验证单元验证通过后,根据所述全部初始状态/读集的spv构建merkle树,并将所述执行器发来的写集更新至所述merkle树的叶子节点中,并更新merkle根,将更新后的merkle根作为后状态根;;

16、签名单元,采用自身可信执行环境中的私钥对所述后状态根生成第二签名采用可信执行环境中的私钥对所述后状态根生成第二签名;

17、发送单元,将所述第二签名作为证明并与所述后状态根一并通过第二主网交易发送至主网的区块链账本。

18、如上,所述二层网络中的执行器和证明器均采用可信执行环境实现,由执行器生成打包交易执行所产生的写集并通过tee签名,由证明器生成打包交易执行后的后状态根,可以进一步降低prover的验证负担,从而提升prover的验证效率,因此可以带来更低的延迟。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1