主页 > imtoken无法提币 > 比特币简史:其发展时间表

比特币简史:其发展时间表

imtoken无法提币 2023-08-11 05:11:03

原标题:《干货 | 比特币发展不全史(上):简介》

作者:0xB10C

翻译:阿健

要全面了解比特币发展现状背后的原因,就不能不了解一些历史事件。本文重点介绍了中本聪离开项目前后的历史事件、软件发布和错误修复;增加了一个额外的章节来描述比特币开发的当前状态。文章随附的时间线提供了每个事件的更多详细信息。

我不是这里大部分事件的见证人。因此,这个时间线的很大一部分都引用自 John Newbery 的演讲,题为“比特币发展的历史和哲学”。这篇文章的标题也写得很清楚,这篇文章没有,也不能做,包括每一个重要事件。历史总是在变化,如果你认为我遗漏了什么,或者想提出一些改变建议,请在开源项目 bitcoin-development-history 中提出问题,我用它来附加更多的时间表。

当中本聪还活着的时候

这个时间线的起点是 2007 年初。中本聪开始开发比特币。这种点对点电子现金系统没有值得信赖的地方。整个系统完全由用户运行的软件控制。

早期,贡献者加入了中本聪的工作。除了软件开发之外,这些新贡献者还为软件添加了对 Linux 和 maxOS 操作系统的支持。到 2010 年夏天,中本聪对软件进行了一些关键更改。例如,引入“检查点”作为针对传播低难度链的攻击的安全措施。使用这些检查点的节点将拒绝与某个块的某个高度不匹配的链。检查点由中本聪单独硬编码,理论上允许中本聪自己决定整个网络想要遵循哪条链。

加入 checkpointing 几天后,中本聪发布了 v0.3.3 版本软件中的第一个共识机制变更。中本聪敦促用户升级。接下来的一个月,陆续发布了几个小版本更新。其中一个修复了致命的溢出漏洞。该漏洞被利用来创建两个高价值的 UTXO。中本聪建议矿工重组包含恶意交易的区块。

一周后,中本聪添加了一个警报系统,以提醒节点运营商网络中存在类似的错误和问题。该警报系统具有安全模式。这种安全模式一旦被触发,就会禁用用于跨网络处理货币的所有 RPC 方法。只有中本聪可以使用私钥签名创建有效的网络警报。一些用户开始质疑:如果政府等其他人掌握了这个私钥,网络会发生什么?

此时,中本聪对比特币网络的权力太大了。但主要担心的不是中本聪会变坏并摧毁整个网络,而是去中心化网络不应该出现单点故障。

到 2010 年 10 月,中本聪在 Bitcointalk 论坛上发表了他的最后一篇文章,宣布删除这种安全模型。在他最后一封电子邮件中,中本聪写道:“我要去别的地方。有加文和所有人,这个项目将得到很好的维护。” 有人认为比特币创立时间,中本聪离开比特币世界是他最大的贡献之一。

中本聪离开后

大约在同一时间,整个开发过程从 SVN 转移到了 GitHub。BlueMatt、sipa、laanwj 和 gmaxwell 加入了该项目。2011年年中,BIP(比特币升级提案)流程应运而生。在 2011 年最后一个季度和 2012 年第一个月,社区讨论了几项允许交易接收者指定支出条件的提案。因此,P2SH 交易引入了比特币。

2012 年底,比特币基金会成立。比特币基金会以 Linux 基金会为蓝本。在公告下方,一些人评论表示担心开发将变得集中。

比特币 v0.8.0 于 2013 年春季发布。两周后,网络中升级和未升级的节点之间发生了意外的硬分叉。硬分叉很快就解决了,矿工们将他们的挖矿能力切换到一条既适用于升级节点又适用于未升级节点的链。

2013 年底,比特币软件更名为 Bitcoin Core。在接下来的几年里,包括 Chaincode 和 Blockstream 在内的公司相继成立。后来,麻省理工学院数字货币计划加入了 Chaincode 和 Blockstream,向从事比特币工作的开发人员和研究人员付款。2015 年 2 月,Joseph Poon 和 Tadgw Dryja 发布了闪电网络白皮书的初稿。

