开源与源码可见:Coldcard 失误对比特币软件激励机制的启示
要点速览
- •Coldcard 事件涉及一个关键固件漏洞,该漏洞据称在公开可用代码中存在了约五年才被利用。
- •由于 Commons Clause 限制了商业用途,Coldcard 的固件被描述为源码可见而非真正开源。
- •Bitcoin Core 的开发是公开进行的,包含开放代码审查、公开讨论,并不存在特殊的开发者阶层。
- •文章称,许可选择会影响谁能审查代码,以及在处理真实资金的软件中漏洞被发现的速度。
- •Bitcoin Red Team 使用前沿 AI 模型扫描开源比特币仓库,报告了数千项发现,其中包括关键和高严重性问题。

Bitcoin Magazine:开源与源码可见:Coldcard 失误如何揭示比特币软件激励机制
闭源与开源在过去十多年里一直分割着比特币及更广泛的加密行业。比特币倡导者长期主张,世界金融基础设施应当在公众视野中构建,因为当真实资金处于风险之中时,透明性和可审计性是不可妥协的。然而,金融行业的应用层和遗留层往往并不同意这一点。
近期 Coldcard 被攻击一事涉及一款广受欢迎的自托管硬件钱包,用户损失了超过 1 亿美元的比特币,即超过 1,500 BTC,这让人们开始重新审视“开源”究竟意味着什么。此事也表明,包括一些资深比特币用户在内,许多人对开源软件哲学以及其失效的条件了解并不充分。
原则与术语
围绕开源的语言可能比较复杂。自由与开源软件(FOSS)以及自由/自由软件与开源软件(FLOSS)指的是满足用户自由正式定义的软件。
自由软件基金会(FSF)通过四项基本自由来定义自由软件:
自由 0:按您希望的方式、出于任何目的运行程序的自由。
自由 1:研究程序如何工作并加以修改,使其按您希望的方式进行计算的自由(访问源代码是这一点的前提)。
自由 2:重新分发副本以帮助他人的自由。
自由 3:向他人分发您修改版副本的自由(访问源代码是这一点的前提)。
FSF 强调,“free” 指的是自由,而不是价格,这也是 FOSS 倡导者常引用的一句话:“‘free’ 是指‘言论自由’,而不是‘免费啤酒’。”
开放源代码促进会(OSI)的《开源定义》增加了十项实用标准,包括可自由再分发且无需版税、以便于修改的首选形式提供源代码、创建和分发衍生作品的权利,以及不因个人、群体或活动领域而歧视——包括商业用途。要符合 OSI 标准下的开源资格,许可证必须满足全部十项标准。
“源码可见”或“源码可获取”则不同。代码可以公开可读,但许可证仍然限制出售权。以 Coldcard 的固件为例,它采用 MIT 条款加上 Commons Clause 发布。该条款明确移除了“出售”软件的权利——这里的“出售”指的是:在其价值完全或主要来源于该软件本身的产品或服务中,以收费或其他对价向第三方提供该软件。换句话说,Coldcard 的固件不能用于商业用途。
Commons Clause 自己的 FAQ 明确说明了这一差异:“这属于‘开源’吗?不。” 它指出,应用该条款后,软件虽然满足《开源定义》的许多要素,但并非全部,因此不应被称为开源。
这些区分很重要。公开源代码只带来了被审查的可能性。只有授予《自由软件定义》或《开源定义》所界定的全部权利,软件才成为 FOSS 或 FLOSS。但重点并不只是获得一个标签,或者挥舞 FOSS / FLOSS 旗帜。批评者认为,FOSS 中的商业自由会释放第三方测试和审查代码的激励,而这些激励在其他情况下可能并不存在。
这四项自由构成了开源的哲学核心,但在实践中,它们依赖一个经济假设:足够多且有动力的人会 वास्तव地审查代码。当这一假设失效时,系统就会出现经典的“公地悲剧”——共享资源因为个人按短期自利行事,而不是以群体长期利益为先,最终被忽视或过度消耗。
每个人都有动机去索取更多,或贡献更少,从而超过可持续水平,结果是资源退化。这种情况发生在个人短期利益与群体长期利益不一致时。有时二者一致,有时则不一致。
一位比特币开发者曾直言不讳地指出问题:“在测试中使用开源代码的 mock 和 stub 是不负责任且目光短浅的。开源代码之所以被认为安全,是因为任何人都可以验证它。如果你连自己实际依赖的功能都不愿意做最基本的测试,那么你的行为就像寄生虫。”
因此,开源本身并不会自动带来安全。它带来的是“可验证性”的可能。是否真正完成验证,取决于激励、能力和注意力。历史上的 FOSS 通常会随着漏洞被发现、披露和修补而逐渐加固,从而为他人构建更稳固的基础。Linux 内核就是这种加固型 FOSS 的典型案例;它驱动着世界上绝大多数服务器、云基础设施、Android 设备和嵌入式系统,是历史上部署最广泛的软件之一。
Bitcoin Core 所展示的开源实践
Bitcoin Core 作为比特币的参考实现,是另一个在现实中大规模运作的纯开源范例。该软件支撑着大多数与比特币相关的基础设施,采用 MIT 许可证发布。其开发过程从设计上就是公开的。
任何人都可以提交 pull request。代码审查是主要筛选机制,也是新贡献者的推荐入口。审查者使用一套正式术语——Concept ACK 表示承认并同意目标;Approach ACK 表示同意目标和方法;带有特定 commit hash 的 ACK 表示已测试并批准合并;NACK 表示不同意,并应附带技术理由。
维护者在合并前会权衡贡献者共识和变更的技术价值。对共识至关重要的变更门槛更高,通常需要 Bitcoin Improvement Proposal,并在 bitcoin-dev 邮件列表和 IRC 上进行长达数年、范围广泛的讨论。
不存在所谓特权阶层的“Bitcoin Core 开发者”。信任是通过长期展示出的能力逐步建立的。维护者出于实际需要而存在——审计和合并代码、管理发布以及基础版务管理——但产出的工作是任何人都可以审查、构建、分叉或运行的纯开源代码。那些将代码提交合并进 Bitcoin Core 的开发者,通常被统称为 Bitcoin Core Contributors。
长期从事开源比特币开发的 Calle 最近概括了这一现实:“认为 core 是某种在阴影中运作、不透明的机构的人,要么是太懒,要么是太笨,不去自己看一看。它们做的每一件事都是公开的,任何人都可以发表意见,而他们工作的结果就是纯粹的开源代码。”
这项工作的资金主要来自 Brink、OpenSats、Spiral 等非营利和资助结构,而不是传统公司的产品路线图。技术讨论和争论在 bitcoin-dev 邮件列表以及 Libera Chat 上的 #bitcoin-core-dev IRC 频道公开进行,提案在 pull request 流程之前和期间都会受到审视。GitHub issue 和 pull request 的评论历史往往可以追溯十年之久。最终形成的开发文化更注重正确性和可审计性,而不是速度或商业功能迭代。
开源的经济学
大多数开源或源码可见软件的用户自己并不会阅读代码。他们依赖于“其他人会检查”的假设。在 Coldcard 事件中,一个关键的熵值缺陷在公开可用的固件中大约存在了五年,直到被利用并因此被发现。
该漏洞是在一次 2021 年的大规模重写中进入代码库的,那次重写还移除了 Trezor 中剩余的 GPL 派生代码。Trezor 是第一款硬件钱包,如今也是自托管行业中的第二大产品。位于熵故障中心的库名为 libngu,它替代了 trezor-crypto,但外部审查极少;在投入生产使用超过 5 年后,它只有 7 个 star 和少于 20 个 fork。相比之下,trezor-crypto 库有 512 个 star 和 212 个 fork,而更现代的 trezor-firmware 则有 793 个 fork 和 1.8k 个 star。仅有源码可见并没有带来真正重要的审查,因为其他盈利性强、资金充足的公司被限制无法使用它——批评者会这样认为。
在实践中,这使得许可选择不只是法律脚注:它们会影响谁能参与审查、谁有理由去审查,以及在保护真实资金的软件中漏洞会被发现得多快。比特币的风险高于大多数软件领域。关键漏洞可以在公开市场上直接转化为流动资金。虽然被盗的 Coldcard 资金前半部分仍保存在少数几个地址中,攻击者未来也许会被抓获,但后续模仿作案者更加谨慎,其中一些已经成功盗取更多比特币并完成洗钱,Galaxy Research 如是表示。比特币的抗审查性和不可篡改交易能力既给攻击者带来强烈激励,也形成一种达尔文式筛选:只有持续吸引有能力审查的项目,以及认真采取防护措施的用户和公司,才更可能长期存活。
长期以来批评 Coinkite 许可决策的 FOSS 支持者认为,许可选择会塑造这些激励。纯开源许可最大化潜在审查者和分叉者的范围。受限的“源码可见”许可可以减少商业搭便车,但也会缩小既拥有法律权利、又具备经济动机去深入投入的群体。在这种意义上,代码审查的负担会回到受限制许可下的公司身上,使其在某种程度上更接近闭源而不是开源。
AI 如何改变开源与闭源开发
人工智能现在也在改变 FOSS 与闭源之间的平衡。
Coldcard 事件之后,一个名为 Bitcoin Red Team 的志愿项目——由包括 Calle 和 AnchorWatch 的 Rob Hamilton 在内的开发者领导,并得到 OpenSats 支持——使用前沿 AI 模型扫描了数百个开源比特币仓库。在一段高强度时期内,该团队在数百个项目中提交了数千项发现,其中数十项被归类为关键或高严重性问题。团队在更广泛公开之前,先向维护者进行了负责任披露。该实践表明,系统化的 AI 辅助审查可以以前纯人工团队无法实现的规模和速度发现问题。
在这一点上,值得注意的是,Red Team 发现中国的开权重模型远比美国的闭源模型可靠;后者即便拥有网络安全权限和顶级访问权限,也拒绝回答 Red Team 的查询,这一趋势令美国开发者感到遗憾。
与此同时,大量 AI 生成代码也给 FOSS 维护者带来了新的拒绝服务式压力。审查 AI 输出通常比生成它更耗时。一些比特币之外的开源项目甚至限制了 issue tracker,或实施严格的反 AI 贡献规则,只是为了维持正常运作。
在闭源方面,依赖“安全通过隐蔽”的传统优势正在减弱。现代 AI 模型可以快速读取、去混淆、探测端点并推理代码。如今,开源与闭源之间的实际差异大多局限于从未在网上共享过的后端代码。因此,闭源代码最终只能依靠专业审计的质量、补丁部署的速度,以及让有能力且有访问权限的人持续关注的激励结构。
比特币以及更广泛的加密行业正在对自由和开源软件施加不同寻常的压力。现实货币价值的风险、对抗性经济结构,以及如今 AI 规模的分析能力,这三者结合正在迫使软件模型演化。对于支撑现代社会的基础设施而言,回到模拟时代、前数字系统几乎不是可行选项。只有审计最充分的项目,才更可能在 AI 辅助黑客的压力以及数字优先金融体系的重量之下存活下来。
本文《Open Source vs. Source-Available: What the Coldcard Failure Teaches About Bitcoin Software Incentives》最初发布于 Bitcoin Magazine,作者为 Juan Galt。