【技术实现步骤摘要】
基于聚合签名和时空证明算法的共识方法及装置
[0001]本专利技术属于区块链的
,具体涉及一种基于聚合签名和时空证明算法的共识方法及装置。
技术介绍
[0002]区块链是一个开放的分布式分类账,具有去中心化、去信任的特点,能让不同地域的节点协作维护一个数据账本,数据账本是随着时间增长的有序块链式结构。区块链基于共识协议进行出块处理来保存信息,从而保证信息不可篡改,提高信息安全性。
[0003]共识协议作为区块链系统架构中的核心技术,是确保区块链系统上所有节点彼此同步并协商合法交易将其添加到区块链中的协议。目先现有的共识协议可分为两类:一类是基于链的PoX共识协议,以工作量证明(Proof of Work, PoW)和权益证明(Proof of Stake, PoS)为代表,一类是基于拜占庭的BFT类共识协议,以实用拜占庭容错(Practical Byzantine Fault Tolerance, PBFT)为代表。PoX类共识协议主要用于公有区块链,即任何节点都可以查询和提交数据,该类协议首先要确定维持的数据账本分支,并在区块链的多个账本分支中选择唯一的分支将其存储。BFT类的共识协议主要用于联盟区块链,即系统的节点需要经过预先挑选,该类协议需要在每轮共识中都要求得到明确的结果且不可更改。
[0004]PoW的核心思想是通过节点之间的算力竞争来分配出块权,参与共识的节点通过消耗算力解决数学难题来竞争成为主节点, 由最先解决数学难题的节点成为主节点。数学难题是对区块头信息的双SHA256哈希运算 ...
【技术保护点】
【技术特征摘要】
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,...
【专利技术属性】
技术研发人员:蒋琳,王轩,刘洋,吴宇琳,漆舒汉,张加佳,姚霖,周珏,熊力瑶,陈倩,
申请(专利权)人:哈尔滨工业大学深圳哈尔滨工业大学深圳科技创新研究院,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。