一种基于区块链的可溯源云存储系统的共识机制的制作方法

文档序号:20778176发布日期:2020-05-19 20:59阅读:229来源:国知局

本发明涉及区块链的云存储技术领域,尤其涉及一种基于区块链的可溯源云存储系统的共识机制。



背景技术:

现阶段,随着互联网的广泛运用,互联网数据的日益增多,开始使用云存储来解决数据的存储问题。在云存储中,不仅需要确保数据的安全存储,更要确保数据来源信息的完整性和不可篡改性,进而实现云存储数据的可溯源。

区块链是分布式的防篡改公共分类帐目,任何交易信息都是由区块链上的所有参与者共同进行验证的。故可使用区块链技术记录云存储数据的来源信息,进而实现云存储数据的可溯源。因此,2017年liangx等人提出了一种基于区块链的数据可溯源体系结构provchain,为云存储的数据提供了安全性保证。2018年toshd等人在provchain体系的基础上提出了blockcloud系统,为了确保blockcloud系统能安全的运行,针对该系统提出了cloudpos共识机制,该机制是区块链事务达成分布式共识的算法,是在pos的基础上改进形成的,实现了云存储数据的可溯源。

虽然已有的cloudpos共识机制确保云存储实现了数据的可溯源,但仍存在一家独大、权益资源双花、资源信息泄漏等安全隐患。故本文针对已有的cloudpos共识机制提出了改进方案,使blockcloud系统更具有安全性和隐私性。



技术实现要素:

本发明的目的是提供一种基于区块链的可溯源云存储系统的共识机制,以防篡改的方式实现了云存储数据的可溯源,引入随机数以及门限加密方案,提高了cloudpos共识机的安全性和可靠性,确保了云存储数据的可问责、可取证和隐私性。

本发明采用的技术方案为:

一种基于区块链的可溯源云存储系统的共识机制,包括以下步骤:

a:云存储用户基于cloudpos共识机制演算权益函数值的产生

a1:云存储用户使用自己的资源竞争挖矿的权力,共识机制中挖矿竞争者i的权益函数值的计算方法为f(i)=liri,其中ri=<ci,si,di>为挖矿竞争者i可用于竞争的资源,ci是挖矿竞争者可投入的中央处理器分片的数量,si是挖矿竞争者i以千字节为单位分配可投入的内存大小,di是挖矿竞争者i以千比特每秒为单位可投入的网络数据处理速率,li∈[0,1)为挖矿竞争者i被csp分配的随机数;

a2:f(i)的具体计算方式由当前参与的云服务提供商csp决定,并将计算方式在区块链上进行公布;

f(i)应满足的条件:

(1)即若随机数li∈[0,1)相同,则挖矿竞争者i的权益函数值f(i)随资源的增大而增大;

(2)f(i)∈z,且f(i)的计算复杂度不高;

(3)权益函数的计算方式具有可逆性,即当得到权益值f(i)时,可通过随机数li计算出挖矿竞争者i投入竞争挖矿的资源;

(4)权益值f(i)由参与挖矿竞争者i自行计算后,并提交给当前的云存储提供商;

b:云存储用户的权益函数资源确认

b1:选择参与权益资源锁定的云存储用户

相关的云服务提供商csp通过奖励机制,促使参与挖矿竞争的云存储用户积极的给csp发送参与权益资源锁定的请求,除挖矿竞争者i外,csp根据收到的请求,确定n个云存储用户pl(l=1,2,...,n)参与权益资源的锁定过程;

b2:权益函数资源锁定

(i)初始化

当前相关的云服务提供商csp,选取两个大素数p和q作为公共参数,其中q是(p-1)的素因数;csp确定d={d1,d2,…,dn},dl(l=1,...,n)都是正整数的随机数,由相关的云服务提供商csp将随机数dl和dj,分配给用户pl和pj,需满足的要求:(a)严格递增;(b)(dl,dj)=1,(l≠j);(c)(dl,q)=1;(d)有限域zp上的q阶生成元g,使得在zp域中计算以g为底的离散对数是不可行的;csp所选择的参数p,q,g和d={d1,d2,...,dn}对于参与权益资源锁定的所有参与者都是公开的;

