CN114785812A - 一种基于零知识证明的区块链区块同步方法及装置 - Google Patents
一种基于零知识证明的区块链区块同步方法及装置 Download PDFInfo
- Publication number
- CN114785812A CN114785812A CN202210710309.4A CN202210710309A CN114785812A CN 114785812 A CN114785812 A CN 114785812A CN 202210710309 A CN202210710309 A CN 202210710309A CN 114785812 A CN114785812 A CN 114785812A
- Authority
- CN
- China
- Prior art keywords
- block
- zero knowledge
- synchronization
- knowledge proof
- node
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- 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
-
- 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
- H04L9/3221—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 interactive zero-knowledge proofs
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Marketing (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Development Economics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于零知识证明的区块链区块同步方法及装置,在节点同步区块时,不需要重复计算区块里的交易,同时,由于隐私等问题,区块里的数据可能为加密的,区块验证不能直接明文验证,本发明采用对区块里的零知识证明进行验证,验证通过则表明区块是合法区块,然后进行区块同步,能够提升区块同步的效率,同时提高区块链的隐私保护性能;此外,区块同步采用异步的方式,将区块传输、验证进行分离,在区块传输、验证阶段均采用分段策略,降低区块同步对区块链网络负载的影响,防止当同步较多区块时出现错误导致整个同步工作失败,浪费资源,影响区块链网络稳定。
Description
技术领域
本发明属于区块链技术领域,尤其涉及一种基于零知识证明的区块链区块同步方法及装置。
背景技术
区块链网络在新加入节点或节点恢复等情况,需要进行区块同步,传统做法是重新计算区块里的交易,然后验证执行结果跟区块中的结果是否一致来验证区块的有效性,验证通过后再同步区块,传统的同步方案会有大量的重复计算,导致节点同步区块效率低下;同时,由于区块链共识的特性要求共识的信息需要在共识节点内进行透明公开,会造成隐私安全问题。
发明内容
本发明的目的在于针对现有技术的不足,提出一种基于零知识证明的区块链区块同步方法及装置。
本发明的目的是通过以下技术方案实现的:
根据本发明的第一方面,提供一种基于零知识证明的区块链区块同步方法, 包括:
在区块链网络设置公共的零知识证明服务模块,所述零知识证明服务模块为区块链节点提供基于离散对数的非交互式零知识证明服务,将零知识证明服务请求所输入零知识证明材料生成零知识证明,并将零知识证明返回给请求者;
在区块传输阶段,计算区块同步请求节点需要同步的总区块高度,根据分段步长确定分段数,针对各分段的同步区块从最新区块高度节点中选择同步节点进行同步;
在区块验证阶段,当区块被传送到区块同步请求节点后,放入缓存,区块同步请求节点根据分段步长进行分段验证,各分段内验证最高的区块,各分段内最高的区块对应的同步节点向零知识证明服务模块发起服务请求,并将零知识证明服务模块返回的零知识证明发送到区块同步请求节点完成区块验证。
进一步地,所述基于离散对数的非交互式零知识证明服务流程包括:
区块同步请求节点向同步节点发起区块同步请求;
同步节点向零知识证明服务模块请求零知识证明服务,同步节点根据区块信息生成零知识证明材料δ,并发送到零知识证明服务模块;
零知识证明服务模块利用零知识证明材料δ构建基于大质数p和正整数g的离散对数y=gδ(mod p),mod为求模,y为指数值;
零知识证明服务模块从群Zp中选出一个随机数v,计算新的指数值t=gv(mod p),其中Zp为小于p的所有素数集合构成的群;
零知识证明服务模块计算哈希值h=H(g,y,t),H(·)为哈希函数;
零知识证明服务模块计算中间变量r=v-h*δ,得到零知识证明proof=(t,r),并将零知识证明proof以及正整数g、指数值y、哈希值h返回给区块同步;
同步节点将零知识证明proof以及正整数g、指数值y、哈希值h发送给区块同步请求节点;
区块同步请求节点验证零知识证明proof,即验证公式gryh≡t是否成立。
进一步地,所述零知识证明材料包括:前序区块哈希、交易列表、区块签名信息、时间戳、随机数、默克尔树验证路径、默克尔根。
进一步地,根据前序区块哈希、交易列表、区块签名信息、时间戳、随机数这些区块信息生成当前区块哈希,所述当前区块哈希按照默克尔树验证路径与默克尔根对比从而验证区块合法性。
进一步地,在区块传输阶段,各分段的同步区块根据区块链中节点的负载情况,从最新区块高度节点中选择同步节点进行同步,每次同步的同步节点个数不超过区块链半数节点。
进一步地,区块同步请求节点向最新区块高度节点确认区块高度差异,根据差异值及分段步长确定分段数,各分段并发同步区块,区块哈希的生成采用递归哈希,根据递归哈希,只需验证每个分段内最高的区块。
进一步地,各分段同步完成后,同步本地区块高度,如果有分段内区块验证失败,则将已经验证通过的具有最高区块高度的分段以及之前分段的区块更新至本地账本,更新本地区块高度,其余分段的区块进行回滚,按照新的本地区块高度再次开启同步流程。
进一步地,每个节点设有处理模块、验证模块和提交模块,所述处理模块用于区块高度检查,发起区块同步请求,区块传输;所述验证模块用于验证区块的合法性;所述提交模块用于将合法的区块提交到账本。
进一步地,区块同步流程如下:
区块同步请求节点通过处理模块发起区块同步请求,并选择最新区块高度节点作为同步节点;
接收到区块同步请求的同步节点验证请求信息后,将区块传输给区块同步请求节点,区块同步请求节点将区块缓存;
区块同步请求节点进行分段验证,各分段内验证最高的区块,各分段内最高的区块对应的同步节点向零知识证明服务模块发起零知识证明服务请求;
零知识证明服务模块根据零知识证明服务请求信息,生成零知识证明并返回给同步节点;
同步节点将零知识证明发送给区块同步请求节点,区块同步请求节点的验证模块验证零知识证明;
零知识证明验证通过,通过提交模块提交区块,并更新本地区块高度及缓存区块,否则结束;
检查区块同步请求节点的本地区块高度是否同区块链的最高区块高度一致,如果不一致则继续发起区块同步请求,如果一致则结束区块同步流程。
根据本发明的第二方面,提供一种基于零知识证明的区块链区块同步装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述基于零知识证明的区块链区块同步方法。
本发明的有益效果是:本发明提出一种基于零知识证明的区块链区块同步方法及装置,在节点同步区块时,不需要重复计算区块里的交易,同时,由于隐私等问题,区块里的数据可能为加密的,区块验证不能直接明文验证,本发明采用对区块里的零知识证明进行验证,验证通过则表明区块是合法区块,然后进行区块同步,能够提升区块同步的效率,同时提高区块链的隐私保护性能。此外,区块同步采用异步的方式,将区块传输、验证进行分离,在区块传输、验证阶段均采用分段策略,降低区块同步对区块链网络负载的影响,防止当同步较多区块时出现错误导致整个同步工作失败,浪费资源,影响区块链网络稳定。
附图说明
图1为本发明实施例提供的整体架构图;
图2为本发明实施例提供的零知识证明服务流程图;
图3为本发明实施例提供的区块同步流程图;
图4为本发明实施例提供的基于零知识证明的区块链区块同步装置结构图。
具体实施方式
为了更好的理解本申请的技术方案,下面结合附图对本申请实施例进行详细描述。
应当明确,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
本发明的整体架构如图1所示,区块同步请求节点为区块链的新增节点或区块高度落后节点,根据区块链的最新区块高度节点进行区块同步。
区块同步采用区块传输与区块验证异步进行策略。
在区块传输阶段,采用分段策略传输区块,具体为:
首先计算区块同步请求节点需要同步的总区块高度,然后根据传输分段步长确定传输分段数,将各段的同步区块选择区块链中负载较低的最新区块高度节点作为同步节点进行同步,每次同步节点个数不超过区块链半数节点,如果需要同步的区块高度很高,使得分段数超过区块链半数节点,则分多次重复上述同步流程,从而降低区块同步对区块链网络负载的影响。
在区块验证阶段,当区块被传送到区块同步请求节点后,放入缓存,区块同步请求节点在进行零知识证明验证时,也采用分段策略,详述见后文。
本发明的实现主要包括以下三个部分:
一、验证区块合法性的零知识证明材料设计
将区块的一些信息构成零知识证明材料,这些材料能够证明区块的合法性,为密文信息。
二、非交互式零知识证明服务设计
设计基于离散对数的非交互式零知识证明服务,非交互的零知识证明能够减少交互通信次数,效率较高,基于离散对数的数学问题,在时间复杂度数上优于多项式时间。
三、基于零知识证明的区块同步流程
通过零知识证明重新设计区块链中区块同步流程,能够大大减少计算量,提高区块同步效率,同时零知识证明又能够保证区块的合法性。
下述说明进一步给出了符合本申请要求的基于零知识证明的区块链区块同步方法实现的部分实施例。
在区块链网络设置公共的零知识证明服务模块,该模块为整个区块链网络提供非交互式的零知识证明服务,该模块会将零知识证明服务请求所输入数据生成零知识证明,然后将零知识证明返回给请求者。
本发明中验证者通过零知识证明能够验证区块的合法性,不需要区块里的明文信息,不需要对区块交易进行重新计算来进行合法性验证,通过零知识证明的方式实现验证区块合法性的论断,既能够提高效率,又能够保证隐私。
区块同步请求节点向已经共识过的最新区块高度节点确认区块高度差异,根据差异值分段同步,每一段同步可以根据一个最新区块高度节点或者不同最新区块高度节点,分段同步能够避免当区块落后过多时出错回滚计算量超负荷,影响区块链网络稳定。具体的分段流程如下:
1、区块同步请求节点与最新区块高度节点通信,确定区块链当前区块最新高度H,区块同步请求节点的本地区块高度为h,需要同步区块的个数为H-h;
2、从配置文件获取分段步长K;
3、区块同步请求节点分段并发去同步区块,根据递归哈希,只需验证每个分段内最高的区块即可,例如需要同步Bh,Bh+1,…,BH-1,BH区块,即同步高度从h到H的区块,那么可以按照分段步长K进行并发同步,例如可以按以下方式将同步区块分段:Bh…Bh+K-1,Bh+K…Bh+2K-1,…,BH-K+1…BH;
4、各分段同步完成后,同步本地区块高度,如果有分段内区块验证失败,则将已经验证通过的具有最高区块高度的分段以及之前分段的区块更新至本地账本,更新本地区块高度,其余分段的区块则进行回滚,按照新的本地区块高度再次开启同步流程。
区块哈希的生成采用递归哈希,即当前区块哈希包括前序区块哈希,采用这种方式,如果当前区块合法,那么前序区块也合法。采用递归哈希能够减少验证次数,在分段同步时,只需验证各个分段内最高的区块即能确定整个分段的区块都是合法的,各分段的最高区块为:Bh+K-1,Bh+2K-1,…,BH;根据各分段的最高区块的以下信息生成零知识证明材料:
(1)前序区块哈希pre_block_hash;
(2)交易列表,用于生成交易摘要,不会直接显示给区块同步请求节点,在没有暴露的情况下,实现区块合法性验证,提供隐私保护;
(3)区块签名信息signature;
(4)时间戳timestamp;
(5)随机数random;
(6)默克尔树验证路径merkle_path;
(7)默克尔根merkle_root。
区块里的前序区块哈希、交易列表、区块签名信息、时间戳、随机数这些区块信息生成当前区块哈希,该当前区块哈希按照默克尔树验证路径与默克尔根对比即可验证区块合法性。同步节点将生成的零知识证明材料发送到零知识证明服务模块获取零知识证明,并将该零知识证明发送到区块同步请求节点进行验证。通过零知识证明能够保证区块相关信息在不泄露的情况下,证明区块的合法性,通过零知识证明能够保证区块的隐私信息,例如区块内的交易详细信息,同时通过零知识证明来证明区块的合法性,不需要对区块内的交易进行重新执行,在隐私保护及效率上均得到了提升。
在以下实施例中,详细描述非交互式零知识证明过程。
离散对数定义:给定大质数p和正整数g,已知离散对数公式y=gx(mod p),求解x,其中mod为求模,x为幂,y为指数值;离散对数问题求解难度很大,超过了多项式时间,反过来知道x,求解y=gx(mod p)则容易很多。可以利用离散对数的性质来构建非交互式的零知识证明服务。
假设节点S从节点M上同步区块,节点M需要向节点S证明区块的合法性,根据离散对数的特性,构建零知识证明服务,其流程如图2所示。
1、节点S向节点M发起区块同步请求;
2、节点M需要向节点S证明区块的合法性,节点M向零知识证明服务模块请求零知识证明服务,节点M根据区块信息生成零知识证明材料δ并发送到零知识证明服务模块,零知识证明材料δ包括:前序区块哈希、交易列表、区块签名信息、时间戳、随机数、默克尔树验证路径、默克尔根;
3、零知识证明服务模块利用零知识证明材料δ构建基于大质数p和正整数g的离散对数y=gδ(mod p),y为指数值;
4、零知识证明服务模块从群Zp中选出一个随机数v,v∈Zp,计算新的指数值t=gv(mod p),其中Zp为小于p的所有素数集合构成的群;
5、零知识证明服务模块计算哈希值h=H(g,y,t),H(·)为哈希函数;
6、零知识证明服务模块计算中间变量r=v-h*δ,得到零知识证明proof=(t,r),将零知识证明proof以及正整数g、指数值y、哈希值h返回给节点M;
7、节点M将零知识证明proof以及正整数g、指数值y、哈希值h发送给节点S;
8、节点S验证零知识证明proof,即验证公式gryh≡t是否成立;
因为r=v-h*δ,y=gδ(mod p),带入gryh=gv-h*δgδ* h (mod p)=gv(mod p)=t;
9、如果步骤8中公式成立则区块验证通过,更新本地账本及本地区块高度;如果区块验证失败,则将已经验证通过的具有最高区块高度的分段以及之前分段的区块更新至本地账本,更新本地区块高度,验证失败的区块进行回滚,按照新的本地区块高度再次开启同步流程。
在以下实施例中,详细描述区块同步流程。
区块同步采用异步的方式,将区块传输、验证进行分离,相较于传统的区块传输、验证串行进行能够提升效率。本实施例中基于零知识证明的区块同步主要包括:
每个节点具有处理模块、验证模块和提交模块,区块链网络具有公共的零知识证明服务模块。处理模块主要用于区块高度检查,发起区块同步请求,区块传输等;验证模块主要用于验证区块的合法性;提交模块主要用于将合法的区块提交到账本;零知识证明服务模块主要用于生成区块的零知识证明。
区块同步请求节点通过处理模块发起区块同步请求,并确定区块链当前区块最新高度H,其他节点发来的区块被处理模块接收并缓存起来,处理模块会根据本地区块高度h,从缓存中分段获取对应的区块数据通过验证模块进行验证,某分段的验证只需验证该分段内区块高度最高的区块的零知识证明信息即可,通过区块的递归哈希实现减少验证的次数,同时分段验证具有很高的容错性,防止当同步很多区块时出现错误导致整个同步工作失败,浪费资源;分段进行的话,各分段验证通过后将验证通过的区块通过提交模块提交到本地账本,并更新本地区块高度,处理模块将缓存中的已同步的区块数据从缓存中移除,验证失败的区块进行回滚,按照新的本地区块高度再次开启同步流程。
整个同步流程传输与验证异步进行,采用并发执行策略,以提高同步效率,重复同步流程直至区块同步请求节点的本地区块高度同区块链的最高块高持平,同步结束。
在一个实施例中,如图3所示,区块同步详细流程如下:
1、区块同步请求节点的处理模块发起区块同步请求,并选择最新区块高度节点作为同步节点;
2、接收到区块同步请求的同步节点,验证请求信息后,将区块传输给区块同步请求节点,区块同步请求节点将区块缓存;区块同步请求节点根据分段步长K进行分段验证,各分段内验证区块高度最高的区块,各分段内高度最高的区块对应的同步节点向零知识证明服务模块发起零知识证明服务请求;
3、零知识证明服务模块根据零知识证明服务请求信息,生成区块合法性承诺的零知识证明并返回给同步节点;
4、同步节点将零知识证明发送给区块同步请求节点,区块同步请求节点的验证模块验证零知识证明;
5、零知识证明验证通过,则开始提交区块,并更新本地区块高度及缓存区块,否则结束;
6、检查区块同步请求节点的本地区块高度是否同区块链的最高块高一致,如果不一致则继续发起区块同步请求,如果一致则结束区块同步流程。
与前述基于零知识证明的区块链区块同步方法的实施例相对应,本发明还提供了基于零知识证明的区块链区块同步装置的实施例。
参见图4,本发明实施例提供的基于零知识证明的区块链区块同步装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,用于实现上述实施例中的基于零知识证明的区块链区块同步方法。
本发明基于零知识证明的区块链区块同步装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本发明基于零知识证明的区块链区块同步装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的基于零知识证明的区块链区块同步方法。
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备的外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (10)
1.一种基于零知识证明的区块链区块同步方法,其特征在于,包括:
在区块链网络设置公共的零知识证明服务模块,所述零知识证明服务模块为区块链节点提供基于离散对数的非交互式零知识证明服务,将零知识证明服务请求所输入零知识证明材料生成零知识证明,并将零知识证明返回给请求者;
在区块传输阶段,计算区块同步请求节点需要同步的总区块高度,根据分段步长确定分段数,针对各分段的同步区块从最新区块高度节点中选择同步节点进行同步;
在区块验证阶段,当区块被传送到区块同步请求节点后,放入缓存,区块同步请求节点根据分段步长进行分段验证,各分段内验证最高的区块,各分段内最高的区块对应的同步节点向零知识证明服务模块发起服务请求,并将零知识证明服务模块返回的零知识证明发送到区块同步请求节点完成区块验证。
2.根据权利要求1所述的一种基于零知识证明的区块链区块同步方法,其特征在于,所述基于离散对数的非交互式零知识证明服务流程包括:
区块同步请求节点向同步节点发起区块同步请求;
同步节点向零知识证明服务模块请求零知识证明服务,同步节点根据区块信息生成零知识证明材料δ,并发送到零知识证明服务模块;
零知识证明服务模块利用零知识证明材料δ构建基于大质数p和正整数g的离散对数y=gδ(mod p),mod为求模,y为指数值;
零知识证明服务模块从群Zp中选出一个随机数v,计算新的指数值t=gv(mod p),其中Zp为小于p的所有素数集合构成的群;
零知识证明服务模块计算哈希值h=H(g,y,t),H(·)为哈希函数;
零知识证明服务模块计算中间变量r=v-h*δ,得到零知识证明proof=(t,r),并将零知识证明proof以及正整数g、指数值y、哈希值h返回给区块同步;
同步节点将零知识证明proof以及正整数g、指数值y、哈希值h发送给区块同步请求节点;
区块同步请求节点验证零知识证明proof,即验证公式gryh≡t是否成立。
3.根据权利要求1所述的一种基于零知识证明的区块链区块同步方法,其特征在于,所述零知识证明材料包括:前序区块哈希、交易列表、区块签名信息、时间戳、随机数、默克尔树验证路径、默克尔根。
4.根据权利要求3所述的一种基于零知识证明的区块链区块同步方法,其特征在于,根据前序区块哈希、交易列表、区块签名信息、时间戳、随机数这些区块信息生成当前区块哈希,所述当前区块哈希按照默克尔树验证路径与默克尔根对比从而验证区块合法性。
5.根据权利要求1所述的一种基于零知识证明的区块链区块同步方法,其特征在于,在区块传输阶段,各分段的同步区块根据区块链中节点的负载情况,从最新区块高度节点中选择同步节点进行同步,每次同步的同步节点个数不超过区块链半数节点。
6.根据权利要求1所述的一种基于零知识证明的区块链区块同步方法,其特征在于,区块同步请求节点向最新区块高度节点确认区块高度差异,根据差异值及分段步长确定分段数,各分段并发同步区块,区块哈希的生成采用递归哈希,根据递归哈希,只需验证每个分段内最高的区块。
7.根据权利要求1所述的一种基于零知识证明的区块链区块同步方法,其特征在于,各分段同步完成后,同步本地区块高度,如果有分段内区块验证失败,则将已经验证通过的具有最高区块高度的分段以及之前分段的区块更新至本地账本,更新本地区块高度,其余分段的区块进行回滚,按照新的本地区块高度再次开启同步流程。
8.根据权利要求1所述的一种基于零知识证明的区块链区块同步方法,其特征在于,每个节点设有处理模块、验证模块和提交模块,所述处理模块用于区块高度检查,发起区块同步请求,区块传输;所述验证模块用于验证区块的合法性;所述提交模块用于将合法的区块提交到账本。
9.根据权利要求8所述的一种基于零知识证明的区块链区块同步方法,其特征在于,区块同步流程如下:
区块同步请求节点通过处理模块发起区块同步请求,并选择最新区块高度节点作为同步节点;
接收到区块同步请求的同步节点验证请求信息后,将区块传输给区块同步请求节点,区块同步请求节点将区块缓存;
区块同步请求节点进行分段验证,各分段内验证最高的区块,各分段内最高的区块对应的同步节点向零知识证明服务模块发起零知识证明服务请求;
零知识证明服务模块根据零知识证明服务请求信息,生成零知识证明并返回给同步节点;
同步节点将零知识证明发送给区块同步请求节点,区块同步请求节点的验证模块验证零知识证明;
零知识证明验证通过,通过提交模块提交区块,并更新本地区块高度及缓存区块,否则结束;
检查区块同步请求节点的本地区块高度是否同区块链的最高区块高度一致,如果不一致则继续发起区块同步请求,如果一致则结束区块同步流程。
10.一种基于零知识证明的区块链区块同步装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,其特征在于,所述处理器执行所述可执行代码时,实现如权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210710309.4A CN114785812B (zh) | 2022-06-22 | 2022-06-22 | 一种基于零知识证明的区块链区块同步方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210710309.4A CN114785812B (zh) | 2022-06-22 | 2022-06-22 | 一种基于零知识证明的区块链区块同步方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114785812A true CN114785812A (zh) | 2022-07-22 |
CN114785812B CN114785812B (zh) | 2022-10-21 |
Family
ID=82422390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210710309.4A Active CN114785812B (zh) | 2022-06-22 | 2022-06-22 | 一种基于零知识证明的区块链区块同步方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114785812B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117938548A (zh) * | 2024-03-22 | 2024-04-26 | 深圳市纽创信安科技开发有限公司 | 密钥数据同步方法、装置和设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020133333A1 (en) * | 2018-12-29 | 2020-07-02 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for a hierarchical blockchain network |
WO2021003968A1 (zh) * | 2019-07-09 | 2021-01-14 | 深圳壹账通智能科技有限公司 | 数据核对方法、装置、计算机设备和存储介质 |
WO2021222669A1 (en) * | 2020-04-29 | 2021-11-04 | Brave Software, Inc. | Decentralized privacy-preserving rewards with cryptographic black box accumulators |
CN114065283A (zh) * | 2020-11-20 | 2022-02-18 | 北京邮电大学 | 一种轻量级可循环再生的区块链存储方法及装置 |
CN114372799A (zh) * | 2022-01-04 | 2022-04-19 | 杭州复杂美科技有限公司 | 一种平行链系统及其共识方法、设备及储存介质 |
-
2022
- 2022-06-22 CN CN202210710309.4A patent/CN114785812B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020133333A1 (en) * | 2018-12-29 | 2020-07-02 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for a hierarchical blockchain network |
WO2021003968A1 (zh) * | 2019-07-09 | 2021-01-14 | 深圳壹账通智能科技有限公司 | 数据核对方法、装置、计算机设备和存储介质 |
WO2021222669A1 (en) * | 2020-04-29 | 2021-11-04 | Brave Software, Inc. | Decentralized privacy-preserving rewards with cryptographic black box accumulators |
CN114065283A (zh) * | 2020-11-20 | 2022-02-18 | 北京邮电大学 | 一种轻量级可循环再生的区块链存储方法及装置 |
CN114372799A (zh) * | 2022-01-04 | 2022-04-19 | 杭州复杂美科技有限公司 | 一种平行链系统及其共识方法、设备及储存介质 |
Non-Patent Citations (1)
Title |
---|
翟社平等: "区块链中的隐私保护技术", 《西安邮电大学学报》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117938548A (zh) * | 2024-03-22 | 2024-04-26 | 深圳市纽创信安科技开发有限公司 | 密钥数据同步方法、装置和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114785812B (zh) | 2022-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113329031B (zh) | 一种区块的状态树的生成方法及装置 | |
CN109379397B (zh) | 基于区块链的交易共识处理方法及装置、电子设备 | |
CN109345386B (zh) | 基于区块链的交易共识处理方法及装置、电子设备 | |
CN111901350B (zh) | 区块链系统、数据处理方法、计算机设备及存储介质 | |
CN108648084B (zh) | 一种区块链网络的数据处理方法、装置、设备及存储介质 | |
CN109981565B (zh) | 基于Meta-BFT共识机制的区块链平台及实现方法 | |
CN111147261B (zh) | 在区块链中使用HotStuff共识算法的方法及系统 | |
CN112600678B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
US20220172180A1 (en) | Method for Storing Transaction that Represents Asset Transfer to Distributed Network and Program for Same | |
Marsalek et al. | Tackling data inefficiency: Compressing the bitcoin blockchain | |
CN111314060B (zh) | 一种密钥更新方法、设备及存储介质 | |
CN114785812B (zh) | 一种基于零知识证明的区块链区块同步方法及装置 | |
Gabizon et al. | Plumo: Towards scalable interoperable blockchains using ultra light validation systems | |
CN111640018A (zh) | 一种区块链交易存在性验证方法及装置 | |
CN113157450A (zh) | 在区块链系统中执行区块的方法及装置 | |
CN112184441A (zh) | 数据处理方法、装置、节点设备及存储介质 | |
Wu et al. | Robust and auditable distributed data storage with scalability in edge computing | |
CN113326332B (zh) | 一种区块链的快照同步方法及装置 | |
CN109685657B (zh) | 在区块链网络中处理交易的方法和节点设备以及存储介质 | |
CN111061813B (zh) | 用于区块链网络中的数据同步的方法、装置和计算设备 | |
CN112887365B (zh) | 基于mmr算法区块链的超轻量级节点验证方法及装置 | |
CN111970370B (zh) | 基于面向通信设备体系的多层区块链协议拓展系统及方法 | |
CN110692078A (zh) | 基于区块链的交易数据处理方法、设备和存储介质 | |
Lewi et al. | Securing update propagation with homomorphic hashing | |
CN111083221B (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 |