看懂“拜占庭容错”,也就看懂了区块链的核心技术

简介:

上一篇我们简单提到了拜占庭将军问题:拜占庭的n个将军围攻一个敌人,n个将军包围着这个敌人,所以他们是在不同的地方。忠诚的将军希望通过某种协议达成某个命令的一致(比如约定某个时间一起进攻)。但其中一些背叛的将军会通过发送错误的消息阻挠忠诚的将军达成命令上的一致。如果同时发起进攻的将军数量少于m个,那么不足以歼灭敌人反而容易被敌人全部歼灭。怎样做才能保证有多于m个将军在同一时间一起发起进攻?

“拜占庭将军问题”模型中,对于将军们(节点)有两个默认的假设: 

  • 所有忠诚的将军收到相同的命令后,执行这条命令得到的结果一定是相同的;

  • 如果命令是正确的,那么所有忠诚的将军必须执行这条命令。

假设1的含义是:所有节点对命令的解析和执行是一样的,这个命令必须是一个确定性的命令,不能存在随机性,也不能依赖节点自身的状态。(这个命令不能是心情好就攻击敌人,心情不好就原地休息。)

假设2的含义是:忠诚的将军需要判断接收到的命令是不是正确的。这个判断命令的方法是整个拜占庭容错技术的核心。

对于将军们的通信过程,在“拜占庭将军问题”中也是有默认假设的:点对点通信是没问题的。也就是说,在这里,我们假设A将军要给B将军一条命令X,那么派出去的传令兵一定会准确的把命令X传递给B将军。

有了上述假设,我们来看看将军们面临的核心问题是什么。

我们考虑4个将军的情况,同时假设4个将军中最多只有1个背叛者。当4个将军A、B、C、D把敌人包围了之后,必须协商一个统一的时间去发起进攻。这时,A将军派出了3个传令兵,分别告诉B、C、D将军,下午1点准时发起进攻。到了下午1点,A、C、D三个将军发起了进攻,歼灭了敌人,同时他们三个发现B是背叛的。虽然B背叛了,但是对最终任务没有影响。

 区块链研习 | 看懂拜占庭容错,也就看懂了区块链的核心技术

但如果A是背叛的,会发生什么情况?A派出3个传令兵,分别告诉B、C、D将军在下午1点、2点、3点发起进攻。于是,到了下午1点,B将军去攻击敌人,由于寡不敌众,全军覆没;2点,C将军全军覆没;3点,D将军全军覆没。

因为对于忠诚的将军来说,他不知道谁是背叛者,所以,他不能完全相信接收到的命令,他必须对命令做出判断。在1999年,著名的PBFT算法出现了。这个算法说起来也不难理解,他的核心思想是:对于每一个收到命令的将军,都要去询问其他人,他们收到的命令是什么。

区块链研习 | 看懂拜占庭容错,也就看懂了区块链的核心技术 

回到刚才的第二种情况(A是背叛者),A派出3个传令兵,分别告诉B、C、D将军在下午1点、2点、3点发起进攻。B将军派出传令兵去告诉C和D两位将军,B收到的命令是下午1点进攻。C也同样派出了传令兵分别告诉B和D两位将军,C收到的命令是下午2点进攻。D也同样告诉B和C两位将军,D收到的命令是下午3点进攻。于是,B得到了3条指令:A命令B下午1点进攻,A命令C下午2点进攻,A命令D下午3点进攻。B很容易判断出来,A是背叛者(因为B知道最多只有一个背叛者)。C和D也能做出同样的判断。因此这次进攻时间的协商是无效的。

 区块链研习 | 看懂拜占庭容错,也就看懂了区块链的核心技术

采用了这种办法以后,另一种情况又会怎样?当B是背叛者,A将军派出了3个传令兵,分别告诉B、C、D将军,下午1点准时发起进攻。B告诉C说B收到的命令是下午2点,B告诉D说收到的命令是下午2点,C和D分别告诉另外2个将军,A告诉他们的命令是下午1点。

 区块链研习 | 看懂拜占庭容错,也就看懂了区块链的核心技术区块链研习 | 看懂拜占庭容错,也就看懂了区块链的核心技术

