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

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

                 很好的隐私保护特性.但零币的隐私保护方案也存在一定的问题:首先,由于系统大量引入了零知识证明算法,
                 因此增加了交易操作的时间复杂度和空间复杂度.设 n 为算数电路门数,l 为证明实例大小,则 zk-SNARK 证明算
                 法的时间复杂度为 O(nlogn),验证算法的时间复杂度为 O(l);其次,zk-SNARK 在系统初始化时需要安全地生成
                 公共参数(public parameters),如果初始化各方私自留存秘密信息,则可以共谋伪造 zk-SNARK 证明证据从而伪
                 造新币,这给零币的安全隐私带来较大的威胁.文献[91]在公共参数生成过程中引入多方安全计算以提高生成
                 过程的安全性.目前系统初始化参数的可信生成问题仍有待进一步加以研究                           [92] ;此外,零币系统中也存在着透明
                 交易以及基础币和零币之间的转换交易,2019 年,Alex 等人在文献[93,94]工作的基础上进一步分析了通过交易
                 数据特征值及利用密码算法特点构建阈下信道从而发现交易关联性的身份隐私泄露风险                                 [95] .这进一步说明了
                 编码型数字资产在账本公开条件下实现隐私保护所面临的巨大挑战.















                                                 Fig.18   ZSL transaction model
                                                    图 18   ZSL 交易模型
                 4.5    无标识交易技术
                    无标识交易技术的典型代表为 MimbleWimble 协议               [96] .2016 年 7 月,化名作者 Jedusor 首次提出了
                 MimbleWimble 协议.2016 年 10 月,Poelstra 在最初版本上进一步进行了研究和完善           [97] .Wimble 沿用了比特币的
                 UTXO 交易结构,但采用了保密交易(confidential transaction,简称 CT)技术      [98,99] ,并去除了交易地址,从而提供了
                 更好的交易隐私保护特性.Fuchsbauer 等人于 2019 年对 MimbleWimble 协议进行了可证明安全的分析                   [100] .目前,
                 实现 MimbleWimble 协议的项目主要包括 Grin       [101] 和 Beam [102] .
                    为了实现交易内容的隐私保护,MimbleWimble 使用了保密交易(confidential transaction)技术对交易金额进
                 行隐藏.保密交易技术最初是由比特币开发人员 Back 和 Maxwell 提出来的                     [98,99] ,通过在比特币网络中使用
                 Pedersen 承诺(Pedersen commitment) [103] 实现对 UTXO 中交易金额的隐藏和隐藏交易的验证.承诺是密码学中
                 重要的安全原语.承诺方在对一个选定的值进行承诺后将承诺值发送给接收方,并能够在之后揭示所承诺的值.
                 Pedersen 承诺在 1991 年由 Pedersen 提出后得到了广泛应用,CT 中使用的是基于椭圆曲线构建的 Pedersen 承诺
                 方案.设 G 为椭圆曲线点群中的生成元,H 为椭圆曲线中的一个点,则对金额 v 的 Pedersen 承诺为
                                                       C(r,)=rG+H,
                 其中,r 为随机生成的盲化因子且不公开.Pedersen 承诺所具有的隐藏性(hiding)和绑定性(binding)使得观察者无
                 法通过公开账本中记录的承诺值 C(r,v)还原出交易金额,从而实现了交易内容的隐私保护.此外,Pedersen 承诺
                 具有加法同态特性,即:
                                                C(r 1 ,v 1 )+C(r 2 ,v 2 )=C(r 1 +r 2 ,v 1 +v 2 ).
                    这为矿工(验证者)使用金额承诺进行隐藏交易验证提供了便利.假设一个交易的输入为 v 1 、v 2 ,输出为 v 3 .
                 为了确保交易平衡,即 v 1 +v 2 =v 3 ,构建的交易承诺应满足:
                                           C(r 1 ,v 1 )+C(r 2 ,v 2 )=C(r 1 +r 2 ,v 1 +v 2 )=C(r 1 +r 2 ,v 3 ).
                    因此,矿工只需通过公开承诺的加法运算即可完成交易平衡性的验证.
                    为了实现交易过程中的身份隐藏,MimbleWimble 采用了改进的 CT 方案.首先,MimbleWimble 系统中取消
   357   358   359   360   361   362   363   364   365   366   367