CN117056084B - 基于分层区块链网络的数据处理方法、装置、设备及介质 - Google Patents
基于分层区块链网络的数据处理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117056084B CN117056084B CN202311299968.4A CN202311299968A CN117056084B CN 117056084 B CN117056084 B CN 117056084B CN 202311299968 A CN202311299968 A CN 202311299968A CN 117056084 B CN117056084 B CN 117056084B
- Authority
- CN
- China
- Prior art keywords
- transaction
- block
- sub
- node
- service
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 29
- 238000012795 verification Methods 0.000 claims abstract description 518
- 238000012790 confirmation Methods 0.000 claims abstract description 142
- 238000000034 method Methods 0.000 claims abstract description 140
- 238000004806 packaging method and process Methods 0.000 claims abstract description 79
- 238000012545 processing Methods 0.000 claims description 233
- 230000006870 function Effects 0.000 claims description 106
- 238000004364 calculation method Methods 0.000 claims description 72
- 230000008569 process Effects 0.000 claims description 61
- 238000003860 storage Methods 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 16
- 238000005538 encapsulation Methods 0.000 claims description 15
- 238000001514 detection method Methods 0.000 claims description 10
- 230000001360 synchronised effect Effects 0.000 claims description 2
- 230000002776 aggregation Effects 0.000 description 43
- 238000004220 aggregation Methods 0.000 description 43
- 238000010586 diagram Methods 0.000 description 31
- 239000010410 layer Substances 0.000 description 20
- 238000007726 management method Methods 0.000 description 20
- 238000010200 validation analysis Methods 0.000 description 20
- 238000012856 packing Methods 0.000 description 19
- 230000003993 interaction Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 239000002699 waste material Substances 0.000 description 5
- 230000008520 organization Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 239000002355 dual-layer Substances 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000012858 packaging process Methods 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- 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)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Finance (AREA)
- Computer Hardware Design (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了基于分层区块链网络的数据处理方法、装置、设备及介质,可应用于区块链技术领域。其中方法包括:对子链业务交易进行打包,得到第一交易汇总区块;记录执行子链业务交易的业务状态读数据和第一子链交易执行结果;确定第一交易汇总区块数据,将第一交易汇总区块数据上传给共识节点;共识节点为第一交易汇总区块配置第一区块锁定时长,且生成区块待确认事件;验证节点生成第一零知识证明;共识节点在对第一零知识证明进行第一证明验证成功时,生成区块确认成功信息;在接收到区块确认成功信息时,确认将第一交易汇总区块写入业务子链上。采用本申请实施例,有助于提升对交易汇总区块的区块确认效率。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及基于分层区块链网络的数据处理方法、装置、设备及介质。
背景技术
目前,为了能够实现对区块链的扩容,可以在分层区块链网络中,通过链下(即业务主链之外)的节点设备将大量的交易打包成一个区块,以在链下对该打包得到的区块进行局部共识。
然而,发明人在实践中发现,由于在业务网络中进行局部共识需要消耗一定的局部共识时间,以至于会降低在链下打包得到区块的出块效率。另外,在由业务网络和共识网络所构成的分层区块链网络中,为确保链下打包得到的区块的合法性和有效性,局部共识节点还需要进一步向共识网络中的共识节点发送打包得到的区块,以使得共识节点可以对链下打包的区块进行确认,如由共识节点判定链下打包的区块是否为业务主链上所记载的已确认区块高度内的区块,若判定为否,则需要共识节点对该链下打包得到的区块进一步进行区块确认,如执行该打包得到的区块中的交易进行区块确认。但是,当共识节点所需要处理的主链共识业务较多,且需要进行区块确认的区块较多时,则需要消耗较长的时间来进行区块确认,从而导致区块链节点对链下打包得到的区块的确认效率较低。
发明内容
本申请实施例提供了一种基于分层区块链网络的数据处理方法、装置、设备及介质,有助于提升链下打包得到交易汇总区块的效率,且提升共识节点对交易汇总区块的区块确认效率。
本申请实施例一方面提供了一种基于分层区块链网络的数据处理方法,分层区块链网络中包括业务网络和共识网络;业务网络中部署有汇总节点和业务节点,汇总节点中部署有子链交易汇总服务节点;共识网络中部署有共识节点和验证节点,共识节点部署有子链交易汇总服务节点对应的汇总业务处理数据;方法由汇总节点执行,方法包括:
获取待写入业务网络的业务子链上的子链业务交易,调用子链交易汇总服务节点对子链业务交易进行打包,得到第一交易汇总区块;
调用子链交易汇总服务节点执行第一交易汇总区块,并记录执行第一交易汇总区块中的子链业务交易的业务状态读数据和第一子链交易执行结果;
对第一交易汇总区块、子链业务交易的业务状态读数据和第一子链交易执行结果进行数据封装,得到第一交易汇总区块数据;
将第一交易汇总区块数据通过业务节点上传给共识节点;共识节点用于调用汇总业务处理数据获取第一交易汇总区块,为第一交易汇总区块配置第一区块锁定时长,且生成第一交易汇总区块的区块待确认事件,区块待确认事件用于指示验证节点基于第一交易汇总区块和子链业务交易的业务状态读数据,生成第一零知识证明,第一零知识证明用于指示共识节点在第一区块锁定时长内,基于第一交易汇总区块数据对第一零知识证明进行第一证明验证,且在第一证明验证成功时,生成第一交易汇总区块的区块确认成功信息;
在接收到共识节点返回的区块确认成功信息时,基于区块确认成功信息确认将第一交易汇总区块写入业务子链上。
本申请实施例一方面提供了一种基于分层区块链网络的数据处理方法,分层区块链网络中包括业务网络和共识网络;业务网络中部署有汇总节点和业务节点,汇总节点中部署有子链交易汇总服务节点;共识网络中部署有共识节点和验证节点,共识节点部署有子链交易汇总服务节点对应的汇总业务处理数据;方法由共识节点执行,方法包括:
获取与汇总节点相关联的第一交易汇总区块数据;第一交易汇总区块数据是由汇总节点通过业务节点所上传的;第一交易汇总区块数据是对第一交易汇总区块、子链业务交易的业务状态读数据和子链业务交易的第一子链交易执行结果进行数据封装所得到的;子链业务交易为汇总节点所获取到的待写入业务网络的业务子链的交易;第一交易汇总区块是由汇总节点调用子链交易汇总服务节点对子链业务交易进行打包得到的;子链业务交易的业务状态读数据和子链业务交易的第一子链交易执行结果是汇总节点调用子链交易汇总服务节点执行第一交易汇总区块时所记录的;
调用汇总业务处理数据获取第一交易汇总区块,为第一交易汇总区块配置第一区块锁定时长,且生成第一交易汇总区块的区块待确认事件;区块待确认事件用于指示验证节点基于第一交易汇总区块和子链业务交易的业务状态读数据,生成第一零知识证明;
在第一区块锁定时长内时,基于第一交易汇总区块数据确定用于验证第一零知识证明的验证参数,通过验证参数和第一零知识证明所携带的证明参数,对第一零知识证明进行第一证明验证,在第一证明验证成功时,得到第一交易汇总区块的区块确认成功信息;
将区块确认成功信息返回至汇总节点,以使汇总节点基于区块确认成功信息确认将第一交易汇总区块写入业务子链上。
本申请实施例一方面提供了一种基于分层区块链网络的数据处理方法,分层区块链网络中包括业务网络和共识网络;业务网络中部署有汇总节点和业务节点,汇总节点中部署有子链交易汇总服务节点;共识网络中部署有共识节点和验证节点,共识节点部署有子链交易汇总服务节点对应的汇总业务处理数据;方法由验证节点执行,方法包括:
在探测到共识节点生成的区块待确认事件时,基于区块待确认事件,从共识节点的汇总业务处理数据中获取第一交易汇总区块和第一交易汇总区块中的子链业务交易的业务状态读数据;区块待确认事件是共识节点在调用汇总业务处理数据获取到第一交易汇总区块数据中的第一交易汇总区块,且为第一交易汇总区块配置第一区块锁定时长时生成的;第一交易汇总区块数据是对第一交易汇总区块、第一交易汇总区块中的子链业务交易的业务状态读数据和子链业务交易的第一子链交易执行结果进行数据封装得到的;子链业务交易为汇总节点所获取到的待写入业务网络的业务子链的交易;第一交易汇总区块是由汇总节点调用子链交易汇总服务节点对子链业务交易进行打包得到的;子链业务交易的业务状态读数据和第一子链交易执行结果是汇总节点调用子链交易汇总服务节点执行第一交易汇总区块时所记录的;
通过验证节点对第一交易汇总区块和子链业务交易的业务状态读数据进行证明计算处理,得到第一交易汇总区块的第一零知识证明;
将第一交易汇总区块的第一零知识证明发送至共识节点,共识节点用于在第一区块锁定时长内时,基于第一交易汇总区块数据对第一零知识证明进行第一证明验证,且在第一证明验证成功时,生成第一交易汇总区块的区块确认成功信息,将区块确认成功信息返回至汇总节点;区块确认成功信息用于指示汇总节点基于区块确认成功信息确认将第一交易汇总区块写入业务子链上。
本申请实施例一方面提供了一种基于分层区块链网络的数据处理装置,分层区块链网络中包括业务网络和共识网络;业务网络中部署有汇总节点和业务节点,汇总节点中部署有子链交易汇总服务节点;共识网络中部署有共识节点和验证节点,共识节点部署有子链交易汇总服务节点对应的汇总业务处理数据;装置由汇总节点运行,装置包括:
交易打包模块,用于获取待写入业务网络的业务子链上的子链业务交易,调用子链交易汇总服务节点对子链业务交易进行打包,得到第一交易汇总区块;
区块执行模块,用于调用子链交易汇总服务节点执行第一交易汇总区块,并记录执行第一交易汇总区块中的子链业务交易的业务状态读数据和第一子链交易执行结果;
数据生成模块,用于对第一交易汇总区块、子链业务交易的业务状态读数据和第一子链交易执行结果进行数据封装,得到第一交易汇总区块数据;
数据上传模块,用于将第一交易汇总区块数据通过业务节点上传给共识节点;共识节点用于调用汇总业务处理数据获取第一交易汇总区块,为第一交易汇总区块配置第一区块锁定时长,且生成第一交易汇总区块的区块待确认事件,区块待确认事件用于指示验证节点基于第一交易汇总区块和子链业务交易的业务状态读数据,生成第一零知识证明,第一零知识证明用于指示共识节点在第一区块锁定时长内,基于第一交易汇总区块数据对第一零知识证明进行第一证明验证,且在第一证明验证成功时,生成第一交易汇总区块的区块确认成功信息;
成功信息接收模块,用于在接收到共识节点返回的区块确认成功信息时,基于区块确认成功信息确认将第一交易汇总区块写入业务子链上。
本申请实施例一方面提供了一种基于分层区块链网络的数据处理装置,分层区块链网络中包括业务网络和共识网络;业务网络中部署有汇总节点和业务节点,汇总节点中部署有子链交易汇总服务节点;共识网络中部署有共识节点和验证节点,共识节点部署有子链交易汇总服务节点对应的汇总业务处理数据;装置由共识节点运行,装置包括:
第一数据获取模块,用于获取与汇总节点相关联的第一交易汇总区块数据;第一交易汇总区块数据是由汇总节点通过业务节点所上传的;第一交易汇总区块数据是对第一交易汇总区块、子链业务交易的业务状态读数据和子链业务交易的第一子链交易执行结果进行数据封装所得到的;子链业务交易为汇总节点所获取到的待写入业务网络的业务子链的交易;第一交易汇总区块是由汇总节点调用子链交易汇总服务节点对子链业务交易进行打包得到的;子链业务交易的业务状态读数据和子链业务交易的第一子链交易执行结果是汇总节点调用子链交易汇总服务节点执行第一交易汇总区块时所记录的;
区块数据处理模块,用于调用汇总业务处理数据获取第一交易汇总区块,为第一交易汇总区块配置第一区块锁定时长,且生成第一交易汇总区块的区块待确认事件;区块待确认事件用于指示验证节点基于第一交易汇总区块和子链业务交易的业务状态读数据,生成第一零知识证明;
第一证明验证模块,用于在第一区块锁定时长内时,基于第一交易汇总区块数据确定用于验证第一零知识证明的验证参数,通过验证参数和第一零知识证明所携带的证明参数,对第一零知识证明进行第一证明验证,在第一证明验证成功时,得到第一交易汇总区块的区块确认成功信息;
信息返回模块,用于将区块确认成功信息返回至汇总节点,以使汇总节点基于区块确认成功信息确认将第一交易汇总区块写入业务子链上。
本申请实施例一方面提供了一种基于分层区块链网络的数据处理装置,分层区块链网络中包括业务网络和共识网络;业务网络中部署有汇总节点和业务节点,汇总节点中部署有子链交易汇总服务节点;共识网络中部署有共识节点和验证节点,共识节点部署有子链交易汇总服务节点对应的汇总业务处理数据;装置由验证节点运行,装置包括:
事件探测模块,用于在探测到共识节点生成的区块待确认事件时,基于区块待确认事件,从共识节点的汇总业务处理数据中获取第一交易汇总区块和第一交易汇总区块中的子链业务交易的业务状态读数据;区块待确认事件是共识节点在调用汇总业务处理数据获取到第一交易汇总区块数据中的第一交易汇总区块,且为第一交易汇总区块配置第一区块锁定时长时生成的;第一交易汇总区块数据是对第一交易汇总区块、第一交易汇总区块中的子链业务交易的业务状态读数据和子链业务交易的第一子链交易执行结果进行数据封装得到的;子链业务交易为汇总节点所获取到的待写入业务网络的业务子链的交易;第一交易汇总区块是由汇总节点调用子链交易汇总服务节点对子链业务交易进行打包得到的;子链业务交易的业务状态读数据和第一子链交易执行结果是汇总节点调用子链交易汇总服务节点执行第一交易汇总区块时所记录的;
证明生成模块,用于对第一交易汇总区块和子链业务交易的业务状态读数据进行证明计算处理,得到第一交易汇总区块的第一零知识证明;
证明发送模块,用于将第一交易汇总区块的第一零知识证明发送至共识节点,共识节点用于在第一区块锁定时长内时,基于第一交易汇总区块数据对第一零知识证明进行第一证明验证,且在第一证明验证成功时,生成第一交易汇总区块的区块确认成功信息,将区块确认成功信息返回至汇总节点;区块确认成功信息用于指示汇总节点基于区块确认成功信息确认将第一交易汇总区块写入业务子链上。
本申请实施例一方面提供了一种基于分层区块链网络的数据处理系统,数据处理系统中包括汇总节点、共识节点和验证节点;分层区块链网络中包括业务网络和共识网络;业务网络中部署有汇总节点和业务节点,汇总节点中部署有子链交易汇总服务节点;共识网络中部署有共识节点和验证节点,共识节点部署有子链交易汇总服务节点对应的汇总业务处理数据;
汇总节点,用于获取待写入业务网络的业务子链上的子链业务交易,调用子链交易汇总服务节点对子链业务交易进行打包,得到第一交易汇总区块;调用子链交易汇总服务节点执行第一交易汇总区块,并记录执行第一交易汇总区块中的子链业务交易的业务状态读数据和第一子链交易执行结果;对第一交易汇总区块、子链业务交易的业务状态读数据和第一子链交易执行结果进行数据封装,得到第一交易汇总区块数据,并将第一交易汇总区块数据通过业务节点上传给共识节点;
共识节点,用于获取与汇总节点相关联的第一交易汇总区块数据,调用汇总业务处理数据获取第一交易汇总区块,为第一交易汇总区块配置第一区块锁定时长,且生成第一交易汇总区块的区块待确认事件;
验证节点,用于在探测到共识节点生成的区块待确认事件时,基于区块待确认事件,从共识节点的汇总业务处理数据中获取第一交易汇总区块和第一交易汇总区块中的子链业务交易的业务状态读数据;通过验证节点对第一交易汇总区块和子链业务交易的业务状态读数据进行证明计算处理,得到第一交易汇总区块的第一零知识证明;将第一交易汇总区块的第一零知识证明发送至共识节点,
共识节点,用于在第一区块锁定时长内时,基于第一交易汇总区块数据确定用于验证第一零知识证明的验证参数,通过验证参数和第一零知识证明所携带的证明参数,对第一零知识证明进行第一证明验证,在第一证明验证成功时,得到第一交易汇总区块的区块确认成功信息,并将区块确认成功信息返回至汇总节点;
汇总节点,还用于在接收到共识节点返回的区块确认成功信息时,基于区块确认成功信息确认将第一交易汇总区块写入业务子链上。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例提供的方法。
采用本申请实施例,能够在包括业务网络和共识网络的分层区块链网络中,基于业务网络中汇总节点进行打包得到区块(如第一交易汇总区块),在将链下打包得到的区块(即共识网络之外的业务网络侧进行打包得到的区块)的区块数据(如第一交易汇总区块数据)提交到共识网络中的共识节点后,再由共识网络中独立于共识节点的验证节点,异步为链下打包得到的区块生成零知识证明,进而共识节点通过零知识证明来对链下打包的区块的合法性进行快速验证。对于用于打包区块的汇总节点来说,由于链下打包得到的区块的零知识证明的计算过程是在共识网络中异步完成的,汇总节点只需要进行区块打包,而不需要通过额外的复杂机制来保障链下打包的区块的合法性,由此提升了链下的汇总节点进行打包的效率。另外,由于共识节点不需要直接通过执行链下打包的区块中的每个交易去对区块进行验证,而是只需要对零知识证明进行验证,就可以完成对链下打包得到的区块的确认,从而可以减少共识节点的计算资源的消耗。并且,共识节点通过对零知识证明的验证,可以更快地对区块进行确认。所以,对于整个区块链系统而言,本发明可以优化整个区块链系统的对于区块的确认效率,进而提升区块链系统的吞吐量。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种分层区块链网络的结构示意图;
图2是本申请实施例还提供一种基于分层区块链网络的系统架构示意图;
图3是本申请实施例提供的一种基于分层区块链网络的数据处理场景示意图;
图4是本申请实施例提供的一种基于分层区块链网络的数据处理方法的流程示意图;
图5是本申请实施例提供的一种交易汇总区块的结构示意图;
图6是本申请实施例提供的一种区块回滚示意图;
图7是本申请实施例提供的另一种基于分层区块链网络的数据处理方法的流程示意图;
图8是本申请实施例提供的一种区块挑战的交互场景示意图;
图9是本申请实施例提供的另一种区块挑战的交互场景示意图;
图10是本申请实施例提供的一种区块确认流程的流程示意图;
图11是本申请实施例提供的再一种基于分层区块链网络的数据处理方法的流程示意图;
图12是本申请实施例提供的一种基于双层区块链的场景交互示意图;
图13是本申请实施例提供的一种基于分层区块链网络的数据处理方法的交互时序图;
图14是本申请实施例提供的一种数据交互示意图;
图15是本申请实施例提供的一种区块链电子票据场景下的系统架构图;
图16是本申请实施例提供的一种基于分层区块链网络的数据处理装置1的结构示意图;
图17是本申请实施例提供的一种基于分层区块链网络的数据处理装置2的结构示意图;
图18是本申请实施例提供的一种基于分层区块链网络的数据处理装置3的结构示意图;
图19是本申请实施例提供的一种计算机设备的结构示意图;
图20是本申请实施例提供的一种基于分层区块链网络的数据处理系统的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图1,图1是本申请实施例提供的一种分层区块链网络的结构示意图。如图1所示的分层区块链网络中,包含部署在公网中的业务网络、和部署在私有云中的共识网络(也称见证网络)。如图1所示,这里的业务网络可以为图1所示的业务网络100a,且这里的共识网络可以为图1所示的共识网络200a。其中,共识网络200a中可以包括共识节点集群210a,以及验证节点220a;该验证节点220a独立于共识节点集群210a。
其中,业务网络可以是用于进行业务处理的网络。该共识网络可以是用于于负责区块链记账的网络。可以理解的是,在上述分层区块链网络中,业务网络100a与共识网络200a之间可以通过路由边界进行交互。其中,共识网络处于相对安全的私有云中,且互相访问本就有共识机制保证安全,不需要额外加入身份管理和网络控制。而业务节点处于公共网络中,可能会被其他不确定的网络终端访问,因此业务节点以及其他可能的节点接入共识网络中的行为需要被严格控制。例如,在基于该分层区块链网络的电子票据业务场景中,该业务网络中的业务节点可以为用于提供票据开票业务的服务器,一些业务对象(如个人、企业、机构)可以向业务节点发送开票业务交易以进行开票,进而业务节点可以将业务交易发送至共识网络以对开票业务交易进行上链,以保障开出的电子票据的安全性和不可篡改性。并且,该业务节点可以为对共识网络具有接入权限的节点。该共识网络可以用于对业务节点所上传的业务交易进行交易验证,并通过共识机制将业务交易上链至该共识网络所维护的区块链上。
在如图1所示的业务网络100a中,部署有多个业务节点,这里的多个业务节点具体可以包含图1所示的业务节点110a、业务节点110b、业务节点110c、业务节点110d、业务节点110e、业务节点110f、业务节点110g、…、业务节点110n。其中,需要注意的是,这里将不对部署在该业务网络100a中的业务节点的数量进行限定。如图1所示,对于运行在该业务网络100a中的各个业务节点而言,可以通过网络通信的形式访问上述共识网络,这里将不对各业务对象通过相应业务节点访问到的共识网络的数量进行限定。
在如图1所示的共识网络200a中,可以包括共识节点集群210a,其中,共识节点集群210a可以部署有多个共识节点(也称区块链节点),这里的多个共识节点具体可以包含图1所示的共识节点11a、共识节点11b、共识节点11c和共识节点11d。需要注意的是,这里不对部署在该共识网络200a中的共识节点的数量进行限定。此外,共识节点集群210a中的多个共识节点,可以用于共同维护一个区块链,如图1所示,对于运行在该共识网络200a中的多个共识节点而言,共同维护的区块链可以为图1所示的区块链11e。为了便于描述,可以将共识节点集群210a中的各个共识节点(即区块链节点)统称为共识节点。
在如图1所示的共识网络200a中,可以包括验证节点220a,其中,验证节点220a的数量可以为一个或多个,此处不做限定。该验证节点可以用于在由业务网络中的汇总节点打包得到的区块(即链下打包得到的区块)的区块数据上传到共识节点集群210a后,从共识节点中获取链下打包得到的区块的区块数据,并计算链下打包得到的区块的零知识证明。然后验证节点将生成的零知识证明发送至共识网络中的共识节点进行验证,以便于共识节点可以对链下打包得到的区块(即由共识网络之外的业务网络侧进行的交易打包得到的区块)进行确认,以保障链下打包得到的区块的安全性和可靠性。该零知识证明相当于由验证节点出示的用于指示由业务网络打包得到的区块在业务网络中被正确执行的一个证明。为了便于描述,可以将在业务网络中进行打包得到的区块统称为交易汇总区块、rollup区块或链下打包区块。
应当理解,本申请实施例所涉及的区块链(如上述的区块链11e)一种分布式数据存储、点对点传输、共识机制以及加密算法等计算机技术的新型应用模式,主要用于对数据按时间顺序进行整理,并加密成账本,使其不可被篡改和伪造,同时可进行数据的验证、存储和更新。区块链本质上是一个去中心化的数据库,该数据库中的每个节点均存储一条相同的区块链。
在上述分层区块链网络中,共识节点可以负责对应区块链所在的共识网络中的共识。对于上述共识网络而言,将共识网络中的交易数据写入对应区块链账本(例如,分布式数据库)的具体过程可以为,业务对象(例如,上述个人、企业或机构)的终端设备发送业务交易至某个业务节点,随后该业务交易以接力棒的方式在上述分层区块链网络内的业务网络中的业务节点之间传递,直到上述区块链网络内的共识网络中的共识节点(例如,共识网络中的共识节点11a)收到该业务交易,此时,共识节点(例如,共识网络中的共识节点11a)再将该业务交易打包进区块,以便于后续可以与其他共识节点(如共识网络中的共识节点11b、共识节点11c、共识节点11d)之间进行共识,从而可以在共识通过(如基于拜占庭容错算法确定共识通过)后,将共识通过的区块写入自己所在共识网络(例如,共识网络200a)的分布式数据库,也就是将共识通过的区块写入自己所在的共识网络所维护的区块链。为了便于描述,可以将提交到共识网络以写入相应的区块链的业务交易称为核心业务交易、主链业务交易等等。
其中,可以理解的是,在上述分层区块链网络中,可以在共识网络所维护的区块链(如上述的区块链11e)上部署智能合约,也可以说是在共识网络的共识节点上部署智能合约。智能合约可以理解为是一种由各区块链节点(即各共识节点)执行的代码,共识节点可以通过该智能合约可以执行相应的逻辑并得到结果,智能合约也可以称为业务处理数据。其中,智能合约可以具体在共识节点上的虚拟机(VM)中运行。比如,业务对象可以通过向共识节点提交一个业务交易,进而共识节点可以调用区块链(例如,上述区块链11e)上已经部署的智能合约,得到对应的执行结果。例如,在共识网络所维护的区块链(如上述区块链11e)上部署的智能合约可以为在用于对链下进行打包得到的交易汇总区块进行确认的智能合约,则共识节点在接收到与交易汇总区块关联的业务交易时,可以调用该智能合约对链下进行打包得到的交易汇总区块进行确认,得到对该交易汇总区块的确认结果。
应当理解,在上述共识节点集群210a的区块链(例如,上述区块链11e)上可以部署一个或多个智能合约,这些智能合约可以通过合约调用地址、合约标识号(Identitydocument,ID)或合约名称来进行区分,而提交至共识网络的业务交易中,可以携带智能合约的合约调用地址、合约标识号或合约名称,以此指定需要运行的智能合约。
应当理解,在共识节点集群210a中的任意两个区块链节点(即共识节点)之间可以形成点对点网络,该点对点网络可以采用相应的点对点协议,其中,该点对点协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。在分布式系统中,任何设备如服务器、终端等都可以加入而成为区块链节点,其中,每个区块链节点均可以包括硬件层、中间层、操作系统层和应用层。
进一步的,请参见图2,图2是本申请实施例还提供一种基于分层区块链网络的系统架构示意图。在如图2所示的系统架构中,业务网络100a中可以包括汇总节点(例如汇总节点A、汇总节点B)和业务节点(例如业务节点2和业务节点1)。共识网络200a中可以包括共识节点集群(例如共识节点集群210a)、验证节点(例如验证节点220a),以及共识网络入口(例如共识网络入口201a)。可以理解的是在该分层区块链网络的系统架构中,可以由业务网络中的汇总节点(如汇总节点A和汇总节点B)对提交到该汇总节点的一笔或多笔交易进行打包,得到一个交易汇总区块(也称链下打包区块、Rollup区块),进而将交易汇总区块交由共识网络对进行确认,由此可以一次性完成对交易汇总区块中的一笔或多笔交易的确认,提升了共识网络的区块链的可扩展性,以支撑更多的业务对象提交的更多数量的交易;另外,共识网络对交易汇总区块进行确认时,大部分的计算过程由验证节点进行,由此实现对区块链网络的扩容,避免共识节点的负载过多。
可以理解的是,业务网络100a中可以包括汇总节点(也称rollup服务节点),例如,图2中的102a所示的汇总节点A、图2中的103a所示的汇总节点B。需要注意的是,这里不对部署在该业务网络100a中的汇总节点的数量进行限制。汇总节点,可以为业务网络中用于进行交易汇总的业务节点,即汇总节点可以用于在链下(即共识网络所维护的区块链下)进行打包得到交易汇总区块。一个汇总节点可以部署有子链交易汇总服务节点(也称rollup服务、rollup子链服务、交易汇总服务等等)。其中,子链交易汇总服务节点可以为部署在汇总节点中的用于对提交到汇总节点的业务交易进行交易汇总的进程。可以理解的是,被打包至同一交易汇总区块的交易可以称为一批次交易,被打包至不同交易汇总区块的交易称为不同批次的交易,一个交易汇总区块中的交易的交易数量可以为一个或多个,此处不做限定。
可以理解的是,共识网络200a中的所包括的共识节点集群210a中可以包括多个共识节点,例如,共识节点集群210a中的多个共识节点可以为共识节点211a、共识节点212a、共识节点213a、共识节点214a等等。需要注意的是,这里不对部署在该共识节点集群210a中的共识节点的数量进行限制。
可以理解的是,由汇总节点(如汇总节点A)所打包得到的区块可以写入该汇总节点所维护的数据链。为了便于描述,可以将由汇总节点所维护的数据链称为业务子链、子链、侧链等等,由共识网络所维护的区块链可以称为主链、业务主链、业务主链等等。汇总节点可以将打包得到的交易汇总区块提交至共识节点,进而共识节点可以对交易汇总区块进行确认。
可以理解的是,业务网络100a可以包括一个或多个用于提供相应子链交易汇总服务节点的汇总节点,不同子链交易汇总服务节点可以部署在不同汇总节点上,一个汇总节点(或一个子链交易汇总服务节点)用于维护一个相应的业务子链。可以理解的是,一个子链交易汇总服务节点可以用于处理相应的区域的业务,即不同子链交易汇总服务节点可以用于处理不同区域的业务,换言之,不同子链汇总服务可以用于维护不同的业务子链,以用于写入用于指示处理相应区域业务的业务交易。比如,如图2所示,汇总节点A所提供的子链交易汇总服务节点a可以用于处理省级区域1的区域性业务,汇总节点B所提供的子链交易汇总服务节点b可以用于处理省级区域2的区域性业务。可以理解的是,一个子链交易汇总服务节点所用于处理的区域性业务,可以为一个区域内的电子票据开票业务、电子票据报销业务、征信业务、票据红冲业务、小汽车摇号业务等等,此处不做限定。可以理解的是,一个区域的汇总节点可以由针对该区域的管理机构进行部署,例如,一个省级区域的汇总节点,可以由该省级区域的省级管理机构进行部署。
可以理解的是,共识网络200a中的共识节点可以用于处理全局性的业务,例如,共识节点可以用于处理对各个区域的子链交易汇总服务节点打包得到的交易汇总区块进行确认的业务,又如,共识节点可以用于处理将各个区域所提交的汇总信息(如各个区域下在一个年度内所开具的电子发票的总金额)写入业务主链的业务。
可选的,业务网络100a中还可以包括业务对象发起业务请求的业务终端设备,例如业务终端设备101a。需要说明的是,此处不对业务网络中的业务终端设备的数量进行限制。可以理解的是,业务对象可以通过业务终端设备想汇总节点(如汇总节点A、汇总节点B等等)发送业务交易;业务终端设备还可以向业务节点(如业务节点2)发起与主链关联的业务交易,进而业务节点可以与主链关联的业务交易发往共识节点。
为了便于描述,可以将提交至汇总节点的用于指示进行业务处理的业务交易称为子链业务交易,换言之,子链业务交易为用于提交到汇总节点的业务交易,也就是用于写入业务子链的业务交易;可以将提交至共识节点的用于指示进行业务处理的业务交易称为主链业务交易,换言之,主链业务交易为用于提交到共识节点的业务交易,也就是用于写入业务主链的业务交易。
可以理解的是,对于一个业务子链来说,业务子链上所区块(即交易汇总区块)在写入业务子链时,不需要由多个共识节点进行共识操作,而是在由共识节点对交易汇总区块进行确认成功后,就可以由汇总节点确认将交易汇总区块写入业务子链。可选的,汇总节点可以在打包得到交易汇总区块后,就可以将交易汇总区块写入业务子链,进而在由共识节点对交易汇总区块进行确认成功后,就可以由汇总节点确认将交易汇总区块写入业务子链上,若共识节点对交易汇总区块确认失败,就可以对写入业务子链上的交易汇总区块进行区块回滚处理(也称区块回滚),由通常来说区块确认失败的概率较小,则先将交易汇总区块写入业务子链再由共识节点对交易汇总区块进行确认,可以在一定程度上提升交易汇总区块上链至业务子链的效率。可选的,汇总节点可以在打包得到交易汇总区块后,先将交易汇总区块存入账本缓存,进而在由共识节点对交易汇总区块进行确认成功后,再由汇总节点确认将交易汇总区块写入业务子链上(即写入账本数据库);若共识节点对交易汇总区块确认失败,就可以直接在账本缓存中的交易汇总区块进行清除以实现交易汇总区块的区块回滚,而不需要对账本数据库中的数据进行调整,减少区块回滚的操作量,提升区块回滚的效率。该账本缓存可以为汇总节点上的用于临时存储未最终确认成功的交易汇总区块的存储区域。
可以理解的是,对于一个子链交易汇总服务节点来说,还可以在独立于汇总节点的备份业务节点对汇总节点上的业务子链进行备份处理。可以理解的是,在一些场景中,若汇总节点出现故障,可以将备份业务节点作为该子链交易汇总服务节点所对应的新的汇总节点来执行链下打包的操作,避免由汇总节点出现故障,导致业务无法进行的情况,由此可以保障链下打包得到交易汇总区块的稳定性和可靠性,提升整个区块链系统的稳定性。
可以理解的是,在汇总节点将交易汇总区块的区块数据上传至共识节点时,汇总节点可以将交易汇总区块的区块数据发送至业务网络中的业务节点,再由业务节点将交易汇总区块的区块数据发送至共识节点。为了便于描述,可以将需要上传至共识节点的交易汇总区块的区块数据称为交易汇总区块数据。
例如,如图2所示,汇总节点在得到了交易汇总区块数据后,可以先将交易汇总区块数据发送至104a所示的业务节点2,业务节点2再将交易汇总区块数据发送至105a所示业务节点1。其中,业务节点1和业务节点2可以统称为业务节点。业务节点2可以为用于连接各个区域所对应的汇总节点,以接收汇总节点发送的交易汇总区块数据;业务节点1可以用于与共识网络连接,进而将业务网络中的交易汇总区块数据发送至共识网络。
可以理解的是,汇总节点(如汇总节点A)将交易汇总区块数据上传至共识节点时,可以将交易汇总区块数据进行交易封装,生成交易A(即一个主链业务交易),然后将交易A提交(也称发送)至共识节点(例如共识节点212a),然后共识节点212a将交易A写入业务主链对应的交易池子(也称主链交易池),对主链交易池中的主链业务交易进行打包,得到包含交易A的区块P1(即一个待写入业务主链的主链区块),进而共识节点在执行区块P1时,可以执行该交易A,也就是对交易A解封处理得到交易汇总区块数据,进而交易汇总区块数据中的交易汇总区块进行确认操作(具体确认操作流程参照后续相关描述),并向汇总节点返回确认结果信息(如确认成功信息或确认失败信息)。
可以理解的是,业务网络中的业务节点可以为多层级联的节点,例如上述的业务节点2可以为业务节点1的下一级业务节点。为了便于描述,可以将业务网络中最高层级的业务节点称为第一层级业务节点,第一层级业务节点用于直接与共识网络连接,例如上述的业务节点1;可以将业务网络中的第一层级业务节点的下一级业务节点称为第二层级业务节点,第二层级业务节点用于与相应层级的汇总节点连接,例如上述的业务节点2;以此类推,可以将第二层级业务节点的下一级业务节点称为第三层级业务节点、更下一级业务节点称为第四层级业务节点。相应的,第二层级业务节点、第三层级业务节点等更低级的业务节点所连接的汇总节点可以分别用于处理不同层级的区域性业务,第二层级业务节点所连接的汇总节点(如上述汇总节点A和汇总节点B)用于处理第一层级区域的区域性业务,如第一层级区域的区域性业务为省级区域的业务。第三层级业务节点所连接的汇总节点用于处理第二层级区域的区域性业务,如第第二层级区域的区域性业务为省级区域下的区级区域的业务,以此类推,第四层级业务节点所连接的汇总节点用于处理更低层级区域的区域性业务。
可以理解的是,对于用于处理第一层级区域的区域性业务的汇总节点(如上述的汇总节点A和汇总节点B)来说,汇总节点在得到了交易汇总区块数据后,可以先将交易汇总区块数据发送至第二层级业务节点(如上述的业务节点2),第二层级业务节点(如上述的业务节点2)再将交易汇总区块数据发送至第一层级业务节点(如上述的所示业务节点1),进而第一层级业务节点将交易汇总区块数据上传至共识网络;对于用于处理第二层级区域的区域性业务的汇总节点来说,汇总节点在得到了交易汇总区块数据后,可以先将交易汇总区块数据发送至第三层级业务节点,第三层级业务节点将交易汇总区块数据上传给第二层级业务节点(如上述的业务节点2),第二层级业务节点(如上述的业务节点2)再将交易汇总区块数据发送至第一层级业务节点(如上述的所示业务节点1),进而第一层级业务节点将交易汇总区块数据上传至共识网络,以此类推,低层级的业务节点可以向高层级的业务节点发送交易汇总区块数据,以便于最高层级的第一层级业务节点(如上述的业务节点1)将交易汇总区块数据上传至共识网络。可以理解的是,共识网络在向汇总节点返回信息(如针对交易汇总区块数据的确认结果信息)的通信传输过程相当于上述过程的逆过程,换言之,共识网络在向业务网络中的汇总节点(如上述的汇总节点A)返回信息(如针对交易汇总区块数据的确认结果信息)时,也是先将信息返回至最高层级的第一层级业务节点(如上述的业务节点1),然后再由第一层级业务节点(如上述的业务节点1)返回至低一层级的业务节点(如上述的业务节点2),直至发送到与待接收信息的汇总节点连接的业务节点(如上述的业务节点2),从而实现将信息返回至汇总节点。
需要说明的是,本申请实施例不对业务网络中的各个层级的业务节点的数量进行限制,例如,上述第一层级业务节点的数量可以为一个也可以为多个,上述第二层级业务节点的数量可以为一个也可以为多个。另外,用于处理同一层级区域的不同区域的区域性业务的汇总节点,所连接的相应层级的业务节点(例如用于处理第一层级区域的区域性业务的汇总节点所连接的相应层级的业务节点为第二层及业务节点)可以为同一个,也可以为不同业务节点。例如,上述汇总节点A与汇总节点B所连接的汇总节点可以均为业务节点2,也可以为不同的业务节点,此处不做限定。
可以理解的是,各个层级的业务节点可以为SPV节点(轻节点),以从业务主链中获取相关的主链业务信息,并通过安全数据清分方式获取与自身相关的业务主链的账本和状态数据。可以理解的是,第一层级业务节点可以为更低层级的业务节点与共识网络进行交互的桥梁,即更低层级的业务节点需要通过第一层级业务节点将数据发送到共识网络,共识网络需要通过该第一层级业务节点将数据发送到更低层级的业务节点。可以理解的是,如图2所示,对于第二层级业务节点(如上述的业务节点2)来说,第二层级业务节点(如上述的业务节点2)可以清分得到所连接的汇总节点(如汇总节点A和汇总节点B)进行区域性业务处理所需要用到的业务主链的账本和状态数据。进一步可以理解的是,汇总节点可以从所连接的业务节点中获取进行业务处理所需用到的业务主链的账本和状态数据,以用于进行业务处理。
可以理解的是,在共识网络200a中可以包括共识网络入口201a,上述提交到共识网络200a的主链业务交易,可以由共识网络入口201a将主链业务交易转发到共识节点,例如,共识网络入口201a可以将主链业务交易转发到共识节点212a。可以理解的是,共识网络200a中,需要返回至业务网络100a的数据也可以由共识网络入口201a返回至业务网络。
可以理解的是,共识网络200a中可以包括验证节点,例如,验证节点220a。可以理解的是,验证节点可以用于为发送到共识节点的交易汇总区块数据生成零知识证明,该零知识证明用于指示交易汇总区块数据中的交易执行结果为正确的执行结果,进而共识节点可以对验证节点生成的零知识证明进行证明验证(即第一证明验证),且在对零知识证明验证成功(即第一证明验证成功)时,表示共识节点对交易汇总区块确认成功。
其中,零知识证明(ZK证明),可以使用密码学允许某人(证明者)向其他人(验证者)证明事实是百分百真实的,但除了特定真实性的陈述之外,不会透露任何额外信息。也就是说,ZK证明本质上是让某人证明他们知道或拥有某些东西,而不会泄露他们知道或拥有什么的任何信息。验证节点通过计算零知识证明,向共识节点表明交易汇总区块中的子链业务交易被正确执行,一旦共识节点在对零知识证明验证成功时,则表示共识节点确定汇总节点所提交的交易汇总区块的子链业务交易的交易执行结果是正确的。可以理解的是,ZK证明相对于所有链下交易的有效性证明而言计算起来非常小,并且验证速度非常快。这要归功于一个几乎神奇的属性:一旦他们创建了一个证明说“是的,这数十亿次计算都被100% 证明是正确的”,验证者(如此处的共识节点)可以确认证明是正确的,而无需自己再进行数十亿次计算,由此减少了共识节点对交易汇总区块的验证的计算量,提升对交易汇总区块的确认效率。
可以理解的是,验证节点220a可以包括验证入口组件(也可称为验证入口、零知识证明服务入口)以及验证组件。例如,如图2所示,验证节点220a可以包括验证入口组件221a,以及验证组件222a、验证组件223a、验证组件224a、验证组件225a。需要说明的是,此处不对验证节点中的验证组件的数量进行限制。
可以理解的是,验证入口组件相当于在共识网络中设置的验证服务的服务入口和任务调度器,可以用于探测共识节点中的待进行确认的交易汇总区块,并生成相应的用于指示生成待确认的交易汇总区块的零知识证明的证明生成任务(也称证明计算任务),进而将证明生成任务发布至验证组件,也就是,用于负责接收来自Rollup子链服务(即子链交易汇总服务节点)的原始交易数据,并从Rollup合约(即交易汇总合约)中获取还未生成零知识证明的Rollup区块数据(即交易汇总区块数据),将其分配给集群中的节点进行证明生成计算。验证组件可以基于证明生成任务计算相应的零知识证明,并将生成的零知识证明返回至验证入口组件。验证组件中可以部署有用于生成零知识证明的零知识证明电路,从而可以基于零知识证明电路生成零知识证明。
可以理解的是,可选的,验证入口组件与验证组件的可以部署在同一个设备上,即验证节点为单独的一个设备,验证入口组件与验证组件均为该设备上的不同程序。
可选的,验证入口组件与验证组件可以部署在不同设备上,则部署有验证入口组件的设备和部署有验证组件的设备均可以统称为验证节点,具体的,部署有验证入口组件的设备也可以称为验证入口节点,部署验证组件的设备也可以称为验证执行节点。可以理解的是,若在多个设备中分别部署验证组件,则每个部署有验证组件的设备均可以称为验证执行节点。需要说明的是,此处不对验证执行节点的数量进行限制,由验证执行节点组成的集合可以称为验证执行节点集群。
可以理解的是,在验证入口组件和验证组件部署在不同设备上的情况下,验证入口节点可以用于管理和维护验证执行节点集群中的一个或多个验证执行节点。验证入口节点的功能包括但不限于:1、节点管理:验证入口节点可以管理验证执行节点集群中每个验证执行节点的状态和性能指标,包括CPU利用率、内存使用率、网络带宽等,以便及时发现和解决节点故障和性能问题。2、服务发现:验证入口节点可以自动发现已注册的能够进行零知识证明计算的验证执行节点,并将其加入到验证执行节点集群中,这样可以确保用于计算零知识证明的验证执行节点集群的可扩展性和高可用性。3.负载均衡:验证入口节点可以使用负载均衡算法,将证明生成任务分配给验证执行节点集群中的节点进行计算,以确保每个验证执行节点的计算负载均衡,并且能够快速响应零知识证明的计算请求。4.安全管理:验证入口节点还可以对验证执行节点集群中的节点进行安全管理,包括访问控制(对验证执行节点能够访问到的信息进行权限控制)、身份认证(对验证执行节点所对应的对象的身份信息进行认证)、数据加密(即对传输至验证执行节点的数据进行加密处理)等,以确保证明生成任务中的交易数据(如原始交易数据)的安全性和隐私性。
进一步可以理解的是,本申请实施例提供一种基于上述分层区块链网络的数据处理方案,能够在包括业务网络和共识网络的分层区块链网络中,基于业务网络中汇总节点进行打包得到区块(即交易汇总区块、也称子链交易汇总区块),在将链下打包得到的区块的区块数据(即子链交易汇总区块数据)提交到共识网络中的共识节点后,再由独立于共识节点的验证节点异步为链下打包得到的区块生成零知识证明,来确保链下打包的区块的合法性。对于用于打包区块的汇总节点来说,由于链下打包得到的区块的零知识证明的计算过程是在共识网络中异步完成的,汇总节点只需要进行区块打包,而不需要通过额外的复杂机制来保障链下打包的区块的合法性,由此提升了链下的汇总节点进行打包的效率;另外,由于共识节点不需要直接通过执行链下打包的区块中的每个交易去对区块进行验证,而是只需要对零知识证明进行验证,就可以完成对链下打包得到的区块的确认,从而可以减少共识节点的计算资源的消耗,并且,共识节点通过对零知识证明的验证,可以更快的对区块进行确认,所以,对于整个区块链系统而言,会优化整个区块链系统的对于区块的确认效率,进而提升系统的吞吐量。
进一步的,为了便于理解,请参见图3,图3是本申请实施例提供的一种基于分层区块链网络的数据处理场景示意图。业务对象可以通过业务终端设备(如可以为上述图2中的业务终端设备101a)发起子链业务交易1,业务终端设备向汇总节点发送子链业务交易1(步骤S31)。汇总节点可以调用子链交易汇总服务节点对接收到的子链业务交易进行打包,如可以打包得到包含子链业务交易1的交易汇总区块P3,交易汇总区块P3的区块体中可以包括子链业务交易1的交易信息、子链业务交易2的交易信息.....子链业务交易3的交易信息等多个子链业务交易的交易信息,交易汇总区块P3还可以包括区块头。然后子链交易汇总服务节点可以确定交易汇总区块P3的交易汇总区块数据M3,并对交易汇总区块数据M3进行交易封装,得到区块确认交易。汇总节点可以将区块确认交易发送至业务节点(步骤S32),该业务节点可以为图2所示的业务节点2和业务节点1的统称,进而业务节点可以将区块确认交易发送至共识节点集群210a(步骤S33)。其中,业务节点可以将区块确认交易发送至共识网络入口(如上述共识网络入口201a),再由共识网络入口将区块确认交易转发至共识节点集群210a。
可以理解的是,共识节点集群210a中可以包括共识节点11a、共识节点11b、共识节点11c、......、共识节点11d等共识节点,以共识节点11c为例,共识节点11c调用汇总业务处理数据从区块确认交易中解封得到交易汇总区块数据(步骤S34),并且还可为交易汇总区块数据中的交易汇总区块配置区块锁定时长,也称挑战期。该区块锁定时长可以为用于对区块进行锁定以校验区块的合法性的时长,也就是说,在该区块锁定时长内,区块暂时不会被确认,且可以在接收挑战对象对交易汇总区块的合法性的挑战。在取消该区块锁定时长时,才能对区块进行确认。其中,共识节点可以将解封得到的交易汇总区块数据写入汇总业务处理数据,如从区块确认交易中解封得到上述的交易汇总区块数据M3,交易汇总区块数据M3中可以包括上述的交易汇总区块P3,并且可以为交易汇总区块P3配置区块锁定时长T3。
可以理解的是,在获取到交易汇总区块数据M3之前,汇总业务处理数据还可以从其他区块确认交易中解析得到交易汇总区块数据M1,交易汇总区块数据M2等等,并为交易汇总区块数据M1中的交易汇总区块配置区块锁定时长T1,为交易汇总区块数据M2中的交易汇总区块配置区块锁定时长T2。该交易汇总区块数据M2中的交易汇总区块,交易汇总区块数据M3中的交易汇总区块可以为汇总节点在上述交易汇总区块P3之前打包得到的区块。
进一步的,共识节点从交易汇总区块数据M3获取到交易汇总区块P3时,可以生成区块待确认事件,进而验证节点(如上述的验证节点220a)在探测到该区块待确认事件时,验证节点可以从共识节点中获取交易汇总区块P3和业务状态读数据(步骤S35)。进而验证节点可以基于调用验证入口组件基于交易汇总区块P3和业务状态读数据确定证明生成任务,进而调用验证节点基于证明生成任务计算生成零知识证明Z1。在得到证明生成任务后,验证节点向共识节点发送交易汇总区块P3的零知识证明Z1(步骤S36)。可以理解的是,验证节点向共识节点发送交易汇总区块P3的零知识证明Z1的前提可以为交易汇总区块数据M2中的交易汇总区块以及交易汇总区块数据M1中的交易汇总区块确认成功,具体的,验证节点在探测到交易汇总区块数据M1中的交易汇总区块确认成功时,可以向共识节点发送交易汇总区块P2的零知识证明,以使共识节点对交易汇总区块P2的零知识证明进行验证;验证节点在探测到交易汇总区块数据M2中的交易汇总区块确认成功时,向共识节点发送交易汇总区块P3的零知识证明Z1。
进一步的,共识节点11c调用汇总业务处理数据对零知识证明Z1验证成功时,生成区块确认信息(步骤S37)。另外,在对零知识证明Z1验证成功时,还可以取消对交易汇总区块P3的区块锁定时长T3。然后共识节点可以将区块确认成功信息返回至业务节点(步骤S38),业务节点将区块确认成功信息返回至汇总节点(步骤S39)。汇总节点在接收到针对交易汇总区块P3的区块确认信息时,可以确认将交易汇总区块P3写入汇总节点所维护的业务子链。
可以理解的是,相较于需要在挑战期(即区块锁定时长)结束时,才能完成对链下打包得到的区块的确认的Optimistic Rollup(乐观rollup)方式,本申请实施例能够在共识网络中异步为链下打包得到的区块生成零知识证明,并且验证零知识证明,且只需要在零知识证明验证成功时,就可以对交易汇总区块进行确认,不需要等到挑战期(即区块锁定时长)结束才能完成确认,提升了对交易汇总区块的确认效率,进而提升整个区块链系统的吞吐量。
可以理解的是,采用本申请实施例,有助于提升区块链系统的高效性、安全性以及可扩展性。高效性:分层区块链的结构可以将不同的业务逻辑和数据分层处理,从而提高区块链系统的效率和吞吐量。本申请实施例可以通过将Rollup子链服务(即子链交易汇总服务节点)集成到业务网络中,可以进一步提高交易处理的效率和吞吐量。同时,通过异步计算和ZK零知识证明验证集群(即验证执行节点集群)的方式,可以进一步提高零知识证明的计算和验证的效率。安全性:分层区块链的结构可以将不同的业务逻辑和数据分层处理,从而提高系统的安全性和可靠性。本申请实施例在业务节点侧采用类似Optimistic Rollup的方式,先假设交易汇总区块为正确执行的区块,进而将打包得到的交易汇总区块直接上传到共识节点进行确认,共识节点可以为交易汇总区块设置挑战期(即区块锁定时长),挑战期过后就能认为Rollup区块被最终确认。这种方式可以提高Rollup的安全性和可靠性。同时,通过ZK零知识证明验证集群(即验证执行节点集群)的方式,可以进一步提高交易数据的安全性和隐私性。可扩展性:分层区块链的结构可以将不同的业务逻辑和数据分层处理,从而提高系统的可扩展性和灵活性。该方案通过将Rollup子链服务(子链交易汇总服务节点)集成到业务网络中,并通过主链SPV节点(即业务节点)的分层服务链路将子链的区块和状态(即交易汇总区块以及交易汇总区块中的子链业务交易的业务状态读数据)回传到业务主链中,可以进一步提高系统的可扩展性和灵活性。同时,通过ZK零知识证明验证集群(即验证节点)的方式,可以进一步提高系统的可扩展性和性能。可以理解的是,分层区块链的结构可以将不同的业务逻辑和数据分层处理,从而提高系统的可维护性和可升级性。该方案采用了Rollup技术、SPV技术、ZK零知识证明技术等多种技术,可以进一步提高系统的可维护性和可升级性。同时,该方案还具备高效、安全、可扩展等多种技术收益。
可以理解的是,这个方案既可以基于ZK集群(即验证节点),异步为交易汇总区块生成零知识证明和验证零知识证明,等到交易汇总区块在主链上被ZK技术异步确认时,就可以解锁对应区块的挑战期(区块锁定时长),实现快速的最终确认。并且,在分层区块链网络中,本申请实施例可以让子链(即业务子链)层保持轻量级,无需在子链业务层维护和运行复杂的零知识证明技术,也无需在业务子链层进行局部共识,且由于ZK零知识证明的生成过程是在主链共识网络中异步完成,提高了每个子链中交易的执行速度和响应速度,同时不损失正确性,无作恶的可能。
其中,可以理解的是,本申请实施例所涉及的节点(如上述的汇总节点、共识节点以及验证节点)可以是服务器,也可以是终端设备,还可以是其他进行数据处理的设备,此处不做限定。其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器,此处不做限定。上述终端设备包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器、智能音箱、智能家电等。
需要说明的是,本申请实施例中的节点在获取业务对象(例如,上述个人、企业或机构)的数据时,可以显示提示界面或者弹窗,该提示界面或者弹窗用于提示业务对象当前正在搜集对象的数据,仅仅在获取到业务对象对该提示界面或者弹窗发出确认操作后,开始执行数据获取的相关的步骤,否则结束。
可以理解,上述场景仅是作为示例,并不构成对于本申请实施例提供的技术方案的应用场景的限定,本申请的技术方案还可应用于其他场景。例如,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
基于上述的描述,本申请实施例提出一种基于分层区块链网络的数据处理方法。请参见图4,图4是本申请实施例提供的一种基于分层区块链网络的数据处理方法的流程示意图。分层区块链网络中包括业务网络和共识网络;业务网络中部署有汇总节点和业务节点,汇总节点中部署有子链交易汇总服务节点;共识网络中部署有共识节点和验证节点,共识节点部署有子链交易汇总服务节点对应的汇总业务处理数据;该方法由汇总节点执行,例如,由上述的汇总节点A执行。该基于分层区块链网络的数据处理方法可以包括以下步骤S101-S105。
S101、获取待写入业务网络的业务子链上的子链业务交易,调用子链交易汇总服务节点对子链业务交易进行打包,得到第一交易汇总区块。
其中,可以理解的是,子链业务交易可以为待写入业务子链的业务交易,也就是提交至汇总节点的业务交易。该子链交易汇总服务节点可以用于对子链业务交易进行打包。该第一交易汇总区块可以为打包得到的交易汇总区块,可以理解的是,第一交易汇总区块可以为调用子链交易汇总服务节点进行打包得到的任一交易汇总区块,该子链交易汇总服务节点可以为业务网络中的任一子链交易汇总服务节点,例如上述的汇总节点A中的子链交易汇总服务节点。可以理解的是,打包到第一交易汇总区块的子链业务交易的数量可以为一个或多个,打包到同一个交易汇总区块的子链业务交易可以称为一批次子链业务交易。
可以理解的是,汇总节点在接收到业务对象提交的子链业务交易后,可以将子链业务交易存储至业务子链的交易池(即子链交易池)中,进而在子链交易池达到子链交易打包条件(例如,子链交易池中的业务交易的数量达到一定阈值、子链交易池的时间戳达到交易打包时间阈值等条件)时,调用子链交易汇总服务节点从子链交易池中确定一批次待写入业务子链的子链业务交易,进而对子链业务交易进行打包,得到第一交易汇总区块。其中,交易池是指用来暂存尚未被加入到区块的交易记录,即未进行打包的业务交易的数据集。例如,汇总节点在接收到交易TX1时,将交易TX1存储至子链交易池,在接收到交易TX2时,将交易TX2存储至子链交易池,以此类推,将接收到的子链业务交易存储至子链交易池,在子链交易池的时间戳达到交易打包时间阈值(如10分钟)时,可以从子链交易池中获取TX1、TX2等子链业务交易,进而将调用子链交易汇总服务节点将交易TX1、交易TX2打包到一个区块,得到第一交易汇总区块。
可以理解的是,用子链交易汇总服务节点对子链业务交易进行打包,得到第一交易汇总区块,可以包括:获取子链业务交易的交易信息,基于子链业务交易的交易信息构建区块体,基于子链业务交易的交易信息进行哈希计算,并基于哈希计算的结果构建区块头,基于区块体和区块头构建第一交易汇总区块。
其中,该交易信息(也称交易数据信息)可以为记录至区块的区块体的子链业务交易的信息,该交易信息可以为子链业务交易的原始交易数据或者子链业务交易的交易哈希数据。其中,原始交易数据可以为业务交易的完整的交易参数,也称交易原文数据。例如,一个交易中的交易参数可以包括:发送者地址信息、交易接收地址信息、交易资源数量、费用信息、签名信息等等参数,则该原始交易数据则可以为包括以上信息。交易哈希数据可以为对原始交易数据进行哈希计算得到的哈希值。此处的哈希计算可以采用一些常规的哈希计算方法,例如MD5(一种哈希计算方法)、SHA-256(一种哈希计算方法)等等,此处不做限定。可以理解的是,所获取的子链业务交易的交易信息可以根据子链业务交易的交易类型确定,在子链业务交易的交易类型为第一交易类型时,交易信息为原始交易数据,在子链业务交易的交易类型为第二交易类型时,交易信息为交易哈希数据。可以理解的是,基于子链业务交易的交易信息进行哈希计算,并基于哈希计算的结果构建区块头,可以为基于子链业务交易的交易信息进行哈希计算构建默克尔树,并基于默克尔树的树根构建区块头。
具体的,子链业务交易的交易数量为N个,N为正整数;N个子链业务交易包含第一子链业务交易和第二子链业务交易;第一子链业务交易的交易类型为第一交易类型;第二子链业务交易的交易类型为第二交易类型;第一交易类型不同于第二交易类型;那么,调用子链交易汇总服务节点对子链业务交易进行打包,得到第一交易汇总区块,可以包括以下步骤:从N个子链业务交易中获取第一交易类型对应的第一子链业务交易,通过子链交易汇总服务节点确定第一子链业务交易的第一交易数据信息;第一交易数据信息为第一子链业务交易的原始交易数据;进一步的,从N个子链业务交易中获取第二交易类型对应的第二子链业务交易,通过子链交易汇总服务节点确定第二子链业务交易的第二交易数据信息;第二交易数据信息为第二子链业务交易的交易哈希数据;第二子链业务交易的交易哈希数据是对第二子链业务交易的原始交易数据进行哈希计算后所得到的;进一步的,调用子链交易汇总服务节点对第一子链业务交易和第二子链业务交易进行打包,得到与N个子链业务交易相关联的第一交易汇总区块;第一交易汇总区块包括区块头和区块体;区块头是基于第一交易数据信息和第二交易数据信息进行哈希计算后所得到的;区块体用于记录第一交易数据信息和第二交易数据信息。
其中,可以理解的是,第一子链业务交易和第二子链业务交易为不同的子链业务交易。可以理解的是,第一子链业务交易可以为与第一交易汇总区块中交易类型为第一交易类型的子链业务交易的统称,第二子链业务交易可以为与第一交易汇总区块中交易类型为第二交易类型的子链业务交易的统称,此处不对第一子链业务交易和第二子链业务交易的数量进行限制。第二交易类型为原始交易数据中包括敏感数据的交易类型,第一交易类型为原始交易数据中不包括敏感数据的交易类型。也就是说,第一子链业务交易的中不包括敏感数据,第二子链业务交易中包括敏感数据。该敏感数据可以为个人的对象标识(如用于唯一表示个人的标识),企业或机构的人员信息、企业或机构的客户信息等,此处不做限定。可以理解的是,若一个业务交易的原始交易数据存在敏感数据,则可以确定该业务交易的交易类型为第二交易类型,若不存在敏感数据,则可以确定该业务交易的交易类型为第一交易类型。可以理解的是,敏感数据可以根据实际需求进行设置,例如可以将业务对象的对象标识确定为敏感数据,也可以将业务对象的姓名确定为敏感数据等等,此处不做限定。例如,一个业务交易TX1为用于进行小汽车摇号的业务交易,其中进行小汽车摇号的业务交易的交易参数中包括业务对象的对象标识,在设置敏感数据包括对象标识时,则业务交易TX1中包括敏感数据,业务交易TX1的交易类型为第二交易类型。又如,一个业务交易TX2为将账户A中的资源转移至账户B,其中不包含敏感数据,则业务交易TX2的交易类型为第一交易类型。
可以理解的是,第一交易数据信息是待记录至区块体的第一子链业务交易的交易信息,第一交易数据信息可以为第一子链业务交易的原始交易数据,该原始交易数据可以为该第一子链业务交易的完整的交易参数。第二交易数据信息是待记录至区块体的第二子链业务交易的交易信息,第二交易数据信息可以为第二子链业务交易的交易哈希数据,该交易哈希数据是对第二子链业务交易的原始交易数据进行哈希计算得到的。
其中,第一交易汇总区块的区块体可以用于记录上述的第一交易数据信息和第二交易数据信息,也就是说,用于记录第一子链业务交易的原始交易数据和第二子链业务交易的交易哈希数据。区块头中可以包括第一交易数据信息和第二交易数据信息进行哈希计算后所得到的默克尔树(merkle树)的树根,还可以包括区块的时间戳、打包得到的第一交易汇总区块的区块哈希值以及第一交易汇总区块的父区块的区块哈希值、第一交易汇总区块的版本号等等信息。
例如,请参见图5,图5是本申请实施例提供的一种交易汇总区块的结构示意图。如图5所示,交易汇总区块500a可以包括区块头510a和区块体520a,其中,区块头510a中可以包括父区块哈希值,版本号、时间戳、随机数、区块大小、区块哈希值以及默克尔树根等信息。其中,默克尔树根可以是基于区块体520a中所记录的交易数据信息进行哈希计算得到的。其中,交易汇总区块500a中的可以为对交易TX1、交易TX2、交易TX3、交易TX4进行打包得到的区块,其中,交易TX1的交易数据信息为1e,交易TX2的交易数据信息为2e,交易TX3的交易数据信息为3e,交易TX4的交易数据信息为4e,其具体的确定过程参照上述描述,即可以基于交易的交易类型确定相应的交易数据信息。可以理解的是,在确定默克尔树根时,可以先将各个子链业务交易按照一定顺序(如按照交易时间戳从早到晚的顺序),然后分组进行哈希运算,如将TX1的交易数据信息1e和TX2的交易数据信息2e确定为一组,将TX3的交易数据信息3e和TX4的交易数据信息4e确定为一组,向上不断递归运算产生新的哈希节点,最终只剩下一个Merkle根(默克尔树根)存入区块头中,每个哈希节点是对其子节点进行哈希计算得到的,例如,哈希1为对TX1的交易数据信息1e进行哈希计算得到的,哈希2为对TX2的交易数据信息2e进行哈希计算得到的,哈希12为对哈希1和哈希2进行哈希计算得到的,同理,哈希1234为对哈希12和哈希34进行哈希计算得到的,进而可以将哈希1234作为默克尔树根存储至区块头。
应当理解的是,在调用子链交易汇总服务节点打包得到的交易汇总区块中,也可以仅包括第一子链业务交易,也就打包得到的交易汇总区块的区块体中记录的交易数据信息均为原始交易数据;在调用子链交易汇总服务节点打包得到的交易汇总区块中,也可以仅包括第二子链业务交易,也就打包得到的交易汇总区块的区块体中记录的交易数据信息均为交易哈希数据,其具体的打包过程均参照上述描述,此处不做赘述。
S102、调用子链交易汇总服务节点执行第一交易汇总区块,并记录执行第一交易汇总区块中的子链业务交易的业务状态读数据和第一子链交易执行结果。
其中,子链业务交易的业务状态读数据可以为执行子链业务交易时所读取到的状态数据,也可以称为状态读数据。第一子链交易执行结果可以为执行子链业务交易得到的交易执行结果,该交易执行结果可以为执行子链业务交易后所得到的状态数据,也可以称为子链业务交易关联的状态写数据。其中,该业务状态读数据和第一子链交易执行结果(即状态写数据)都可以称为状态数据。
应当理解的是,业务状态读数据可以包括执行子链业务交易所需读取到的区块链的账户的状态数据和智能合约的状态数据,账户的状态数据例如可以为账户的余额、交易次数等数据,智能合约的状态数据可以包括合约的名称、地址、调用次数等等。相应地,交易执行结果(如第一子链交易执行结果)也可以包括执行子链业务交易后所需写入的区块链的账户的状态数据和智能合约的状态数据,账户的状态数据可以为账户的余额、交易次数等数据,智能合约的状态数据可以包括合约的名称、地址、调用次数等等。可以理解的是,本申请实施例中,区块链所对应的状态数据可以记录在世界状态树中,世界状态树用于记录区块链上的所有账户的状态信息和合约代码信息。进而,在执行子链业务交易时,汇总节点可以从世界状态树中确定执行子链业务状态数据所需读取到的业务读状态数据,并且在得到第一子链交易执行结果时,可以基于第一子链交易执行结果对世界状态树中的信息进行更新。
例如,子链业务交易包括交易TX1用于指示由账户A向账户B转移资源数量为20的资源,则执行交易TX1相当于对账户A和账户B的账户余额进行调整,则执行交易TX1所需要读取的业务状态读数据包括账户A的账户余额(例如账户余额为30)和账户B的账户余额(例如账户余额为10),换言之,交易TX1的业务状态读数据可以包括账户A的账户余额(例如账户余额为30)和账户B的账户余额(例如账户余额为10)。在执行了交易TX1后,账户A的账户余额减少20,即账户A的账户余额变为10,账户B的账户余额增加20,即账户B的账户余额变为30。因此,交易TX1的交易执行结果可以包括执行交易后的账户A的账户余额(例如账户余额为10)和账户B的账户余额(例如账户余额为20)。又如,子链业务交易包括交易TX2用于指示由账户A调用合约H,则执行交易TX2相当于调用合约H进行相应的处理,则执行交易TX2所需要读取的业务状态读数据包括账户A的交易发次数(如交易次数为10)以及合约H的状态数据(如合约的名称、地址、调用次数)等信息,换言之,交易TX2的业务状态读数据可以包括账户A的状态数据(如交易次数为10)以及合约H的状态数据(如合约的名称、地址、调用次数)等信息。在执行了交易TX2后,账户A的交易次数加1,即账户A的交易次数变为11,合约H的调用次数增加1。因此,子链业务交易TX2的第一子链交易执行结果可以包括执行交易后的账户A的状态数据(如交易次数为11)以及合约H的状态数据(如增加1的调用次数)等信息。
可以理解的是,在第一交易汇总区块中的子链业务交易的数量为多个时,子链业务交易的业务状态读数据可以包括执行每笔第一交易汇总区块所需读取的状态数据,子链业务交易的第一交易执行结果可以包括执行第一交易汇总区块中的每笔子链业务交易后所记录的每个子链业务交易的交易执行结果。例如,在第一交易汇总区块中包括交易TX1和交易TX2(交易TX1的交易时间早于交易TX2),交易TX1和交易TX2均涉及到对账户A的账户余额的调整,所记录的业务子链的业务状态读数据可以包括执行TX1时所读取到的账户A的账户余额以及包括执行TX2时所读取到的账户A的账户余额,第一交易执行结果可以包括执行TX1后得到的账户A的账户余额以及包括执行TX2后得到的账户A的账户余额。可选的,子链业务交易的业务状态读数据也可以包括执行第一交易汇总区块前所记录的最初始相关的状态数据,子链业务交易的第一交易执行结果也可以为基于每个子链业务交易的交易执行结果所确定的最终的相关的状态数据,此处不做限定。例如,在第一交易汇总区块中包括交易TX1和交易TX2(交易TX1的交易时间早于交易TX2),交易TX1和交易TX2均涉及到对账户A的账户余额的调整,所记录的业务子链的业务状态读数据可以包括执行TX1时所读取到的账户A的账户余额,而不包括执行TX2时所所读取到的账户A的账户余额,第一交易执行结果可以包括执行TX1以及TX2后得到的账户A的账户余额,也就是执行TX2后得到的账户A的账户余额。
S103、对第一交易汇总区块、子链业务交易的业务状态读数据和第一子链交易执行结果进行数据封装,得到第一交易汇总区块数据。
可以理解的是,该第一交易汇总区块数据可以为第一交易汇总区块所对应的交易汇总区块数据。数据封装可以用于指示将第一交易汇总区块、业务状态读数据和第一子链交易执行结果按照一定数据封装格式进行组合,得到第一交易汇总区块数据。
可选的,对第一交易汇总区块、子链业务交易的业务状态读数据和第一子链交易执行结果进行数据封装,得到第一交易汇总区块数据,可以包括:将第一交易汇总区块、子链业务交易的业务状态读数据和第一子链交易执行结果确定为待封装数据;获取数据封装格式;数据封装格式用于指示待封装数据的数据类型以及组合顺序;基于数据封装格式将待封装数据进行组合,得到第一交易汇总区块数据。
其中,待封装数据用于指示待封装为交易汇总区块数据的数据。该数据封装格式用于指示待封装数据的数据类型和组合顺序。其中,数据类型可以用于指示数据的基本类型,如整数、浮点数、字符串等等。该组合顺序可以用于指各个待封装数据进行组合得到交易汇总区块数据时的顺序。例如,该组合顺序可以用于指示按照第一交易汇总区块、子链业务交易的业务状态读数据和第一子链交易执行结果的组合顺序进行组合,得到第一交易汇总区块数据;又如,该组合顺序可以用于指示按照子链业务交易的业务状态读数据、第一子链交易执行结果和第一交易汇总区块的组合顺序进行组合,得到第一交易汇总区块数据,其具体组合顺序可以根据实际需求确定,此处不做限定。
S104、将第一交易汇总区块数据通过业务节点上传给共识节点;共识节点用于调用汇总业务处理数据获取第一交易汇总区块,为第一交易汇总区块配置第一区块锁定时长,且生成第一交易汇总区块的区块待确认事件,区块待确认事件用于指示验证节点基于第一交易汇总区块和子链业务交易的业务状态读数据,生成第一零知识证明,第一零知识证明用于指示共识节点在第一区块锁定时长内,基于第一交易汇总区块数据对第一零知识证明进行第一证明验证,且在第一证明验证成功时,生成第一交易汇总区块的区块确认成功信息。
其中,可以理解的是,该共识节点可以为共识网络中的任一共识节点,例如可以为上述图2中的共识节点212a,将第一交易汇总区块数据通过业务节点上传到共识节点的数据交互过程可以参照上述图2中的相关描述,此处不做赘述。
其中,该区块确认成功信息可以为用于指示交易汇总区块确认成功的信息。可以理解的是,生成区块确认成功信息的方法可以参照后续图7实施例的相关描述,此处不做赘述。其中,调用汇总业务处理数据获取第一交易汇总区块,为第一交易汇总区块配置第一区块锁定时长,且生成第一交易汇总区块的区块待确认事件的相关描述,可以参见后续图7实施例的相关描述。
具体的,将第一交易汇总区块数据通过业务节点上传给共识节点,可以包括以下步骤:基于共识网络的业务主链上的主链业务交易的交易格式,对第一交易汇总区块数据进行交易封装,得到待写入共识网络的业务主链的区块确认交易;进一步的,将区块确认交易通过业务节点上传给共识节点。
其中,该区块确认交易可以为对第一交易汇总区块数据进行交易封装得到的主链业务交易,该区块确认交易可以用于指示共识节点对第一交易汇总区块进行确认。
可以理解的是,该主链业务交易的交易格式用于指示能够写入业务主链的业务交易的数据结构。该主链业务交易的交易格式相当于提供了一种标准的方法,用于将交易信息封装在区块链中,以便在网络上进行安全可靠的交易。该主链业务交易的交易格式可以指示主链业务交易包括的参数字段。例如,主链业务交易的交易格式可以指示交易的交易发起的信息、待调用的智能合约(即业务处理数据)的标识、交易的详情信息、交易的签名信息等等参数字段。例如,对第一交易汇总区块数据进行交易封装可以为将第一交易汇总区块数据作为主链业务交易的交易详情信息,并且将汇总节点的信息确定为交易发起者的信息,将该子链交易汇总服务节点对应的汇总业务处理数据的数据标识(也称合约标识)作为待调用的智能合约的标识,并生成交易的签名信息,由此基于所确定的交易参数组装得到交易确认区块。
可以理解的是,将区块确认交易通过业务节点上传给共识节点,可以参照上述将交易汇总区块数据通过业务节点上传给共识节点的相关描述,也就是说,汇总节点将区块确认交易发送至所连接的业务节点(如上述的业务节点2),然后业务节点2将区块确认交易发送至第一层级业务节点(如上述的业务节点1),进而业务节点1将区块确认交易发送至共识网络入口(如上述的图2中的共识网络入口201a),共识网络入口201a将区块确认交易发送至共识节点。
可以理解的是,对于汇总节点来说,也可以在打包得到一个交易汇总区块后,立即将该交易汇总区块的交易汇总区块数据上传到共识节点;汇总节点也可以累积多个交易汇总区块的交易汇总区块数据后,将多个交易汇总区块的交易汇总区块数据一起进行上传,此处不做限定。
可选的,本申请实施例还包括:通过子链交易汇总服务节点获取第二子链业务交易的原始交易数据,将第二子链业务交易的原始交易数据通过业务节点发送给验证节点,以使验证节点在获取到第二子链业务交易的原始交易数据时,执行基于第一交易汇总区块和子链业务交易的业务状态读数据,生成第一零知识证明的步骤。
可以理解的是,将第二子链业务交易的原始交易数据通过业务节点发送给验证节点,可以包括:汇总节点将第二子链业务交易的原始交易数据发送至所连接的业务节点(如上述的业务节点2),然后业务节点2将第二子链业务交易的原始交易数据发送至第一层级业务节点(如上述的业务节点1),进而业务节点1将第二子链业务交易的原始交易数据发送至共识网络入口(如上述的图2中的共识网络入口201a),共识网络入口201a将第二子链业务交易的原始交易数据发送至验证节点。验证节点在获取到第二子链业务交易的原始交易数据时,执行基于从汇总业务处理数据中所获取到的第一交易汇总区块和子链业务交易的业务状态读数据,生成第一零知识证明的步骤,其具体方法可以参照后续图10实施例中的相关描述,此处不做赘述。可以理解的是,该验证节点是安全可靠的,第一子链业务交易的原始交易数据中包含敏感数据,则将第二子链业务交易的原始交易数据直接发送至验证节点以在验证节点中执行该第一子链业务交易,而不需要将含敏感数据的原始交易数据发送至共识节点,有助于提升交易数据的安全性和隐私性。
可以理解的是,本申请实施例中,子链业务交易的原始交易数据可以直接存储在汇总节点中,也可以存储在与汇总节点不同的远程节点中。进而,通过子链业务交易汇总服务获取第二子链业务交易的原始交易数据,可以为从汇总节点本地获取(即直接从汇总节点中的存储空间中读取),也可以为从远程节点中远程获取,即通过一定的数据交互手段(如发送原始交易数据获取请求)从不同于该汇总节点的远程节点中获取,此处不做限定。
可以理解的是,由于第二子链业务交易中包括敏感数据,由此可以不将第二子链业务交易的原始交易数据写入交易汇总区块,从而保障敏感数据的安全性和隐私性。并且,可以直接将第二子链业务交易的原始交易数据发送至验证节点,以计算第一零知识证明。该第一零知识证明可以为第一交易汇总区块所对应的零知识证明。由此可以在保障子链业务交易中的敏感数据的安全性的同时,能够实现对交易汇总区块的快速确认。
S105、在接收到共识节点返回的区块确认成功信息时,基于区块确认成功信息确认将第一交易汇总区块写入业务子链上。
其中,可以理解的是,如上述,若汇总节点在打包得到第一交易汇总区块后就将第一交易汇总区块写入业务子链,则在获取到区块确认信息后,可以对写入业务子链的第一交易汇总区块进行确认。若汇总节点在打包得到第一交易汇总区块后,将第一交易汇总区块写入账本缓存,则在获取到区块确认信息后,可以将第一交易汇总区块写入业务子链,并对第一交易汇总区块进行确认。
可以理解的是,共识节点返回的区块确认成功信息中可以包括确认成功的交易汇总区块的区块高度,则基于区块确认成功信息确认将第一交易汇总区块写入业务子链上,可以包括:基于区块确认成功信息中的区块高度确定第一交易汇总区块,并确认将第一交易汇总区块写入业务子链。
可选的,在调用子链交易汇总服务节点对子链业务交易进行打包,得到第一交易汇总区块之后,本申请实施例还可以包括:将第一交易汇总区块添加至业务子链;进一步的,在接收到共识节点返回的第一交易汇总区块的区块确认失败信息时,基于区块确认失败信息对业务子链上的第一交易汇总区块进行区块回滚处理;区块确认失败信息为共识节点在第一区块锁定时长内,基于证明验证成功信息将第一交易汇总区块确定为非法区块时所生成的;证明验证成功信息为共识节点在接收到第一交易汇总区块的非法区块验证证明时,将第一交易汇总区块的区块参考信息和区块验证信息进行信息对比,且在信息对比不一致时所得到的;区块参考信息为共识节点从汇总业务处理数据中,所获取的子链业务交易的第一子链交易执行结果;区块验证信息为共识节点执行第一交易汇总区块中的子链业务交易所得到的第二子链交易执行结果。
可以理解的是,该区块确认失败信息可以为用于指示交易汇总区块确认失败的信息。可以理解的是,生成区块确认失败信息的方法可以参照后续图7实施例的相关描述,此处不做赘述。可以理解的是,信息比对也可以称为信息对比。可以理解的是,若获取到了区块确认失败信息,则表示第一交易汇总区块为非法区块,即第一交易汇总区块中包含非法交易,例如,第一交易汇总区块中包括存在双重支付的非法交易。可以理解的是,在检测到非法交易时,可以惩罚提交非法交易的对象,如可以设置提交非法交易的对象的在一定时间范围内无法进行交易以惩罚该对象。可以理解的是,共识节点在对交易汇总区块确认失败时,汇总节点就可以对业务子链上的区块进行区块回滚,由此避免业务对象发起的不合规的交易别写入业务子链,保障业务子链上的区块的正确性和安全性,进而可以提升整个分层区块链系统的安全性。
其中,区块回滚处理可以包括销毁(也称撤销、删除)第一交易汇总区块以及第一子链交易汇总之后的交易汇总区块,且撤销第一交易汇总区块中的子链业务交易的以及第一交易汇总区块后的区块(即区块高度大于第一交易汇总区块的区块)中的子链业务交易的交易执行结果,换言之,也就是将业务子链恢复到对第一交易汇总区块进行打包前的状态。区块回滚处理,也可以称为回滚处理、区块回滚等等。可选的,在对区块回滚处理后,可以重新对进行了区块回滚处理的交易汇总区块的中的子链业务交易进行打包,并且,可以重新执行重新打包得到的交易汇总区块中的子链业务交易。可选的,可以将进行区块回滚处理的第一交易汇总区块中的子链业务交易以及第一交易汇总区块后的区块中的子链业务交易中,除非法交易外的其他交易重新放入子链交易池中,以便于后续可以对子链交易池中的子链业务交易重新进行打包。
例如,请参见图6,图6是本申请实施例提供的一种区块回滚示意图。如图6所示,在业务子链60a中写入有区块P0、区块P1......区块PX-1、区块PX、区块PX+1等区块,其中P0、P1、PX-1、PX、PX+1等表示区块的区块高度,区块PX-1为区块PX的前一区块,区块PX+1为区块PX的后一个区块。可以理解的是,在接收到区块PX的区块确认失败信息后,可以对业务子链60a中区块PX以及区块PX之后的区块进行区块回滚处理,进行区块回滚后的业务子链参见业务子链60b所示,其中的区块PX和区块PX+1被删除。
可以理解的是,该非法区块验证证明可以用于指示请求对业务子链上的区块进行验证的证明,也可称为欺诈证明。该非法区块验证证明可以由能够查看第一交易汇总区块的业务对象所提交的,提交非法区块验证证明的业务对象可以称为挑战对象。也就是说,挑战对象可以通过提交非法区块验证证明指出业务子链上的某个区块高度(如区块高度为X)的交易汇总区块为非法区块,以请求共识节点对所指定的区块高度(如区块高度为X)的交易汇总区块是否为非法区块进行验证。若共识节点验证到所指定的区块高度的交易汇总区块为非法区块,则表示对非法区块验证证明验证成功(也就是挑战对象挑战成功),进而生成区块确认失败信息;若共识节点验证到所指定的区块高度的交易汇总区块不为非法区块,则表示对非法区块验证证明验证失败(也就是挑战对象挑战失败),则不生成区块确认失败信息。可以理解的是,对于第一交易汇总区块来说,仅允许在第一区块锁定时长内接收挑战对象提交的非法区块验证证明,一旦第一区块锁定时长被取消,则验证节点不再接收挑战对象提交的非法区块验证证明,或者说,不再对获取到的针对第一交易汇总区块非法区块验证证明进行验证。
请参见图7,图7是本申请实施例提供的另一种基于分层区块链网络的数据处理方法的流程示意图。分层区块链网络中包括业务网络和共识网络;业务网络中部署有汇总节点和业务节点,汇总节点中部署有子链交易汇总服务节点;共识网络中部署有共识节点和验证节点,共识节点部署有子链交易汇总服务节点对应的汇总业务处理数据;该方法由共识节点执行,例如,由上述的共识节点11a执行。该基于分层区块链网络的数据处理方法可以包括以下步骤S201-S204。
S201、获取与汇总节点相关联的第一交易汇总区块数据;第一交易汇总区块数据是由汇总节点通过业务节点所上传的;第一交易汇总区块数据是对第一交易汇总区块、子链业务交易的业务状态读数据和子链业务交易的第一子链交易执行结果进行数据封装所得到的;子链业务交易为汇总节点所获取到的待写入业务网络的业务子链的交易;第一交易汇总区块是由汇总节点调用子链交易汇总服务节点对子链业务交易进行打包得到的;子链业务交易的业务状态读数据和子链业务交易的第一子链交易执行结果是汇总节点调用子链交易汇总服务节点执行第一交易汇总区块时所记录的。
其中,可以理解的是,第一交易汇总区块数据的生成过程可以参照图4的实施例的相关描述,此处不做赘述。与汇总节点相关联的第一交易汇总区块数据,也就是由汇总节点所生成的第一交易汇总区块数据。
可以理解的是,如上述,第一交易汇总区块数据可以区块确认交易的形式上传至共识节点,则获取第一交易汇总区块数据,可以为从区块确认交易中解析得到的第一交易汇总区块数据。
具体的,获取与汇总节点相关联的第一交易汇总区块数据,可以包括以下步骤:接收由汇总节点通过业务节点上传的与第一交易汇总区块数据关联的区块确认交易;区块确认交易是业务节点在基于主链业务交易的交易格式对第一交易汇总区块数据进行交易封装后所得到的;主链业务交易为业务主链上的交易;进一步的,在执行区块确认交易时,调用汇总业务处理数据对区块确认交易进行交易解封,得到区块确认交易中的第一交易汇总区块数据。
可以理解的是,该区块确认交易的生成过程可以参照图4的实施例中的相关描述,此处不做赘述。可以理解的是,调用汇总业务处理数据对区块确认交易进行交易解封,也就是调用汇总业务处理数据从区块确认交易的交易参数中解析得到第一交易汇总区块数据。例如,参照上述描述区块确认交易中包括的交易参数可以包括:交易的交易发起的信息、待调用的智能合约的标识、交易的详情信息、交易的签名信息等信息,则可以从区块确认交易的交易参数中确定待调用的智能合约的标识,从而在待调用的智能合约的标识为汇总业务处理数据的标识时,调用汇总业务处理数据对区块确认交易的交易参数进行解析,从而可以从区块确认交易的详情信息这一交易参数中获取到第一交易汇总区块数据。
可以理解的是,汇总业务处理数据可以为用于对交易汇总区块进行确认的处理数据,也就是一个智能合约。可以理解的是,调用汇总业务处理数据对区块确认交易进行交易解封的前提,可以为业务主链上部署有汇总业务处理数据。可以理解的是,一个子链交易汇总服务节点在业务主链上对应一个汇总业务处理数据,即不同子链交易汇总服务节点需要部署相应的汇总业务处理数据,由此才能在业务主链上对由相应的子链交易汇总服务节点进行打包得到的交易汇总区块进行确认。
具体的,本申请实施例还可以包括以下步骤:在接收到针对汇总业务处理数据的处理数据部署请求时,从处理数据部署请求中获取数据部署关键信息,基于数据部署关键信息中的零知识证明验证函数,在业务主链上部署汇总业务处理数据;零知识证明验证函数为汇总业务处理数据中用于对第一零知识证明进行证明验证时的处理函数。
其中,该合约部署请求可以为用于指示部署汇总业务处理数据的请求。可以理解的是,该合约部署关键信息可以包括待部署的汇总业务处理数据的处理函数,该处理函数也可以称为合约方法,即用于执行相应处理过程的程序代码。
可以理解的是,零知识证明验证函数可以为用于对零知识证明进行证明验证的处理函数,进而共识节点可以具体调用汇总业务处理数据中的零知识证明验证函数对零知识证明进行证明验证。
可以理解的是,该合约部署关键信息中还可以包括数据解封函数,锁定时长配置函数等等处理函数(也称合约函数)。其中数据解封函数可以为汇总业务处理数据中用于对获取到的交易汇总区块数据进行数据解封得到交易汇总区块的处理函数;锁定时长配置函数可以为汇总业务处理数据中用于为交易汇总区块配置区块锁定时长,且生成交易汇总区块的区块待确认事件的处理函数,由此可以基于合约部署关键信息中的零知识证明验证函数、数据解封函数,锁定时长配置函数(统称为处理函数),在业务主链上部署汇总业务处理数据,进而共识节点可以通过汇总业务处理数据对链下打包的区块自动进行验证,不需要人为进行干预,提升对交易汇总区块的验证的效率和自动化。并且,由于区块链上的智能合约可验证且不可篡改,由此可以保障对交易汇总区块的整个确认过程的安全性。
S202、调用汇总业务处理数据获取第一交易汇总区块,为第一交易汇总区块配置第一区块锁定时长,且生成第一交易汇总区块的区块待确认事件;区块待确认事件用于指示验证节点基于第一交易汇总区块和子链业务交易的业务状态读数据,生成第一零知识证明。
其中,第一区块锁定时长可以为第一交易汇总区块的区块锁定时长,区块锁定时长可以为用于对区块进行锁定以校验区块的合法性的时长,也就是说,在该区块锁定时长内,区块暂时不会被确认,且可以在接收挑战对象对交易汇总区块的合法性的挑战。例如,在第一区块锁定时长内,共识节点可以接收挑战者(也称挑战对象)对第一交易汇总区块的合法性的挑战。区块待确认事件可以为表示交易汇总区块等待进行确认的事件,进而可以验证节点可以在探测到区块待确认事件时,为该第一交易汇总区块生成第一零知识证明。
具体的,调用所述汇总业务处理数据获取第一交易汇总区块,为第一交易汇总区块配置第一区块锁定时长,且生成第一交易汇总区块的区块待确认事件,可以包括以下步骤:调用汇总业务处理数据中的数据解封函数,对获取到的第一交易汇总区块数据进行数据解封,解封得到第一交易汇总区块;进一步的,调用汇总业务处理数据中的锁定时长配置函数,为第一交易汇总区块配置第一区块锁定时长,且生成第一交易汇总区块的区块待确认事件。
可以理解的是,如上述,该数据解封函数以及锁定时长配置函数可以参照上述描述,也就是汇总业务处理数据中用于执行相应处理过程的程序,此处不做赘述。
可以理解的是,对第一交易汇总区块数据进行数据解封,相当于上述进行数据封装的逆过程,也就是基于数据封装格式从第一交易汇总区块数据中分别获取到上述用于数据封装得到该第一交易汇总区块数据的第一交易汇总区块、子链业务交易的业务状态读数据和第一子链交易执行结果。
可以理解的是,为第一交易汇总区块配置的第一区块锁定时长(也称挑战期),可以为一个允许接收挑战对象进行挑战的时长,其中,挑战对象进行挑战也就是挑战对象向共识节点提交非法区块验证证明。例如,该第一区块锁定时长可以为10天,则在从为第一交易汇总区块配置的第一区块锁定时长的时刻起,10天之内允许挑战对象进行挑战。
具体的,子链业务交易的交易数量为N个,N为正整数;N个子链业务交易包含第一子链业务交易和第二子链业务交易;第一子链业务交易的交易类型为第一交易类型;第二子链业务交易的交易类型为第二交易类型;第一交易类型不同于第二交易类型;子链业务交易的业务状态读数据包含第一状态数据和第二状态数据;第一状态数据为在执行N个子链业务交易中的第一子链业务交易时所读取的状态数据;第二状态数据为在执行N个子链业务交易中的第二子链业务交易时所读取的状态数据;子链业务交易的第一子链交易执行结果包含第一交易执行结果和第二交易执行结果;第一交易执行结果为基于第一状态数据执行第一子链业务交易后所得到的交易执行结果;第二交易执行结果为基于第二状态数据执行第二子链业务交易后所得到的交易执行结果;本申请实施例还可以包括:在解封得到第一交易汇总区块时,同步解封得到第一子链业务交易的第一状态数据和第一交易执行结果、第二子链业务交易的第二状态数据和第二交易执行结果。
其中,可以理解的是,第一子链业务交易的第一状态数据与第二子链业务交易的第二状态数据可以统称为上述的子链业务交易的业务状态读数据。第一交易执行结果和第二交易执行结果可以统称为上述的第一子链交易执行结果。可以理解的是,第一交易类型、第二交易类型的相关描述可以参照上述图4实施例的相关描述,此处不做赘述。可以理解的是,解封得到第一子链业务交易的第一状态数据和第一交易执行结果、第二子链业务交易的第二状态数据和第二交易执行结果,可以为调用汇总业务处理数据中的数据解封函数从第一交易汇总区块数据中,解封得到子链业务交易的业务状态读数据和第一子链交易执行结果。其中子链业务交易的业务状态读数据包括第一状态数据,第一子链交易执行结果包括第一交易执行结果和第二交易执行结果。
S203、在第一区块锁定时长内时,基于第一交易汇总区块数据确定用于验证第一零知识证明的验证参数,通过验证参数和第一零知识证明所携带的证明参数,对第一零知识证明进行第一证明验证,在第一证明验证成功时,得到第一交易汇总区块的区块确认成功信息。
其中,可以理解的是,验证参数可以为用于对第一零知识证明进行验证的参数,证明参数可以为第一零知识证明所携带的参数。第一证明验证可以用于指示对零知识证明进行证明验证。
可以理解的是,对第一零知识证明进行第一证明验证需要在第一区块锁定时长内进行,若第一交易汇总区块的待确认时间戳达到第一区块锁定时长(也称区块锁定时长到期),或者第一区块锁定时长被取消,则表示第一交易汇总区块的待确认时间戳均不在第一区块锁定时长内,因为此时第一交易汇总区块已经确认成功或者已经确认失败,则不需要再对第一零知识证明进行证明验证,由此可以通过区块锁定时长的状态(如取消或到期),来避免交易汇总区块被确认成功或确认失败时仍进行零知识证明的验证,减少计算资源的浪费。
具体的,在第一区块锁定时长内时,基于第一交易汇总区块数据确定用于验证第一零知识证明的验证参数,通过验证参数和第一零知识证明所携带的证明参数,对第一零知识证明进行第一证明验证,可以包括以下步骤:在第一区块锁定时长内时,从解封得到的第一交易汇总区块中,获取第一子链业务交易的原始交易数据和第二子链业务交易的交易哈希数据;第二子链业务交易的交易哈希数据是对第二子链业务交易的原始交易数据进行哈希计算后所得到的;进一步的,基于第一状态数据、第一交易执行结果、第二状态数据、第二交易执行结果、第一子链业务交易的原始交易数据和第二子链业务交易的交易哈希数据,确定用于验证第一零知识证明的验证参数;进一步的,调用汇总业务处理数据中的零知识证明验证函数,获取第一零知识证明所携带的证明参数,在将验证参数输入至证明参数所在的证明函数时,对第一零知识证明进行第一证明验证,得到针对证明函数的函数验证结果;证明函数为用于验证第一零知识证明的函数;证明函数验证结果包含证明函数验证成功结果;证明函数验证成功结果是在将验证参数输入至证明函数,使得证明参数所在的证明函数满足证明条件时所确定的;进一步的,若函数验证结果为证明函数验证成功结果,则确定对第一零知识证明进行的第一证明验证成功。
可以理解的是,由于第二子链业务交易中包括敏感数据,且为了保障敏感数据的安全性,第二子链业务交易的原始交易数据未上传至共识节点,则在对第一零知识证明进行第一证明验证时,是基于第二子链业务交易的交易哈希数据作为验证参数进行第一证明验证的。
可以理解的是,获取的第一子链业务交易的原始交易数据也就是上述的第一子链业务交易的第一交易数据信息,获取的第二子链业务交易的交易哈希数据也就是上述的第二子链业务交易的第二交易数据信息。换言之,确定验证参数可以包括:在第一区块锁定时长内时,从解封得到的第一交易汇总区块中,获取子链业务交易的交易数据信息;第一子链业务交易的交易数据信息为基于第一子链业务交易的原始交易数据确定的第一交易数据信息,第二子链业务交易的交易数据信息为基于第而子链业务交易的交易哈希数据确定的第二交易数据信息;进一步的,基于子链业务交易的状态数据、子链业务交易的第一子链交易执行结果、子链业务交易的交易数据信息,确定用于验证第一零知识证明的验证参数。
可以理解的是,零知识证明验证函数可以为上述的汇总业务处理数据中的用于对零知识证明进行证明验证的处理函数(即汇总业务处理数据中的方法)。该证明函数可以为证明参数所在的一个函数,也就是相当于一个等式,对零知识证明的第一证明验证,就相当于确定证明函数是否成立。该证明条件可以用于指示证明函数成立。函数验证结果可以包括证明函数验证成功结果或者证明函数验证失败结果。其中,证明函数验证成功结果可以为是将验证参数输入至证明函数使得证明函数满足证明条件(即证明函数成立)时所确定的,证明函数验证失败结果可以为是将验证参数输入至证明函数使得证明函数不满足证明条件(即证明函数不成立)时所确定的。在得到证明函数验证成功结果时,则表示第一零知识证明进行的第一证明验证成功;在得到证明函数验证失败结果时,则表示第一零知识证明进行的第一证明验证失败。例如,基于证明参数构建得到的证明函数可以为P(s)=H(s)T(s),其中,s在进行零知识证明的计算和验证前所确定的一个随机数,T(s)可以为共识节点已知的一个多项式,P(s)和H(s)可以为基于零知识证明的证明参数所确定的多项式。在将验证参数输入至P(s)=H(s)T(s)后,若该证明函数成立,也就相当于P(s)=H(s)T(s)这一等式成立,则得到证明函数验证成功结果,表示对第一零知识证明的第一证明验证成功,反之,若该证明函数成立,则得到证明函数验证失败结果,表示对第一零知识证明的第一证明验证失败。
可以理解的是,第一交易汇总区块中可以同时包括第一子链业务交易和第二子链业务交易,或者,第一交易汇总区块中可以仅包括第一子链业务交易,或者,第一交易汇总区块中可以仅包括第二子链业务交易,具体由实际情况确定,此处不做限定。进一步可以理解的是,若第一交易汇总区块中仅包括第一子链业务交易,则可以基于第一状态数据、第一交易执行结果、第一子链业务交易的原始交易数据,确定用于验证第一零知识证明的验证参数;若第一交易汇总区块中仅包括第二子链业务交易,则可以基于第二状态数据、第二交易执行结果、第二子链业务交易的交易哈希数据,确定用于验证第一零知识证明的验证参数,其具体的验证过程参照上述描述,此处不做赘述。
可以理解的是,共识节点为第一交易汇总区块的待确认时间戳达到第一区块锁定时长时,共识节点可以自动对第一交易汇总区块确认成功,由此可以避免验证节点出现故障导致零知识证明无法正常计算时,出现交易汇总区块一直无法确认的情况,并且,共识节点在第一区块锁定时长内可以接收挑战对象针对第一交易汇总区块的非法区块验证证明,第一交易汇总区块的待确认时间戳达到第一区块锁定时长的前提条件是,不存在挑战对象挑战成功,且未对相应的零知识证明验证成功(如对第一零知识证明进行的第一证明验证失败或者未获取到第一零知识证明)。其中,在一定时长内没有挑战对象挑战成功,就可以确认该交易汇总区块不为非法区块,进而共识节点可以确定第一交易汇总区块确认成功。
可选的,本申请实施例还包括:在第一交易汇总区块的待确认时间戳达到第一区块锁定时长时,得到第一交易汇总区块的区块确认成功信息。
可以理解的是,在第一交易汇总区块的待确认时间戳达到第一区块锁定时长时,也就会取消第一交易汇总区块的第一区块锁定时长。第一交易汇总区块的待确认时间戳达到第一区块锁定时长的前提条件是,不存在挑战对象挑战成功,且未对相应的零知识证明验证成功(如对第一零知识证明进行的第一证明验证失败或者未获取到第一零知识证明)。
可选的,在第一交易汇总区块的待确认时间戳达到第一区块锁定时长之前,本申请实施例还包括:在第一证明验证失败时,通知验证节点重新计算第一交易汇总区块的第一零知识证明。
可以理解的是,对第一零知识证明进行的第一证明验证失败,可能是由验证节点未基于正确的交易数据以及业务状态读数据计算零知识证明,也可能是由于零知识证明的格式出错等等原因,不一定是由于交易汇总区块为非法区块,因此,在第一证明验证失败时,不能直接确定第一交易汇总区块确认失败,进而可以通知验证节点重新计算第一零知识证明。验证节点在重新计算得到第一零知识证明时,验证节点可以向共识节点提交重新计算得到的第一零知识证明,进而共识节点可以对重新计算的第一零知识证明进行第一证明验证。可以理解的是,若共识节点在对重新计算的第一零知识证明验证失败时,还可以再次通知验证节点重新计算第一零知识证明。可以理解的是,共识节点可以确定一个证明重复计算阈值,在重新计算第一零知识证明的次数达到证明重复计算阈值时,不再通知验证节点重新计算第一零知识生命,而是等待挑战对象进行挑战直至第一区块锁定时长的结束。该证明重复计算阈值可以为共识节点通知验证节点重新计算第一零知识证明的最大次数,通过指定该证明重复计算阈值,可以避免验证节点无限次计算零知识证明,减少计算资源的浪费。
S204、将区块确认成功信息返回至汇总节点,以使汇总节点基于区块确认成功信息确认将第一交易汇总区块写入业务子链上。
可以理解的是,将区块确认成功信息返回至汇总节点的数据传输过程可以参照上述描述,此处不做赘述。汇总节点基于区块确认成功信息确认将第一交易汇总区块写入业务子链上可以参照上述描述,此处不做赘述。
可以理解的是,在第一区块锁定时长内,共识节点可以接收挑战对象提交的非法区块验证证明,并对非法区块验证证明进行证明验证,以确定挑战对象是否挑战成功,若挑战成功,则可以生成区块确认失败信息,若挑战失败,则可以等待下一次挑战,直至区块锁定时长(挑战期)结束(即交易汇总区块的待确认时间戳达到区块锁定时长),或者直至对相应的零知识证明进行的第一证明验证成功。可以理解的是,若挑战对象挑战成功,则相当于挑战对象通过提交欺诈证明来揭示业务对象提交非法交易的行为,并进而共识节点可以对挑战对象进行奖励,如奖励挑战对象一定数量的链上资源。
具体的,本申请实施例还可以包括以下步骤:在第一区块锁定时长内,接收到第一交易汇总区块的非法区块验证证明时,基于从汇总业务处理数据中,所获取的子链业务交易的第一子链交易执行结果确定第一交易汇总区块的区块参考信息;进一步的,从汇总业务处理数据中获取第一交易汇总区块,执行第一交易汇总区块中的子链业务交易得到的第二子链交易执行结果,基于第二子链交易执行结果确定第一交易汇总区块的区块验证信息;进一步的,将区块参考信息和区块验证信息进行信息对比,得到信息对比结果;进一步的,在信息对比结果指示区块参考信息和区块验证信息对比不一致时,得到对非法区块验证证明进行第二证明验证的证明验证成功信息,且在基于证明验证成功信息将第一交易汇总区块确定为非法区块时,生成第一交易汇总区块的区块确认失败信息,且取消第一交易汇总区块的第一区块锁定时长;进一步的,将针对第一交易汇总区块的区块确认失败信息发送至汇总节点,以使汇总节点基于区块确认失败信息对业务子链上的第一交易汇总区块进行区块回滚处理。
可以理解的是,该区块参考信息为由汇总节点执行交易汇总区块所得到的子链交易执行结果(如上述的第一子链交易执行结果)。该区块验证信息可以为由共识节点执行子链业务交易所得到的子链交易执行结果(即第二子链交易执行结果),该第二子链交易执行结果也就是由共识节点执行子链业务交易所得到的子链交易执行结果。
可以理解的是,对于第二子链业务交易来说,共识节点未获取到第二子链业务交易的原始交易数据,则共识节点执行第一交易汇总区块中的子链业务交易得到的第二子链交易执行结果,可以包括:从第一交易汇总区块中获取第一子链业务交易的原始交易数据,基于与第一子链业务交易关联的业务状态读数据和第一子链业务交易的原始交易数据执行第一子链业务交易,得到第一子链业务交易的第三交易执行结果;从第一交易汇总区块中获取第二子链业务交易的交易哈希数据,将第二子链业务交易的交易哈希数据发送至业务管理节点,以使业务管理节点基于第二子链业务交易的交易哈希数据从汇总节点获取第二子链业务交易的原始交易数据,并执行第二子链业务交易得到第二子链业务交易的第四交易执行结果;接收业务管理节点返回的第二子链业务交易的第四交易执行结果,基于第一子链业务交易的第三交易执行结果和第二子链业务交易的第四交易执行结果,确定子链业务交易的第二子链交易执行结果。
其中,该业务管理节点可以为具有获取汇总节点中的包含敏感数据的子链业务交易(如第一子链业务交易)的原始交易数据的权限的节点,该业务管理节点具有一定的权威性,表示区块链网络中的各个节点相信该节点不会泄露第二子链业务交易的原始交易数据,也可以称为权威节点。可以理解的是,该业务管理节点的数量可以为多个,进而每个业务管理节点均可以获取第二子链业务交易的原始交易数据,并执行该第二子链业务交易,得到第二子链业务交易的交易执行结果,然后各个业务管理节点所得到的第二子链业务交易的交易执行结果进行投票,将达成投票一致性条件(如各个业务管理节点中大于三分之二的节点得到的交易执行结果一致)的第二子链业务交易的交易执行结果返回至共识节点。其中,第三交易执行结果可以为由共识节点执行第一子链业务交易得到的交易执行结果,第四交易执行结果可以为由业务管理节点执行第二子链业务交易得到的交易执行结果。
可以理解的是,该信息对比结果(也称信息比对结果)可以为将区块参考信息和区块验证信息进行信息对比得到的结果,该信息对比结果可以用于指示区块参考信息和区块验证信息对比不一致,或者区块参考信息和区块验证信息对比一致。可以理解的是,将区块参考信息和区块验证信息进行信息对比,可以为将区块参考信息和区块验证信息中的每个子链业务交易的交易执行结果分别进行对比,若存在任一个子链业务交易的交易执行结果对比不一致,则表示区块参考信息和区块验证信息对比不一致。可以理解的是,一个子链业务交易的交易执行结果对比不一致,则可以表示该子链业务交易为非法交易,进而该非法交易所在的第一交易汇总区块也就是非法区块。例如,可以将区块参考信息中的第一交易执行结果和区块验证信息中的第三交易执行结果对比,若对比结果指示两者一致,则表示第一子链业务交易不为非法交易,反之,若两者对比结果不一致,则表示第一子链业务交易为非法交易。同理,可以将区块参考信息中的第二交易执行结果和区块验证信息中的第四交易执行结果对比,若对比结果指示两者一致,则表示第二子链业务交易不为非法交易,反之,若两者对比结果不一致,则表示第二子链业务交易为非法交易。
其中,第二证明验证可以为对非法区块验证证明进行证明验证。该证明验证成功信息可以用于指示对非法区块验证证明进行的第二证明验证成功,也就是挑战对象挑战成功,进而第一交易汇总区块就确认失败,即生成区块确认失败信息,且取消第一交易汇总区块的第一区块锁定时长。由此在验证节点计算零知识证明的同时,允许挑战对象的挑战,若挑战对象挑战成功,就可以不用对零知识证明进行验证,直接确认区块确认失败,由此可以更高效地完整区块的确认,即快速确定区块确认失败。
可以理解的是,在生成第一交易汇总区块的区块确认失败信息时,还可以生成区块确认失败事件,该区块确认失败事件可以用于指示验证节点不再提交第一交易汇总区块之后的交易汇总区块的零知识证明。另外,验证节点还可以停止对第一交易汇总区块之后的交易汇总区块的零知识证明的计算,因为一旦第一交易汇总区块确认失败,则第一交易汇总区块之后的交易汇总区块均会进行回滚,即使计算得到了第一交易汇总区块之后的交易汇总区块的零知识证明,也无法对第一交易汇总区块之后的交易汇总区块的确认成功,由此可以避免验证节点浪费计算资源去计算已回滚的区块的零知识证明,减少验证节点的计算资源的浪费。
例如,此处结合图示,对在交易汇总区块中包括交易类型为第二交易类型的第二链业务交易时的区块挑战过程进行阐述。请参见图8,图8是本申请实施例提供的一种区块挑战的交互场景示意图。如图8所示,挑战对象可以通过业务终端设备向业务节点发送交易汇总区块P1的非法区块验证证明K1(步骤S81)。交易汇总区块P1中的子链业务交易可以包括第二子链业务交易。进而业务节点将非法区块验证证明K1发送至共识节点集群210a(步骤S82)。可以理解的是,共识网络200a在获取到非法区块验证证明K1,可以对非法区块验证证明K1进行证明验证,此处以共识节点11c为例,对非法区块验证证明K1的证明验证过程进行阐述。可以理解的是,共识节点11c可以确定区块验证信息810a以及区块参考信息820a。其中,共识节点11c可以从汇总业务处理数据中确定交易汇总区块P1中的子链业务交易的第一子链交易执行结果,并基于该第一子链交易执行结果确定区块参考信息820a。
可以理解的是,由于共识节点接收到的交易汇总区块数据中是不包含第二子链业务交易的原始交易数据的,则可以通知业务管理节点基于该第二子链业务交易的交易哈希数据获取第二子链业务交易的原始交易数据,以执行第二子链业务交易。具体的,共识节点可以从交易汇总区块P1中确定出第二子链业务交易的交易哈希数据,进而向业务管理节点发送第二子链业务交易的交易哈希数据(步骤S83),然后业务管理节点基于第二子链业务交易的交易哈希数据请求从汇总节点获取第二子链业务交易的原始交易数据(步骤S84),且基于获取到的原始交易数据执行第二子链业务交易,得到第二子链业务交易的第四交易执行结果(步骤S85),然后向共识节点返回第二子链业务交易的第四交易执行结果(步骤S86)。共识节点可以基于业务管理节点返回的第二子链业务交易的第四交易执行结果确定区块验证信息810a。可以理解的是,若交易汇总区块P1中仅包括第二子链业务交易,则可以直接将业务管理节点返回的第二子链业务交易的第四交易执行结果确定为区块验证信息810a。若交易汇总区块P1中还包括第一子链业务交易,则共识节点可以从交易汇总区块中确定第一子链业务交易的原始交易数据,共识节点基于第一子链业务交易的原始交易数据执行第一子链业务交易,得到第一子链业务交易的第三交易执行结果,进而基于业务管理节点返回的第二子链业务交易的第四交易执行结果,以及得到的第一子链业务交易的第三交易执行结果确定为区块验证信息810a。
进一步的,可以基于区块验证信息810a和区块参考信息820a进行信息比对,得到信息对比结果830a。可以理解的是,在信息对比结果指示区块验证信息810a和区块参考信息820a信息对比不一致时,生成区块确认失败信息,也就是表示对非法区块验证证明K1验证成功,也就是挑战对象挑战成功。进一步的,共识节点11c可以向汇总节点返回交易汇总区块P1的区块确认失败信息(区步骤S87),进而汇总节点可以对交易汇总区块P1进行区块回滚。
又如,此处结合图示,对在交易汇总区块中不包括交易类型为第二交易类型的第二链业务交易时的区块挑战过程进行阐述。请参见图9,图9是本申请实施例提供的另一种区块挑战的交互场景示意图。如图9所示,挑战对象可以通过业务终端设备向业务节点发送交易汇总区块P2的非法区块验证证明K2(步骤S91)。交易汇总区块P2中的子链业务交易可以仅包括第一子链业务交易。进而业务节点将非法区块验证证明K2发送至共识节点集群210a(步骤S92)。可以理解的是,共识节点在获取到非法区块验证证明K2时,可以对非法区块验证证明K2进行证明验证,此处以共识节点11c为例,对非法区块验证证明K2的证明验证过程进行阐述。可以理解的是,共识节点11c可以确定区块验证信息910a以及区块参考信息920a。其中,共识节点11c可以从汇总业务处理数据中确定交易汇总区块P2中的子链业务交易的第一子链交易执行结果,并基于该第一子链交易执行结果确定区块参考信息920a。
可以理解的是,由于交易汇总区块P2中仅包括第一子链业务交易,则共识节点可以从交易汇总区块中确定第一子链业务交易的原始交易数据,共识节点基于第一子链业务交易的原始交易数据执行第一子链业务交易,得到第一子链业务交易的第三交易执行结果,进而将得到的第一子链业务交易的第三交易执行结果确定为区块验证信息910a。
进一步的,可以基于区块验证信息910a和区块参考信息920a进行信息比对,得到信息对比结果930a。可以理解的是,在信息对比结果指示区块验证信息910a和区块参考信息920a信息对比不一致时,生成区块确认失败信息,也就是表示对非法区块验证证明K2验证成功,也就是挑战对象挑战成功。进一步的,共识节点11c可以向汇总节点返回交易汇总区块P2的区块确认失败信息(步骤S93),进而汇总节点可以对交易汇总区块P2进行区块回滚。
可以理解的是,共识节点对交易汇总区块的确认是需要按照区块的区块高度的从低到高的顺序进行的,则需要在前一个区块确认成功后,才能够进行下一个区块的零知识证明的验证。若在前一个区块确认失败后,则需要对后面生成的全部区块进行区块回滚。
具体的,本申请实施例还可以包括以下步骤:在获取到第二交易汇总区块数据中的第二交易汇总区块时,通过汇总业务处理数据为第二交易汇总区块配置第二区块锁定时长;第二交易汇总区块为第一交易汇总区块的下一区块;第二交易汇总区块是由汇总节点所打包得到的;进一步的,在得到第一交易汇总区块的区块确认成功信息时,取消第一交易汇总区块的第一区块锁定时长,且生成第一交易汇总区块的区块已确认事件;区块已确认事件用于指示验证节点在第二区块锁定时长内向共识节点发送第二交易汇总区块的第二零知识证明。
其中,该第二交易汇总区块为第一交易汇总区块的下一区块,该第二交易汇总区块的打包过程可以参照打包得到第一交易汇总区块的相关描述,第二交易汇总区块数据的生成过程可以参照上述生成第一交易汇总区块数据的相关描述,通过汇总业务处理数据为第二交易汇总区块配置第二区块锁定时长的过程,可以参照上述通过汇总业务处理数据为第一交易汇总区块配置第一区块锁定时长的相关描述,此处不做赘述。可以理解的是,第二交易汇总区块所打包的一批次的子链业务交易与第一交易汇总区块所打包的一批次的子链业务交易为不同的子链业务交易。可以理解的是,对于共识节点来说,可以不断接收到汇总节点发送的交易汇总区块数据,共识节点在获取到交易汇总区块数据时,可以将交易汇总区块数据中的交易汇总区块作为待确认区块,并为待确认区块配置区块锁定时长。例如,共识节点在获取到第一交易汇总区块数据时,可以将第一交易汇总区块数据中的第一交易汇总区块作为待确认区块,并为待确认区块配置第一区块锁定时长作为第一交易汇总区块的区块锁定时长;共识节点在获取到第二交易汇总区块数据时,可以通过第二交易汇总区块数据中的第二交易汇总区块对待确认区块进行更新,并为更新后的待确认区块配置第二区块锁定时长作为第二交易汇总区块的区块锁定时长。以此类推,共识节点在获取到每个交易汇总区块数据时,其处理过程均可以参照第一交易汇总区块数据的处理过程。
可以理解的是,得到第一交易汇总区块的区块确认成功信息,可以为对第一交易汇总区块的第一零知识证明验证成功时生成的,也可以为第一交易汇总区块的待确认时间戳达到第一区块锁定时长时生成的。可以理解的是,在共识节点可以通过该区块确认已确认事件通知验证节点提交下一区块的零知识证明,避免验证节点将已生成的全部零知识证明都发送到共识节点,减少共识节点的存储空间的浪费。并且,可以避免共识节点先对后一个区块进行确认的情况,保障区块确认过程的可靠性和有序性。
可以理解的是,该区块已确认事件,可以用于指示第一交易汇总区块已经确认成功,进而验证节点可以提交第一交易汇总区块的下一个区块(即第二交易汇总区块)的第二零知识证明。该第二零知识证明也就是第二交易汇总区块的零知识证明,第二零知识证明的生成过程可以参照生成第一零知识证明的相关描述,验证节点对第二零知识证明的验证过程也可以参见对第一零知识证明进行验证的相关描述,此处不做赘述。
请参见图10,图10是本申请实施例提供的一种区块确认流程的流程示意图。如图10所示,共识节点可以接收第一零知识证明(步骤S1001),进而检测是否达到第一区块锁定时长(步骤S1002)。如果达到第一区块锁定时长,则可以生成区块确认信息(步骤S1004);如果未达到第一区块锁定时长,则可以对第一零知识证明进行第一证明验证,并判断第一零知识证明是否验证成功(步骤S1003)。若第一零知识证明验证成功,则可以生成区块确认信息(步骤S1004),进而结束整个流程(步骤S1006);若第一零知识证明验证不成功,则可以通知验证节点重新计算第一零知识证明(步骤S1005),进而接收重新生成的第一零知识证明,以重复上述S1001之后的步骤。
可以理解的是,与此同时,共识节点还可以接收非法区块验证证明(步骤S1007),进而检测是否达到第一区块锁定时长(步骤S1008)。如果达到第一区块锁定时长,则可以生成区块确认信息(步骤S1004);如果未达到第一区块锁定时长,则可以对非法区块验证证明进行第二证明验证,进而判断非法区块验证证明是否验证成功(步骤S1009)。若非法区块验证证明验证成功,则可以生成区块确认失败信息(步骤S1010),进而结束整个流程(步骤S1006);若非法区块验证证明验证不成功,则可以等待下一个非法区块验证证明(步骤S1011),进而接收下一个非法区块验证证明,以重复上述S1007之后的步骤。可以理解的是,在得到区块确认成功信息或区块确认失败信息中的任一个时,均可以结束对第一交易汇总区块的确认流程,进而将区块确认信息(即区块确认成功信息或区块确认失败信息)发送至汇总节点,以便于汇总节点基于区块确认成功信息确认将第一交易汇总区块写入业务子链,或者基于区块确认失败信息对第一交易汇总区块进行区块回滚。
基于上述的描述,本申请实施例提出一种基于分层区块链网络的数据处理方法。请参见图11,图11是本申请实施例提供的再一种基于分层区块链网络的数据处理方法的流程示意图。分层区块链网络中包括业务网络和共识网络;业务网络中部署有汇总节点和业务节点,汇总节点中部署有子链交易汇总服务节点;共识网络中部署有共识节点和验证节点,共识节点部署有子链交易汇总服务节点对应的汇总业务处理数据;该方法由验证节点执行,例如,由上述的验证节点220a执行。该基于分层区块链网络的数据处理方法可以包括以下步骤S301-S303。
S301、在探测到共识节点生成的区块待确认事件时,基于区块待确认事件,从共识节点的汇总业务处理数据中获取第一交易汇总区块和第一交易汇总区块中的子链业务交易的业务状态读数据;区块待确认事件是共识节点在调用汇总业务处理数据获取到第一交易汇总区块数据中的第一交易汇总区块,且为第一交易汇总区块配置第一区块锁定时长时生成的;第一交易汇总区块数据是对第一交易汇总区块、第一交易汇总区块中的子链业务交易的业务状态读数据和子链业务交易的第一子链交易执行结果进行数据封装得到的;子链业务交易为汇总节点所获取到的待写入业务网络的业务子链的交易;第一交易汇总区块是由汇总节点调用子链交易汇总服务节点对子链业务交易进行打包得到的;子链业务交易的业务状态读数据和第一子链交易执行结果是汇总节点调用子链交易汇总服务节点执行第一交易汇总区块时所记录的。
其中,该区块待确认事件的相关描述可以参照上述图7实施例的相关描述,此处不做赘述。可以理解的是,验证节点探测共识节点生成的区块待确认事件可以采用订阅或轮询等方式。其中,采用订阅方式,也就是说,共识节点在生成区块待确认事件后,可以将消息主动推送给验证节点;采用轮询方式,也就是说,验证节点通过主动查询的方式从共识节点获取区块待确认事件,采用轮询方式需要设置好轮询间隔,轮询间隔也就是每次从共识节点查询区块待确认事件的时间间隔,例如,每间隔10秒(即轮询间隔)中从共识节点中查询一次。
可以理解的是,共识节点在获取到第一交易汇总区块数据后,可以对第一交易汇总区块数据进行数据解封,得到第一交易汇总区块、子链业务交易的业务状态读数据、第一子链交易执行结果,并将数据解封得到的数据写入汇总业务处理数据,进而验证节点可以从汇总业务处理数据中获取第一交易汇总区块和第一交易汇总区块中的子链业务交易的业务状态读数据。
S302、对第一交易汇总区块和子链业务交易的业务状态读数据进行证明计算处理,得到第一交易汇总区块的第一零知识证明。
可以理解的是,证明计算处理可以为计算得到交易汇总区块的零知识证明的处理过程。可以理解的是,计算第一零知识证明,可以包括:基于第一交易汇总区块确定子链业务交易的原始交易数据,调用零知识证明电路对子链业务交易的原始交易数据以及子链业务交易的业务状态读数据进行证明计算,得到第一交易汇总区块的第一零知识证明。其中,该零知识证明电路,可以为将子链业务交易的执行过程转换为数据运算电路的所得到的,通过零知识证明电路可以基于子链业务交易的原始交易数据以及子链业务交易的业务状态读数据执行该子链业务交易,从而得到子链业务交易的第三子链交易执行结果以及第一零知识证明。该第三子链交易执行结果可以为基于零知识证明电路执行子链业务交易得到的子链交易执行结果。可以理解的是,由于本申请实施例中,验证第一子链交易执行结果的正确性时,执行子链业务交易的过程实际上是在验证节点进行的,共识节点只执行对第一零知识证明进行验证这一涉及相对较少的计算量的步骤,大大减少了共识节点上的计算资源的消耗。
可以理解的是,该第三子链交易执行结果可以不需要发送至共识节点,而只需要将第一零知识证明发送至共识节点进行验证,因为在对第一零知识证明进行第一证明验证时,采用的是由汇总节点执行子链业务交易得到的第一子链交易执行结果作为验证参数,此时对第一零知识证明验证通过,则可以表示,第一子链交易执行结果为正确执行的子链交易执行结果,并且,验证节点是基于正确的子链业务交易的原始交易数据以及业务状态读数据进行零知识证明计算的,且第三子链交易执行结果与第一子链交易执行结果是一致的。
具体的,验证节点包括验证入口组件和验证组件;验证组件中部署有零知识证明电路;通过验证节点对第一交易汇总区块和子链业务交易的业务状态读数据进行证明计算处理,得到第一交易汇总区块的第一零知识证明,可以包括以下步骤:通过验证入口组件获取第一交易汇总区块中的子链业务交易的原始交易数据,并基于子链业务交易的原始交易数据,以及子链业务交易的业务状态读数据,确定证明生成任务,将证明生成任务发布至验证组件;进一步的,在验证组件接收到证明生成任务时,通过验证组件中部署的零知识证明电路对子链业务交易的原始交易数据,以及子链业务交易的业务状态读数据进行证明计算处理,得到第一交易汇总区块的第一零知识证明。
其中,可以理解的是,子链业务交易的原始交易数据来源可以根据子链业务交易的交易类型确定,若子链业务交易的交易类型为第一交易类型(即子链业务交易中不包括敏感数据),则子链业务交易的原始交易数据可以直接从汇总业务处理数据中的第一交易汇总区块的区块体中确定,即第二子链业务交易的原始交易数据是由共识节点向验证服务节点发送的;若子链业务交易的交易类型为第二交易类型(即子链业务交易中包括敏感数据),则子链业务交易的原始交易数据可以直接由汇总节点向验证节点进行发送。子链业务交易的业务状态读数据可以是由共识节点向验证节点发送的。可以理解的是,验证节点执行子链业务交易是通过零知识证明电路来保障的,只需要向共识节点提交计算得到的零知识证明,不需要向共识节点透露涉及到敏感数据的子链业务交易的原始交易数据,就可以向共识节点证明该子链业务交易的第一交易执行结果为正确的。
具体的,子链业务交易的交易数量为N个,N为正整数;N个子链业务交易包含第一子链业务交易和第二子链业务交易;第二子链业务交易不同于第一子链业务交易;那么通过验证入口组件获取第一交易汇总区块中的子链业务交易的原始交易数据,可以包括以下步骤:在第二子链业务交易的交易类型为第二交易类型时,获取由汇总节点通过业务节点发送的第二子链业务交易的第二原始交易数据;进一步的,在第一子链业务交易的交易类型为第一交易类型时,从第一交易汇总区块的区块体中获取第一子链业务交易的第一原始交易数据;第一交易类型不同于第二交易类型;进一步的,基于第一子链业务交易的第一原始交易数据和第二子链业务交易的第二原始交易数据,得到子链业务交易的原始交易数据。
其中,可以理解的是,第二原始交易数据可以为第二子链业务交易的原始交易数据,第二子链业务交易可以为交易类型为第二类型的子链业务交易。由此可以使得验证节点直接获取到由汇总节点发送包含敏感数据的交易的原始交易数据,保障交易数据的安全性和隐私性。
可选的,汇总节点通过业务节点发送第二子链业务交易的第二原始交易数据,可以为汇总节点在向共识节点发送第一交易汇总区块数据时,就将第一交易汇总区块中的第二子链业务交易的原始交易数据主动发送至验证节点,验证节点可以将接收到的第二子链业务交易的原始交易数据与第二子链业务交易的交易哈希数据关联存储,进而验证节点在需要获取该第二子链业务交易的原始交易数据时,基于第二子链业务交易的交易哈希数据查找该第二子链业务交易的原始交易数据。由此可以在需要获取第二子链业务交易的原始交易数据时,直接从验证节点本地获取(即不需要通过与其他节点进行数据交互获取原始交易数据),提升第二子链业务交易的原始交易数据的获取效率,进而提升零知识证明的计算效率。
可选的,汇总节点通过业务节点发送第二子链业务交易的第二原始交易数据,可以为汇总节点在需要获取该第二子链业务交易的原始交易数据时,向汇总节点发送用于指示获取第一子链业务交易的原始交易数据的原文数据获取请求,汇总节点在接收到原文数据汇总请求后,才通过业务节点向验证节点发送的发送该第二子链业务交易的第二原始交易数据。由此可以减少验证节点存储含敏感数据的子链业务交易的原始交易数据,有助于保障对子链业务交易中的敏感数据的隐私性和安全性。
可以理解的是,若验证入口组件与验证组件部署在不同的设备上,则部署有验证入口组件的设备称为验证入口节点,部署有验证组件的设备称为验证执行节点。那么,生成第一零知识证明可以包括:验证入口节点获取第一交易汇总区块中的子链业务交易的原始交易数据,并基于子链业务交易的原始交易数据,以及子链业务交易的业务状态读数据,确定证明生成任务,将证明生成任务发布至验证组件;进一步的,验证执行节点在接收到证明生成任务时,通过部署的零知识证明电路对子链业务交易的原始交易数据,以及子链业务交易的业务状态读数据进行证明计算处理,得到第一交易汇总区块的第一零知识证明,并将第一零知识证明返回至验证入口节点,以使验证入口节点将第一零知识证明提交至共识节点。
可选的,验证入口组件在生成证明任务之前,可以一次获取多个未确认的交易汇总区块(如该第一交易汇总区块)和对应的业务状态读数据,该未确认的交易汇总区块也就是未进行零知识证明提交,未确认成功且未确认失败(即挑战期未到期,且没有对象挑战成功的区块)的区块;进而,验证入口可以检测未确认的交易汇总区块是否已生成证明生成任务,若是,则可以不需要为该交易汇总区块生成证明生成任务,若否,则可以为其生成证明生成任务,并将生成的证明生成任务发布为验证组件。由此可以避免由于验证节点探测区块待确认事件出现故障,导致遗漏对汇总业务处理数据中的交易汇总区块的零知识证明计算,使得某个交易汇总区块的不能及时确认。
例如,请参见图12,图12是本申请实施例提供的一种基于双层区块链的场景交互示意图。如图12所示,验证节点中的验证入口组件部署在验证入口节点1201a上,并且存在部署有验证组件的验证执行节点集群,例如验证执行节点集群中包括验证执行节点1202a、验证执行节点1203a、验证执行节点1204a等等,此处不做限定。首先,验证入口节点1201a可以从共识节点(如共识节点31c)中获取第一交易汇总区块和子链业务交易的业务状态读数据(步骤S1201),并且验证入口节点1201a可以接收由汇总节点所发送的第二子链业务交易的第二原始交易数据(步骤S1202),具体的,汇总节点可以通过业务节点向验证入口节点发送第二子链业务交易的第二原始交易数据。进而验证入口节点可以获取子链业务交易的原始交易数据,基于子链业务交易的原始交易数据和子链业务交易的业务状态读数据生成证明生成任务(步骤S1203),其中,第一子链业务交易的原始交易数据可以为从第一交易汇总区块中得到,第二子链业务交易的原始交易数据由汇总节点发送。可以理解的是,验证入口节点1201a还可以基于负载均衡机制,确定用于处理证明生成任务的验证执行节点,由此可以确保每个验证执行节点的计算负载均衡,并且能够快速响应交易数据的计算请求(即快速响应证明生成任务)。例如所确定的验证执行节点为验证执行节点1204a,则可以向验证执行节点1204a发送证明生成任务(步骤S1204)。验证执行节点1204a中部署有零知识证明电路,验证执行节点1204a可以将子链业务交易的原始交易数据和子链业务交易的业务状态读数据输入至零知识证明电路,进而得到子链业务交易的第三子链交易执行结果和第一零知识证明。然后验证执行节点1204a可以向服务入口节点1201a发送第一零知识证明(步骤S1205)。进而验证入口节点1201a可以在第一交易汇总区块的前一交易汇总区块确认成功后,向共识节点(如共识节点31c)发送第一交易汇总区块的第一零知识证明(步骤S1206)。
S303、将第一交易汇总区块的第一零知识证明发送至共识节点,共识节点用于在第一区块锁定时长内时,基于第一交易汇总区块数据对第一零知识证明进行第一证明验证,且在第一证明验证成功时,生成第一交易汇总区块的区块确认成功信息,将区块确认成功信息返回至汇总节点;区块确认成功信息用于指示汇总节点基于区块确认成功信息确认将第一交易汇总区块写入业务子链上。
可以理解的是,将第一交易汇总区块的第一零知识证明发送至共识节点时,可以将第一零知识证明与第一交易汇总区块的区块高度一起提交至共识节点,进而共识节点可以在接收到第一零知识证明时,基于第一零知识证明所关联的区块高度确定所接收到的第一零知识证明为第一交易汇总区块的零知识证明。例如,验证节点返回至第一零知识证明时,可以按照(区块高度P1、零知识证明π)的形式进行提交。
可以理解的是,如上述,交易汇总区块应按照交易汇总区块的区块高度从低到高依次进行确认,则验证节点需要在探测到前一个交易汇总区块(例如区块高度为P区块)的区块已确认事件时,才向共识节点提交后一个交易汇总区块(例如区块高度为P+1区块)的零知识证明,由此保障交易汇总区块确认过程的有序进行。
具体的,在从汇总业务处理数据中获取到第二交易汇总区块时,生成第二交易汇总区块的第二零知识证明;第二交易汇总区块是共识节点从与汇总节点相关联的第二交易汇总区块数据中所获取到的;第二交易汇总区块为第一交易汇总区块的下一区块;第二交易汇总区块是由汇总节点所打包得到的;第二交易汇总区块配置有对应的第二区块锁定时长;进一步的,在从共识节点探测到第一交易汇总区块的区块已确认事件时,在第二区块锁定时长内向共识节点发送针对第二交易汇总区块的第二零知识证明;第一交易汇总区块的区块已确认事件是共识节点在得到针对第一交易汇总区块的区块确认成功信息时生成的。
其中,该第二交易汇总区块的相关描述可以参照上述图7实施例的相关描述,此处不做赘述。也就是说第二交易汇总区块可以为第一交易汇总区块的下一区块。其中,该第二零知识证明可以为第二交易汇总区块的零知识证明,第二零知识证明的生成过程可以参照上述第一零知识证明的相关描述,换言之,可以从共识节点的汇总业务处理数据中获取第二交易汇总区块以及第二交易汇总区块中的子链业务交易的业务状态读数据,进而基于第二交易汇总区块以及第二交易汇总区块中的子链业务交易的业务状态读数据,生成第二零知识证明。
可以理解的是,从共识节点探测第一交易汇总区块的区块已确认事件可以参照上述探测区块待确认事件的相关描述,即可以采用订阅或轮询的方式,此处不不做赘述。
可以理解的是,在第二区块锁定时长内向共识节点发送针对第二交易汇总区块的第二零知识证明,可以为在未探测到第二交易汇总区块的区块已确认事件或未探测到用于指示区块确认失败的区块确认失败事件时,均表示在第二区块锁定时长内,则可以向共识节点发送针对第二交易汇总区块的第二零知识证明。
可以理解的是,验证节点在探测到区块确认失败事件后,验证节点不再提交第一交易汇总区块之后的交易汇总区块(如第二交易汇总区块)的零知识证明。另外,验证节点还可以停止对第一交易汇总区块之后的交易汇总区块(如第二交易汇总区块)的零知识证明的计算,因为一旦第一交易汇总区块确认失败,则第一交易汇总区块之后的交易汇总区块均会进行回滚,即使计算得到了第一交易汇总区块之后的交易汇总区块的零知识证明,也无法对第一交易汇总区块之后的交易汇总区块的确认成功,由此可以避免验证节点浪费计算资源去计算已回滚的区块的零知识证明,减少验证节点的计算资源的浪费。
进一步的,请参见图13,图13是本申请实施例提供的一种基于分层区块链网络的数据处理方法的交互时序图,分层区块链网络中包括业务网络和共识网络;业务网络中部署有汇总节点和业务节点,汇总节点中部署有子链交易汇总服务节点;共识网络中部署有共识节点和验证节点,共识节点部署有子链交易汇总服务节点对应的汇总业务处理数据;该方法由汇总节点、共识节点和验证节点交互执行,这里的汇总节点可以为上述图2中的汇总节点A或汇总节点B,这里的共识节点可以为上述图1中的共识节点11a、共识节点12a等等,这里的验证节点可以为上述图1中的服务节点220a。如图13所示,该方法至少可以包括步骤S401-步骤S412。
S401、汇总节点获取待写入业务网络的业务子链上的子链业务交易,调用子链交易汇总服务节点对子链业务交易进行打包,得到第一交易汇总区块;
S402、汇总节点调用子链交易汇总服务节点执行第一交易汇总区块,并记录执行第一交易汇总区块中的子链业务交易的业务状态读数据和第一子链交易执行结果;
S403、汇总节点对第一交易汇总区块、子链业务交易的业务状态读数据和第一子链交易执行结果进行数据封装,得到第一交易汇总区块数据;
S404、汇总节点将第一交易汇总区块数据通过业务节点上传给共识节点;
其中,步骤S401-步骤S404的具体实现方式,可以参见上述图4所对应实施例中对汇总节点的描述,这里将不再继续进行赘述。
S405、共识节点获取与汇总节点相关联的第一交易汇总区块数据;
S406、共识节点调用汇总业务处理数据获取第一交易汇总区块,为第一交易汇总区块配置第一区块锁定时长,且生成第一交易汇总区块的区块待确认事件;
其中,步骤S405-步骤S406的具体实现方式,可以参见上述图7所对应实施例中对共识节点的描述,这里将不再继续进行赘述。
S407、验证节点在探测到共识节点生成的区块待确认事件时,基于区块待确认事件,从共识节点的汇总业务处理数据中获取第一交易汇总区块和第一交易汇总区块中的子链业务交易的业务状态读数据;
S408、验证节点通过验证节点对第一交易汇总区块和子链业务交易的业务状态读数据进行证明计算处理,得到第一交易汇总区块的第一零知识证明;
S409、验证节点将第一交易汇总区块的第一零知识证明发送至共识节点;
其中,步骤S407-步骤S409的具体实现方式,可以参见上述图11所对应实施例中对验证节点的描述,这里将不再继续进行赘述。
S410、共识节点在第一区块锁定时长内时,基于第一交易汇总区块数据确定用于验证第一零知识证明的验证参数,通过验证参数和第一零知识证明所携带的证明参数,对第一零知识证明进行第一证明验证,在第一证明验证成功时,得到第一交易汇总区块的区块确认成功信息;
S411、共识节点将区块确认成功信息返回至汇总节点;
其中,步骤S410-步骤S411的具体实现方式,可以参见上述图7所对应实施例中对共识节点的描述,这里将不再继续进行赘述。
S412、汇总节点在接收到共识节点返回的区块确认成功信息时,基于区块确认成功信息确认将第一交易汇总区块写入业务子链上。
其中,步骤S412的具体实现方式,可以参见上述图4所对应实施例中对汇总节点的描述,这里将不再继续进行赘述。
进一步的,请参见图14,图14是本申请实施例提供的一种数据交互示意图。如图14所示,该数据交互过程涉及到汇总节点、业务节点、共识节点以及验证节点。该数据交互过程包括以下步骤:
S1301、汇总节点调用子链交易汇总服务节点对子链业务交易进行打包,得到第一交易汇总区块,并确定第一交易汇总区块数据。
S1302a、汇总节点向业务节点发送第一交易汇总区块数据。
S1302b、业务节点向共识节点发送第一交易汇总区块数据。
步骤S1301-S1302b可以参见上述图4实施例中的步骤S101-S104的相关描述。
S1303、共识节点调用汇总业务处理数据从第一交易汇总区块数据中获取第一交易汇总区块,为第一交易汇总区块配置第一区块锁定时长,且生成区块待确认事件。
其具体的处理过程参照上述图7实施例中的步骤S202的相关描述。
S1304、共识节点向验证节点发送第一交易汇总区块和子链业务交易的业务状态读数据。
其具体的处理过程参照上述图7实施例中的步骤S202的相关描述。换言之,验证节点可以在探测到区块待确认事件时,从共识节点中获取第一交易汇总区块和子链业务交易的业务状态读数据。
S1305a、汇总节点可以向业务节点发送子链业务交易中的第二子链业务交易的原始交易数据。
S1305b、业务节点向验证节点发送子链业务交易中的第二子链业务交易的原始交易数据。
步骤S1305a-S1305b可以参照步骤图4实施例中的相关描述。
S1306、验证节点获取子链业务交易的交易原文数据,并基于子链业务交易的交易原文数据和子链业务交易的业务状态读数据计算得到第一零知识证明。
S1307、验证节点向共识节点发送第一零知识证明。
其中,步骤S1306-S1307可以参照上述图11实施例中的S301-S303的相关描述,此处不做赘述。
S1308、共识节点可以对第一零知识证明进行第一证明验证,在第一证明验证成功时,生成区块确认成功信息。
S1309a、共识节点向业务节点返回区块确认成功信息。
S1309b、业务节点向汇总节点返回区块确认成功信息。
其中,步骤S1308-S1309b可以参见上述图7实施例中的S203-S204的相关描述。
S1310、汇总节点基于区块确认成功信息确认将第一交易汇总区块写入业务子链上。
其中,步骤S1310可以参见上述图4实施例中的步骤S105的相关描述。
为便于理解,进一步地,请参见图15,图15是本申请实施例提供的一种区块链电子票据场景下的系统架构图。如图15所示,本申请实施例中的业务层、路由代理层以及共识网络层组成了整个完整区块链业务体系。图15所示的核心链1、核心链2、…以及核心链N分别为不同区域的税局所维护的区块链,本申请实施例中,上述的共识节点集群210a所维护的业务主链可以为图15所示的核心链1、核心链2、…以及核心链N中的任一核心链。
可以理解的是,当区块链被用于政务机构(例如,税务系统)或者商业机构的一些场景中,为了提高数据的保密性和安全性,可以采用本申请实施例中的“业务网络—共识网络”(即前述分层区块链网络)这一分层区块链结构,以适配相关产业区块链产线现实网络布局的具体要求(如内外网,业务网、办公网分隔等),同时可以保证核心共识算法的高效执行。
其中,业务层处于见证网络(即业务网络,例如上述的业务网络100a)中,该业务层中的业务节点可以包括电子税局对应的终端设备、企业用户对应的终端设备以及消费用户对应的终端设备。其中,电子税局可以是指税局专网中的地方税局,企业用户可以为公有云中的开票服务商、报销服务商或者零售企业(例如,KA企业,即大型零售客户和重点零售客户企业)等,消费用户可以为私有云中的支付服务商、流转服务商或者零售企业等。
其中,路由代理层中的N个中继节点(即路由节点)可以用于对业务层和共识网络层进行网络隔离。其中,每个中继节点可以具有点对点服务、路由服务、证书缓存、认证服务。可以理解的是,点对点服务是指在点对点网络(对等网络)中的服务,基于一类特定的网络协议,对等网络中的网络节点之间不需要一个中心节点来维护网络状态,而是每个节点通过和相邻节点的广播交互来维护全网的节点状态或者是其相邻节点连接状态。路由服务是节点具有的基本功能,可以用于节点之间的通信。与证书缓存相关联的证书,可以指公钥证书体系(Public Key Infrastructure,PKI),在证书体系中,证书是一个公钥拥有者的身份证明,由权威机构进行颁发(Certificate Authority,CA)。认证服务可以用于验证接收到的数据的数据格式、节点合法性等。
其中,共识网络层中的共识节点(也称记账节点、共识节点)可以为税务专网中的可信节点。可以理解的是,每个共识节点均具有打包出块的能力,即可以对通过共识的交易数据进行打包出块,对相关的合约数据(也称处理数据)进行存储,或者,对交易数据以及合约数据均进行打包出块,以成功写入共识网络层中的业务主链中。可以理解的是,在本申请实施例中,每个共识节点均具有对业务网络中的汇总节点打包得到的交易汇总区块进行确认的能力,由此保障业务网络中打包得到的交易汇总区块的合法性。
可以理解的是,在该区块链电子票据场景下,子链业务交易可以为基于电子票据进行报销的业务交易,进而业务对象可以向业务网络中的汇总节点(如上述的汇总节点A)发送用于进行电子票据的报销的子链业务交易,然后汇总节点对子链业务交易进行打包得到交易汇总区块,然后将交易汇总区块上传至共识网络进行确认,由此可以提升整个区块链系统的吞吐量,即区块链系统单位时间内出块以及区块上链的数量。
请参见图16,图16是本申请实施例提供的一种基于分层区块链网络的数据处理装置1的结构示意图。分层区块链网络中包括业务网络和共识网络;业务网络中部署有汇总节点和业务节点,汇总节点中部署有子链交易汇总服务节点;共识网络中部署有共识节点和验证节点,共识节点部署有子链交易汇总服务节点对应的汇总业务处理数据;如图16所示,基于分层区块链网络的数据处理装置1可以是运行于汇总节点(例如,上述汇总节点A)的一个计算机程序(包括程序代码),例如该基于分层区块链网络的数据处理装置1为一个应用软件;可以理解的是,该基于分层区块链网络的数据处理装置1可以用于执行本申请实施例提供的数据处理方法中的相应步骤。如图16所示,基于分层区块链网络的数据处理装置1可以包括:交易打包模块11、区块执行模块12、数据生成模块13、数据上传模块14、成功信息接收模块15;
交易打包模块11,用于获取待写入业务网络的业务子链上的子链业务交易,调用子链交易汇总服务节点对子链业务交易进行打包,得到第一交易汇总区块;
区块执行模块12,用于调用子链交易汇总服务节点执行第一交易汇总区块,并记录执行第一交易汇总区块中的子链业务交易的业务状态读数据和第一子链交易执行结果;
数据生成模块13,用于对第一交易汇总区块、子链业务交易的业务状态读数据和第一子链交易执行结果进行数据封装,得到第一交易汇总区块数据;
数据上传模块14,用于将第一交易汇总区块数据通过业务节点上传给共识节点;共识节点用于调用汇总业务处理数据获取第一交易汇总区块,为第一交易汇总区块配置第一区块锁定时长,且生成第一交易汇总区块的区块待确认事件,区块待确认事件用于指示验证节点基于第一交易汇总区块和子链业务交易的业务状态读数据,生成第一零知识证明,第一零知识证明用于指示共识节点在第一区块锁定时长内,基于第一交易汇总区块数据对第一零知识证明进行第一证明验证,且在第一证明验证成功时,生成第一交易汇总区块的区块确认成功信息;
成功信息接收模块15,用于在接收到共识节点返回的区块确认成功信息时,基于区块确认成功信息确认将第一交易汇总区块写入业务子链上。
其中,子链业务交易的交易数量为N个,N为正整数;N个子链业务交易包含第一子链业务交易和第二子链业务交易;第一子链业务交易的交易类型为第一交易类型;第二子链业务交易的交易类型为第二交易类型;第一交易类型不同于第二交易类型;
交易打包模块11,包括:第一交易数据获取单元111、第二交易数据获取单元112、区块生成单元113;
第一交易数据获取单元111,用于从N个子链业务交易中获取第一交易类型对应的第一子链业务交易,通过子链交易汇总服务节点确定第一子链业务交易的第一交易数据信息;第一交易数据信息为第一子链业务交易的原始交易数据;
第二交易数据获取单元112,用于从N个子链业务交易中获取第二交易类型对应的第二子链业务交易,通过子链交易汇总服务节点确定第二子链业务交易的第二交易数据信息;第二交易数据信息为第二子链业务交易的交易哈希数据;第二子链业务交易的交易哈希数据是对第二子链业务交易的原始交易数据进行哈希计算后所得到的;
区块生成单元113,用于调用子链交易汇总服务节点对第一子链业务交易和第二子链业务交易进行打包,得到与N个子链业务交易相关联的第一交易汇总区块;第一交易汇总区块包括区块头和区块体;区块头是基于第一交易数据信息和第二交易数据信息进行哈希计算后所得到的;区块体用于记录第一交易数据信息和第二交易数据信息。
其中,第一交易数据获取单元111、第二交易数据获取单元112、区块生成单元113的处理过程可以参照上述图4实施例中的相关描述,此处不做赘述。
其中,数据上传模块14,还用于通过子链交易汇总服务节点获取第二子链业务交易的原始交易数据,将第二子链业务交易的原始交易数据通过业务节点发送给验证节点,以使验证节点在获取到第二子链业务交易的原始交易数据时,执行基于第一交易汇总区块和子链业务交易的业务状态读数据,生成第一零知识证明的步骤。
其中,基于分层区块链网络的数据处理装置1,还可以包括:区块添加模块16、失败信息接收模块17;
区块添加模块16,用于将第一交易汇总区块添加至业务子链;
失败信息接收模块17,用于在接收到共识节点返回的第一交易汇总区块的区块确认失败信息时,基于区块确认失败信息对业务子链上的第一交易汇总区块进行区块回滚处理;区块确认失败信息为共识节点在第一区块锁定时长内,基于证明验证成功信息将第一交易汇总区块确定为非法区块时所生成的;证明验证成功信息为共识节点在接收到第一交易汇总区块的非法区块验证证明时,将第一交易汇总区块的区块参考信息和区块验证信息进行信息对比,且在信息对比不一致时所得到的;区块参考信息为共识节点从汇总业务处理数据中,所获取的子链业务交易的第一子链交易执行结果;区块验证信息为共识节点执行第一交易汇总区块中的子链业务交易所得到的第二子链交易执行结果。
其中,区块添加模块16、失败信息接收模块17的处理过程可以参照上述图4实施例中的相关描述,此处不做赘述。
其中,数据上传模块14,可以包括:确认交易生成单元141、交易发送单元142;
确认交易生成单元141,用于基于共识网络的业务主链上的主链业务交易的交易格式,对第一交易汇总区块数据进行交易封装,得到待写入共识网络的业务主链的区块确认交易;
交易发送单元142,用于将区块确认交易通过业务节点上传给共识节点。
其中,确认交易生成单元141、交易发送单元142的处理过程可以参照上述如4实施例中的相关描述,此处不做赘述。
请参见图17,图17是本申请实施例提供的一种基于分层区块链网络的数据处理装置2的结构示意图。分层区块链网络中包括业务网络和共识网络;业务网络中部署有汇总节点和业务节点,汇总节点中部署有子链交易汇总服务节点;共识网络中部署有共识节点和验证节点,共识节点部署有子链交易汇总服务节点对应的汇总业务处理数据;如图17所示,基于分层区块链网络的数据处理装置2可以是运行于共识节点(例如,上述共识节点11a)的一个计算机程序(包括程序代码),例如该基于分层区块链网络的数据处理装置2为一个应用软件;可以理解的是,该基于分层区块链网络的数据处理装置2可以用于执行本申请实施例提供的数据处理方法中的相应步骤。如图17所示,基于分层区块链网络的数据处理装置2可以包括:第一数据获取模块21、区块数据处理模块22、第一证明验证模块23、信息返回模块24;
第一数据获取模块21,用于获取与汇总节点相关联的第一交易汇总区块数据;第一交易汇总区块数据是由汇总节点通过业务节点所上传的;第一交易汇总区块数据是对第一交易汇总区块、子链业务交易的业务状态读数据和子链业务交易的第一子链交易执行结果进行数据封装所得到的;子链业务交易为汇总节点所获取到的待写入业务网络的业务子链的交易;第一交易汇总区块是由汇总节点调用子链交易汇总服务节点对子链业务交易进行打包得到的;子链业务交易的业务状态读数据和子链业务交易的第一子链交易执行结果是汇总节点调用子链交易汇总服务节点执行第一交易汇总区块时所记录的;
区块数据处理模块22,用于调用汇总业务处理数据获取第一交易汇总区块,为第一交易汇总区块配置第一区块锁定时长,且生成第一交易汇总区块的区块待确认事件;区块待确认事件用于指示验证节点基于第一交易汇总区块和子链业务交易的业务状态读数据,生成第一零知识证明;
第一证明验证模块23,用于在第一区块锁定时长内时,基于第一交易汇总区块数据确定用于验证第一零知识证明的验证参数,通过验证参数和第一零知识证明所携带的证明参数,对第一零知识证明进行第一证明验证,在第一证明验证成功时,得到第一交易汇总区块的区块确认成功信息;
信息返回模块24,用于将区块确认成功信息返回至汇总节点,以使汇总节点基于区块确认成功信息确认将第一交易汇总区块写入业务子链上。
其中,区块数据处理模块22,包括:数据解封单元221、锁定时长配置单元222;
数据解封单元221,用于调用汇总业务处理数据中的数据解封函数,对获取到的第一交易汇总区块数据进行数据解封,解封得到第一交易汇总区块;
锁定时长配置单元222,用于调用汇总业务处理数据中的锁定时长配置函数,为第一交易汇总区块配置第一区块锁定时长,且生成第一交易汇总区块的区块待确认事件。
其中,数据解封单元221、锁定时长配置单元222的处理过程可以参照上述图7实施例的相关描述,此处不做赘述。
其中,子链业务交易的交易数量为N个,N为正整数;N个子链业务交易包含第一子链业务交易和第二子链业务交易;第一子链业务交易的交易类型为第一交易类型;第二子链业务交易的交易类型为第二交易类型;第一交易类型不同于第二交易类型;子链业务交易的业务状态读数据包含第一状态数据和第二状态数据;第一状态数据为在执行N个子链业务交易中的第一子链业务交易时所读取的状态数据;第二状态数据为在执行N个子链业务交易中的第二子链业务交易时所读取的状态数据;子链业务交易的第一子链交易执行结果包含第一交易执行结果和第二交易执行结果;第一交易执行结果为基于第一状态数据执行第一子链业务交易后所得到的交易执行结果;第二交易执行结果为基于第二状态数据执行第二子链业务交易后所得到的交易执行结果;
数据解封单元221,还用于在解封得到第一交易汇总区块时,同步解封得到第一子链业务交易的第一状态数据和第一交易执行结果、第二子链业务交易的第二状态数据和第二交易执行结果。
其中,第一证明验证模块23,包括:数据获取单元231、验证参数确定单元232、函数调用单元233、验证结果确定单元234;
数据获取单元231,用于在第一区块锁定时长内时,从解封得到的第一交易汇总区块中,获取第一子链业务交易的原始交易数据和第二子链业务交易的交易哈希数据;第二子链业务交易的交易哈希数据是对第二子链业务交易的原始交易数据进行哈希计算后所得到的;
验证参数确定单元232,用于基于第一状态数据、第一交易执行结果、第二状态数据、第二交易执行结果、第一子链业务交易的原始交易数据和第二子链业务交易的交易哈希数据,确定用于验证第一零知识证明的验证参数;
函数调用单元233,用于调用汇总业务处理数据中的零知识证明验证函数,获取第一零知识证明所携带的证明参数,在将验证参数输入至证明参数所在的证明函数时,对第一零知识证明进行第一证明验证,得到针对证明函数的函数验证结果;证明函数为用于验证第一零知识证明的函数;证明函数验证结果包含证明函数验证成功结果;证明函数验证成功结果是在将验证参数输入至证明函数,使得证明参数所在的证明函数满足证明条件时所确定的;
验证结果确定单元234,用于若函数验证结果为证明函数验证成功结果,则确定对第一零知识证明进行的第一证明验证成功。
其中,数据获取单元231、验证参数确定单元232、函数调用单元233、验证结果确定单元234的处理过程参照上述图7实施例的相关描述,此处不做赘述。
其中,基于分层区块链网络的数据处理装置2,还包括:第二证明验证模块25;第二证明验证模块25包括:非法区块验证证明接收单元251、区块验证信息确定单元252、信息对比单元253、区块确认失败单元254、失败信息发送单元255;
非法区块验证证明接收单元251,用于在第一区块锁定时长内,接收到第一交易汇总区块的非法区块验证证明时,基于从汇总业务处理数据中,所获取的子链业务交易的第一子链交易执行结果确定第一交易汇总区块的区块参考信息;
区块验证信息确定单元252,用于从汇总业务处理数据中获取第一交易汇总区块,执行第一交易汇总区块中的子链业务交易得到的第二子链交易执行结果,基于第二子链交易执行结果确定第一交易汇总区块的区块验证信息;
信息对比单元253,用于将区块参考信息和区块验证信息进行信息对比,得到信息对比结果;
区块确认失败单元254,用于在信息对比结果指示区块参考信息和区块验证信息对比不一致时,得到对非法区块验证证明进行第二证明验证的证明验证成功信息,且在基于证明验证成功信息将第一交易汇总区块确定为非法区块时,生成第一交易汇总区块的区块确认失败信息,且取消第一交易汇总区块的第一区块锁定时长;
失败信息发送单元255,用于将针对第一交易汇总区块的区块确认失败信息发送至汇总节点,以使汇总节点基于区块确认失败信息对业务子链上的第一交易汇总区块进行区块回滚处理。
其中,第二证明验证模块25包括的非法区块验证证明接收单元251、区块验证信息确定单元252、信息对比单元253、区块确认失败单元254、失败信息发送单元255的处理过程可以参照上述图7实施例的相关描述,此处不做赘述。
其中,基于分层区块链网络的数据处理装置2,还包括:时间戳判断模块26;
时间戳判断模块26,用于在第一交易汇总区块的待确认时间戳达到第一区块锁定时长时,得到第一交易汇总区块的区块确认成功信息。
其中,验证结果确定单元234,还用于在第一证明验证失败时,通知验证节点重新计算第一交易汇总区块的第一零知识证明。
其中,基于分层区块链网络的数据处理装置2,还包括:第二交易区块获取模块27、时长取消模块28;
第二交易区块获取模块27,用于在获取到第二交易汇总区块数据中的第二交易汇总区块时,通过汇总业务处理数据为第二交易汇总区块配置第二区块锁定时长;第二交易汇总区块为第一交易汇总区块的下一区块;第二交易汇总区块是由汇总节点所打包得到的;
时长取消模块28,用于在得到第一交易汇总区块的区块确认成功信息时,取消第一交易汇总区块的第一区块锁定时长,且生成第一交易汇总区块的区块已确认事件;区块已确认事件用于指示验证节点在第二区块锁定时长内向共识节点发送第二交易汇总区块的第二零知识证明。
第二交易区块获取模块27、时长取消模块28的处理过程可以参照上述图7实施例的相关描述,此处不做赘述。
其中,第一数据获取模块21,包括:确认交易接收单元211、交易解封单元212;
确认交易接收单元211,用于接收由汇总节点通过业务节点上传的与第一交易汇总区块数据关联的区块确认交易;区块确认交易是业务节点在基于主链业务交易的交易格式对第一交易汇总区块数据进行交易封装后所得到的;主链业务交易为业务主链上的交易;
交易解封单元212,用于在执行区块确认交易时,调用汇总业务处理数据对区块确认交易进行交易解封,得到区块确认交易中的第一交易汇总区块数据。
确认交易接收单元211、交易解封单元212的处理过程可以参照上述图7实施例的相关描述,此处不做赘述。
其中,基于分层区块链网络的数据处理装置2,还包括:合约部署模块29;
合约部署模块29,用于在接收到针对汇总业务处理数据的合约部署请求时,从合约部署请求中获取合约部署关键信息,基于合约部署关键信息中的零知识证明验证函数,在业务主链上部署汇总业务处理数据;零知识证明验证函数为汇总业务处理数据中用于对第一零知识证明进行证明验证时的处理函数。
合约部署模块29的处理过程可以参照上述图7实施例的相关描述,此处不做赘述。
请参见图18,图18是本申请实施例提供的一种基于分层区块链网络的数据处理装置3的结构示意图。分层区块链网络中包括业务网络和共识网络;业务网络中部署有汇总节点和业务节点,汇总节点中部署有子链交易汇总服务节点;共识网络中部署有共识节点和验证节点,共识节点部署有子链交易汇总服务节点对应的汇总业务处理数据;如图18所示,基于分层区块链网络的数据处理装置3可以是运行于验证节点(例如,上述验证节点220a)的一个计算机程序(包括程序代码),例如该基于分层区块链网络的数据处理装置3为一个应用软件;可以理解的是,该基于分层区块链网络的数据处理装置3可以用于执行本申请实施例提供的数据处理方法中的相应步骤。如图18所示,基于分层区块链网络的数据处理装置3可以包括:事件探测模块31、证明生成模块32、证明发送模块33;
事件探测模块31,用于在探测到共识节点生成的区块待确认事件时,基于区块待确认事件,从共识节点的汇总业务处理数据中获取第一交易汇总区块和第一交易汇总区块中的子链业务交易的业务状态读数据;区块待确认事件是共识节点在调用汇总业务处理数据获取到第一交易汇总区块数据中的第一交易汇总区块,且为第一交易汇总区块配置第一区块锁定时长时生成的;第一交易汇总区块数据是对第一交易汇总区块、第一交易汇总区块中的子链业务交易的业务状态读数据和子链业务交易的第一子链交易执行结果进行数据封装得到的;子链业务交易为汇总节点所获取到的待写入业务网络的业务子链的交易;第一交易汇总区块是由汇总节点调用子链交易汇总服务节点对子链业务交易进行打包得到的;子链业务交易的业务状态读数据和第一子链交易执行结果是汇总节点调用子链交易汇总服务节点执行第一交易汇总区块时所记录的;
证明生成模块32,用于对第一交易汇总区块和子链业务交易的业务状态读数据进行证明计算处理,得到第一交易汇总区块的第一零知识证明;
证明发送模块33,用于将第一交易汇总区块的第一零知识证明发送至共识节点,共识节点用于在第一区块锁定时长内时,基于第一交易汇总区块数据对第一零知识证明进行第一证明验证,且在第一证明验证成功时,生成第一交易汇总区块的区块确认成功信息,将区块确认成功信息返回至汇总节点;区块确认成功信息用于指示汇总节点基于区块确认成功信息确认将第一交易汇总区块写入业务子链上。
其中,验证节点包括验证入口组件和验证组件;验证组件中部署有零知识证明电路;
证明生成模块32,包括:任务生成单元321、证明计算单元322;
任务生成单元321,用于通过验证入口组件获取第一交易汇总区块中的子链业务交易的原始交易数据,并基于子链业务交易的原始交易数据,以及子链业务交易的业务状态读数据,确定证明生成任务,将证明生成任务发布至验证组件;
证明计算单元322,用于在验证组件接收到证明生成任务时,通过验证组件中部署的零知识证明电路对子链业务交易的原始交易数据,以及子链业务交易的业务状态读数据进行证明计算处理,得到第一交易汇总区块的第一零知识证明。
其中,任务生成单元321、证明计算单元322的处理过程可以参照上述图11的相关描述,此处不做赘述。
其中,子链业务交易的交易数量为N个,N为正整数;N个子链业务交易包含第一子链业务交易和第二子链业务交易;第二子链业务交易不同于第一子链业务交易;
任务生成单元321,包括:第一交易原文获取单元3211、第二交易原文获取单元3212、原文数据确定单元3213;
第一交易原文获取单元3211,用于在第二子链业务交易的交易类型为第二交易类型时,获取由汇总节点通过业务节点发送的第二子链业务交易的第二原始交易数据;
第二交易原文获取单元3212,用于在第一子链业务交易的交易类型为第一交易类型时,从第一交易汇总区块的区块体中获取第一子链业务交易的第一原始交易数据;第一交易类型不同于第二交易类型;
原文数据确定单元3213,用于基于第一子链业务交易的第一原始交易数据和第二子链业务交易的第二原始交易数据,得到子链业务交易的原始交易数据。
其中,任务生成单元321包括的第一交易原文获取单元3211、第二交易原文获取单元3212、原文数据确定单元3213的处理过程可以参照上述图11实施例的相关描述。
其中,基于分层区块链网络的数据处理装置3,还可以包括:第二证明生成模块34、已确认事件探测模块35;
第二证明生成模块34,用于在从汇总业务处理数据中获取到第二交易汇总区块时,生成第二交易汇总区块的第二零知识证明;第二交易汇总区块是共识节点从与汇总节点相关联的第二交易汇总区块数据中所获取到的;第二交易汇总区块为第一交易汇总区块的下一区块;第二交易汇总区块是由汇总节点所打包得到的;第二交易汇总区块配置有对应的第二区块锁定时长;
已确认事件探测模块35,用于在从共识节点探测到第一交易汇总区块的区块已确认事件时,在第二区块锁定时长内向共识节点发送针对第二交易汇总区块的第二零知识证明;第一交易汇总区块的区块已确认事件是共识节点在得到针对第一交易汇总区块的区块确认成功信息时生成的。
其中,第二证明生成模块34、已确认事件探测模块35的处理过程可以参照上述图11实施例的相关描述。
请参见图19,图19是本申请实施例提供的一种计算机设备的结构示意图。如图19所示,该计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图19所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在如图19所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以执行前文任一个所对应实施例中对该数据处理方法的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的基于分层区块链网络的数据处理装置1、基于分层区块链网络的数据处理2、基于分层区块链网络的数据处理3所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文实施例中对数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
上述计算机可读存储介质可以是前述任一实施例提供的数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
此外,这里需要指出的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前文任一个所对应实施例提供的方法。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
进一步的,请参见图20,图20是本申请实施例提供的一种基于分层区块链网络的数据处理系统的示意图。该基于分层区块链网络的数据处理系统4可以包含汇总节点4a、共识节点4b和验证节点4c;其中,汇总节点4a可以为上述图2所对应实施例所描述的处于业务网络中的汇总节点。其中,共识节点4b可以为上述图2所对应实施例所描述的处于共识网络中的任一共识节点。其中,验证节点4c可以为上述图2所对应实施例所描述的处于共识网络中的验证节点。另外,对采用相同方法的有益效果描述,也不再进行赘述。其中,基于分层区块链网络的数据处理系统包括:汇总节点4a、共识节点4b和验证节点4c;分层区块链网络中包括业务网络和共识网络;业务网络中部署有汇总节点4a和业务节点,汇总节点中部署有子链交易汇总服务节点;共识网络中部署有共识节点4b和验证节点4c,共识节点4b部署有子链交易汇总服务节点对应的汇总业务处理数据;
汇总节点4a,用于获取待写入业务网络的业务子链上的子链业务交易,调用子链交易汇总服务节点对子链业务交易进行打包,得到第一交易汇总区块;
汇总节点4a,还用于调用子链交易汇总服务节点执行第一交易汇总区块,并记录执行第一交易汇总区块中的子链业务交易的业务状态读数据和第一子链交易执行结果;
汇总节点4a,还用于对第一交易汇总区块、子链业务交易的业务状态读数据和第一子链交易执行结果进行数据封装,得到第一交易汇总区块数据,并将第一交易汇总区块数据通过业务节点上传给共识节点;
共识节点4b,用于在获取到与汇总节点相关联的第一交易汇总区块数据时,调用汇总业务处理数据获取第一交易汇总区块,为第一交易汇总区块配置第一区块锁定时长,且生成第一交易汇总区块的区块待确认事件;
验证节点4c,用于在探测到共识节点生成的区块待确认事件时,基于区块待确认事件,从共识节点的汇总业务处理数据中获取第一交易汇总区块和第一交易汇总区块中的子链业务交易的业务状态读数据;
验证节点4c,还用于通过验证节点对第一交易汇总区块和子链业务交易的业务状态读数据进行证明计算处理,得到第一交易汇总区块的第一零知识证明;将第一交易汇总区块的第一零知识证明发送至共识节点;
共识节点4b,用于在第一区块锁定时长内时,基于第一交易汇总区块数据确定用于验证第一零知识证明的验证参数,通过验证参数和第一零知识证明所携带的证明参数,对第一零知识证明进行第一证明验证,在第一证明验证成功时,得到第一交易汇总区块的区块确认成功信息,并将区块确认成功信息返回至汇总节点;
汇总节点4a,还用于在接收到共识节点返回的区块确认成功信息时,基于区块确认成功信息确认将第一交易汇总区块写入业务子链上。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (24)
1.一种基于分层区块链网络的数据处理方法,其特征在于,所述分层区块链网络中包括业务网络和共识网络;所述业务网络中部署有汇总节点和业务节点,所述汇总节点中部署有子链交易汇总服务节点;所述共识网络中部署有共识节点和验证节点,所述共识节点部署有所述子链交易汇总服务节点对应的汇总业务处理数据;所述方法由所述汇总节点执行,所述方法包括:
获取待写入所述业务网络的业务子链上的子链业务交易,调用所述子链交易汇总服务节点对所述子链业务交易进行打包,得到第一交易汇总区块;
调用所述子链交易汇总服务节点执行所述第一交易汇总区块,并记录执行所述第一交易汇总区块中的所述子链业务交易的业务状态读数据和第一子链交易执行结果;
对所述第一交易汇总区块、所述子链业务交易的业务状态读数据和所述第一子链交易执行结果进行数据封装,得到第一交易汇总区块数据;
将所述第一交易汇总区块数据通过所述业务节点上传给所述共识节点;所述共识节点用于调用所述汇总业务处理数据获取所述第一交易汇总区块,为所述第一交易汇总区块配置第一区块锁定时长,且生成所述第一交易汇总区块的区块待确认事件,所述区块待确认事件用于指示所述验证节点基于所述第一交易汇总区块和所述子链业务交易的业务状态读数据,生成第一零知识证明,所述第一零知识证明用于指示所述共识节点在所述第一区块锁定时长内,基于所述第一交易汇总区块数据对所述第一零知识证明进行第一证明验证,且在所述第一证明验证成功时,生成所述第一交易汇总区块的区块确认成功信息;
在接收到所述共识节点返回的所述区块确认成功信息时,基于所述区块确认成功信息确认将所述第一交易汇总区块写入所述业务子链上。
2.根据权利要求1所述的方法,其特征在于,所述子链业务交易的交易数量为N个,N为正整数;N个子链业务交易包含第一子链业务交易和第二子链业务交易;所述第一子链业务交易的交易类型为第一交易类型;所述第二子链业务交易的交易类型为第二交易类型;所述第一交易类型不同于所述第二交易类型;
所述调用所述子链交易汇总服务节点对所述子链业务交易进行打包,得到第一交易汇总区块,包括:
从所述N个子链业务交易中获取所述第一交易类型对应的所述第一子链业务交易,通过所述子链交易汇总服务节点确定所述第一子链业务交易的第一交易数据信息;所述第一交易数据信息为所述第一子链业务交易的原始交易数据;
从所述N个子链业务交易中获取所述第二交易类型对应的所述第二子链业务交易,通过所述子链交易汇总服务节点确定所述第二子链业务交易的第二交易数据信息;所述第二交易数据信息为所述第二子链业务交易的交易哈希数据;所述第二子链业务交易的交易哈希数据是对所述第二子链业务交易的原始交易数据进行哈希计算后所得到的;
调用所述子链交易汇总服务节点对所述第一子链业务交易和所述第二子链业务交易进行打包,得到与所述N个子链业务交易相关联的第一交易汇总区块;所述第一交易汇总区块包括区块头和区块体;所述区块头是基于所述第一交易数据信息和所述第二交易数据信息进行哈希计算后所得到的;所述区块体用于记录所述第一交易数据信息和所述第二交易数据信息。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
通过所述子链交易汇总服务节点获取所述第二子链业务交易的原始交易数据,将所述第二子链业务交易的原始交易数据通过所述业务节点发送给所述验证节点,以使所述验证节点在获取到所述第二子链业务交易的原始交易数据时,执行所述基于所述第一交易汇总区块和所述子链业务交易的业务状态读数据,生成第一零知识证明的步骤。
4.根据权利要求1或2所述的方法,其特征在于,在调用所述子链交易汇总服务节点对所述子链业务交易进行打包,得到第一交易汇总区块之后,所述方法还包括:
将所述第一交易汇总区块添加至所述业务子链;
在接收到所述共识节点返回的所述第一交易汇总区块的区块确认失败信息时,基于所述区块确认失败信息对所述业务子链上的所述第一交易汇总区块进行区块回滚处理;所述区块确认失败信息为所述共识节点在所述第一区块锁定时长内,基于证明验证成功信息将所述第一交易汇总区块确定为非法区块时所生成的;所述证明验证成功信息为所述共识节点在接收到所述第一交易汇总区块的非法区块验证证明时,将所述第一交易汇总区块的区块参考信息和区块验证信息进行信息对比,且在信息对比不一致时所得到的;所述区块参考信息为所述共识节点从所述汇总业务处理数据中,所获取的所述子链业务交易的第一子链交易执行结果;所述区块验证信息为所述共识节点执行所述第一交易汇总区块中的所述子链业务交易所得到的第二子链交易执行结果。
5.根据权利要求1或2所述的方法,其特征在于,所述将所述第一交易汇总区块数据通过所述业务节点上传给所述共识节点,包括:
基于所述共识网络的业务主链上的主链业务交易的交易格式,对所述第一交易汇总区块数据进行交易封装,得到待写入所述共识网络的业务主链的区块确认交易;
将所述区块确认交易通过所述业务节点上传给所述共识节点。
6.一种基于分层区块链网络的数据处理方法,其特征在于,所述分层区块链网络中包括业务网络和共识网络;所述业务网络中部署有汇总节点和业务节点,所述汇总节点中部署有子链交易汇总服务节点;所述共识网络中部署有共识节点和验证节点,所述共识节点部署有所述子链交易汇总服务节点对应的汇总业务处理数据;所述方法由所述共识节点执行,所述方法包括:
获取与所述汇总节点相关联的第一交易汇总区块数据;所述第一交易汇总区块数据是由所述汇总节点通过所述业务节点所上传的;所述第一交易汇总区块数据是对第一交易汇总区块、子链业务交易的业务状态读数据和所述子链业务交易的第一子链交易执行结果进行数据封装所得到的;所述子链业务交易为所述汇总节点所获取到的待写入所述业务网络的业务子链的交易;所述第一交易汇总区块是由所述汇总节点调用所述子链交易汇总服务节点对所述子链业务交易进行打包得到的;所述子链业务交易的业务状态读数据和所述子链业务交易的第一子链交易执行结果是所述汇总节点调用所述子链交易汇总服务节点执行所述第一交易汇总区块时所记录的;
调用所述汇总业务处理数据获取所述第一交易汇总区块,为所述第一交易汇总区块配置第一区块锁定时长,且生成所述第一交易汇总区块的区块待确认事件;所述区块待确认事件用于指示所述验证节点基于所述第一交易汇总区块和所述子链业务交易的业务状态读数据,生成第一零知识证明;
在所述第一区块锁定时长内时,基于所述第一交易汇总区块数据确定用于验证所述第一零知识证明的验证参数,通过所述验证参数和所述第一零知识证明所携带的证明参数,对所述第一零知识证明进行第一证明验证,在第一证明验证成功时,得到所述第一交易汇总区块的区块确认成功信息;
将所述区块确认成功信息返回至所述汇总节点,以使所述汇总节点基于所述区块确认成功信息确认将所述第一交易汇总区块写入所述业务子链上。
7.根据权利要求6所述的方法,其特征在于,所述调用所述汇总业务处理数据获取所述第一交易汇总区块,为所述第一交易汇总区块配置第一区块锁定时长,且生成所述第一交易汇总区块的区块待确认事件,包括:
调用所述汇总业务处理数据中的数据解封函数,对获取到的所述第一交易汇总区块数据进行数据解封,解封得到所述第一交易汇总区块;
调用所述汇总业务处理数据中的锁定时长配置函数,为所述第一交易汇总区块配置第一区块锁定时长,且生成所述第一交易汇总区块的区块待确认事件。
8.根据权利要求7所述的方法,其特征在于,所述子链业务交易的交易数量为N个,N为正整数;N个子链业务交易包含第一子链业务交易和第二子链业务交易;所述第一子链业务交易的交易类型为第一交易类型;所述第二子链业务交易的交易类型为第二交易类型;所述第一交易类型不同于所述第二交易类型;所述子链业务交易的业务状态读数据包含第一状态数据和第二状态数据;所述第一状态数据为在执行所述N个子链业务交易中的所述第一子链业务交易时所读取的状态数据;所述第二状态数据为在执行所述N个子链业务交易中的所述第二子链业务交易时所读取的状态数据;所述子链业务交易的第一子链交易执行结果包含第一交易执行结果和第二交易执行结果;所述第一交易执行结果为基于所述第一状态数据执行所述第一子链业务交易后所得到的交易执行结果;所述第二交易执行结果为基于所述第二状态数据执行所述第二子链业务交易后所得到的交易执行结果;
所述方法还包括:
在解封得到所述第一交易汇总区块时,同步解封得到所述第一子链业务交易的所述第一状态数据和所述第一交易执行结果、所述第二子链业务交易的所述第二状态数据和所述第二交易执行结果。
9.根据权利要求8所述的方法,其特征在于,所述在所述第一区块锁定时长内时,基于所述第一交易汇总区块数据确定用于验证所述第一零知识证明的验证参数,通过所述验证参数和所述第一零知识证明所携带的证明参数,对所述第一零知识证明进行第一证明验证,包括:
在所述第一区块锁定时长内时,从解封得到的所述第一交易汇总区块中,获取所述第一子链业务交易的原始交易数据和所述第二子链业务交易的交易哈希数据;所述第二子链业务交易的交易哈希数据是对所述第二子链业务交易的原始交易数据进行哈希计算后所得到的;
基于所述第一状态数据、所述第一交易执行结果、所述第二状态数据、所述第二交易执行结果、所述第一子链业务交易的原始交易数据和所述第二子链业务交易的交易哈希数据,确定用于验证所述第一零知识证明的验证参数;
调用所述汇总业务处理数据中的零知识证明验证函数,获取所述第一零知识证明所携带的证明参数,在将所述验证参数输入至所述证明参数所在的证明函数时,对所述第一零知识证明进行第一证明验证,得到针对所述证明函数的函数验证结果;所述证明函数为用于验证所述第一零知识证明的函数;所述证明函数验证结果包含证明函数验证成功结果;所述证明函数验证成功结果是在将所述验证参数输入至所述证明函数,使得所述证明参数所在的所述证明函数满足证明条件时所确定的;
若所述函数验证结果为所述证明函数验证成功结果,则确定对所述第一零知识证明进行的第一证明验证成功。
10.根据权利要求6-9任一项所述的方法,其特征在于,所述方法还包括:
在所述第一区块锁定时长内,接收到所述第一交易汇总区块的非法区块验证证明时,基于从所述汇总业务处理数据中,所获取的所述子链业务交易的第一子链交易执行结果确定所述第一交易汇总区块的区块参考信息;
从所述汇总业务处理数据中获取所述第一交易汇总区块,执行所述第一交易汇总区块中的所述子链业务交易得到的第二子链交易执行结果,基于所述第二子链交易执行结果确定所述第一交易汇总区块的区块验证信息;
将所述区块参考信息和所述区块验证信息进行信息对比,得到信息对比结果;
在所述信息对比结果指示所述区块参考信息和所述区块验证信息对比不一致时,得到对所述非法区块验证证明进行第二证明验证的证明验证成功信息,且在基于所述证明验证成功信息将所述第一交易汇总区块确定为非法区块时,生成所述第一交易汇总区块的区块确认失败信息,且取消所述第一交易汇总区块的第一区块锁定时长;
将针对所述第一交易汇总区块的所述区块确认失败信息发送至所述汇总节点,以使所述汇总节点基于所述区块确认失败信息对所述业务子链上的所述第一交易汇总区块进行区块回滚处理。
11.根据权利要求6-9任一项所述的方法,其特征在于,所述方法还包括:
在所述第一交易汇总区块的待确认时间戳达到所述第一区块锁定时长时,得到所述第一交易汇总区块的区块确认成功信息。
12.根据权利要求11所述的方法,其特征在于,在所述第一交易汇总区块的待确认时间戳达到所述第一区块锁定时长之前,所述方法还包括:
在第一证明验证失败时,通知所述验证节点重新计算所述第一交易汇总区块的第一零知识证明。
13.根据权利要求6-9任一项所述的方法,其特征在于,所述方法还包括:
在获取到第二交易汇总区块数据中的第二交易汇总区块时,通过所述汇总业务处理数据为所述第二交易汇总区块配置第二区块锁定时长;所述第二交易汇总区块为所述第一交易汇总区块的下一区块;所述第二交易汇总区块是由所述汇总节点所打包得到的;
在得到所述第一交易汇总区块的区块确认成功信息时,取消所述第一交易汇总区块的所述第一区块锁定时长,且生成所述第一交易汇总区块的区块已确认事件;所述区块已确认事件用于指示所述验证节点在所述第二区块锁定时长内向所述共识节点发送所述第二交易汇总区块的第二零知识证明。
14.根据权利要求6-9任一项所述的方法,其特征在于,所述获取与所述汇总节点相关联的第一交易汇总区块数据,包括:
接收由所述汇总节点通过所述业务节点上传的与所述第一交易汇总区块数据关联的区块确认交易;所述区块确认交易是所述业务节点在基于主链业务交易的交易格式对第一交易汇总区块数据进行交易封装后所得到的;所述主链业务交易为业务主链上的交易;
在执行所述区块确认交易时,调用所述汇总业务处理数据对所述区块确认交易进行交易解封,得到所述区块确认交易中的所述第一交易汇总区块数据。
15.根据权利要求6-9任一项所述的方法,其特征在于,所述方法还包括:
在接收到针对所述汇总业务处理数据的处理数据部署请求时,从所述处理数据部署请求中获取数据部署关键信息,基于所述数据部署关键信息中的零知识证明验证函数,在业务主链上部署所述汇总业务处理数据;所述零知识证明验证函数为所述汇总业务处理数据中用于对所述第一零知识证明进行证明验证时的处理函数。
16.一种基于分层区块链网络的数据处理方法,其特征在于,所述分层区块链网络中包括业务网络和共识网络;所述业务网络中部署有汇总节点和业务节点,所述汇总节点中部署有子链交易汇总服务节点;所述共识网络中部署有共识节点和验证节点,所述共识节点部署有所述子链交易汇总服务节点对应的汇总业务处理数据;所述方法由所述验证节点执行,所述方法包括:
在探测到所述共识节点生成的区块待确认事件时,基于所述区块待确认事件,从所述共识节点的汇总业务处理数据中获取第一交易汇总区块和所述第一交易汇总区块中的子链业务交易的业务状态读数据;所述区块待确认事件是所述共识节点在调用所述汇总业务处理数据获取到第一交易汇总区块数据中的第一交易汇总区块,且为所述第一交易汇总区块配置第一区块锁定时长时生成的;所述第一交易汇总区块数据是对所述第一交易汇总区块、所述第一交易汇总区块中的子链业务交易的业务状态读数据和所述子链业务交易的第一子链交易执行结果进行数据封装得到的;所述子链业务交易为所述汇总节点所获取到的待写入所述业务网络的业务子链的交易;所述第一交易汇总区块是由所述汇总节点调用所述子链交易汇总服务节点对所述子链业务交易进行打包得到的;所述子链业务交易的业务状态读数据和第一子链交易执行结果是所述汇总节点调用所述子链交易汇总服务节点执行所述第一交易汇总区块时所记录的;
对所述第一交易汇总区块和所述子链业务交易的业务状态读数据进行证明计算处理,得到所述第一交易汇总区块的第一零知识证明;
将所述第一交易汇总区块的第一零知识证明发送至所述共识节点,所述共识节点用于在所述第一区块锁定时长内时,基于所述第一交易汇总区块数据对所述第一零知识证明进行第一证明验证,且在所述第一证明验证成功时,生成所述第一交易汇总区块的区块确认成功信息,将所述区块确认成功信息返回至所述汇总节点;所述区块确认成功信息用于指示所述汇总节点基于所述区块确认成功信息确认将所述第一交易汇总区块写入所述业务子链上。
17.根据权利要求16所述的方法,其特征在于,所述验证节点包括验证入口组件和验证组件;所述验证组件中部署有零知识证明电路;
所述对所述第一交易汇总区块和所述子链业务交易的业务状态读数据进行证明计算处理,得到所述第一交易汇总区块的第一零知识证明,包括:
通过所述验证入口组件获取所述第一交易汇总区块中的所述子链业务交易的原始交易数据,并基于所述子链业务交易的原始交易数据,以及所述子链业务交易的业务状态读数据,确定证明生成任务,将所述证明生成任务发布至所述验证组件;
在所述验证组件接收到所述证明生成任务时,通过所述验证组件中部署的所述零知识证明电路对所述子链业务交易的原始交易数据,以及所述子链业务交易的业务状态读数据进行证明计算处理,得到所述第一交易汇总区块的所述第一零知识证明。
18.根据权利要求17所述的方法,其特征在于,所述子链业务交易的交易数量为N个,N为正整数;N个子链业务交易包含第一子链业务交易和第二子链业务交易;所述第二子链业务交易不同于所述第一子链业务交易;
所述通过所述验证入口组件获取所述第一交易汇总区块中的所述子链业务交易的原始交易数据,包括:
在所述第二子链业务交易的交易类型为第二交易类型时,获取由所述汇总节点通过所述业务节点发送的所述第二子链业务交易的第二原始交易数据;
在所述第一子链业务交易的交易类型为第一交易类型时,从所述第一交易汇总区块的区块体中获取所述第一子链业务交易的第一原始交易数据;所述第一交易类型不同于所述第二交易类型;
基于所述第一子链业务交易的所述第一原始交易数据和所述第二子链业务交易的所述第二原始交易数据,得到所述子链业务交易的原始交易数据。
19.根据权利要求16-18任一项所述的方法,其特征在于,所述方法还包括:
在从所述汇总业务处理数据中获取到第二交易汇总区块时,生成所述第二交易汇总区块的第二零知识证明;所述第二交易汇总区块是所述共识节点从与所述汇总节点相关联的第二交易汇总区块数据中所获取到的;所述第二交易汇总区块为所述第一交易汇总区块的下一区块;所述第二交易汇总区块是由所述汇总节点所打包得到的;所述第二交易汇总区块配置有对应的第二区块锁定时长;
在从所述共识节点探测到所述第一交易汇总区块的区块已确认事件时,在所述第二区块锁定时长内向所述共识节点发送针对第二交易汇总区块的第二零知识证明;所述第一交易汇总区块的区块已确认事件是所述共识节点在得到针对所述第一交易汇总区块的区块确认成功信息时生成的。
20.一种基于分层区块链网络的数据处理装置,其特征在于,所述分层区块链网络中包括业务网络和共识网络;所述业务网络中部署有汇总节点和业务节点,所述汇总节点中部署有子链交易汇总服务节点;所述共识网络中部署有共识节点和验证节点,所述共识节点部署有所述子链交易汇总服务节点对应的汇总业务处理数据;所述装置由所述汇总节点运行,所述装置包括:
交易打包模块,用于获取待写入所述业务网络的业务子链上的子链业务交易,调用所述子链交易汇总服务节点对所述子链业务交易进行打包,得到第一交易汇总区块;
区块执行模块,用于调用所述子链交易汇总服务节点执行所述第一交易汇总区块,并记录执行所述第一交易汇总区块中的所述子链业务交易的业务状态读数据和第一子链交易执行结果;
数据生成模块,用于对所述第一交易汇总区块、所述子链业务交易的业务状态读数据和所述第一子链交易执行结果进行数据封装,得到第一交易汇总区块数据;
数据上传模块,用于将所述第一交易汇总区块数据通过所述业务节点上传给所述共识节点;所述共识节点用于调用所述汇总业务处理数据获取所述第一交易汇总区块,为所述第一交易汇总区块配置第一区块锁定时长,且生成所述第一交易汇总区块的区块待确认事件,所述区块待确认事件用于指示所述验证节点基于所述第一交易汇总区块和所述子链业务交易的业务状态读数据,生成第一零知识证明,所述第一零知识证明用于指示所述共识节点在所述第一区块锁定时长内,基于所述第一交易汇总区块数据对所述第一零知识证明进行第一证明验证,且在所述第一证明验证成功时,生成所述第一交易汇总区块的区块确认成功信息;
成功信息接收模块,用于在接收到所述共识节点返回的所述区块确认成功信息时,基于所述区块确认成功信息确认将所述第一交易汇总区块写入所述业务子链上。
21.一种基于分层区块链网络的数据处理装置,其特征在于,所述分层区块链网络中包括业务网络和共识网络;所述业务网络中部署有汇总节点和业务节点,所述汇总节点中部署有子链交易汇总服务节点;所述共识网络中部署有共识节点和验证节点,所述共识节点部署有所述子链交易汇总服务节点对应的汇总业务处理数据;所述装置由所述共识节点运行,所述装置包括:
第一数据获取模块,用于获取与所述汇总节点相关联的第一交易汇总区块数据;所述第一交易汇总区块数据是由所述汇总节点通过所述业务节点所上传的;所述第一交易汇总区块数据是对第一交易汇总区块、子链业务交易的业务状态读数据和所述子链业务交易的第一子链交易执行结果进行数据封装所得到的;所述子链业务交易为所述汇总节点所获取到的待写入所述业务网络的业务子链的交易;所述第一交易汇总区块是由所述汇总节点调用所述子链交易汇总服务节点对所述子链业务交易进行打包得到的;所述子链业务交易的业务状态读数据和所述子链业务交易的第一子链交易执行结果是所述汇总节点调用所述子链交易汇总服务节点执行所述第一交易汇总区块时所记录的;
区块数据处理模块,用于调用所述汇总业务处理数据获取所述第一交易汇总区块,为所述第一交易汇总区块配置第一区块锁定时长,且生成所述第一交易汇总区块的区块待确认事件;所述区块待确认事件用于指示所述验证节点基于所述第一交易汇总区块和所述子链业务交易的业务状态读数据,生成第一零知识证明;
第一证明验证模块,用于在所述第一区块锁定时长内时,基于所述第一交易汇总区块数据确定用于验证所述第一零知识证明的验证参数,通过所述验证参数和所述第一零知识证明所携带的证明参数,对所述第一零知识证明进行第一证明验证,在第一证明验证成功时,得到所述第一交易汇总区块的区块确认成功信息;
信息返回模块,用于将所述区块确认成功信息返回至所述汇总节点,以使所述汇总节点基于所述区块确认成功信息确认将所述第一交易汇总区块写入所述业务子链上。
22.一种基于分层区块链网络的数据处理装置,其特征在于,所述分层区块链网络中包括业务网络和共识网络;所述业务网络中部署有汇总节点和业务节点,所述汇总节点中部署有子链交易汇总服务节点;所述共识网络中部署有共识节点和验证节点,所述共识节点部署有所述子链交易汇总服务节点对应的汇总业务处理数据;所述装置由所述验证节点运行,所述装置包括:
事件探测模块,用于在探测到所述共识节点生成的区块待确认事件时,基于所述区块待确认事件,从所述共识节点的汇总业务处理数据中获取第一交易汇总区块和所述第一交易汇总区块中的子链业务交易的业务状态读数据;所述区块待确认事件是所述共识节点在调用所述汇总业务处理数据获取到第一交易汇总区块数据中的第一交易汇总区块,且为所述第一交易汇总区块配置第一区块锁定时长时生成的;所述第一交易汇总区块数据是对所述第一交易汇总区块、所述第一交易汇总区块中的子链业务交易的业务状态读数据和所述子链业务交易的第一子链交易执行结果进行数据封装得到的;所述子链业务交易为所述汇总节点所获取到的待写入所述业务网络的业务子链的交易;所述第一交易汇总区块是由所述汇总节点调用所述子链交易汇总服务节点对所述子链业务交易进行打包得到的;所述子链业务交易的业务状态读数据和第一子链交易执行结果是所述汇总节点调用所述子链交易汇总服务节点执行所述第一交易汇总区块时所记录的;
证明生成模块,用于对所述第一交易汇总区块和所述子链业务交易的业务状态读数据进行证明计算处理,得到所述第一交易汇总区块的第一零知识证明;
证明发送模块,用于将所述第一交易汇总区块的第一零知识证明发送至所述共识节点,所述共识节点用于在所述第一区块锁定时长内时,基于所述第一交易汇总区块数据对所述第一零知识证明进行第一证明验证,且在所述第一证明验证成功时,生成所述第一交易汇总区块的区块确认成功信息,将所述区块确认成功信息返回至所述汇总节点;所述区块确认成功信息用于指示所述汇总节点基于所述区块确认成功信息确认将所述第一交易汇总区块写入所述业务子链上。
23.一种计算机设备,其特征在于,包括存储器和处理器;
所述存储器与所述处理器相连,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1-19任一项所述的方法。
24.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1-19任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311299968.4A CN117056084B (zh) | 2023-10-09 | 2023-10-09 | 基于分层区块链网络的数据处理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311299968.4A CN117056084B (zh) | 2023-10-09 | 2023-10-09 | 基于分层区块链网络的数据处理方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117056084A CN117056084A (zh) | 2023-11-14 |
CN117056084B true CN117056084B (zh) | 2023-12-08 |
Family
ID=88661162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311299968.4A Active CN117056084B (zh) | 2023-10-09 | 2023-10-09 | 基于分层区块链网络的数据处理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117056084B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113822672A (zh) * | 2021-11-22 | 2021-12-21 | 浙江数秦科技有限公司 | 一种基于零知识证明的区块链共识方法 |
CN114298840A (zh) * | 2021-12-30 | 2022-04-08 | 杭州溪塔科技有限公司 | 一种基于零知识证明的区块链交易背书方法及系统 |
US11323269B2 (en) * | 2020-01-20 | 2022-05-03 | International Business Machines Corporation | Preserving privacy of linked cross-network transactions |
CN116488818A (zh) * | 2022-01-17 | 2023-07-25 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
-
2023
- 2023-10-09 CN CN202311299968.4A patent/CN117056084B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11323269B2 (en) * | 2020-01-20 | 2022-05-03 | International Business Machines Corporation | Preserving privacy of linked cross-network transactions |
CN113822672A (zh) * | 2021-11-22 | 2021-12-21 | 浙江数秦科技有限公司 | 一种基于零知识证明的区块链共识方法 |
CN114298840A (zh) * | 2021-12-30 | 2022-04-08 | 杭州溪塔科技有限公司 | 一种基于零知识证明的区块链交易背书方法及系统 |
CN116488818A (zh) * | 2022-01-17 | 2023-07-25 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Non-Patent Citations (1)
Title |
---|
区块链跨链协议综述;孟博 等;计算机科学与探索;第16卷(第10期);2177-2192 * |
Also Published As
Publication number | Publication date |
---|---|
CN117056084A (zh) | 2023-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111461723B (zh) | 基于区块链的数据处理系统及方法、装置 | |
CN109117097B (zh) | 一种基于区块链的数据存储方法及系统 | |
CN109472572B (zh) | 基于区块链主链加并行多子链的合约系统 | |
CN111598566A (zh) | 基于混合跨链的网络支付系统 | |
CN110009494B (zh) | 一种监控区块链中的交易内容的方法及装置 | |
CN109493052B (zh) | 一种基于主链加并行多子链的跨链合约系统 | |
JP2024505692A (ja) | ブロックチェーンネットワークに基づくデータ処理方法、装置及びコンピュータ機器 | |
CN113409047B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
Wang | Sok: Applying blockchain technology in industrial internet of things | |
Nawab | Wedgechain: A trusted edge-cloud store with asynchronous (lazy) trust | |
CN116827957B (zh) | 基于多区块链的信息处理方法、装置、设备以及介质 | |
KR102139551B1 (ko) | 유언장을 관리하는 서버 및 방법 | |
CN112269838A (zh) | 基于区块链的监管方法、装置、电子设备及存储介质 | |
CN117056084B (zh) | 基于分层区块链网络的数据处理方法、装置、设备及介质 | |
Zhu et al. | A study on the challenges and solutions of blockchain interoperability | |
Guo et al. | A novel security mechanism for software defined network based on Blockchain | |
CN114301912A (zh) | 基于区块链的信息交互方法和装置 | |
CN117057913A (zh) | 区块链管理方法、装置、计算机、存储介质及程序产品 | |
CN117061538A (zh) | 一种基于区块链网络的共识处理方法及相关装置 | |
CN116804949B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN116708463B (zh) | 基于多区块链的信息处理方法、装置、设备以及介质 | |
CN113362064B (zh) | 多重签名方法、计算机设备和存储介质 | |
CN116760632B (zh) | 数据处理方法、装置、设备及可读存储介质 | |
US20240137208A1 (en) | Asset transferring method and apparatus based on multiple blockchains, device, medium, and product | |
CN116975158B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40097783 Country of ref document: HK |