(ii)身份验证

两个不同的用户pl和pj之间进行身份验证,pl首先选择随机数xl(0<xl<[q/n])和整数al(0≤al≤{[n/q]-1}/n),再使用csp提供的参数q、p、g和每个用户pl的dl,计算yl=xl+alq,alj=ylmoddj,klj=(yl-alj)/dj,并广播验证因子αl、βlj(l≠j);

用户pl单独保存随机数xl和all=ylmoddl作为私钥,alj、αl、βlj(l≠j)公开。

用户pj收到alj后,通过计算进行验证,若方程式成立,用户pl和pj之间身份验证成功;

(iii)产生子秘密

两个不同的用户pl和pj身份验证成功后,每个用户pj使用alj和csp提供的参数dj,计算子秘密lj:

(iv)产生群公钥

每个用户pl(l=1,2,...,n)使用云存储提供商公布的生成元g和自己产生的密钥为随机数的xl,来计算的值,并公布该值,参与权益资源锁定的任何一方都可以通过所有参与权益资源锁定用户公布的的值以及云存储提供商公布的大素数p,计算得到群公钥y:

(v)对权益资源进行锁定

采用elgamal加密算法;对挖矿竞争者i的权益函值f(i)∈zq进行加密;云存储提供商选一个随机整数k(1<k<q-1),使用上述计算得到的群公钥y、云存储提供商公布的大素数p以及生成元g,计算c1=gkmodp,c2=ykf(i)modp,将挖矿竞争者i的权益资源锁定在cm=(c1,c2)中公布,并将cm=(c1,c2)记录在挖矿竞争者i的信息内;

b3:对权益函数资源进行认证

当挖矿竞争者i再参与其他轮的挖矿竞争,且具有最高的权益函数资源值将作为挖矿矿工时,相关的云存储提供商使用激励机制促使区块链上,参与挖矿竞争者i权益资源锁定的t个用户ps(s=1,2,...,t)(t≤n),对挖矿矿工i的权益函数资源进行认证;

(i)权益资源认证过程

每个用户ps(s=1,2,...,t)得到权益资源的锁定数据cm=(c1,c2)后,每个ps使用子秘密ls和csp分配的ds,计算并公布;其中,es由得出;

每个ps都可以恢复得到参与挖矿竞争者i的权益资源f(i),过程如下:

第1步:计算:

r是一个整数,以保证s是一个正数,且小于

第2步:参与挖矿竞争者i的权益资源f(i):

(ii)通过认证得到参与挖矿竞争者i的权益资源f(i),又因为已知f(i)的计算方法和云存参与者i所分配的随机数li,故可以逆推出云存储用户i已锁定的权益资源,进而完成对权益函数资源的认证;

c:若验证通过,则通知该权益值最高的挖矿竞争者进行挖矿,且设置计时器;若在规定的时间内,该挖矿矿工顺利的进行了挖矿,且返回完成;若在规定的时间内,没有能够返回正确的值,则重新开始步骤b中新的一轮矿工选择。

还包括激励机制,当有云存储用户成功正确地将区块添加到区块链中时,云存储提供商在特定时间内进行评估,挖矿矿工和其他为成功挖矿者做贡献的参与者所创造的总价值量,在此基础上综合参与者所付出的权益资源,然后确定挖矿矿工和其他为成功挖矿做贡献的参与者的总报酬值;

在添加区块后的某一段时间内,将总报酬的大半付给挖矿矿工作为挖矿的报酬,其余的部分平分给每个为成功挖矿做贡献的参与者,报酬即为云存储用户释放或分配更多的权益资源,这些权益资源可用于增加参与下一轮挖矿竞争。

还包括惩罚机制,若有参与者提交了不诚实的信息,且有其他云存储参与者发现,并对该不诚实的参与者进行了举报;则本应由该参与者所得的奖励的一半交给举报的云存储参与者,而奖励的另一半则被毁掉

