BTC创世区块诞生14周年,一文回顾比特币问世历程
在2008年至2012年之间,一个名叫Satoshi Nakamoto的程序员(网名)与世界分享了一个绝妙的愿景和构建了比特币的代码。
我们口袋里的钱有三个基本特征“1、有形;2、集中管理;3、易于伪造”。
比特币完全相反,它是一种无需银行机构和政府干预即可独立运作的加密货币—它是虚拟的,经历了加密学先驱20多年的技术演进和失败后,2008年比特币问世。
8月18日,Bitcoin.org域名被注册。
11月01日,发表白皮书:“比特币:点对点电子现金系统”。
11月16日,比特币v0.08 预发行版本流出。
11月17日,中本聪在发送给James A. Donald的邮件中写道:
“我的意思是一个节点只需要延迟交易(Pending-tx pool)来获得它拥有的最佳分支,目前能够想到的分支就是最好的分支,这个分支将拥有区块组成,也是延迟交易池所需的。我想我已经覆盖了对等网络广播机制,每个节点向其邻居节点发送一个包含交易的新区块哈希的库存列表。
邻居节点会发送请求获取他们没有的项目(item),如果超时项目就永远不会通过,他们会再次向拥有该项目的其他邻居区块发送请求。
由于所有、或是大多数邻居区块该拥有每一个项目,因此即便这些项目被一个区块弄的乱七八糟,他们也可以从其他区块中获取,但一次只能尝试一个区块。
库存请求数据方案引入了一点延迟,但请求速度最终会获得提高,因为额外数据区块将被保留在传输队列之外,同时也会节省带宽。
在过去的一年半时间里,我一直在处理所有这些细节,并进行代码编写,但仍有很多工作要做,白皮书里还没有涉及功能细节,但源代码即将推出,我把一些主要的文件发给你了(目前可根据要求提高,完整版本稍后发布)”。
在分发给Bitcointalk.org成员“ Cryddit”的比特币版本中出现了“比特币矿工”这个术语,中本聪第一次将这些网络参与者描述为“矿工”。而在比特币白皮书中他们称之为“节点”,区块链这个词最初称为“时间链(timechain)”。
2009年1月3日下午六点十五分左右,比特币的创世区块在荷兰赫尔辛基的一台小型服务器内产生,并产生了50个BTC的区块奖励,标志着比特币的正式问世。
中本聪在区块上留下的一句话,“The Times 03/Jan/2009 Chancellor on brink of second bailout for banks(泰晤士报当天的头版标题:财政大臣正站在第二轮救助银行业的边缘。)”。
中本聪在创世区块留下了50枚永远无法花掉的比特币,这50枚比特币它以硬编码的形式强行产生,没有指向前一个区块的哈希值,之后的链上交易都无法引用到这个区块,Block#0是中本聪硬编码产生的,而Block#1才是真正通过挖矿产生的首个区块。凑巧的是,中本聪挖出Block#1的时间用了6天(而不是10分钟)。
创世同一天,Bitcointalk.org用户Deepceleron的截图显示,在区块213有一个发布的区块链和三个其他链接:
早期源码是这样解释:“时间链(timechain)是一个树状结构,从根部的创世区块开始。
每个区块都可能会有多个分支候选区块成为它们的下一个区块。通过主链(最长链),pprev和pnext会连接到一个路径续航。
区块索引可能有多个pprev指向它,但是pnext只指向最长的分支。或者,如果区块不是最长链的一部分,区块索引可能就会为空。
另外根据早期开发人员Mike Hearn透露出来的信息,中本聪最初打算在比特币协议里面集成一个点对点(类Openbazaar的P2P)平台,但是它并没有完成相关的编码工作,这个想法也就搁置了。
源代码中还有一个废弃的创世区块,而且具有完全不同的哈希算法,诞生的时间大概是在2008年9月10日。
早期源码中还命名了两个比比特币更小的单位,分别是“coin(1,000,000)”和cent(10,000)”,而不是现在人们所使用的“聪(satoshi)”。此外源代码里还提到某种评级系统,并谈到“原子(atom)”和“用户评论”相关问题。
2009年1月09日,比特币v0.1.0版本发布。
比特币0.1.0的版本源码中,包含了一个互联网聊天(IRC)客户端,旨在创建一种更简单的消息引导传递方式。而且还包含了一个创建虚拟扑克游戏的框架,这个游戏框架是在2008年4月16日被添加到比特币版本中,在比特币0.8.2版本后被完全删除。
Hal Finney(芬尼)第一时间下载了这个版本,他挖了70多个区块通过邮件与中本聪沟通,报告软件的漏洞。同时,他在自己的推特上发了比特币诞生的第一条推文:“运行比特币”。
1月12日,Hal Finney(芬尼)收到中本聪进行比特币转账测试时发来的10个比特币,成为第一个比特币转账的接受者。芬尼后来在自己的自述中感叹道:
”真希望当时自己可以挖的久一点。自己的比特币得来全凭运气,没付出多少努力。来的容易,去得也容易”。后来他在100美元左右时,卖掉了大部分比特币。
2009年1月13日,比特币v0.1.3版本发布。
2009年2月05日,比特币v0.1.5版本发布。
版本0.1.5现在可用。它包括尼古拉斯(Nicholas)所遇到问题的修复程序,检查磁盘是否已满以及进行更改以尝试改善令人困惑的问题。特别感谢尼古拉斯和达斯汀的所有帮助和反馈!下载链接:http : //sourceforge.net/project/showfiles.php?group_id = 244765& package_id= 298441 更改:-磁盘已满警告-修复了DNS查找失败时可能发生的错误-防止在通讯录中输入您自己的地址,混淆地更改了您自己的地址的标签-将更改地址按钮移至选项下的菜单-进行调整以使其更快地连接-退出时关闭插座-为少于1美分的交易创建了最低费用-隐藏了只有一个选择的交易类型选择框-稍微清理了ParseMoney-消息文本的格式更简洁一些-更改了交易详细信息对话框中的字体-向其中添加了一些说明文本生成硬币的交易详细信息-用比特币地址中本聪(Satoshi Nakamoto)http://www.bitcoin.org 改写了接收到的交易的描述
2009年12月18日,比特币v0.2.0版本发布。
比特币0.2在这里!下载(适用于Windows和Linux,现在提供Windows版本)http://sourceforge.net/projects/bitcoin/files/新功能Martti Malmi-最小化到系统任务栏选项-引导时自动启动选项,因此您可以使其在后台自动运行-新选项对话框布局为将来的扩展-为Windows安装程序- Linux版本(在Ubuntu上测试)-硬币代多处理器支持-用TOR使用代理支持-修正了在初始块下载一些怠工我们也有一个http://www.bitcoin.org/smf/上的新论坛非常感谢Martti(sirius-m)的所有开发工作,并感谢New Liberty Standard在测试Linux版本方面的帮助。中本聪
2010年07月07日,比特币v0.3.0版本发布。
宣布P2P加密货币比特币0.3版!比特币是一种使用加密技术和分布式网络来替代对可信中央服务器的需求的数字货币。避免集中管理货币的任意通胀风险!比特币的总发行量限制为2100万枚硬币。硬币会根据它们贡献的CPU能力逐渐释放到网络的节点,因此您可以通过贡献空闲CPU时间来分享它们。新增功能:-命令行和JSON-RPC控件-包括不带GUI的守护程序版本-事务过滤器选项卡-哈希速度提高20%- 哈希表性能显示-MacOS X版本(感谢Laszlo)-德语,荷兰语和意大利语翻译(感谢DataWraith,Xunie和Joozero)网址为http://www.bitcoin.org,并阅读论坛以了解更多信息。
8月22日,中本聪在Bitcointalk论坛发帖说他正在构建可以向比特币网络传播信息的警报系统,并表示只有使用他设定的报警私钥才能启动,信息发布5天后,中本聪在v0.3.11版本中添加了该设定。
设定报警系统是为了让网络出现紧急情况的时候,密钥持有者能够向所有运行节点发出安全警报,从而起到一定的重要信息提醒作用,但这个安全警报系统给网络带去了长达8年的安全隐患。
2010年12月09日,比特币v0.3.18版本发布。
版本0.3.18现在可用。变化:-修正了一个的wallet.dat兼容性问题,如果你从0.3.17降级,然后再次升级- IsStandard()检查只包括已知的交易类型以块- Jgarzik的优化,加快初始块下载一点主要在增加此版本是Gavin一直在使用的基于帐户的JSON-RPC 命令(更多详细信息,请参见http://www.bitcoin.org/smf/index.php?topic=1886.0)。-getaccountaddress-sendfrom-move-getbalance-listtransactions下载:http : //sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.18/
如果密钥掌握在值得信任的人手上,无疑能够起到提醒效果;比如2013年出现的影响26个区块的错误,核心开发者就是使用中本聪留给他们的报警密钥来快速解决的。但密钥若是落到坏人手里,他们就能借着报警系统支持多条信息连续推送这一点,向节点发送海量的报警信息,从而发起DoS攻击。
不单单是这样,攻击者还能利用这项功能传递虚假或无关信息,借此在社区引起不必要的恐慌,2016年同样具有报警系统的莱特币网络发布的客户端版本更新提醒信息,却因某种原因被错误的推送到其山寨币Feathercoin所有的客户端内。
意识到隐患的存在,2016年比特币核心开发者在Bitcoin Core 0.12.1版本发布的时候就关停报警提醒功能,并在随后上线的0.13.0版本将相关代码完全删除。2017年3月开发者还在0.14.0版本内硬编码来了终极报警,并将其设置为无法被其他信息所覆盖,让社区没有留意到的老客户端能够知晓“报警系统已经破坏“的消息。
2018年7月,历时8年的安全隐患在Bitcoin Core开发者Bryan Bishop公开报警私钥后完全解除。
2010年12月13日,比特币v0.3.19版本发布。
这是次要版本,添加了一些DoS保护。更改:-添加了一些DoS限制,尽管距离DoS抵抗能力还很远。-删除了“安全模式”警报。http://www.bitcoin.org/smf/index.php?topic=2228.0下载:http : //sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.19/
2010年12月13日下午四点二十分左右,中本聪在Bitcointalk上回答完关于0.3.19版本客户端的补救方案之后,就再也没有出现在论坛上。
2008年11月1日 至 2009年1月25日
在Cryptography 邮件列表留下了17封邮件。
2009年1月25日 至 2009年11月22日
在sourceforge上发布了比特币(bitcoin)的更新信息,
2009年2月11日在P2P Foundation论坛上注册。
2009年11月22日在比特币论坛Bitcointalk参与讨论,发表539条留言。
早期比特币的升级、部分版本的编码以及漏洞的修复,都有Bitcointalk论坛社区的共同参与。
比如提供测试信息的virtualcoin、多次参与比特币升级编码工作的Gavin Andresen、及时发现并报告史上最大漏洞的lfm,还有负责提升用户界面、整个网络性能以及建立比特币论坛的Martti Malmi......
不仅仅是网络的升级维护,各语种的翻译、原始Logo的设计、维基百科比特币页面的建立。
就这样,通过日积夜累的交流和深入参与,早期比特币社区在中本聪神秘失踪前便自然而然地组建完成。
2010年12月13日神秘的离开,并把工作移交给了 Gavin Andresen。