于是,C、D收到的消息都是两个1点,一个2点。对于C、D而言,不需要判断是A和B谁是背叛者——他们只需要执行收到多的那个命令就可以了。

如果A是忠诚的,那么B是背叛的,这种情况下对于A来说,他知道自己是忠诚的,他发出的命令,至少有2个将军会执行,所以下午1点,A、C、D三个将军一起去进攻,有3个将军一起发起攻击,敌人被歼灭了。如果B是忠诚的,那么B会收到两个1点一个2点,B也会执行收到多的命令,于是B、C、D三个将军一起去进攻,有3个将军一起发起攻击,敌人被歼灭了。不管怎样,按照这种方式执行,结果是没问题的。

 区块链研习 | 看懂拜占庭容错,也就看懂了区块链的核心技术

采用PBFT方法,本质上就是利用通信次数换取信用。每个命令的执行都需要节点间两两交互去核验消息,通信代价是非常高的。通常采用PBFT算法,节点间的通信复杂度是节点数的平方级的。

注意,上面所讨论的所有情况里,还有一个假设:所有传递的消息都是口头消息。意思就是,A告诉B下午1点进攻,B可能告诉C说“A命令我下午2点进攻”。如果采用了书写的消息,那么情况是不一样的。A派传令兵给B一张纸,A将军用自己独特的笔迹写的“下午1点进攻”,然后要求B把这张纸传给C,B在纸上用自己独特的笔迹签名表示同意,然后B传给C,C也签名表示同意,然后D也同意,最后签过所有名的纸再给每个人看一眼,就可以让所有节点一致了。这种采用书面签名消息的情况,对算法要求简单得多。但是,采用书面消息的前提是:每个将军都知道其他将军的笔迹是什么样的,并且无法模仿其他将军的笔迹。 

在PBFT的基础上,又出现了很多变种算法,这些算法往往都带有一些额外的假设。例如:认为发起请求的客户端一定是忠诚的,由客户端去验证节点是否忠诚;认为绝大部分时候将军都是忠诚的,所以降低两两交互核验消息的次数;通过对节点进行分工,来提高整个系统的处理速度;等。这些变种算法由于增加了额外的假设,导致了整个系统的去中心化程度的降低(关于区块链系统去中心化程度的理解,可以参见本系列的第6篇文章)。

但是,对于不同类型的应用场景,有些假设是合理的,有些假设则是不合理的。例如,在类似比特币的代币转账系统中,不能认为客户端是忠诚的,因为客户端很可能会发起双花交易。因此,当企业希望使用区块链技术改进自己的业务或者开展新业务的时候,一定要选择适合自己业务的区块链技术和系统。



