Vanity Gone Rogue:针对自定义区块链地址的漏洞的兴起

新加坡管理大学附属教授Daniel Liebau和顾问Roland Schwinn
作者: 新加坡管理大学附属教授Daniel Liebau和顾问Roland Schwinn
发表日期: 2024年4月19日
阅读时间: 5 分钟

新的区块链地址是如何生成的? 个人提供私钥, 只有他们熟悉的字符串, 剩下的就是哈希算法了. 它创建一个公钥作为私钥的衍生物. 该算法的一个显著特点是它在创建过程中使用随机性. 这种随机性是至关重要的,因为它确保没有其他人可以从公钥中猜测出私钥. 与此形成鲜明对比的是, 生成具有预先指定属性的公钥, 比如一个不同的字符序列(比如MOON), 应该很有挑战性. 我们喜欢这样. 随机性意味着安全性! 这就是理论. 但在实践中, 有一些免费的软件工具可以帮助你做到这一点——创建所谓的虚地址.

例如, vanity - eth的网站上说:“vanity - eth是一个开源工具,它使用你的网络浏览器来生成以太坊的虚荣地址. 输入您选择的短前缀和后缀,然后单击 生成 开始.“等等,那是怎么回事?? 进一步下降, 该网站称:“你的浏览器会生成大量随机地址,直到找到一个与你的输入匹配的地址. 找到地址后,您可以选择显示私钥或单击 保存 按钮下载密码加密的密钥存储库文件.” Isn't this nice; now we can create addresses that look cool and are easier to memorize. 这就像为我们的新车申请一个特定的车牌号码. 但流氓演员也能想出如何愚弄甚至欺骗普通用户, 这篇博客的其余部分将探讨什么.

探索一个场景

现在是2024年初. 比特币去年上涨了100%以上. 去中心化金融(DeFi)生态系统再次获得动力. 空投, 发行者分发的免费代币, 进入各种生态系统的用户钱包. 一位活跃的DeFi用户正忙着在不同的以太坊钱包中汇款,这时她注意到她的钱包软件中有一笔对她来说没什么意义的新交易. 她凭直觉检查发送地址的前七个字符,并立即识别出来. 当然, 她还确认了钱包地址的最后五个字符, 他们符合她的期望.

一切都会好起来的——这个地址看起来像她的一个钱包. 但她真的创造了这笔交易吗? The transaction amount makes no sense; only a tiny fraction of ETH, 所谓的尘埃, 存入她的主钱包. 在回顾了以太扫描的更多细节之后.然而,她确定了那个有问题的发送地址不是她的. 怎么这么? It does look like hers; at least, the first five and seven last characters do. 通过查看整个地址, 她意识到8到37岁的角色和她完全不同. 前七个和后五个字符正是Metamask向用户显示的内容, 而不是介于两者之间的. 也许这不是巧合, 但一些无赖演员企图迷惑她, 知道她会在钱包里看到什么软件.

虚地址攻击(VAA)

虚位地址攻击(VAA)是一种用于迷惑普通区块链用户的自动化攻击.

攻击者可以自动生成看似相似的地址, 类似于虚荣eth, 但是通过使用机器人. 除此之外, 他还可以通过查看区块链的内存池来自动发现当前提交交易到区块链进行处理的参与者. 内存池是一个缓冲区,区块链在稍后将其不可变地存储在分类帐中之前使用它对交易进行排队.

识别猎物,给它们看熟悉的东西, 比如前五个和后七个字符相同的地址, 能在几秒钟内完成吗, 假设有足够的计算能力. 一旦攻击者识别出目标用户, 他们会向猎物的钱包发送少量ETH, 关联的事务显示在用户的事务历史记录之上. 接下来要做的就是, 由于粗心大意, 用户复制虚地址以执行下一个事务, 没有注意到他们可能会把一大笔钱寄到一个不属于她的钱包里.

关键
我们无法为这种类型的攻击找到一个名称,所以我们现在可以称之为 虚地址攻击(VAA). 今天的区块链用户在提交区块链交易时,不能只依赖于检查初始字符和最后几个字符的顺序. One is better off checking the entire address; this would lower the risks of attackers trying to confuse and eventually defraud users who only superficially check their addresses when transacting.

额外的资源