次年,Luke Dashjr 用 BIP 2 修改了 BIP 流程;Bitcoin Core 发布 v0.13.0 并添加 SegWit 作为软分叉。2016 年 11 月,警报系统被完全弃用。到 2017 年 8 月,SegWit 在比特币网络上被激活。2019 年,另一家公司 Square Crypto 开始资助比特币开发。2019 年 5 月,Pieter Wuille 提出了 BIP Taproot。

比特币发展现状

在过去的几年里,比特币的发展文化变得越来越去中心化、有目的和僵化。比特币核心代码库现在有 6 个维护者,分布在三个国家。只有他们可以合并贡献者提出的代码更改。但是,在内容合并之前,更改的内容要经过一个也变得更加严格的审议过程。

例如,在比特币的早期,有一个与 P2SH 竞争的提议,称为“OP_EVAL”。一个实现 OP_EVAL 的拉取请求(“合并请求”)在 2011 年底被合并到代码库中。即使是对共识进行重大更改的代码也只有一个审阅者。罗素·奥康纳 (Russell O'Connor) 提出了一个批评该实施部分内容的问题,认为如此大的、对共识至关重要的更改应该得到更多的审查和测试。

该事件推动了关于如何通过更多测试和审计来实现更高质量代码的持续讨论。今天,每个合并请求都由多个开发人员审查。如果变更涉及安全甚至共识的关键部分,则审查过程需要经过更多的审核员,需要进行广泛的测试,并且通常需要几个月的时间。活跃的比特币核心贡献者 John Newbery 告诉我,“影响共识的代码可以与单个审阅者的批准合并的日子已经一去不复返了。”

人们在自动化测试方面也付出了很多努力,例如,有用 C++ 编写的单元测试和用 Python 编写的功能测试。每个重要的更改都需要更新现有测试或相应地向框架添加新测试。除了单元测试和功能测试,Bitcoin Core 上的模糊测试和衡量代码性能的基准测试框架。例如,bitcoinperf.com 网络提供 Grafana 和 codespeed 接口来可视化定期基准测试结果。

经过多年的努力,Bitcoin Core 软件已经形成了清晰的发布流程。比特币核心的主要版本每 6 个月发布一次。发布计划包括翻译过程、功能冻结过程,通常还有多个候选发布。Cory Fields 和 Carl Dong 最近还致力于提高比特币核心构建过程的安全性,使用确定性和可引导的构建包。这个新的构建系统可能还没有准备好支持将于今年秋季发布的 Bitcoin Core v0.19.0,但将来可以提供更好的构建过程安全性。

综上所述

十年来,比特币的发展文化已经从围绕中本聪高度中心化转变为围绕数千名 GitHub 贡献者(2018 年数据)去中心化。显然,高标准的代码审查、代码质量和安全性都是必要的。这些标准得到遵守并不断改进。

在我看来,了解这些历史事件对于充分理解比特币发展现状背后的哲学至关重要。所以我做了一个时间表,把更多的事件串起来。

进一步研究需要,推荐阅读 Alex B. 的 The Tao Of Bitcoin Development,Eric Lombrozo 的 The Bitcoin Core Merge Process,以及 Jameson Lopp 的杰作 Who Controls Bitcoin Core?(谁控制比特币核心?)”。

谢谢

感谢 John Newbery 帮助我整理和审阅这篇文章。他在他的演讲“比特币发展的历史与哲学”中做了很多历史研究,这是我这篇文章的基础。另外,我非常感谢 Chaincode Labs 邀请我参加他们的 Summer Residency 2019,在那里我遇到了很多有趣的人并学到了很多东西,也正是在那里我开始整理时间线并撰写本文。

时间线

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

中本聪开始为比特币编写代码。这是根据中本聪 2008 年 11 月 17 日在 Cryptography 邮件列表上的一封电子邮件:“我确信我在过去一年半的编程工作中已经解决了所有这些细节。” 请参阅:电子邮件 (metzdowd.com) 和电子邮件 (nakamotoinstitute.org)

2008 年 11 月 1 日:比特币白皮书发布

中本聪在 Cryptography 邮件组上发表了白皮书:“我一直在开发一个全新的数字现金系统,它完全是点对点的,没有用户需要信任的第三方。” 请参阅:电子邮件 (metzdowd.com) 和电子邮件 (nakamotoinstitute.org),以及白皮书

2009 年 1 月 3 日至 9 日:比特币的创世区块被开采

创世区块的时间戳是 1 月 9 日。该区块的 coinbase 交易(发行新硬币的交易类型)包含著名的段落:“The Times 03/Jan/2009 Chancellor on brink of second bailout for banks (The Times 3 January 2009 Chancellor of the Exchequer is Consider a第二个银行救助计划)”参见:区块浏览器,维基百科条目

2009 年 1 月 9 日:比特币 v0.1 软件发布

中本聪在 Cryptography 邮件组中写道:“我发布了比特币软件的第一个版本。比特币是一种新的电子现金系统,它使用点对点网络来防止多次支付。它是完全去中心化的,没有服务器也没有中央集权。” 请参阅:电子邮件

2009 年 12 月 16 日:Bitcoin v0.2 软件发布

Martti Malmi (sirius-m) 添加了对 Linux 系统的初始支持。其他新功能包括使用 CPU 的多个内核进行挖掘以及对使用代理的初始支持。参见:bitcointalk.org

2010 年 7 月 6 日:Bitcoin v0.3 软件发布

Laszlo Hanyecz(比特币披萨人)增加了对 macOS 的支持。其他新功能包括 JSON-RPC 接口和新的守护程序模式。用户帮助将软件的图形界面翻译成德语、荷兰语和意大利语。参见:bitcointalk.org

2010 年 7 月 15 日:Bitcoin v0.3.1 软件(补丁)发布

各种错误已得到修复。Gavin Andresen 开始做出贡献。参见:bitcointalk.org

2010 年 7 月 17 日:比特币 v0.3.2 软件发布

Satoshi Nakamoto 添加了检查点作为一项安全措施。检查点是锁定一定高度的块。哈希值必须是某个值,否则会被拒绝。中本聪写道:“从现在开始,我可能会在每次发布新版本时添加一个检查点。如果软件已经决定了哪个是普遍接受的区块链,那么就没有必要让附加组件受到它的困扰。,可能会在几个月内逆转。” 请参阅:bitcointalk.org,添加检查点(GitHub 上的差异)

2010 年 7 月 25 日:比特币 v0.3.3 软件发布

此版本包含第一个共识级别的更改。比特币软件开始跟随工作积累最多的链条。在此之前,就是按照字面意义上的最长的链条。参见:bitcointalk.org,共识变更(GitHub 上的差异)

整个 2010 年夏天

在此期间发布了多个版本的比特币 v0.3.xx

2010 年 8 月 15 日:修复了致命的溢出错误

Satoshi Nakamoto 在 v0.3.9(ish) 中发布了一个补丁,告诉用户和矿工使用溢出错误交易重新组织块。参见:bitcointalk.org

2010年8月22日:报警系统介绍

中本聪开始开发警报系统,计划在 v0.3.11 上添加。“我一直在编写一个警报系统。警报在网络上广播并在某些版本的软件中生效。警报消息使用只有我知道的私钥签名,”他写道。“节点偶尔会陷入临时停机可能会吓到你,但总比发现你所有的钱都被抽走要好。” “当我们很长时间没有发现新的漏洞,并且彻底的安全检查也没有发现任何问题时,这个系统可以缩小规模。我并不是说我们会永远使用它。但比特币仍然是一个测试版软件。” 参见:bitcointalk.org

2010 年 12 月 12 日:中本聪的最后一篇文章

Satoshi Nakamoto 在 bitcointalk.org 上发表了他的最后一篇文章。他添加了一些 DoS 限制并删除了前面提到的警报系统安全模式。“在 DoS 保护方面还有很多工作要做,但我正在开发一个快速构建的备份包以防万一;更复杂的想法稍后会出现。这个包构建的软件是 v0.3.19。” 参见:bitcointalk.org

2010 年 12 月 19 日:开发转移到 GitHub

比特币软件的积极开发和问题跟踪移至 GitHub。参见:GitHub 上记录的第一个问题

2011 年 4 月 23 日:中本聪最后一次发言

据称是中本聪给迈克赫恩的最后一封电子邮件:“我做了别的事情。加文和每个人都会做对的。” 请参阅:pastebin.com 上的电子邮件对话

2011 年 3 月至 6 月:添加了新的贡献者

几个新的贡献者加入:TheBlueMatt(3 月 3 日)、sipa(3 月 12 日)、laanwj(3 月 15 日)和 gmaxwell(6 月 18 日)。查看他们的第一个合并请求:TheBlueMatt、sipa、laanwj、gmaxwell

2011 年 8 月 19 日:第一个 BIP

出现第一个 BIP“BIP 1:BIP 的目的和指南”。参见:GitHub 上的 BIP 1

2011 年 9 月 23 日:推出比特币 v0.4

v0.4 发布,主要新功能是钱包加密。请参阅:更新说明

2011 年 11 月 21 日:Bitcoin-QT v0.5 发布

新功能是新的 qt GUI 和钱包加密的主要补丁(CVE-2011-444 7) 参见:更新说明,CVE-2011-4447

2011 年 11 月 ~ 2012 年 4 月:P2SH 和其他提案的工作

几个提案(OP_EVAL、P2SH、OP_CHV)都旨在允许交易的接收者指定一个脚本来花费资金。P2SH 在 Bitcoin-Qt v0.5.4 上实现。另外两个被遗弃了。请参阅:BIP 12:OP_EVAL、OP_EVAL 合并请求、OP_EVAL 递归问题、BIP 16:P2SH、BIP 17:OP_CHECKHASHVERIFY

2012 年 3 月 30 日:Bitcoin-QT v0.6 发布

新功能包括地址 QR 码、BIP30 的实现(针对涉及复制 coinbase 交易的攻击的安全修复)以及与内存相关的拒绝服务攻击向量的修复。请参阅:更新说明

2012 年 9 月 17 日:Bitcoin-QT v0.7 发布

包括 BIP22、BIP34 和 BIP35 的实现,以及对 GUI 的许多更改比特币创立时间,以及用于网络的 RPC 代码。请参阅:更新说明

2012 年 9 月 27 日:比特币基金会宣布

Gavin Andresen 宣布成立比特币基金会。参见:bitcointalk.org 上的帖子

2013 年 2 月 19 日:Bitcoin-QT v0.8 发布

此版本更新将区块链的存储从 BerkleyDB 数据库格式迁移到 LevelIDB 数据库。“Ultraprune”功能由 sipa (Pieter Wuille) 实现,他将 UTXO 集合与区块链数据库分离。见:更新通知

2013 年 3 月 11 日:意外硬分叉

发生了意外的硬分叉,将 v0.8 个节点与旧版本节点分开。请参阅:BIP 50:关于 2013 年 3 月链分裂事件的事后报告,bitcoin.org 网络警报

2013 年 12 月 12 日:软件品牌重塑

Bitcoin-Qt 软件以新名称 Bitcoin Core 重新打包。参见:GitHub 上的 PR

2014 年 3 月 19 日:Bitcoin Core v0.9 发布

新功能包括: OP_RETURN 操作码可以在区块链中写入数据,但也可以使相关的 UTXO 不可用。此外,autotools 被用作构建系统,bitcoin-cli(命令行工具)被引入作为 RPC 客户端。请参阅:更新说明

2014 年的某个时间:Chaincode Labs 成立

Alex Morcos 和 Suhas Daftuar 于 2014 年创立了 Chaincode Labs,以创造一个工程师和科学家可以支持去中心化数字货币开发的空间。

2014 年 10 月 23 日:Blockstream 成立

Adam Back、Matt Corallo、Greg Maxwell、Pieter Wuille 等人创立了 Blockstream 并发布了他们的侧链白皮书。请参阅:我们为什么要成立 Blockstream?

2015 年 2 月 16 日:比特币核心 v0.10.0 发布

重要更新包括:首先同步块头的同步方法、REST 接口以及用于创建和操作交易的 bitcoin-tx 模块。请参阅:更新说明

2015 年 2 月:闪电网络白皮书发布

Joseph Poon 和 Thaddeus Dryja 发布了闪电网络白皮书的初稿 参见:闪电网络白皮书

2015年4月15日:MIT DCI成立

麻省理工学院媒体实验室发起了数字货币计划(DCI)。DCI 是一个专注于加密货币和区块链技术的研究社区。请参阅:DCI 发布公告

2015 年 7 月 12 日:比特币核心 v0.11.0 发布

此版本的软件包括块文件修剪作为主要功能。请参阅:更新说明

2016 年 2 月 3 日:BIP 2

Luke Dashjr 起草了 BIP 2,提出了一个更明确定义的 BIP 流程。该提案已被社区接受,请参阅:BIP 2:BIP 流程修订

2016 年 2 月 23 日:比特币核心 v0.12.0 发布

主要更新是引入 libsecp、sendheader、opt-in RBF(BIP 125) 和交易内存池限制。请参阅:更新说明)

