一种面向联盟链的强匿名多跳锁定方法

文档序号:37826308发布日期:2024-04-30 17:35阅读:11来源:国知局
一种面向联盟链的强匿名多跳锁定方法

本发明属于信息安全,特别是一种面向联盟链的强匿名多跳锁定方法。


背景技术:

1、联盟链是由多个私有链组成的集群,由多个机构共同参与管理的区块链,每个组织或机构管理一个或多个节点,其数据只允许系统内不同的机构进行读写和发送。联盟链被广泛应用于金融、物联网、公益慈善、医疗健康、供应链等领域。以金融领域为例,联盟链无需第三方即可实现公平的代币交易。然而,代币的链上交易往往由多个脚本执行,脚本的存储和计算成本决定了其交易效率和中间费用。这导致链上交易的效率低下且费用较高,极大限制了联盟链的应用与推广。

2、支付通道(payment channels,pc)可使用户间的大部分支付在链下构建的通道进行,能有效缓解链上可扩展性低的问题。然而,目前多数pc协议均针对公有链进行构建,缺乏面向联盟链的具有隐私保护的相关协议。

3、哈希时间锁合约(hash time lock contracts,htlc)、匿名多跳锁(anonymousmulti-hop locks,amhl)等多跳锁定机制可用于构建多通道两方交易。这些协议可连接发送方和接收方之间的多个通道,保障通道中的交易金能准确无误的到达目的地址。然而,htlc是基于脚本实现的多跳锁定机制,存储代价和计算代价均较高。此外,虽然amhl能够实现无脚本化且解决了htlc中存在的安全和身份隐私问题,但其现有无脚本实例化协议仍未用于联盟链的匿名交易环境。


技术实现思路

1、针对上述问题,本发明公开了一种面向联盟链的强匿名多跳锁定方法,旨在解决现有多跳锁定机制无法用于联盟链匿名代币的问题,丰富支付通道网络的相关技术在联盟链代币交易方面的研究,从而使联盟链更能满足在金融、物联网、公益慈善、医疗健康、供应链等领域的隐私保护需求。

2、本发明的技术方案包括以下内容。

3、一种面向联盟链的强匿名多跳锁定方法,包括:

4、针对环签名群组,生成任意相邻用户的公私钥对;

5、基于任意相邻用户的所述公私钥对,初始化发送者u0到接收者un的通道路径后,发送者u0将第一个解锁密钥kn通过安全密钥传输通道发送给接收者un,并赋予所述通道路径中每一用户ui的身份标识,i为正整数;

6、在相邻用户就环签名群组的公钥集合、身份标识和要锁定的交易达成一致的情况下,产生相邻用户间通道交易的锁定值;

7、在所述锁定值通过验证的情况下,基于所述锁定值生成所述通道路径中每一用户ui的左身份标识和右身份标识;

8、基于身份标识、左身份标识和右身份标识,各用户ui利用接收到的右通道密钥ki生成其左通道密钥ki-1,以完成交易;其中,接收者un的右通道密钥kn为所述第一个解锁密钥kn。

9、进一步地,所述针对环签名群组,生成任意相邻用户的公私钥对,包括:

10、相邻用户输入公共参数,得到该相邻用户的共享公私钥对(x,pk);其中,所述公共参数包括:大素数q、包含q个元素的有限域循环群安全的密码杂凑函数h(·)、安全的密码杂凑函数h′(·)、承诺值生成函数a(·)、签名验证函数v(·)、签名生成函数z(·)、随机值值域δr中的群操作和该群操作⊙与该群操作的逆运算标识所述安全的密码杂凑函数h(·)的映射关系为所述安全的密码杂凑函数h′(·)的映射关系为

11、随机取样用户ui的临时私钥xi和用户ui+1的临时私钥xi+1,且使满足其中,用户ui和用户ui+1为相邻用户;

12、将公私钥对(xi,pk)和公私钥对(xi+1,pk)分别发送给用户ui和用户ui+1。

13、进一步地,所述基于任意相邻用户的所述公私钥对,初始化发送者u0到接收者un的通道路径后,发送者将第一个解锁密钥kn通过安全密钥传输通道发送给接收者,包括:

14、发送者u0随机取样自身证据并计算证据y0的声明值y0=a(y0);其中,(y0,y0)是一对困难关系,表示证据y0是从有限域中随机选值;

15、发送者u0随机取样通道路径中每一中间用户的证据并基于所述证据yi累进计算各中间用户的声明值yi;其中,n表示环签名群组中用户的总数量;

16、基于所述中间用户的声明值yi,所述发送者u0使用nizk算法给出各中间用户的声明stmti以及该声明stmti的证明值πi;

17、发送者u0将三元组(yi-1,yi,(πi,yi))通过安全密钥传输通道发送给中间用户ui,并将第一个解锁密钥通过安全密钥传输通道发送给接收者un。

18、进一步地,所述赋予所述通道路径中每一用户ui的身份标识,包括:

19、中间用户ui分别使用承诺值生成函数a(·)的同态属性检查所述三元组(yi-1,yi,(πi,yi))是否正确;

20、在所述三元组(yi-1,yi,(πi,yi))不正确的情况下,终止交互;

21、在所述三元组(yi-1,yi,(πi,yi))正确的情况下,返回证据y0、三元组(yi-1,yi,yi)以及((yn-1,0,0),kn)分别作为发送者u0、中间用户ui以及接收者un的身份标识

22、进一步地,所述在相邻用户就环签名群组的公钥集合、身份标识和要锁定的交易达成一致的情况下,产生相邻用户间通道交易的锁定值,包括:

23、用户ui+1计算其部分公钥pk1=a(ski+1),并确定一组随机选择的值zi以及公钥pk的索引j;

