当前位置: 首页 > 专利查询>陈庆生专利>正文

一种具有双混币机制的区块链交易方法及系统技术方案

技术编号:34017011 阅读:31 留言:0更新日期:2022-07-02 16:00
本发明专利技术涉及一种具有双混币机制的区块链交易方法及系统,本发明专利技术对参与混币交易的数字币输入、输出地址分别执行洗牌策略,通过双混币机制避免输入地址因群内公开导致参与者身份被追踪的情况发生,任何第三方都无法通过公布的地址列表确认各地址的所有者身份,也无法获知输入、输出地址之间的映射关系,保证交易具有绝对的隐私性。以生成的一次性随机地址作为当前混币交易提案的唯一伪身份标识,利用用户自定义的伪身份标识参与完成各阶段的数字签名,且该伪身份标识只在指定的一次混币交易提案中有效,使得与用户相关的任何身份属性信息都未被公开,攻击者从这些随机性参数中无法获得任何有价值的身份信息,进一步提高了安全性。性。性。

【技术实现步骤摘要】
一种具有双混币机制的区块链交易方法及系统


[0001]本专利技术涉及区块链隐私保护技术,具体涉及一种具有混币机制的区块链交易方法及系统。

技术介绍

[0002]区块链作为一种分布式账本,因其具有去中心化、不可篡改、可溯源以及公开性等特点受到人们越来越多的关注,并在金融、医疗、政府服务等诸多行业得到广泛应用。但随着区块链技术的不断发展,其面临的隐私泄露问题也越发突出。在区块链数字币中隐私性安全问题的主要原因在于用户的交易地址被获知,使得攻击者可以有规律地绘制出交易图谱,并以此追溯用户的真实身份信息。目前,混币机制是区块链网络层进行隐私保护的典型方案,通过不同用户相互交换资产的方式将交易者之间的关系分散到不相关的地址中,隐藏区块链的交易过程以增加攻击者的分析难度,达到隐私保护的目的。根据混币过程中有无第三方参与,将已有的混币机制分为两大类:一类是以MixCoin、BlindCoin等代表的中心化混币交易模式,用户需要通过提供混币服务的提供商来实现混币交易,虽然其在一定程度上能够解决地址混淆的目的,但无法保证第三方混币服务提供商的可信度,不可避免的会因中心化服务给用户带来一定的安全隐患;另一类是以CoinJoin和CoinShuffle为代表的去中心化混币交易模式,用户无需第三方服务商参与就能够完成地址混淆,从根本上解决了中心化混币模式存在的可信度问题。
[0003]最早出现的去中心化混币方案是Maxwell提出的CoinJoin机制,其核心是通过将多个交易合并成一个交易,隐藏输入地址和输出地址的关联,形成多输入对多输出的混合交易,整个方案避免了中心化混币机制中一些隐私泄露的问题,但是CoinJoin机制仍然需要一个代理节点来执行混币交易过程(一般是由混币交易的发起者作为代理节点),这也在一定程度上破坏了区块链去中心化的特性,如果代理节点不诚实就会泄露其他节点的隐私,或者执行违规操作使系统无法正常工作。
[0004]针对CoinJoin机制的缺陷,Ruffing等人提出了一种完全去中心化的数字币混合机制—CoinShuffle,在CoinJoin协议框架之上设计了一种输出地址洗牌机制,需要一组用户共同生成一笔混币交易,每个用户都可以确认在这笔交易中自己所需要交易的金额及地址的有效性,如果无效则可以不进行签名,且只有所有交易方都参与了签名后该混币交易才能生效。CoinShuffle能够在不需要第三方的条件下完成混币过程,还能保证混币参与方不知道其他交易方的对应关系。但CoinShuffle对于输入地址始终是公开的,参与混币交易的参与者之间不具有隐私保护功能,容易被不诚实的参与者节点攻击。

技术实现思路

