矿视界译文:为什么《攻破MimbleWimble隐私模型》不适用于BEAM

原创
1855 天前
11497
前几天,一场关于 Mimblewimble 隐私保护的辩论在推特上引起热烈地讨论。该事件源于 Dragonfly Capital 研究员 Ivan Bogatyy 发布在 Medium 上的一篇文章。在该文中,Ivan Bogatyy 明确表示:“Mimblewimble 的隐私保护功能从根本上是有缺陷的。”受此影响,Grin、BEAM、Sero 等隐私币出现不小跌幅。

 

该译文来自 BEAM 官方针对 Ivan Bogatyy 提出的问题作出回应并解释 BEAM 是如何缓解这些问题的。本文由矿视界(奇迹摩尔)翻译整理编辑,如需转载,请标明出处。

全文概要:《攻破 MimbleWimbl 隐私模型》一文中提到的攻击对 BEAM 来说无效,因为 BEAM 的诱饵输出使构建交易图变得难上加难。即使是面对更加复杂的攻击,即将上线的 Lelantus-MW 功能也将让攻击者几乎不可能构建交易图。

以下是全文(查看文中链接需科学上网):

我们想对 Ivan Bogatyy 发布的文章(https://medium.com/dragonfly-research/breaking-mimblewimble-privacy-model-84bcd67bfe52)作出我们的回应,该文声称 MimbleWimble 毫无隐私可言。文章引起大家的关注和讨论,我们也很感谢作者所做出的研究和贡献。

但是,我们认为我们社区中的部分成员有些过于杞人忧天,因此我们想针对所提出的问题作出回应(这些问题在过去也被熟知和深入探讨过),我们还将解释 BEAM 是如何缓解这些问题

攻击实际上是怎么进行的?

 

Ivan 构建的系统从连接到 Grin 网络的多个“sniffer”节点收集日志并对其进行分析。

在进行日志分析时,作者寻找只有一个内核的交易。在 Grin 中,拥有一个内核代表着交易没有与其他任何交易兼并,因此该笔交易的输入与输出相关联。当攒足此类关联,就有可能构建一个连接不同钱包的交易图,使用该图就可以推导证明两个已知方之间的财务联系。

Ivan 实际上并没有构建出交易图,文章只是证明了交易图构建成功是有可能的——从找到关联输入和输出到构建实际交易图,再到找出特定方之间实际联系,还有很长的路要走。

该攻击也不显示任何用户身份,如IP地址,也不显示交易金额。

为何 GRIN 或受其害?

这种单核交易大量被广播到网络的原因是 Grin 网络不够饱和,在蒲公英隐私协议的主干阶段也没有够量交易可兼并。

伴随交易量增加,匿名性也会得到改善。但目前,正如 Ivan 所说,匿名性很低。

为何 BEAM 与众不同?

​虽然基于同样的 MimbleWimble 协议,不同于 GRIN,BEAM 在应用蒲公英隐私协议时采取了重要的隐私改进。

在项目早期,我们就发现了 MimbleWimble 中潜在的交易关联性,并考虑了缓解之计。

2018 年 9 月,Valdo(https://github.com/valdok)就已经发表过一篇关于交易关联性以及 BEAM 团队如何处理该问题的技术论文

(https://github.com/BeamMW/beam/wiki/Transaction-graph-obfuscation)。

该文描述了诱饵(又称假人)UTXOs 的概念。请注意,BEAM 在主网上线之前就已经部署该措施,机制也与 GRIN 开发团队讨论

https://gitter.im/grin_community/Lobby?at=5bebf9d76b9822140d2a7b37 过,后者决定不实施它。

这些假人的运行原理是什么?在蒲公英主干阶段的每一步,BEAM 节点都会检查兼并交易(可能只有一笔交易)是否至少达到 5 个输出。若没达到,诱饵输出会被添加到兼并交易中,确保输出数量至少为 5。

你可以在这里(https://explorer.beam.mw/)或者这里(https://explorer.beamprivacy.community/)

查看 BEAM 区块链资源管理器,并看到每个至少有 2 个内核的块(意味着至少有一笔交易信息不仅仅是币种的块)至少有 7 个输出(币种、交易费用、收款人和 4 个假人)。

每个假人输出值都为零,但它与常规输出完全难以区分——所有输出看起来都像是随机数。

在后面阶段(为每个输出随机选择块高),节点将假人 UTXOs 作为输入添加到随机交易里,很可能属于不同的用户,从而消耗假人并从区块链中将其移除,但同时也在用户之间创建事实上不相关的联系,因此我们也叫它诱饵。

另外需要注意的是,由于这些诱饵输出最终会被使用,因此该机制不会在区块链上造成任何永久性的混乱。

为什么攻击在 BEAM 上更加难以实现?

 

如果在 BEAM 上运行一个相似操作,研究人员可能仍会发现许多单核交易。虽然 BEAM 全网处理的交易比 GRIN (过去 30 天平均值)多 60%,但仍不足以保证两笔或多笔真实交易在主干阶段始终“相遇”。但是,由于使用了伪输出,这样的单核交易对于发掘交易图毫无参考价值。

BEAM 中的诱饵使得构建交易图成为一项概率任务,两个钱包之间的关联概率随着跳数增长呈指数衰减。

正如 Ivan 在推文(https://twitter.com/IvanBogatyy/status/1196441085221855233?s=20)中解释的那样:

这对 BEAM 来说并不切实——即使交易之间没有兼并,它们仍然存在一个至少有 4 个诱饵输出的匿名集(该数字可配置)。

下一阶段:Lelantus-MW

BEAM 中的诱饵输出增加了匿名集,这令 Ivan 所以描述的构建交易图变得更加困难,但某种程度上,仍有实现的可能。部分人也例证了其他更复杂的主动攻击,比如 Ian Miers 提到的手电筒攻击。

因此,我们决定实施(https://github.com/BeamMW/beam/tree/lelantus_mw) Lelantus-MW,并于不久后启动。

Lelantus MW 将显著增加匿名集(达到 100 K输出),如果用户时不时选择使用 Lelantus-MW 交易,构建交易图就真的变成就几乎不可能完成的任务了。

关于 Lelantus-MW 的更多资讯也可以通过点击这里(https://github.com/BeamMW/beam/wiki/Lelantus-MW)或这里

(https://docs.google.com/presentation/d/1t3RkaAyhsd_Y9NNheFzB8VAXzQ3hSq27dkBsm0M2i5w/edit#slide=id.p1)了解。

以挑战收尾

我们想挑战 Ivan 对 BEAM 网络进行分析,尝试在大量钱包之间建立可证明的联系。因为对于 BEAM 来说,用单核查找交易真的不适用。

原文链接:

https://medium.com/beam-mw/will-breaking-mimblewimbles-privacy-model-work-on-beam-9125bc2ee863

——–END——–