交易所 jiaoyisuo 分类>>
2025年全球Top加密货币交易所权威推荐开发者JamesonLopp:谁在控制着BitcoinCorepdf
交易所,交易所排名,交易所排行,加密货币交易所排行榜,加密货币是什么,加密货币交易平台,加密货币平台,币安交易所,HTX火币交易所,欧意交易所,Bybit交易所,Coinbase交易所,Bitget交易所,Kraken交易所,交易所权威推荐,全球交易所排名,虚拟货币交易所排名,加密货币,加密货币是什么
区块链 引言 BitcoinCore 在扩容之战期间一直被诟病过于中心化,甚至是垄断独裁,最近开 发者 Jameson Lopp 发了一篇文章《谁在控制 Bitocin Core 》想为 Bitcoin C ore 正名。 文章篇幅很长, 先上他的结论: 没有人控制着比特币。 没人控制着比特币在开发 上的聚焦点( focal point ,博弈论中人们在没有沟通的情况下的选择倾向)。 谁在控制着 Bitcoin Core ? 区块链 把代码合并到 Bitcoin Core GitHub 仓库的权力控制在谁手中这个问题反复出 现。比特币协议聚焦点的控制权多年来一直是掌握在各个不同团体手中, 但我认 为这个问题本身是在扰乱视听,所以本文试图解释 Bitcoin Core 是如何运作以 及比特币协议是如何演化。 Bitcoin Core 的历史 BitcoinCore 是比特币协议开发的聚焦点,并不是一个指挥和控制点。一个聚焦 点消失,又会出现一个新的聚焦点。 Bitcoin Core 所依托的技术交流平台(目 前是 Github 仓库)只是出于便利。实际上,我们见证了比特币开发的聚焦点在 平台甚至是名字上发生的转移。 2009 年初,比特币项目的源代码只是一个托管在 SourceForge 上的 RAR 文件。 早期的开发者通过邮件与中本聪交换代码补丁。 2009 年 10 月 30 日,早期的比 特币开发者 Sirius (Martti Malmi) 在 SourceForge 上为了比特币创建了一个 S ubversion 仓库。 2011 年,比特币项目从 SourceForge 迁移到 GitHub 。201 4 年,比特币项目改名为 Bitcoin Core 。 谁也不信任 区块链 虽然有几个 GitHub 维护者的账户有权把代码合并到主分支, 但是这更像是一个 防御功能, 而不是权力地位。 如果所有人都可以把代码合并入主分支, 很快就会 变成“人多手杂”的局面。 Bitcoin Core 遵循最小特权原则( principles of le ast privilege ),任何人想要滥用权力,都会被轻易推翻。 从对立的角度来看, GitHub 是无法信任的。 GitHub 员工可能会在未经同意的 情况下往仓库注入恶意的代码。但是, GitHub 的攻击者却不太可能破解 Bitcoi n Core 维护者的 PGP 私钥。 所有的合并提交都必须有可信任 PGP 密钥的签名, Bitcoin Core 有一个持续集 成的系统,检查每个提交的 PGP 密钥。虽然我们知道这些密钥掌握在谁的手里, 但这也不是绝对安全的,因为密钥可能会被偷或破解。因此,提交( commit ) 需要用密钥进行签名也不是个完美的安全方案, 他们只是加大攻击者随意添加代 码的难度。 比特币王国的钥匙 截至撰写本文的时间,这些可信任的 PGP 公钥有: 71A3BD447 E8F274810B012346C9A6133EAC179436F14A5CF1B794860FEB804E6693 2032EE5C4C3FA15CCADB46ABE529D4BCB6416F53ECB8B3F1C0E58C15 区块链 DB6A81D30C3648A882F4316B9BCA03882CB1FC067B5D3ACFE4D30011 6E1C875A3D 这些密钥对应的五个人是: WladimirJ. van der Laan er.@jonasschnelli.chMarcoFalk e marco.muelDobson dobsonsa68@ 这是不是意味着我们可以信任这五个人?并不完全是。 密钥不是身份证明, 这些 密钥可能会落入他人之手。 运行 verify-commits python 脚本你可以确认的是: python3contrib/verify-commits/verify-commits.pyUsingverify-commits data from bitcoin/contrib/verify-commitsAllTree-SHA512s matched u p to 309bf16257b2395ce502017be627186b749ee749Thereis a valid p ath from “HEAD ” to 82bcf405f6db1d55b684a1f63a4aabad376cdad7 whereall commits are signed! 任何开发者都可以用 verify-commits 脚本进 行检验。这个脚本会检验从 20015 年 12 月 82bcf405 提交之后所有提交的 PG P 签名。这个脚本会告诉你,从那时起到现在每一行改过的代码以及谁签过名。 虽然维护者的密钥可能被偷或者做出流氓行为,但是这大大减小了攻击面。 那么这些维护者是谁,以及他们是如何成为维护者的呢? 区块链 多层防御 BitcoinCore 代码的完整性并不只是依靠于少数几个加密密钥, 还有多层安全防 护措施,提供深度的防御: Pull Request 的安全性 1- 任何人都可以通过 Pull Request( 简称 PR,提交合并代码的请求 )提出代码更 改意见,以完善软件。 2- 开发者审查所有 PR,确保它们是无害的,任何人都可以随意审查 PR 并提供 反馈。为比特币代码做贡献,没有任何门槛或是入门测试。如果一个 PR 没有人 提出合理的反对意见,维护者就会进行合并。 区块链 3-Core 维护者会设置 pre-push hook ,保证没有压入未经签名的提交( com mit )到仓库。 4- 合并提交可选择通过 OpenTimestamps 加盖时间戳。 5-TravisContinuous Integration 系统通常会运行此脚本检查 git tree( 历史 ) 的完整性并验证主分支里的所有提交都由可信任密钥进行过签名。 6- 所有人都可以运行这个脚本验证 2015 年 12 月之后所有合并提交的 PGP 签名。 我在写下这篇文章的时候在笔记本电脑上运行过一次,共花了 25 分钟。 版本的安全性 1-Gitian 确定性构建系统由多个开发者独立运行, 目标都是创建相同的二进制文 件,如果有人编译了一个与其他开发者不匹配的编译版本, 说明引入了不确定性, 那么就不会直接发布最终版本。 开发者会查看出错的地方, 进行修复, 然后构建 一个候选版本。 成功编译出确定性的版本后, 开发者会对生成的二进制文件进行 签名,保证二进制文件和工具链不会被篡改且使用的是相同的源代码。 这个方法 移除了构建和贡献过程中的单点故障。 2- 一旦成功完成了 Gitian 编译版本并且得到构建者的签名, Bitcoin Core 维护 者就用 PGP 签一个包含各个编译版本 SHA256 哈希值的信息。 如果你决定运行 区块链 预编的二进制, 你可以下载并查看其哈希值, 然后用签名版本信息的哈希值验证 其线- 以上所有信息都是开源的和可审查的,任何懂技术的人都可以查。 4- 最后,即使通过了以上所有的质量和完整性检查,提交到 Bitcoin Core 并最 终合并到一个版本里的代码也不是由任何中心化的实体部署到网络节点。相反, 每个节点的运行者都必须有意识地决定是否更新他们运行的代码。 Bitcoin Cor e 特意没有添加自动更新的功能, 因为这样可能会使用户运行到他们没有明确选 择过的代码。 尽管 Bitcoin Core 项目有这么多的安全措施,这些也都不是完美的,理论上都 有可能会被攻破。 Bitcoin Core 代码完整性的最后一道防线和其他开源项目一 样:时刻保持警惕。越多双眼睛盯着 Bitcoin Core 的代码,恶意或有缺陷的代 码写入比特币版本软件的可能性越低。 代码覆盖率 BitcoinCore 有大量的测试代码。有一个针对每一个 PR 运行的集成测试套件和 一个每晚都在主分支上运行的扩展测试套件。 你可以以下方式自己查验代码的覆盖率: 区块链 1- 克隆 Bitcoin Core 的 Github 仓库。 2- 从源代码安装构建所需的依赖项 3- 运行这些命令 4- 审查 ./total_coverage/index.html 的报告 另外,你还可以查看 LCOV 生成的代码覆盖率报告。 代码覆盖率越高,说明代码按预期运行的确定性越高。 测试非常重要, 尤其是在进行复杂更改的时候, 开发者有时候需要进行变异测试 (注:一种在细节方面改进程序源代码的软件测试方法) 。Greg Maxwell 曾在 讨论 0.15 版本的时候对此发表过评论: “测试是测试软件,但是什么是测试的测试?要进行测试的测试, 你就必须破坏 软件。—— Greg Maxwell ” 自由市场竞争 BitMEX 曾发表过一篇文章《 Competing withBitcoin Core 》概述了比特币实 现的生态。目前有十几个比特币实现,甚至还会更多“相互竞争的网络”实现。 区块链 这就是开源的自由之处,如果你不满意 Bitcoin Core 项目,你可以随意启动自 己的项目。你可以从头开始搭建或者 fork 比特币 Core 的软件。 目前有 96% 的比特币节点在运行某个版本的 Core 软件。为什么会出现这样的情 况?如果转换到其他软件实现所需的工作量这么小,为什么会出现 Bitcoin Cor e 几乎垄断的局面?毕竟, 其他很多实现都提供了与 BitcoinCore 可兼容的或者 至少是非常相似的 RPC API 。 我相信这是 Bitcoin Core 成为开发聚焦点的结果。它背后有开发人才和开发时 间作为支撑,也就是说 Bitcoin Core 项目产生代码往往拥有最好的性能、最稳 健,以及最安全。涉及到钱的管理,节点运行者不会想要运行排名第二的软件。 另外,考虑到这是个共识软件,比特币协议不具有,也可以说无法有,一个正式 的规范,因为没有人有权威写出这样的规范, 使用聚焦点实现会更安全, 因为你 与网络其他大部分节点会拥有更好的错误兼容性。 谁是 Core 开发者? 不熟悉 Core 开发程序的人从外部看可能会认为 Core 是一个单一的实体。实际 远非如此。 Core 贡献者之间经常会产生分歧,即使是最多产的贡献者,也有很 多代码没有合并到比特币代码库。如果你读过 Core 贡献指南,他们是 相当松散的,这个程序最恰当的说法是“大致共识”。 区块链 维护者会考虑一个补丁是否符合一般原则; 是否符合最低的纳入标准; 以及会判 断贡献者们的普遍共识。 谁是比特币 Core 的维护者?他们是那些在一段时间内做出高质量的贡献, 并在 项目里积累了足够多社会资本的人。 当现有团队的维护者们认为, 某个贡献者在 一方面能力突出, 可靠且具有积极性, 可以胜任维护者的工作, 他们可以授予该 贡献者的 Github 账户提交( commit )的权限。而首席维护者负责监督项目的 方方面面,并负责协调发布新的版本。这么多年来,共有三位首席维护者,他们 分别是: 中本聪( Satoshi Nakamoto ):2009/01/03-2011/02/23 加文·安德烈森(G avin Andresen ):2011/02/23-2014/04/07Wladimir van der Laan :201 4/04/07- 至今比特币 Core 维护者常被称为清洁工, 因为维护者实际上并没有权 利做出与贡献者或用户的共识相违背的决策。 但是,这个角色因为生态外界的过 度关注相当累人。例如, Gregory Maxwell 在 2017 年出于个人原因放弃了维 护者的身份,很有可能就是因为他在扩容期间承受的公众压力。 Wladimir 写了 一篇文章谈到了作为 Core 维护者的压力以及为什么移除加文的提交权限。 同样的, Jeff Garzik 也被移出开发组,他已有两年没有为 Core 做贡献。保留 他 Github 账户的权限对项目没有任何好处, 只会构成安全风险, 并且违背了 W ladimir 在他的文章中提到的最小特权原则。
2025-11-20 01:12:07
浏览次数: 次
返回列表
友情链接:





