Page 355 - 《软件学报》2021年第7期
P. 355
姚前 等:区块链系统中身份管理技术研究综述 2273
的隐藏采用的是 Chaum 提出的级联加密方案 [53] ,从而使得交易混淆过程中输入、输出地址满足内部不可链接
性.CoinShuffle 方案如图 11 所示.每一个混币交易者都使用后续交易者的公钥对其输出地址进行级联加密 c i =
Enc((ek i+1 ,…,ek N ),vk i ),其中,ek 为交易者加密密钥,vk i 为输出地址.从第 1 个交易者开始顺序进行,每个交易者解
密前序地址并加密自己的地址加入洗牌向量中,最后一个交易者获得全部输出地址明文并完成交易构造.设用
户数为 n,则 CoinShuffle 方案执行的公钥加密次数为(n–1)·n/2–1;设原有地址大小为 s、加密后的地址大小为 s e ,
则混淆过程所产生的身份标识信息大小为 s e ·(n–1)+s.
Fig.11 Mechanism of CoinShuffle
图 11 CoinShuffle 工作原理
为了进一步提高 CoinShuffle 混币过程中的通信效率,Ruffing 等人进一步提出了 CoinShuffle++改进方
案 [54] .CoinShuffle++中混币用户的匿名群组通信采用了 DC-net(dining cryptographer net) [55] 的设计思想:假设在
3 个节点 P 1 、P 2 和 P 3 的群组通信过程中每一对节点(i,j)共享一个对称密钥 K ij .P 1 为了匿名发布消息 m,它发送
消息 M 1 =m⊕K 12 ⊕K 13 ,P 2 发布消息 M 2 =K 12 ⊕K 23 ,P 3 发布消息 M 3 =K 13 ⊕K 23 .观察者可通过计算 m=M 1 ⊕M 2 ⊕M 3
恢复出消息 m,但无法确认 m 是谁发送的.DC-net 方案较级联加密方案具有更高的效率,加密密文长度等于原文
长度,同时仍可确保混币过程中输入、输出地址的内部不可链接性.设用户数为 n,则 CoinShuffle++方案执行的
公钥加密次数为 n–1;设原有地址大小为 s、加密后的地址大小为 s e ,则混淆过程所产生的身份标识信息大小为
2
s e ·(n–1)·n+s=s·(n –n+1).
综上所述,协同混币技术在混淆过程中通过引入一组并发用户实现了交易接收方的身份隐藏,通过混淆机
制隐藏了混币交易中用户输入、输出地址(交易发送、接收方)间的对应关系.假设一个混币交易集合中的用户
数为 M,则对于外部观察者而言,准确确认交易接收方身份的概率为 1/M.因此,混币过程确保了输入、输出地址
的外部不可链接性.但在中心机构或自组织用户的混币交互过程中,不同混币方案在提供内部不可链接性方面
存在差异.在中心化混币方案中,直接混币和 MixCoin 中作为观察者的混淆器可查看所有的输入、输出地址的
对应关系,因此对混淆器而言系统并未提供身份隐私保护;在 BlindCoin 方案中,混币过程使用盲签名技术实现
了对中心混币机构的交易接收方身份隐藏;在 Blind Signed Contract 方案中,通过使用匿名代币实现了交易发送
方的身份隐藏.在去中心化混币方案中,CoinJoin 在混币过程中未对交易接收方采取隐藏措施,因此不具有内部
不可链接性;CoinShuffle 和 CoinShuffle++则通过匿名群组通信方案实现了交易接收方的身份隐藏,因此具有更
好的内部不可链接性.
协同混币技术在提供身份隐私保护的同时,也存在着一定的问题:首先,协同混币过程必须需要其他用户的