[0005]为了克服CoinShuffle隐私交易机制存在着上述安全性问题,本专利技术提供一种新型的区块链交易方法及系统,通过对输入、输出货币执行双重随机混币策略,能够完全隐藏交易多方的真实身份,防止被追踪。本专利技术的交易方法包括以下五个阶段:
[0006]公布阶段:每个参与者分别生成临时公私钥对和随机公私钥地址对,随机公钥地址存储交易承诺,该交易承诺由混币交易参数和参与者身份参数关联生成,向其他参与者广播临时公钥和随机公钥地址;
[0007]一次洗牌阶段:第一个参与者提取排序在其后的其他参与者临时公钥,按逆序分层加密本地选定的数字币输入地址,并将密文添加到第一密文集后发送给第二个参与者,第二个参与者利用自身临时私钥从密文中剥离出一层加密层,继续添加本地生成的密文到第一密文集,对第一密文集洗牌后发送给第三个参与者,重复执行解密、密文添加、洗牌及密文集传递操作,直到最后一个参与者对密文解密后获得无序的输入地址列表,将列表广播给其他参与者;
[0008]二次洗牌阶段:最后一个参与者提取排序在其前的其他参与者临时公钥,按正序分层加密本地选定的数字币输出地址,并将密文添加到第二密文集后发送给倒数第二个参与者,倒数第二个参与者利用自身临时私钥从密文中剥离出一层加密层,继续添加本地生成的密文到第二密文集,对第二密文集洗牌后发送给倒数第三个参与者,重复执行解密、密文添加、洗牌及密文集传递操作,直到第一个参与者对密文解密后获得无序的输出地址列表,将列表广播给其他参与者;
[0009]承诺验证阶段:每个参与者在确认两个密文集中分别含有本地选定的数字币输入和输出地址后,利用本地的随机私钥地址对混币交易参数和参与者身份参数签名后广播给其他参与者,其他参与者利用广播者的随机公钥地址验签,在确认签名为真时由混币交易参数和参与者身份参数关联生成承诺值,将承诺值与随机公钥地址中存储的交易承诺比较,如果一致则承诺验证为真,否则承诺验证为假;
[0010]交易提交阶段:每个参与者在验证其他参与者的承诺均为真时,创建包含有输入和输出地址列表的本地交易数据,利用本地的随机私钥地址对本地交易数据签名后广播给其他参与者,其他参与者利用广播者的随机公钥地址验签,在验签其他参与者的签名均为真时,将所有参与者的本地交易数据添加到交易数据集内并提交到区块链网络。
[0011]进一步优选地,所述的公布阶段具体包括:
[0012]第i个参与者生成临时公私钥对(a
pk,i
,a
sk,i
)、随机数r
i
、两个盲化因子s
i
和k
i
,利用数字币输入地址INPUT
pk,i
生成随机公钥地址b
pk,i

[0013]b
pk,i
=r
i
G+INPUT
pk,i
[0014]利用数字币输入地址INPUT
pk,i
对应的私钥INPUT
sk,i
生成随机私钥地址b
sk,i

[0015]b
sk,i
=r
i
+INPUT
sk,i
[0016]其中,G表示一条指定椭圆曲线的基点,是一个给定的公开参数;
[0017]利用盲化因子s
i
生成两个承诺分量t
1,i
和t
2,i

[0018][0019][0020]利用盲化因子k
i
生成交易承诺cm
i