2016 年 4 月 15 日:比特币核心 v0.12.1 发布

此版本包括 BIP 9(版本识别逻辑)和 OP_CHECKSEQUENCEVERIFY 软分叉的定义。请参阅:更新说明

2016 年 8 月 23 日:比特币核心 v0.13.0 发布

包括为隔离见证(Segregated Witness)准备的变更、区块压缩功能、基于费用价格的交易池筛选、HD钱包延迟、CPFP交易选择算法。请参阅:更新说明

2016 年 10 月 27 日:比特币核心 v0.13.1 发布

此版本包括 SegWit 软分叉。请参阅:更新说明

2016 年 11 月 1 日:警报系统停用

网络层的警报系统代表了比特币的巨大中心化力量,现已成为历史。见:公告

2017 年 3 月 8 日:Bitcoin Core v0.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 日:Bitcoin Core v0.16 发布

此版本主要为比特币核心钱包增加了 SegWit 支持。请参阅:更新说明

2018 年 10 月 3 日:Bitcoin Core v0.17 发布

此版本为钱包增加了一些功能。其中之一是支持部分签名的比特币交易(PSBT)。请参阅:更新说明

2019 年 3 月 20 日:Square Crypto 成立

Jack Dorsey 宣布 Square Crypto 将招聘 3~4 名工程师和 1 名设计师,全职为比特币生态系统做出开源贡献。参见:推文

