主页 > imtoken官网版 > 中本聪早期源代码出炉:区块链原名时间链,比特币内置虚拟扑克游戏

中本聪早期源代码出炉:区块链原名时间链,比特币内置虚拟扑克游戏

imtoken官网版 2023-02-19 05:08:20

文章目录

本文由内容合作伙伴36氪战略合作区块链媒体《Odaily星球日报》授权发布

本文来自Bitcoin.com,原文作者:Jamie Redman

Odaily 每日星球翻译 |监听

本周,比特币源代码的早期版本浮出水面,立即在加密货币社区引起轰动。根据之前的论坛帖子和邮件列表,中本聪在 2009 年 1 月 3 日比特币网络上线之前向一些人分发了比特币源代码的私人版本。

预发行比特币,以及一个具有完全不同哈希算法的废弃创世块

自 3 月 13 日以来,加密社区一直在讨论“中本聪”原始比特币源代码,同时还发现“中本聪”可能在正式发布之前将比特币源代码的私有版本分发给了其他人比特币区块链。

原因是著名的比特币支持者 Francis Pouliot 分享了一个非常老的版本的“中本聪”源代码,他还展示了一封“中本聪”写的信,详细说明了他发送了一些“初级文件”发给一个名叫 James A. Donald 的人。

“中本聪”在 2008 年 11 月 17 日给 James A. Donald 的这封信中写道:

“我的意思是一个节点只需要延迟交易池(pending-tx pool)就可以得到它拥有的最好的分叉,我目前能想到的最好的分叉就是会出块的最好的分叉比特币早期推广视频,同时也是延迟交易池需要。我想我已经介绍了点对点广播机制,每个节点向其邻居发送包含交易和新块哈希的库存列表。邻居发送请求以获取他们没有的项目然而,如果超时项目从未通过,他们将再次向拥有该项目的其他邻居块发送请求。由于所有或大多数邻居块都应该拥有每个项目,即使这些项目被一个块弄乱了,他们可以从另一个块中获取项目。但一次只能尝试一个块。

库存请求数据方案引入了一点延迟,但请求速度最终会提高,因为额外的数据块将被排除在传输队列之外,也节省了带宽。

在过去的一年半里,我一直在研究所有这些细节和编码,但还有很多工作要做。白皮书中尚未涵盖这些功能。详细的,不过源代码快来了,我给你发了一些主要文件(目前可以根据要求改进,完整版稍后发布)”

在分发给Bitcointalk.org 会员“Cryddit”的源代码中,也有一些有趣的发现被认为是比特币代码的最早版本。例如,“Cryddit”收到的比特币代码版本中出现了“比特币矿工”一词,这似乎是中本聪首次将这些网络参与者描述为“矿工”。有趣的是,官方比特币白皮书中没有使用“矿工”一词——在整篇文章中它们被称为“节点”。再者,根据“中本聪”发给“Cryddit”的源代码,区块链这个词其实原本叫做“时间链”。

根据Bitcointalk.org用户Deepceleron在2009年1月3日(比特币创世区块诞生的同一天)截取的截图,已发布区块链有一个区块213和其他三个连接,如下:

中本聪源码早期版本流出:区块链原名时间链,比特币内置虚拟扑克游戏

比特币早期版本的源码是这样解释的:

“时间链是一个树状结构,从根的创世块开始。每个块可能有多个候选块作为它们的下一个块。通过主链/最长链,pprev 和 pnext 连接到一个路径。块索引可能有多个 prevs 指向它,但 pnext 只指向最长的分支。或者比特币早期推广视频,如果区块不是最长链的一部分,则区块索引可能为空。”

这个早期版本的源代码还提到:

“节点将新交易收集成块,将这些交易散列成哈希树,然后扫描nonce值,以使该块的块的哈希满足工作量证明的要求。当节点解决时工作量证明,他们将区块广播给所有人,并将区块添加到时间链中。区块中的第一个交易是一个特殊的交易,其中一个新的代币被创建并由区块的创建者拥有。”

(编者注:nonce 是 Number used once 或 Number once 的缩写,在密码学中 Nonce 是一个任意的或不重复的随机值,只使用一次。加密技术中的初始向量和密码散列函数都起到了确保认证信息在各种认证协议的通信应用中不被重用的重要作用。为了抵抗重放攻击。)

比特币早期代码中另一个有趣的发现是,“中本聪”最初命名了比特币的两个更小的单位,分别是“硬币”(1, 000, 000)和“分”(10, 00< @0),不是现在人们使用的“satoshi”。另外,早期的比特币代码也提到了一定的A评级系统,讲的是“原子”和“用户评论”。

下图:比特币的最小单位原本不叫“satoshi”,而是“satoshi”硬币”或“cent”

据早期比特币开发者 Mike Hearn 所说,“中本聪”最初打算将点对点(P2P)平台集成到比特币协议中,但他没有完成代码编写,因此这个想法被搁置. Mike Hearn 还透露,Bitcoin Grand Malaysia 有一个废弃的创世区块,它拥有完全不同的哈希算法。如果这个废弃的创世块用于测试,那么它可能诞生于2008年9月10日。

中本聪源码早期版本流出:区块链原名时间链,比特币内置虚拟扑克游戏

上图:从这部分代码来看,“中本聪”可能想推出一个类似于 Openbazaar 的 P2P 平台,而这个想法已经写在了比特币协议中。但比特币网络一上线,就放弃了搭建平台的想法。

互联网中继聊天客户端、P2P平台、虚拟扑克游戏

除了 2009 年 1 月 3 日发布之前的早期版本之外,比特币0.@ >1.版本 0 的源代码也有一些非常有趣的细节。例如,最初的比特币软件包括一个互联网中继聊天 (IRC) 客户端,旨在创建一种更简单的消息导向传递方式。此外,在比特币0.@>1.0代码版本的原始存储库中,发现包含一个创建虚拟扑克游戏的框架,该框架于2008年4月16日添加到比特币内部。

然而,比特币网络刚刚正式上线,包括以前的P2P平台和虚拟扑克游戏在内的很多想法都没有实现。虽然互联网中继聊天客户端的想法更新了几个版本,但在比特币 0.@>8.2 版本之后完全删除。

从下面的代码可以看出,比特币曾经有一个没有开发的内置虚拟扑克游戏。

中本聪源码早期版本流出:区块链原名时间链,比特币内置虚拟扑克游戏

直到今天,没有人知道“中本聪”为什么使用这些比特币术语,或者他对这些术语的具体定义是什么。什么以及为什么要放弃 P2P 平台和内置扑克应用程序。 “中本聪”维护比特币代码直到版本 0.@>3.19,但在 2010 年神秘离开并将工作交给了 Gavin Andresen。

但至少,从本文提到的比特币早期版本的源代码中,我们对比特币的神秘创造者有了更多的了解。