环式可编辑区块链的构建方法技术

技术编号:22597418 阅读:21 留言:0更新日期:2019-11-20 12:23
本发明专利技术涉及环式可编辑区块链的构建方法,包括:A.初始化:根据安全参数,通过哈希函数,输出系统公开参数和初始区块;B.生成密钥:根据系统公开参数得到用户的私钥x

The construction method of ring type editable blockchain

The invention relates to a construction method of ring type editable blockchain, which includes: A. initialization: output system public parameters and initial blocks through hash function according to security parameters; B. generate key: obtain user's private key x according to system public parameters

【技术实现步骤摘要】
环式可编辑区块链的构建方法
本专利技术涉及网络安全领域,具体讲是环式可编辑区块链的构建方法。
技术介绍
区块链的概念是在2008年首次正式被提出,它可以用于实现去中心化环境下的公共账本和不可更改的交易记录。传统的区块链采用的是链式结构,即新的区块从链的尾部插入。然而,目前区块链面临着存储耗费和可扩展性的问题。即区块链的数据内容过于庞大,不便于存储,并且区块结构单一,无法较好的从链式结构上进行更进一步的扩展,从而支持更加多样化的服务和功能。为了解决这个问题,目前已有多个研究项目,如闪电支付链,用于解决区块链的支付慢和可扩展性问题,以太坊的研究用于扩展区块链,以支持更加多样化的设计和功能等。但目前的所有研究内容均是基于区块链的链式结构。2016年Atenieseetal提出《RedactableBlokchain-or-rewirtinghistoryinbitcoinandfriends》,该文中提出了基于变色龙哈希函数的可被编辑的区块链技术,允许区块在保持哈希值不变的情况下,实现对问题区块的内容(如违法信息或者涉及非法交易)进行重新编辑,从而确保区块链安全可靠的运行。然而,该方案未具体提及如何在完全去中心的环境下实现区块内容的编辑。此外,该方案同样是基于传统的链式区块链,即新的区块从链的尾部插入。因此,一旦某部分区块需要进行重新编辑,则需要对该区块以后的所有区块链进行遍历,编辑所产生的计算耗费庞大(特别是考虑到当前区块链的长度,上万个区块链的遍历难度和复杂度问题)。此外,可编辑区块链基于传统的链式区块链,不能够获得更好的功能扩展。因此,基于上述原因,可编辑区块链的应用前景受限。
技术实现思路
本专利技术提供了一种环式可编辑区块链的构建方法,在去中心的环境下,对区块链提供安全、高效的管理和编辑,并且通过环式结构为区块链提供更广泛的应用场景。本专利技术环式可编辑区块链的构建方法,包括:A.初始化:根据安全参数λ,通过哈希函数,输出系统公开参数P和初始区块B1(GenesisBlock);其中所述的安全参数λ是在系统初始化阶段,由初始化方根据需要输入的参数,该参数广泛的体现在现有的任何密码方案的设计中,是一个公知的参数,通常为所选择的密钥长度(如128256比特等)。初始化方可以是系统拥有者,也可以是需要运行该算法的用户等。B.生成密钥:根据所述的系统公开参数P,计算得到用户的私钥xi和公钥yi,其中1≤i≤n,n为生成区块链的区块的总数;所述的用户包括了任何矿工(负责区块链中交易确认和数据打包的角色)或者任何加入区块链网络的用户。C.生成环式可编辑区块链:将交易信息记录到区块中,各区块按生成时间排列,并将排列的最后一个区块与所述的初始区块B1相连,形成环式可编辑区块链RCn;根据所述环式可编辑区块链RCn得到公钥集合L={yi}1≤i≤n,其中每个区块Bi对应一个所述的公钥yi,每个公钥yi对应一个所述的私钥xi。本专利技术通过环式的新型区块链结构,结合变色龙哈希函数,能够对区块链提供了高效的管理和编辑。在环式结构的支持下,能够实现对区块链进行批量的编辑,并且还支持对区块链上区块的批量删除。而且在执行完批量编辑后,区块链的环式结构仍然保持不变。通过环式结构为区块链提供更广泛的应用场景。例如,基于环或者群签名的应用场景皆可移植到以环结构的区块链上得以实现,如环签名、群签名、匿名投票等等。进一步的,通过区块链的环式结构,实现了对区块的批量编辑和删除,包括有:D.验证环式可编辑区块链:根据区块链的验证公式计算后输出验证结果;E.向环式区块链加入新区块:根据所述的环式可编辑区块链RCn和需要新加入的区块{B′i}n+1≤i≤n+k,计算后输出新的环式可编辑区块链RCn+k或加入失败的标识,其中k为需要加入的新区块的个数;F.编辑环式区块链:根据环式可编辑区块链RCn和用户的私钥集合{xi}1≤i≤n,通过重新计算每个区块新的变色龙随机值r′i,使每个区块的内容不同而变色龙哈希值相同,将原有的区块集合{Bi}1≤i≤n编辑为新的区块集合{B′i}1≤i≤n,输出编辑后的环式可编辑区块链RC′n;G.环重构:从所述的环式可编辑区块链RCn中删除d个区块后,输出被重构的环式可编辑区块链RCn-d,其中d为环式可编辑区块链RCn上需被删除的区块个数,并且n-2>d。具体的,步骤A包括:A1.根据安全参数λ选择生成元为g且群阶数为q的群G;A2.设置哈希函数分别为:H1:{0,1}*→G和H2:{0,1}*→Zq,其中,H1为第一哈希函数,作用是将0或1所组成任意长度的字符串{0,1}*映射到群G的一个任意元素上,*表示字符串{0,1}为任意长度,H2为第二哈希函数,作用是将0或者1所组成任意长度的字符串{0,1}*映射到由(0,1,…,q-1)元素所组成的q阶的整数群Zq上,Z表示整数群;A3.输出系统公开参数P=<G,q,g,H1,H2>;A4.生成初始区块B1,将所述的系统公开参数P写入初始区块B1。具体的,步骤B中所述计算用户的私钥xi和公钥yi为:根据所述的系统公开参数P,选择一个随机数作为用户的私钥xi,R表示从q阶的整数群Zq中随机选择一个元素xi,根据所述私钥xi计算公钥具体的,步骤C包括:将当前时间段的交易信息打包,并记录到区块中,将区块{Bi}1≤i≤n按生成时间的顺序排列,并将排列的最后一个区块Bn与所述的初始区块B1相连,形成B1||…||Bn||B1的首尾相连的环结构,然后通过计算{Bi}1≤i≤n的哈希值,得到环式可编辑区块链其中,c1为以初始区块B1为环起点的计算参数,数组{Bi,ri,βi}中的元素依次表示第i个区块Bi的内容、变色龙随机值和普通随机值,表示L为生成区块的公钥集合,表示绑定最新的区块Bn对应私钥xn的参数,其中h=H1(L),表示将公钥集合L通过第一哈希函数H1映射到群G上的一个元素,(u,v)为用于插入新区块的计算参数。具体的,所述计算{Bi}1≤i≤n的哈希值为:C1.计算h=H1(L)和选择两个随机数计算初始区块B1的计算参数(u,v)为用于插入新区块的计算参数;C2.选择两个随机数其中i=(1,…,n-1),计算变色龙随机值和变色龙哈希值其中Bi为第i个区块的内容,再计算区块Bi+1的计算参数根据环结构收尾相连的特性,得到cn+1=c1;C3.计算第n个区块Bn的随机数αn=(u-xncnmodq),βn=(v-xncnmodq),得到第n个区块Bn的变色龙随机值在对区块链操作时,步骤D包括:对长度为n的环式可编辑块链其中,c1为初始区块B1的计算参数,数组{Bi,ri,βi}中的元素依次表示第i个区块Bi的内容、变色龙随机值和普通随机值,表示L为生成区块的公钥集合,表示绑定最新的区块Bn对应私钥xn的参数,其中h=H1(L),表示将公钥集合L通过第一哈希函数H1映射到群G上的一个元素,(u,v)为用于插本文档来自技高网
...