2019 年 5 月 2 日:Bitcoin Core v0.18 发布

此版本的更新包括许多新功能和一些小的更改。请参阅:更新说明

2019 年 5 月 6 日:由 Taproot 主办

Pieter Wuille 提出了几个 BIP 来在比特币中实施 Schnorr 签名和主根,以提高比特币智能合约的隐私性、效率和灵活性。请参阅:邮件组帖子

2019 年 8 月 9 日:比特币核心 v0.18.1 发布

此次要版本添加了新功能、多个补丁、性能升级和更新的翻译。请参阅:更新说明

2019 年 8 月 19 日:Miniscript 发布

Pieter Wuille 提出了 Miniscript,一种更友好的比特币脚本编程语言。请参阅:邮件组帖子,项目页面

2019 年 11 月 24 日:比特币核心 v0.19.0.1 发布

此版本添加了新功能、多个补丁和性能升级,以及更新的翻译。请参阅:更新说明

2020 年 3 月 9 日:比特币核心 v0.19.1 发布

此版本修复了几个错误并提高了性能。请参阅:更新说明

2020 年 6 月 3 日:比特币核心 v0.20.0 发布

此版本修复了几个错误并提高了性能。请参阅:更新说明

2020 年 8 月 1 日:比特币核心 v0.20.1 发布

此次要版本的更新包括处理流氓节点的不同方式、钱包提醒以及 PSBT 对 UTXO 的支持(无论是否有见证)。请参阅:更新说明

2020:比特币项目和个人贡献者发展奖

包括 BitMEX、Square Crypto、OKCoin、BTSE、Kraken 以及 Human Rights Fundation、Paradigm 和 Coinbase 交易所在内的公司已经为比特币项目和个人贡献者设立了多个开发奖。参见:Square Crypto Grants、BitMEX Grants、OKCoin Grants、Coinbase Grants、Polylunar Grant Tracker、Bitcoin Words Grant Tracker 所有文字和图片遵循自由创作和分享协议4.0,作者保留署名权并允许免费分享和改编,后续使用应保持相同的使用条件。