美国警察局(USPD)遭到黑客攻击,攻击者采用了一种被描述为秘密或隐蔽的攻击手法。该团队声称,此次攻击在 Etherscan 上无法检测到,攻击者拥有隐藏的访问权限。但这些说法都是歪曲事实,甚至可能是谎言,我们将在下文中加以证明。或者,这或许只是对整件事过于简单化的解读。

一个称职且不失职的团队本可以也应该在9月份协议遭到破坏时立即发现问题。任何支持“这是隐藏的”这种观点的安全“研究人员”同样是不称职、不负责任的,不应被信任。
仅使用像 Etherscan 这样公开的免费工具,团队就能在部署时发现问题。一个称职且尽职的团队本应能发现这个问题,无需任何特殊工具。诚然,Etherscan 有时会隐藏一些相关信息。我们曾明确指出,盲目信任 Etherscan 的判断是不可取的。我们也曾指出,我们认为,一些团队会利用 Etherscan 的不足来掩盖自身对产品的控制程度。或许我们应该更加谨慎:如果这些团队因为 Etherscan 没有显示控制信息而没有意识到自己拥有控制权呢?那将是多么混乱、愚蠢和令人遗憾的事情。

但美国警察局的情况并没有那么复杂。这显然是疏忽和无能的混合体现,因为相关信息并没有被隐瞒。没错,我们应该期望开发人员使用一切必要的工具来确保他们的系统能够正确部署。但是,未能使用专用软件或自行构建复杂的监控工具,与这里发生的事情是有区别的。这个团队没有使用标准的、免费的软件,然后还谎称这些问题在使用此类软件时无法发现。
现在我们将证明,这并非是某个理智的团队可能忽略的复杂秘密攻击,而是出于无知和失误。没错,团队确实忽略了这个问题,这一点我们并不否认。但我们此举的目的是揭露团队的无能和疏忽。我们将指出问题发生时团队未能察觉的那些实时可见的警示信号,以此来证明这一点。
细节
我们可以在项目的 GitHub 仓库中看到,他们部署的合约之一是位于 0x1346B4d6867a382B02b19A8D131D9b96b18585f2 的“稳定器”合约。我们可以使用标准工具在 Etherscan 上查看部署交易记录。根据 Etherscan 的记录,该交易执行于 2025 年 9 月 16 日下午 1:01:59 UTC。
然后,我们可以看到 2025 年 9 月 16 日下午 1:02:11 UTC 时间,同一个 0x1346 地址的6 条日志,比之前晚一个数据块。可以使用各种标准的免费工具轻松查看日志。这 6 条日志是:
- 授予闭源合约的角色,据推测来自攻击者,地址为:0xc2a0aD4Bd62676692F9dcA88b750BeC98E526c42。
- 授予同一闭源合同的另一个角色。
- InsuranceEscrowUpdated ,将保险托管合同更新为相同的闭源合同。
- 已初始化,表示协议已初始化。
- 已升级,表示某种代理升级到 0xAC075b9bf166e5154Cc98F62EE7b94E5345Cc090,这是另一个闭源合约。
- 这次升级到了真正的 USPD 实施合同。
如果团队在部署后查看一下自己合同上的事件记录,就能发现这些事件。这可以通过 Etherscan 或其他各种免费或收费的平台来实现。
文中提到的两份闭源合同十分可疑,团队应该会立即意识到问题所在。任何称职的团队都会注意到这些来路不明的合同,并询问原因。
我们如何确定这些并非团队预期的合约?因为在这些事件中暴露的地址现在已被标记为攻击者。接下来我们将详细讨论一些细节,但实际上,一旦团队发现意外地址获得了管理员权限和代理关联……这无疑是一个极其明显的警示信号。团队并未预料到这两个地址会出现在任何地方,所以要么 a) 他们看到了这些日志但忽略了,要么 b) 他们根本没看到这些日志。无论哪种情况,都是团队的失职。
RoleGranted 日志与协议内的权限有关,再次强调,向随机的外部合约授予权限是一个明显的危险信号。

