打字猴:1.703864237e+09
1703864237 比特币使用的数学计算与哈希现金的基本类似,只是进行了微小的改进。比特币能做的比哈希现金多得多,毕竟,要解释比特币需要一整本书呢!我之所以提这些,是因为哈希现金的创始人亚当·贝克曾经说过:“比特币只是把哈希现金进行通货膨胀控制得到的延伸产品罢了。”我觉得这话有点过分了,就像说:“特斯拉只是在轮子上加上电池而已。”
1703864238
1703864239 正如密码学里任何一个优秀的想法一样,数学计算题目有许多变体,每个变体具有些微不同的特性。其中一个构想来自维莱特(Rivest)和夏马尔(Shamir),他们提出了RSA加密系统(RSA中的R和S分别为Rivest和Shamir的首字母)。研究哈希现金之后我们发现,解决一系列数学计算题目的成本就是解决单个题目的简单叠加。但政府发行货币时,成本可不是这么计算的。单是纸币上的防伪技术,政府就需要投入巨大的初始成本来购买设备,施加安全措施等。但是一旦研发出了防伪技术之后,成本就会降低,印一张货币和印一百张的成本差别并不大。换言之,发行纸币的固定成本很高,但浮动成本很低。维莱特和夏马尔想要设计的数学计算题目具有类似的成本结构,这样,发行第一个电子货币需要巨大的计算量,但接下来就会变得很简单。他们的设计也运用了哈希方程,但使用方式不同。我们不打算讨论他们的详细方案,但他们要解决的问题是非常有趣的。
1703864240
1703864241 人们为什么没有广泛使用哈希现金来阻止垃圾邮件呢?也许是因为垃圾邮件问题还没有足够严峻。对大多数人来说,垃圾邮件只是个恼人的小问题,并没有严重到他们愿意用计算机算力来解决它。现在,我们有了垃圾邮件过滤器,能够有效地阻挡垃圾邮件。另外一个可能的原因是,哈希现金无法真正阻止垃圾邮件。特别是,现在大多数垃圾邮件发送人通过僵尸网络,用病毒大量入侵他人电脑,批量发送垃圾邮件。他们也可以通过这些电脑来获取哈希现金。所以,通过数学计算进行限制的想法还在不断发展中。在一些替代网络协议的构想中,如小型LT协议(MinimalLT),我们还可以看到这一思路。
1703864242
1703864243 把一切信息都记录在数据库账本中
1703864244
1703864245 区块链是比特币的另一项关键技术,它像一个数据库账本,安全记录所有的比特币交易信息。区块链的理论基础由来已久,可以追溯到哈勃(Haber)和斯托尔内塔(Stornetta)在1991年开始发表的一系列论文。他们提出的不是虚拟货币体系,而是一种可以安全地对数字文件进行时间戳记录的方法。时间戳是为了记录文件创建的大概时间。更重要的是,时间戳可以准确反映文件创建的先后顺序:如果一份文件比另一份文件更早创建,可以从时间戳中看出来。时间戳的安全性体现在文件的时间戳一旦生成,无法更改。
1703864246
1703864247 用户发送文件时,哈勃和斯托尔内塔设计的体系能够向客户提供时间戳服务。服务器收到文件时,它会用当时时间和指向之前文章的链接或者指针作为签名,来签名该文件并产生包含签名信息的认证,见图0.1。这里所说的指针,指向的不是一个具体地址,而是一串数据。也就是说,如果该数据被更改了,那么这个指针也就自动失效。在第1章,我们将学习如何使用哈希方程来创建这种指针。
1703864248
1703864249
1703864250
1703864251
1703864252 图0.1 链接的时间戳
1703864253
1703864254 注:要想对一份文件进行认证,时间戳服务器必须包括指向之前文件认证的哈希指针,当前时间和文件内容本身,并用这三条信息来对文件进行签名。
1703864255
1703864256 这种协议实现的效果是:每份文件的认证都确保了上一份文件内容的完整性。其实,反复运用这一理论:每次认证基本上都保障了这个认证点之前的所有文件和认证的完整性。假设这个系统中的每个用户都能记录包括自己的文件、之前和之后的文件的认证在内的几个认证信息,那么合起来,就可以确保整个文件系统不会被更改。特别是,文件的先后顺序被保存了下来。
1703864257
1703864258 随后的一篇论文提出了一个可以提升效率的方案:不必单独链接各个文件,而是把它们集合成块,然后在一条链中链接整个块。在每个块里,文件通过树状结构而非线性结构的方式相互链接。这一方法减少了在整个系统中查找特定文件所需的工作量。图0.2展示了这一混合而成的体系的工作方法。
1703864259
1703864260
1703864261
1703864262
1703864263 图0.2 高效的链接时间戳
1703864264
1703864265 注:箭头表示哈希指针,点状垂直线表示时间间隔。
1703864266
1703864267 这一数据结构形成了比特币区块链的框架,我们在第3章可以看到这一点。比特币将它进行了微妙但至关重要的改进,它用一种类似于哈希现金的协议来降低在区块链里增添块的速度。这种改进对比特币的安全性带来了深远而有益的影响。比特币体系通过一群未被认证过的节点,即“矿工”,来记录事件,不再需要认证过的服务器。通过每个矿工而不是普通用户记录块的信息。任何人都可以通过解决数学计算,新建块,而成为一名矿工。比特币还舍弃了签名,只依靠哈希指针来确保数据结构的完整性。最后,真正的时间戳对比特币来说不是很重要,整个系统的意义在于根据先后顺序记录交易信息,并确保它不能被篡改。事实上,比特币块并不按固定时间表产生。在比特币系统里,平均每10分钟产生一个新的块,单相邻的两个块的时间间隔会有较大的差别。
1703864268
1703864269 比特币从根本上融合了用数学计算来控制新币的产生和用安全的时间戳来记录交易信息并防止双重支付这两种思路。在比特币之前,有人曾提出过,不这么成熟但也融合了这两种思路的方案。比如,戴伟(Wei Dai)在1998年提出的B币(b-money),任何人都可以通过一个类似于哈希现金的系统创造虚拟货币。它跟比特币类似,也有一个点对点网络。每个节点维护一个数据库账本,但它不同于比特币的区块链,并不记录全部交易信息。每一个节点都有它自认为是准确的记录每个人账户余额的账本。
1703864270
1703864271 尼克·萨博(Nick Szabo)还提出一个类似的方案,名为比特黄金(Bitgold)。萨博宣称他早在1998年就有了创建比特黄金的想法,但直到2005年才在博客上公开发布。我之所以提这件事,是因为《纽约时报》记者纳萨尼尔·波普(Nathaniel Popper)曾写过一本关于比特币历史的不错的书,他发现,公开发布比特黄金的那篇博文的发表时间被修改过,改成了中本聪正式发布比特币之后的两个月。他跟许多观察者一样,认为萨博就是中本聪,即使萨博否认。他认为,萨博修改博文发表时间就是证据,这样,后者就可以掩盖自己在比特币发布之前就已经发明了比特黄金这一事实。
1703864272
1703864273 但这一证据并不可信。仔细阅读博文,你就会发现,萨博明确表示自己在1998年就有了比特黄金的想法。他没有试图更改这些时间。更为合理的解释是,比特币开始流行后,他把那篇博文置顶,这样,人们就可以看到他在比特币之前就有了类似的构想。
1703864274
1703864275 比特币与B币和比特黄金有很多重要的不同之处。B币和比特黄金通过数学计算直接创造货币。任何人都可以解题,答案本身就是货币。但在比特币体系中,解决数学计算并不构成货币,只是确保区块链安全,间接地在有限时间里创造新货币。此外,B币和比特黄金靠时间戳给货币的创造和转账签名。但比特币不需要被认证过的时间戳,它只是用时间戳来保存区块和交易的先后顺序。
1703864276
1703864277 最后,如果服务器和节点对数据库账本的记录不符,B币和比特黄金并没有提供一个明确的解决方案。两位发明人所著文章暗示的解决方案是,由大多数人来决定到底哪个是对的。但是,因为任何人都可以用不同身份设置一个或一百个节点,这个解决方案并不可靠,除非有一个管理员来监管网络入口。比特币则恰恰相反,如果攻击者想更改数据,他必须要比其他所有人加起来的解决数学计算的速度还要快。这样就保证了安全性,还可以让我们量化直观地看到整个系统有多安全。
1703864278
1703864279 B币和比特黄金都不是正式发布的体系,B币是在一篇发表在邮件组的文章中提出的,比特黄金则是在几篇博文中提出的。二者未被真正实施和广泛应用。不像比特币白皮书,它们也没有给出详细设定或程序源代码。二者都涉及可能无解的若干问题。其一是前文讨论过的数据库账本不一致的问题。另外的问题是,如何设置创造新货币的数学运算的难度?具有同等运算能力的硬件随着时间的推移越来越便宜,针对这一问题,比特币采用了周期性自动调节运算难度的机制。B币和比特黄金没有这样的机制,因此,它们的货币会因为创造难度降低而贬值。
1703864280
1703864281 关于中本聪的猜测
1703864282
1703864283 你大概知道,中本聪是比特币创造者的化名。他的真实身份依然是一个谜团,但在比特币早期,他还是比较活跃的。我们可以从他留下的这些印记中,探讨一下他本人,比如说他是从什么时候开始研究比特币的?我们谈论过的那些早期构想对他有什么影响?是什么在激励着他?
1703864284
1703864285 中本聪说他从2007年5月左右开始编写比特币。他选择匿名并不表示他会在这一点事情上说谎,因此,我姑且相信他所说的。他于2008年8月注册域名bitcoin.org。同时,他开始给一些他认为可能会对比特币感兴趣的人发送邮件,阐述他的想法。2008年10月,他公开发表白皮书,解释比特币协议。此后不久,他又公开了比特币的源代码。随后两年,他在论坛上发布信息,与许多人写邮件交流,回答人们的关切。在编程方面,他对源代码进行了多次修改。他和几位开发人员一同维护源代码,修复补丁。2010年11月,别人逐渐开始接手比特币项目,而他却不再出现。
1703864286
[ 上一页 ]  [ :1.703864237e+09 ]  [ 下一页 ]