作者:Tal Be\'ery
来源:https://zengo.com/bitcoin-is-a-dark-forest-too/
翻译:白话区块链
Zengo 的研究人员揭示了恶意机器人在监控比特币区块链上存在的不安全随机地址,并立即利用它们进行盗窃,造成了数百万美元的损失 —— 其中之一发生在 2023 年 11 月 23 日。
作为 Zengo X 在区块链安全领域持续研究的一部分,我们调查了最近丢失的 139 枚比特币的案例,约合当时的 550 万美元。我们并不知道,通过这样做,我们打开了比特币黑暗森林的潘多拉魔盒。
在 2020 年,Paradigm 的研究人员 Dan Robinson 和 Georgios Konstantopoulos 发表了一篇具有重要影响力的博文,名为“以太坊是一个黑暗森林”:揭示了潜伏在以太坊内存池黑暗中的机器人,监视待处理交易,并试图利用它们所创造的有利机会。
今天,我们揭示了这种现象不仅局限于以太坊区块链,还适用于比特币区块链(可能也适用于许多其他区块链)。
1、这起过高费用的案例在11月23日,一笔比特币交易引起了比特币分析师的关注。这笔交易创下了支付费用的纪录,支付了超过300万美元(83比特币)的费用,用于转移价值200万美元的比特币。
尽管对于这些过高的费用(通常费用应该低于10美元)的即时解释是将其归咎于某种手动输入错误,就像过去发生的情况一样,但很快有用户在X(之前的Twitter)上声称他们是原始所有者,并以某种方式被黑客攻击。
X账户所有者通过使用相关的私钥进行签名,在密码学上证明了他们实际拥有比特币地址。
2、我们的调查开始了当我们开始更深入地调查这笔过高费用交易时,出现了一些更微妙但有趣的事实。
标注的交易(来源:mempool.space)上述显示了一些有趣的见解:
CPFP:即“Child Pays For Parent”,意味着这笔交易的输入是另一笔未确认交易的输出。在这种情况下,这意味着在第一笔交易在内存池中等待的同时,发生了这笔过高费用的交易。根据探索器的数据,实际上是在前一笔交易的同一分钟发送的。 费用正好是总花费的60%(83.65 / 139.4),因此不太可能是输错了,而可能是某种自动操作的结果。
RBF 禁用:交易发送者禁用了“Replace By Fee”(RBF)的选项,或者禁止其他交易使用更高的费用覆盖此交易。 此外,另一个 X 用户注意到,最初有多个候选的过高费用交易,通过支付更高的费用相互替换(在探索器中已经看不到了,因为被替换的交易信息在短时间内就被清除了)。
3、实际情况:先假设一下根据数据,有多种可能的假设来解释这笔过高费用交易:
原始所有者由于输错了而支付了过高的费用:在 X 上所有者的声明只是为了保全面子,因为声称被黑客攻击听起来更可接受,而不是承认自己笨拙。
注意:这似乎不太合理,因为这笔交易是在前一笔交易仍在内存池中的情况下发送的(见上文的 CPFP),这需要技术专业知识,而且费用的确切性质(正好是总费用的60%)与输错或一般的笨拙的理论不符。
原始所有者的私钥被黑客攻击:攻击者揭示了私钥并等待所有者向该地址发送资金。
我们的观点:这不太可能,因为这笔交易被 RBF 抢占,这意味着有多方知晓这个私钥。
原始所有者的私钥是可预测的:私钥是以某种可预测的方式创建的,例如通过对密码短语进行哈希运算(“Brian-wallet”)或从一个太小的集合中选择密钥(32位)。这些问题在我们最近的博文中进行了深入讨论。
攻击者正在生成所有这些可预测私钥及其相应地址的集合,每当出现向其中任何地址发送资金的交易在内存池中时,他们立即迅速并争相发送后续交易将这些资金转移到他们的地址。
这最后的假设解释了一切:即时响应(上文的“CPFP”)和过高的费用是攻击者为了击败其他攻击者而必须采取的。费用的“固定”性质(60%)是由于操作的自动性质,这是为了击败其他方而必需的。禁用 RBF 是攻击者采取的另一种机制,以增加击败其他方的机会。
这个假设也与过高费用交易接收端地址的过去行为一致。流入该地址的许多交易具有与这笔高费用交易相同的特征(尽管不像这笔数百万美元的交易那样利润丰厚)。
攻击者的行为是一致的(来源:X / Twitter)。这个结论当然是一个非常可怕和大胆的解释,需要进一步的证据。
4、证据为了验证我们的说法,我们决定生成一个可预测的私钥,向其发送资金,并观察结果。如果我们的假设是正确的,那么资金应该会立即被盗取。为了创建一个非随机的私钥并获得生成的地址,我们使用了伊恩·克洛曼(Ian Cloeman)广受欢迎的网络工具(在过去也非常有效)。
将私钥设置为“1”(注意生成的助记词主要由索引为0的单词“abandon”组成)
使用这个工具,我们将私钥设置为“1”并得到了生成的地址:bc1q4jgysxym8yvp6khka878njuh8dem4l7mneyefz。我们验证过它以前没有被使用过,以排除其他可能的解释。
接着我们向这个地址发送了一笔10美元的交易…正如预期的那样,我们发现,紧接着就是一笔过高费用的交易(5美元,或50%),将资金重定向到另一个地址!
此外,我们观察到多方之间激烈的竞争,试图用更高的费用通过RBF来取得优势,费用甚至达到了资金的近99%,但由于第一笔交易禁用了RBF,这些尝试都未能成功。
4笔RBF交易,最后一笔提供了总计10美元中的9.87美元作为费用。
5、结论:怪物确实存在如果用户的助记词或私钥以可预测的方式生成或受到不良随机性的影响,一旦攻击者了解到可预测生成的确切细节,它将被利用。
正如我们最近在博文中详细介绍的那样,加密钱包中私钥的安全生成问题大多数用户都忽视了,但却证明是一个困扰着钱包并造成巨大损失的问题。
由于用户不能自己生成私钥,但也不能证明私钥是随机的,因此用户无法验证其密钥的随机性,必须信任其钱包。
这个问题是对依赖单一方钱包的更大核心问题的又一体现。为了解决这个核心问题以及特定的随机性问题,我们必须接受这样一个事实:用户需要信任一些外部实体,并转向更健壮的架构,通过增加参与方的数量来减少对每个涉及方的信任。
增加参与方可以降低对每个参与方的所需信任,并使系统更加健壮(详见我们最近的博文)。