NFT:一文了解比特币开发史:中本聪离开项目前后的开发情况

作者:0xB10C翻译:阿剑要想完全理解比特币开发现状背后的原因,就不能不了解一些历史事件。本文着重列举了中本聪离开这个项目前后的历史事件、软件发布和漏洞修复;还额外添加了一个章节叙述比特币开发的现状。文章后附的时间线为每一个事件提供了额外的细节。对于这里的大部分事件,我都不是亲历者。所以这份时间线的一大部分引自JohnNewbery的一次名为“比特币开发的历史与哲学”的演讲。本文的标题也写得很清楚了,本文没有,也做不到包含每一个重要事件。历史总在不断变化,如果你认为我遗漏了什么事件,或想提议我作一些修改,请在开源项目bitcoin-development-history中提交一个issue,这也是我用来附加更多时间线的办法。中本聪仍在的时候

这份时间线的起点是2007年早期。中本聪开始开发比特币。这个点对点的电子现金系统没有受信任的地方。整个系统完全由用户运行的软件来控制。早期,有贡献者加入了中本聪的工作。除了软件的开发,这些新来的贡献者还为软件添加了Linux和maxOS操作系统的支持。到了2010年夏天,中本聪给软件做了一些关键的修改。比如,引入了“检查点”作为一项安全措施,来对抗传播低难度链的攻击。使用了这些检查点的节点会拒绝那些特定高度与特定区块不符的链。检查点是由中本聪独自硬编码的,理论上来说,这让中本聪可以自己决定整个网络要跟随哪条链。加入检查点的几天后,中本聪在版本v0.3.3的软件中放出了第一个共识机制变更。中本聪敦促用户升级。在接下来一个月里,多个小版本更新陆续放出。其中一个修复了一个致命的溢出漏洞。这个漏洞被利用来创造了两个高价值的UTXO。中本聪建议矿工们重组包含了恶意交易的区块。一周以后,中本聪加入了一个警报系统,来提醒节点运营者网络中出现的类似bug和问题。这个警报系统有一个安全模式。这个安全模式一旦触发,就会禁用整个网络的所有关于货币处理的RPC方法。只有中本聪能够用一个私钥签名来创建有效的网络警报。一些用户开始提出质疑:如果其他人,比如某个政府,拿到了这个私钥,那网络会变成什么样呢?这个时候,中本聪对比特币网络有太大的权力。但大家主要担心的不是中本聪会变坏、会摧毁整个网络,而是一个去中心化的网络中不应该存在一个单点故障。到了2010年10月,中本聪在bitcointalk论坛上发布了他的最后一个帖子,宣布移除这个安全模式。中本聪在他最后留下的电子邮件之一里面写道:“我准备到别的地方去了。有了Gavin和大家,这个项目会得到很好的维护。”一些人主张,中本聪离开比特币世界,是他最伟大的贡献之一。中本聪离开之后

几乎同一时间,整个开发流程从SVN转移到了GitHub上。BlueMatt、sipa、laanwj和gmaxwell加入了这个项目。在2011年中,BIP流程应运而生。在2011年的最后一个季度和2012年的第一个月,社区讨论了允许交易的接收者指定花费条件的多个提案。由此,P2SH交易引入了比特币。在2012年末,比特币基金会宣告成立。比特币基金会模仿的是Linux基金会。在公告帖子下面,一些人留言表示担心开发会变得中心化。Bitcoinv0.8.0在2013年春天发布。两周以后,一场意料之外的硬分叉在网络中升级了和没升级的节点间爆发。硬分叉很快就被解决了,矿工们都把挖矿算力切换到了对已升级和未升级节点都有效的链上。在2013年末,Bitcoin软件更名为BitcoinCore。在接下来几年里,包括Chaincode和Blockstream在内的公司成立。后来,MITDigitalCurrencyInitiative加入了Chaincode和Blockstream,为开发比特币的开发者和研究者提供报酬。在2015年二月,JosephPoon和TadgwDryja放出了闪电网络白皮书的第一份草稿。第二年,LukeDashjr通过BIP2修订了BIP流程;BitcoinCore放出了v0.13.0,加入了SegWit作为软分叉。在2016年11月,警报系统完全弃用。到了2017年8月,SegWit在比特币网络上激活。2019年,又一家公司SquareCrypto开始资助比特币开发。在2019年5月,PieterWuille提出了BIPtaproot。比特币开发的现状

