在年至年之间,一个名叫SatoshiNakamoto的程序员(网名)与世界分享了一个绝妙的愿景和构建了比特币的代码。
我们口袋里的钱有三个基本特征“1.有形;2.集中管理;3.易于伪造”。比特币完全相反,它是一种无需银行机构和政府干预即可独立运作的加密货币—它是虚拟的,经历了加密学先驱20多年的技术演进和失败后,年比特币问世。
8月18月,Bitcoin.org域名被注册。11月01日,发表白皮书:“比特币:点对点电子现金系统”。11月16日,比特币v0.08预发行版本流出。
11月17日,中本聪在发送给JamesA.Donald的邮件中写道:
“我的意思是一个节点只需要延迟交易(Pending-txpool)来获得它拥有的最佳分支,目前能够想到的分支就是最好的分支,这个分支将拥有区块组成,也是延迟交易池所需的。我想我已经覆盖了对等网络广播机制,每个节点向其邻居节点发送一个包含交易的新区块哈希的库存列表。邻居节点会发送请求获取他们没有的项目(item),如果超时项目就永远不会通过,他们会再次向拥有该项目的其他邻居区块发送请求。由于所有、或是大多数邻居区块该拥有每一个项目,因此即便这些项目被一个区块弄的乱七八糟,他们也可以从其他区块中获取,但一次只能尝试一个区块。
库存请求数据方案引入了一点延迟,但请求速度最终会获得提高,因为额外数据区块将被保留在传输队列之外,同时也会节省带宽。
在过去的一年半时间里,我一直在处理所有这些细节,并进行代码编写,但仍有很多工作要做,白皮书里还没有涉及功能细节,但源代码即将推出,我把一些主要的文件发给你了(目前可根据要求提高,完整版本稍后发布)”。
在分发给Bitcointalk.org成员“Cryddit”的比特币版本中出现了“比特币矿工”这个术语,中本聪第一次将这些网络参与者描述为“矿工”。而在比特币白皮书中他们称之为“节点”,区块链这个词最初称为“时间链(timechain)”。
年1月3日下午六点十五分左右,比特币的创世区块在荷兰赫尔辛基的一台小型服务器内产生,并产生了50个BTC的区块奖励,标志着比特币的正式问世。中本聪在区块上留下的一句话,“TheTimes03/Jan/Chancelloronbrinkofsecondbailoutforbanks(泰晤士报当天的头版标题:财政大臣正站在第二轮救助银行业的边缘。)”。
中本聪在创世区块留下了50枚永远无法花掉的比特币,这50枚比特币它以硬编码的形式强行产生,没有指向前一个区块的哈希值,之后的链上交易都无法引用到这个区块,Block#0是中本聪硬编码产生的,而Block#1才是真正通过挖矿产生的首个区块。凑巧的是,中本聪挖出Block#1的时间用了6天(而不是10分钟)。
创世同一天,Bitcointalk.org用户Deepceleron的截图显示,在区块有一个发布的区块链和三个其他链接:
早期源码是这样解释:“时间链(timechain)是一个树状结构,从根部的创世区块开始。每个区块都可能会有多个分支候选区块成为它们的下一个区块。通过主链(最长链),pprev和pnext会连接到一个路径续航。区块索引可能有多个pprev指向它,但是pnext只指向最长的分支。或者,如果区块不是最长链的一部分,区块索引可能就会为空。
另外根据早期开发人员MikeHearn透露出来的信息,中本聪最初打算在比特币协议里面集成一个点对点(类Openbazaar的P2P)平台,但是它并没有完成相关的编码工作,这个想法也就搁置了。源代码中还有一个废弃的创世区块,而且具有完全不同的哈希算法,诞生的时间大概是在年9月10日。
早期源码中还命名了两个比比特币更小的单位,分别是“coin(1,,)”和cent(10,)”,而不是现在人们所使用的“聪(satoshi)”。此外源代码里还提到某种评级系统,并谈到“原子(atom)”和“用户评论”相关问题。
年1月09日,比特币v0.1.0版本发布。
比特币0.1.0的版本源码中,包含了一个互联网聊天(IRC)客户端,旨在创建一种更简单的消息引导传递方式。而且还包含了一个创建虚拟扑克游戏的框架,这个游戏框架是在年4月16日被添加到比特币版本中,在比特币0.8.2版本后被完全删除。
HalFinney(芬尼)第一时间下载了这个版本,他挖了70多个区块通过邮件与中本聪沟通,报告软件的漏洞。同时,他在自己的推特上发了比特币诞生的第一条推文:“运行比特币”。
1月12日,HalFinney(芬尼)收到中本聪进行比特币转账测试时发来的10个比特币,成为第一个比特币转账的接受者。芬尼后来在自己的自述中感叹道:
”真希望当时自己可以挖的久一点。自己的比特币得来全凭运气,没付出多少努力。来的容易,去得也容易”。后来他在美元左右时,卖掉了大部分比特币。
年1月13日,比特币v0.1.3版本发布。年2月05日,比特币v0.1.5版本发布。
版本0.1.5现在可用。它包括尼古拉斯(Nicholas)所遇到问题的修复程序,检查磁盘是否已满以及进行更改以尝试改善令人困惑的问题。特别感谢尼古拉斯和达斯汀的所有帮助和反馈!下载链接: