公开/公告号CN114969807A
专利类型发明专利
公开/公告日2022-08-30
原文格式PDF
申请/专利权人 福建福链科技有限公司;
申请/专利号CN202210471946.0
发明设计人 斯雪明;
申请日2022-04-29
分类号G06F21/62(2013.01);G06F21/64(2013.01);G06Q40/04(2012.01);
代理机构福州市博深专利事务所(普通合伙) 35214;
代理人唐燕玲
地址 350001 福建省福州市高新区科技东路3号创新园一期14号楼2层212室
入库时间 2023-06-19 16:36:32
法律状态公告日
法律状态信息
法律状态
2022-09-16
实质审查的生效 IPC(主分类):G06F21/62 专利申请号:2022104719460 申请日:20220429
实质审查的生效
技术领域
本发明涉及区块链技术领域,具体涉及一种基于递归零知识证明的区块总结方法及终端。
背景技术
区块链技术起源于2008年,由中本聪(Satoshi Nakamoto)在《比特币:一个点对点电子现金系统》中首次提出比特币的概念,而比特币等数字加密货币的核心技术便是区块链技术。2015年之前,大家更关注的是比特币的“币”而不是底层的区块链技术。2015年,以太坊(Ethereum)的出现以及之后的日渐成熟,使得区块链这一概念为更多人所了解和研究,并且朝着更加光明和广泛的应用场景不断发展。
当前,区块链的应用领域可分为:(1)加密数字货币领域,如比特币、以太币等;(2)数据记录及管理领域,如数据存储、数据鉴证等;(3)信息安全领域,如认证技术、访问控制等;(4)其他领域,如共享经济、智能交通和能源网络等等。区块链在不同场景下的应用,都因高冗余存储(每个节点存储一份完整的数据)增强了数据的公开性、透明性,提高了系统的可用性;但另一方面,每个节点都需要同步最新的账本,这会给区块链带来性能问题和巨大的存储压力。
为解决数据高冗余带来的存储压力,研究者们针对区块链存储问题提出了链上和链下两种存储扩展路线。链上存储扩展方式有轻节点(SPV,Simplified PaymentVerification)和协作式存储两种;链下存储扩展方式有基于DHT(Distributed HashTable,分布式哈希表)、基于IPFS(InterPlanetary File System,星际文件系统)和基于云存储三种方式。其中轻节点由于只需要保存最长区块链的所有块头即可验证一笔支付交易的存在,大大减小了存储开销,但区块头的数据也是不小的负担,会随着区块数量的增加和时间的推移逐渐膨胀,因此无论是链上存储还是链下存储,区块不断地增加至区块链的尾端时,均会遇到存储瓶颈。
而针对轻节点存储瓶颈的问题,现提出了一种区块总结的方法,将l个原始区块总结成一个新区块,称为总结区块,总结区块中交易的输入与其所包含的原始块中的交易输入一样,输出同理。如果一笔交易的输出是另外一笔交易的输入,那么将根据净效果合并这些交易,总结区块也会包括原始区块的哈希,但直接总结区块同样会造成区块链账本大小问题,所以它通过使用递归的方式对区块序列进行总结,即对总结区块进行总结。该方法引入了总结深度的概念,原始区块的总结深度为0,原始区块直接总结区块的总结深度为1,以此类推,即如图1所示,可以简单理解为一个区块长度为n的区块链经过区块递归总结后,将变成先是o个原始区块,再是m个总结深度为1的总结区块,之后再是m个总结深度为2的总结区块,以此类推。但这种方法需要找到交易之间的关系,在面对大量碎片化交易的时候,该方法的效率会大幅度降低。
发明内容
本发明所要解决的技术问题是:提供一种基于递归零知识证明的区块总结方法及终端,解决轻节点存储瓶颈问题的同时提高区块总结效率,使轻节点可以运行在一些资源受限的轻量级或资源有限的设备之上。
为了解决上述技术问题,本发明采用的技术方案为:
一种基于递归零知识证明的区块总结方法,包括步骤:
S1、根据存储能力和计算能力将区块链网络中的全节点分为存储节点和出块节点;
S2、将当前交易提交到所述区块链网络中,采用零知识算法计算所述当前交易对应的当前零知识证明,在所述出块节点中将所述当前零知识证明与历史打包的零知识证明进行压缩打包出块后存储至所述存储节点中,同时将所述当前交易存储至所述存储节点中;
S3、当轻节点加入所述区块链网络时,从所述存储节点中下载最新打包的零知识证明至所述轻节点中。
为了解决上述技术问题,本发明提供的另一个技术方案为:
一种基于递归零知识证明的区块总结终端,包括存储器、处理器和存储在存储器上并可在处理器上允许的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
S1、根据存储能力和计算能力将区块链网络中的全节点分为存储节点和出块节点;
S2、将当前交易提交到所述区块链网络中,采用零知识算法计算所述当前交易对应的当前零知识证明,在所述出块节点中将所述当前零知识证明与历史打包的零知识证明进行压缩打包出块后存储至所述存储节点中,同时将所述当前交易存储至所述存储节点中;
S3、当轻节点加入所述区块链网络时,从所述存储节点中下载最新打包的零知识证明至所述轻节点中。
本发明的有益效果在于:本发明提供一种基于递归零知识证明的区块总结方法及终端,在现有区块总结方法上做出改进,将区块链上的全节点分为存储节点和出块节点,并结合轻节点,由存储节点负责存储全部交易数据,出块节点负责交易对应的零知识证明的压缩打包,其中在每次交易过程中出块节点都将当前的这笔交易对应的零知识证明和历史交易中压缩打包的零知识证明再进行压缩,即通过递归零知识证明的思想将区块链的最新状态进行压缩,提高了区块总结的效率,在轻节点加入区块链网络时仅需下载最新压缩的零知识证明,即可验证所有交易数据,无需像之前的轻节点一样,需要存储所有区块的块头数据,有效解决了轻节点的存储瓶颈问题,使轻节点可以运行在一些资源受限的轻量级设备之上。
附图说明
图1为现有区块总结方法的流程框图;
图2为本发明实施例的一种基于递归零知识证明的区块总结方法的流程图;
图3为本发明实施例的一种基于递归零知识证明的区块总结方法的递归零知识证明的计算流程;
图4为本发明实施例的一种基于递归零知识证明的区块总结终端的结构示意图。
标号说明:
1、一种基于递归零知识证明的区块总结终端;2、存储器;3、处理器。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
在此之前,对本发明中涉及到的区块链专用术语进行说明如下:
1、零知识证明:Zero—Knowledge Proof,实质上是一种涉及两方或更多方的协议,证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的;
2、全节点:是拥有完整区块链账本的节点,需要占用内存同步和存储所有区块链数据,能够独立校验区块链上的所有交易并实时更新数据,主要负责区块链上交易的广播和验证;
3、轻节点:Simplified Payment Verification,相较于全节点而言,只存储区块链的所有区块头数据的情况下就能够验证一笔支付交易是否存在,无需存储整个区块链数据;
zk-SNARKs:Zero-Knowledge Succinct Non-Interactive Argument ofKnowledge,简洁非交互式零知识证明,一类开源的零知识算法。
请参照图2及图3,一种基于递归零知识证明的区块总结方法,包括步骤:
S1、根据存储能力和计算能力将区块链网络中的全节点分为存储节点和出块节点;
S2、将当前交易提交到所述区块链网络中,采用零知识算法计算所述当前交易对应的当前零知识证明,在所述出块节点中将所述当前零知识证明与历史打包的零知识证明进行压缩打包出块后存储至所述存储节点中,同时将所述当前交易存储至所述存储节点中;
S3、当轻节点加入所述区块链网络时,从所述存储节点中下载最新打包的零知识证明至所述轻节点中。
由上述描述可知,本发明的有益效果在于:通过在现有区块总结方法上做出改进,将区块链上的全节点分为存储节点和出块节点,并结合轻节点,由存储节点负责存储全部交易数据,出块节点负责交易对应的零知识证明的压缩打包,其中在每次交易过程中出块节点都将当前的这笔交易对应的零知识证明和历史交易中压缩打包的零知识证明再进行压缩,即通过递归零知识证明的思想将区块链的最新状态进行压缩,提高了区块总结的效率,在轻节点加入区块链网络时仅需下载最新压缩的零知识证明,即可验证所有交易数据,无需像之前的轻节点一样,需要存储所有区块的块头数据,有效解决了轻节点的存储瓶颈问题,使轻节点可以运行在一些资源受限的轻量级设备之上。
进一步地,所述零知识算法采用zk-SNARKs算法;
所述零知识算法包括证明生成算法ProofGenerate()和证明验证算法ProofVerify()。
由上述描述可知,zk-SNARKs算法包含多种零知识算法,不同的算法具有不同的计算速率和性能,可根据实际需要选择,提高零知识证明计算的多样性。
进一步地,所述步骤S2具体为:
S21、设所述当前交易为tx
S22、在所述出块节点中采用ProofVerify()验证π
S23、将打包出块的π
由上述描述可知,在区块链网络中采用证明生成算法ProofGenerate()生成交易对应的零知识证明后,还需要进行全节点的验证,当验证通过后再由计算能力较强的出块节点进行压缩,通过将当前零知识证明与历史上已经压缩过的零知识证明再压缩,而历史上压缩的零知识证明也是由上一次交易对应的零知识证明与上一次交易之前的压缩过的零知识证明再压缩而来,即每次的零知识证明压缩过程都是一个递归的过程,最终最新压缩的零知识证明会包含历史所有交易对应的零知识证明,且每次压缩后的零知识证明都是一段固定大小的数据,即用一段固定大小的数据来代表整个区块链的最新状态,有效避免了因区块链中的区块数量增加而引起的数据膨胀问题。
进一步地,所述步骤S3具体为:
S31、当轻节点加入所述区块链网络时,从所述存储节点中下载π
所述步骤S3之后还包括步骤:
S4、所述轻节点根据π
由上述描述可知,新增的轻节点可以直接通过获取最新打包的零知识证明得到当前整个区块链的状态,并验证当前的交易,快速便捷,减轻轻节点存储负担的同时提高了交易上链至轻节点的效率。
进一步地,所述存储节点和所述出块节点可以为同一个全节点。
由上述描述可知,存储交易数据和压缩零知识证明的节点可以是同一个,也可以根据存储能力和计算能力划分为存储节点和出块节点来对应实现存储交易数据和压缩零知识证明,以有效发挥全节点的存储和计算性能,提高全节点的共识效率。
请参照图4,一种基于递归零知识证明的区块总结终端,包括存储器、处理器和存储在存储器上并可在处理器上允许的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
S1、根据存储能力和计算能力将区块链网络中的全节点分为存储节点和出块节点;
S2、将当前交易提交到所述区块链网络中,采用零知识算法计算所述当前交易对应的当前零知识证明,在所述出块节点中将所述当前零知识证明与历史打包的零知识证明进行压缩打包出块后存储至所述存储节点中,同时将所述当前交易存储至所述存储节点中;
S3、当轻节点加入所述区块链网络时,从所述存储节点中下载最新打包的零知识证明至所述轻节点中。
由上述描述可知,本发明的有益效果在于:基于同一技术构思,配合上述的一种基于递归零知识证明的区块总结方法,提供一种基于递归零知识证明的区块总结终端,通过在现有区块总结方法上做出改进,将区块链上的全节点分为存储节点和出块节点,并结合轻节点,由存储节点负责存储全部交易数据,出块节点负责交易对应的零知识证明的压缩打包,其中在每次交易过程中出块节点都将当前的这笔交易对应的零知识证明和历史交易中压缩打包的零知识证明再进行压缩,即通过递归零知识证明的思想将区块链的最新状态进行压缩,提高了区块总结的效率,在轻节点加入区块链网络时仅需下载最新压缩的零知识证明,即可验证所有交易数据,无需像之前的轻节点一样,需要存储所有区块的块头数据,有效解决了轻节点的存储瓶颈问题,使轻节点可以运行在一些资源受限的轻量级设备之上。
进一步地,所述零知识算法采用zk-SNARKs算法;
所述零知识算法包括证明生成算法ProofGenerate()和证明验证算法ProofVerify()。
由上述描述可知,zk-SNARKs算法包含多种零知识算法,不同的算法具有不同的计算速率和性能,可根据实际需要选择,提高零知识证明计算的多样性。
进一步地,所述步骤S2具体为:
S21、设所述当前交易为tx
S22、在所述出块节点中采用ProofVerify()验证π
S23、将打包出块的π
由上述描述可知,在区块链网络中采用证明生成算法ProofGenerate()生成交易对应的零知识证明后,还需要进行全节点的验证,当验证通过后再由计算能力较强的出块节点进行压缩,通过将当前零知识证明与历史上已经压缩过的零知识证明再压缩,而历史上压缩的零知识证明也是由上一次交易对应的零知识证明与上一次交易之前的压缩过的零知识证明再压缩而来,即每次的零知识证明压缩过程都是一个递归的过程,最终最新压缩的零知识证明会包含历史所有交易对应的零知识证明,且每次压缩后的零知识证明都是一段固定大小的数据,即用一段固定大小的数据来代表整个区块链的最新状态,有效避免了因区块链中的区块数量增加而引起的数据膨胀问题。
进一步地,所述步骤S3具体为:
S31、当轻节点加入所述区块链网络时,从所述存储节点中下载π
所述步骤S3之后还包括步骤:
S4、所述轻节点根据π
由上述描述可知,新增的轻节点可以直接通过获取最新打包的零知识证明得到当前整个区块链的状态,并验证当前的交易,快速便捷,减轻轻节点存储负担的同时提高了交易上链至轻节点的效率。
进一步地,所述存储节点和所述出块节点可以为同一个全节点。
由上述描述可知,存储交易数据和压缩零知识证明的节点可以是同一个,也可以根据存储能力和计算能力划分为存储节点和出块节点来对应实现存储交易数据和压缩零知识证明,以有效发挥全节点的存储和计算性能,提高全节点的共识效率。
本发明的一种基于递归零知识证明的区块总结方法及终端,适用于在轻量级或资源有限的设备上部署轻节点对交易进行验证,以下结合具体实施例进行说明:
请参照图2,本发明的实施例一为:
一种基于递归零知识证明的区块总结方法,如图1所示,包括步骤:
S1、根据存储能力和计算能力将区块链网络中的全节点分为存储节点和出块节点;
S2、将当前交易提交到区块链网络中,采用零知识算法计算当前交易对应的当前零知识证明,在出块节点中将当前零知识证明与历史打包的零知识证明进行压缩打包出块后存储至存储节点中,同时将当前交易存储至存储节点中;
S3、当轻节点加入区块链网络时,从存储节点中下载最新打包的零知识证明至轻节点中。
即在本实施例中,通过在现有区块总结方法上做出改进,将区块链上的全节点分为存储节点和出块节点,并结合轻节点,由存储节点负责存储全部交易数据,出块节点负责交易对应的零知识证明的压缩打包,其中在每次交易过程中出块节点都将当前的这笔交易对应的零知识证明和历史交易中压缩打包的零知识证明再进行压缩,即通过递归零知识证明的思想将区块链的最新状态进行压缩,提高了区块总结的效率,在轻节点加入区块链网络时仅需下载最新压缩的零知识证明,即可验证所有交易数据,无需像之前的轻节点一样,需要存储所有区块的块头数据,有效解决了轻节点的存储瓶颈问题,使轻节点可以运行在一些资源受限的轻量级设备之上。
其中,存储节点和出块节点可以为同一个全节点。即存储交易数据和压缩零知识证明的节点可以是同一个,也可以根据存储能力和计算能力划分为存储节点和出块节点来对应实现存储交易数据和压缩零知识证明,以有效发挥全节点的存储和计算性能,提高全节点的共识效率。
请参照图3,本发明的实施例二为:
一种基于递归零知识证明的区块总结方法,在上述实施例一的基础上,在本实施例中,步骤S2中的零知识算法采用zk-SNARKs算法,其中,zk-SNARKs算法包含多种零知识算法,如下表1:
表1:zk-SNARKs的各算法性能比较
可知不同的算法具有不同的计算速率和性能,提高了零知识证明计算的多样性,在实际应用中可根据实际需要选择,同时在本实施例中,zk-SNARKs中的每一种算法均可包括证明生成算法ProofGenerate()和证明验证算法ProofVerify()。
其中,在本实施例中,步骤S2中具体为:
S21、设当前交易为tx
S22、在出块节点中采用ProofVerify()验证π
S23、将打包出块的π
即在区块链网络中采用证明生成算法ProofGenerate()生成交易对应的零知识证明后,还需要进行全节点的验证,当验证通过后再由计算能力较强的出块节点进行压缩,通过将当前零知识证明与历史上已经压缩过的零知识证明再压缩,而历史上压缩的零知识证明也是由上一次交易对应的零知识证明与上一次交易之前的压缩过的零知识证明再压缩而来,即每次的零知识证明压缩过程都是一个递归的过程,最终最新压缩的零知识证明会包含历史所有交易对应的零知识证明,且每次压缩后的零知识证明都是一段固定大小的数据,即用一段固定大小的数据来代表整个区块链的最新状态,有效避免了因区块链中的区块数量增加而引起的数据膨胀问题。
另外,在本实施例中,步骤S3具体为:
S31、当轻节点加入区块链网络时,从存储节点中下载π
其中步骤S3之后还包括步骤:
S4、轻节点根据π
即新增的轻节点可以直接通过获取最新打包的零知识证明得到当前整个区块链的状态,并验证当前的交易,快速便捷,减轻轻节点存储负担的同时提高了交易上链至轻节点的效率。
请参照图4,本发明的实施例三为:
一种基于递归零知识证明的区块总结终端1,包括存储器2、处理器3和存储在存储器2上并可在处理器3上允许的计算机程序,处理器3执行计算机程序时实现上述实施例一或实施例二中的步骤。
综上所述,本发明提供的一种基于多链链阵的数据上链和处理方法及其多链链阵系统具有以下有益效果:
1、通过使用递归零知识证明,对整个区块链的状态进行总结,提高了区块总结的效率;
2、递归零知识证明压缩打包后的零知识证明通常为一段固定大小的数据,即最终通过一段固定大小的数据来代表区块链的最新状态,避免了因区块数量增加而引起的数据膨胀问题,减少了轻节点的存储负担,使得轻节点可以部署在轻量级或资源有限的设备之上。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
机译: 基于零知识证明算法和投票币中间服务器,投票代币分发服务器,投票支持服务器的基于梅克尔树结构的区块链秘密电子投票服务的提供方法
机译: 使用区块链网络以及用于使用它们的服务器和终端,根据零知识证明服务证书的方法
机译: 使用区块链网络以及用于使用它们的服务器和终端,根据零知识证明服务证书的方法