本文作者:敖萌
本文转自雷锋网禁止二次转载, 原文链接
目录
相关文章
|
5天前
|
存储 供应链 物联网
未来技术纵横谈:区块链、物联网与虚拟现实的融合革新
【4月更文挑战第21天】 随着科技不断进步,新兴技术正在重塑我们的世界。本文将深入探讨三种引人注目的技术——区块链、物联网(IoT)和虚拟现实(VR)——它们各自的发展趋势及其在不同领域的应用前景。区块链技术以其不可篡改的数据记录特性,在金融安全、供应链管理等领域展现出巨大潜力;物联网通过智能设备互联,推动智能家居、智慧城市的发展;而虚拟现实则以其沉浸式体验,改变教育、娱乐等多个行业的面貌。这些技术的交叉融合预示着一个更加智能、互联和虚拟的未来。
18 5
|
25天前
|
存储 传感器 监控
未来智能城市中的区块链技术应用
随着城市化进程不断加速,智能城市成为了未来城市发展的主要趋势之一。区块链技术作为一种去中心化、安全可靠的数据传输和存储方式,将在智能城市建设中发挥关键作用。本文将探讨区块链技术在智能城市中的应用场景,并分析其对城市管理、信息共享和安全保障等方面的积极影响。
15 2
|
4天前
|
供应链 安全 物联网
未来技术纵横谈:区块链、物联网与虚拟现实的融合革新
【4月更文挑战第22天】 在数字化浪潮中,新兴技术的蓬勃发展正推动着传统行业的变革与升级。区块链技术以其不可篡改和去中心化的特性,为数据安全和信息透明提供了新的解决方案;物联网(IoT)通过智能设备的互联互通,实现了环境与行为的智能化管理;而虚拟现实(VR)技术则拓展了人们的感官体验,创造了沉浸式互动的新空间。本文聚焦于这些技术的发展趋势,探讨其在多个应用场景中的结合与创新,旨在描绘一幅技术交织下的未来蓝图。
15 3
|
1天前
|
安全 物联网 区块链
未来技术的融合潮流:区块链、物联网与虚拟现实的交汇点
【4月更文挑战第25天】 随着科技的不断进步,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)已逐渐从概念验证走向实际应用。这些技术不仅单独发展迅猛,而且开始相互融合,创造出前所未有的应用场景和商业模式。本文将深入探讨这些技术的发展趋势,分析它们如何协同工作,以及在多个行业中的潜在应用。特别地,我们将聚焦于金融、医疗和娱乐等行业,揭示这些技术如何推动创新并带来颠覆性的变化。
|
1天前
|
供应链 物联网 区块链
未来交织:区块链技术、物联网和虚拟现实的融合革新
【4月更文挑战第25天】 随着科技的迅猛发展,新兴技术如区块链、物联网(IoT)、以及虚拟现实(VR)正在重塑我们的世界。这些技术不仅在独立领域中取得显著进展,而且开始相互交融,催生出一系列创新应用。本文将探讨这些技术的发展趋势,并深入剖析它们在不同行业中的应用场景,包括供应链管理、智能家居、远程工作、以及沉浸式娱乐等领域。
|
1天前
|
供应链 安全 物联网
未来技术的融合潮流:区块链、物联网与虚拟现实的革新之旅
【4月更文挑战第25天】 在数字时代的浪潮中,新兴技术正以前所未有的速度重塑世界。本文将深入探讨区块链技术、物联网(IoT)以及虚拟现实(VR)这三个领域的发展趋势和实际应用。从确保交易安全到实现设备的智能对话,再到创造沉浸式体验,这些技术正在推动着社会的各个维度向前发展。文章旨在提供一个全景视角,展现这些技术如何相互交织,共同构建一个更加智能、互联且安全的未来。
6 0
|
2天前
|
安全 物联网 区块链
未来技术的融合潮流:区块链、物联网和虚拟现实的交汇点
【4月更文挑战第24天】 随着科技的不断进步,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正在重塑我们的世界。这些技术不仅单独发展,而且越来越多地相互结合,创造出前所未有的应用场景。本文将探讨这些技术的独立趋势,并着重分析它们如何交织在一起,形成一个全新的技术生态系统,从而推动行业革新和社会进步。
|
3天前
|
监控 物联网 区块链
未来技术纵横谈:区块链、物联网与虚拟现实的融合与创新
【4月更文挑战第23天】随着科技的不断进步,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)等正在重塑我们的世界。本文将深入探讨这些技术的最新发展趋势及其在不同领域的应用案例,揭示它们如何相互交织,共同推动着数字化转型的浪潮。
|
7天前
|
消息中间件 数据挖掘 Kafka
《区块链公链数据分析简易速速上手小册》第5章:高级数据分析技术(2024 最新版)(上)
《区块链公链数据分析简易速速上手小册》第5章:高级数据分析技术(2024 最新版)(上)
39 1
|
13天前
|
供应链 安全 物联网
未来交织:区块链、物联网和虚拟现实的技术革新与融合应用
【4月更文挑战第13天】 在数字化时代的浪潮中,新兴技术正以前所未有的速度重塑着世界。本文将深入分析区块链技术的去中心化信任机制、物联网(IoT)的智能连接网络,以及虚拟现实(VR)的沉浸式体验如何独立发展并开始交汇融合,共同构建一个更加智能、安全和互动的未来。我们将探讨这些技术的发展趋势,揭示它们在各行各业的潜在应用场景,并讨论它们如何联合起来推动第四次工业革命。

热门文章

最新文章