本文讨论了Bitcoin Core通过减少外部依赖来提高安全性和健壮性的措施,包括替换OpenSSL为libsecp256k1、移除Protobuf/BIP70支付协议、替换Berkeley DB为SQLite等,并强调了持续减少依赖以降低风险和方便维护的重要性。
作者:Brink
来源: https://brink.dev/blog/2025/09/19/minimizing-dependencies/
Bitcoin Core 代码库的安全性,在讨论比特币网络的韧性时常被正当地强调。但 Bitcoin Core 的自身的代码,并不是在运行 Bitcoin Core 软件时会运行的唯一代码。多年以来,Bitcoin Core 一直依赖于外部的、第三方的代码和库。其中一些依赖,成了历史上出现的 漏洞 的 根源;而所有的依赖,都会带来潜在的风险。工程师们已经精心又细致地减少了依赖、代之以更加安全、专用的代码,又或者完全消除依赖。
虽然使用已经存在的代码库可以加速开发和提高生产力,在 Bitcoin Core 中,安全性才是第一优先级。依赖库可能会在多个方面带来安全风险:
Bitcoin Core 宕机、暴露在远程代码执行以及其它风险下。Bitcoin Core 都可能因此带上后门。每一个依赖项都会增加攻击界面。减少依赖项则可以提高韧性。
Bitcoin Core 已经稳步移除了不必要的以及有风险的依赖库,要么是完全删除,要么是换成比特币专用的最小化的实现。以下是最显著的例子:
Bitcoin Core 用于 ECDSA 签名、随机数生成器(RNG) 和 X.509 证书的解析。它的复杂性和漏洞(例如 “心脏流血(Heartbleed)”)是危险的。Bitcoin Core 一度支持 BIP70 ,它依赖于 Protobuf 和 OpenSSL 的 X.509 证书处理。Bitcoin Core 钱包模块的后端。比特币网络无法比组成它的软件更加强壮。严格的代码审核文化,结合 模糊测试 这样的技术工具,可以让 Bitcoin Core 的代码更加安全。但尽可能减少它的外部依赖,也可以帮助保证比特币的健壮性和安全性。
这个过程仍在持续 —— 开发者仍在评估剩余的依赖(比如 libevent、boost)、修建不必要的代码、加强编译可重复性。每移除一项依赖,都可以减低风险,并让 Bitcoin Core 在接下来数十年时间里更容易维护。
依赖更少,风险就更少,比特币也会变得更强壮。
(完)
- 本文转载自: btcstudy.org/2025/12/01/... , 如有侵权请联系管理员删除。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!