币圈资讯

Coldcard失窃案深度解析:代码公开并非安全护身符

Coldcard被盗反思:源码可见不等于安全

关于开源与闭源的争论,在比特币及整个加密货币领域已持续十余年。长期以来,比特币拥趸坚持认为全球金融基础设施必须建立在透明与可审计的基础之上,这一原则被视为不可妥协的红线。然而,这种理念在应用层及传统金融行业往往遭遇冷遇。

Coldcard硬件钱包近期遭遇的重大盗窃事故,再次将“开源”一词的真实内涵置于聚光灯下。此次事件中,用户损失超过1亿美元比特币(约合1500枚BTC)。这一惨痛教训揭示了一个尴尬的现状:即便是资深的比特币社区成员,对于开源软件的开发哲学及其潜在的失效场景,认知仍显不足。

概念辨析:自由与可见

开源领域的术语定义颇为严谨。自由开源软件(FOSS)和自由/开源软件(FLOSS)特指那些符合正式用户自由定义标准的软件产品。

自由软件基金会(FSF)通过四项基本自由来界定“自由软件”:

  • 自由 0:有权按照个人意愿,出于任何目的运行程序。
  • 自由 1:有权研究程序的工作原理,并根据自身需求进行修改(前提是能够获取源代码)。
  • 自由 2:有权复制并分发副本,从而协助他人。
  • 自由 3:有权分发自己修改后的版本给他人(同样以获取源代码为前提条件)。

FSF特别强调,这里的「free」意指自由,而非免费。开源运动中的一句经典口号精准地概括了这一区别:「『free』 as in 『free speech』,不是『free beer』。」

相比之下,开源促进会(OSI)对开源的定义包含了十项更为细致的实践标准,例如允许自由再分发且无需缴纳版税、源代码必须以利于修改的形式提供、允许创建及分发衍生作品、禁止对个人、群体或用途(含商业用途)进行歧视等。只有完全契合这十项标准的许可证,才能获得官方认证的“开源”身份。

然而,“源码可见”(source available)或“源码可查看”则是截然不同的概念。虽然代码可供公众阅读,但其许可证可能限制商业使用权。Coldcard固件便是典型案例——尽管它采用了MIT许可证,但附加了特定的许可条款。该条款明确禁止“销售”软件,即禁止向第三方提供该软件以换取费用或其他对价,且当产品或服务的核心价值主要源自该软件本身时,此禁令尤为严格。

简而言之,Coldcard固件被禁止用于商业目的。

许可条款中直言不讳地写道:“这是开源吗?不是。”该声明指出,尽管附加条款后的软件满足了开源定义的诸多要素,但并未涵盖全部,因此不应被冠以“开源”之名。

厘清这些区别至关重要。公开源代码仅赋予了被检查的可能性;而真正赋予自由软件或开源定义中所有权利的,才是FOSS。此外,单纯悬挂“开源”标签并非最终目的。批评者指出,开源中的商业自由度,才能激发第三方去测试和审查代码的动力,否则这种动力可能根本无从产生。

四项自由构成了开源哲学的基石。但在实际运作中,它依赖于一个经济假设:存在足够多具备动机的人去执行代码审查。一旦这一假设崩塌,系统便会陷入经典的“公地悲剧”——因个体追求短期私利而导致共享资源被过度消耗或被忽视,最终走向衰败。每个人都倾向于多索取少贡献,致使整体资源受损。有时激励机制是协调一致的,有时则完全背离。

一位比特币开发者对此表达了更尖锐的观点:“在测试过程中使用开源代码的两种测试替身 mocks 和 stubs 是不负责任且短视的。开源代码被认为安全,是因为任何人都可以对其进行验证。如果你连自己真正依赖的功能都不愿进行最低限度的测试,那你就是在充当寄生虫。”

因此,开源本身并不自动生成安全性,它仅提供验证的可能。验证是否真正落地,取决于激励机制、技术能力及关注度的投入。从历史经验来看,优秀的FOSS项目会随着漏洞的发现、披露和修复而不断加固,成为构建其他应用的坚实底座。Linux内核便是这一模式的典型代表——它支撑着全球绝大多数的服务器、云基础设施、安卓设备及嵌入式系统,是有史以来部署规模最大的软件之一。

标杆案例:比特币核心的开源实践

比特币核心(Bitcoin Core)作为比特币网络的参考实现,是大规模纯开源项目在现实世界中运行的另一座里程碑。它采用MIT许可证,其开发流程在设计之初便确立了公开透明的原则。

任何人都可以通过提交pull request(合并请求)参与贡献。代码审查是主要的筛选机制,也是新人进入该社区的推荐路径。审查过程中使用一套标准化的术语体系:Concept ACK(同意目标)、Approach ACK(同意目标与方法)、附带具体commit hash的ACK(表示已测试并批准合并),或NACK(表示不同意,需附上技术理由)。

维护者在合并代码前,会综合考量贡献者的共识程度与技术优劣。对于涉及关键共识的变更,门槛更高,通常需要提出比特币改进提案(BIP),并在bitcoin-dev邮件列表和IRC频道上进行长达数年的充分辩论。