【技术保护点】
1.环式可编辑区块链的构建方法,其特征包括:/nA.初始化:根据安全参数λ,通过哈希函数,输出系统公开参数P和初始区块B

【技术特征摘要】
1.环式可编辑区块链的构建方法,其特征包括:
A.初始化:根据安全参数λ,通过哈希函数,输出系统公开参数P和初始区块B1;
B.生成密钥:根据所述的系统公开参数P,计算得到用户的私钥xi和公钥yi,其中1≤i≤n,n为生成区块链的区块的总数;
C.生成环式可编辑区块链:将交易信息记录到区块中,各区块按生成时间排列,并将排列的最后一个区块与所述的初始区块B1相连,形成环式可编辑区块链RCn;根据所述环式可编辑区块链RCn得到公钥集合L={yi}1≤i≤n,其中每个区块Bi对应一个所述的公钥yi,每个公钥yi对应一个所述的私钥xi。


2.如权利要求1所述的环式可编辑区块链的构建方法,其特征为:步骤C之后还包括:
D.验证环式可编辑区块链:根据区块链的验证公式计算后输出验证结果;
E.向环式区块链加入新区块:根据所述的环式可编辑区块链RCn和需要新加入的区块{B′i}n+1≤i≤n+k,计算后输出新的环式可编辑区块链RCn+k或加入新区块失败的标识,其中k为需要加入的新区块的个数;
F.编辑环式区块链:根据环式可编辑区块链RCn和用户的私钥集合{xi}1≤i≤n,通过重新计算每个区块新的变色龙随机值r′i,使每个区块的内容不同而变色龙哈希值相同,将原有的区块集合{Bi}1≤i≤n编辑为新的区块集合{B′i}1≤i≤n,输出编辑后的环式可编辑区块链RC′n;
G.环重构:从所述的环式可编辑区块链RCn中删除d个区块后,输出被重构的环式可编辑区块链RCn-d,其中d为环式可编辑区块链RCn上需被删除的区块个数,并且n-2>d。


