攻击者现在已经从超过 709 个地址中盗取了近 1.14 亿美元的比特币,他们利用了 Coldcard 固件缺陷,生成的钱包种子的随机性只有其承诺的一小部分。第一次扫荡在 25 分钟内清空了大约 500 个钱包。该错误于 2021 年 3 月进入代码库,并在公共开源视图中停留了五年多。很多人都在解释发生了什么。更难的问题是为什么没有人发现它,而答案所涉及的远不止一行代码。
Coldcard 的源代码始终可供检查。 “不要相信,要验证”只有当合格的人真正查看时才有效,而五年来,实际上没有人这样做。该错误引入的时间线值得关注。 2020年,Coldcard的固件带有GPL开源许可证。在竞争对手宣布推出基于 GPL 代码的设备两天后,Coinkite 首席执行官 Rodolfo Novak(即 NVK)公开表示(在一条后来被删除的推文中)他后悔选择 GPL。那年 11 月,Coldcard 采用了带有 Commons Clause 的新许可证,其自己的常见问题解答明确指出,由此产生的软件不再是开源的。随后进行了彻底的重写,2021 年 3 月的提交删除了最后一个 GPL 代码,这与破坏种子生成的提交相同。

没有人能够衡量许可压力对重写的范围或速度产生了多大的影响,而且这次改革也追求合法的技术目标。记录在案的事实范围更窄,但仍然令人震惊:为限制竞争对手而进行的许可证变更先于仓促更换经过实战检验的加密代码,而更换后的代码包含了目前正在耗尽钱包的缺陷。自由和开源软件原则的存在正是为了防止安全性依赖于任何一家公司的选择。这些原则不能伴随个性例外而出现。
扎克·赫伯特是基金会的联合创始人兼首席执行官。
更深层次的失败是发生在那些确实看过的人身上的事情。 2020 年 8 月,Shift Crypto 和 Nunchuk 的研究人员披露了 Coldcard 中的多重签名验证缺陷。 Coinkite 承认了该错误并发布了修复程序,NVK 在 Citadel Dispatch 播客上同时将这一披露称为“公关恐怖主义”,并质疑没有 CVE 的研究人员是否算作专业人士。 2023 年,当 WalletScrutiny 项目报告重现旧版 Coldcard 版本的问题时,回应称该项目不称职或恶意,并引发了诉讼。后来独立的后续行动发现了旧版本中真正的复制问题,并得出结论,没有人有恶意行为。
对研究人员的每一次公开攻击都会改变下一次的数学结果。独立审查缓慢、困难,而且通常是无偿的。一名研究人员在几个月的工作中权衡嘲笑、黑名单和法律威胁的前景,通常会把时间花在其他地方。没有人能证明这种文化导致了熵错误被忽视。可以自信地说,安全取决于人们是否愿意寻找,而 Coldcard 周围的环境则惩罚着寻找。
一个以“不要信任,要验证”为创始口号的社区怎么会沦落到这里?心理学有它的名字。虚幻的真相效应使得重复的说法感觉得到独立证实,即使它们追溯到单一来源。光环效应将地位、信心和受欢迎的产品转化为假定的技术权威。年复一年,相同的断言通过相同的播客和提要传播:批评者是托儿,研究人员是恐怖分子,竞争对手是克隆人。重复做了证据应该做的工作,信心取代了证据。
其结果最好被描述为认知捕获:社区逐渐将其判断外包给值得信赖的权威机构,直到权威机构本身成为证据。 BTC Sessions 主持人 Ben Perrin 在最近的一次直播中以不同寻常的诚实描述了这一机制,并承认他对这种行为不予理睬,因为他认为这种狂妄自大的行为背后蕴含着卓越的创造和安全能力。业内许多人也做出了同样的计算。现在通过自我监管而引发的信任危机是该法案即将到期的时候了。
漏洞发生后,整个行业的首要任务是用户:分发迁移指南并明确更新固件无法修复易受攻击版本上生成的种子。那么这个行业还有幕后工作要做。旧的推荐页面、展示说明和产品指南带有多年的重复而不是经过检查的声明,它们值得更正并附上主要来源。受到攻击的建筑商和研究人员应该得到播出时间来解释他们的工作。比特币媒体需要再次变得对抗性,对朋友、赞助商和广告商进行与陌生人相同的审查。
比特币是基于专家和机构最终会失败的假设而设计的,其答案是通过验证使信任变得不必要。构建体现该原则的工具的社区将自己最响亮的声音排除在外。修复是创始指令,这次没有收藏夹应用。不要相信供应商。不要相信供应商的批评者。核实。
注:本专栏中表达的观点仅代表作者的观点,并不一定反映 CoinDesk, Inc. 或其所有者和关联公司的观点。
Zcash 的 Tachyon 升级旨在扩大屏蔽支付规模,提高量子准备度,并测试其资金、安全和治理是否能够持续。