基于同态加密和零知识证明的可监管交易隐私保护方法
未命名
07-20
阅读:118
评论:0
1.本发明涉及区块链隐私保护技术领域,具体涉及基于同态加密和零知识证明的可监管交易隐私保护技术。
背景技术:
2.区块链是一种融合多种技术的去中心化基础架构与分布式计算范式,具有去中心化、不可篡改、可追溯、多方共同维护等特点,可以降低交易成本,建立点对点之间的可信价值传递。联盟链是介于公有链和私有链之间的,是一种多中心化或者部分去中心化的区块链。由多个机构组成利益相关的联盟,共同维护区块链的健康运转。联盟链因其兼具公有链的开放、低信任和私有链的保护隐私、单一高度信任等特性,在各个行业中受到了广泛的欢迎。
3.目前区块链上的数据是公开存储的,数据记录和运行规则可以被全网节点审查、追溯,具有很高的透明度,这种存储方式在带来便利的同时,也在一定程度上造成用户隐私泄露的风险。攻击者毫不费力的获取这些暴露在区块链上的交易数据,通过大数据分析技术恶意挖掘用户的交易习惯、交易规律等信息,严重威胁用户的个人信息。区块链上公开的数据,既是用户的个人隐私信息,也是机构的核心保密数据。目前已经有大量的研究通过密码学算法对链上的公开数据进行隐藏,增加数据分析的难度,如混币机制、零知识证明、群签名、同态加密等。但是过度的隐私保护将会导致交易不受监管,无形中为各种违法犯罪活动筑起了坚固的保护壁垒,使区块链逐渐沦为地下钱庄、偷税漏税、敲诈勒索、非法交易的工具。因此,区块链中的隐私性和可监管之间的平衡问题,成为了亟需解决的难点。
技术实现要素:
4.针对现有技术中的缺陷,本发明提供了基于同态加密和零知识证明的可监管交易隐私保护方法。
5.为实现上述目的,本发明采用了如下技术方案:
6.基于同态加密和零知识证明的可监管交易隐私保护方法,包括以下步骤:
7.s1、系统初始化:公布系统的初始化参数并初始化一个空的撤销列表,交易发送方向群管理员提出入群申请,群管理员根据主密钥对生成交易发送方的公私钥对以及群公私钥对,交易发送方根据交易接收方的永久公钥地址生成用于本次交易的一次性随机地址;
8.s2、交易生成:交易发送方对本次交易金额以及交易后的余额和交易前的余额进行加密,同时对交易金额进行零知识证明,将交易接收方生成的用于本次交易的一次性随机地址、交易金额密文、交易前后的账户余额密文以及零知识证明组成交易消息列表,交易发送方对交易消息列表进行群签名,并将交易广播到区块链中;
9.s3、交易验证上链:矿工接收到广播在区块链上的交易,对交易发送方身份合法性和交易金额合法性进行验证,若两者验证均通过,则表明本次交易合法,将本次交易打包成区块并上链;若验证未通过,则表明本次交易不合法,拒绝打包上链;
10.s4、交易追踪:当交易产生纠纷或者出现违法犯罪行为时,监管者可以对交易发送方、交易接收方和交易金额进行追踪,能够快速查找到参与方的不规范行为;
11.s5、系统维护:当用户主动退出群或者由于不合法行为被踢出群时,群管理员可以对群成员执行撤销操作,在本次交易顺利完成之后,交易接收方可以将本次的交易金额从一次性随机地址中转移到自己的常用账户下。
12.进一步的,所述步骤s1的具体子步骤如下:
13.s11、初始化参数,输入安全系数,输出系统的初始化参数,初始化一个空的撤销列表,用来存储撤销用户的撤销标记;
14.s12、交易发送方注册申请,交易发送方向群管理员提出注册申请,群管理员核实其身份后,同意其加群申请,并记录其身份信息,群管理员和监管者商定主密钥,根据主密钥对生成群密钥对,至此交易发送方加群成功;
15.s13、生成一次性随机地址,交易发送方根据交易接收方的永久公钥地址生成用于本次交易的一次性随机地址。
16.进一步的,所述步骤s2的具体子步骤如下:
17.s21、交易金额加密,监管者生成用于同态加密的公私钥对,并将公钥发送给交易发送方,交易发送方用公钥对本次交易金额、交易前的账户余额和交易后的账户余额进行加密;
18.s22、零知识证明生成,交易发送方使用范围证明生成本次交易金额的零知识证明,在不泄露交易金额相关信息的前提下,使矿工相信交易金额是在某个正值范围区间内;
19.s23、群签名生成,将交易接收方生成的用于本次交易的一次性随机地址、交易金额密文、交易前的账户余额密文、交易后的账户余额密文以及零知识证明组成交易消息列表,交易发送方对交易消息列表进行群签名,并将交易广播到区块链中。
20.进一步的,所述步骤s3的具体子步骤如下:
21.s31、交易发送方身份合法性验证,矿工接收到广播在区块链上的交易,验证交易消息列表的群签名是否是群中的某一用户所签名的,若验证通过,则表明交易发送方的身份信息合法;若验证未通过,则表明交易发送方的身份信息不合法;
22.s32、交易金额合法性验证,矿工利用同态加密的加同态性,验证交易发送方交易前的账户余额信息是否等于交易的金额和交易后的账户余额信息之和,同时对零知识证明进行验证,判断交易金额是否在一个正值范围区间内;
23.s33、打包上链,通过步骤s31和s32,对交易发送方身份合法性和交易金额合法性均验证通过,将本次交易信息打包成区块并上链,至此本次交易完成。
24.进一步的,所述步骤s4的具体子步骤如下:
25.s41、交易发送方的追踪,当监管者要核实群签名信息的来源时,向群管理员提出打开群签名的申请,群管理员核实监管者的身份,用主公钥加密所持有的用户身份信息,监管者用主密钥解密,获得用户身份信息,从而追踪到交易发送方的真实身份信息;
26.s42、交易接收方的追踪,监管者根据所持有的交易接收方的共享密钥,计算交易接收方的一次性随机地址是否与本次的交易地址一致,从而追踪到交易接收方的真实身份信息;
27.s43、交易金额的追踪,监管者用同态加密的私钥解密交易金额的密文信息,即可
获得相对应的明文信息,从而追踪到交易金额的相关信息。
28.进一步的,所述步骤s5的具体子步骤如下:
29.s51、群成员撤销,当用户想要主动退出群,或者由于不合法的行为被踢出群时,群管理员执行撤销操作,将用户的身份信息和私钥信息加入撤销列表,并将其记录为“已作废标记”,然后发布新的撤销列表;
30.s52、交易金额转移,交易接收方确认自己是本次交易的接收方后,计算一次性私钥和交易的一次性随机地址,用一次性私钥签署本次交易,生成转移函数,将一次性随机地址的交易金额转到自己的常用账户地址下。
31.与现有技术相比,本发明具有如下的有益效果:
32.1、本发明解决了区块链交易场景中存在的隐私性和监管性无法同时兼顾的问题,提出了基于同态加密和零知识证明的可监管交易隐私保护方法,实现了隐私性、安全性和可监管性之间的平衡。
33.2、本发明采用同态加密算法,在基于账户模型的联盟区块链中,通过同态加密的加同态性,在不解密的前提下,对交易金额和交易前后的账户余额进行计算,既保证了隐私性,又在一定程度上确保交易的合法性。
34.3、本发明使用范围证明,在不泄露交易金额相关信息的前提下,验证交易金额在某个正值区间,防止恶意用户使用负值金额进行转账,规范了交易行为。
附图说明
35.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
36.图1为本发明基于同态加密和零知识证明的可监管交易隐私保护方法的整体架构图。
37.实施方式
38.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整性地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
39.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
40.如图1本发明实施例提供了基于同态加密和零知识证明的可监管交易隐私保护方法;
41.基于同态加密和零知识证明的可监管交易隐私保护方法,包括:
42.s1、系统初始化:公布系统的初始化参数并初始化一个空的撤销列表,交易发送方向群管理员提出入群申请,群管理员根据主密钥对生成交易发送方的公私钥对以及群公私钥对,交易发送方根据交易接收方的永久公钥地址生成用于本次交易的一次性随机地址;
43.具体而言,在本发明实施例中,步骤s1包括以下步骤:
44.s11、初始化参数,输入安全系数λ,输出系统的初始化参数pp={λ,g1,g2,g,h,g1,g2,g
t
,h1,h2},g1和g2是加法循环群,g
t
是乘法循环群,g1、g2和g
t
的阶都是大素数n,g1、g2分别为群g1、g2的生成元,g、h∈g
t
,h1、h2为杂凑函数的派生密码函数;初始化一个空的撤销列表rl,用来存储撤销用户的撤销标记;
45.s12、交易发送方注册申请,交易发送方向群管理员提出注册申请,群管理员核实交易发送方的身份后,同意其加群申请,并记录交易发送方的身份信息id
ts
,群管理员和监管者商定ks∈[1,n-1]作为主密钥,则主公钥为ps=ks
·
g2,即主密钥对(ks,ps);
[0046]
群标识idg=id
gm
||id
ra
,其中id
gm
和id
ra
分别是群管理员和监管者的身份信息;
[0047]
计算t1=h1(id
ts
||hid,n)+ks,d1=ks
·
t
1-1
,得发送方的私钥ds
ts
=d1·
g1;
[0048]
t2=h1(idg||hid,n)+ks,得群私钥dsg=d2·
ds
ts
;
[0049]
交易发送方加群成功,其群密钥对为(ds
ts
,dsg,id
ts
,idg);
[0050]
s13、生成一次性随机地址,g是椭圆曲线上的一基点,p是其质数阶,hs是密码学哈希函数,交易发送方根据交易接收方的永久公钥地址为(a,b),选择随机数r∈[1,p-1],计算r=rg,计算一次性随机地址address=hs(ra)g+b,广播r和address。
[0051]
s2、交易生成:交易发送方对本次交易金额以及交易后的余额和交易前的余额进行加密,同时对交易金额进行零知识证明,将交易接收方生成的用于本次交易的一次性随机地址、交易金额密文、交易前后的账户余额密文以及零知识证明组成交易消息列表,交易发送方对交易消息列表进行群签名,并将交易广播到区块链中;
[0052]
具体而言,在本发明实施例中,步骤s2包括以下步骤:
[0053]
s21、交易金额加密,监管者随机选取两个大素数p、q满足gcd(pq,(p-1)(q-1))=1;计算n=pq,λ=lcm(p-1,q-1),其中lcm表示求取最小公倍数;随机选择整数定义函数计算μ=(l(g
λ
modn2))-1
modn;由此生成公钥pk=(n,g),私钥sk=(λ,μ);交易发送方输入本次交易金额的明文消息m和公钥pk,选择随机数r∈(0,n),输出密文cm=g
mrn
modn2;对交易前账户余额和交易后账户余额的加密与此类似;
[0054]
s22、零知识证明生成,交易发送方构造a
l
、ar,使其满足《a
l
,2n》=m,ar=a
l-1n;构造一个a
l
、ar的承诺
[0055]
随机选取盲因子s
l
、sr,构造一个s
l
、sr的承诺
[0056]
y=h1(ca,cs),z=h1(ca,cs,y);
[0057]
随机选τ1、τ2,构造τ1、τ2的承诺i∈{1,2};
[0058][0059][0060]
t(x)=《l(x),r(x)》=t0+t1·
x+t2·
x2;
[0061]
τ(x)=τ2·
x2+τ1·
x+z2·
r,r是随机选取的,并且r∈z
p
;
[0062]
计算μ=α+ρ
·
x,生成关于m的承诺cm=g
rhm
;
[0063]
由此,零知识证明:η={τ(x),μ,t(x),l(x),r(x),cm};
[0064]
s23、群签名生成,交易发送方将本次交易产生的一次性随机地址address、零知识证明η,交易金额的密文信息cm,交易后的账户密文信息c
δm
和交易前的账户密文信息cm组成交易消息列表m
tx
={address,cm,c
δm
,cm,η},对交易消息列表m
tx
进行群签名;
[0065]
计算gs=e(g1,ps),随机取h
tx
=h2(m
tx
||w,n);
[0066]
s1=(r
1-1
)(r
2-h
tx
)
·
ds
ts
,s2=(r
1-1
)(r
2-h
tx
)
·
dsg;
[0067]
h1=h1(id
ts
||hid,n),p
tx
=(h1·
g2+ps)
·
r1;
[0068]
得到交易发送方对m
tx
的群签名:sign=(h
tx
,p
tx
,s1,s2),并将交易广播到区块链中。
[0069]
s3、交易验证上链:矿工接收到广播在区块链上的交易,对交易发送方身份合法性和交易金额合法性进行验证,若两者验证均通过,则表明本次交易合法,将本次交易打包成区块并上链;若验证未通过,则表明本次交易不合法,拒绝打包上链;
[0070]
具体而言,在本发明实施例中,步骤s3包括以下步骤:
[0071]
s31、交易发送方身份合法性验证,矿工对接收到的交易消息列表m
tx
'及其群签名sign'=(h
tx
',p
tx
',s1',s2'),验证其签名用户是否为群idg中的某一成员;
[0072]
计算h2=h1(idg||hid,n),p2=h2·
g2+ps,u1=e(s2,p2),u2=e(s1,ps),判断u1和u2是否相等。若不相等,则验证不通过,拒绝打包交易;
[0073]
若相等,则继续计算u=e(s1,p
tx
),gs=e(g1,ps),'
[0074]
w=u
·
t,h
tx
=h2(m
tx
'||w',n),判断h
tx
'和h
tx
是否相等,若相等,则可证明该消息是由群idg中的某个成员所签名的,发送方的身份信息得以验证;
[0075]
s32、交易金额合法性验证,矿工利用paillier同态加密的加同态性,验证交易发送方交易前的账户余额信息是否等于交易的金额和交易后的账户余额信息之和,即
[0076]
矿工对零知识证明η进行验证,判断交易金额m是否在一个正值范围区间内;
[0077]
判断
[0078]
根据a
l
、ar、s
l
、sr生成的承诺ca、cs,生成l(x)和r(x)的承诺
[0079]
若以上判断全部正确,则矿工确定交易发送方的交易金额m∈[0,2
n-1];
[0080]
s33、打包上链,矿工验证发送方身份和交易金额是合法的,将本次交易信息打包成区块并上链;矿工选一个随机数nounce,将前一区块的交易编号num
tx0
和交易哈希值hash(m
tx0
)加入到本次交易产生的区块中,区块包含以下内容:
[0081]
{nounce,num
tx0
,hash(m
tx0
),num
tx
,m
tx
,sign,idg,ps,address,r}
[0082]
将区块打包上链,至此本次交易完成。
[0083]
s4、交易追踪:当交易产生纠纷或者出现违法犯罪行为时,监管者可以对交易发送
方、交易接收方和交易金额进行追踪,能够快速查找到参与方的不规范行为;
[0084]
具体而言,在本发明实施例中,步骤s4包括以下步骤:
[0085]
s41、交易发送方的追踪,当监管者要核实群签名信息的来源时,监管者向群管理员提出打开群签名的申请,群管理员核实监管者的身份,用主公钥ps加密所持有的用户身份信息id
ts
,监管者用主密钥ks解密,获得用户身份信息id
ts
,计算用户私钥ds
ts
,从而追踪到签名用户的真实身份信息;
[0086]
s42、交易接收方的追踪,监管者通过所持有的共享密钥a,计算如果等式成立,则说明本次交易生成的一次性随机地址是根据交易接收方的地址所产生的,从而追踪到本次交易的接收方信息;如果等式不成立,对交易接收方的身份进行揭发;
[0087]
s43、交易金额的追踪,paillier同态加密的公私钥对(pk,sk)是由监管者生成的,监管者用私钥sk=(λ,μ)计算m=l(c
mλ
modn2)
·
μmodn,即可恢复出交易金额的明文消息m,实现了对交易金额的追踪。
[0088]
s5、系统维护:当用户主动退出群或者由于不合法行为被踢出群时,群管理员可以对群成员执行撤销操作,在本次交易顺利完成之后,交易接收方可以将本次的交易金额从一次性随机地址中转移到自己的常用账户下。
[0089]
具体而言,在本发明实施例中,步骤s5包括以下步骤:
[0090]
s51、群成员撤销,当用户想要主动退出群,或者由于不合法的行为被踢出群时,群管理员执行撤销操作,将用户的身份信息和私钥信息加入撤销列表rl,并将其记录为“已作废标记”,然后发布新的撤销列表rl;
[0091]
s52、交易金额转移,交易接收方确认自己是本次交易的接收方后,计算一次性私钥d
tr
=hs(a
·
r)+b和交易的一次性随机地址address=d
tr
·
g。交易接收方用一次性私钥d
tr
签署本次交易,生成转移函数,将一次性随机地址的交易金额转到自己的常用账户地址下。
[0092]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0093]
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
技术特征:
1.基于同态加密和零知识证明的可监管交易隐私保护方法,其特征在于,包括以下步骤:s1、系统初始化:公布系统的初始化参数并初始化一个空的撤销列表,交易发送方向群管理员提出入群申请,群管理员根据主密钥对生成交易发送方的公私钥对以及群公私钥对,交易发送方根据交易接收方的永久公钥地址生成用于本次交易的一次性随机地址;s2、交易生成:交易发送方对本次交易金额以及交易后的余额和交易前的余额进行加密,同时对交易金额进行零知识证明,将交易接收方生成的用于本次交易的一次性随机地址、交易金额密文、交易前后的账户余额密文以及零知识证明组成交易消息列表,交易发送方对交易消息列表进行群签名,并将交易广播到区块链中;s3、交易验证上链:矿工接收到广播在区块链上的交易,对交易发送方身份合法性和交易金额合法性进行验证,若两者验证均通过,则表明本次交易合法,将本次交易打包成区块并上链;若验证未通过,则表明本次交易不合法,拒绝打包上链;s4、交易追踪:当交易产生纠纷或者出现违法犯罪行为时,监管者可以对交易发送方、交易接收方和交易金额进行追踪,能够快速查找到参与方的不规范行为;s5、系统维护:当用户主动退出群或者由于不合法行为被踢出群时,群管理员可以对群成员执行撤销操作,在本次交易顺利完成之后,交易接收方可以将本次的交易金额从一次性随机地址中转移到自己的常用账户下。2.如权利要求1所述的基于同态加密和零知识证明的可监管交易隐私保护方法,其特征在于:所述步骤s1的具体子步骤如下:s11、初始化参数,输入安全系数,输出系统的初始化参数,初始化一个空的撤销列表,用来存储撤销用户的撤销标记;s12、交易发送方注册申请,交易发送方向群管理员提出注册申请,群管理员核实其身份后,同意其加群申请,并记录其身份信息,群管理员和监管者商定主密钥,根据主密钥对生成群密钥对,至此交易发送方加群成功;s13、生成一次性随机地址,交易发送方根据交易接收方的永久公钥地址生成用于本次交易的一次性随机地址。3.如权利要求1所述的基于同态加密和零知识证明的可监管交易隐私保护方法,其特征在于:所述步骤s2的具体子步骤如下:s21、交易金额加密,监管者生成用于同态加密的公私钥对,并将公钥发送给交易发送方,交易发送方用公钥对本次交易金额、交易前的账户余额和交易后的账户余额进行加密;s22、零知识证明生成,交易发送方使用范围证明生成本次交易金额的零知识证明,在不泄露交易金额相关信息的前提下,使矿工相信交易金额是在某个正值范围区间内;s23、群签名生成,将交易接收方生成的用于本次交易的一次性随机地址、交易金额密文、交易前的账户余额密文、交易后的账户余额密文以及零知识证明组成交易消息列表,交易发送方对交易消息列表进行群签名,并将交易广播到区块链中。4.如权利要求1所述的基于同态加密和零知识证明的可监管交易隐私保护方法,其特征在于:所述步骤s3的具体子步骤如下:s31、交易发送方身份合法性验证,矿工接收到广播在区块链上的交易,验证交易消息列表的群签名是否是群中的某一用户所签名的,若验证通过,则表明交易发送方的身份信
息合法;若验证未通过,则表明交易发送方的身份信息不合法;s32、交易金额合法性验证,矿工利用同态加密的加同态性,验证交易发送方交易前的账户余额信息是否等于交易的金额和交易后的账户余额信息之和,同时对零知识证明进行验证,判断交易金额是否在一个正值范围区间内;s33、打包上链,通过步骤s31和s32,对交易发送方身份合法性和交易金额合法性均验证通过,将本次交易信息打包成区块并上链,至此本次交易完成。5.如权利要求1所述的基于同态加密和零知识证明的可监管交易隐私保护方法,其特征在于:所述步骤s4的具体子步骤如下:s41、交易发送方的追踪,当监管者要核实群签名信息的来源时,向群管理员提出打开群签名的申请,群管理员核实监管者的身份,用主公钥加密所持有的用户身份信息,监管者用主密钥解密,获得用户身份信息,从而追踪到交易发送方的真实身份信息;s42、交易接收方的追踪,监管者根据所持有的交易接收方的共享密钥,计算交易接收方的一次性随机地址是否与本次的交易地址一致,从而追踪到交易接收方的真实身份信息;s43、交易金额的追踪,监管者用同态加密的私钥解密交易金额的密文信息,即可获得对应的明文信息,从而追踪到交易金额的相关信息。6.如权利要求1所述的基于同态加密和零知识证明的可监管交易隐私保护方法,其特征在于:所述步骤s5的具体子步骤如下:s51、群成员撤销,当用户想要主动退出群,或者由于不合法的行为被踢出群时,群管理员执行撤销操作,将用户的身份信息和私钥信息加入撤销列表,并将其记录为“已作废标记”,然后发布新的撤销列表;s52、交易金额转移,交易接收方确认自己是本次交易的接收方后,计算一次性私钥和交易的一次性随机地址,用一次性私钥签署本次交易,生成转移函数,将一次性随机地址中的交易金额转到自己的常用账户地址下。
技术总结
基于同态加密和零知识证明的可监管交易隐私保护方法,属于区块链隐私保护技术领域,分为五个步骤:系统初始化、交易生成、交易验证上链、交易追踪和系统维护。本发明部署在联盟链上,采用群签名和一次性随机地址分别对交易发送方和交易接收方的身份进行隐藏;使用Paillier同态加密对交易金额进行隐藏;同时采用零知识证明规避负值的出现,实现交易金额合法性验证;在此基础上,引入监管者规范交易行为,防止无条件的交易隐私成为犯罪活动的天然保护壁垒。本发明不仅实现了交易发送方、交易接收方和交易金额三者的隐私保护,而且能够同时兼顾隐私性、安全性和可监管性三者之间的平衡问题。衡问题。衡问题。
技术研发人员:谢鹏寿 邵婉君 康永平 潘银昌 范心雨 冯涛 鲁晔 朱家锋 李晓烨
受保护的技术使用者:兰州理工大学
技术研发日:2023.04.20
技术公布日:2023/7/18
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
