张蕾讲故事:比特币的前世今生7

张蕾讲故事:比特币的前世今生7



7、数字货币如何防伪?


前面几节我们讲到,用加密学的方法来保证数字货币的安全。这一节我们讲到另外一个重要的方法-区块链(一个保存完整交易记录的账单)的发展过程。

 

1991年 Haber 和 Stornetta 发表的一篇论文中提到,用一种时间戳的方式来提高数字文档的安全性。时间戳实际上成了一个文档存在的证明,更重要一个目的是给文档进行了时间上的排序,如果一个文档在另一个文档之前产生,那么在时间戳上会有反映。时间戳不能“事后修改”的属性为文档的安全性提供了保障。

 

具体操作流程,首先需要一个时间戳服务器,当服务器收到客户发来的文档后,它会在这个文档上添加数字签名,同时附带上当前的系统时间和一个指向前一个文档的指针,这个指针是通过哈希函数实现的,所以一旦文件内容发生改变,指针就失效了。

 

时间戳服务器会给每一个文档颁发一个“证书”,这种证书保证了之前的文档的完整性。如果系统中每个用户都有一个或多个文档证书,那么就保证了整个文档的历史不能被修改,特别是先后顺序不能修改。

张蕾讲故事:比特币的前世今生7

 

后来的文章提出了提高效率的改进方案,不是单独一个文件构成一个链条,而是将多个文件先组成块,然后这些块再组成链条。在每个块内部,使用树形结构再把文档连接起来。当需要验证一个文档出现在某个特定的历史节点上,这种结构的查询量将会大大减少。这种混合方案的结构图如下:


张蕾讲故事:比特币的前世今生7


 

实际上,这两种数据结构就是比特币的区块链的数据结构的原型。在比特币中进行了一些巧妙的优化:


首先,一个哈希式的协议延迟了一个新的区块追加到区块链上的速度,这个改变深刻地影响了比特币的安全模型。


其次,不再需要“可信的”服务器,取而代之的是“不可信”的“矿工”,每一个矿工负责记录和跟踪交易信息。不需要每个节点都来维护一个账单,但是每个节点可以通过**谜题的方式成为矿工。


在比特币中,签名的也被取消,仅仅依靠哈希指针就保证了整个数据结构的完整性。


最后,在比特币中,时间戳也不再那么重要,整个系统通过记录交易的相对顺序来防止篡改。(事实上,比特币是个分布式系统,没有全局性的标准时间的概念)

 

至此,我们可以归纳一下,比特币本质上是两种协议的组合。一种是利用**谜题的方法来控制货币的产生,另一种是利用时间戳的安全属性来维护一个交易账单,防止双重消费和数据篡改。而这两个协议,都不是比特币首创的,它只是巧妙地将它们组合在了一起。

 

在很早以前,也有过类似的组合式的尝试。首先介绍是的1998年 Wei Dai 提出的 b-money系统。在 b-money 中,任何人都可以通过一个哈希风格的系统创造货币,它也是一个p2p的网络架构。每一个节点维护一个账单(但是并不是像比特币那样的全局账单)。

 

另一个相似的系统是 Nick Szabo 提出的 Bitgold 系统。Szabo 说他早在1998年就有了Bitgold 的创意,但是直到2005年,才通过博客对外公布。(曾经有个记者写文章分析,认为Szabo和比特币的创始人Satoshi是同一人)

 

比特币和这两个系统相比,有很多重要的不同点。在这两个早期的系统中,计算谜题和发行货币是直接绑定的,任何人解决了一个谜题,就可以发行一定数量的货币。而在比特币中,解决谜题的主要目的并不是为了发行货币,而是控制货币产生的时间间隔,以此增强区块链的安全性。

 

第二个不同点是,b-money 和 Bitgold 系统都依赖时间戳服务,用来签署、发行或转移货币。而在比特币系统中,并不需要一个可信的时间服务,只需要保持区块和交易的相对顺序。

  

最后一个不同点,在 b-money 和 Bitgold 系统中,如果不同节点对账单内容产生意见分歧时,并没有一个明确的解决方案。从发表的文章来看,作者应该倾向于“少数服从多数”的原则。在去中心化的网络中,这种机制显然是不安全的。攻击者可以隐藏自己的身份并且同时控制成千上百的电脑,最终可能破坏整个网络的共识系统。而在比特币系统中,攻击者要想改变交易的历史,他解决谜题的速度必须比其他所有参与者的总和还要快。这种机制不仅更安全,也使我们可以量化系统的安全性。

 

最后再说一点,B-money 和 Bitgold 系统都没有进行正式的发布,它们只是存在于邮件列表和一系列博客中。相比之下,比特币有正式的白皮书,还有完整的开源代码和规范。

 

相比之前的各种探索,比特币更像一个集大成的产品。虽然还有各种不同的声音,但是比特币第一次给世界提供了关于数字货币、数字支付的一个完整的解决方案。它将这个领域长期隐藏的各个知识点都显化出来,将复杂的问题用简单的方式去解决,让更多人的去使用、去体验、去批判。

 

我想这就是比特币成功的地方吧。






下一篇,我将介绍中本聪本人的一些故事。欢迎关注。




我正在进行为期三个月(12周)的网络视频教学:《比特币和数字加密货币技术》 将详细讲解比特币和区块链的核心算法和技术实现。请加我个人微信(161555)咨询,或者通过下方“阅读原文”直接报名。