基于聚合签名和时空证明算法的共识方法及装置制造方法及图纸

技术编号:34833201 阅读:21 留言:0更新日期:2022-09-08 07:27
本发明专利技术公开了一种基于聚合签名和时空证明算法的共识方法及装置,方法包括构建交易请求、构建聚合签名算法、基于交易请求采用聚合签名算法中的秘钥生成算法和签名算法完成交易签名、交易签名聚合、构建PoST算法并运行PoST算法、通过网络将区块广播给相邻节点、验证区块交易及存储,若验证通过则将新区块放入验证节点的本地链中,否则丢弃。本发明专利技术一方面采用聚合签名算法,减小区块大小和容量,提高通信效率和签名验证效率;另一方面结合空间证明和时间证明的PoST算法,解决能源浪费和51%攻击问题;从而保证区块链的交易数据不存在被篡改的可能性和能快速进行交易数据的验证及确认。确认。确认。

【技术实现步骤摘要】
基于聚合签名和时空证明算法的共识方法及装置


[0001]本专利技术属于区块链的
,具体涉及一种基于聚合签名和时空证明算法的共识方法及装置。

技术介绍

[0002]区块链是一个开放的分布式分类账,具有去中心化、去信任的特点,能让不同地域的节点协作维护一个数据账本,数据账本是随着时间增长的有序块链式结构。区块链基于共识协议进行出块处理来保存信息,从而保证信息不可篡改,提高信息安全性。
[0003]共识协议作为区块链系统架构中的核心技术,是确保区块链系统上所有节点彼此同步并协商合法交易将其添加到区块链中的协议。目先现有的共识协议可分为两类:一类是基于链的PoX共识协议,以工作量证明(Proof of Work, PoW)和权益证明(Proof of Stake, PoS)为代表,一类是基于拜占庭的BFT类共识协议,以实用拜占庭容错(Practical Byzantine Fault Tolerance, PBFT)为代表。PoX类共识协议主要用于公有区块链,即任何节点都可以查询和提交数据,该类协议首先要确定维持的数据账本分支,并在区块链的多个账本分支中选择唯一的分支将其存储。BFT类的共识协议主要用于联盟区块链,即系统的节点需要经过预先挑选,该类协议需要在每轮共识中都要求得到明确的结果且不可更改。
[0004]PoW的核心思想是通过节点之间的算力竞争来分配出块权,参与共识的节点通过消耗算力解决数学难题来竞争成为主节点, 由最先解决数学难题的节点成为主节点。数学难题是对区块头信息的双SHA256哈希运算, 即F=(BlockHead||Nonce)<T,其中F为双SHA256哈希运算函数,T是目标哈希值,BlockHeader为区块头信息,包含Nonce字段,求解合适的Nonce字段使得对完整BlockHeader的哈希运算结果满足目标值要求。但是PoW具有下述缺点:(1)能源浪费:出块成功需要大量的哈希运算,并且所做的计算没有任何其他作用,同时出块失败的节点也耗费同样程度的资源。
[0005](2)性能低下:该算法的出块间隔在10分钟左右,区块的有效性确认需要产生6个新区块,吞吐量低难以用于商业化。
[0006]PoS的核心思想是以节点的币龄代替算力,币龄的占比决定了出块难度,节点持有的币龄越大,在竞争出块时越容易获胜,PoS将搜索空间限制在一个计算量可接受的范围,数学难题为F=(BlockHead||TimeStamp)<T
×
weight。F是双SHA256哈希运算函数,BlockHeader为区块头信息,包含Timestamp字段,取值范围在上一个区块时间和当前时间间,Weight是用于竞争所消耗的币龄权重,T是目标哈希值。但是PoS具有下述缺点:(1)无利害攻击:PoS的出块几乎没有成本,攻击者易创建链分叉以此替换合法主链。
[0007](2)51% 攻击:攻击者拥有网络中超过50% 的权益时,被选为当前时期出块者的概率高,并且有被持续选为出块者的风险。
[0008]PBFT的核心思想是从全网节点选择一个主节点负责创建区块,然后经过三阶段投
票达成共识:预准备阶段,准备阶段,提交阶段,以此来解决拜占庭将军问题。
[0009]预准备阶段:从全网选择一个主节点,每个节点把客户端发来的交易信息向全网广播,主节点收集所有交易信息,创建新区块并向全网广播。
[0010]准备阶段:每个节点在收到主节点发送的区块信息后,从预准备阶段进入到准备阶段,节点对区块进行验证,验证通过后向其他节点广播一条准备消息。
[0011]提交阶段:节点在向全网广播准备消息之后进入提交阶段,如果节点收到超过2/3节点的准备消息,就向全网广播一条提交消息,如果一个节点收到超过 2/3 节点的提交消息,即可提交新区块到本地区块链,达成对最新高度区块的共识。
[0012]但是PBFT具有下述缺点:(1)应用狭窄:由于三阶段投票需要节点的身份确认,因此只能用于联盟链或者私有链。
[0013](2)效率低:每个节点相互之间都需要进行消息的交换,当节点的个数到达100个左右,通信性能下降非常快。

