我们可以从学习 hack 中学到什么? 在 DAO 2016 黑客攻击后揭示对隐私和加密货币运动的见解

合作关系

加密货币一词几乎已成为黑客攻击的代名词。 似乎每周都有令人瞠目结舌的大型黑客攻击交易所、个人用户的钱包、智能合约以及他们所在的公共区块链。 在许多情况下,回想起来,攻击的载体是显而易见的:代码未经测试,不存在防止网络钓鱼的内部流程,没有遵循基本代码标准等。研究黑客本身通常不会为那些已经熟悉的人收集到太多有趣的信息基本的安全实践。 

但是每个加密黑客都有两个主要组成部分 - 黑客本身,然后是黑客及其同伙试图兑现他们被盗的战利品的方法。 对于隐私权的倡导者来说,对这些资金进行匿名化的尝试是在公共区块链网络中可实现的匿名级别的有趣案例研究。

由于资金由高度组织和资金充足的政府机构和企业实体密切跟踪,它们为社区提供了观察所涉及的各种隐私钱包的功效的机会。 如果这些黑客不能保持隐私,那么在公共网络中寻求隐私的普通用户有多大可能实现呢? 

DAO 2016 hack,一个典型案例

在研究这些黑客行为和随后的逮捕行动时,很明显,在大多数情况下,黑客在试图匿名化他们的加密货币时都会犯下重大错误。 在某些情况下,故障是简单的用户错误造成的。 在其他情况下,它们是由他们使用的钱包软件中的错误或在将加密货币转换为现实世界资产的过程中的其他不太明显的失误引起的。 

最近,一个特别有趣的案例,即 2016 年 DAO 黑客事件,有了重大进展——一项调查 福布斯文章 已发布,识别了所谓的黑客。 识别此人的过程提供了对广泛使用的隐私钱包 Wasabi Wallet 的一些见解,以及该软件的不当使用如何导致所谓的黑客资金“分离”。 

犯了严重错误

至于操作顺序,黑客的第一步是将他们从以太经典中被盗的部分资金转换为比特币。 黑客使用 Shapeshift 交换执行交换,这在当时提供了平台上所有交易的完整公开记录。 部分资金从 Shapeshift 转移到 Wasabi Wallet。 从这里开始,事情就走下坡路了。  

对于那些不熟悉的人,CoinJoin 是一种特殊交易构建协议的绰号,它允许多方将他们的资金聚合成一个大交易,目的是打破流入 CoinJoin 的资金和流出 CoinJoin 的资金之间的联系。

CoinJoin 交易不是具有单个付款人和收款人的交易,而是具有多个付款人和收款人。 例如,你有一个有 10 个参与者的 CoinJoin——如果 CoinJoin 构建正确并且所有交互规则都正确遵循,则流出 CoinJoin 的资金将具有 10 个匿名集。即 10 个“混合输出中的任何一个”来自交易的“”可能属于交易的 10 个(或更多)“未混合输入”中的任何一个。 

虽然 CoinJoin 可能是一个非常强大的工具,但参与者有很多机会犯严重错误,这些错误会显着降低或完全破坏他们可能从 CoinJoin 获得的任何隐私。 在被指控的 DAO 黑客的案例中,就犯了这样的错误。 正如您将在接下来阅读的那样,此错误可能是用户错误,但是,Wasabi 钱包中也可能存在(已修复)错误导致此隐私失败。 

芥末钱包使用 ZeroLink协议,它构造具有等值混合输出的 CoinJoins。 这意味着,所有用户只需要混合指定的、预定数量的比特币。 任何高于该金额进入 CoinJoin 的值都必须作为未混合的比特币返回给相应的用户。

例如,如果 Alice 有一个 15 比特币输出,而 CoinJoin 只接受价值 1 比特币的输出,那么在 CoinJoin 完成后,Alice 将有一个 1 混合比特币输出和一个 05 未混合比特币输出。 .05 比特币被认为是“未混合的”,因为它可以与 Alice 的原始输出 15 相关联。 混合输出不能再直接链接到输入,并且将具有由 CoinJoin 中的所有其他参与者组成的匿名集。 