本发明利用区块链技术,以防篡改的方式实现了云存储数据的可溯源。在该系统中使用的cloudpos共识机制,是区块链技术的关键部分,确保了数据来源信息以区块的形式安全的添加到区块链上;采用随机数以及门限加密方案,通过分析表明,解决了cloudpos共识机制存在的安全隐患,提高了cloudpos共识机的安全性和可靠性,确保了云存储数据的可问责、可取证和隐私性。

具体实施方式

下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

首先说明现有cloudpos共识机制

blockcloud系统使用了cloudpos共识机制,该共识机制中,使用基于计时器的方式,通过比较每个挖矿竞争者权益值的大小和获得投票票数的多少来竞争挖矿的权力,权益值的计算方法为:f(r,ru,γi)=γi(r-ru),其中γi∈(0,1]是挖矿竞争者i渴望得到挖矿权的程度系数,r-ru是挖矿竞争者i可投入竞争的资源。在规定的时间内,权益值越大,且获得区块链上参与者的票数越多,成为挖矿矿工的概率也就越大。

cloudpos共识机制中,主要有以下五部分组成:

(1)权益函数值的产生

权益函数值f(i)的计算方法为:f(i)=γiri,其中γi∈(0,1]是为贪婪因数,即挖矿竞争者i渴望得到挖矿权的程度系数,ri=<ci,si,di>为挖矿竞争者i可用于竞争的资源,ci是挖矿竞争者可投入的中央处理器分片的数量,si是是挖矿竞争者i以千字节为单位分配可投入的内存大小,di是挖矿竞争者i以千比特每秒为单位可投入的网络数据处理速率。

(2)认证权益

在权益值的计算过程中需要对权益资源进行确认,防止出现权益资源的双花问题,使用权益锁定函数:进行权益资源的锁定,其中,是挖矿竞争者i投入的资源,分别是中央处理器分片的数量、内存大小以及网络数据处理速率,ss是由云存储提供商提供的共享秘密,δi是挖矿竞争者i的签名,txidi是挖矿竞争者i的事务认证,δi和txidi包含在区块里。以后当一个挖矿竞争者要成为挖矿矿工时,其他区块链上的参与者可以使用权益认证函数:vmverify(δi)→0/1进行权益资源的确认,如果它的二进制输出为1,则权益资源确认成功,否则输出0。

(3)选择挖矿矿工

采用一种基于计时器的投票方式。挖矿竞争者向区块链上的其他参与者发出投票请求,并启动计时器。接收到请求的其他参与者,调用权益认证函数vmverify(δi),若输出1,则可对该挖矿竞争者进行投票,否则删除请求。获得多数选票的挖矿竞争者可进入下一阶段。

(4)添加区块

在成功的选取了挖矿矿工后,挖矿矿工通过事务的顺序来创建区块,区块的数据包括区块头和事务列表,区块头还包含挖矿矿工权益值以外的信息,如δi,txidi,其他信息都保持不变。当挖矿矿工产生的区块通过区块链上其他参与者的验证后,将该区块添加到区块链中

(5)惩罚机制

将区块成功的添加到区块链中会对相关的参与者有一定的奖励,奖励分布为rz={rt+1,...,rt+z},其中向每个时段t分配同等数量的奖励,即

本发明的方案

本文对blockcloud系统的cloudpos共识机制进行改进,主要引入了门限加密方案,来提高cloudpos共识机制的安全性和挖矿竞争的公平性。

一、权益函数值的产生

云存储用户使用自己的资源竞争挖矿的权力,进而获得一定的报酬。共识机制中挖矿竞争者i的权益函数值的计算方法为f(i)=liri,其中ri=<ci,si,di>为挖矿竞争者i可用于竞争的资源,ci是挖矿竞争者可投入的中央处理器分片的数量,si是挖矿竞争者i以千字节为单位分配可投入的内存大小,di是挖矿竞争者i以千比特每秒为单位可投入的网络数据处理速率,li∈[0,1)为挖矿竞争者i被csp分配的随机数。

f(i)的具体计算方式由当前参与的csp决定,并将计算方式在区块链上进行公布。f(i)应满足的条件:(1)即若随机数li∈[0,1)相同,则挖矿竞争者i的权益函数值f(i)随资源的增大而增大;(2)f(i)∈z,且f(i)的计算复杂度不高;(3)权益函数的计算方式应具有可逆性,即当得到权益值f(i)时,可通过随机数li计算出挖矿竞争者i投入竞争挖矿的资源;(4)权益值f(i)由参与挖矿竞争者i自行计算后,并提交给当前的云存储提供商。