DWF Labs拟向Yearn申请350枚YFI贷款,并使用最多300万枚CRV用于购买yCRV:8月25日消息,DWF Labs在Yearn社区提出了一项关于CRV和YFI的合作伙伴关系提议。由于Vyper版本中的一个最近发现的bug,CRV面临着链上流动性被抽干和多个贷款头寸可能被清算的巨大挑战。为了支持CRV社区,DWF Labs累积了1250万枚CRV(约500万美元),成为最大的CRV持有者之一。DWF Labs希望与Yearn建立长期合作关系,部署其CRV仓位的一部分,并为YFI在CEXs和DEXs上提供流动性,请求从DAO的财政部获得350YFI(约195万美元)的贷款。DWF Labs提议使用高达300万枚CRV(约134万美元)购买vCRV,并将vCRV和CRV的混合资产部署到vCRV-CRV池中,至少在Yearn上质押12个月。此外,DWF Labs同意在12个月期限结束时归还全部350YFI贷款,并每4周向DAO的财政部支付1%的年化利息。[2023/8/25 10:03:04]

在过去几年中,比特币的开发文化日益去中心化、目标明确而且严格。现在BitcoinCore代码库有6名维护者,分布在三个国家。只有他们能够合并由贡献者提出的代码更改。不过,在内容合并之前,更改的内容还需经过一个审议流程,这个流程也变得严格得多。举个例子,在比特币早期,有个与P2SH相竞争的提议,叫做“OP_EVAL”。有个实现了OP_EVAL的pullrequest在2011年底被合并到了代码库中。即便是这样对共识有重大变更的代码,它也只有一个审核人。RussellO’Connor开了一个issue批评了这个实现的一部分,并主张这么大的、对共识极为关键的变更应该得到更多的审核和测试。这件事推动了如何通过更多的测试和审核来实现更高质量的代码的持续讨论。到了今天,每一个合并请求都有多个开发者来审核。如果某个改变触及到了对安全性甚至共识的关键部分,审核的流程还需要通过更多的审核员审核,需要大量的测试,通常会花费几个月的时间。活跃的BitcoinCore贡献者JohnNewbery告诉我,“只需一个审核人员首肯就能合并影响共识的代码的事情,已经一去不复返”。人们也投入了很多精力到自动化的测试中,比如,有C++语言编写的单元测试和Python语言编写的功能性测试。每一个不简单的变更都要相应更新现有的测试或者在框架中加入新的测试。在单元测试和功能测试以外,还要在BitcoinCore上做模糊测试,以及建立基准测试框架来度量代码的性能。举个例子,bitcoinperf.com网络提供了Grafana和codespeed接口来可视化周期性的基准测试的结果。多年努力下来,BitcoinCore软件已经形成了一个清晰的发布流程。BitcoinCore的大版本每6个月发布一次。发行计划包括一个翻译流程,一个特性冻结流程,还通常有多个候选版本。近期CoryFields和CarlDong还致力于提高BitcoinCore构建过程的安全性,使用确定性和可引导的构建包。这个新的构建系统可能还没准备好支持即将在今年秋天发布的BitcoinCorev0.19.0,但未来可以提供更好的构建过程安全性。时间线

美国总统候选人:美联储的数字支付系统“FedNow”是政府禁止比特币的第一步:4月7日消息,美国总统候选人Robert Kennedy Jr.认为,美联储的数字支付系统“FedNow”是政府禁止比特币的第一步。Kennedy表示,人们不应被FedNow最初将仅限于银行间交易的说法所蒙蔽。他指出,这可能是“禁止和扣押比特币的第一步,就像90年前的1933年财政部对黄金所做的那样。”

他将FedNow等同于央行数字货币(CBDC),强调了这对美国公民意味着的几种危险。例如,政府可以使用这种数字货币来“监视我们所有的私人金融事务”。他解释说,这种数字货币可以让政府有权冻结公民的资产,甚至在他们未能“遵守任意命令”时限制他们的支出。(Crypto Slate)[2023/4/7 13:50:32]

2007年早期:中本聪开始开发比特币

中本聪开始写比特币的代码。这是根据中本聪在Cryptography邮件列表中一份写于2008年11月17日的邮件中得出的:“我确信自己已经在过去一年半的编程工作中解决了所有这些细节问题。”见:e-mail(metzdowd.com)以及e-mail(nakamotoinstitute.org)2008年11月1日:比特币白皮书发布

中本聪在Cryptography邮件组中公布了白皮书:“我一直在开发一个全新的数字现金系统,它是完全点对点的,没有需要用户信任的第三方。”见:e-mail(metzdowd.com)以及e-mail(nakamotoinstitute.org),以及白皮书2009年1月3日至9日之间:比特币的创世区块挖出

