最新研究发现,一种标准的比特币交易方式可能容易遭受双重支出。钱包初创公司ZenGo的区块链侦探发现了一个漏洞,该漏洞至少影响了三个主要的加密钱包-Ledger Live,Edge和Breadwallet(BRD)-甚至可能更多。

该漏洞被位于特拉维夫的公司称为BigSpender,它使黑客能够将用户的资金加倍花费,并可能阻止他们再次使用钱包。它通过利用比特币的按需替换(RBF)功能中的缺陷进行工作,该功能具有故障保护功能,使用户可以将未经确认的交易与费用较高的交易进行交换。

ZenGo首席执行官Ouriel Ohayon在一封电子邮件中说:“ [BigSpender]可能会导致重大的财务损失,并在某些情况下使受害者的钱包完全无法使用,而受害者无法保护自己。” “因此,这可以看作是严重程度很高的攻击。”

像比特币核心代码库中发现的其他漏洞(例如时间锁定交易)一样,RBF功能已成为用户来回传递价值的标准方式。它被开发者社区推销并接受,作为比特币人通过支付更多费用来规避缓慢确认时间的一种方式。

匿名的比特币研究人员0xB10C表示,从一开始,人们就担心,尽管RBF功能已集成在比特币的协议层,但并未得到比特币钱包的充分支持。“ ZenGo表明,用户可能被欺骗,以为他没有收到比特币。我相信这是新颖的。我至少以前没有听说过,”他说。

该公司测试了九种不同的钱包,包括Ledger Live,Trust钱包,Exodus,Edge,Bread,Coinbase,Blockstream Green,Blockchain和Atomic Wallet。在测试的对象中,发现有三个很容易受到理论攻击。

Ohayon说:“我们还没有测试所有的钱包,但是如果涉及到最大的三个钱包,那么可能还会更多。” ZenGo将发现的结果通知了公司,并给了他们90天的时间修复漏洞。

Edge的首席执行官Paul Puey在一封电子邮件中表示,Ledger和BRD已经发布了代码更改以防止攻击发生,并向ZenGo支付了未披露的巨额赏金,而Edge目前正在进行“重大重构”,以解决该问题。

比特币开发人员,RBF的架构师 Peter Todd表示,这种黑客利用了某些钱包如何处理比特币的RBF交易中的已知漏洞。

工作原理:攻击者将资金发送给预定的受害者,并将费用定得足够低,几乎可以保证交易不会收到确认。在事务挂起时,攻击者将其取消。对于易受攻击的钱包,该未完成的交易将反映为用户帐户余额的增加,因此有可能导致一些受害者错误地认为该交易已经完成,尽管被取消了。

恶意行为者可以利用受害人陈述的余额与实际余额之间的这种差异,诱使人们提供商品或服务而无需付费(除非花费最少的费用)。从这个意义上讲,缺陷在于钱包的UX和UI设计。

双重麻烦?ZenGo的研究人员说,如果黑客可以诱骗一个人相信他们已经收到付款,同时又保持对比特币的控制权,那么这就是双花。

“您必须确定双重支出的定义是什么。多数不是巨魔的人会说,当您有一笔已确认的交易因某种原因而被无效并花费在另一笔已确认的交易上时,就会花双笔钱。 。

本质上,这种攻击利用了钱包显示未确认交易的方式。从这个意义上讲,这种攻击(虽然是欺诈性的)并没有破坏比特币代码的运行方式。

洛普说:“区块链的全部目的是防止双重支出问题。” “它可以追溯到原始的Satoshi 白皮书,该白皮书说,双花的解决方案是拥有许多人正在检查的分布式分类帐。”

您唯一可以依靠的是已开采的交易

0xB10C说,与比特币交易时的一般经验法则是,永远不要信任少于六个确认的交易。包括Todd,Lopp和BRD CTO Samuel Sutch在内的许多开发人员都重申了这一点。如果此漏洞利用得以实现,那么受害者至少应承担部分责任。

“您唯一可以依靠的是已经开采的交易,”托德说。

从这个意义上讲,Sutch称BigSpender为“小错误”和“人为的”,但也值得修复并为此付出赏金。Sutch说,BRD最近通过了500万用户。

“更多的钱包开发人员需要知道他们的用户不了解其内在区别,” Lopp siad。从安全的角度来看,许多人甚至都不知道已确认和未确认之间的区别。因此,开发人员有责任建立更好的用户体验,这样他们就不会被诸如此类的事情所迷惑和欺骗。”

为此,Ledger更新了钱包显示RBF交易的方式,并补充说,如果用户不确定使用块浏览器“检查交易的状态”。Ledger的首席技术官Charles Guillemet在电子邮件中说:“今天的银行无法进行这种验证。”

双重视野更新钱包以清楚地显示RBF交易期间发生的事情对于每个参与人员都是一件好事。但是,ZenGo的研究人员发现,存在第二种攻击,其遵循与上述相同的方案,无论受害者是否知道交易,它都可能永久禁用钱包。

在这种情况下,攻击者再次通过向受害者的钱包发送重复交易来人为地虚增受害者的余额。这可以在未经受害者同意的情况下完成。通过在确认之前取消交易,受害人的钱包余额和实际资金再次分离,从而使他们的钱包无法使用。更糟糕的是,攻击可能同时影响多个钱包。

从本质上讲,这是拒绝服务(DoS)攻击,阻止人们使用钱包。

Ohayon说:“如果钱包的硬币选择算法从这笔不存在的交易中选择资金,这也会使其他种类的发送尝试失效。” 用Sutch的话来说,这些钱包是“砖状的”。“这带来了极大的不便。”

Sutch说,BRD在收到警报后将漏洞作为公司的首要任务。他说,奇怪的是,它在解决一个不相关的问题时设法修复了该错误。

ZenGo的安全性研究提出的问题并未被团队测试的钱包所隔离。在绝大多数的Bitcoin钱包都能够接收RBF交易,其中不少是“资源有限,” Sutch说,并不能立即提供修补程序。

Lopp说,在Casa上启用RBF功能时,他将系统配置为在确认之前不显示这些类型的交易,这在行业中是非标准的。他说:“默认参数将显示这些交易。”