CN116488818A - 基于区块链的数据处理方法、装置、设备及可读存储介质 - Google Patents
基于区块链的数据处理方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN116488818A CN116488818A CN202210047963.1A CN202210047963A CN116488818A CN 116488818 A CN116488818 A CN 116488818A CN 202210047963 A CN202210047963 A CN 202210047963A CN 116488818 A CN116488818 A CN 116488818A
- Authority
- CN
- China
- Prior art keywords
- account
- data
- state data
- chain
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 22
- 230000008859 change Effects 0.000 claims abstract description 157
- 238000000034 method Methods 0.000 claims abstract description 77
- 238000012795 verification Methods 0.000 claims abstract description 46
- 238000012545 processing Methods 0.000 claims description 53
- 238000012546 transfer Methods 0.000 claims description 51
- 238000000605 extraction Methods 0.000 claims description 41
- 230000008569 process Effects 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 20
- 238000004891 communication Methods 0.000 claims description 15
- 230000006870 function Effects 0.000 claims description 4
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 16
- 238000010200 validation analysis Methods 0.000 description 11
- 238000012986 modification Methods 0.000 description 9
- 230000004048 modification Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012856 packing Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3218—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种基于区块链的数据处理方法、装置、设备及可读存储介质,该方法包括:中继节点执行针对目标子链账户的交易数据,得到交易执行结果;获取子区块链网络中的账户总状态数据,根据交易执行结果和总账户状态数据,生成待验证账户总状态数据;根据账户总状态数据以及待验证账户总状态数据,生成零知识证明数据;将零知识证明数据以及与交易执行结果相关联的状态变更信息提交至主链节点,以使主链节点在对零知识证明数据证明验证通过时,根据状态变更信息变更目标主链账户的状态数据;目标子链账户和目标主链账户相关联。采用本申请,可以提高区块链网络的TPS,缓解存储压力。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于区块链的数据处理方法、装置、设备及可读存储介质。
背景技术
区块链是一种分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,主要用于对数据按时间顺序进行整理,并加密成账本,使其不可被篡改和伪造,同时可进行数据的验证、存储和更新。区块链还可以进行数据加密传输、节点识别和安全访问,是一种先进的分布式基础架构。目前,因为区块链的不可篡改性与真实性,对于区块链的应用也越来越多。
数字产品可以通过交易的方式在区块链上流通,但是现有区块链网络的TPS(Transaction Per Second,每秒处理的交易数)有限,当数字产品相关交易的数量过大时,会造成链上交易等待时间长、交易确认较慢等问题,且区块链上需要存储的交易数据过多,也会导致区块链上存储压力过大,进而引发区块链上数据膨胀的风险。
发明内容
本申请实施例提供了一种基于区块链的数据处理方法、装置、设备及可读存储介质,可以提高区块链网络的TPS,缓解区块链网络的存储压力。
本申请实施例一方面提供了一种基于区块链的数据处理方法,包括:
中继节点执行针对目标子链账户的交易数据,得到交易执行结果;中继节点属于子区块链网络;
获取子区块链网络中的账户总状态数据,根据交易执行结果和总账户状态数据,生成待验证账户总状态数据;账户总状态数据包括至少两个子链账户的状态数据,至少两个子链账户包括目标子链账户;
根据账户总状态数据以及待验证账户总状态数据,生成零知识证明数据;
将零知识证明数据以及与交易执行结果相关联的状态变更信息提交至主链节点,以使主链节点在对零知识证明数据证明验证通过时,根据状态变更信息变更目标主链账户的状态数据;目标子链账户和目标主链账户相关联;主链节点属于主区块链网络。
本申请实施例一方面提供了一种基于区块链的数据处理方法,包括:
主链节点接收中继节点提交的零知识证明数据以及与交易执行结果相关联的状态变更信息;主链节点属于主区块链网络;中继节点属于子区块链网络;零知识证明数据是根据子区块链网络的账户总状态数据以及待验证账户总状态数据生成的;待验证账户总状态数据是根据交易执行结果和账户总状态数据生成;交易执行结果是中继节点执行针对目标子链账户的交易数据得到的;
调用证明合约对零知识证明数据进行证明验证,得到证明验证结果;
若证明验证结果为证明验证通过结果,则根据状态变更信息变更目标主链账户的状态数据;目标子链账户和目标主链账户相关联。
本申请实施例一方面提供了一种基于区块链的数据处理装置,包括:
执行模块,用于执行针对目标子链账户的交易数据,得到交易执行结果;中继节点属于子区块链网络;
状态生成模块,用于获取子区块链网络中的账户总状态数据,根据交易执行结果和总账户状态数据,生成待验证账户总状态数据;账户总状态数据包括至少两个子链账户的状态数据,至少两个子链账户包括目标子链账户;
证明生成模块,用于根据账户总状态数据以及待验证账户总状态数据,生成零知识证明数据;
提交模块,用于将零知识证明数据以及与交易执行结果相关联的状态变更信息提交至主链节点,以使主链节点在对零知识证明数据证明验证通过时,根据状态变更信息变更目标主链账户的状态数据;目标子链账户和目标主链账户相关联;主链节点属于主区块链网络。
其中,证明生成模块,包括:
第一哈希单元,用于对账户总状态数据进行哈希处理,得到第一状态哈希值;
第二哈希单元,用于对待验证账户总状态数据进行哈希处理,得到第二状态哈希值;
变化确定单元,用于根据账户总状态数据和待验证账户总状态数据,确定至少两个子链账户分别对应的状态数据变化值;
证明生成单元,用于将第一状态哈希值、第二状态哈希值以及状态数据变化值输入零知识证明电路,得到零知识证明数据。
其中,第一哈希单元,包括:
账户哈希子单元,用于对账户总状态数据中的至少两个子链账户的状态数据分别进行哈希运算,得到至少两个子链账户分别对应的账户状态哈希值;
树哈希子单元,用于根据状态默克尔树路径对至少两个子链账户分别对应的账户状态哈希值进行哈希运算,得到根哈希值,将根哈希值确定为第一状态哈希值。
其中,上述数据处理装置,还包括:
打包模块,用于将交易数据打包进待上链子链区块;
共识模块,用于在主链节点对零知识证明数据证明验证通过后,对待上链子链区块进行共识处理;
更新模块,用于当待上链子链区块共识处理通过后,将子区块链网络的账本中的账户总状态数据,更新为待验证账户总状态数据。
本申请实施例一方面提供了一种基于区块链的数据处理装置,包括:
接收模块,用于接收中继节点提交的零知识证明数据以及与交易执行结果相关联的状态变更信息;主链节点属于主区块链网络;中继节点属于子区块链网络;零知识证明数据是根据子区块链网络的账户总状态数据以及待验证账户总状态数据生成的;待验证账户总状态数据是根据交易执行结果和账户总状态数据生成;交易执行结果是中继节点执行针对目标子链账户的交易数据得到的;
证明验证模块,用于调用证明合约对零知识证明数据进行证明验证,得到证明验证结果;
变更模块,用于若证明验证结果为证明验证通过结果,则根据状态变更信息变更目标主链账户的状态数据;目标子链账户和目标主链账户相关联。
其中,目标主链账户的状态数据包括目标主链账户的链上状态数据和合约状态数据;链上状态数据用于表征目标主链账户在主区块链网络中所拥有且未锁定在资源锁定合约的链上虚拟资源;合约状态数据用于表征目标主链账户在主区块链网络中所拥有且已锁定在资源锁定合约的合约虚拟资源;
变更模块,包括:
第一变更单元,用于若交易数据属于第一交易业务类型,则根据状态变更信息,对目标主链账户的链上状态数据和合约状态数据进行状态变更;
第二变更单元,用于若交易数据属于第二交易业务类型,则根据状态变更信息,对目标主链账户的合约状态数据进行状态变更。
其中,第一交易业务类型为存储业务类型,状态变更信息包括用于执行存储业务的目标主链账户以及目标存储状态数据;
第一变更单元,包括:
第一转移子单元,用于若交易数据属于存储业务类型,则在目标主链账户对应的链上虚拟资源中,获取目标存储状态数据对应的虚拟资源,作为存储虚拟资源;
第一转移子单元,还用于将存储虚拟资源转移至资源锁定合约进行锁定;
存储变更子单元,用于将链上状态数据与目标存储状态数据进行相减,得到状态变更后的链上状态数据;
存储变更子单元,还用于将合约状态数据与目标存储状态数据进行相加,得到状态变更后的合约状态数据。
其中,第一交易业务类型为提取业务类型,状态变更信息包括用于执行提取业务的目标主链账户以及目标提取状态数据;
第一变更单元,包括:
第二转移子单元,用于若交易数据属于提取业务类型,则在目标主链账户对应的合约虚拟资源中,获取目标提取状态数据对应的虚拟资源,作为提取虚拟资源;
第二转移子单元,还用于将提取虚拟资源从资源锁定合约中转出;
提取变更子单元,用于将链上状态数据与目标提取状态数据进行相加,得到状态变更后的链上状态数据;
提取变更子单元,还用于将合约状态数据与目标提取状态数据进行相减,得到状态变更后的合约状态数据。
其中,第二交易业务类型为转移业务类型,状态变更信息包括用于执行转移业务的目标主链账户以及目标转移状态数据;目标主链账户包括第一主链账户和第二主链账户;
第二变更单元,包括:
相减子单元,用于若交易数据属于转移业务类型,则将第一主链账户的合约状态数据与目标转移状态数据进行相减,得到第一主链账户对应的状态变更后的合约状态数据;
相加子单元,用于将第二主链账户的合约状态数据与目标转移状态数据进行相加,得到第二主链账户对应的状态变更后的合约状态数据。
其中,上述数据处理装置,还包括:
地址创建模块,用于接收业务节点发送的针对目标主链账户的合约地址创建请求;
地址创建模块,还用于根据合约地址创建请求在资源锁定合约中创建与目标主链账户绑定的合约地址,作为目标合约地址;目标合约地址用于存储目标主链账户的合约状态数据;
账户创建模块,用于根据合约地址创建请求,向中继节点生成账户地址创建请求,以使中继节点根据账户地址创建请求在子区块链网络中创建与目标主链账户相关联的目标子链账户绑定的子链账户地址;子链账户地址用于存储目标子链账户的状态数据。
本申请实施例一方面提供了一种计算机设备,包括:处理器、存储器、网络接口;
上述处理器与上述存储器、上述网络接口相连,其中,上述网络接口用于提供数据通信网元,上述存储器用于存储计算机程序,上述处理器用于调用上述计算机程序,以执行本申请实施例中的方法。
本申请实施例一方面提供了一种计算机可读存储介质,上述计算机可读存储介质中存储有计算机程序,上述计算机程序适于由处理器加载并执行本申请实施例中的方法。
本申请实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例中的方法。
本申请实施例中,子区块链网络的中继节点在执行针对目标子链账户的交易数据,得到交易执行结果后,可以获取子区块链网络中的账户总状态数据,然后根据交易执行结果和账户总状态数据,生成待验证账户总状态数据,再根据账户总状态数据以及待验证账户总状态数据,生成零知识证明数据;最后,中继节点将零知识证明数据以及与交易执行结果相关联的状态变更信息提交至主区块链网络的主链节点,主链节点在对零知识证明数据证明验证通过时,就可以根据状态变更信息变更目标主链账户的状态数据。其中,账户总状态数据包括至少两个子链账户的状态数据,至少两个子链账户包括目标子链账户;目标子链账户和目标主链账户相关联。通过本申请实施例提供的方法,将主区块链网络中的主链账户与子区块链网络中的子链账户关联,将针对目标主链账户的交易逻辑转为针对目标子链账户的交易数据,然后在子区块链网络的中继节点执行,主链节点通过验证中继节点执行交易数据后生成的零知识证明数据,验证通过后就可以根据状态变更信息更改主链账户的状态数据,节省了主链节点执行交易的时间,极大地提高了主区块链网络的TPS,另外,子区块链网络中与交易数据相关的执行数据不用提交至主区块链网络,也缓解了主区块链网络中的交易存储压力。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络架构示意图;
图2a-图2b是本申请实施例提供的一种基于区块链的数据处理的场景示意图;
图3是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图;
图4是本申请实施例提供的另一种基于区块链的数据处理方法的流程示意图;
图5是本申请实施例提供的一种存储交易处理的场景示意图;
图6是本申请实施例提供的一种提取交易处理的场景示意图;
图7是本申请实施例提供的一种转账交易处理的场景示意图;
图8是本申请实施例提供的一种基于区块链的数据处理方法的交互示意图;
图9是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图;
图10是本申请实施例提供的一种计算机设备的结构示意;
图11是本申请实施例提供的另一种基于区块链的数据处理装置的结构示意图;
图12是本申请实施例提供的另一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图1,图1是本申请实施例提供的一种网络架构示意图。区块链是一种分布式数据存储、点对点传输、共识机制以及加密算法等计算机技术的新型应用模式,主要用于对数据按时间顺序进行整理,并加密成账本,使其不可被篡改和伪造,同时可进行数据的验证、存储和更新。区块链本质上是一个去中心化的数据库,该数据库中的每个节点均存储一条相同的区块链,区块链网络可以将节点区分为共识节点和业务节点,其中共识节点负责区块链全网的共识。对于区块链网络中交易数据被写入账本的过程可以为:客户端发送交易数据至业务节点,随后该交易数据以接力棒的方式在区块链网络中的业务节点之间传递,直到共识节点收到该交易数据,共识节点再将该交易数据打包进区块,与其他共识节点之间进行共识,在共识通过后,将携带该交易数据的区块写入账本。
其中,可以理解的是,区块(Block)是在区块链网络上承载交易数据(即交易业务)的数据包,是一种被标记上时间戳和之前一个区块的哈希值的数据结构,区块经过网络的共识机制验证并确定区块中的交易。
其中,可以理解的是,哈希(hash)值,也称作信息特征值或特征值,哈希值是通过哈希算法将任意长度的输入数据转换为密码并进行固定输出而生成的,不能通过解密哈希值来检索原始输入数据,它是一个单向的加密函数。在区块链中,每个区块(除了初始区块)都包含前继区块的哈希值,前继区块被称为当前区块的父区块。哈希值是区块链技术中的潜力核心基础和最重要的方面,它保留了记录和查看数据的真实性,以及区块链作为一个整体的完整性。
其中,可以理解的是,区块链系统中可以包括有智能合约,该智能合约在区块链系统中可以理解为是一种区块链各节点(包括共识节点)可以理解并执行的代码,可以执行任意逻辑并得到结果。用户可以通过客户端发起一个交易业务请求的方式,调用区块链上已经部署的智能合约,随后,区块链上的业务节点可以将该交易业务请求发送至共识节点,而区块链上的各个共识节点可以分别运行该智能合约。应当理解,区块链中可以包括一个或多个智能合约,这些智能合约可以标识号(Identity document,ID)或名称来进行区分,而客户端发起的交易业务请求中,也可以携带智能合约的标识号或名称,以此指定区块链需要运行的智能合约。而若客户端所指定的智能合约为需要读取数据的合约,则各个共识节点会访问本地账本来进行数据的读取,最后各个共识节点会互相验证执行结果是否一致(也就是进行共识),若一致则可以将执行结果存入各自的本地账本中,并将执行结果返回至客户端。
如图1所示,该网络架构可以包括主链节点集群10、子链节点集群100以及终端设备(客户端)集群1000,该主链节点集群10可以包括多个主链节点,子链节点集群可以包括多个子链节点。如图1所示,该主链节点集群10可以包括主链节点10a、主链节点10b、主链节点10c、…、主链节点10n,该子链节点集群100具体可以包括子链节点100a、子链节点100b、子链节点100c、…、子链节点100n,该终端设备集群1000具体可以包括终端设备1000a、终端设备1000b、…、终端设备1000n。
其中,每个主链节点之间可以存在数据连接,从而保证各个主链节点之间的数据互通,例如,主链节点10a和主链节点10b之间存在数据连接,主链节点10a和主链节点10c之间存在数据连接。同样的,每个子链节点之间可以存在数据连接,从而保证各个子链节点之间的数据互通,例如,子链节点100a和子链节点10b之间存在数据连接,子链节点10a和子链节点10c之间存在数据连接。另外,主链节点集群中的每个主链节点或者子链节点集群中的每个子链节点在进行正常工作时可以接收到终端设备集群1000发送的数据,并基于接收到的数据进行区块上链处理,也可以向终端设备集群1000发送数据,也就是说,主链节点集群10中的任一主链节点可以和子链节点集群100中的任一子链节点存在数据连接,主链节点集群10中任一主链节点还可以和终端设备集群1000中的任一终端设备存在数据连接,子链节点集群100中的任一子链节点也可以和终端设备集群1000中的任一终端设备存在数据连接,例如,终端设备1000a、主链节点10a以及子链节点100a两两之间均存在数据连接。
其中,可以理解的是,上述的数据连接不限定连接方式,可以通过有线通信方式进行直接或间接地连接,也可以通过无线通信方式进行直接或间接地连接,还可以通过其他连接方式,本申请在此不做限制。
可以理解的是,本申请实施例所提供的数据处理方法可以由计算机设备执行,计算机设备包括但不限于上述主链节点(可以为终端或者服务器)、子链节点(可以为终端或者服务器)、终端设备。上述服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。上述终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。
可以理解的是,本申请实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等场景。
如图1所示,主链节点集群10构成主区块链网络,主链节点集群10中的主链节点均存储有一条相同的主区块链,主区块链网络中产生的区块经过共识后均会被上链至主区块链。可以理解的是,并非区块链中的所有参与节点都有足够的资源和必要性成为区块链的共识节点,因此,主链节点集群10中部分主链节点作为共识节点参与区块的共识即可,例如,主链节点10a、主链节点10c、……、主链节点10n为共识节点,对主区块链的区块(包含一批交易)进行共识,包括生成区块,对区块进行投票;而非共识节点不参与共识,但会帮助传播区块和投票消息,以及相互同步状态等。同理,子链节点集群100构成子区块链网络,子链节点集群100中的子链节点均存储有一条相同的子区块链,子区块链网络中产生的区块经过共识后均会被上链至子区块链。子链节点集群100中也只需要部分子链节点作为共识节点参与子区块链的区块共识即可。
如图1所示,主区块链网络中的主区块链中可以包含有多个主链账户,其中,主链账户可以与用户绑定,对应有状态数据,该状态数据中包含有账户余额,用于表征与主链账户绑定的用户在主区块链中所拥有的虚拟资源。其中,虚拟资源是指采用数字化形态表现用户现实中所拥有的资产(例如,游戏装备)并采用加密技术保证安全性的数字产品。在数字产品交易场景下,主链账户越多,主区块链网络中同时间可以产生的交易数量就越多。但是主区块链网络的整体性能有限,此时交易的等待时间就会过长,且交易产生的数据也均要存储在主区块链网络中,容易造成主区块链网络数据膨胀。因此,可以将主区块链网络中的针对主链账户的交易转移到子区块链网络中执行,在子区块链网络批量执行交易,主区块链网络中只需执行一笔包含这批交易对应的状态变更信息的交易即可,并且这批交易的相关数据都不必上链到主区块链网络中,在子区块链网络中进行存储即可,可以解决数字产品交易场景下主区块链网络TPS不足和数据存储过载的问题。
将主区块链网络中针对主链账户的交易转移到子区块链网络中执行,在子区块链网络执行一批交易,然后主区块链网络中只需执行一笔包含这批交易对应的状态变更信息的交易的具体实施过程,请具体参见图2a-图2b,图2a-图2b是本申请实施例提供的一种基于区块链的数据处理的场景示意图。其中,如图2a所示的主链节点200可以为上述图1所对应实施例中的主链节点集群10中的任一主链节点,如,主链节点200可以为主链节点10a;如图2a所示的中继节点201可以为上述图1所对应实施例中的子链节点集群100中的任一子链节点,如,中继节点201可以为子链节点100a;如图2a所示的终端设备202和终端设备203可以为上述图1所对应实施例中的终端设备集群1000中的任意两个终端设备,如,终端设备202可以为终端设备1000b,终端设备203可以为终端设备1000a。
如图2a所示,主链节点200中存储有合约总状态数据204,合约总状态数据204包括有主链节点所属的主区块链网络中每个主链账户对应的合约状态数据,其中,合约状态数据包含有合约余额,用于表征主链账户在主区块链中的资产锁定合约中所对应的虚拟资源。由合约总状态数据204可知,主区块链网络中主链账户A的合约余额为100;主链账户B的合约余额为50;主链账户C的合约余额为80;主链账户D的合约余额为60。本申请中,主区块链网络中的主链账户,可以关联有子区块链网络中的子链账户,且主链账户存储在资产锁定合约中的虚拟资源对应的的合约状态数据,与其关联的子链账户的状态数据应该保持一致,例如,子链账户A与主链账户A相关联,则此时子链账户A的账户余额应为100;子链账户B与主链账户B相关联,则此时子链账户B的账户余额应为50;子链账户C与主链账户C相关联,则此时子链账户C的账户余额应为80;子链账户D与主链账户D相关联,则此时子链账户D的账户余额应为60。中继节点201中存储的账户总状态数据205可以包括每个子链账户对应的状态数据。如图2a所示,假设终端设备202向主链节点200发起主链账户A向主链账户B转账20的交易206,同时间段终端设备203向主链节点200发起主链账户C向主链账户D转账50的交易207,主链节点200在接收到交易206后,可以先简单验证交易206的合法性,例如,主链账户A的合约余额是否大于20等等,如果验证交易206合法,则主链节点200可以根据交易206,向中继节点201发起子链账户A向子链账户B转账20的交易208。同理,主链节点200还可以基于交易207向中继节点202发起子链账户C向子链账户D转账50的交易209。可以理解,由于子链账户的账户余额与主链账户的合约余额一致,因此,中继节点201执行交易208和执行交易209后,子链账户的账户余额变更情况,和主链节点200执行交易206和交易207后,主链账户的合约余额变更情况,也应当是一致的。因此,当主区块链网络中的主链节点200接收到针对目标主链账户存储在资产锁定合约中的虚拟资源的交易时,就可以将其转变为针对与目标主链账户相关联的目标子链账户的交易,随后将针对目标子链账户的交易发给中继节点201,由子区块链网络来完成交易的执行和上链,中继节点201执行完交易后,再根据交易的执行结果生成状态变更信息,将状态变更信息返回给主链节点200,主链节点200不用执行交易,直接根据状态变更信息更改合约总状态数据204即可。
不过,为了数据的安全性和严谨性,主链节点200应确认中继节点201真实执行了交易208和交易209后,再根据状态变更信息更改合约总状态数据204。如图2b所示,中继节点201可以批量执行目标时间段内获取到的交易,这里仅以中继节点201执行交易208和交易209为例进行说明,实际上中继节点201可以在目标时间段内接收多个主链节点发送多个交易,然后执行所有交易。中继节点201执行完交易后,就可以得到交易执行结果210,根据交易执行结果210和账户总状态数据205,就可以得到待验证账户总状态数据211,应当理解,此时在子区块链网络中,交易208和交易209以及它们对应的交易执行结果210还没有进行共识上链,因此此时子区块链网络中的账户总状态数据205暂未进行实际变更。在中继节点201得到账户总状态数据205和待验证账户总状态数据211后,就可以基于账户总状态数据205和待验证账户总状态数据211进行零知识证明的生成,得到用于证明交易208和交易209均执行正确的零知识证明数据。其中,零知识证明是指证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。中继节点201可以通过零知识证明电路生成不揭露交易具体执行过程,但可以证明交易确实执行正确的零知识证明数据,主链节点200只需验证零知识证明数据是否通过,就可以确定中继节点201是否成功执行过这批交易。如图2b所示,中继节点201可以将这批交易(即交易208和交易209)对应的零知识证明数据212和这批交易对应的状态变更信息213组成证明交易214,提交至主链节点200。其中,状态变更信息213中只需包含有交易执行完后对应的精简交易执行结果信息即可,例如,状态变更信息213为:主链账户A的合约余额为80,主链账户B的合约余额为70,主链账户C的合约余额为30,主链账户D的合约余额为110。主链节点200在接收到证明交易214后,主链节点200可以调用证明合约来验证证明交易214中的零知识证明数据,在验证通过后,就可以根据状态变更信息来变更合约总状态数据204,得到变更后的合约总状态数据215。另外,中继节点可以作为子区块链网络中的出块节点,将这批交易打包进区块,然后将区块发送给子链节点集群中的其余子链共识节点进行共识,在共识通过以后,这批交易以及对应的交易执行结果会被写进子区块链网络的账本中,此时子区块链网络的账户总状态数据205变更为待验证账户总状态数据211。可以理解,变更后的子链账户的账户余额与变更后的主链账户的合约余额保持一致。
可以理解的是,在本申请的具体实施方式中,涉及到的交易数据、状态数据等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
通过本申请实施例提供的数据处理方法,主区块链网络中的多个交易可以在子区块链网络中被执行,主区块链网络只需对包含了这多个交易对应的零知识证明数据和状态变更信息的证明交易进行共识上链即可,极大地提高了主区块链的TPS,缓解了主区块链的存储压力。
进一步地,请参见图3,图3是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图。其中,该方法可以由中继节点(例如,上述图1所对应实施例中的子链节点集群100中的任一子链节点)执行。以下将以本方法由中继节点执行为例进行说明,其中,该基于区块链的数据处理方法至少可以包括以下步骤S101-步骤S104:
步骤S101,中继节点执行针对目标子链账户的交易数据,得到交易执行结果;所述中继节点属于子区块链网络。
具体的,中继节点可以从主链节点中接收针对目标子链账户的交易数据,也可以直接从终端设备中接收针对目标子链账户的交易数据。中继节点可以批量执行交易数据,即将目标时间段内接收到的多条交易数据进行打包进待上链区块。中继节点会批量执行这批交易数据,得到交易执行结果。
步骤S102,获取所述子区块链网络中的账户总状态数据,根据所述交易执行结果和所述账户总状态数据,生成待验证账户总状态数据;所述账户总状态数据包括至少两个子链账户的状态数据,所述至少两个子链账户包括所述目标子链账户。
具体的,子链账户的状态数据是指存储于子区块链中的子链账户的数据,状态数据包含有账户余额,用于表征子链账户在子区块链网络中所拥有的虚拟资源。子区块链网络中所有子链账户的状态数据,构成子区块链网络中的账户总状态数据。当子区块链网络中有针对目标子链账户的交易数据执行完成后,目标子链账户的状态数据就需准备进行变更,相应的,子区块链网络中的账户总状态数据也需准备进行变更。例如,子链账户a的账户余额为100,子链账户b的账户余额为50,交易1为子链账户a向子链账户b转账20,交易1执行完成后,子链账户a的账户余额就需准备变更为80,子链账户b的账户余额就需准备变更为70。
具体的,子区块链网络中可以存储有不同资源类型的虚拟资源,此时,子链账户拥有的不同资源类型的虚拟资源需要用不同的余额来表征,例如,子链账户c的状态数据为“tokenX:100,tokenY:80”,其中,tokenX用于表征资源类型为X的虚拟资源X,tokenY用于表征资源类型为Y的虚拟资源Y,即此时子链账户c拥有数量100的虚拟资源X和数量80的虚拟资源Y。另外,且不同虚拟资源之间不可进行叠加,不同子链账户之间可以进行相同资源类型的虚拟资源的交易。假设,子链账户d的状态数据为“tokenX:100,tokenY:80”,交易2为子链账户c转账数量50的虚拟资源X给子链账户d,则在交易2执行完成后,子链账户c的状态数据就需准备变更为“tokenX:50,tokenY:80”,子链账户d的状态数据就需准备变更为“tokenX:150,tokenY:80”。
具体的,根据交易执行结果和账户总状态数据,可以得到待验证账户总状态数据,应当理解,在交易执行结果写入子区块链网络的账本之前,子区块链网络中的账户总状态数据不会发生变更,即执行完交易数据后,账户总状态数据需准备变更为待验证账户总状态数据,在后续交易执行结果写入子区块链网络的账本时,就可以将账户总状态数据真正的变更为待验证账户总状态数据。
步骤S103,根据所述账户总状态数据以及所述待验证账户总状态数据,生成零知识证明数据。
具体的,本申请实施例中将针对目标主链账户存储在资产锁定合约中的虚拟资源的交易数据,转为针对与目标主链账户具有关联关系的目标子链账户的交易数据,由子区块链网络来执行交易数据,从而减少主区块链网络中交易执行的任务量。中继节点可以根据账户总状态数据以及待验证账户总状态数据生成零知识证明数据,来证明交易确实被成功执行了。其中,零知识证明是指证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息,即中继节点可以通过零知识证明数据向主链节点证明自己确实成功执行了交易,但是不泄露交易执行过程中的相关信息。
具体的,根据账户总状态数据以及待验证账户总状态数据,生成零知识证明数据的一个可行过程为:对账户总状态数据进行哈希处理,得到第一状态哈希值;对待验证账户总状态数据进行哈希处理,得到第二状态哈希值;根据账户总状态数据和待验证账户总状态数据,确定至少两个子链账户分别对应的状态数据变化值;然后将第一状态哈希值、第二状态哈希值以及状态数据变化值输入零知识证明电路,得到零知识证明数据。其中,零知识证明电路是基于想证明的计算过程设计编译出的电路,中继节点只需提供零知识证明电路的输入,就可以根据零知识证明电路计算出输入对应的零知识证明数据。本申请中,将表征子区块链网络中账户总状态数据随着交易的执行结果变化过程的第一状态哈希值、第二状态哈希值以及状态数据变化值输入零知识证明电路,可以得到证明中继节点确实成功执行交易的零知识证明数据。当然,也可以采用其他输入的零知识证明电路来证明中继节点确实成功执行了交易,本申请实施例在此不作限制。
具体的,对账户总状态数据进行哈希处理,得到第一状态哈希值的一个可行过程为:对账户总状态数据中的至少两个子链账户的状态数据分别进行哈希运算,得到至少两个子链账户分别对应的账户状态哈希值;根据状态默克尔树路径对至少两个子链账户分别对应的账户状态哈希值进行哈希运算,得到根哈希值,将根哈希值确定为第一状态哈希值。另外,可以对待验证账户总状态数据进行同样的哈希处理,得到第二状态哈希值。
步骤S104,将所述零知识证明数据以及与所述交易执行结果相关联的状态变更信息提交至主链节点,以使所述主链节点在对所述零知识证明数据证明验证通过时,根据所述状态变更信息变更目标主链账户的状态数据;所述目标子链账户和所述目标主链账户相关联;所述主链节点属于主区块链网络。
具体的,由上述图2a和图2b对应实施例可知,子区块链网络中的子链账户均关联有主区块链网络中的主链账户,当子链账户的状态数据与主链账户在资产锁定合约中存储的虚拟资源对应的状态数据保持一致时,中继节点执行完这批交易数据得到交易执行结果后,就可以得到针对目标子链账户的状态变更情况,从而可以将其作为针对目标主链账户的状态变更信息,状态变更信息用于指示主链节点对目标主链账户在资产锁定合约中存储的虚拟资源对应的状态数据进行更改,例如,状态变更信息可以为“目标主链账户,tokenX:50”,主链节点根据该状态变更信息可以将目标主链账户在资产锁定合约中存储的虚拟资源对应的状态数据中虚拟资源X对应的余额变更为50。
具体的,中继节点可以将零知识证明数据和状态变更信息组装进一笔交易中,然后以交易的形式提交至主区块链网络中的主链节点。主链节点在对这笔交易共识通过后,就可以验证零知识证明数据,若验证通过,就根据状态变更信息更改目标主链账户在资产锁定合约中存储的虚拟资源对应的状态数据。
可选的,中继节点在主链节点对零知识证明数据证明验证通过后,可以对包含交易数据的待上链子链区块进行共识处理,当待上链子链区块共识处理通过后,中继节点可以将交易数据对应的交易执行结果写入子区块链网络的账本中,此时子区块链网络的账本中的账户总状态数据,将更新为待验证账户总状态数据。
采用本申请实施例提供的方法,将主区块链网络中针对目标主链账户在资产锁定合约中存储的虚拟资源对应的交易数据,转化为子区块链网络中针对与目标主链账户相关联的目标子链账户的交易数据,子区块链网络中的中继节点执行针对目标子链账户的交易数据得到交易执行结果后,可以获取账户总状态数据,并根据交易执行结果和账户总状态数据生成待验证账户总状态数据,随后根据账户总状态数据和待验证账户总状态数据生成零知识证明数据,其中,零知识证明数据用于证明交易数据确实被执行了,最后,中继节点将零知识证明数据和状态变更信息提交至主链节点,主链节点在验证零知识证明数据通过后,就可以根据状态变更信息来变更目标主链账户的状态数据,主链节点不用再执行大量的针对存储在资产锁定合约中的虚拟资源的交易数据,也不用存储执行过程中产生的相关数据,可以提高主区块链网络的TPS,缓解主区块链网络的数据存储压力。
进一步地,请参见图4,图4是本申请实施例提供的另一种基于区块链的数据处理方法的流程示意图。其中,该方法可以由主链节点(例如,上述图1所对应实施例中的主链节点集群10中的任一主链节点)执行。以下将以本方法由主链节点执行为例进行说明,其中,该基于区块链的数据处理方法至少可以包括以下步骤S201-步骤S203:
步骤S201,主链节点接收中继节点提交的零知识证明数据以及与交易执行结果相关联的状态变更信息;所述主链节点属于主区块链网络;所述中继节点属于子区块链网络。
具体的,零知识证明数据是中继节点根据子区块链网络的账户总状态数据以及待验证账户总状态数据生成的,其中,待验证账户总状态数据是根据交易执行结果和账户总状态数据生成,而交易执行结果是中继节点执行针对目标子链账户的交易数据得到的,另外,目标子链账户和目标主链账户相关联。具体生成过程可以参见上述图3所对应实施例中的步骤S103。
步骤202,调用证明合约对所述零知识证明数据进行证明验证,得到证明验证结果。
具体的,证明合约是基于生成零知识证明数据的零知识证明电路确定的,可以采用ZoKrates(一个工具类项目)工具来导出零知识证明电路对应的证明合约,开发人员也可以通过ZoKrates工具来编译零知识证明电路。证明合约部署在主区块链网络中,主链节点可以调用证明合约来验证零知识证明数据,然后输出证明验证结果。
步骤S203,若所述证明验证结果为证明验证通过结果,则根据所述状态变更信息变更目标主链账户的状态数据。
具体的,在本申请实施例中,目标主链账户的虚拟资源可以划分为链上虚拟资源和合约虚拟资源,其中,链上虚拟资源是指目标主链账户在主区块链网络中所拥有且未锁定在资源锁定合约的虚拟资源,合约虚拟资源是指目标主链账户在主区块链网络中所拥有且已锁定在资源锁定合约的虚拟资源。在主区块链网络中,目标主链账户的状态数据就可以包括链上状态数据和合约状态数据,其中,链上状态数据用于表征目标主链账户拥有的链上虚拟资源,合约状态数据用于表征目标主链账户拥有的合约虚拟资源。如此,子区块链网络中与目标主链账户相关联的子链账户所拥有的虚拟资源,只需与目标主链账户的合约虚拟资源保持一致,即子区块链网络的账户总状态数据仅需与目标主链账户的合约状态数据保存一致即可。也就是说,在主区块链网络中,存入资源锁定合约中的合约虚拟资源会被锁定,针对目标主链账户的合约虚拟资源的相关的交易数据均会转为针对目标子链账户相关的交易数据,交易数据的执行过程将放在子区块链网络中执行;同时,针对目标主链账户的未锁定的链上虚拟资源的交易数据,可以被主区块链网络中具备出块权限的主链节点打包进区块,然后共识上链。
具体的,当目标主链账户的状态数据包括链上状态数据和合约状态数据,即主区块链网络中的资源锁定合约中的合约虚拟资源对应的合约总状态数据与子区块链网络中的账户总状态数据保持一致时,根据状态变更信息变更目标主链账户的状态数据的可行实施过程为:若交易数据属于第一交易业务类型,则根据状态变更信息,对目标主链账户的链上状态数据和合约状态数据进行状态变更;若交易数据属于第二交易业务类型,则根据状态变更信息,对目标主链账户的合约状态数据进行状态变更。其中,第一交易业务类型的交易数据是指涉及到主链账户的链上虚拟资源和合约虚拟资源进行交互的交易数据,用于将第一目标数额的链上虚拟资源存储到资源锁定合约中,或者从资源锁定合约中提取第二目标数额的合约虚拟资源到主区块链网络中账本存储。存储到资源锁定合约中的目标数额的链上虚拟资源也会作为合约虚拟资源,可以认为合约虚拟资源为主区块链网络存储到子区块链网络中的虚拟资源,因为子区块链网络中的虚拟资源的数额将与合约虚拟资源的数额相同。其中,第二交易业务类型的交易数据是指仅针对合约虚拟资源的交易数据,此时所有主链账户拥有的合约虚拟资源的总额未发生变更,子区块链网络中的虚拟资源的总额也不变。
具体的,当第一交易业务类型为存储业务类型,状态变更信息可以包括用于执行存储业务的目标主链账户以及目标存储状态数据。若交易数据属于第一交易业务类型,则根据状态变更信息,对目标主链账户的链上状态数据和合约状态数据进行状态变更,包括:若交易数据属于存储业务类型,则在目标主链账户对应的链上虚拟资源中,获取目标存储状态数据对应的虚拟资源,作为存储虚拟资源;将存储虚拟资源转移至资源锁定合约进行锁定;将链上状态数据与目标存储状态数据进行相减,得到状态变更后的链上状态数据;将合约状态数据与目标存储状态数据进行相加,得到状态变更后的合约状态数据。例如,假设主区块链网络中包含有主链账户e,主链账户e的链上状态数据为“tokenX:20,tokenY:50”,主链账户e的合约状态数据为“tokenX:50,tokenY:30”,状态变更信息为“主链账户e,存储tokenX:20”,则主链节点会将数量20的链上虚拟资源X存储进资源锁定合约中,此时资源锁定合约中存储的合约虚拟资源X的数量为70,主链账户e的链上状态数据将变更为“tokenX:0,tokenY:50”,主链账户e的合约状态数据将变更为“tokenX:70,tokenY:30”。
为更好地理解存储业务类型的交易的处理过程,请一并参见图5,图5是本申请实施例提供的一种存储交易处理的场景示意图。其中,如图5所示的终端设备可以为上述图1所对应实施例中的终端设备集群1000中的任一终端设备,如终端设备可以为终端设备1000b;如图5所示的主链节点集群50可以为上述图1所对应实施例中的主链节点集群10;如图5所示的中继节点51可以为上述图1所对应实施例中的子链节点集群100中的任一子链节点,如,中继节点51可以为子链节点100a。
如图5所示,用户可以通过绑定的终端设备向主链提交存储交易,例如,终端设备向主链节点50a发送存储交易501,该存储交易501的交易内容为“账户A虚拟资源X存储10”,即用户A想将主链上的虚拟资源X转移到主链的
资源锁定合约中进行存储,用于进行链下交易。此时数量10的虚拟资源X会处于等待锁定的状态。然后主链可以向中继者发送主链用户存储交易请求,例如,主链节点50a可以向中继节点51发送存储交易请求502,中继节点502接收到存储交易请求502后可以对主链上目标时间段内所有的交易请求进行收集打包,例如,区块503中包含了存储交易请求502。同时,中继节点51可以将区块503输入到零知识证明电路中52中生成零知识证明数据504,具体的,区块503中包含有交易请求对应的交易执行结果,中继节点503可以获取子链账户的状态数据,生成第一状态哈希值505,然后根据交易执行结果得到子链账户的待验证状态数据,生成第二状态哈希值506,中继节点503还可以确定状态数据变化值,即子链账户A的虚拟资源X的变化值,将第一状态哈希值505、第二状态哈希值506以及状态数据变化值输入到零知识证明电路52中,可以验证区块503中的所有交易的状态变迁过程的正确性,若输入信息符合零知识证明电路的验证过程,零知识电路可以输出零知识证明数据504,用于证明存储交易请求502确实被执行了。随后,中继节点51可以生成包含有零知识证明数据504和状态变更信息的证明交易507到主链,假设中继节点51将证明交易507提交至主链节点50b,随后主链节点50b可以在主链中发起针对该证明交易507的共识上链。若证明交易507共识通过,则主链节点50b会调用证明合约来验证零知识证明数据504,验证通过后根据状态变更信息来变更链上账户状态和合约账户状态。如图5所示,主链中资源锁定合约中存储的合约总状态数据508将变更为合约总状态数据509,主链中的主链账户A的合约状态数据510会变更为合约状态数据511,此时数量10的虚拟资源X会存储进资源锁定合约。同时,区块503会被上链至逻辑子链512。
具体的,当第一交易业务类型为提取业务类型,状态变更信息可以包括用于执行提取业务的目标主链账户以及目标提取状态数据;若交易数据属于第一交易业务类型,则根据状态变更信息,对目标主链账户的链上状态数据和合约状态数据进行状态变更,包括:若交易数据属于提取业务类型,则在目标主链账户对应的合约虚拟资源中,获取目标提取状态数据对应的虚拟资源,作为提取虚拟资源;将提取虚拟资源从资源锁定合约中转出;将链上状态数据与目标提取状态数据进行相加,得到状态变更后的链上状态数据;将合约状态数据与目标提取状态数据进行相减,得到状态变更后的合约状态数据。例如,假设主区块链网络中包含有主链账户f,主链账户f的链上状态数据为“tokenX:20,tokenY:50”,主链账户f的合约状态数据为“tokenX:50,tokenY:30”,状态变更信息为“主链账户f,提取tokenX:20”,则主链节点会将数量20的合约虚拟资源X从资源锁定合约中提取到资源锁定合约外进行存储,此时资源锁定合约中存储的合约虚拟资源X的数量为30,主链账户f的链上状态数据将变更为“tokenX:40,tokenY:50”,主链账户f的合约状态数据将变更为“tokenX:30,tokenY:30”。
为更好地理解提取业务类型的交易处理过程,请一并参见图6,图6是本申请实施例提供的一种提取交易处理的场景示意图。其中,如图6所示的终端设备可以为上述图1所对应实施例中的终端设备集群1000中的任一终端设备,如终端设备可以为终端设备1000b;如图6所示的主链节点集群60可以为上述图1所对应实施例中的主链节点集群10;如图6所示的中继节点61可以为上述图1所对应实施例中的子链节点集群100中的任一子链节点,如,中继节点61可以为子链节点100a。
如图6所示,用户可以通过绑定的终端设备向主链提交提取交易,例如,终端设备向主链节点60a发送提取交易601,该存储交易601的交易内容为“账户A虚拟资源Y提取10”,即用户A想将数量10的资产锁定合约中的虚拟资源Y转移到链上,用于在主区块链网络中进行交易。此时数量10的虚拟资源Y会处于等待锁定的状态。然后主链可以向中继者发送主链用户提取交易请求,例如,主链节点60a可以向中继节点61发送存储交易请求602,中继节点602接收到提取交易请求602后可以对主链上目标时间段内所有的交易请求进行收集打包,例如,区块603中包含了提取交易请求602。同时,中继节点61可以将区块603输入到零知识证明电路中62中生成零知识证明数据604,具体的,区块603中包含有交易请求对应的交易执行结果,中继节点603可以获取子链账户的状态数据,生成第一状态哈希值605,然后根据交易执行结果得到子链账户的待验证状态数据,生成第二状态哈希值606,中继节点603还可以确定状态数据变化值,即子链账户A的虚拟资源Y的变化值,将第一状态哈希值605、第二状态哈希值606以及状态数据变化值输入到零知识证明电路62中,可以验证区块603中的所有交易的状态变迁过程的正确性,若输入信息符合零知识证明电路的验证过程,零知识电路可以输出零知识证明数据604,用于证明提取交易请求602确实被执行了。随后,中继节点61可以生成包含有零知识证明数据604和状态变更信息的证明交易607到主链,假设中继节点61将证明交易607提交至主链节点60b,随后主链节点60b可以在主链中发起针对该证明交易607的共识上链。若证明交易607共识通过,则主链节点60b会调用证明合约来验证零知识证明数据604,验证通过后根据状态变更信息来变更链上账户状态和合约账户状态。如图6所示,主链中资源锁定合约中存储的合约总状态数据608将变更为合约总状态数据609,主链中的主链账户A的合约状态数据610会变更为合约状态数据611,此时数量10的虚拟资源X会从资源锁定合约转出到链上。同时,区块603会被上链至逻辑子链612。
具体的,当第二交易业务类型为转移业务类型,状态变更信息可以包括用于执行转移业务的目标主链账户以及目标转移状态数据,其中,目标主链账户包括第一主链账户和第二主链账户。若交易数据属于第二交易业务类型,则根据状态变更信息,对目标主链账户的合约状态数据进行状态变更,包括:若交易数据属于转移业务类型,则将第一主链账户的合约状态数据与目标转移状态数据进行相减,得到第一主链账户对应的状态变更后的合约状态数据;将第二主链账户的合约状态数据与目标转移状态数据进行相加,得到第二主链账户对应的状态变更后的合约状态数据。假设主区块链网络中包含有主链账户g和主链账户h,主链账户g的合约状态数据为“tokenX:60,tokenY:30”,主链账户h的合约状态数据为“tokenX:40,tokenY:90”,状态变更信息为“主链账户g转移tokenY:20至主链账户h”,则主链账户g的合约状态数据变更为“tokenX:60,tokenY:10”,主链账户h的合约状态数据变更为“tokenX:40,tokenY:110”。
为更好地理解转移业务类型的交易的处理过程,请一并参见图7,图7是本申请实施例提供的一种转账交易处理的场景示意图。其中,如图7所示的终端设备可以为上述图1所对应实施例中的终端设备集群1000中的任一终端设备,如终端设备可以为终端设备1000b;如图7所示的主链节点集群70可以为上述图1所对应实施例中的主链节点集群10;如图7所示的中继节点71可以为上述图1所对应实施例中的子链节点集群100中的任一子链节点,如,中继节点71可以为子链节点100a。
如图7所示,用户可以通过绑定的终端设备直接向中继节点72发送转移交易请求701,该转移交易请求701的交易内容可以为“账户B虚拟资源X转移10给账户A”,同时,主链节点70a可以向中继节点71发送转移交易请求702,该转移交易请求702的交易内容可以为“账户A虚拟资源Y转移10给账户B”,该转移交易请求702可以是主链节点70a基于接收到的转移交易生成的。中继可以对主链上目标时间段内所有的交易请求进行收集打包,例如,区块703中包含了转移交易请求701和转移交易请求702。同时,中继节点71可以将区块703输入到零知识证明电路中72中生成零知识证明数据704,具体的,区块703中包含有交易请求对应的交易执行结果,中继节点703可以获取子链账户的状态数据,生成第一状态哈希值705,然后根据交易执行结果得到子链账户的待验证状态数据,生成第二状态哈希值706,中继节点703还可以确定状态数据变化值,即子链账户中每项虚拟资源的变化值,将第一状态哈希值705、第二状态哈希值706以及状态数据变化值输入到零知识证明电路72中,可以验证区块703中的所有交易的状态变迁过程的正确性,若输入信息符合零知识证明电路的验证过程,零知识电路可以输出零知识证明数据704,用于证明提取交易请求702确实被执行了。随后,中继节点71可以生成包含有零知识证明数据704和状态变更信息的证明交易707到主链,假设中继节点71将证明交易707提交至主链节点70b,随后主链节点70b可以在主链中发起针对该证明交易707的共识上链。若证明交易707共识通过,则主链节点70b会调用证明合约来验证零知识证明数据704,验证通过后根据状态变更信息来变更合约账户状态。如图7所示,主链中资源锁定合约中存储的合约总状态数据708将变更为合约总状态数据709。
可选的,主链节点可以接收业务节点发送的针对目标主链账户的合约地址创建请求,主链节点可以根据该合约地址创建请求在资源锁定合约中创建与目标主链账户绑定的合约地址,作为目标合约地址。其中,目标合约地址用于存储所述目标主链账户的合约状态数据。同时,主链节点可以根据合约地址创建请求,向中继节点生成账户地址创建请求,中继节点可以根据账户地址创建请求在子区块链网络中创建与目标主链账户相关联的目标子链账户绑定的子链账户地址;其中,子链账户地址用于存储目标子链账户的状态数据。
采用本申请实施例提供的方法,主区块链网络中的虚拟资源可以转移到资源锁定合约中进行存储,存储在资源锁定合约中的虚拟资源将作为合约虚拟资源,主区块链网络中针对合约虚拟资源的交易数据的执行过程均转移到子区块链网络中执行,得到交易执行结果,主链节点只需接收中继节点提交的零知识证明数据以及与交易执行结果相关联的状态变更信息,然后调用证明合约对零知识证明数据进行证明验证,得到证明验证结果,在证明验证结果为证明验证通过结果,则根据状态变更信息变更目标主链账户的状态数据即可,节省了主链节点执行交易的时间,极大地提高了主区块链网络的TPS,且子区块链网络中与交易数据相关的执行数据不用提交至主区块链网络,也缓解了主区块链网络中的交易存储压力。另外,主区块链网络中未存储在资源锁定合约中的链上虚拟资源可以正常交易,极大地提高了主区块链网络对虚拟资源交易的灵活性,并加快了交易处理的速度。
进一步地,请参见图8,图8是本申请实施例提供的一种基于区块链的数据处理方法的交互示意图。该数据处理方法适用于虚拟资源交易场景,如图8所示,整个数据交互过程基于三个服务,即链下中继(Operator)服务、链下电路(Circuit)服务以及主链(Ethereum)服务。其中,Operator的链下中继服务主要收集用户的链上和链下交易,并且将收集到的交易在链下执行并且打包生成block_data(块数据)数据。其中,Circuit的链下电路服务主要将链下中继服务打包生成的block_data数据在电路中进行运行生成链下计算的proof(证明),即零知识证明数据,并且将该proof组成一笔交易提交到主链上。其中,主链服务接收operator提交的proof交易,并且在主链的合约中对该交易进行验证,即可完成链下执行一批交易,链上只用对在链下生成的一批交易的证明进行验证即可完成一批交易的状态变更。其中,链下中继服务和链下电路服务可以由上述子区块链网络中的中继节点实现,主链服务可以通过上述主区块链网络中的主链节点实现。
如图8所示,整个数据交互过程的流程为:
①,用户通过绑定的终端设备,可以向提供主链服务的链上节点(可以上述主区块链网络中的主链节点)发起链上交易,该链上节点可以将其转为链下交易发送给提供链下中继服务的链下节点(可以为上述子区块链网络中的子链节点)。
②,用户也可以通过绑定的终端设备,直接发送链下交易给提供链下中继服务的链下节点。
③,提供链下中继服务的链下节点执行收集到的交易,并打包交易生成一个区块数据。
④,提供链下中继服务的链下节点基于区块数据计算交易前后链下账户(可以为上述子区块链网络中的子链账户)的状态变更(可以上述子区块链网络的账户总状态数据和待验证账户总状态数据),生成状态信息(可以为上述第一状态哈希值、第二状态哈希值以及状态数据变化值)。
⑤,提供链下中继服务的链下节点将状态信息输入到提供链下电路服务的链下节点,提供链下电路服务的链下节点将状态信息输入到电路中,可以得到零知识证明数据proof,返回给提供链下中继服务的链下节点。可以理解,提供链下中继服务的链下节点和提供链下电路服务的链下节点可以为同一节点。
⑥,提供链下中继服务的链下节点将proof和状态变更信息组成一笔交易,提交给提供主链服务的链上节点,提供主链服务的链上节点在主链的合约中对该交易进行共识上链即可。
采用本申请实施例提供的方法,在虚拟资源交易场景中引入链下中继服务、链下电路服务以及主链服务,将主区块链网络中的交易转移到链下执行,且交易可以批量执行,只需在链下生成这批交易正确执行的零知识证明数据,将零知识证明数据与交易执行结果相关联的状态变更信息组装进证明交易中提交到链上,链上只需要对一笔证明交易进行共识上链,只要确定证明交易中的零知识证明数据通过,则认为子链执行的这批交易均生效,能够极大提升虚拟资源交易的TPS以及缓解主链上的数据存储压力,提升用户在主区块链网络中虚拟资源的交易体验。
请参见图9,图9是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图。该数据处理装置可以是运行于计算机设备的一个计算机程序(包括程序代码),例如该数据处理装置为一个应用软件;该装置可以用于执行本申请实施例提供的数据处理方法中的相应步骤。如图9所示,该数据处理装置1可以包括:执行模块11、状态生成模块12、证明生成模块13以及提交模块14。
执行模块11,用于执行针对目标子链账户的交易数据,得到交易执行结果;中继节点属于子区块链网络;
状态生成模块12,用于获取子区块链网络中的账户总状态数据,根据交易执行结果和总账户状态数据,生成待验证账户总状态数据;账户总状态数据包括至少两个子链账户的状态数据,至少两个子链账户包括目标子链账户;
证明生成模块13,用于根据账户总状态数据以及待验证账户总状态数据,生成零知识证明数据;
提交模块14,用于将零知识证明数据以及与交易执行结果相关联的状态变更信息提交至主链节点,以使主链节点在对零知识证明数据证明验证通过时,根据状态变更信息变更目标主链账户的状态数据;目标子链账户和目标主链账户相关联;主链节点属于主区块链网络。
其中,执行模块11、状态生成模块12、证明生成模块13以及提交模块14的具体实现方式可以参见上述图3所对应实施例中对步骤S101-步骤S104的描述,这里不再进行赘述。
请再参见图9,证明生成模块13,包括:第一哈希单元131、第二哈希单元132、变化确定单元133以及证明生成单元134。
第一哈希单元131,用于对账户总状态数据进行哈希处理,得到第一状态哈希值;
第二哈希单元132,用于对待验证账户总状态数据进行哈希处理,得到第二状态哈希值;
变化确定单元133,用于根据账户总状态数据和待验证账户总状态数据,确定至少两个子链账户分别对应的状态数据变化值;
证明生成单元134,用于将第一状态哈希值、第二状态哈希值以及状态数据变化值输入零知识证明电路,得到零知识证明数据。
其中,第一哈希单元131、第二哈希单元132、变化确定单元133以及证明生成单元134的具体实现方式可以参见上述图3所对应实施例中对步骤S103的描述,这里不再进行赘述。
请再参见图9,第一哈希单元131,包括:账户哈希子单元1311以及树哈希子单元1312。
账户哈希子单元1311,用于对账户总状态数据中的至少两个子链账户的状态数据分别进行哈希运算,得到至少两个子链账户分别对应的账户状态哈希值;
树哈希子单元1312,用于根据状态默克尔树路径对至少两个子链账户分别对应的账户状态哈希值进行哈希运算,得到根哈希值,将根哈希值确定为第一状态哈希值。
其中,账户哈希子单元1311以及树哈希子单元1312的具体实现方式可以参见上述图3所对应实施例中对步骤S103的描述,这里不再进行赘述。
请再参见图9,上述数据处理装置1,还包括:打包模块15、共识模块16以及更新模块17。
打包模块15,用于将交易数据打包进待上链子链区块;
共识模块16,用于在主链节点对零知识证明数据证明验证通过后,对待上链子链区块进行共识处理;
更新模块17,用于当待上链子链区块共识处理通过后,将子区块链网络的账本中的账户总状态数据,更新为待验证账户总状态数据。
其中,打包模块15、共识模块16以及更新模块17的具体实现方式可以参见上述图3所对应实施例中对可选实施例的描述,这里不再进行赘述。
本申请实施例中,子区块链网络的中继节点在执行针对目标子链账户的交易数据,得到交易执行结果后,可以获取子区块链网络中的账户总状态数据,然后根据交易执行结果和账户总状态数据,生成待验证账户总状态数据,再根据账户总状态数据以及待验证账户总状态数据,生成零知识证明数据;最后,中继节点将零知识证明数据以及与交易执行结果相关联的状态变更信息提交至主区块链网络的主链节点,主链节点在对零知识证明数据证明验证通过时,就可以根据状态变更信息变更目标主链账户的状态数据。其中,账户总状态数据包括至少两个子链账户的状态数据,至少两个子链账户包括目标子链账户;目标子链账户和目标主链账户相关联。通过本申请实施例提供的方法,将主区块链网络中的主链账户与子区块链网络中的子链账户关联,将针对目标主链账户的交易逻辑转为针对目标子链账户的交易数据,然后在子区块链网络的中继节点执行,主链节点通过验证中继节点执行交易数据后生成的零知识证明数据,验证通过后就可以根据状态变更信息更改主链账户的状态数据,节省了主链节点执行交易的时间,极大地提高了主区块链网络的TPS,另外,子区块链网络中与交易数据相关的执行数据不用提交至主区块链网络,也缓解了主区块链网络中的交易存储压力。
请参见图10,图10是本申请实施例提供的一种计算机设备的结构示意图。如图10所示,该计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图10所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在如图10所示的计算机设备1000中,网络接口1004可提供网络通讯网元;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
执行针对目标子链账户的交易数据,得到交易执行结果;中继节点属于子区块链网络;
获取子区块链网络中的账户总状态数据,根据交易执行结果和总账户状态数据,生成待验证账户总状态数据;账户总状态数据包括至少两个子链账户的状态数据,至少两个子链账户包括目标子链账户;
根据账户总状态数据以及待验证账户总状态数据,生成零知识证明数据;
将零知识证明数据以及与交易执行结果相关联的状态变更信息提交至主链节点,以使主链节点在对零知识证明数据证明验证通过时,根据状态变更信息变更目标主链账户的状态数据;目标子链账户和目标主链账户相关联;主链节点属于主区块链网络。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3任一个所对应实施例中对该数据处理方法的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且上述计算机可读存储介质中存储有前文提及的数据处理装置1所执行的计算机程序,且上述计算机程序包括程序指令,当上述处理器执行上述程序指令时,能够执行前文图3任一个所对应实施例中对上述数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
进一步地,请参见图11,图11是本申请实施例提供的另一种基于区块链的数据处理装置的结构示意图。上述数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该数据处理装置为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。如图11所示,该数据处理装置2可以包括:接收模块21、证明验证模块22以及变更模块23。
接收模块21,用于接收中继节点提交的零知识证明数据以及与交易执行结果相关联的状态变更信息;主链节点属于主区块链网络;中继节点属于子区块链网络;零知识证明数据是根据子区块链网络的账户总状态数据以及待验证账户总状态数据生成的;待验证账户总状态数据是根据交易执行结果和账户总状态数据生成;交易执行结果是中继节点执行针对目标子链账户的交易数据得到的;
证明验证模块22,用于调用证明合约对零知识证明数据进行证明验证,得到证明验证结果;
变更模块23,用于若证明验证结果为证明验证通过结果,则根据状态变更信息变更目标主链账户的状态数据;目标子链账户和目标主链账户相关联。
其中,接收模块21、证明验证模块22以及变更模块23的具体实现方式,可以参见上述图4所对应实施例中步骤S201-S203的描述,这里将不再进行赘述。
其中,目标主链账户的状态数据包括目标主链账户的链上状态数据和合约状态数据;链上状态数据用于表征目标主链账户在主区块链网络中所拥有且未锁定在资源锁定合约的链上虚拟资源;合约状态数据用于表征目标主链账户在主区块链网络中所拥有且已锁定在资源锁定合约的合约虚拟资源;
请再参见图11,变更模块23,包括:第一变更单元231以及第二变更单元232。
第一变更单元231,用于若交易数据属于第一交易业务类型,则根据状态变更信息,对目标主链账户的链上状态数据和合约状态数据进行状态变更;
第二变更单元232,用于若交易数据属于第二交易业务类型,则根据状态变更信息,对目标主链账户的合约状态数据进行状态变更。
其中,第一变更单元231以及第二变更单元232的具体实现方式,可以参见上述图4所对应实施例中步骤S203的描述,这里将不再进行赘述。
其中,第一交易业务类型为存储业务类型,状态变更信息包括用于执行存储业务的目标主链账户以及目标存储状态数据;
请再参见图11,第一变更单元231,包括:第一转移子单元2311以及存储变更子单元2312。
第一转移子单元2311,用于若交易数据属于存储业务类型,则在目标主链账户对应的链上虚拟资源中,获取目标存储状态数据对应的虚拟资源,作为存储虚拟资源;
第一转移子单元2311,还用于将存储虚拟资源转移至资源锁定合约进行锁定;
存储变更子单元2312,用于将链上状态数据与目标存储状态数据进行相减,得到状态变更后的链上状态数据;
存储变更子单元2312,还用于将合约状态数据与目标存储状态数据进行相加,得到状态变更后的合约状态数据。
其中,第一转移子单元2311以及存储变更子单元2312的具体实现方式,可以参见上述图4所对应实施例中步骤S203的描述,这里将不再进行赘述。
其中,第一交易业务类型为提取业务类型,状态变更信息包括用于执行提取业务的目标主链账户以及目标提取状态数据;
请再参见图11,第一变更单元231,包括:第二转移子单元2313以及提取变更子单元2314。
第二转移子单元2313,用于若交易数据属于提取业务类型,则在目标主链账户对应的合约虚拟资源中,获取目标提取状态数据对应的虚拟资源,作为提取虚拟资源;
第二转移子单元2313,还用于将提取虚拟资源从资源锁定合约中转出;
提取变更子单元2314,用于将链上状态数据与目标提取状态数据进行相加,得到状态变更后的链上状态数据;
提取变更子单元2314,还用于将合约状态数据与目标提取状态数据进行相减,得到状态变更后的合约状态数据。
其中,第二转移子单元2313以及提取变更子单元2314的具体实现方式,可以参见上述图4所对应实施例中步骤S203的描述,这里将不再进行赘述。
其中,第二交易业务类型为转移业务类型,状态变更信息包括用于执行转移业务的目标主链账户以及目标转移状态数据;目标主链账户包括第一主链账户和第二主链账户;
请再参见图11,第二变更单元232,包括:相减子单元2321以及相加子单元2322。
相减子单元2321,用于若交易数据属于转移业务类型,则将第一主链账户的合约状态数据与目标转移状态数据进行相减,得到第一主链账户对应的状态变更后的合约状态数据;
相加子单元2322,用于将第二主链账户的合约状态数据与目标转移状态数据进行相加,得到第二主链账户对应的状态变更后的合约状态数据。
其中,相减子单元2321以及相加子单元2322的具体实现方式,可以参见上述图4所对应实施例中步骤S203的描述,这里将不再进行赘述。
请再参见图11,上述数据处理装置2,还包括:地址创建模块24以及账户创建模块25。
地址创建模块24,用于接收业务节点发送的针对目标主链账户的合约地址创建请求;
地址创建模块24,还用于根据合约地址创建请求在资源锁定合约中创建与目标主链账户绑定的合约地址,作为目标合约地址;目标合约地址用于存储目标主链账户的合约状态数据;
账户创建模块25,用于根据合约地址创建请求,向中继节点生成账户地址创建请求,以使中继节点根据账户地址创建请求在子区块链网络中创建与目标主链账户相关联的目标子链账户绑定的子链账户地址;子链账户地址用于存储目标子链账户的状态数据。
其中,地址创建模块24以及账户创建模块25的具体实现方式,可以参见上述图4所对应实施例中可选描述,这里将不再进行赘述。
本申请实施例中,主区块链网络中的虚拟资源可以转移到资源锁定合约中进行存储,存储在资源锁定合约中的虚拟资源将作为合约虚拟资源,主区块链网络中针对合约虚拟资源的交易数据的执行过程均转移到子区块链网络中执行,得到交易执行结果,主链节点只需接收中继节点提交的零知识证明数据以及与交易执行结果相关联的状态变更信息,然后调用证明合约对零知识证明数据进行证明验证,得到证明验证结果,在证明验证结果为证明验证通过结果,则根据状态变更信息变更目标主链账户的状态数据即可,节省了主链节点执行交易的时间,极大地提高了主区块链网络的TPS,且子区块链网络中与交易数据相关的执行数据不用提交至主区块链网络,也缓解了主区块链网络中的交易存储压力。另外,主区块链网络中未存储在资源锁定合约中的链上虚拟资源可以正常交易,极大地提高了主区块链网络对虚拟资源交易的灵活性,并加快了交易处理的速度。
进一步地,请参见图12,图12是本申请实施例提供的另一种计算机设备的结构示意图。如图12所示,上述图11所对应实施例中的数据处理装置2可以应用于上述计算机设备2000,上述计算机设备2000可以包括:处理器2001,网络接口2004和存储器2005,此外,上述计算机设备2000还包括:用户接口2003,和至少一个通信总线2002。其中,通信总线2002用于实现这些组件之间的连接通信。其中,用户接口2003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口2003还可以包括标准的有线接口、无线接口。网络接口2004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器2005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器2005可选的还可以是至少一个位于远离前述处理器2001的存储装置。如图12所示,作为一种计算机可读存储介质的存储器2005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图12所示的计算机设备2000中,网络接口2004可提供网络通讯功能;而用户接口2003主要用于为用户提供输入的接口;而处理器2001可以用于调用存储器2005中存储的设备控制应用程序,以实现:
接收中继节点提交的零知识证明数据以及与交易执行结果相关联的状态变更信息;主链节点属于主区块链网络;中继节点属于子区块链网络;零知识证明数据是根据子区块链网络的账户总状态数据以及待验证账户总状态数据生成的;待验证账户总状态数据是根据交易执行结果和账户总状态数据生成;交易执行结果是中继节点执行针对目标子链账户的交易数据得到的;
调用证明合约对零知识证明数据进行证明验证,得到证明验证结果;
若证明验证结果为证明验证通过结果,则根据状态变更信息变更目标主链账户的状态数据;目标子链账户和目标主链账户相关联。
应当理解,本申请实施例中所描述的计算机设备2000可执行前文各个实施例中对该访问控制方法的描述,也可执行前文图11所对应实施例中对该数据处理装置2的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且上述计算机可读存储介质中存储有前文提及的数据处理装置2所执行的计算机程序,当上述处理器加载并执行上述计算机程序时,能够执行前文任一实施例对上述访问控制方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
上述计算机可读存储介质可以是前述任一实施例提供的数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
此外,这里需要指出的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前文图3、图4任一个所对应实施例提供的方法。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照网元一般性地描述了各示例的组成及步骤。这些网元究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的网元,但是这种实现不应认为超出本申请的范围。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (15)
1.一种基于区块链的数据处理方法,其特征在于,包括:
中继节点执行针对目标子链账户的交易数据,得到交易执行结果;所述中继节点属于子区块链网络;
获取所述子区块链网络中的账户总状态数据,根据所述交易执行结果和所述账户总状态数据,生成待验证账户总状态数据;所述账户总状态数据包括至少两个子链账户的状态数据,所述至少两个子链账户包括所述目标子链账户;
根据所述账户总状态数据以及所述待验证账户总状态数据,生成零知识证明数据;
将所述零知识证明数据以及与所述交易执行结果相关联的状态变更信息提交至主链节点,以使所述主链节点在对所述零知识证明数据证明验证通过时,根据所述状态变更信息变更目标主链账户的状态数据;所述目标子链账户和所述目标主链账户相关联;所述主链节点属于主区块链网络。
2.根据权利要求1所述的方法,其特征在于,所述根据所述账户总状态数据以及所述待验证账户总状态数据,生成零知识证明数据,包括:
对所述账户总状态数据进行哈希处理,得到第一状态哈希值;
对所述待验证账户总状态数据进行哈希处理,得到第二状态哈希值;
根据所述账户总状态数据和所述待验证账户总状态数据,确定所述至少两个子链账户分别对应的状态数据变化值;
将所述第一状态哈希值、所述第二状态哈希值以及所述状态数据变化值输入零知识证明电路,得到零知识证明数据。
3.根据权利要求1所述的方法,其特征在于,所述对所述账户总状态数据进行哈希处理,得到第一状态哈希值,包括:
对所述账户总状态数据中的所述至少两个子链账户的状态数据分别进行哈希运算,得到所述至少两个子链账户分别对应的账户状态哈希值;
根据状态默克尔树路径对所述至少两个子链账户分别对应的账户状态哈希值进行哈希运算,得到根哈希值,将所述根哈希值确定为第一状态哈希值。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述交易数据打包进待上链子链区块;
在主链节点对所述零知识证明数据证明验证通过后,对所述待上链子链区块进行共识处理;
当所述待上链子链区块共识处理通过后,将所述子区块链网络的账本中的所述账户总状态数据,更新为所述待验证账户总状态数据。
5.一种基于区块链的数据处理方法,其特征在于,包括:
主链节点接收中继节点提交的零知识证明数据以及与交易执行结果相关联的状态变更信息;所述主链节点属于主区块链网络;所述中继节点属于子区块链网络;所述零知识证明数据是根据所述子区块链网络的账户总状态数据以及待验证账户总状态数据生成的;所述待验证账户总状态数据是根据所述交易执行结果和所述账户总状态数据生成;所述交易执行结果是所述中继节点执行针对目标子链账户的交易数据得到的;
调用证明合约对所述零知识证明数据进行证明验证,得到证明验证结果;
若所述证明验证结果为证明验证通过结果,则根据所述状态变更信息变更目标主链账户的状态数据;所述目标子链账户和所述目标主链账户相关联。
6.根据权利要求5所述的方法,其特征在于,所述目标主链账户的状态数据包括所述目标主链账户的链上状态数据和合约状态数据;所述链上状态数据用于表征所述目标主链账户在所述主区块链网络中所拥有且未锁定在资源锁定合约的链上虚拟资源;所述合约状态数据用于表征所述目标主链账户在所述主区块链网络中所拥有且已锁定在所述资源锁定合约的合约虚拟资源;
所述根据所述状态变更信息变更目标主链账户的状态数据,包括:
若所述交易数据属于第一交易业务类型,则根据所述状态变更信息,对所述目标主链账户的链上状态数据和合约状态数据进行状态变更;
若所述交易数据属于第二交易业务类型,则根据所述状态变更信息,对所述目标主链账户的合约状态数据进行状态变更。
7.根据权利要求6所述的方法,其特征在于,所述第一交易业务类型为存储业务类型,所述状态变更信息包括用于执行存储业务的所述目标主链账户以及目标存储状态数据;
所述若所述交易数据属于第一交易业务类型,则根据所述状态变更信息,对所述目标主链账户的链上状态数据和合约状态数据进行状态变更,包括:
若所述交易数据属于所述存储业务类型,则在所述目标主链账户对应的所述链上虚拟资源中,获取所述目标存储状态数据对应的虚拟资源,作为存储虚拟资源;
将所述存储虚拟资源转移至所述资源锁定合约进行锁定;
将所述链上状态数据与所述目标存储状态数据进行相减,得到状态变更后的链上状态数据;
将所述合约状态数据与所述目标存储状态数据进行相加,得到状态变更后的合约状态数据。
8.根据权利要求6所述的方法,其特征在于,所述第一交易业务类型为提取业务类型,所述状态变更信息包括用于执行提取业务的所述目标主链账户以及目标提取状态数据;
所述若所述交易数据属于第一交易业务类型,则根据所述状态变更信息,对所述目标主链账户的链上状态数据和合约状态数据进行状态变更,包括:
若所述交易数据属于所述提取业务类型,则在所述目标主链账户对应的所述合约虚拟资源中,获取所述目标提取状态数据对应的虚拟资源,作为提取虚拟资源;
将所述提取虚拟资源从所述资源锁定合约中转出;
将所述链上状态数据与所述目标提取状态数据进行相加,得到状态变更后的链上状态数据;
将所述合约状态数据与所述目标提取状态数据进行相减,得到状态变更后的合约状态数据。
9.根据权利要求6所述的方法,其特征在于,所述第二交易业务类型为转移业务类型,所述状态变更信息包括用于执行转移业务的所述目标主链账户以及目标转移状态数据;所述目标主链账户包括第一主链账户和第二主链账户;
若所述交易数据属于第二交易业务类型,则根据所述状态变更信息,对所述目标主链账户的合约状态数据进行状态变更,包括:
若所述交易数据属于所述转移业务类型,则将所述第一主链账户的合约状态数据与所述目标转移状态数据进行相减,得到所述第一主链账户对应的状态变更后的合约状态数据;
将所述第二主链账户的合约状态数据与所述目标转移状态数据进行相加,得到所述第二主链账户对应的状态变更后的合约状态数据。
10.根据权利要求6所述的方法,其特征在于,还包括:
接收业务节点发送的针对目标主链账户的合约地址创建请求;
根据所述合约地址创建请求在所述资源锁定合约中创建与所述目标主链账户绑定的合约地址,作为目标合约地址;所述目标合约地址用于存储所述目标主链账户的合约状态数据;
根据所述合约地址创建请求,向中继节点生成账户地址创建请求,以使所述中继节点根据所述账户地址创建请求在所述子区块链网络中创建与所述目标主链账户相关联的目标子链账户绑定的子链账户地址;所述子链账户地址用于存储所述目标子链账户的状态数据。
11.一种基于区块链的数据处理装置,其特征在于,包括:
执行模块,用于执行针对目标子链账户的交易数据,得到交易执行结果;所述中继节点属于子区块链网络;
状态生成模块,用于获取所述子区块链网络中的账户总状态数据,根据所述交易执行结果和所述总账户状态数据,生成待验证账户总状态数据;所述账户总状态数据包括至少两个子链账户的状态数据,所述至少两个子链账户包括所述目标子链账户;
证明生成模块,用于根据所述账户总状态数据以及所述待验证账户总状态数据,生成零知识证明数据;
提交模块,用于将所述零知识证明数据以及与所述交易执行结果相关联的状态变更信息提交至主链节点,以使所述主链节点在对所述零知识证明数据证明验证通过时,根据所述状态变更信息变更目标主链账户的状态数据;所述目标子链账户和所述目标主链账户相关联;所述主链节点属于主区块链网络。
12.一种基于区块链的数据处理装置,其特征在于,包括:
接收模块,用于接收中继节点提交的零知识证明数据以及与交易执行结果相关联的状态变更信息;所述主链节点属于主区块链网络;所述中继节点属于子区块链网络;所述零知识证明数据是根据所述子区块链网络的账户总状态数据以及待验证账户总状态数据生成的;所述待验证账户总状态数据是根据所述交易执行结果和所述账户总状态数据生成;所述交易执行结果是所述中继节点执行针对目标子链账户的交易数据得到的;
证明验证模块,用于调用证明合约对所述零知识证明数据进行证明验证,得到证明验证结果;
变更模块,用于若所述证明验证结果为证明验证通过结果,则根据所述状态变更信息变更目标主链账户的状态数据;所述目标子链账户和所述目标主链账户相关联。
13.一种计算机设备,其特征在于,包括:处理器、存储器以及网络接口;
所述处理器与所述存储器、所述网络接口相连,其中,所述网络接口用于提供数据通信功能,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行权利要求1-10任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行权利要求1-10任一项所述的方法。
15.一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时,可以执行权利要求1-10任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210047963.1A CN116488818A (zh) | 2022-01-17 | 2022-01-17 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
PCT/CN2022/131296 WO2023134291A1 (zh) | 2022-01-17 | 2022-11-11 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
US18/484,749 US20240039727A1 (en) | 2022-01-17 | 2023-10-11 | Blockchain-based data processing method and apparatus, device, and readable storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210047963.1A CN116488818A (zh) | 2022-01-17 | 2022-01-17 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116488818A true CN116488818A (zh) | 2023-07-25 |
Family
ID=87216456
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210047963.1A Pending CN116488818A (zh) | 2022-01-17 | 2022-01-17 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240039727A1 (zh) |
CN (1) | CN116488818A (zh) |
WO (1) | WO2023134291A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117056084A (zh) * | 2023-10-09 | 2023-11-14 | 腾讯科技(深圳)有限公司 | 基于分层区块链网络的数据处理方法、装置、设备及介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118013535B (zh) * | 2024-04-10 | 2024-08-09 | 中国移动紫金(江苏)创新研究院有限公司 | 区块链虚拟机的安全探测方法及其相关设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109508968B (zh) * | 2018-10-25 | 2020-12-18 | 常州唯康信息科技有限公司 | 区块链系统以及其控制方法 |
US20200202343A1 (en) * | 2018-12-20 | 2020-06-25 | Paypal, Inc. | Blockchain-based suspicious activity verification and recording |
CN111523150B (zh) * | 2020-04-20 | 2024-02-09 | 中国工商银行股份有限公司 | 基于区块链的文档编辑方法、装置及系统 |
CN113269543A (zh) * | 2021-05-24 | 2021-08-17 | 缀初网络技术(上海)有限公司 | 一种用于区块链的多层混合交易扩容系统及方法 |
CN113660092B (zh) * | 2021-07-30 | 2024-01-23 | 国网天津市电力公司 | 一种基于零知识证明的电力数据上传系统和方法 |
-
2022
- 2022-01-17 CN CN202210047963.1A patent/CN116488818A/zh active Pending
- 2022-11-11 WO PCT/CN2022/131296 patent/WO2023134291A1/zh unknown
-
2023
- 2023-10-11 US US18/484,749 patent/US20240039727A1/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117056084A (zh) * | 2023-10-09 | 2023-11-14 | 腾讯科技(深圳)有限公司 | 基于分层区块链网络的数据处理方法、装置、设备及介质 |
CN117056084B (zh) * | 2023-10-09 | 2023-12-08 | 腾讯科技(深圳)有限公司 | 基于分层区块链网络的数据处理方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023134291A1 (zh) | 2023-07-20 |
US20240039727A1 (en) | 2024-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112214780B (zh) | 一种数据处理方法、装置、智能设备及存储介质 | |
CN111445333B (zh) | 区块生成方法、装置、计算机设备以及存储介质 | |
CN112632629B (zh) | 基于区块链的投票管理方法、装置、介质及电子设备 | |
US20240039727A1 (en) | Blockchain-based data processing method and apparatus, device, and readable storage medium | |
CN112613877B (zh) | 应用于区块链网络的智能合约触发方法、装置及相关设备 | |
CN111949531B (zh) | 区块链网络的测试方法、装置、介质及电子设备 | |
CN113342838B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN115701078B (zh) | 跨链交易处理方法、装置、电子设备以及存储介质 | |
CN114567643A (zh) | 跨区块链的数据流转方法、装置及相关设备 | |
CN116975901A (zh) | 基于区块链的身份验证方法、装置、设备、介质及产品 | |
CN115114372A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN113987062A (zh) | 一种数据上链存储方法、系统、装置以及存储介质 | |
Xing et al. | Talaria: A framework for simulation of permissioned blockchains for logistics and beyond | |
CN116827957A (zh) | 基于多区块链的信息处理方法、装置、设备以及介质 | |
CN112926981B (zh) | 用于区块链的交易信息处理方法、装置、介质及电子设备 | |
CN118467626A (zh) | 一种数据处理方法、装置、设备以及可读存储介质 | |
CN117574320B (zh) | 数据处理方法、装置、计算机可读介质及电子设备 | |
CN117540356B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN117372016A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN116957568A (zh) | 一种跨链交易处理方法、装置、设备及存储介质 | |
CN117807157A (zh) | 区块链的交易执行方法、装置、程序产品、设备和介质 | |
CN117335956A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN118822529A (zh) | 区块链中的交易处理方法、装置、设备以及介质 | |
CN117459237A (zh) | 一种基于区块链的数据处理方法、设备以及可读存储介质 | |
CN118396751A (zh) | 资产证明方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40088005 Country of ref document: HK |