创世区块的时间戳是1月9日。这个区块的coinbase交易包含了著名的一段话:“TheTimes03/Jan/2009Chancelloronbrinkofsecondbailoutforbanks”见:区块浏览器、百科词条2009年1月9日:Bitcoinv0.1软件发布

中本聪在Cryptography邮件组中写道:“我发布了Bitcoin软件的第一个版本。比特币是一种新的电子现金系统,使用点对点网络来防止多重支付。它是完全去中心化的,没有服务端,也没有中心化的权威。”见:e-mail2009年12月16日:Bitcoinv0.2软件发布

MarttiMalmi(sirius-m)加入了对Linux系统的初步支持。其它新功能包括在利用CPU的多个核心来挖矿以及初步支持使用代理。见:bitcointalk.org2010年7月6日:Bitcoinv0.3软件发布

LaszloHanyecz(Bitcoinpizzaguy)加入了对macOS的支持。其他新特性包括JSON-RPC接口,以及一个新的daemon模式。用户帮助把软件的图形界面翻译成了德语、荷兰语和意大利语。见:bitcointalk.org2010年7月15日:Bitcoinv0.3.1软件发布

加勒比地区岛国圣尼拟于2023年将BCH定为法定货币:11月20日消息,据外媒报道,加勒比海地区岛国圣基茨和尼维斯宣布拟于2023年3月之前将比特币现金(BCH)变成其境内的官方支付方式。该国总理TerranceMicheal Drew还透露,圣尼官方愿意参与比特币现金挖矿。Terrance认为,加密货币代表着“未来的机会”,一旦监管机构保证消费者将获得最大程度的保护,该计划就会生效。(CryptPotato)[2022/11/20 22:09:24]

修复了各种各样的bug。GavinAndresen开始作贡献。见:bitcointalk.org2010年7月17日:Bitcoinv0.3.2软件发布

中本聪加入了检查点作为一项安全措施。检查点就是锁定某个高度的区块哈希值必须是某个,否则就拒绝。中本聪写道:“我可能会从现在开始,每发布一个新版本就增加一个检查点。如果软件已经决定了哪个是被普遍接受的区块链,就没有必要留下一个徒增困扰的、可能在几个月后发生逆转的机会。”见:bitcointalk.org、checkpointsadded(diffonGitHub)2010年7月25日:Bitcoinv0.3.3软件发布

这个版本加入了第一个共识层面的变更。比特币软件开始跟随累积工作量最多的链。在此之前,是跟随字面意义上的最长链。见:bitcointalk.org、consensuschange(diffonGitHub)整个2010年夏天

Bitcoinv0.3.xx的多个版本在此期间放出2010年8月15日:致命的溢出漏洞得到修复

中本聪在v0.3.9(ish)中放出一个补丁,告诉用户和矿工要重组带有溢出错误交易的区块。见:bitcointalk.org2010年8月22日:警报系统引入

中本聪开始开发一个警报系统,计划在v0.3.11加入。他写道:“我一直在编写一个警报系统。警报会在网络中广播,并在一些版本的软件中生效。警报消息要用只有我知道的一把私钥签名。”“节点偶尔陷入暂时的停机可能给你惊吓,但总好过你发现自己的钱被全部吸走的惊吓。”“等什么时候我们很长一段时间都没有再发现新bug、透彻的安全检查也没有发现任何问题时,这个系统可以缩减。我并不主张我们会永远使用它。但比特币还是一个beta阶段的软件。”见:bitcointalk.org2010年12月12日:中本聪发出最后一个帖子

中本聪在bitcointalk.org上发表他自己的最后一个帖子。他加入了一些DoS限制,并移除了前述的警报系统安全模式。“在DoS保护上还有许多工作要做,但我正在开发一个备份的快速构建包,以备不测;更复杂的主意则以后再说。这个包所构建的软件是v0.3.19。”见:bitcointalk.org2010年12月19日:开发工作转移到GitHub上

市场预计英国央行11月加息幅度将不到100个基点:10月13日,市场消息:市场预计英国央行11月加息幅度将不到100个基点。[2022/10/13 14:26:43]

Bitcoin软件的活跃开发和issue跟踪转移到了GitHub上。见:GitHub记录的第一个issue2011年4月23日:中本聪最后一次发声

据称来自中本聪给MikeHearn的最后一份电邮:“我已经做别的事情去了。Gavin和大家会把这件事做好。”见:pastebin.com上的电子邮件对话2011年3月至6月:新的贡献者加入

多位新的贡献者加入:TheBlueMatt、sipa、laanwj和gmaxwell。他们的第一次合并请求见:TheBlueMatt、sipa、laanwj、gmaxwell2011年8月19日:第一个BIP

