理解分布式系统对于理解区块链技术至关重要,因为区块链是分布式系统的核心。它是一个分布式记账系统,可以中心化或去中心化。区块链最初打算用作并且通常用作去中心化平台。它可以被认为是同时具有去中心化和分布式范式属性的系统。它是一个去中心化的分布式系统。

分布式系统是一个计算范式,其中两个或更多个节点以协调的方式彼此协作以实现共同的结果。它以这样的方式建模,即最终用户将其视为单个逻辑平台。例如,Google的搜索引擎基于大型分布式系统,但对于用户而言,它看起来像一个单一,连贯的平台。

节点可以定义为分布式系统中的单个参与者。所有节点都能够相互发送和接收消息。节点可以是诚实的,错误的或恶意的,并且它们具有存储器和处理器。在研究拜占庭将军问题之后,一个表现出非理性行为的节点也被称为拜占庭节点。

拜占庭将军问题

1982年,Lamport和其他人在他们的研究论文“拜占庭将军问题”中提出了一个思想实验,该问题可在以下网址找到:https://www.microsoft.com/en-us/research/publication/byzantine-generals-problem/ 一群领导拜占庭军队不同部分的陆军将领正计划攻击或撤离城市。在他们之间进行交流的唯一方式是通过信使。他们需要同意同时行动才能获胜。问题是一个或多个将军可能是可以发送误导性信息的叛徒。因此,需要一种可行的机制,即使在存在危险的情况下,也允许将军之间达成协议,以便攻击仍然可以同时进行。作为分布式系统的类比,将军可以被视为节点,叛徒可以被视为拜占庭(恶意)节点,信使可以被视为将军之间的沟通渠道。

这个问题在1999年由卡斯特罗和利斯科夫解决,他提出了实用的拜占庭容错算法(PBFT),在一定数量的消息之后达成共识[…]

 

拜占庭节点的这种不一致行为可能是有意恶意的,这对网络的运行是不利的。 网络上的节点的任何意外行为,无论是否恶意,都可以归类为拜占庭。

下图显示了分布式系统的小规模示例。 该分布式系统具有六个节点,其中一个节点(N4)是拜占庭节点,导致可能的数据不一致。 L2是一个破坏或缓慢的链接,这可能导致网络中的分区。

 

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

分布式系统的设计非常具有挑战性,已经证明了一种称为CAP定理的假设,该假设表明分布式系统不能同时具有所有三个非常理想的属性。即一致性,可用性和分区容错。 我们将在本章后面详细介绍CAP定理。

 

区块链101 - 区块链和比特币的历史、电子现金、区块链
区块链101 - 区块链技术的成长