分布式系统(TBS)

了解分布式系统对于理解区块链至关重要,因为其核心区块链基本上是一个分布式系统。更确切地说,它是一个去中心化的分布式系统。

分布式系统是一种计算模式,两个或多个节点以协调一致的方式相互协作,以实现共同的结果,并以最终用户将其视为单一逻辑平台的方式进行建模。

节点可以被定义为分布式系统中的单个玩家。所有节点都能够相互发送和接收消息。节点可以是诚实的,错误的或者恶意的,并且具有它们自己的存储器和处理器。可以表现出任意行为的节点也称为拜占庭节点。这种任意的行为可能是故意的恶意行为,这对网络的运行是不利的。通常,网络上节点的任何意外行为都可以归类为拜占庭。这个术语任意包含任何意想不到或恶意的行为:

分布式系统的设计; N4是拜占庭节点,L2是断开的或较慢的网络链路

分布式系统设计的主要挑战是节点之间的协调和容错。 即使某些节点出现故障或网络链路断开,分布式系统也应该容忍这种情况,并应该继续完美地工作,以达到预期的结果。 多年来,这一直是一个积极的研究领域,并且已经提出了一些算法和机制来克服这些问题。

分布式系统的设计如此具有挑战性,因为已经被证明的 CAP 定理指出分布式系统不能同时具有所有期望的特性。 在下一节中,将提供CAP定理的基本介绍。

CAP 定理

这也被称为布鲁尔定理,最初由Eric Brewer在1998年作为猜想介绍; 在2002年,它被Seth Gilbert和Nancy Lynch证明为一个定理。

该定理指出,任何分布式系统不能同时具有一致性,可用性和分区容限:

  • 一致性是确保分布式系统中的所有节点都拥有单个最新数据副本的属性
  • 可用性意味着系统已启动,可供使用,并在需要时接受传入请求并响应数据而无任何故障
  • 分区容错确保了如果一组节点出现故障,分布式系统仍能继续正常运行

已经证明,分布式系统不能同时拥有前面提到的所有三个属性。 这很奇怪,因为区块链设法实现所有这些属性,还是真的? 这将在后面的章节讨论区块链上下文涉及到的 CAP 定理。

为了实现容错,而使用复制。 这是实现容错的最普遍的方法。 使用共识算法实现一致性,以确保所有节点具有相同的数据副本。 这也被称为状态机复制。 区块链基本上是一种实现状态机复制的方法。

通常情况下,节点可以体验两种类型的故障:故障节点简单崩溃,故障节点可以任意展现恶意或不一致的行为。 后一种是很难处理的类型,因为它会因误导性信息而导致混淆。

拜占庭将军问题

在讨论分布式系统的共识之前,需要先引入一个历史事件作为开发成功的和实用的共识机制的先导。

1962年9月,Paul Baran 在论文“分布式通信网络”中介绍了密码签名的概念。这是第一次引入去中心化网络概念的论文。然后在1982年 Lamport 等人提出了一个思想实验。即,领导拜占庭军队不同部分的一群陆军将领正计划攻城或退城。他们之间沟通的唯一方式是使者,他们需要同时攻击以赢得胜利。问题是一个或多个将军可能是叛徒,可能会传递误导消息。因此,有必要找到一种可行的机制,即使在奸诈的将军在场的情况下,也可以让将军之间达成协议,以便这次袭击仍然可以同时发生。作为分布式系统的类比,将军可以被视为节点,叛徒可以被视为拜占庭(恶意)节点,并且信使可以被视为将军之间的沟通渠道。

Castro 和 Liskov 在1999年解决了这个问题,他们提出了“实用拜占庭容错(PBFT)算法”。在2009年的后期,第一个实际的实施是通过发明比特币来实现的,其中Proof of Work (PoW)算法被开发为实现共识的机制。

共识

共识是数据的最终状态在不信任节点之间达成一致的过程。 为了达成共识,可以使用不同的算法。 两个节点之间达成协议(例如在客户端 – 服务器系统中)很容易,但是当多个节点参与分布式系统并且他们需要就单个值达成一致时,就难以达成共识。 这种在多个节点之间达成共识的概念被称为分布式共识。

共识机制

共识机制是所有或大多数节点为了就建议的状态或价值达成一致而采取的一系列步骤。 三十多年来,这一概念已经由业界和学术界的计算机科学家进行研究。 随着比特币和区块链的出现,共识机制近来成为众人关注的焦点,并因此受到了很大的欢迎。

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据