基于二层网络资产退出到一层的方法、设备及存储介质与流程

未命名 09-15 阅读:98 评论:0


1.本发明涉及区块链技术领域,尤其是涉及一种基于二层网络资产退出到一层的方法、设备及存储介质。


背景技术:

2.基于零知识证明的二层网络,通过密码学的方法保证了二层网络的计算和一层网络具有同等的安全性,这样可以把计算放在二层,计算的结果和相应的零知识证明发到一层同步状态,可以大大节省一层的拥堵,同时对用户来说大大节省了交易费和交易速度的友好体验。
3.例如,申请人已申请的专利cn115309825a,一种区块零知识证明并行优化方法、设备及存储介质,该方法包括:第二层区块链网络的出块节点从第二层区块链网络中打包交易生成区块并执行区块内交易;在执行区块时,第二层区块链网络保留该区块的状态更新信息;多个见证信息生成器并发生成多个区块对应的见证信息;生成的见证信息按顺序依次写入数据库中;其中,多个见证信息生成器并发生成多个区块对应的见证信息的具体包括:各个见证信息生成器加载已完成的区块信息,获取各自需要计算见证信息的区块及其状态信息;各个见证信息生成器执行以下步骤:判断获取的区块是否为所述第二层区块链网络的首个区块,是则新建第二层区块链网络的默克尔账户树,否则加载数据库中最新的第二层区块链网络的默克尔账户树,反向获取前序区块及其状态更新信息,根据获取的前序区块及对应状态更新信息更新所加载的默克尔账户树;所述前序区块为区块高度在加载的默克尔账户树对应区块至证信息生成器需要计算见证信息的区块之间的所有区块,所述默克尔账户树为双层默克尔树架构,其第一层为用户树层,第二层为资产树层,所述用户树的叶子节点与第二层区块链网络的各个账户一一对应,所述用户树的叶子节点均配置有对应的资产树,所述资产树的叶子节点与对应的账户的各类资产信息相对应,所述用户树的根哈希根据第二层区块链网络的各个账户的根哈希生成,所述第二层区块链网络的各个账户的根哈希根据各自对应的资产树根哈希计算生成;依据新建或更新的默克尔账户树计算对应的见证信息。该发明提出了利用将为不同的高度生成对应的默克尔账户树,然后采用状态信息与默克尔账户树结合的方式快速地生成认证信息计算中的输入信息,从而使得认证信息的计算可以并行化,有效提升见证信息的计算效率,同时见证信息计算在链下计算,不会占用区块链tps,生成见证信息后上链并计算零知识证明所需计算量少,有效提升区块链的处理吞吐能力。
4.以上类似技术中均存在以下问题:基于二层的一些需要和一层交互的证明,比如提款,存款等,需要随证明一起提交到一层完成相应操作,如果一层无法完成,二层需要回滚相应操作。比如deposit存款,用户在一层存款后,如果在二层也进行了存款,但是证明无法提交到一层完成闭环,在等待期结束后,一层用户可以回滚存款,这时候二层的存款也需要回滚。对于二层的withdraw提款,用户在二层提款后,证明无法被一层验证通过,但用户在二层的资产已经扣减掉了,也需要状态回滚回去。基于平行链的资产从二层转移到合约
的资产,也需要全部转回到二层后,提供证明退出到一层。但是因为二层的执行和一层的证明直接存在很大延迟性,尤其是在二层证明无法在一层验证,系统无法进行下去的时候,二层提款的资产已经扣减,但一层没有提款成功,用户无法证明二层的资产。


技术实现要素:

