共识算法学习路线

初次接触共识算法领域让我非常头疼,大量晦涩难懂的资料让我无从下手。为了让我的人生更容易些,我决定在这里记录一些在学习过程中搜集到的认为有用的资料。

⚠️: 这个博客是随时更新的。由于我目前对相关领域认知的匮乏,目前这个博客可能毫无营养。如果你不小心检索到了这个博客,建议你不要在这里停留太长时间。

论文与算法

Paxos

Paxos 是 Lamport 大佬提出的行业奠基性的共识算法。然而由于其晦涩难懂令大量研究人员头疼。

Raft

RAFT 是斯坦福大学的学者为了降低共识算法的学习难度所设计的一种以易于理解为首要目标的共识算法。

HoneyBadgeBFT

首个实用异步拜占庭共识算法

Dumbo

Dumbo(小飞象算法)是中科院软件所在分析了 HoneyBadgeBFT 的性能瓶颈之后提出的改进算法。

该团队之后还提出了 Dumbo-MVBA(小飞象多值共识算法)。

相关资源:

区块链研究方向哪里找?看数据库顶会顶刊!| 中科院软件所 RepChain

共识算法的相关概念

FLP 不可能定理

在异步网络中,不可能存在能够容忍节点故障的一致性算法,哪怕只有一个节点故障。并且这里并没有考虑拜占庭错误,而是假设网络非常稳定、所有的消息都能被正确传递、并且仅被传递一次,即便如此都不可能找到能容忍哪怕只有一个节点失效的一致性协议。

因此在设计异步拜占庭共识算法时要通过一些假设规避 FLP 不可能定理。常见的方法有加强对网络的假设和引入随机源。

CAP 定理

分布式系统无法同时确保一致性(Consistency)、可用性(Availability)和分区容忍性(Partition),设计中往往需要弱化对某个特性的需求。

MVBA

MVBA 是 "Multi-Value Byzantine Agreement" 的缩写,即多值拜占庭协议。所谓多值,是指与传统的二值拜占庭协议(只能在两个值之间做出选择,如 0 或 1)不同,MVBA 允许节点在多个可能的值之间达成一致。

网络假设

拜占庭共识协议的设计和实现很大程度上依赖于对底层网络的假设。主要的网络假设有:

部分同步网络模型(partially synchronous model)中的一致性协议可以容忍最多 1/3 的任意错误。这里的部分同步模型是指网络延迟是有界的,但是我们无法提前得知。这里的容错也包含了拜占庭类错误。

异步网络模型(asynchronous model)中的确定性协议无法容忍错误。这里的异步模型即是前文所说的网络延迟是无界的。该结论其实就是 FLP 不可能定理的含义,在完全异步网络中的确定性协议不能容忍哪怕只有一个节点的错误。

同步网络模型(synchronous model)可以达到惊人的 100% 容错,虽然对错误节点超过 1/2 时的节点行为有限制。这里的同步模型是指网络延迟一定是有界的,即小于某个已知的常数。

GST

GST(Global Stablization Time)全局稳定时间。是一个理论上的假设。在 GST 事件发生之后,系统中所有消息的传播延迟都不会超过某个已知上限 \(\Delta\)。这意味着网络中的通信延迟在这个事件之后变得可预测。另外,节点处理消息的时间也变得可预测,不再存在不确定性。这意味着节点能够在已知的时间内处理并响应接收到的消息。

异步(asynchronous)

网络只保证消息最终能到达,并没有到达时间的限制,这几乎涵盖所有网络情况。由此可见,异步 BFT 协议的鲁棒性最强,即使在极端网络条件下协议也不会丧失活性。

分布式系统中的 Quorum 机制

共识算法学习资料

区块链技术指南

juhani 的博客[荐]

关于科研

论文数据库(Digital Library)

参考:如何收集论文(计算机科学专业)| Ying ZHANG 的博客

posted @ 2024-05-16 21:12  Undefined443  阅读(5)  评论(0编辑  收藏  举报