3.如权利要求1所述的环式可编辑区块链的构建方法,其特征为:步骤A包括:
A1.根据安全参数λ选择生成元为g且群阶数为q的群G;
A2.设置哈希函数分别为:H1:{0,1}*→G和H2:{0,1}*→Zq,其中,H1为第一哈希函数,作用是将0或1所组成任意长度的字符串{0,1}*映射到群G的一个任意元素上,*表示字符串{0,1}为任意长度,H2为第二哈希函数,作用是将0或者1所组成任意长度的字符串{0,1}*映射到由(0,1,…,q-1)元素所组成的q阶的整数群Zq上,Z表示整数群;
A3.输出系统公开参数P=<G,q,g,H1,H2>;
A4.生成初始区块B1,将所述的系统公开参数P写入初始区块B1。


4.如权利要求3所述的环式可编辑区块链的构建方法,其特征为:步骤B中所述计算用户的私钥xi和公钥yi为:根据所述的系统公开参数P,选择一个随机数作为用户的私钥xi,R表示从q阶的整数群Zq中随机选择一个元素xi,根据所述私钥xi计算公钥


5.如权利要求4所述的环式可编辑区块链的构建方法,其特征为:步骤C包括:将当前时间段的交易信息打包,并记录到区块中,将区块{Bi}1≤i≤n按生成时间的顺序排列,并将排列的最后一个区块Bn与所述的初始区块B1相连,形成B1||…||Bn||B1的首尾相连的环结构,然后通过计算{Bi}1≤i≤n的哈希值,得到环式可编辑区块链其中,c1为以初始区块B1为环起点的计算参数,数组{Bi,ri,βi}中的元素依次表示第i个区块Bi的内容、变色龙随机值和普通随机值,L为生成区块的公钥集合,表示绑定最新的区块Bn对应私钥xn的参数,其中h=H1(L),表示将公钥集合L通过第一哈希函数H1映射到群G上的一个元素,(u,v)为用于插入新区块的计算参数。


6.如权利要求5所述的环式可编辑区块链的构建方法,其特征为:所述计算{Bi}1≤i≤n的哈希值为:
C1.计算h=H1(L)和选择两个随机数计算初始区块B1的计算参数(u,v)为用于插入新区块的计算参数;
C2.选择两个随机数其中i=(1,…,n-1),计算变色龙随机值和变色龙哈希值其中Bi为第i个区块的内容,再计算区块Bi...

【专利技术属性】
技术研发人员:张小松牛伟纳黄可杨涵麟杨坤卢臻
申请(专利权)人:电子科技大学
类型:发明
国别省市:四川;51

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

1