24、用户ui+1计算哈希h1=h′(pk)和部分标签i1=v(h1,xi+1),并使用随机选取的临时密钥计算对应承诺值r1=a(r1)⊙y′1和标签l1=v(h1,r1);其中,pk表示用户ui和用户ui+1组成的公钥集合,所述临时密钥r1∈δr是用户ui+1选择的随机秘密值,y′1为ui+1所持三元组的第一个元素yi-1及ui所持三元组的中间元素;

25、用户ui+1通过非交互式零知识证明算法,生成所述临时密钥r1的证明值π′1←pnizk(r1,stmti+1),并通过承诺算法生成语句承诺com和解承诺值decom后,将(pk1,j,i1,zi,l1,com)元组发送给用户ui;

26、用户ui先利用所述承诺值生成函数a(·)的同态性对所述用户ui+1的身份验证成功后,计算哈希h0=h′(pk)和部分标签i0=v(h0,xi),并使用随机选取的临时密钥计算对应承诺值r0=a(r0)⊙y0和标签l0=v(h0,r0);其中,临时密钥r0∈δr是用户ui选择的随机秘密值,且该临时密钥r0与所述临时密钥r1满足且

27、用户ui通过非交互式零知识证明算法,生成所述临时密钥r0的证明值π′0←pnizk(r0,stmti)后,将(i0,r0,l0,π′0)元组发送给用户ui+1;

28、在用户ui+1验证所述证明值π′0正确的情况下,计算随机挑战值集合cj+1=h(pk||r0⊙r1||l0⊙l1||tx),并通过从j+1到j-1循环计算承诺值ri=a(zi)⊙y′1⊙v(pki,ci)、标签li=v(h1,zi)⊙v(i1,ci)和挑战值ci+1=h(pk||ri||li||tx);其中,tx表示要锁定的交易;

29、用户ui+1计算部分签名值z=z(xi+1,r1,2cj),并将元组(decom,r1,π′1,z)发送给用户ui

30、用户ui验证所述用户ui+1的承诺值ri、知识证明π′1、随机挑战值集合cj+1、随机值集合ci+1以及签名值z,并在验证通过的情况下,生成用户ui+1和用户ui间通道交易的锁定值

31、用户ui+1验证所述锁定值zj。

32、进一步地,所述在所述锁定值通过验证的情况下,基于所述锁定值生成所述通道路径中每一用户ui的左身份标识和右身份标识,包括:

33、用户ui+1将锁定值zj按序并入随机值集合z,返回((tx,pk={pk1,...,pkn},y′1,c1,i=i0⊙i1),(r0⊙r1||l0⊙l1,z)),并将(r0⊙r1||l0⊙l1,z)作为用户ui+1的左标识

34、用户ui将锁定值zj按序并入随机值集合z,返回((tx,pk={pk1,...,pkn},y0,c1,i=i0⊙i1),(r0⊙r1),z),并将所述随机值集合z作为所述用户ui的右标识

35、进一步地,所述基于身份标识、左身份标识和右身份标识,各用户ui利用接收到的右通道密钥ki生成其左通道密钥ki-1,以完成交易,包括:

36、基于身份标识、左身份标识和右身份标识,各用户ui利用接收到的右通道密钥ki生成其左通道密钥ki-1;

37、基于所有左通道密钥ki-1对所述通道路径中的各锁定值进行解锁,使得每个中间用户ui获取到其左通道的完整交易签名;

38、最终所有通道的完整交易签名均已生成,交易完成。

39、进一步地,所述基于身份标识、左身份标识和右身份标识,各用户ui利用接收到的右通道密钥ki生成其左通道密钥ki-1,包括:

40、在用户ui接收到右通道密钥ki之后,结合所述用户ui的左身份标识、身份标识、右身份标识分别解析为(w0,w1),(yi′,yi,yi)和(ri,si);其中,w0=(r0⊙r1||l0⊙l1),w1=z;

41、分别提取当前通道和后一通道特定位置的锁定值和后,对锁定值进行更新,得到更新后的锁定值其中,对于用户ui,zj为其参与左通道协商生成的锁定值,z为掺入zj的随机值集合,jth为zj在集合z中的位置,sr为其参与右通道协商生成的锁定值,为掺入sr的随机值集合,vth为sr在集合中位置,sk为sr解锁后的值;

42、用户ui将更新后的锁定值zj置于w0集合中,并返回(ri-1,si-1)作为左通道密钥ki-1;

43、所述用户ui验证所述解锁密钥ki-1的有效性。

44、进一步地,,所述用户ui验证所述解锁密钥ki的有效性,包括:

45、计算锁定信息li=(tx,pk={pk1,...,pkn},y0,c1,i=i0⊙i1);

46、将锁定信息li和解锁密钥ki分别解析为(tx,pk,yi,c1,i)和(ri,si);

47、针对i从1到n循环计算ri=a(zi)⊙yi⊙v(pki,ci),li=v(h,zi)⊙v(i,ci)和ci+1=h(pk||ri||li||tx);其中,i=n跳出循环;

48、在c1=h(pk||rn||ln||tx)成立时,判定所述解锁密钥ki有效。

49、进一步地,,所述方法还包括:

50、在一对相邻用户多次审查锁定值时,若锁定信息中的标签相等,则判定为锁定;否则,判定为未锁定。

51、与现有技术相比,本发明至少具有以下优势:

52、本发明利用适配器签名和可链接环签名的特殊结构提出新的强匿名多跳锁定机制,即利用适配器签名以保证交易传递时的原子性,并利用可链接环签名结构以保证具有可适配门罗币的强匿名性,丰富了原子交换技术在匿名代币交易方面的研究,保障了交易双方的交易公平及交易路径上各中间用户的利益不受侵犯。

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