比特币的多种实现是否危险? Plato区块链数据智能。垂直搜索。人工智能。

比特币的多种实现是危险的吗?

这是一篇观点社论 Bill Scoresby,一位以比特币为基础的小企业主,也是几本比特币自我托管指南的作者。

最近导致许多 LND 节点与比特币区块链不同步的错误是 可能是由替代实现引起的.

也许你想知道,“世界上谁在使用除了 比特币核心? 您可能不知道存在其他比特币实现。 也许您不确定不同的实现甚至意味着什么。

Bitcoin Core 最初是一款软件 中本聪 用 C++ 编写并向世界发布。 它已经更新到今天的新版本。 另一种实现是与比特币核心做同样事情的软件——执行相同的共识规则——但编写方式不同,通常使用不同的编码语言。

替代实施如何破坏闪电网络上的节点?

主要的闪电网络节点版本之一(LND) 依赖于另一种称为 btcd 的比特币实现。 当开发人员创建了一个非常大的多重签名交易时,btcd 认为它是无效的,因为它包含了太多的见证数据。 其他比特币实现——最重要的是比特币核心——对 Taproot 交易见证数据没有这样的限制,因此接受交易和包含它的区块是有效的。

结果是矿工不断在链上添加新区块,因为他们没有使用 btcd,根据他们的规则没有任何问题,但 LND 闪电节点无法识别任何这些新区块,因为它们构建在包含他们认为是无效的一笔交易。

当该漏洞在 1 月 XNUMX 日再次发生时,受影响的不仅仅是 LND 节点。 一些电子实例(电子钱包后端服务器的实现)也未能与链的其余部分达成共识。 虽然 LND 节点由于 btcd 中的类似问题而无法达成共识,但这是用 Rust 编写的比特币的实现 导致选举人节点落后,包括一些非常显眼的服务器 由 mempool.space 运行.

存在见证数据大小的限制 防止 DoS 攻击,并且也是比特币核心的一部分(尽管核心对 Taproot 交易有更大的限制)。 似乎其他两个不同步的实现有代码 维持较小的限制.

实现中非常小的差异可能导致缺乏共识。

比特币的多种实现是危险的

不喜欢比特币的多种实现的想法。 “我认为比特币的第二个兼容实现永远不会是一个好主意。” 他给出的原因是,“设计的大部分依赖于所有节点以同步方式获得完全相同的结果,因此第二次实施将对网络构成威胁。”

威胁? 有什么大不了的?

你可能听说过,工作量证明最多的链就是真正的链。 当两个不同的矿工同时发现一个区块时,链会分裂,其他矿工开始在他们首先听到的任何一个区块上构建。

一旦一个新的区块被添加到分裂的一侧,大多数节点和矿工都会接受它作为新的真实链并放弃分裂的另一侧。 这些块被称为陈旧块,尽管有些人称它们为孤立块。

由于比特币区块之间的平均时间为 10 分钟,因此整个网络很可能会在将一个区块添加到分裂的失败方之前了解这个新区块,并且工作量最大的链获胜。

“节点将遵循工作量最大的有效链......这里的关键词是有效的。 如果节点收到一个它认为无效的区块,那么无论在该区块之上做了多少工作,节点都不会接受该链。” — 安德鲁·周

关键词是“有效”。 当矿工发现一些其他矿工和节点认为无效的区块时,威胁就会出现。 认为它有效的矿工将尝试在该链上构建新块。 认为它无效的矿工将尝试在他们知道的最后一个有效区块上构建。 结果:两条链子,无法知道哪个是真的。

天底下怎么会有这样的事情发生?

好吧,正如我们在最近的 LND 节点错误案例中看到的那样,如果比特币的一种实现中存在其他实现中没有的错误,则可能导致对区块是否有效缺乏共识。

比特币没有解决这个问题的机制。 协议之外的社区必须决定接下来会发生什么。 听起来很不愉快。

以至于比特币开发者 Peter Todd 曾说过 其他实现需要匹配 Bitcoin Core bug-for-bug.

你去吧:多个实现是危险的!

比特币的其他实现是什么?它们为什么存在?

首先,大多数人都运行比特币核心。

Luke Dashjr 看到大约 43,000 个节点, 其中 98% 正在运行 Bitcoin Core 一种叫做 Coin Dance 的东西可以看到接近 15,000 个节点, 其中 96% 正在运行 Bitcoin Core. 因此,目前,似乎很少有人在使用替代实现。

尽管如此,仍有一些活跃的项目正在尝试构建和维护其他实现比特币协议的代码库。 他们包括:

詹姆森洛普有一个 优秀的页面 有更详尽的列表和所有其他实现的链接。

所有这些项目都有非常有才华的开发人员在从事这些工作,并且每个项目都已经存在了几年以上。 为什么要在看起来像这样的问题上投入这么多精力?

比特币是无需许可的。 任何人都可以下载链; 任何人都可以与网络互动; 没有人可以阻止您编写代码或运行替代实现。

然而,显然 有些人负责 对比特币存储库进行更改以及选择它们的过程似乎是非正式的。 虽然有 比特币改进提案 (BIP) 流程 对于建议对 Bitcoin Core 进行更改,它也非常非正式。

这些都不是直接的问题。 正如马蒂·本特所指出的, 粗略的共识可能是一种力量. 如果更改比特币的过程困难且不清楚,则意味着将对更改进行更彻底的审查。

粗略共识的下一步是拥有多个流行的实现。

没有多个实现可能更危险

毫无疑问,成为拥有 Bitcoin Core 访问权限的人之一已经是一项非常困难的工作。 在比特币作为货币工具发挥核心作用的世界中,这项工作将变得更加困难。 一小群开发人员可能成为非常有价值的目标。 至少,将寻求他们的关注,以便游说在下一个软件版本中包含或排除各种内容。

想一想目前存在于政界的游说行业。 为什么这样的事情不会围绕那些承诺访问比特币协议的唯一实现的人发展呢?

就像现在的政客一样,他们将被视为有权获得权力。 因此,人们会以他们为目标,除非这些开发人员没有国家的力量来保护他们。 那会是怎样的生活呢? 谁会自愿选择它?

归根结底,全球金融体系是一个相当沉重的负担,要落在一小群有权访问一个 GitHub 存储库的人的肩上。 也许与我们试图摆脱的全球金融体系没有太大区别,人们的货币未来取决于少数央行行长的决定。

多种实现救援!

比特币网络上多种实现的存在和广泛使用可以通过使恶意行为者更难更改比特币协议来减轻这些压力。

如果比特币网络中的参与者更均匀地分布在不同的实现中,那么好的想法就有更多的空间浮出水面。 如果不是全部在同一个阵营中完成,那么对比特币提出更改或拒绝更改会更加去中心化。

显然,使用不同的比特币实现方式会增加链分裂的风险。 灾难性的链条分裂——很大一部分节点和矿工意外分叉——对比特币不利,当然也不利于其价格。 但这不会威胁到比特币的无需许可的性质。

每个人都只在比特币核心上构建的集中式开发环境可能会威胁到无许可性。 关于该主题的对话需要解决如此严重依赖比特币核心的风险,而不是仅仅关注替代实施可能导致的问题。

有一个伟大的,老 关于这场辩论的文章 作者:亚伦·范·维杜姆。 您还可以阅读更新的, 信息线程 关于它。

这是 Bill Scoresby 的一篇客座文章。 表达的观点完全是他们自己的,不一定反映 BTC Inc 或比特币杂志的观点。

时间戳记:

更多来自 比特币杂志