正如我们前面提到的,安全研究人员现在已将上述两个地址列为恶意地址。对于外部人员来说,无法确定它们是否是某种黑客攻击的一部分。这些也可能是错误。或许团队错误地部署了这些合约,并且从未费心去公开源代码,因为这些错误永远不会在生产环境中使用。我们经常发现开源协议中存在对随机闭源合约的临时升级。通常没有人会费心去验证这些临时错误部署。有时,协议甚至会 谎称自己是开源的。这显然是个问题,但它与开源问题有所不同。
但美国警察局(USPD)团队应该知道这些是安全问题。他们清楚自己部署了哪些合同,也知道这些地址不在他们的控制之下。对于外部人员来说,当时很难发现问题所在。但对于一个称职的团队来说,仅使用简单、免费、标准的工具,就完全可以发现问题。外部人员完全有可能发现异常并提出疑问。而最有趣的情况莫过于,当时某个安全研究人员向美国警察局提出质询,却遭到拒绝或置之不理。可惜的是,这种情况似乎并没有发生。如果您知道此事,请随时与我们联系。
团队实际做了什么
在上述事件发生数小时后,我们可以看到团队在 GitHub 上记录了 0x1346 部署地址。我们可以看到一位开发者为此花费了几个小时,并且需要多次提交才能完成所有更新。有趣的是,这位开发者当时正在编写测试代码。他们甚至在 9 月 18 日提交了一个脚本来“使用新的实现和权限重新部署 USPDToken”,所以你不禁会想, tomw1808是否知道存在问题?我们不知道这个人是否负责验证链上部署,但这或许是一个值得着手调查的方向。也许这里面隐藏着一些尚未被挖掘的笑料。
最后需要注意的是,这两项项目审计都早于部署,因此不可能发现部署过程中的任何问题,因为当时部署尚未进行。而且似乎没有人对部署过程进行审计。或者,即使有人进行了审计,那也不是一次合格的审计——或者说,这次审计可能没有得到认可。
总之:问题不在于代码本身,而在于代码的部署方式。但这并不意味着代码本身就特别好!以下摘自一份审计报告的目录:

你不需要是编程专家也能看出那些代码“糟糕、业余且过时”。两次审计都发现了初始化过程的问题,并且都声称在一定程度上审查了部署过程。所以,审计人员确实应该受到部分指责,因为他们没有更清楚地指出部署和初始化过程的缺陷。但团队无疑应该承担最大的责任。再次强调:如果参与审计过程的任何人知道更多内幕,请务必告知我们。我们愿意相信,这个问题曾经被讨论过,但最终被忽略或协商解决了。
当然,如果你愿意,你可以声称部署本身超出了范围。但是,对于一个代码无法升级的系统来说,“协议中存在冗余代码”以及“cUSPD存在集中化风险”这类问题,如果集中化本身就是设计的一部分……这些都算不上什么严重的问题。这些审计充其量只是用一些无关紧要的无关内容填充了内容。我们不知道这些内容是否也经过了协商,或许还掩盖了一些其他的娱乐内容。
这是黑客行为吗?
在这种情况下,“攻击者”抢先执行了部分部署流程,并运行了一些自己的代码,从而抢在团队交易之前获利。这里我们使用“抢先执行”一词仅指技术层面,并不意在表达任何关于合法性或道德的观点。
这听起来很像佩雷尔-布埃诺案,所谓的“黑客”利用以太坊核心的竞争性区块构建过程窃取了他人的钱财。在USDP案和佩雷尔-布埃诺案中,没有人窃取任何人的私钥,没有人闯入任何人的住宅或办公室,也没有人进行网络钓鱼攻击或以其他方式撒谎。一切都在以太坊协议的框架之内。
这两种情况都存在某种形式的抢先交易。在USDP中,这有点像有人忘记关前门,把车钥匙放在桌子上。只不过以太坊上的交易环境不同,在这个环境中,拿走那辆车并不被视为盗窃。
利用复杂的中继器-区块构建器-内存池-共识机制抢先交易去中心化交易所(DEX)和抢先部署类似这样的项目,本质上并无区别。两者都“利用”了以太坊社区想要构建和使用的相同协议特性。
Coin Center 提交的法庭之友意见书支持 Peraire-Bueno 兄弟,认为他们在以太坊上的抢先交易行为完全公平、合理且合法:
以太坊是一个全球性的技术和生态系统。它新颖、快速变化且不受监管,但其内部的经济激励机制、加密控制以及验证者之间(包括被告和所谓的受害者)的激烈竞争(如下所述)使其得以存在。以太坊的开源软件为这种竞争建立了规则和控制机制,这得益于成千上万才华横溢的开发者自愿贡献的软件,他们以透明且合作的方式开展工作。认为少数检察官的判决可以导致对合法参与该技术的行为制定特定的替代技术标准,并且认为这些标准会明显与开源软件中许多既定规则相抵触,这种想法简直是荒谬至极。
所以,整个体系建立在“清晰”的“既定规则”下的“激烈竞争”之上。任何遵守这些规则的人都没有违法,因为所有参与者都是自愿选择这种安排的。至少,这种说法是这么说的。Coin Center 继续说道:
事实上,所谓的受害者是那些使用非常成功的软件机器人的用户,他们参与了这场残酷的竞争,力求在协议的极限范围内获取最大可提取价值,正如业内参与者所预期的那样。所谓的损害仅仅在于,他们被被告击败,被告也寻求多种商业和技术途径,以在协议为“诚实”参与设定的狭窄共识规则所规定的上限范围内最大化自身的区块奖励。
他们继续辩称这一切都很好,因为简单明了的规则是获得最佳结果的唯一途径,而且,所有参与者都是自愿选择接受这些条款的:
在加密货币领域的思想家看来,让矿工或验证者在最小且清晰的约束下竞争,并对违规行为施加自动惩罚,这并非出于对市场的固有偏见,也不是戈登·盖科式的贪婪是好事。相反,这源于对自身利益始终存在的认知,以及对更简单的竞争规则的认可——这些规则不受无法验证的外部信息或压力(例如区块链数学验证之外的因素)的影响——能够更好地确保这种自身利益被限制在一个简单且政治中立的目的上:即纯粹的数学交易验证。
USPD的“攻击”并未违反以太坊的任何共识规则。没有人窃取任何东西。这仅仅是一位精明的业内人士“胜过”了一个实力明显不足的团队。如果你想论证该团队缺乏参与以太坊竞争所需的必要能力,那么你需要解释一下准入审批流程是如何运作的。保护弱势群体和无知者或许是一个崇高的目标,但必须有一套流程来界定谁属于弱势群体和无知者,以及谁有资格参与到这场竞争中来。称其为黑客攻击,就等于认为参与以太坊共识流程应该要求通过一项能力测试,而不仅仅是能够运行软件。嗯。
这就让我们陷入了一个有趣的境地。Web3 行业的大部分成员都认同 Coin Center 对 Peraire-Bueno 事件的看法。如果这种立场是真诚的,那么他们也必然认同这并非黑客攻击。此外,业界需要认识到,这个团队和流程都存在严重缺陷。

如果对这种“黑客”行为视而不见,认为其完全可以接受,那就清楚地表明,除了自身利益之外,业界的立场始终前后矛盾。我们并不指望Web3游说团体在智识上保持一致,所以当他们拒绝就此类暴露其虚伪的案例进行沟通时,我们也不会感到惊讶。但这个问题值得一提。
最后:如果不对这些不称职的开发者进行哪怕是最基本的社会制裁,只会让此类事件在未来更加频繁地发生,因为这仅仅依赖于以太坊社区想要使用且不愿移除的功能。团队本应在发布前实时发现问题并修复部署流程。如果你接受以太坊生态系统目前的现状,那么USPD的问题本质上是社会问题而非技术问题。这意味着“解决方案”也应是社会性的。

USPD Hack: Details & Questions最初发表在 Medium 上的ChainArgos上,人们正在那里通过突出显示和回复这篇文章继续进行讨论。





