区块链技术的起源通常仅仅归因于某个神秘天才的行为,这个天才以中本聪的笔名工作。这种对历史的看法通常会让这种技术看起来几乎是不可思议的,并且很难理解。当人们了解这些系统开发背后的实际历史时,就会增加更多的基础知识。在本文中,将概述几十年来对共识算法和分布式系统的研究中最重要的主题,这些研究导致了区块链的诞生。
什么是分布式系统?
莱斯利·兰波特(Leslie Lamport),分布式系统领域的先驱之一,他曾说过:
分布式系统是这样一种系统,其中一台您甚至不知道存在的计算机的故障可能导致您自己的计算机无法使用。
这句话概括了为什么设计分布式系统如此困难。系统中的每个节点都是较大网络的一部分,并依赖于与其他节点通信以完成某些工作。大量的移动部件使这些系统成为最难开发的系统之一。然而,能够利用连接在一起许多计算机力量的好处激励了几十年的的计算机科学家研究克服这些挑战的方法。
失败模型
计算机不完美且容易坏,这是事实。然而,对于要求高可用性的服务,例如当今许多互联网公司,这些有缺陷的机器可能并不总是可以容忍的。想象一下,如果谷歌只在一台服务器上运行的话,这台服务器必须保持持续运行,如果出现故障,整个谷歌就全部瘫痪,分布式系统最重要的动机之一是使服务更具容错能力。这意味着系统本身可以容忍某些节点失败,但可以持续它提供的服务。
节点可能在不同的严重性级别出现故障。从最不严重到最严重的故障模型如下&#x