在这里,不存在拥有特权地位的“比特币核心开发者”阶层。信任是通过长期展示专业能力逐步建立的。维护者的角色主要是为了满足实际需求——审计合并的代码、管理版本发布以及进行基础审核——但他们产出的却是纯开源代码,任何人都有权检查、编译、分叉或运行。那些代码成功并入Bitcoin Core的人员,通常被称为Bitcoin Core贡献者。

资深比特币开发者Calle近日总结道:“那些认为核心开发是一个在阴影中不透明运作的机构的人,要么太懒,要么太蠢,懒得自己去查阅一下。他们所做的一切都是公开的,任何人都能参与其中,最终交付的就是纯开源代码。”

这些工作的资金支持主要来源于非营利组织和资助机构,如Brink、OpenSats、Spiral等,而非传统公司的产品路线图。技术讨论主要在公开的bitcoin-dev邮件列表和Libera Chat的#bitcoin-core-dev IRC频道展开,提案在提交pull request前后均会受到严格审视。GitHub上的issue和pull request评论区经常保留长达十年的历史记录。由此形成了一种优先追求正确性和可审计性,而非速度或商业功能迭代速度的开发文化。

开源背后的经济学逻辑

大多数使用开源或源码可见软件的用户,并不会亲自研读代码。他们往往基于“有人正在审查”的假设行事。在Coldcard事件中,一个关键的熵缺陷在公开固件中潜伏了约五年之久,直至被利用后才暴露出来。

该Bug是在2021年的一次重大代码重写中引入的,那次重写同时也移除了源自Trezor的剩余GPL代码。Trezor作为首款硬件钱包,目前在自托管行业中排名第二。

问题根源在于libgu库,它取代了trezor-crypto,但外部审查极为匮乏——在生产环境运行超过五年后,该库仅有7个star和不到20个fork。相比之下,trezor-crypto拥有512个star和212个fork,而更现代的trezor-firmware则有793个fork和1800个star。

仅仅源码可见并未引发实质性的审查。批评者认为,原因在于许多具备资金和能力的大型盈利公司受限于许可证无法使用,从而缺乏商业激励。注:Star和Fork是GitHub上衡量项目受欢迎程度和活跃度的两个核心指标,Star意为收藏点赞;Fork意为复制仓库。

比特币领域的利害关系远超大多数软件领域。一个关键缺陷可直接在公开市场转化为巨额流动资金。Coldcard被盗资金的前半部分仍存放在少数地址中,黑客或许终将被绳之以法,但后续的模仿者往往更加谨慎。据Galaxy Research数据,已有更多人成功盗取并洗白比特币,总损失至少已达1700 BTC。

比特币的抗审查性和交易不可篡改性,既为攻击者提供了强大激励,也形成了一种达尔文式的筛选机制:只有那些能持续吸引高质量审查、用户和企业认真采取防护措施的项目,才具备长期生存的可能。

许可证的选择直接塑造了这些激励机制。纯开源许可证能最大化潜在审查者和分叉者的规模。而受限的“源码可见”许可证虽能减少商业“搭便车”行为,但也缩小了同时拥有合法权利和经济动机去深度投入注意力的人群范围。结果,代码审查的重担重新落回公司自身,使其在实质上更接近闭源模式,而非真正的开源。

AI重塑开源与闭源格局

人工智能正在深刻改变开源与闭源之间的力量平衡。

Coldcard事件之后,一个由Calle、AnchorWatch的Rob Hamilton等开发者主导,并获得OpenSats支持的志愿者项目——Bitcoin Red Team,利用前沿AI模型扫描了数百个开源比特币代码库。在一段密集的工作期内,团队提交了数千项发现,其中数十项被判定为关键或高严重性,覆盖范围涉及数百个项目。遵循责任披露原则,漏洞首先通知维护者,随后公开。这证明了系统性AI辅助审查,能够以人类团队此前难以企及的规模和速度挖掘出漏洞。

值得注意的是,Bitcoin Red Team发现中国开源权重模型的可靠性优于闭源美国模型。即便是拥有网络权限和顶级访问权的美国模型,也拒绝回答Bitcoin Red Team的相关查询,令美国开发者深感遗憾。

与此同时,AI生成代码的海量涌入也给FOSS维护者带来了新的“拒绝服务”式压力。审查AI输出的工作量往往比生成它更为耗时。一些非比特币领域的开源项目已开始限制issue tracker,或制定严格的反AI贡献规则,以维持项目的正常运转。

在闭源领域,传统“通过隐蔽获得安全”的优势正逐渐消退。现代AI模型能以极高速度阅读、去混淆、探测端点并进行代码推理。如今,开源与闭源的实际差异,主要仅剩下那些从未上线的后端代码。闭源代码的安全性最终只能依赖专业审计的质量、补丁部署的速度,以及能够激励有权限人员持续认真审查的机制结构。

比特币及更广泛的加密行业,正对自由开源软件施加前所未有的压力。真实的货币价值、对抗性的经济环境,以及当前AI的大规模分析能力,正迫使软件模式不断进化。回到模拟前数字系统的支持现代社会基础设施的模式几乎已无选项。唯有经过充分审计的项目,方能在AI辅助黑客攻击和数字优先金融的双重压力下幸存下来。