第一个BIP“BIP1:BIP的目的和指南”出现。见:BIP1onGitHub2011年9月23日:Bitcoinv0.4推出

v0.4放出,主要的新功能是钱包加密。见:更新说明2011年11月21日:Bitcoin-QTv0.5发布

新特性是新的qt图形界面以及钱包加密功能的一个重大补丁见:更新说明、CVE-2011-44472011年11月~2012年4月:P2SH和其他提议上的工作

多个提议都旨在允许交易的接收者可以指定花费资金的脚本。P2SH在Bitcoin-Qtv0.5.4上实现。另外两个则都被放弃了。见:BIP12:OP_EVAL、OP_EVAL合并请求、OP_EVAL递归问题、BIP16:P2SH、BIP17:OP_CHECKHASHVERIFY2012年3月30日:Bitcoin-QTv0.6发布

新特性包括地址二维码,BIP30的一个实现,以及修复内存相关的拒绝服务攻击向量。见:更新说明2012年9月17日:Bitcoin-QTv0.7发布

包括了BIP22、BIP34和BIP35的实现,以及图形界面上的许多变更,还有联网的RPC代码。见:更新说明2012年9月27日:BitcoinFoundataion宣布成立

GavinAndresen宣布成立BitcoinFoundation。见:bitcointalk.org上的帖子2013年2月19日:Bitcoin-QTv0.8发布

本版更新将区块链的存储从BerkleyDB数据库格式迁移成LevelIDB数据库。“Ultraprune”功能由sipa(PieterWuille)实现了,他将UTXO集合从区块链数据库中分离了出来。见:更新公告2013年3月11日:意料之外的硬分叉

Celsius借款人呼吁设立破产受托人,反对由美国司法部任命审查人员:金色财经报道,Celsius借款人希望破产法院任命一名独立审查员来调查该加密货币贷款机构的财务状况,但不要任命一名为美国信托办公室工作的人。Celsius今年夏天早些时候申请了破产保护。其律师坚持认为,该公司可以借助仍在建设中的采矿业务来恢复。美国司法部下属的美国托管人办公室上个月向纽约南区破产法院提出申请,要求其任命一名独立审查员,称该公司在其财务状况方面不透明。

借款人还表示,他们希望审查员的重点是最大限度地收回资金,而不是Celsius的过去行为。为此,借款人要求法院任命一个第11章的受托人。(coindesk)[2022/9/8 13:17:28]

一次意料之外的硬分叉发生,将v0.8的节点与更老版本的节点分离了开来。见:BIP50:2013年3月链分裂事件的事后报告,bitcoin.org网络警报2013年12月12日:软件品牌重新包装

Bitcoin-Qt软件重新包装,使用BitcoinCore的新名称。见:GitHub上的PR2014年3月19日:BitcoinCorev0.9发布

新特性包括:OP_RETURN操作码可以在区块链中写入数据,但也会让相关的UTXO变成不可使用的状态。此外,autotools用作构建系统,而bitcoin-cli作为一个RPC客户端引入。见:更新说明2014年某个时间:ChaincodeLabs成立

AlexMorcos和SuhasDaftuar在2014年成立了ChaincodeLabs以打造一个工程师和科学家能够支持去中心化数字货币开发的空间。2014年10月23日:Blockstream成立

AdamBack、MattCorallo、GregMaxwell、PieterWuille等人创立了Blockstream公司并放出了他们的侧链白皮书。见:为什么我们要成立Blockstream?2015年2月16日:BitcoinCorev0.10.0发布

重要的更新包括:首先同步区块头的同步方法,REST接口以及用来创建和操控交易的bitcoin-tx模块。见:更新说明2015年2月:闪电网络白皮书发布

JosephPoon和ThaddeusDryja发布了LightningNetwork白皮书第一版草稿见:闪电网络白皮书2015年4月15日:MITDCI成立

MITMediaLab启动了DigitalCurrencyInitiative。DCI是一个研究社区,聚焦密码货币和区块链技术。见:DCI启动公告2015年7月12日:BitcoinCorev0.11.0发布

这一版软件将区块文件修剪当成一个主要的特性。见:更新说明2016年2月3日:BIP2

LukeDashjr起草了BIP2,提出了一个定义更清晰的BIP流程。这个提议被社区接受见:BIP2:BIP流程修订2016年2月23日:BitcoinCorev0.12.0发布

主要更新是引入了libsecp、sendheader,选择进入的RBF以及交易内存池限制。见:更新说明2016年4月15日:BitcoinCorev0.12.1发布

