LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 行情分析 > Algorand基金会副主管:跨越共识道路上的三座大山

Algorand基金会副主管:跨越共识道路上的三座大山

2020-02-27 区块律动BlockBeat 来源:区块链网络

区块律动 BlockBeats 消息,今日 Algorand 基金会副主管 Haichao 在 Hacker Speaker《共识算法入门》AMA 中,进行了 BFT 共识算法和区块链的安全性相关的硬核技术分享,分享中,Haichao 简析了通往共识的道路上需要跨过的三座大山:时钟、容错和网络。




首先第一座大山是时钟。状态复制机中的事件是有先后顺序的,而我们需要解决的第一个问题,就是如何知道这些事件的先后顺序。这个问题最简单的解决方法是找一个统一的全球时钟,让所有的节点都按照这个时钟来标记事件发生的时间。然而这样的一个时钟在分布式系统中是不存在的,即使我们选中世界上某处的一个时钟作为时间源,不同节点访问该时钟所需要的时间都会不一样,这就依然会导致各节点对于事件发生的先后顺序产生不一样的观察结果。分布式系统领域的计算科学家 Leslie Lamport 在他 1978 年的论文中提出了一种基于消息到达的先后顺序来判断事件顺序的方法。然而这种方法依然需要依赖各节点都拥有「较为一致」的物理时钟这一前提假设。而在现实情况中这一假设并不稳定存在,由于物理时钟的细微差别,再经过一段时间的运行后,各时钟之间都难免会出现一些偏差;而且最初的时间调整工作,也是一个比较困难的社会工程学问题。所以 Lamport 大神的这篇工作的主要贡献,还是在于为我们清晰的指出了状态复制机模型中,缺少统一的时钟是一个重大问题,也是需要共识算法来解决的问题之一。

接下来第二座大山是容错。状态复制机中的每个节点都是独立的,而节点出现错误的概率也是独立的。这些错误的原因可能是节点的网络出现问题,也可能是硬件问题,或者是什么停电了地震了之类的,都可能导致节点出错。分布式系统领域对于错误有一个统一的定义:只要一个节点不能按照预先订好的协议进行正常的计算和消息的收发,那么它就算是出现了错误(Fault)。而共识算法的另一个设计目的,就是容错(Fault Tolerance):即让一个状态复制机系统能够在有节点出现错误的情况下,依然能够对状态达成共识,并对外提供统一的输出。

最后第三座大山是网络。状态复制机中的各个节点需要依赖网络来互相进行通信,发送消息;它们可以选择依赖现有的如 HTTP 或 RPC 协议进行通信,也可以选择自定义的协议进行。但无论选择哪种网络协议,现实世界中的网络并不总是牢靠的。发送出去的消息可能会出现延迟,丢失,传输可能中断。分布式系统中对于网络条件的定义可以简单的分为同步和异步两种。同步指的是网络中的消息总是可以在某一个常数时间 t 内被传送到;而异步指的是网络中的传输时延,并不存在一个这样的上限。(理解同步和异步的概念很重要,接下来我们会经常用到它。)而这也是共识算法需要解决的问题,它需要网络的不稳定性考虑在内,并且保证系统依然能够达成状态共识。

总结一下:共识算法是能使状态复制机网络中的各非错误节点对于交易的顺序达成共识(一致性),并总能在规定时间内对外提供输出(可终止性)的算法;并且它需要能保持系统在下列条件下依然能正常可靠的工作。

1. 不存在全球统一的时钟;
2. 各节点可能独立出错;
3. 网络中传送的消息并不总是可靠。


—-

编译者/作者:区块律动BlockBeat

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...