5.本发明主要解决现有二层的证明验证失败时,由于二层的执行和一层的证明存在很大延迟性,用户在二层的资产无法退回到一层的技术问题,提出了一种基于二层网络资产退出到一层的方法、设备及存储介质,通过两个退出阶段,最小化对二层的用户影响,并通过二层提供零知识证明的方式在一层退出用户资产,同时通过批量退出证明的方式,可以大大节省一层gas费。
6.本发明具体通过以下技术方案解决上述技术问题,一种基于二层网络资产退出到一层的方法,所述方法适用于二层区块链网络,所述二层区块链网络包括第一层区块链网络和第二层区块链网络,所述第二层区块链网络根据交易向第一层区块链网络发送证明,所述方法包括:所述第二层区块链网络向第一层区块链网络发送的证明验证失败时,第二层区块链网络根据上一次成功验证的证明确定无效证明和第一个无效交易;平行链设置第一个无效交易和无效证明后从0高度重新同步平行链;合约处理到第一个无效交易后设置合约为退出准备状态,进入退出准备阶段,所述第二层区块链网络和第一层区块链网络交互的交易均认定为无效交易,不涉及和第一层区块链网络交互的交易正常执行;退出准备阶段恢复第一时长后,进入退出清算阶段,管理者提醒用户在指定日期或指定高度之前从合约把资产提回到第二层区块链网络的资产树上,若超过指定日期,管理员发送退出清算交易,进入退出清算阶段,禁止用户从合约提回剩余资产,禁止用户在第二层区块链网络的操作;锁定所述第二层区块链网络的资产树根,将所述资产树根更新至第一层区块链网络合约,用户或管理者构建资产退出证明,资产退出证明包括公开输入和私密输入,资产退出证明验证通过后,所述第二层区块链网络或合约将退出资产发送至第一层区块链网络。
7.在一层无法正确验证新的证明的状态下,二层根据一层上一次成功的证明在二层检索第一个无效交易,无效交易包括需要和一层交互的交易,比如deposit,withdraw,proxywithdraw等,找到第一个无效交易。第一个无效交易前后可能有很多其他类型交易,比如二层的不和一层交互的转账等交易,都不认为是无效交易。根据一层最后的有效证明找到二层的下一个证明作为无效证明,比如一层证明最后一个是第100个,则二层的第101个证明是无效证明。平行链设置无效交易和无效证明后从0高度重新同步平行链,相当于回滚平行链。在合约处理到无效交易后设置合约为“退出准备”状态。在退出准备状态下,所有和一层交互的交易都认为是无效交易,但是非一层交互的交易都会得到正常执行,但是如果受到无效交易影响的交易将会执行出错,比如a存款100后转账给b100,由于存款交易为无效交易,转账交易检查a余额为0,则转账会失败。如果检查余额大于100,转账仍会成功。在“退出准备”状态下,无效交易后的曾经在链上执行过的交易会重新执行一遍,不受无效交易影响的交易仍会执行成功,对用户无影响。在无效证明后的所有证明在平行链重新执
行后也会被标记为无效证明。因为证明id或root不连续。在“退出准备”阶段恢复一段时间后,管理者提醒用户在指定日期或指定高度之前从合约把资产提回到二层的资产树上,超过指定日期后,管理员将发送“退出清算”交易,进入退出清算阶段,在退出清算阶段,用户将无法从合约提回剩余资产,也无法执行二层的任何操作,比如转账等操作。二层资产树锁定在一个确定的root。此root更新到一层合约,以此为基准退出用户资产,用户或管理者以此构建资产退出证明,发送到一层退出资产。
8.本发明通过设计了退出准备和退出清算两个退出阶段,其中证明验证失败后进入退出准备阶段,识别统计无效交易,退出准备阶段恢复一段时间后,进入退出清算阶段,通过提交零知识证明的方式在一层验证证明,保证用户有效有序退出资产。
9.作为优选,所述无效证明和第一个无效交易的确定过程具体包括:所述第二层区块链网络向第一层区块链网络发送的证明验证失败时,确定第一层区块链网络上一次验证成功的证明为最后的有效证明,有效证明的下一个证明为无效证明,有效证明的下一个第二层区块链网络和第一层区块链网络交互的交易为第一个无效交易。
10.作为优选,在退出准备阶段,第一个无效交易后的曾经在链上执行过的交易将重新执行一遍,受到无效交易影响的交易将会执行出错。
11.作为优选,单个用户生成资产退出证明时,公开输入包括退出root、用户一层账户地址、资产token以及资产数量,私密输入包括用户账户的默克尔树根证明path和用户账户的代币资产数量的证明path。
12.作为优选,批量用户生成资产退出证明时,公开输入包括退出root和批量用户哈希,私密输入包括用户地址、用户资产token、用户资产数量、用户地址的证明path以及用户资产证明path。
13.一种计算机设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行上述的基于二层网络资产退出到一层的方法。
14.一种存储有计算机程序的存储介质,该程序被处理器执行时实现上述的基于二层网络资产退出到一层的方法。
15.本发明具有以下有益效果:通过设计了退出准备和退出清算两个退出阶段,其中证明验证失败后进入退出准备阶段,识别统计无效交易,退出准备阶段恢复一段时间后,进入退出清算阶段,通过提交零知识证明的方式在一层验证证明,保证用户有效有序退出资产;对二层的用户影响较小,通过批量退出证明的方式,可以节省一层gas费。
附图说明
16.图1是本发明一实施例中的基于二层网络资产退出到一层的方法实施流程图。
具体实施方式
17.以下结合具体实施例和说明书附图对本发明作出进一步清楚详细的描述说明。本领域普通技术人员在基于这些说明的情况下将能够实现本发明。此外,下述说明中涉及到的本发明的实施例通常仅是本发明一部分的实施例,而不是全部的实施例。因此,基于本发
明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应当属于本发明保护的范围。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。如无特殊说明,本发明实施例所简述的方法均为本领域技术人员所掌握的方法。
18.实施例1:如图1所示,本发明实施例提供了一种基于二层网络资产退出到一层的方法,方法适用于二层区块链网络,二层区块链网络包括第一层区块链网络和第二层区块链网络,第二层区块链网络根据交易向第一层区块链网络发送证明,方法包括:第二层区块链网络向第一层区块链网络发送的证明验证失败时,第二层区块链网络根据上一次成功验证的证明确定无效证明和第一个无效交易,无效证明和第一个无效交易的确定过程具体包括:第二层区块链网络向第一层区块链网络发送的证明验证失败时,确定第一层区块链网络上一次验证成功的证明为最后的有效证明,有效证明的下一个证明为无效证明,有效证明的下一个第二层区块链网络和第一层区块链网络交互的交易为第一个无效交易;平行链设置第一个无效交易和无效证明后从0高度重新同步平行链;合约处理到第一个无效交易后设置合约为退出准备状态,进入退出准备阶段,第二层区块链网络和第一层区块链网络交互的交易均认定为无效交易,不涉及和第一层区块链网络交互的交易正常执行;退出准备阶段恢复第一时长后,进入退出清算阶段,管理者提醒用户在指定日期或指定高度之前从合约把资产提回到第二层区块链网络的资产树上,若超过指定日期,管理员发送退出清算交易,进入退出清算阶段,禁止用户从合约提回剩余资产,禁止用户在第二层区块链网络的操作;锁定第二层区块链网络的资产树根,将资产树根更新至第一层区块链网络合约,用户或管理者构建资产退出证明,资产退出证明包括公开输入和私密输入,资产退出证明验证通过后,第二层区块链网络或合约将退出资产发送至第一层区块链网络。
19.本实施例中,单个用户的退出证明:公开输入:退出root公开输入:用户一层账户地址公开输入:资产token公开输入:资产数量私密输入:用户账户的基于root的merkle证明path私密输入:用户账户的token的资产数量的证明path这样在一层验证退出root为合法root,证明验证通过后,从合约退出相应数量的token到一层正好地址。
20.批量退出证明:由于验证证明比较销毁一层的gas,普通交易消耗2wgas,证明的计算需要20wgas,10倍的差距。100个用户就需要2000wgas,如果一个证明可以同时证明一百个用户,消耗的gas费仍为20wgas,每个用户消耗的gas费仅为0.2wgas,差别巨大。
21.但是由于证明电路的容量限制,一次同时证明上千万的用户将非常消耗计算时
间。而且一个一层的交易也无法容纳太多的用户数据,具体批量多少用户以实际计算为准。
22.批量证明的设计如下:公开输入:退出root公开输入:批量用户hash隐私输入:一定数量的用户证明,用户证明包括用户的地址,token,token数量,地址的path证明,token的path证明在电路设计中,会把隐私输入的一定数量比如100的用户的地址,token,数量连续计算hash,如果输入用户数量达不到100,则剩余的以0计算hash,最终的hash要和公开输入的hash一致。
23.提交到一层的交易除了证明还要把待退出的和证明隐私输入一致的批量用户的地址,token,数量作为交易参数发送到一层。
24.一层验证证明后,计算交易输入的批量用户的地址,token,数量等数据的hash,需要和证明的批量用户hash一致,则验证通过。
25.一层合约根据批量用户的地址,token,数量退出相应资产到用户地址。
26.一层已退出资产的用户标记为已退出,防止相同证明的重放攻击本实施例中,在一层无法正确验证新的证明的状态下,二层根据一层上一次成功的证明在二层检索第一个无效交易,无效交易包括需要和一层交互的交易,比如deposit,withdraw,proxywithdraw等,找到第一个无效交易。第一个无效交易前后可能有很多其他类型交易,比如二层的不和一层交互的转账等交易,都不认为是无效交易。根据一层最后的有效证明找到二层的下一个证明作为无效证明,本实施例中一层证明最后一个是第100个,二层的第101个证明是无效证明。平行链设置无效交易和无效证明后从0高度重新同步平行链,相当于回滚平行链。在合约处理到无效交易后设置合约为“退出准备”状态。在退出准备状态下,所有和一层交互的交易都认为是无效交易,但是非一层交互的交易都会得到正常执行,但是如果受到无效交易影响的交易将会执行出错,比如本实施例中a存款100后转账给b100,由于存款交易为无效交易,转账交易检查a余额为0,则转账会失败。如果检查余额大于100,转账仍会成功。在“退出准备”状态下,无效交易后的曾经在链上执行过的交易会重新执行一遍,不受无效交易影响的交易仍会执行成功,对用户无影响。在无效证明后的所有证明在平行链重新执行后也会被标记为无效证明。因为证明id或root不连续。在“退出准备”阶段恢复一段时间后,管理者提醒用户在指定日期或指定高度之前从合约把资产提回到二层的资产树上,超过指定日期后,管理员将发送“退出清算”交易,进入退出清算阶段,在退出清算阶段,用户将无法从合约提回剩余资产,也无法执行二层的任何操作,比如转账等操作。二层资产树锁定在一个确定的root,此root更新到一层合约,以此为基准退出用户资产,用户或管理者以此构建资产退出证明,发送到一层退出资产。
27.本发明通过设计了退出准备和退出清算两个退出阶段,其中证明验证失败后进入退出准备阶段,识别统计无效交易,退出准备阶段恢复一段时间后,进入退出清算阶段,通过提交零知识证明的方式在一层验证证明,保证用户有效有序退出资产。
28.作为另一方面,本实施例还提供了一种计算机设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器执行上述的基于二层网络资产退出到一层的方法。
29.作为又一方面,本实施例还提供了一种存储有计算机程序的存储介质,该计算机可读存储介质可以是上述实施例的装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,该程序被一个或者一个以上的处理器用来执行上述的基于二层网络资产退出到一层的方法。
30.附图中的流程图或框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以通过执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现。
31.描述于本技术实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,各所述单元可以是设置在计算机或移动智能设备中的软件程序,也可以是单独配置的硬件装置。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
32.以上描述仅为本技术的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本技术中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离本技术构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本技术中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

技术特征:
1.一种基于二层网络资产退出到一层的方法,其特征在于,所述方法适用于二层区块链网络,所述二层区块链网络包括第一层区块链网络和第二层区块链网络,所述第二层区块链网络根据交易向第一层区块链网络发送证明,所述方法包括:所述第二层区块链网络向第一层区块链网络发送的证明验证失败时,第二层区块链网络根据上一次成功验证的证明确定无效证明和第一个无效交易;平行链设置第一个无效交易和无效证明后从0高度重新同步平行链;合约处理到第一个无效交易后设置合约为退出准备状态,进入退出准备阶段,所述第二层区块链网络和第一层区块链网络交互的交易均认定为无效交易,不涉及和第一层区块链网络交互的交易正常执行;退出准备阶段恢复第一时长后,进入退出清算阶段,管理者提醒用户在指定日期或指定高度之前从合约把资产提回到第二层区块链网络的资产树上,若超过指定日期,管理员发送退出清算交易,进入退出清算阶段,禁止用户从合约提回剩余资产,禁止用户在第二层区块链网络的操作;锁定所述第二层区块链网络的资产树根,将所述资产树根更新至第一层区块链网络合约,用户或管理者构建资产退出证明,资产退出证明包括公开输入和私密输入,资产退出证明验证通过后,所述第二层区块链网络或合约将退出资产发送至第一层区块链网络。2.根据权利要求1所述的基于二层网络资产退出到一层的方法,其特征在于,所述无效证明和第一个无效交易的确定过程具体包括:所述第二层区块链网络向第一层区块链网络发送的证明验证失败时,确定第一层区块链网络上一次验证成功的证明为最后的有效证明,有效证明的下一个证明为无效证明,有效证明的下一个第二层区块链网络和第一层区块链网络交互的交易为第一个无效交易。3.根据权利要求1所述的基于二层网络资产退出到一层的方法,其特征在于,在退出准备阶段,第一个无效交易后的曾经在链上执行过的交易将重新执行一遍,受到无效交易影响的交易将会执行出错。4.根据权利要求1-3任一所述的基于二层网络资产退出到一层的方法,其特征在于,单个用户生成资产退出证明时,公开输入包括退出root、用户一层账户地址、资产token以及资产数量,私密输入包括用户账户的默克尔树根证明path和用户账户的代币资产数量的证明path。5.根据权利要求1-3任一所述的基于二层网络资产退出到一层的方法,其特征在于,批量用户生成资产退出证明时,公开输入包括退出root和批量用户哈希,私密输入包括用户地址、用户资产token、用户资产数量、用户地址的证明path以及用户资产证明path。6.一种计算机设备,其特征在于,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1-5中任一所述的方法。7.一种存储有计算机程序的存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一所述的方法。

技术总结
本发明公开了一种基于二层网络资产退出到一层的方法、设备及存储介质,主要解决现有技术中二层的证明验证失败时,由于二层的执行和一层的证明存在很大延迟性,用户在二层的资产无法退回到一层的技术问题,本发明通过设计了退出准备和退出清算两个退出阶段,其中证明验证失败后进入退出准备阶段,识别统计无效交易,退出准备阶段恢复一段时间后,进入退出清算阶段,通过提交零知识证明的方式在一层验证证明,保证用户有效有序退出资产。保证用户有效有序退出资产。保证用户有效有序退出资产。


技术研发人员:马登极 吴思进 王志文
受保护的技术使用者:苏州颜凰生物科技有限公司
技术研发日:2023.06.20
技术公布日:2023/9/13
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

航空之家

看飞机、选飞机、买飞机、用飞机、都回航空之家

相关推荐