技术实现思路

[0014]本专利技术的主要目的在于克服现有技术的缺点与不足,提供一种基于聚合签名和时空证明算法的共识方法及装置,通过聚合签名解决共识中的效率问题,通过时空证明算法解决共识中的攻击安全问题。
[0015]为了达到上述目的,本专利技术采用以下技术方案:本专利技术一方面提供了一种基于聚合签名和时空证明算法的共识方法,包括下述步骤:构建交易请求,所述交易请求是用户发起交易并提交交易数据到区块链节点;构建聚合签名算法,所述聚合签名算法包括密钥生成算法、签名算法、签名验证算法、签名聚合算法以及聚合签名验证算法;基于交易请求,用户采用聚合签名算法中的秘钥生成算法和签名算法完成交易签名;区块链节点在收到完成交易签名的交易之后,调用签名验证算法,将收到的交易数据、验证公钥和交易签名放入签名验证算法中,输出对该笔交易的签名的验证结果;若验证成功则将该笔交易放入公共交易池中,否则丢弃该交易;对于公共交易池中的交易,区块链节点调用签名聚合算法对相应交易和签名进行聚合后,将算法输出的交易聚合公钥和聚合签名放入区块体中,并将版本号、前一区块的Hash值、交易数据的Merkle根、难度值填充至区块头中;构建PoST算法,所述PoST算法包括空间证明流程和时间证明流程,所述空间证明流程包括Plot 阶段、Farm 阶段和Verify 阶段;所述Plot 阶段是农民节点在本地随机生成多个Plot种子Plotsseed,根据这个种子农民节点运行空间初始化PoSpace.int算法在磁盘中生成F文件,F文件里包含多个Plots文件,每个Plots文件由Plotsseed唯一表示;所述Farm 阶段是农民节点生成空间证明的阶段,农民节点收到验证节点的挑战哈希Chall后运行空间证明PoSpace.proof算法生成空间证明;所述Verify阶段是对生成的空间证明进行验证;验证者收到空间证明PoSpace.π
后调用空间验证PoSpace.Verify算法,将空间证明PoSpace.π中的多个哈希原像值L,R两两配对,由于匹配函数是从输入计算输出的正向计算过程,因此运行时间更短,当所有的匹配函数输出True后该空间证明通过验证;所述时间证明流程,是通过可验证延迟函数实现,包括时间初始化VDF.Int阶段、时间证明VDF.Proof阶段和时间验证VDF.Verify阶段;所述时间初始化VDF.Int阶段是农民节点在本地生成运行后续算法所需的证明参数和验证参数;所述时间证明VDF.Proof阶段是农民节点输入PoSpace.π空间证明运行VDF.Proof算法,通过连续的重复平方计算获取时间证明(l,VDF.π);所述时间验证VDF.Verify阶段对生成的时间证明进行验证,验证者收到时间证明(l,VDF.π)后调用时间验证VDF.Verify算法,当算法输出True后本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于聚合签名和时空证明算法的共识方法,其特征在于,包括下述步骤:构建交易请求,所述交易请求是用户发起交易并提交交易数据到区块链节点;构建聚合签名算法,所述聚合签名算法包括密钥生成算法、签名算法、签名验证算法、签名聚合算法以及聚合签名验证算法;基于交易请求,用户采用聚合签名算法中的秘钥生成算法和签名算法完成交易签名;区块链节点在收到完成交易签名的交易之后,调用签名验证算法,将收到的交易数据、验证公钥和交易签名放入签名验证算法中,输出对该笔交易的签名的验证结果;若验证成功则将该笔交易放入公共交易池中,否则丢弃该交易;对于公共交易池中的交易,区块链节点调用签名聚合算法对相应交易和签名进行聚合后,将算法输出的交易聚合公钥和聚合签名放入区块体中,并将版本号、前一区块的Hash值、交易数据的Merkle根、难度值填充至区块头中;构建PoST算法,所述PoST算法包括空间证明流程和时间证明流程,所述空间证明流程包括Plot 阶段、Farm 阶段和Verify 阶段;所述Plot 阶段是农民节点在本地随机生成多个Plot种子Plotsseed,根据这个种子农民节点运行空间初始化PoSpace.int算法在磁盘中生成F文件,F文件里包含多个Plots文件,每个Plots文件由Plotsseed唯一表示;所述Farm 阶段是农民节点生成空间证明的阶段,农民节点收到验证节点的挑战哈希Chall后运行空间证明PoSpace.proof算法生成空间证明;所述Verify阶段是对生成的空间证明进行验证;验证者收到空间证明PoSpace.π后调用空间验证PoSpace.Verify算法,将空间证明PoSpace.π中的多个哈希原像值L,R两两配对,由于匹配函数是从输入计算输出的正向计算过程,因此运行时间更短,当所有的匹配函数输出True后该空间证明通过验证;所述时间证明流程,是通过可验证延迟函数实现,包括时间初始化VDF.Int阶段、时间证明VDF.Proof阶段和时间验证VDF.Verify阶段;所述时间初始化VDF.Int阶段是农民节点在本地生成运行后续算法所需的证明参数和验证参数;所述时间证明VDF.Proof阶段是农民节点输入PoSpace.π空间证明运行VDF.Proof算法,通过连续的重复平方计算获取时间证明(l,VDF.π);所述时间验证VDF.Verify阶段对生成的时间证明进行验证,验证者收到时间证明(l,VDF.π)后调用时间验证VDF.Verify算法,当算法输出True后该时间证明通过验证;运行PoST算法,农民节点首先调用时空初始化PoST.int算法进行磁盘空间的初始化,输入空间参数k,初始化公钥pk,生成Plots文件,然后运行时空证明PoST.Eval算法,输入难度值Chall,输出时间证明(l,VDF.π)和空间证明PoSpace.π,然后将两个结果放入区块头;当农民节点构建完一个区块后,通过网络将该区块广播给其他相邻节点;验证节点收到一个新区块后进行验证,若输出相同,则将新区块放入验证节点的本地链中,否则丢弃。2.根据权利要求1所述基于聚合签名和时空证明算法的共识方法,其特征在于,所述聚合签名算法中,所述秘钥生成算法如下:即输入一个安全参数l,用l长度的二进制字符串作为输入运行秘钥生成KeyGen算法,
生成公钥X和私钥x,输出公私钥对(X, x);所述签名算法如下:即输入公钥X、私钥x以及要签名的消息m∈{0,1}
*
,输出签名σ= (d,z);所述签名验证算法如下:即输入公钥X,消息m以及消息的签名σ= (d,z),输出验证结果ACCEPT/REJECT;所述签名聚合算法如下:即输入所有的独立签名σ
i
、消息m
i
和公钥X
i
,输出聚合的验证公钥和聚合签名;所述聚合签名验证算法如下:输入聚合的验证公钥和聚合签名,输出对聚合签名的验证结果ACCEPT/REJECT。3.根据权利要求2所述基于聚合签名和时空证明算法的共识方法,其特征在于,在进行交易签名时,首先调用秘钥生成算法,输入安全参数λ,输出签名私钥和用于验证的公钥;然后调用签名算法,输入签名私钥和交易数据,输出对该笔交易的签名;最后将该笔交易的签名和验证公钥添加至交易字段的末尾,上传给最近的区块链节点,并等待该笔交易被打包进区块。4.根据权利要求2所述基于聚合签名和时空证明算法的共识方法,其特征在于,在交易签名聚合时,农民节点从交易池中选取n个交易,每个交易都有各自的交易数据和单独签名,农民调用签名聚合算法对签名进行聚合,输入n个独立签名(σ1, σ2,

,σ
n
),输出一个验证聚合公钥和一个聚合签名;然后构建区块体将n个交易、聚合公钥和签名放入区块体中;交易及签名整合至区块体后,农民开始构建区块头,将版本号、前一区块的Hash值、交易数据的Merkle根、难度值Chall填充至区块头中。5.根据权利要求1所述基于聚合签名和时空证明算法的共识方法,其特征在于,在Plot 阶段中,Plots文件数据结构是以表table的形式组织,生成Plots文件的过程就是生成table的过程;每个Plots文件包含7个table,每个table拥有2
K
个条目,其中k是农民节点自己决定的空间参数,每个条目包含两个随机整数L,R,L,R是一对范围在[0,2
K
]的随机整数,即哈希原像值;table
i
的一个条目通过哈希指针指向table
i
‑1的两个条目,以此将两个table联系起来。6.根据权利要求1所述基于聚合签名和时空证明算法的共识方法,其特征在于,在Farm 阶段中,生成空间证明的过程如下:证明者P 根据难度值Chall计算出a=Chall%32,...

【专利技术属性】
技术研发人员:蒋琳王轩刘洋吴宇琳漆舒汉张加佳姚霖周珏熊力瑶陈倩
申请(专利权)人:哈尔滨工业大学深圳哈尔滨工业大学深圳科技创新研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1