这一版本包含了BIP9以及OP_CHECKSEQUENCEVERIFY软分叉的定义。见:更新说明2016年8月23日:BitcoinCorev0.13.0发布

包含了为segwit预备的变更、压缩区块功能,交易池基于手续费价格的筛选,HD钱包的迟滞,以及CPFP交易选择算法。见:更新说明2016年10月27日:BitcoinCorev0.13.1发布

这个版本包含了SegWit软分叉。见:更新说明2016年11月1日:警报系统退休

网络层的警报系统代表着比特币的一个很大的中心化力量,如今走入历史。见:公告2017年3月8日:BitcoinCorev0.14放出

本版软件大幅提高了初次下载区块的速度。见:更新说明2017年8月24日:SegWit激活

SegWit在比特币主网上激活。2017年9月14日:v0.15放出

本版软件加入了一个更好的手续费预估功能,可在图形界面追加手续费,还有多钱包功能以及脚本缓存功能。见:更新说明2017年11月11日:v0.15.1放出

这个版本着力于P2P网络的安全性,以预防未来可能的网络分叉,也修复了一些bug,为0.15.x系列做了优化和升级。见:更新说明2018年2月26日:BitcoinCorev0.16放出

这一版主要是为BitcoinCore钱包增加了SegWit支持。见:更新说明2018年10月3日:BitcoinCorev0.17放出

这一版本为钱包增加了一些功能。其中一个是支持部分签名的比特币交易。见:更新说明2019年3月20日:SquareCrypto成立

JackDorsey宣布SquareCrypto将招聘3~4名工程师和1位设计师来全职为比特币生态作开源的贡献。见:tweet2019年5月2日:BitcoinCorev0.18放出

本版更新包括了大量新功能和一些小变更。见:更新说明2019年5月6日:Taproot提出

PieterWuille提出了多个BIP以在比特币中实现Schnorr签名以及taproot,以提高比特币智能合约的隐私性、效率和灵活性。见:邮件组帖子2019年8月9日:BitcoinCorev0.18.1放出

这个小版本加入了新功能,多个补丁以及性能升级,还更新了翻译。见:更新说明2019年8月19日:Miniscript推出

PieterWuille提出了Miniscript,让比特币脚本的编程更友好的语言。见:邮件组帖子,项目页面2019年11月24日:BitcoinCorev0.19.0.1发布

这个版本加入了新功能,多个补丁以及性能升级,还更新了翻译。见:更新说明2020年3月9日:BitcoinCorev0.19.1发布

这个版本修复了多个bug,提高了性能。见:更新说明2020年6月3日:BitcoinCorev0.20.0发布

这个版本修复了多个bug,提高了性能。见:更新说明2020年8月1日:BitcoinCorev0.20.1发布

这个小版本的更新包括应对不轨对等节点的方式不同,钱包提醒以及PSBT支持带witness和不带witness的UTXO。见:更新说明2020:为比特币项目和个人贡献者设置的开发奖

包括BitMEX、SquareCrypto、OKCoin、BTSE、Kraken在内的公司,以及HumanRightsFundation、Paradigm和Coinbase交易所,为比特币项目和个人贡献者设立了多个开发奖项。见:SquareCryptoGrants、BitMEXGrants、OKCoinGrants、CoinbaseGrants、PolylunarGrantTracker、BitcoinWordsGrantTracker所有的文字和图片都遵循自由创作和分享协议4.0,作者保留署名权,允许自由分享和改编,后续使用应维持同样的使用条件。结论

十年间,比特币的开发文化沧海桑田,从围绕中本聪的高度中心化,变为围绕几千名GitHub贡献者的去中心化。显然,代码审核、代码质量和安全性的高标准都是有必要的。这些标准得到了遵循和持之以恒的提高。我认为,要完全理解比特币开发现状背后的哲学,了解这些历史事件是必不可少的。所以我做了一个把更多事件串起来的时间线。若有进一步的研究需求,建议阅读AlexB.写的TheTaoOfBitcoinDevelopment、EricLombrozo写的TheBitcoinCoreMergeProcess以及JamesonLopp的大作WhoControlsBitcoinCore?。致谢

感谢JohnNewbery帮助我梳理并审核这篇文章。他在自己的演讲HistoryandPhilosophyofBitcoinDevelopment中做了很多历史考证工作,该演讲也是我这篇文章的基础。此外,我非常感激ChaincodeLabs,他邀请我参加他们的2019夏令营,在那里我遇见了很多有意思的人,学到了很多东西,也正是在那里,我开始着手整理时间线和撰写这篇文章。原地址:https://b10c.me/blog/004-the-incomplete-history-of-bitcoin-development/

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:15ms0-5:164ms