为了保护 CoinJoin 的隐私,混合和非混合输出绝对不能相互关联。 如果它们在单个或一组交易中意外聚集在比特币区块链上,观察者可以使用该信息将混合输出追溯到其来源。 

在 DAO 黑客的案例中,他们似乎在使用 Wasabi Wallet 的过程中,在多个 CoinJoins 中使用了一个地址; 在一种情况下 地址 被用作未混合的变化输出,在第二种情况下,它被用作混合输出。

在 CoinJoin 的上下文中,这是一个相对不寻常的错误,因为这种关联技术需要 CoinJoin 下游的交易来“合并”未混合和混合的输出,将它们链接在一起。 但在这种情况下,不需要分析两个 CoinJoin 之外的任何交易,因为在两个单独的 CoinJoin 中以相互冲突的方式使用了相同的地址。 

从根本上说,这种可能性的存在是因为 Wasabi Wallet 软件中的一个设计决策:Wasabi Wallet 对混合和非混合输出使用单一派生路径。 这被认为 坏习惯. Wasabi 员工表示,这是为了使钱包恢复与其他钱包兼容,但是,BIP84(这是 派生方案 Wasabi Wallet 使用)确实有一种标准方法来识别分配给更改输出的派生路径。

当用户在使用相同种子时同时运行两个 Wasabi Wallet 实例时,这种设计选择导致的失败最为明显。 在这种情况下,当同时尝试从每个实例运行混合时,两个实例可能会以这种冲突的方式选择相同的地址。 这是警告在 官方文件. Wasabi Wallet 中的已知漏洞也可能是罪魁祸首。

要点和结论

那么我们从中学到什么呢? 虽然芥末的这个漏洞还没有结束,但它在追踪所谓的黑客方面起到了至关重要的作用。 再次重申,我们认为隐私是困难的。 但实际上,我们还有另一个例子说明了在使用隐私工具时防止输出污染的重要性,以及用户和软件等需要多么谨慎的“硬币控制”。 问题变成了,设计什么样的隐私协议来最小化此类攻击? 

一个有趣的解决方案是 CoinSwap,它不是将输出合并到一个大交易中,而是与另一个用户交换输出。 通过这种方式,您正在交换硬币历史记录,而不是加入硬币历史记录。 更强大的是,如果 CoinSwap 在链下环境中完成(如 Mercury Wallet 实施的那样),则根本不需要处理未混合的零钱输出。 

虽然可能存在可能导致 CoinSwap 被“取消交换”的用户错误,但这些错误对于最终用户来说可能更加明显,因为任何以侵犯隐私的方式合并输出只能通过明确混合将一个尚未交换的输出与一个尚未交换的输出进行交换,而不是合并两个已经通过 CoinJoin 的输出,其中只有一个实际上是混合的。

水星钱包 是目前唯一可供最终用户使用的链下 CoinSwap 工具。 它允许用户将他们的代币锁定到第二层协议(称为状态链)中,然后盲目地与状态链的其他用户交换他们的输出。 对于那些有兴趣探索具有令人兴奋的功能和可接受的权衡取舍的新型隐私工具的人来说,这是一项非常有趣的技术,值得一试。

获取您的每日回顾 比特币 , DEFI, NFTWeb3 来自 CryptoSlate 的新闻

它是免费的,您可以随时取消订阅。

得到 边缘 在加密市场上?

成为 CryptoSlate Edge 的成员并访问我们独家的 Discord 社区,获得更多独家内容和分析。

链上分析

价格快照

更多背景

立即加入,每月只需$ 19 探索所有好处

资料来源:https://cryptoslate.com/what-c​​an-we-learn-from-studying-hacks-revealing-insights-on-privacy-and-cryptocurrency-movements-after-the-dao-2016-hack/