当前位置:首页 行业动态 正文

Bitcoin Core首席代码维护者:3个计划实现比特币开发去中心化

2023-09-30

注:原文作者是Bitcoin Core项目现任首席维护者Wladimir van der Laan,对于近期Bitcoincore.org删除比特币白皮书引起的风波,他表示自己倍感压力,并将尝试逐渐摆脱关键的决策角色,而更多地参与幕后开发工作,此外,他还提出了一些计划以提高比特币开发的去中心化。

Bitcoin Core首席代码维护者:3个计划实现比特币开发去中心化

最近发生的事件,让我对一些事情进行了反思。此外,社交媒体上的回应让我意识到,人们对我以及我在Bitcoin Core项目中的角色是什么,有着奇怪的期望。


比特币的成长


自从2011年我开始为比特币贡献代码以来,它已经有了很大的发展。对于一个运行着6000亿美元市值系统的小型自由/开源软件项目来说,一些可接受的安排已经不复存在了。市值带有很大的误导性,而我关注的不是关于具体的数字。

有一件事是很清楚的:这是一个严肃的项目,我们需要开始认真对待去中心化。


继续前进


我意识到自己是一个中心化瓶颈,尽管我认为比特币是一个非常有趣的项目,并且相信它是当前最重要的事情之一,但我也有许多其他兴趣。这让我倍感压力,而我不想要它,也不想在社交媒体上进行奇怪的争吵,我想将自己定义为一个人。


分散权力


我将从委派自己的任务开始,并减少参与。我不打算停止为比特币甚至Bitcoin Core项目做贡献,但我想摆脱关键的角色,而去做更多的幕后工作。

请注意,我们的开发活动有了很好的增长,代码本身的维护已经在多人中进行了一段时间。目前我不是最积极的维护者。你可以看看过去一年的git合并数量。

bitcoin$ git log --pretty="format:%cn" --merges --since=2020-01-01 | sort| uniq -c
313 fanquake
51 Jonas Schnelli
727 MarcoFalke
7 Pieter Wuille
65 Samuel Dobson
363 Wladimir J. van der Laan

去年,只有大约24%的合并工作是由我完成的。


计划


但是,我觉得还是有很多事情需要去解决的:

1、去中心化发布

  1. 在短期内,将bitcoincore.org转移至一个组织,而非私人所有,以降低“巴士指数”。
  2. 我认为,如果其他一些组织建立镜像会很好,因此尝试关闭bitcoincore.org的动机更少。
  3. 从长远来看,要完全摆脱一个网站来进行代码发布。因为无论是谁拥有这个网站,只要他点一下按钮,就可以关闭掉它,而且似乎全球互联网正在准备让审查变得越来越容易。我们需要一个去中心化的网络。对我们来说,一个选择是IPFS,它开始流行起来。对于二进制文件本身,已经有了通过种子下载的选项。

2、去中心化发布过程,以及发布签名

  1. 授权发布过程的更多部分。其他维护者应该可以在没有我参与的情况下发布比特币代码。
  2. 将用于签署SHA256SUMS.asc的GPG密钥重命名为“ Bitcoin Core release signing key”,而不是以我的个人title。进行一些构造,以使成功进行构建的M个(最少)可信gitian签名者中的N个,自动生成签名分发。
  3. 对于Windows和MacOS的本地代码签名(native code signing)也是如此。
  4. 从长远来看,更好的做法是分割密钥,例如通过RSA门限签名,这样整个过程就可以分布在不同的地理位置。

3、分散开发中心

  1. 从长远来看,是否可信任github代表我们的利益尚不清楚。尽管问题和PR已通过API进行了备份,但将其移至其他位置可能会严重中断开发。而且,从一个提供商跳到另一个提供商会很糟糕,理想情况下,整个过程根本不需要依赖于中央服务器。为此,我一直在关注radicle项目,这是一个P2P分布式代码协作平台,尽管它还没有完全实现,但似乎很有希望。

比特币在这里的一些要求与其他开源软件项目有很大的不同,因此我们必须开发一些工具。当然,我们也需要一些帮助。

一些小问题需要考虑:

  1. 找其他人代替我担任IRC会议主席,或者在多人之间轮换。
  2. 发布到bitcoin-dev和bitcoin-core-dev列表的发布(和发布候选)邮件将不再由我签名和发送。
  3. 我托管了一些特定于开发的工具(例如IRC和mastodon上的PR通知机器人)。由于它们是非关键性的,并且只有很少的时间来维护它们,因此我现在对此表示满意。

至于去中心化比特币的节点软件本身:

  1. Carl Dong的libbitcoin_kernel是有效工作的。Bitcoin Core是一个大型的整体项目,其中包含了共识代码,这要比其他部分更为关键。kernel将是一个具有明确定义接口的孤立部分,并且在某个时候,它具有自己的更改检查流程。与以前的libbitcoin_consensus计划的不同之处在于,kernel是有状态的:它包括UTXO管理和验证。但它不包括P2P、存储池策略、钱包、GUI和RPC代码。它可在不同的客户端中重使用,以使客户端具有更多的多样性,但不会存在偏离共识实施的风险。

在2021年的过程中,以上将是我关注Bitcoin Core的重点。