Page 354 - 《软件学报》2021年第7期
P. 354

2272                                     Journal of Software  软件学报 Vol.32, No.7,  July 2021

                    目前,协同混币技术可大致分为两类:中心化混币和去中心化混币.
                    在中心化混币方案中,第三方独立机构充当混淆器,参与混币的交易发送方首先将数字货币发送给第三方
                 机构,第三方机构对交易进行混淆,然后将同等额度的数字货币转移给交易接收方.很多网站,如 Blockchain.
                 info、BitCoin Fog 等均提供在线的混淆服务      [44,45] .但这一方案的问题在于混淆服务的提供者本身掌握用户输入
                 输出地址的对应关系,存在隐私泄露隐患.为了提高混币机构的作恶成本,Bonneau 和 Narayanan 等人提出了
                 MixCoin 方案,增加了混币过程的可审计性           [46] .用户在与第三方机构协商混币的过程中,会获得机构对混币金
                 额、代理地址、输出地址、混币时限等信息的签名担保(warranty).在用户完成对代理地址的支付后,一旦机构
                 未按照约定完成对输出地址的支付,则用户可公布该机构的失信行为和担保信息,从而警示其他交易者.虽然这
                 一方案通过信誉机制提高了混币服务机构的作恶成本,但输入、输出地址的对应关系对第三方机构仍然是可见
                 的.针对这一问题,Valenta 和 Rowan 提出了 BlindCoin 方案,在 MixCoin 的基础上引入盲签名技术进行优化                 [47] .
                 盲签名技术最早是由 Chaum 在 eCash 的设计中提出来的             [48] ,它是一种签名者对签名消息不可见、签名结果不
                 可追踪的数字签名方案.消息发送者首先将消息进行盲化,而后让签名者对盲化的消息进行签名,最后发送者对
                 签名信息进行脱盲操作,获得原始消息的签名.BlindCoin 方案中引入了一个公开日志(log)用于记录交互信息,
                 用户首先将盲化后的输出地址交由混币机构签名,在完成代理地址转账确认后,将脱盲后的输出地址和签名信
                 息公布在公开日志中,最后由混币机构按照输出地址完成支付交易.Heilman 和 Baldimtsi 等人也基于盲签名技
                 术提出了 Blind Signed Contract 方案 [49] .Blind Signed Contract 方案通过引入中间机构将交易发送发的比特币转
                 化为机构盲签名发行的匿名代币 V=(sn,),交易双方通过中间机构和匿名代币为中介来完成支付.由此可见,在
                 中心化混币方案中,中间机构充当了混淆器的角色来完成交易混淆,虽然对外部观察者而言,交易身份具有不可
                 链接性,但中间机构却可掌握混币交易发送方和接收方的身份链接关系.
                    去中心化混币方案则采取了去掉第三方机构的方法来规避隐私泄露风险.在去中心化方案中,互不信任的
                 用户无需依赖第三方,可以自由组合来构建混币交易.由 Maxwell 首次提出的 Coinjoin                    [50] 是目前典型的去中心
                 化混币方案.其基本思想是:想要混合他们比特币的用户产生一个单独的混合交易,其包含用户的当前地址作为
                 输入并且洗牌的新地址作为输出.它描述了一种特殊的交易:当一个用户希望发起一笔交易时,他可以寻找另外
                 一个想要发起交易的用户,一起构建一个联合交易.如图 10 所示,如果有用户 A 想转账给用户 C,用户 B 想转账
                 给用户 D,则通过 Coinjoin,他们可以将两笔交易结合成一笔交易.交易包含两个输入:A 和 B 以及两个输出:C 和
                 D.输入和输出的顺序是完全随机的,C 或 D 可能收到 A 的转账或是 B 的转账,或是 A 和 B 两人的转账.这样就削
                 弱了对交易输入和输出的关联分析.同时,参与 Coinjoin 交易的用户越多,交易的混淆程度就越高,参与用户还可
                 商定一个统一的输出大小以增加隐私性.目前,Coinjoin 已在 Dark Wallet、JoinMarket、DashCoin 中得以实现.












                                                Fig.10    Mechanism of CoinJoin
                                                  图 10   CoinJoin 工作原理
                    虽然 Coinjoin 交易对外是不可链接的,但是对参与 Coinjoin 交易的用户来说,由于每个用户都必须对交易
                 进行签名,所以每个用户都知道其他用户的交易信息.因此,Coinjoin 交易不满足内部不可链接性.为了解决这一
                 问题,Ruffing 和 Moreno-sanchez 等人提出了 CoinShuffle 方案 [51] .CoinShuffle 不仅可以允许去中心化的 Coinjoin
                 交易,还可以保护交易内部各参与方的隐私.它的设计受到 Dissent                  [52] 中匿名群组消息协议的启发,对输出地址
   349   350   351   352   353   354   355   356   357   358   359