二、权益函数资源确认

使用门限加密方案,使相关的云服务提供商对矿工提交的权益资源进行锁定,当他们在决定退出共识机制和/或更改其在blockcloud系统扮演的角色之前,都无法使用已投入的资源去竞争下一轮的挖矿。具体的权益资源确认流程如下:

(1)选择参与权益资源锁定的云存储用户

相关的云服务提供商csp通过奖励机制,促使参与挖矿竞争的云存储用户(除i外),可以积极的给csp发送参与权益资源锁定的请求。csp根据收到的请求,确定n个云存储用户pl(l=1,2,...,n)参与权益资源的锁定过程。

(2)权益函数资源锁定

(i)初始化

当前相关的云服务提供商csp,选取两个大素数p和q作为公共参数,其中q是(p-1)的素因数;csp确定d={d1,d2,...,dn},dl(l=1,...,n)都是正整数的随机数,由相关的云服务提供商csp将随机数dl和dj,分配给用户pl和pj,需满足的要求:(a)严格递增;(b)(dl,dj)=1,(l≠j);(c)(dl,q)=1;(d)有限域zp上的q阶生成元g,使得在zp域中计算以g为底的离散对数是不可行的;csp所选择的参数p,q,g和d={d1,d2,…,dn}对于参与权益资源锁定的所有参与者都是公开的。

csp所选择的参数p,q,g和d={d1,d2,…,dn}对于参与权益资源锁定的所有参与者都是公开的。

(ii)身份验证

两个不同的用户pl和pj之间进行身份验证,pl首先选择随机数xl(0<xl<[q/n])和整数al(0≤al≤{[n/q]-1}/n),再使用csp提供的参数q、p、g和每个用户pl的dl,计算yl=xl+alq,alj=ylmoddj,klj=(yl-alj)/dj,并广播验证因子αl、βlj(l≠j)。

用户pl单独保存随机数xl和all=ylmoddl作为私钥,alj、αl、βlj(l≠j)公开。

用户pj收到alj后,通过计算进行验证,若方程式成立,用户pl和pj之间身份验证成功。

(iii)产生子秘密

两个不同的用户pl和pj身份验证成功后,每个用户pj使用alj和csp提供的参数dj,计算子秘密lj:

(iv)产生群公钥

每个用户pl使用私钥xl和csp提供的参数g,计算的值并公布。每个权益资源锁定的参与者,均可通过每个用户公布的和csp提供的参数p,计算得到群公钥y:

(v)对权益资源进行锁定

采用elgamal加密算法,对挖矿竞争者i的权益函值f(i)∈zq进行加密。csp选一个随机整数k(1<k<q-1),使用群公钥y、csp提供的参数p和g,计算c1=gkmodp,c2=ykf(i)modp,将cm=(c1,c2)中记录在挖矿竞争者i的信息内并公布。

(3)对权益资源进行认证

当挖矿竞争者i再参与其他轮的挖矿竞争,且具有最高的权益函数资源值将作为挖矿矿工时,相关的云存储提供商使用激励机制促使区块链上,参与挖矿竞争者i权益资源锁定的t个用户ps(s=1,2,...,t)(t≤n),对挖矿矿工i的权益函数资源进行认证;

(i)权益资源认证过程

每个用户ps(s=1,2,...,t)得到权益资源的锁定数据cm=(c1,c2)后,每个ps使用子秘密ls和csp分配的ds,计算并公布。其中,得出。

每个ps都可以恢复得到参与挖矿竞争者i的权益资源f(i),过程如下:

第1步:计算:

r是一个整数,以保证s是一个正数,且小于

第2步:参与挖矿竞争者i的权益资源f(i):

(ii)认证过程可行性分析

假设故可得:z≡x(modq)。此外,故可得:z≡li(moddi),i=1,2,...,t。

则中国剩余定理可得:

则可得:

则可得:

(iii)通过认证得到参与挖矿竞争者i的权益资源f(i),又因为已知f(i)的计算方法和云存参与者i所分配的随机数li,故可以逆推出云存储用户i已锁定的权益资源,进而完成对权益函数资源的认证。

三、挖矿矿工的选择及挖矿

云存储参与者i成为挖矿矿工的可能性取决于它的权益值f(i)的大小。在一轮挖矿开始前,相关的云服务提供商判断哪个挖矿竞争者具有最高的权益值,并组织系统中的其他参与者,对该挖矿竞争者的权益值进行验证,若验证通过,则通知该权益值最高的挖矿竞争者进行挖矿,且设置计时器。若在规定的时间内,该挖矿矿工顺利的进行了挖矿,且返回完成;若没有在规定的时间内,没有能够返回正确的值,则重新开始新的一轮矿工选择。

四、激励机制

该共识机制的运行完全取决于云存储用户的参与积极性,故需为产生区块做贡献的参与者提供一定的奖励,进而激励他们继续维护区块链。当有云存储用户参成功正确地将区块添加到区块链中时,云存储提供商评估在特定时间内,挖矿矿工和其他为成功挖矿做贡献的参与者所创造的总价值量,在此基础上综合参与者所付出的权益资源,然后确定挖矿矿工和其他为成功挖矿做贡献的参与者的总报酬值。在添加区块后的某一段时间内,将总报酬的大半付给挖矿矿工作为挖矿的报酬,其余的部分平分给每个为成功挖矿做贡献的参与者,报酬即为云存储用户释放或分配更多的权益资源,这些权益资源可用于增加参与下一轮挖矿竞争。

五、惩罚机制

在共识机制中,单单通过奖励机制来激励参与者正确积极的挖矿往往是不够的,还应当有合理的惩罚机制,来对系统中的不诚实参与者进行惩罚,以鼓励每个参与者诚实的维护云存储数据操作信息。若有参与者提交了不诚实的信息,且有其他云存储参与者发现,并对该不诚实的参与者进行了举报。则本应由该参与者所得的奖励的一半交给举报的云存储参与者,而奖励的另一半则被毁掉。

本发明主要从cloudpos共识机制的五个方面对共识机制进行了改进,解决了权益资源存在一家独大、权益资源双花、权益资源信息泄漏等问题,提高了cloudpos共识机制的安全性和可靠性。

一、安全性

cloudpos共识机制中引入了门限加密方案来进行权益资源的锁定,在该方案中,除了负责挖矿矿工外,所有为挖矿做贡献的云存储用户(如参与权益资源认证)都会得到一定数额的奖励。云存储提供商通过该奖励机制,吸引blockcloud云存储系统中的参与者积极参与维护挖矿的安全正常进行。

在对权益资源的锁定时,使用了门限加密方案,不但锁定了挖矿参与者所投入的资源,使得已经投入的资源不能再进行双花,从而保证了挖矿竞争的公平性,确保了cloudpos共识机制的安全性。还对权益资源值进行了加密,使得挖矿竞争者在同时竞争其他挖矿机会时,其可以投入的权益资源具有隐私性,从而保证了挖矿竞争的公平性,确保了cloudpos共识机制的安全性。

二、可靠性

共识机制中云存储提供商给挖矿竞争者i分配随机数li∈[0,1),使得权益值不仅仅取决于资源占有量,还取决于云存储提供商分配的随机因素,进而防止了一家独大的问题,即个别挖矿竞争者通过占有的大量权益资源来进行恶意的挖矿。

cloudpos共识机制加入了惩罚机制,当共识机制中出现不诚实的参与者,且有其他参与者进行举报。则本应由该云存储参与者所得的奖励的一半交给举报的参与者,而奖励的另一半则被毁掉。毁掉奖励的另一半,这样即使不诚实的参与者能够合理地指控自己,对他的惩罚也会使他的利益受到伤害。且挖矿的奖励只能在添加区块后的某一段时间内转给矿工,以便有足够的时间让其他区块链的云存储参与者提出惩罚机制。这样的惩罚机制可以促使系统的参与者积极配合维护维护云存储数据操作信息,从而提高cloudpos共识机制的可靠性。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1