[0021][0022]其中,τ1和τ2表示混币交易的双向会话标识符,v
i
表示第i个参与者输出的币值;
[0023]利用随机私钥地址b
sk,i
生成关于临时公钥a
pk,i
的签名:
[0024]σ
i,1
=Sig(b
sk,i
,(a
pk,i
,1,τ1))
[0025]将签名σ
i,1
、临时公钥a
pk,i
和随机公钥地址b
pk,i
广播给其他参与者,其他参与者利用第i个参与者的随机公钥地址b
pk,i<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种具有双混币机制的区块链交易方法,其特征在于,包括:公布阶段:每个参与者分别生成临时公私钥对和随机公私钥地址对,随机公钥地址存储交易承诺,该交易承诺由混币交易参数和参与者身份参数关联生成,向其他参与者广播临时公钥和随机公钥地址;一次洗牌阶段:第一个参与者提取排序在其后的其他参与者临时公钥,按逆序分层加密本地选定的数字币输入地址,并将密文添加到第一密文集后发送给第二个参与者,第二个参与者利用自身临时私钥从密文中剥离出一层加密层,继续添加本地生成的密文到第一密文集,对第一密文集洗牌后发送给第三个参与者,重复执行解密、密文添加、洗牌及密文集传递操作,直到最后一个参与者对密文解密后获得无序的输入地址列表,将列表广播给其他参与者;二次洗牌阶段:最后一个参与者提取排序在其前的其他参与者临时公钥,按正序分层加密本地选定的数字币输出地址,并将密文添加到第二密文集后发送给倒数第二个参与者,倒数第二个参与者利用自身临时私钥从密文中剥离出一层加密层,继续添加本地生成的密文到第二密文集,对第二密文集洗牌后发送给倒数第三个参与者,重复执行解密、密文添加、洗牌及密文集传递操作,直到第一个参与者对密文解密后获得无序的输出地址列表,将列表广播给其他参与者;承诺验证阶段:每个参与者在确认两个密文集中分别含有本地选定的数字币输入和输出地址后,利用本地的随机私钥地址对混币交易参数和参与者身份参数签名后广播给其他参与者,其他参与者利用广播者的随机公钥地址验签,在确认签名为真时由混币交易参数和参与者身份参数关联生成承诺值,将承诺值与随机公钥地址中存储的交易承诺比较,如果一致则承诺验证为真,否则承诺验证为假;交易提交阶段:每个参与者在验证其他参与者的承诺均为真时,创建包含有输入和输出地址列表的本地交易数据,利用本地的随机私钥地址对本地交易数据签名后广播给其他参与者,其他参与者利用广播者的随机公钥地址验签,在验签其他参与者的签名均为真时,将所有参与者的本地交易数据添加到交易数据集内并提交到区块链网络。2.根据权利要求1所述的具有双混币机制的区块链交易方法,其特征在于,所述的公布阶段具体包括:第i个参与者生成临时公私钥对(a
pk,i
,a
sk,i
)、随机数r
i
、两个盲化因子s
i
和k
i
,利用数字币输入地址INPUT
pk,i
生成随机公钥地址b
pk,i
:b
pk,i
=r
i
G+INPUT
pk,i
利用数字币输入地址INPUT
pk,i
对应的私钥INPUT
sk,i
生成随机私钥地址b
sk,i
:b
sk,i
=r
i
+INPUT
sk,i
其中,G表示一条指定椭圆曲线的基点,是一个给定的公开参数;利用盲化因子s
i
生成两个承诺分量t
1,i
和t
2,i
::利用盲化因子k
i
生成交易承诺cm
i

其中,τ1和τ2表示混币交易的双向会话标识符,v
i
表示第i个参与者输出的币值;利用随机私钥地址b
sk,i
生成关于临时公钥a
pk,i
的签名:σ
i,1
=Sig(b
sk,i
,(a
pk,i
,1,τ1))将签名σ
i,1
、临时公钥a
pk,i
和随机公钥地址b
pk,i
广播给其他参与者,其他参与者利用第i个参与者的随机公钥地址b
pk,i
验证签名:Verify(b
pk,i
,σ
i,1
)其中,Sig()表示签名函数,Verify()表示验签函数;在确认签名有效后将随机公钥地址b
pk,i
和临时公钥a
pk,i
关联存储到本地。3.根据权利要求2所述的具有双混币机制的区块链交易方法,其特征在于,所述的一次洗牌阶段具体包括:第i个参与者接收第i

1个参与者的密文集C
i
‑1和签名σ
i

1,2
,利用第i

1个参与者的随机公钥地址b
pk,i
‑1验证签名:Verify(b
pk,i
‑1,σ
i

1,2
)在确认签名有效后,利用临时私钥a
sk,i
解密密文集C
i
‑1,得到剥离加密层的密文集:C

i
‑1=Dnc(a
sk,i
,C
i
‑1)其中,Dnc()表示解密函数;生成本地选定的数字币输入地址INPUT
pk,i
的分层加密密文:c
i
=Enc(a
pk,i+1
,Enc(a
pk,i+2
,...Enc(a
pk,n
,INPUT
pk,i
)...))其中,1<i<n,n为混币交易的参与者总数,Enc()表示加密函数;将密文c
i
加入到密文集C

i
‑1并重新洗牌后获得密文集C
i
,利用随机私钥地址b
sk,i
生成关于密文集C
i
的签名:σ
i,2
=Sig(b
sk,i
,(C
i
,2,τ1))将密文集C
i
和签名σ
i,2
一起发送给第i+1个参与者;重复执行以上过程,直至第n个参与者将自身的数字币输入地址也添加到解密的密文集后,获得无序的输入地址...

【专利技术属性】
技术研发人员:陈庆生黄立新刘超
申请(专利权)人:陈庆生
类型:发明
国别省市:

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

1