CN115085972B - 一种支持完整性审计的高效可验证区块链编辑方法 - Google Patents
一种支持完整性审计的高效可验证区块链编辑方法 Download PDFInfo
- Publication number
- CN115085972B CN115085972B CN202210530746.8A CN202210530746A CN115085972B CN 115085972 B CN115085972 B CN 115085972B CN 202210530746 A CN202210530746 A CN 202210530746A CN 115085972 B CN115085972 B CN 115085972B
- Authority
- CN
- China
- Prior art keywords
- block
- blockchain
- node
- vector
- audit
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
- H04L9/3073—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- 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/104—Peer-to-peer [P2P] networks
- H04L67/1042—Peer-to-peer [P2P] networks using topology management mechanisms
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3033—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
-
- 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
-
- 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/3247—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 involving digital signatures
-
- 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/3271—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 challenge-response
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Algebra (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种支持完整性审计的高效可验证区块链编辑方法,包括:建立区块链系统,初始化所述区块链的系统参数;区块追加,打包交易生成新区块,并将新区块绑定至区块链认证树;区块修改,修改目标区块的数据并生成新区块,进而更新区块链认证树中的目标区块及相应路径节点的家庭向量承诺;区块查询,计算并返回被查询区块的证据以及相应的验证值,并通过证据验证所述被查询区块的正确性和有效性;区块链审计,生成审计挑战和审计证据,并通过审计证据检查区块链账本的完整性和有效性。本发明保证了可编辑区块链中区块数据的正确性、完整性和有效性,通过变色龙认证树实现了高效的区块查询和区块链完整性审计,节省了大量的计算资源和通信成本。
Description
技术领域
本发明属于区块链与信息安全技术领域,具体涉及一种支持完整性审计的高效可验证区块链编辑方法。
背景技术
作为一种颠覆性的计算范式,区块链技术因其去中心化、不可篡改、可编程等特点为解决传统服务架构中的信任问题和安全威胁提供了新的思路,其应用场景逐步由数字金融领域拓展至医疗、保险、供应链等领域。然而,不可篡改性作为一种理想化技术特性,虽然可以保证链上数据不被恶意修改,但也使得恶意攻击可以通过发布不可删除的恶意信息来污染区块链网络环境,或利用链上不可修改的安全漏洞发起攻击,这限制了区块链的发展与应用前景。
事实上,区块链的不可篡改特性来源于底层的分布式共识机制和基于哈希函数的块链式账本结构,因此数据是否可修改取决于全网共识结果和数据结构的可变性。基于这种思路,可编辑区块链技术通过引入新型的区块链结构,可以在全网许可的情况下对链上目标数据进行可控的修改。目前,主流的可编辑区块链方案都是基于变色龙哈希函数构造的,仅允许持有陷门密钥的修改者可以计算出与目标区块具备相同哈希值的碰撞块,从而在不破坏区块链哈希结构的情况下完成区块修改。从区块链底层设置来看,现有可编辑区块链可以分为许可链编辑技术和无许可链编辑技术。前者或依赖于完全可信的权威修改者持有陷门密钥,以实现共识许可的区块数据修改;或利用权威中心通过属性基加密算法实现细粒度的密钥分发,允许满足访问策略的用户对链上数据进行修改。后者则允许多个修改者通过安全多方计算的形式生成变色龙哈希密钥,完成对目标数据的修改。从修改目标来看,现有可编辑区块链可以分为区块级和交易级可编辑区块链技术,前者利用变色龙哈希函数代替用于生成区块哈希链的标准哈希函数,适用于同区块中多笔交易批量修改的场景;后者利用变色龙哈希函数代替用于生成区块MHT(Merkle hash tree,默克尔哈希树)叶子节点的标准哈希函数,适用于单笔交易的修改场景,但存在数据冗余和密钥管理的问题。
尽管可编辑区块链技术完美地平衡了区块链的不可篡改性和可编辑性,并且现有方案在密钥分发、权限管理、追踪问责等方面取得了较大的进展,但区块链的修改会导致相同的区块可能存在多个不同的碰撞块(即各个被修改的历史版本),这使得恶意全节点可能仍旧存储目标区块的无效版本,而其他节点无法有效检查其区块链账本数据的正确性和有效性,这破坏了全网区块链账本的一致性,并且尚未被关注或解决。
首先,现有可编辑区块链方案中,轻节点在向全节点查询区块数据之后,只能检验其哈希值的正确性,而无法有效检验区块数据的有效性。一方面,理论上轻节点可以从其他全节点获取相应的目标数据,进而通过类似共识的方式判断目标数据的正确性和有效性,但这在实际场景中不仅面临较高的通信开销和网络延迟,还可能由于日蚀攻击、BGP(Border gateway protocol,边界网关协定)劫持等区块链网络攻击而导致无效验证,因此不具备实际可行性。另一方面,在部分可编辑区块链方案中,区块数据的修改记录会以交易的形式保存在区块链上,轻节点可以从全节点同步完整的区块链账本,并通过逐一检查目标数据的修改记录来检验目标数据的有效性。在实际中,同步完整的区块链正本将导致高昂的通信成本,并且逐一验证修改记录的方式也会造成较高的计算成本,这对于资源受限的轻节点来说不具备足够的实际可行性。
其次,新的区块链节点在加入可编辑区块链网络后,需要从全节点同步区块链账本的部分数据(区块头)成为轻节点,或者同步完整的区块链账本成为全节点。然而,现有的可编辑区块链无法支持用户对链上数据的完整性验证,这使得用户不得不在同步区块链账本后,再逐一验证所有链上数据的正确性和有效性,进而获取区块链账本的完整性和有效性。同样地,这对于资源受限地轻节点而言,不具备可行性。
通过上述分析,现有技术存在的问题及缺陷为:
(1)现有可编辑区块链技术会导致同一区块存在多个具备相同哈希值的历史版本,但无法对链上数据进行有效性检验,这破坏了区块链账本的一致性,严重影响了区块链系统的安全性和实用性;
(2)现有可编辑区块链技术缺乏认证数据结构,无法实现高效的链上数据查询和验证,降低了可编辑区块链技术的实际可用性;
(3)现有可编辑区块链技术不支持链上数据审计,无法实现对区块链账本的完整性验证,提高了新节点的入链成本,制约了区块链系统的拓展应用。
发明内容
为了解决现有技术中存在的上述问题,本发明提供了一种支持完整性审计的高效可验证区块链编辑方法。本发明要解决的技术问题通过以下技术方案实现:
本发明的一个方面提供了一种支持完整性审计的高效可验证区块链编辑方法,包括:
S1:建立区块链系统,生成公私密钥对和系统公开参数并初始化所述区块链系统;
S2:区块追加,打包交易生成新区块,计算新区块的变色龙哈希值和节点家庭向量承诺并将新区块绑定至区块链认证树;
S3:区块修改,修改目标区块的数据并生成新区块,计算修改获得的新区块对应的碰撞值,进而更新区块链认证树中的目标区块及相应路径节点的家庭向量承诺;
S4:区块查询,根据区块链认证树计算并返回被查询区块的证据以及相应的验证值,并通过证据验证所述被查询区块的正确性和有效性;
S5:区块链审计,生成审计挑战,根据区块链认证树生成审计证据,并通过审计证据检查区块链副本的完整性和有效性。
在本发明的一个实施例中,建立区块链系统,生成公私密钥对和系统公开参数并初始化所述区块链系统,包括:
S1.1:系统管理者在有限域上生成一条椭圆曲线/>并从所述椭圆曲线上选取一个阶为素数p的点P作为生成元,生成一个子群/>
S1.2:定义伪随机函数:φ1:和φ2:以及Hash函数:H1:/>和H2:/>其中,n表示区块链的区块个数,/>表示整数群;
S1.3:选取三个阶为p的乘法循环群和/>构建出双线性映射e:其中,三个乘法循环群的生成元分别为g1,g2和gT,gT=e(g1,g2),e()表示双线性映射运算;
S1.4:系统管理者随机生成三个陷门密钥利用陷门密钥x,y计算变色龙哈希密钥HK=(X,Y)=(xP,yP),利用陷门密钥α生成向量承诺的参数:
其中,a=(α,α2,…,αN),a[-1]=(α2,…,αN),N=q+1,q表示区块链认证树的分叉数量,N表示被承诺向量的维数;
S1.5:系统管理者利用参数和Nonce值ctr0生成创世区块:
其中,h0表示创世区块的哈希值,c0表示创世区块的承诺值,v0=(h0,H2(C1),…,H2(Cq)),并且/>
S1.6:所述系统管理者将创世区块B0={pp,h0,{Cj}0≤j≤q}公布在区块链网络中,完成系统初始化。
在本发明的一个实施例中,所述区块链认证树包括5个辅助函数:
输出被查询区块Bi在区块链认证树中的层数l,其中,i表示目标节点索引;
输出被查询区块Bi在区块链认证树中的父节点索引;
Child(i,q)=(i-1)mod q)+2:输出区块链认证树中,被查询区块Bi的承诺Ci在其父节点家庭向量中的位置,其中,树结构中节点和其子节点构成一个家庭;
Path(i,q)=Pi:输出区块链认证树中,从被查询区块Bi到根节点路径上节点的索引向量Pi=(p0,p1,…,pl),其中,p0=0,pl=i,并且对于pj-1=Parent(pj,q);
Fam(i,q)=Ai:输出区块链认证树中,被查询区块Bi的家庭索引向量Ai=(a1,a2,…,aq+1),其中a1=i,aj=q*i+j-1,(1<j≤q+1)。
在本发明的一个实施例中,所述S2包括:
S2.1:交易打包:区块链矿工从交易池中打包一定数量的交易,生成新区块的默克尔哈希树,其根节点值为mi;
S2.2:哈希绑定:所述区块链矿工生成一个随机数并使用变色龙哈希密钥HK=(X,Y)计算所述新区块的变色龙哈希值chi:
chi=H1(hi-1||mi,Y)·(X+Y)+tiP
其中,hi-1=H2(chi-1,ctri-1)为前一区块的哈希值,随后在区块链网络中广播新区块Bi=(chi,mi,ri);
S2.3:承诺绑定:当收到新区块时,系统管理者调用向量承诺算法将所述新区块绑定至所述区块链认证树;
S2.4:区块验证:其他区块链矿工在获得新区块Bi的家庭向量vi和承诺验证值γi后,验证该区块的正确性。
在本发明的一个实施例中,所述S2.3包括:
所述系统管理者通过Fam(i,q)函数计算新区块Bi的家庭节点索引向量Ai=(a1,a2,…,aq+1),其中,a1=i表示新区块Bi在区块链认证树中的节点索引,a2,…,aq+1表示区块链认证树中Bi的q个子节点的索引;
所述系统管理者为每个子节点计算向量陷门及其预设承诺并获得家庭向量/>
所述系统管理者根据所述家庭向量vi计算当前节点家庭向量承诺Ci的验证值使得:
其中,vi,j表示家庭向量vi的第j个元素;
所述系统管理者将新区块Bi的家庭向量vi和承诺验证值γi公布在区块链上。
在本发明的一个实施例中,所述S3包括:
S3.1:哈希碰撞:当区块链中第s个区块Bs需要修改时,所述系统管理者计算获得一个与原区块Bs具有同一个变色龙哈希值chs的碰撞区块Bs′(chs,m′s,Y′s,r′s),其中,m′s表示所述碰撞区块Bs’的默克尔哈希树的根节点值,Y′s表示所述碰撞区块Bs′的变色龙哈希密钥,r′s表示所述碰撞区块Bs′的变色龙哈希验证值;
S3.2:更新承诺:所述系统管理者沿所述区块链认证树中从被修改区块Bs到根节点的路径,依次向上更新相关节点的家庭向量承诺;
S3.3:所述系统管理者将更新后的碰撞区块Bs′(s,m′s,Y′s,r′s)和最新的根节点向量承诺公布在区块链上;
S3.4:更新区块链认证树:当所有区块链矿工从区块链上得到碰撞区块后,验证所述碰撞区块的有效性和正确定,并在验证成功之后更新本地区块链认证树中相应的区块和路径节点家庭向量承诺。
在本发明的一个实施例中,所述S4包括:
S4.1:发送查询请求:验证者发送被查询区块的索引值至证明者,并要求所述证明者返回相应的区块和证据;
S4.2:生成查询证据:根据被查询区块的索引,所述证明者调用证据查询算法根据所述区块链认证树生成被查询区块的证据,并与所述区块链认证树中相关的验证数据公布在区块链上;
S4.3:验证查询证据:证明者根据所述验证数据验证被查询区块的证据、根节点值以及变色龙哈希值的正确性,并在验证成功后保存所述被查询区块。
在本发明的一个实施例中,所述S5包括:
S5.1:生成审计挑战:当审计者想同步被审计者的区块链副本或检验被审计者诚实度时,发起一个审计挑战;
S5.2:生成审计证据:根据审计挑战和区块链认证树,被审计者生成完整性证明,并将所述完整性证明与区块链认证树中相关的验证数据公布在区块链上;
S5.3:验证审计证据:所述审计者根据所述验证数据验证被挑战区块的证据、根节点值以及变色龙哈希值的正确性,并在验证成功后保存所述被挑战区块。
本发明的另一方面提供了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序用于执行上述实施例中任一项所述的高效可验证区块链编辑方法的步骤。
本发明的又一方面提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上述实施例中任一项所述高效可验证区块链编辑方法的步骤。
与现有技术相比,本发明的有益效果在于:
1、基于区块链的树型认证结构:针对现有可编辑区块链技术无法支持区块数据的高效有效性检验的问题,设计了一种专用于区块链的新型认证树结构BAT(Blockauthentication tree,区块链认证树),做到了以下三点技术突破:(1)支持多用户的流数据上传与维护;(2)支持PA(Prover/Auditee,证明/被审计者)自行生成证据;(3)支持基于认证树的完整性审计。
2、高效的区块数据查询协议:基于BAT,本发明在可编辑区块链场景中设计了一个高效的区块数据查询协议。允许PA根据被查询区块自行生成一个聚合证明,这使得VA(Verifier/Auditor,验证/审计者)无需从被查询区块依次向上验证至BAT根节点,仅通过一次验证过程即可实现高效的数据有效性验证。
3、高效的区块链完整性审计协议:基于BAT和区块链架构,本发明设计了一个面向可编辑区块链的完整性审计协议。新节点VA可以生成一个随机挑战,确定一定数量的链上区块,并要求PA返回相应的聚合证明。在获得相应证明后,VA可以一次性实现对多个被挑战区块的有效性验证,进而获得整个区块链账本的完整性,同时,审计的“挑战-响应式”实例公布在区块链上,可以有效避免重复的审计过程,节省大量的计算成本和通信开销。
以下将结合附图及实施例对本发明做进一步详细说明。
附图说明
图1是本发明实施例提供的支持完整性审计的高效可验证区块链编辑方法的基本流程图;
图2是本发明实施例提供的支持完整性审计的高效可验证区块链编辑方法的系统模型图;
图3是本发明实施例提供的一种区块链认证树的结构示意图;
图4是本发明实施例提供的支持完整性审计的高效可验证区块链编辑方法的工作流程图;
图5是本发明实施例提供的区块追加过程示意图;
图6是本发明实施例提供的区块修改过程示意图;
图7是本发明实施例提供的各方法在系统建立阶段的Gas消耗对比图;
图8是本发明实施例提供的各方法在区块追加阶段的Gas消耗对比图;
图9是本发明实施例提供的各方法在区块修改/查询/审计阶段的Gas消耗对比图;
图10是本发明实施例提供的各方法在系统初始化阶段的计算成本对比图;
图11是本发明实施例提供的各方法在区块追加阶段区块生成的计算成本对比图;
图12是本发明实施例提供的各方法在区块追加阶段区块验证的计算成本对比图;
图13是本发明实施例提供的各方法在区块修改阶段区块更新的计算成本对比图;
图14是本发明实施例提供的各方法在区块修改阶段区块验证的计算成本对比图;
图15是本发明实施例提供的各方法在区块查询阶段证据生成的计算成本对比图;
图16是本发明实施例提供的各方法在区块查询阶段证据验证的计算成本对比图;
图17是本发明实施例提供的本发明方法审计证据生成和验证成本对比图;
图18是本发明实施例提供的各方法在区块链审计阶段证据生成的计算成本对比图;
图19是本发明实施例提供的各方法在区块链审计阶段证据验证的计算成本对比图。
具体实施方式
为了进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及具体实施方式,对依据本发明提出的一种支持完整性审计的高效可验证区块链编辑方法进行详细说明。
应当说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。
实施例一
首先需要说明的是,解决现有技术问题及缺陷的难度在于:解决现有可编辑区块链技术账本不一致性问题的关键在于,如何有效撤销被修改的旧版本区块,降低区块链节点验证区块数据正确性和有效性的成本,提高区块数据验证效率。
解决现有可编辑区块链技术无法支持区块数据高效查询问题的关键在于,如何在区块链结构中添加或设计高效的数据认证结构。一方面,现有“数字签名+累加器”的流式数据验证结构可以契合可编辑区块链技术,实现低成本的数据更新。然而随着更新次数的增加,用于生成区块数据有效性证明的计算成本会持续增加,这对于资源受限的轻节点是不可行的。另一方面,基于“向量承诺+认证树”的流式数据结构中数据的更新和验证成本仅与认证树高度有关,因此具备一定的可行性,其中面临的主要挑战在于如何根据区块账本结构设计合理的认证树结构,进一步压缩数据有效性证据计算、验证的计算成本。
解决现有可编辑区块链技术无法支持完整新验证问题的关键在于,如何构造证明可聚合的认证数据结构,在降低通信成本的同时,实现高效的批量查询和验证,确保资源受限的轻节点或新节点可以有效检查区块链账本完整性,避免大量的资源浪费。
解决以上问题及缺陷的意义在于:首先,通过为区块链数据提供有效性验证,可以实现对被修改的旧版本区块进行有效撤销,从而保证区块链网络中账本的一致性,这是保证区块链网络安全性和有效性的关键;其次,通过设计专用于可编辑区块链的认证树结构,可以在降低有效性证据的生成和验证成本同时,节省大量的通信成本和数据上链成本;最后,通过设计基于“向量承诺+认证树”的完整性审计协议,不仅突破了该框架无法实现高效批量验证的性能桎梏,还为允许新区块链节点验证账本完整性和有效性,避免了高成本的账本下载验证方式,可以节省大量计算和通信成本。尤其是在本发明的支持完整性审计的高效可验证区块链编辑方法中,设计的区块链认证树结构不仅可以保证高效的区块查询和验证,还允许新节点实现高效完整性验证。同时,所有的证据和验证结果都被通过区块链共享给所有区块链节点,不仅对全节点的可信度进行了有效评估,还避免了重复查询、审计导致的资源浪费。
鉴于此,本发明实施例提供了一种支持完整性审计的高效可验证区块链编辑方法,如图1所示,该区块链编辑方法包括:
S1:建立区块链系统,生成公私密钥对和系统公开参数并初始化所述区块链系统。
具体地,请参见图2,图2是本发明实施例提供的一种支持完整性审计的高效可验证区块链编辑方法的系统模型图。本实施例的区块链系统包含四类实体:系统管理者、区块链矿工、验证者/审计者(Verifier/Auditor,VA)、证明者/被审计者(Prover/Auditee,PA)。需要说明的是,验证者和审计者为同一个实体在两种场景中的不同称呼,在查询过程中为验证者,在审计过程中为审计者;类似的,证明者和被审计者为同一个实体在两种场景中的不同称呼,在查询过程中为证明者,在审计过程中为被审计者。
系统管理者(System manager,SM):完全可信的权威中心或委员会,负责在系统建立时生成必需的公私钥对,并初始化系统的公开参数。同时,作为监管者持有变色龙哈希陷门密钥,根据系统需要修改区块链数据;
区块链矿工(Blockchain miner,BM):不完全可信的区块链全节点,存储完整的区块链账本,负责打包交易、生成新区块,并将其追加至区块链,从而维护区块链系统的正常运转。特别地,BM在发现链上恶意数据时可以向SM发起修改请求;
验证/审计者(Verifier/Auditor,VA):资源受限的区块链轻节点,仅存储区块链中每个区块的区块头,可以根据需要向全节点查询区块链数据,并作为验证者检查目标数据的正确性和有效性。特别地,当轻节点需要获取全节点区块链账本完整性时,尤其是在新节点需要同步区块链账本之前,可以作为审计者发起挑战,并根据全节点返回的证据检查目标区块链账本的完整性和有效性;
证明/被审计者(Prover/Auditee,PA):不完全可信的区块链全节点,存储完整的区块链账本,负责为轻节点VA提供区块查询和账本服务。特别地,在区块查询阶段,该全节点作为证明者生成并返回相应的有效性证据。在区块链审计阶段,该全节点作为被审计者生成并返回相应的完整性证据,证明本地区块链账本的完整性和有效性。
本发明提出了一种q-ary区块链认证树(Block authentication tree,BAT),这是一种从根节点向下生长的q叉生成树,可将数据流绑定为树型认证结构,为外包数据提供有效性验证。如图3所示的二叉树BAT中,上链区块按照顺序采用变色龙哈希函数进行绑定,形成支持数据修改的哈希链结构;同时,每个区块在被追加至BAT中时,均与其父节点通过可聚合向量承诺技术进行绑定。当数据发生变化时,BAT需要依次更新从目标节点到根节点的所有路径节点的承诺值,即区块数据的修改均会导致根节点承诺的变化,所以BAT可以为区块链数据提供高效的有效性查询,以及完整性审计。
在本实施例中,基于区块链的P2P网络模型,上述四类实体构建了一个可验证的可编辑区块链系统。在SM完成系统初始化之后,所有BM通过打包交易生成新的区块,并在共识过程中争夺记账权,只有获胜者才能将自己的区块广播至区块链网络中。同时,SM在验证区块正确性之后,为新区块生成向量承诺,从而将其绑定至区块链认证树,为区块链数据提供有效性验证。其他BM在获取新区块后,检查其正确性和有效性,一旦通过验证,则将其追加至自己本地的区块链账本,需要说明的是,区块链账本以区块链认证树BAT的形式存在。通过不断地区块追加过程,区块链账本大小不断增加,部分资源受限的BM会选择变为轻节点,并作为VA向全节点查询或同步账本数据,从而保证正常的区块链交易活动。此时,剩余的全节点则作为PA向VA提供数据查询和账本同步的服务。在具体的区块查询和区块链审计中,PA需要根据VA的请求或挑战,生成并返回有效性证明,以及相应的区块数据。之后,VA需要检查证据的正确性,从而保证数据的正确性(完整性)和有效性。值得注意的是,所有的挑战、证据和结果均被记录在区块链上,一方面可以保证查询/审计结果的可验证性和可追责性,另一方面可以共享查询/审计结果给其他区块链节点,不仅对全节点的可信度进行了有效评估,还可以避免重复审计导致的资源浪费。
如图4所示,在本实施例中,步骤S1具体包括:
S1.1:系统管理者在有限域上生成一条椭圆曲线/>并从所述椭圆曲线上选取一个阶为素数p的点P作为生成元,生成一个子群/>
S1.2:定义伪随机函数:φ1:和φ2:以及Hash函数:H1:/>和H2:/>其中,n表示区块链中的区块个数,/>表示一个整数群;
S1.3:选取三个阶为p的乘法循环群和/>构建出双线性映射e:其中,三个群的生成元分别为g1,g2和gT,gT=e(g1,g2),其中,e()表示双线性映射运算。
S1.4:系统管理者SM随机生成三个陷门密钥利用陷门密钥x,y计算变色龙哈希密钥HK=(X,Y)=(xP,yP),利用陷门密钥α生成向量承诺的参数:
其中,a=(α,α2,…,αN),a[-1]=(α2,…,αN),N=q+1,q表示区块链认证树BAT的分叉数量,由安全参数生成,N表示被承诺向量的维数;
S1.5:系统管理者SM将参数打包,并利用Nonce值ctr0生成创世区块:
其中,vi,j表示家庭向量i的第j个元素,h0表示创世区块的哈希值,C0表示创世区块的承诺值,v0=(h0,H2(C1),...,G2(Cq)),并且/>
S1.6:所述系统管理者将创世区块B0={pp,h0,{Cj}0≤j≤q}公布在区块链P2P网络,完成系统初始化。
特别地,本发明实施例的核心思想是通过区块链链式结构保证区块数据的正确性,通过向量承诺将可编辑区块链绑定为q-ary区块链认证树BAT,为轻客户端节点提供高效的数据查询和完整性验证。为了更好的可读性和简洁性,本发明为q-ary区块链认证树(q-aryBAT)定义了5个辅助函数,用于查询目标节点的相关信息。
输入目标节点索引i和参数q,下列函数分别输出:
(1)输出被查询区块Bi在q-ary BAT中的层数l;
(2)输出被查询区块Bi在q-aryBAT中的父节点索引;
(3)Child(i,q)=((i-1)mod q)+2:输出q-ary BAT中,被查询区块Bi的承诺Ci在其父节点家庭向量中的位置,需要说明的是,树结构中节点和其子节点构成一个家庭。
(4)Path(i,q)=Pi:输出q-ary BAT中,从被查询区块Bi到根节点路径上节点的索引向量Pi=(p0,p1,...,pl),其中,p0=0,pl=i,并且对于pj-1=Parent(pj,q);
(5)Fam(i,q)=Ai:输出q-ary BAT中,被查询区块Bi的家庭索引向量Ai=(a1,a2,...,aq+1),其中a1=i,aj=q*i+j-1,(1<j≤q+1)。
S2:区块追加,打包交易生成新区块,计算新区块的变色龙哈希值和节点家庭向量承诺并将新区块绑定至区块链认证树。
在本实施例中,所述S2包括:
S2.1:交易打包:区块链矿工BM从交易池中打包一定数量的交易,生成新区块的Merkle hash tree(MHT,默克尔哈希树),其根节点值为mi;
S2.2:哈希绑定:BM首先生成一个随机数并使用变色龙哈希密钥HK=(X,Y)计算新区块的变色龙哈希值chi:
chi=H1(hi-1||mi,Y)·(X+Y)+rip
其中,hi-1=H2(chi-1,ctri-1)为前一区块的哈希值,由其变色龙哈希值chi-1和Nonce值ctri-1生成。最后,如果BM赢得当前共识过程的出块权,则其在区块链网络中广播新区块Bi=(chi,mi,ri);
S2.3:承诺绑定:当收到新的区块链Bi时,系统管理者SM调用向量承诺算法将其绑定至q-ary BAT,如图5所示。
首先,系统管理者SM通过Fam(i,q)函数计算新区块Bi的家庭节点索引向量Ai=(a1,a2,…,aq+1),其中,a1=i表示区块Bi在BAT中的节点索引,a2,…,q+1表示BAT中Bi的q个子节点的索引。随后,SM为每个子节点计算向量陷门及其预设承诺并获得家庭向量/>之后,SM根据vi计算当前节点家庭向量承诺Ci的验证值/>使得:
最后,SM将Bi的家庭向量vi和承诺验证值γi公布在区块链上。
S2.4:区块验证:其他区块链矿工在获得新区块Bi的家庭向量vi和承诺验证值γi后,验证该区块的正确性。
首先,其他区块链矿工验证其向量承诺和变色龙哈值的正确性:
若上述等式不成立,则停止验证;否则,继续验证区块交易与MHT根节点值的一致性。若全部验证通过,则证明新区块Bi是正确且有效的,其他矿工将其加入自己本地的区块链账本(即BAT),否则,丢弃该区块。
S3:区块修改,修改目标区块的数据并生成新区块,计算修改获得的新区块对应的碰撞值,进而更新区块链认证树中的目标区块及相应路径节点的家庭向量承诺。
具体地,本实施例的S3包括:
S3.1:哈希碰撞:当区块链中第s个区块Bs需要修改时,所述系统管理者计算获得一个与原区块Bs具有同一个变色龙哈希值chs的碰撞区块Bs′(chs,m′s,Y′s,r′s)。
具体地,当区块链中第s个区块Bs需要修改,相应的MHT根节点值ms需要更新为m′s时,系统管理者SM首先恢复出当前区块Bs变色龙哈希对应的陷门ks:
ks=H1(hs-1||ms,Ys)·(x+ys)+rsmodp
其中,ms表示区块Bs的默克尔哈希树的根节点值,Ys表示区块Bs的变色龙哈希密钥,rs表示区块Bs的变色龙哈希验证值,ys表示区块Bs的陷门密钥。
特别地,若当前区块Bs从未被修改,Ys=Y。随后,SM生成一个新的临时陷门y′s=H2(x,m′s)及其哈希密钥Y′s=y′sP,并进一步计算新的变色龙哈希验证值r′s:
r′s=ks-H1(hs-1||m′s,Y′s)·(x+y′s)mod p
随后,SM获得一个与原区块Bs(chs,ms,Ys,rs)具有同一个变色龙哈希值chs的碰撞区块Bs’(chs,m′s,Y′s,r′s),其中,m′s表示所述碰撞区块Bs’的默克尔哈希树的根节点值,Y′s表示所述碰撞区块Bs’的哈希密钥,r′s表示所述碰撞区块Bs’的变色龙哈希验证值。
S3.2:更新承诺:如图6所示,为了撤销旧区块,系统管理者SM调用承诺更新算法(算法1)沿着区块链认证树BAT中从被修改区块Bs到根节点的路径,依次向上更新相关节点的家庭向量承诺
具体地,请参见如下所示的算法1流程,首先,SM通过步骤1-2更新目标区块的向量承诺C′s,并将验证值γs变为0;其次,SM通过步骤3-5确定被修改区块链在BAT中的高度l,并初始化BAT更新的初始参数i和b。之后,SM通过步骤6-16在BAT中从被修改区块开始,依次向上更新路径节点的向量承诺,直至根节点。其中,当路径节点的承诺验证值γb≠0时,即该节点家庭向量承诺从未更新过,SM在更新节点家庭向量承诺中发生变化的元素的同时,剔除验证值并将其赋值为γb=0。当γb=0时,SM仅更新该节点家庭向量承诺中发生变化的元素。
S3.3:系统管理者SM将更新后的区块Bs’(s,m′s,Y′s,r′s)和最新的根节点向量承诺C′0公布在区块链上。
S3.4:更新区块链认证树BAT:当所有区块链矿工BMs从区块链上得到碰撞区块(s,m′s,Y′s,r′s,C′0)后,首先验证碰撞区块的有效性:BMs调用算法1计算出本地BAT的根节点家庭向量承诺C″0。若C″0≠C′0,则证明碰撞区块是无效的。否则,继续验证碰撞块的正确性:
chs=H1(hs-1||m′s,Y′s)·(X,Y′s)+r′sP
若上述等式不成立,则停止验证;否则,继续验证新区块Bs’的MHT根节点值的正确性。若所有验证过程均通过,则证明该碰撞块是正确且有效的,BMs更新本地BAT中相应的区块和路径节点家庭向量承诺。否则,丢弃碰撞块,终止更新程序。
S4:区块查询,根据区块链认证树计算并返回被查询区块的证据以及相应的验证值,并通过证据验证被查询区块的正确性和有效性。
具体地,所述步骤S4的区块查询具体包括以下步骤:
S4.1:发送查询请求:验证者发送待查询区块的索引值至证明者,并要求所述证明者返回相应的区块和证据。
具体地,当用户VA(验证者/审计者)想查询区块链中第s个区块时,发送该区块的索引值给区块链全节点PA,并要求其返回相应的区块和证据。
S4.2:生成查询证据:根据被查询区块的索引s,PA调用证据查询算法(算法2)根据BAT生成被查询区块的证据(πs,μs),随后将其与BAT中相关的验证数据公布在区块链上,其中,所述算法2的具体处理过程如下:首先,PA通过下述步骤1-4计算被查询区块在BAT中的位置高度l和从被查询区块到BAT根节点的路径Ps(即所有路径节点的索引);其次,PA通过步骤5-12在BAT中从被查询区块开始,依次向上计算每个路径节点的证据,直至BAT根节点;最后,PA通过步骤13-15将所有路径节点的证据聚合可得(πs,μs),同时从BAT中获取证据验证所需的辅助数据,并将其与聚合证据(πs,μs)一起返回。
S4.3:验证查询证据:VA在获得目标区块Bs=(hs-1,chs,ms,Ys,rs,{Ci}i∈Ps)和相应证据(πs,μs)后,首先验证PA返回的BAT根节点承诺C0是否等于本地最新的根节点承诺C′0。若C0≠C′0,则停止验证;否则,继续验证查询证据的正确性:
如果上述公式不成立,则停止验证;否则,VA继续验证被查询区块MHT根节点值的正确性,以及变色龙哈希值的正确性:
chs=H1(hs-1||ms,Ys)·(X,Ys)+rsP
如果上述所有验证过程全部通过,则证明被查询区块Bs的数据是正确且有效的,因此VA保留Bs并在区块链上公布查询结果1。否则,丢弃Bs并在区块链公布查询结果0。
S5:区块链审计,生成审计挑战,根据区块链认证树生成审计证据,并通过审计证据检查区块链副本的完整性和有效性。
具体地,所述S5包括:
S5.1:生成审计挑战:当审计者VA想同步被审计者PA的区块链副本(即审计者VA是新的区块链节点)或检验被审计者PA诚实度时,可以发起一个审计挑战来检查被审计者PA持有的区块链副本的完整性。为此,审计者VA生成三个随机数z∈[n]和作为审计挑战Chal=(z,f1,f2),并将其公布在区块链上;
S5.2:生成审计证据:根据审计挑战Chal和BAT,被审计者PA调用算法3生成完整性证明随后将完整性证明/>与BAT中相关的验证数据公布在区块链上,其中所述算法3的具体处理过程如下:
首先,PA通过步骤1-9初始化证据生成参数同时根据审计挑战Chal确定被挑战区块的数量z,以及各个被挑战区块的索引bi和系数ti,ti,c,并进一步计算被挑战区块的证据/>将其聚合至审计证据/>
其次,根据被挑战区块的索引集合B,PA通过步骤10-25从BAT的底层开始,依次向上计算被挑战区块的路径并集中的节点证据πb。具体地,PA首先计算当前索引集合B中最大的索引s,并以此计算该节点的父节点索引b,父节点的子节点索引集合Ab,从而获得父节点在B中的所有子节点集合Db以及这些子节点在父节点向量中的位置索引Sb。根据这些参数,PA计算父节点的证据,最终从B中剔除Db,加入父节点索引b。通过依次向上迭代,PA可以计算BAT中被挑战区块的证据,直至根节点。
最后,PA聚合所有相关节点的证据,获得并从BAT中获取证据验证所需的元数据,一并返回。/>
S5.3:验证审计证据:审计者VA在获得被挑战区块和相应的证据/>后,首先验证PA返回的BAT根节点承诺C0是否等于本地最新的根节点承诺C′0。若C0≠C′0,则停止验证;否则,继续验证查询证据的正确性:/>
如果上述公式不成立,则停止验证;否则,VA继续验证所有被挑战区块MHT根节点值的正确性,以及变色龙哈希值的正确性:
chs=H1(hs-1||ms,Ys)·(X,Ys)+rsP for s∈B
如果上述所有验证全部通过,则证明被审计的区块链账本是完整且有效的,因此VA信任PA并同步其区块链账本,并在区块链上公布查询结果1。否则,丢弃{Bs}s∈B并在区块链上公布查询结果0。
进一步地,为了评估本发明实施例的区块链编辑方法的性能,选取Ethereum和Ateniese等人提出的可编辑区块链方案AVMA17作为对比方案进行了一系列仿真实验,从链上成本和链下成本两个维度对本发明方法的性能进行评估。具体地,本发明实施例采用Python语言开发所有对比方法的原型系统,通过调用GNU多精度算法(GMP)库、基于配对的密码学(PBC)库和快速椭圆曲线密码学库实现了所有对比方法的功能。对于每个方法,本发明在Ethereum的官方公共测试网Ropsten上测试了各种操作的链上成本(即Gas消耗)。同时,本发明使用了具备两个2.20GHz IntelXeonSilver4210 CPU和128GB内存的CentOS8.3.2011服务器测试了所有对比方法的链下计算成本。此外,本发明采用SHA-256作为标准哈希函数来生成块/交易哈希值,其中每个用于性能评估的实例块包含170个大小为660Byte的交易,每个实验结果都是通过30次重复实验并取均值获得。
首先,本发明测试了由于区块链编辑和有效验证而产生的额外的链上成本(即Gas消耗)。特别地,Ethereum不需要使用额外的Gas来发布参数或验证元数据,因为它不支持区块链数据的更改。如图7所示,在系统设置阶段,各方法将使用额外的Gas来公布一些参数。具体来说,AMVA17的额外Gas成本为固定的0.203×106Gwei,而本发明方法的额外Gas成本随向量的维数线性增加:N=3,6,11时分别为0.798×106Gwei、1.343×106Gwei和2.273×106Gwei。如图8所示,在块追加阶段中,AMVA17消耗固定的0.158×106Gwei Gas来发布一些辅助数据以验证正确性。同时,本发明的方法通过花费线性增加的Gas成本来发布必要的元数据,以验证正确性和有效性:q=2,5,10时分别为0.231×106Gwei、0.367×106Gwei和0.594×106Gwei。
如图9所示,为了实现区块数据修改,AMVA17只消耗0.050×106Gwei来发布一个更新的(碰撞)块,而本发明的方法需要0.186×106Gwei,其中大部分用于发布被修改区块和BAT根节点的最新向量承诺(即C′s和C′0).此外,考虑到可编辑区块链中的高效的有效性验证,只有本发明的方法才能实现高效的块查询和区块链审计。其中,本发明方法中的每个块查询过程都需要一个固定的0.218×106Gwei Gas,其中46.3%的Gas由VA承担,用于发布查询请求和验证结果。对于每个区块链审计过程,本发明的方法消耗额外的Gas0.331×10^6Gwei,其中64.4%的Gas用于在区块链上发布审计挑战和结果。
虽然本发明的方法在所有阶段都需要比AMVA17更多的额外Gas,但在块查询和区块链审计场景中提供高效的有效性验证是必要的,而这在现有可编辑区块链中尚未被实现。此外,本发明的查询和审计协议共享区块链上的所有“挑战-响应”实例,不仅支持公共验证,而且避免了同一时期内重复审计请求造成的资源浪费。
为了进一步评估方法性能,本发明还测量了对比方法的链下计算成本(即时间成本)。
在系统设置阶段,使用时间成本来生成系统参数和创世区块。从图10来看,Ethereum分别需要0.0003s、0.001s和0.0016s来打包100、300和500个交易。AMVA17对应的时间成本分别为0.0008s、0.0015s和0.0022s,其中额外的时间为0.0005s,用于生成变色龙哈希函数的参数。类似地,本发明的方法在q=2,5,10期间分别需要额外的时间0.0393s、0.0607s和0.0982s来初始化变色龙哈希函数和向量承诺算法。显然,所有对比方法的系统设置成本主要取决于参数的数量,而不是交易的数量。
在区块追加阶段,时间成本包括块的生成和验证。如图11所示,Ethereum需要0.0003s、0.001s和0.0017s才能分别将100、300和500个交易打包到一个新的块中。在此基础上,AMVA17需要额外的0.0017s来生成变色龙哈希值,而本发明的方法在q=2,5,10时,分别需要额外的0.006s、0.01s和0.019s来生成变色龙哈希值和向量承诺。从图12中可以看出,Ethereum分别消耗0.0004s、0.001s和0.0017s来验证包含100、300和500个交易的区块。同样地,AMVA17需要额外的0.001s来验证新区块的正确性,而本发明的方法在q=2,5,10时,需要额外的0.008s、0.017s和0.031s来检查新块的正确性和有效性。
在区块修改阶段,如图13和14所示,AMVA17需要消耗固定的0.007s生成碰撞块,以替换目标区块,实现修改。相应的,验证成本也为0.008s。然而,随着块指数的增加,本发明的方法的修改成本和验证成本都呈现出阶梯状的增长趋势,这是由BAT分叉的数量和被编辑块的位置决定的。关于修改成本,本发明的方法在q=2,5,10时,修改第500个区块分别需要消耗0.015s、0.008s和0.006s,而修改第2000个区块分别需要消耗0.019s、0.01s和0.008s。在验证成本方面,本发明的方法在q=2,5,10时,验证第500个区块分别需要消耗0.029s、0.015s和0.012s,验证第2000个区块分别需要0.036s、0.019s和0.016s。值得注意的是,本发明方法的修改成本和验证成本都随着q的增加而减少,这与图5中所示的成本趋势相反。同时,随着q的增加,本发明的方法的成本接近AMVA17,这意味着本发明的方法可以以与AMVA17相同的成本实现额外的高效验证。
如图15和16所示的区块查询成本,Ethereum和AMVA17都只需要直接返回相关的区块链数据,无需生成证明,所以图15所示的生成证明成本为0s。与他们不同的是,本发明的方法要求PA生成一个证明,其时间代价仅取决于参数q:当q=2,5,10时,分别为0.008s、0.017s和0.032s。如图16所示,所有对比方法的验证成本随查询块的索引呈线性增加。具体来说,AMVA17分别需要0.427s和1.704s来检查第500块和第2000块的有效性,这远远高于Ethereum和本发明的方法。其中,为了检查第500个块,Ethereum需要0.005s,本发明的方法在q=2,5,10期间分别需要0.011、0.008s和0.006s。而Ethereum第2000个区块的验证成本为0.017s,高于本发明的方法(q=2,5,10时的验证成本分别为0.014s、0.008s、0.007s)。因此,本发明的方法在可编辑区块链中实现了高效的块查询,与其他两种方法相比,大大节省了计算和通信成本。
对于区块链审计,只有本发明的方法才能实现区块链分类账的完整性审计,而Ethereum和AMVA17必须下载并验证整个分类账,以获取其完整性。因此,本发明首先在本发明的方法中测试了生成证明和验证的时间成本。Ateniese等人指出,如果检查文件的损坏块率为1%,那么挑战300块时完整性审计的准确率为95%,挑战460块时为99%。如图17所示,在本发明的方法中,在q=2,5,10期间,挑战300块的生成证明成本分别为0.286s、0.832s和0.825s,而挑战460块的相应成本分别为0.345s、0.397s和0.457s。此外,对于q=2,5,10,本发明的方法在挑战300块时的验证成本分别为1.227s、2.072s和2.149s,在挑战460块时的验证成本分别为1.551s、1.192s和1.297s。
此外,本发明将方法中的挑战块数设置为460,并通过与其他方法进行比较,进一步评估其性能。如图18所示,Ethereum中的PA和AMVA17只直接返回全部分类账(即,生成证明成本为0s)。为了实现高效的完整性审计,本发明的方法在q=2,5,10期间分别需要0.339s、0.365s、0.418s来生成完整性证明。相应地,如图19所示,本发明的方法的验证成本分别为1.549s、1.239s和1.178s。然而,Ethereum和AMVA17的验证成本与区块链的分类账规模呈线性增加。具体来说,要检查一个包含5000个区块的区块链分类账,Ethereum和AMVA17分别需要8.569s和9.090s。当被审计的分类账由10000个块组成时,Ethereum和AMVA17分别需要17.070s和17.981s。显然,Ethereum和AMVA17的审计成本远远高于本发明的方法,这意味着通过验证分类账的所有区块来获得区块链完整性的方法是不可行的,特别是对于资源受限的VA和频繁的审计场景。
需要说明的是,本发明提供的支持完整性审计的高效可验证区块链编辑方法业内的普通技术人员还可以采用其他的步骤实施,图1的本发明提供的支持完整性审计的高效可验证区块链编辑方法仅仅是一个具体实施例而已。
本发明所具备的优点及积极效果为:
基于区块链的树型认证结构:针对现有可编辑区块链技术无法支持区块数据的高效有效性检验的问题,本发明实施例在现行的可编辑区块链架构上,设计了一种专用于区块链的新型认证树结构BAT,从而为链上数据提供高效可验证性。相比现有的可验证数据流认证结构,BAT做到了以下三点技术突破:
(1)支持多用户的流数据上传与维护:BAT允许所有区块链矿工生成并追加区块数据,同时支持可验证的区块查询,确保了链上数据的正确性和有效性;
(2)支持PA自行生成证据:传统“向量承诺+认证树”的流数据结构中,用户需要预先为各个数据生成证明,从而避免哈希陷门的泄露,这消耗了PA大量的存储成本。而BAT中,PA可以自行生成数据的有效性证明,尽管付出了一些计算成本,但节省了大量的存储开销,这在区块链场景中尤为合算;
(3)支持基于认证树的完整性审计:传统“向量承诺+认证树”的流数据结构中,数据有效性证明需从被查询节点依次向上验证至根节点,因此无法实现高效的并发查询。在BAT中,各个节点承诺均由可聚合的向量承诺技术生成,这允许PA生成并聚合多个数据的证明,同时支持VA一次性检验聚合证明的有效性,从而实现高效的区块链数据完整性审计。同时,从区块链的角度而言,BAT是首个支持对区块链链上数据完整性审计的数据结构。
高效的区块数据查询协议:基于BAT,本发明实施例在可编辑区块链场景中设计了一个高效的区块数据查询协议。允许PA根据被查询区块自行生成一个聚合证明,这使得VA无需从被查询区块依次向上验证至BAT根节点,仅通过一次验证过程即可实现高效的数据有效性验证,这对于区块链场景中资源受限的轻节点而言尤为重要。
高效的区块链完整性审计协议:基于BAT和区块链架构,本发明设计了一个面向可编辑区块链的完整性审计协议。新节点VA可以生成一个随机挑战,确定一定数量的链上区块,并要求PA返回相应的聚合证明。在获得相应证明后,VA可以一次性实现对多个被挑战区块的有效性验证,进而获得整个区块链账本的完整性。值得注意的是,审计过程中的所有信息均被记录在区块链上,一方面提供了审计结果的可验证性,刻画了全节点PA的可信度。另一方面,通过将审计结果共享给所有区块链节点,可以有效避免重复的审计过程,节省大量的计算成本和通信开销。
本发明的又一实施例提供了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序用于执行上述实施例中所述高效可验证区块链编辑方法的步骤。本发明的再一方面提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上述实施例所述高效可验证区块链编辑方法的步骤。具体地,上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (7)
1.一种支持完整性审计的高效可验证区块链编辑方法,其特征在于,包括:
S1:建立区块链系统,生成公私密钥对和系统公开参数并初始化所述区块链系统;
S2:区块追加,打包交易生成新区块,计算新区块的变色龙哈希值和节点家庭向量承诺并将新区块绑定至区块链认证树,其中,计算新区块的节点家庭向量承诺,包括:
所述系统管理者通过Fam(i,q)函数计算新区块Bi的家庭节点索引向量Ai=(a1,a2,…,aq+1),其中,a1=i表示新区块Bi在区块链认证树中的节点索引,a2,…,aq+1表示区块链认证树中Bi的q个子节点的索引;
所述系统管理者为每个子节点计算向量陷门及其预设承诺并获得家庭向量/>
所述系统管理者根据所述家庭向量vi计算当前节点家庭向量承诺Ci的验证值 使得:
其中,vi,j表示家庭向量vi的第j个元素,所述系统管理者将新区块Bi的家庭向量vi和承诺验证值γi公布在区块链上;
S3:区块修改,修改目标区块的数据并生成新区块,计算修改获得的新区块对应的碰撞值,进而更新区块链认证树中的目标区块及相应路径节点的家庭向量承诺;
S4:区块查询,根据区块链认证树计算并返回被查询区块的证据以及相应的验证值,并通过证据验证所述被查询区块的正确性和有效性,
所述S4包括:
S4.1:发送查询请求:验证者发送被查询区块的索引值至证明者,并要求所述证明者返回相应的区块和证据;
S4.2:生成查询证据:根据被查询区块的索引,所述证明者调用查询算法根据所述区块链认证树生成被查询区块的证据,并与所述区块链认证树中相关的验证数据同一公布在区块链上;
S4.3:验证查询证据:证明者根据所述验证数据验证被查询区块的证据、根节点值以及变色龙哈希值的正确性,并在验证成功后保存所述被查询区块;
S5:区块链审计,生成审计挑战,根据区块链认证树生成审计证据,并通过审计证据检查区块链副本的完整性和有效性,
所述S5包括:
S5.1:生成审计挑战:当审计者想同步被审计者的区块链副本或检验被审计者诚实度时,发起一个审计挑战;
S5.2:生成审计证据:根据审计挑战和区块链认证树,被审计者生成完整性证明,并将所述完整性证明与区块链认证树中相关的验证数据公布在区块链上;
S5.3:验证审计证据:所述审计者根据所述验证数据验证被挑战区块的证据、根节点值以及变色龙哈希值的正确性,并在验证成功后保存所述被挑战区块。
2.根据权利要求1所述的支持完整性审计的高效可验证区块链编辑方法,其特征在于,建立区块链系统,生成公私密钥对和系统公开参数并初始化所述区块链系统,包括:
S1.1:系统管理者在有限域上生成一条椭圆曲线/>并从所述椭圆曲线上选取一个阶为素数p的点P作为生成元,生成一个子群/>
S1.2:定义伪随机函数:和/>以及Hash函数:/>和/>其中,n表示区块链中的区块个数,/>表示一个整数群;
S1.3:选取三个阶为p的乘法循环群和/>构建出双线性映射/>其中,三个乘法循环群的生成元分别为g1,g2和gT,gT=e(g1,g2),e()表示双线性映射运算;
S1.4:系统管理者随机生成三个陷门密钥利用陷门密钥x,y计算变色龙哈希密钥HK=(X,Y)=(xP,yP),利用陷门密钥α生成向量承诺的参数:
其中,a=(α,α2,…,αN),a[-1]=(α2,…,αN),N=q+1,q表示区块链认证树的分叉数量,N表示被承诺向量的维数;
S1.5:系统管理者利用参数和Nonce值ctr0生成创世区块:
其中,h0表示创世区块的哈希值,C0表示创世区块的承诺值,v0=(h0,H2(C1),…,H2(Cq)),并且/>
S1.6:所述系统管理者将创世区块B0={pp,h0,{Cj}0≤j≤q}公布在区块链网络中,完成系统初始化。
3.根据权利要求2所述的支持完整性审计的高效可验证区块链编辑方法,其特征在于,所述区块链认证树包括5个辅助函数:
输出被查询区块Bi在区块链认证树中的层数l,其中,i表示目标节点索引;
输出被查询区块Bi在区块链认证树中的父节点索引;
Child(i,q)=((i-1)mod q)+2:输出区块链认证树中,被查询区块Bi的承诺Ci在其父节点家庭向量中的位置,其中,树结构中节点和其子节点构成一个家庭;
Path(i,q)=Pi:输出区块链认证树中,从被查询区块Bi到根节点路径上节点的索引向量Pi=(p0,p1,…,pl),其中,p0=0,pl=i,并且对于
Fam(i,q)=Ai:输出区块链认证树中,被查询区块Bi的家庭索引向量Ai=(a1,a2,…,aq+1),其中a1=i,aj=q*i+j-1,(1<j≤q+1)。
4.根据权利要求3所述的支持完整性审计的高效可验证区块链编辑方法,其特征在于,所述S2包括:
S2.1:交易打包:区块链矿工从交易池中打包一定数量的交易,生成新区块的默克尔哈希树,其根节点值为mi;
S2.2:哈希绑定:所述区块链矿工生成一个随机数并使用变色龙哈希密钥HK=(X,Y)计算所述新区块的变色龙哈希值chi:
chi=H1(hi-1||mi,Y)·(X+Y)+riP
其中,hi-1=H2(chi-1,ctri-1)为前一区块的哈希值,随后在区块链网络中广播新区块Bi=(chi,mi,ri);
S2.3:承诺绑定:当收到新区块时,系统管理者调用向量承诺算法将所述新区块绑定至所述区块链认证树;
S2.4:区块验证:其他区块链矿工在获得新区块Bi的家庭向量vi和承诺验证值γi后,验证该区块的正确性。
5.根据权利要求4所述的支持完整性审计的高效可验证区块链编辑方法,其特征在于,所述S3包括:
S3.1:哈希碰撞:当区块链中第s个区块Bs需要修改时,所述系统管理者计算获得一个与原区块Bs具有同一个变色龙哈希值chs的碰撞区块Bs′(chs,m′s,Y′s,r′s),其中,m′s表示所述碰撞区块Bs′的默克尔哈希树的根节点值,Y′s表示所述碰撞区块Bs′的变色龙哈希密钥,r′s表示所述碰撞区块Bs′的变色龙哈希验证值;
S3.2:更新承诺:所述系统管理者沿所述区块链认证树中从被修改区块Bs到根节点的路径,依次向上更新相关节点的家庭向量承诺;
S3.3:所述系统管理者将更新后的碰撞区块Bs′(s,m′s,Y′s,r′s)和最新的根节点向量承诺公布在区块链上;
S3.4:更新区块链认证树:当所有区块链矿工从区块链上得到碰撞区块后,验证所述碰撞区块的有效性和正确定,并在验证成功之后更新本地区块链认证树中相应的区块和路径节点家庭向量承诺。
6.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,所述计算机程序用于执行权利要求1至5中任一项所述的高效可验证区块链编辑方法的步骤。
7.一种电子设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1至5任一项所述高效可验证区块链编辑方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210530746.8A CN115085972B (zh) | 2022-05-16 | 2022-05-16 | 一种支持完整性审计的高效可验证区块链编辑方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210530746.8A CN115085972B (zh) | 2022-05-16 | 2022-05-16 | 一种支持完整性审计的高效可验证区块链编辑方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115085972A CN115085972A (zh) | 2022-09-20 |
CN115085972B true CN115085972B (zh) | 2023-07-28 |
Family
ID=83246757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210530746.8A Active CN115085972B (zh) | 2022-05-16 | 2022-05-16 | 一种支持完整性审计的高效可验证区块链编辑方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115085972B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115858687B (zh) * | 2023-03-02 | 2023-05-23 | 山东省计算中心(国家超级计算济南中心) | 一种可审计、可强制撤销的区块链修改方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111639935A (zh) * | 2020-04-30 | 2020-09-08 | 南京理工大学 | 适用于可编辑区块链的账本修改方法 |
CN111898164B (zh) * | 2020-07-02 | 2024-03-29 | 武汉纺织大学 | 一种支持标签区块链存储和查询的数据完整性审计方法 |
-
2022
- 2022-05-16 CN CN202210530746.8A patent/CN115085972B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115085972A (zh) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11842317B2 (en) | Blockchain-based authentication and authorization | |
Li et al. | Traceable monero: Anonymous cryptocurrency with enhanced accountability | |
Zhou et al. | Efficient certificateless multi-copy integrity auditing scheme supporting data dynamics | |
Yuan et al. | Blockchain-based public auditing and secure deduplication with fair arbitration | |
Liu et al. | Anonymous reputation system for IIoT-enabled retail marketing atop PoS blockchain | |
CN109829326B (zh) | 基于区块链的跨域认证与公平审计去重云存储系统 | |
Li et al. | Privacy preserving cloud data auditing with efficient key update | |
US20200084223A1 (en) | Blockchain-based system, and electronic apparatus and method in the system | |
CN109889497B (zh) | 一种去信任的数据完整性验证方法 | |
CN111445334B (zh) | 一种区块链系统的聚合签名方法、装置及存储介质 | |
Huang et al. | Scalable and redactable blockchain with update and anonymity | |
Ma et al. | Redactable blockchain in decentralized setting | |
CN112818368A (zh) | 一种基于区块链智能合约的数字证书认证方法 | |
KR20200106000A (ko) | 블록체인-기반 디지털 인증서를 구현하기 위한 시스템 및 방법 | |
US11494345B2 (en) | System and method for blockchain based decentralized storage with dynamic data operations | |
Zhao et al. | Distributed machine learning oriented data integrity verification scheme in cloud computing environment | |
CN113343213A (zh) | 一种分散自主网络中基于区块链的多ca跨域认证方法 | |
Wu et al. | Privacy-preserving proof of storage for the pay-as-you-go business model | |
Carbunar et al. | Payments for outsourced computations | |
CN115085972B (zh) | 一种支持完整性审计的高效可验证区块链编辑方法 | |
Yu et al. | Public cloud data auditing with practical key update and zero knowledge privacy | |
El Kassem et al. | More efficient, provably-secure direct anonymous attestation from lattices | |
Shen et al. | Secure cloud auditing with efficient ownership transfer | |
Li et al. | FMR-PDP: Flexible multiple-replica provable data possession in cloud storage | |
Yan et al. | Efficient Privacy‐Preserving Certificateless Public Auditing of Data in Cloud Storage |
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 |