作者: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。比特币开发的现状
安全公司:Alphapo钱包中至少有3100万美元被盗走:金色财经报道,据DeDotFi安全团队称,加密货币支付服务提供商Alphapo被盗金额超过3100万美元,有报告称金额高达约1亿美元。其中,以太坊、波场和比特币的热钱包遭到黑客攻击。被盗资金在各个EOA之间交换和分配。此次黑客攻击可能是由于私钥泄露造成的。调查仍在进行中。截至目前,被盗BTC的具体金额尚未得到证实。
金色财经此前报道,链上侦探ZachXBT表示,加密支付服务提供商Alphapo热钱包中的ETH、TRON和BTC被盗取,损失约合2300多万美元。[2023/7/24 15:54:16]
在过去几年中,比特币的开发文化日益去中心化、目标明确而且严格。现在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,但未来可以提供更好的构建过程安全性。时间线
塞尔维亚菲利普亲王:很多人正在觉醒并意识到法定货币不是解决方案:金色财经报道,据Bitcoin Magazine发文称,塞尔维亚的菲利普亲王在谈比特币时表示,很多人正在觉醒并意识到法定货币不是解决方案。[2023/1/15 11:12:23]
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软件发布
修复了各种各样的bug。GavinAndresen开始作贡献。见:bitcointalk.org2010年7月17日:Bitcoinv0.3.2软件发布
中本聪加入了检查点作为一项安全措施。检查点就是锁定某个高度的区块哈希值必须是某个,否则就拒绝。中本聪写道:“我可能会从现在开始,每发布一个新版本就增加一个检查点。如果软件已经决定了哪个是被普遍接受的区块链,就没有必要留下一个徒增困扰的、可能在几个月后发生逆转的机会。”见:bitcointalk.org、checkpointsadded(diffonGitHub)2010年7月25日:Bitcoinv0.3.3软件发布
LVMH旗下服装品牌Dior为游戏GT7发布虚拟服装胶囊和虚拟鞋系列:金色财经报道,LVMH旗下的服装品牌Dior宣布已为PS4与PS5独家电玩游戏Gran Turismo 7(简称GT7,中译“跑车浪漫旅7”)角色虚拟服装胶囊系列,该系列服装将于8月25日在游戏中正式亮相,包含带有Dior Oblique斜纹图案的黄灰配色连身衣、手套、重新诠释的Diorizon鞋,和蓝灰色头盔。[2022/8/2 2:53:32]
这个版本加入了第一个共识层面的变更。比特币软件开始跟随累积工作量最多的链。在此之前,是跟随字面意义上的最长链。见: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上
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
stop-doing-fake-bids-its-honestly-lame-my-guy.eth以100ETH成交,创第五高交易记录:7月21日消息,据NFTGo数据显示,stop-doing-fake-bids-its-honestly-lame-my-guy.eth以100ETH(约合156,289.22美元)价格成交,创ENS历史第五高记录。但根据买家franklinisbored.eth称,这笔交易是他忘记取消竞标出价导致,但最终不得不接受这笔交易。[2022/7/21 2:27:55]
第一个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日:意料之外的硬分叉
一次意料之外的硬分叉发生,将v0.8的节点与更老版本的节点分离了开来。见:BIP50:2013年3月链分裂事件的事后报告,bitcoin.org网络警报2013年12月12日:软件品牌重新包装
慢雾:Equalizer Finance被黑主要在于FlashLoanProvider合约与Vault合约不兼容:据慢雾区消息,6 月 7 日,Equalizer Finance 遭受闪电贷攻击。慢雾安全团队以简讯形式将攻击原理分享如下:
1. Equalizer Finance 存在 FlashLoanProvider 与 Vault 合约,FlashLoanProvider 合约提供闪电贷服务,用户通过调用 flashLoan 函数即可通过 FlashLoanProvider 合约从 Vault 合约中借取资金,Vault 合约的资金来源于用户提供的流动性。
2. 用户可以通过 Vault 合约的 provideLiquidity/removeLiquidity 函数进行流动性提供/移除,流动性提供获得的凭证与流动性移除获得的资金都受 Vault 合约中的流动性余额与流动性凭证总供应量的比值影响。
3. 以 WBNB Vault 为例攻击者首先从 PancekeSwap 闪电贷借出 WBNB
4. 通过 FlashLoanProvider 合约进行二次 WBNB 闪电贷操作,FlashLoanProvider 会先将 WBNB Vault 合约中 WBNB 流动性转给攻击者,随后进行闪电贷回调。
5. 攻击者在二次闪电贷回调中,向 WBNB Vault 提供流动性,由于此时 WBNB Vault 中的流动性已经借出一部分给攻击者,因此流动性余额少于预期,则攻击者所能获取的流动性凭证将多于预期。
6. 攻击者先归还二次闪电贷,然后从 WBNB Vault 中移除流动性,此时由于 WBNB Vault 中的流动性已恢复正常,因此攻击者使用添加流动性获得凭证所取出的流动性数量将多于预期。
7. 攻击者通过以上方式攻击了在各个链上的 Vault 合约,耗尽了 Equalizer Finance 的流动性。
此次攻击的主要原因在于 Equalizer Finance 协议的 FlashLoanProvider 合约与 Vault 合约不兼容。慢雾安全团队建议协议在进行实际实现时应充分考虑各个模块间的兼容性。[2022/6/8 4:09:22]
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/
标签:OINCOICOINBITFILIPCOINFYDcoinBitcoin RegularBitcoin Uncle
作者|CoinSeight出品|白话区块链今年7月末,凭借AxieInfinity链上游戏而走红的游戏公会YGG组织,宣布尝试从过去单一的游戏公会转型为DAO.
1900/1/1 0:00:00Odaily星球日报译者|念银思唐尽管比特币的价格在过去一周上涨了17%,但一位“老牌”加密货币看跌者却对此无动于衷.
1900/1/1 0:00:00本文将讨论比特币升级提案Taproot,该提案将引入很多全新功能。本文将从各个技术层面分析Taproot、介绍本次升级中涉及的技术以及这些技术会给比特币用户带来哪些好处.
1900/1/1 0:00:00“再不收手,或许会面临定罪量刑。”头部虚拟货币交易平台人士难掩内心的惴惴不安。继定性虚拟货币交易为非法后,中国监管者的肃清举动,仍在升级——完善司法指导性文件.
1900/1/1 0:00:00闪电网络和雷电网络看起来非常相近,它们有着基本相同的技术基因和奋斗目标,但又演绎着各自的生命轨迹,为不同的老板服务,闪电网络是当之无愧的哥哥,老板是比特币,而雷电网络的主子是以太坊.
1900/1/1 0:00:00全球最大的NFT交易平台OpenSea快速修复了一个威胁用户NFT资产安全的漏洞。此前,有用户在社交媒体推特上称,他们经该OpenSea获得免费空投的NFT后,加密钱包里的资产被盗走.
1900/1/1 0:00:00