当出现恶意节点时如何保持分步式网络一致性?李永乐老师讲拜占庭将军问题

拜占庭是历史上一个赫赫有名的帝国,也就是东罗马帝国,它的首是君士坦丁堡。1453年君士坦丁堡沦陷之后,这个帝国就灭亡了。

拜占庭将军问题并不是历史上真实存在的,而是一个虚拟的问题,它是在1982年由著名的计算机大神、图灵奖获得者兰波特提出的。

当出现恶意节点时如何保持分步式网络一致性?李永乐老师讲拜占庭将军问题

拜占庭将军问题可以这样描述:拜占庭帝国想进攻一个城堡,城堡非常坚固,足以抵制一两支军队的进攻,但如果所有军队同时进攻,城堡就可以沦陷。于是拜占庭帝国派出了很多支军队,但是因为通讯落后,这些军队之间只能通过信使来相互交流情报。于是他们就要商量一个方法,怎样才能让很多支军队在同一个时间进攻?

他们想到这么一个办法:咱们投票,比如我们说明天早上进攻,如果同意明天早上进攻的超过半数,那明天早上所有人都要进攻;如果不同意明天早上进攻的人超过半数,那么明天早上所有人都不要进攻。如此一来就保持了一致性。但是问题是,有可能在军队中出现叛徒,这个叛徒他会胡说八道。

比如说,在一次投票的时候,三支军队的将军都说我们应该进攻了,而另外三支部队的将军都说我们要撤退了,那么这个时候叛徒的意见就很重要,因为前面已经是3:3了。而这个叛徒他会告诉要进攻的三个将军,说我同意进攻;同时告诉三个要撤退的将军,说我们应该撤退。这样一来,这场战争只有一部分人进攻,一部分撤退,于是战斗就会失败。

这个就称之为拜占庭将军问题。

兰波特讲这个故事到底想说明什么呢?他实际上想说,计算机它可以分布在世界各地,我们称之为分布式节点,这些分布式节点可能会出现故障,比如宕机,也可能出现恶意节点,比如黑客,在这种情况下我们如何才能保持一致性,即保持这些忠诚的计算机输出的结果都一样,以及如何保持正确性,即如果大多数将军都认为应该进攻,那就要进攻,大多数将军都说要撤退,那就撤退。

尽管在这个分布式节点中有故障和恶意节点,但是还是有办法保证大部分忠诚的计算机是一致,而且是正确的。这个事儿就称之为拜占庭将军问题。

这个问题发展了将近40年,现在已经有很多种解决办法。比如在1982年兰波特提出这个问题的时候,他自己就给出了2种解决方法,我们称之为口头协议和书面协议。今天我们就给大家介绍一下其中的口头协议。

首先我们把这个拜占庭将军问题简化一下,简化为一个将军和副官模型,其实谁是将军都没有关系,所谓将军就是第一个提出进攻或撤退建议的人,其他的人就称之为副官,副官可以执行将军的命令,也可以不执行。

那怎么解决拜占庭将军问题呢?当时兰波特提出,假设m表示恶意节点(叛徒)的数量,n表示总节点数(总人数),那么当n>3m的时候,这个问题是可解的。比如有10个将军,其中有2个是叛徒,那么这个问题可解;如果一共只有3个人,其中有1个是叛徒,那因为没有满足n>3m,就解不了。

例1:假如m=1,n=4,一共有4个军队,其中1个是发号施令的Commander(简称C),另外3个是副官分别简称1号、2号、3号,其中有一个副官是叛徒,比如说3号副官是叛徒。

这样一来,如果将军发的命令是进攻,他告诉1号、2号、3号的命令都是进攻。然后3个副官之间互通信息,1号问2号“你接到的命令是什么”,2号会说“我接到的命令是进攻”,反过来,1号也会告诉2号“我接到的命令也是进攻”,因为他们是忠诚的。同时,1号、2号都会告诉3号“我接到的命令是进攻”,但是注意3号是叛徒,所以他就会胡说八道,说“我接到的是撤退”。

这种情况下,1号获得的信息是2个进攻、1个撤退,他只需要取这3个命令中最多的那个就可以了,也就是进攻。同样,2号获得的信息也是2个进攻、1个撤退,他只需要取这3个命令中最多的那个就可以了,也是进攻。

这样一来,就满足了1和2都进攻,并且忠实地执行了这个C的这个命令,即它达到了兰波特一开始设想的两个要求:一致性和正确性。

例2:假设将军B是叛徒,而3个副官都是忠诚的。那么他会跟前两个副官说要进攻,跟第3个副官说要撤退。然后3个副官会互通信息,1号会告诉2号、3号说“我接到的命令是进攻”,2号也会告诉1号、3号“我接到的命令是进攻”,3号会告诉1号、2号说“我接到的命令是撤退”。这样一来,1号、2号、3号副官得到的信息都是2个进攻、1个撤退,那么他3个都会选择进攻,这就就达到了一致性和正确性。

以上举的都是比较简单的例子,即只有1个叛徒的情况,如果叛徒有2个,那么按照n>3m的公式,至少得有7个人,否则就无解。

例3:假设m=2,n=7,有1个将军C,6个副官,其中2个副官是叛徒,假设5号、6号是叛徒,这时候我们就需要用到一种递归思想。

首先,将军C给6个副官发出进攻命令,这个时候1号副官不会立刻执行将军的命令,因为他不知道将军是不是叛徒,于是他就问2号“你接到的将军的命令是什么”,2号会告诉1号“是进攻”,但1号也不会马上相信2号的话,因为他也不知道2号是不是叛徒,于是他会接着去问3、4、5、6,他问“2告诉你他收到将军的命令是什么”,这话特别绕,就是嵌套(递归思想);同样,2、3、4、5、6号也这样问别人,他们得到的回答如下表格表示:

V1=进攻V2V3V4V5V6
V2=进攻进攻进攻进攻
V3=进攻进攻进攻进攻
V4=进攻进攻进攻进攻
V5=…(胡说八道)
V6=…

最终我们在这个向量里边取最大的,有4个人说进攻,有2个人胡说八道,但最终的结果肯定是进攻的人数多,于是1、2、3、4号副官加上将军C都会进攻,这样一来,他们保持了一致性(他们同时选择进攻),也保证了准确性(7个人中5个人进攻,符合大多数人的意见)。

以上就是口头协议的解决方法,但当时兰波特提出这个方案的时候没有考虑到网络延迟问题,但在实际的情况下互联网是有网络延迟的,所以这个算法是不能用的。

到了1999年,有几个人提出了一种更加简洁实用的拜占庭容错算法(PBFT),这种算法在存在网络延迟的情况下,依然可以保证少数恶意节点和故障节点存在时,大部分忠诚节点的一致性和准确性。

后来还有更多的人提出拜占庭将军问题解决方案,比如中本聪发明了比特币区块链区块链的核心问题也是要保持一致性,中本聪提出的解决方案是算力证明(PoW),你要记账就得算一道数学题,如此就增加了叛徒的成本。

文章内容仅供参考,不构成投资建议,投资者据此操作风险自负。转载请注明出处:天府财经网

(0)
上一篇 2023-05-05 09:34
比特币“双喜临门”:减半叙事上线,生态又迎来新时代
下一篇 2023-05-05 12:50

相关推荐

  • Coldcard被盗1.3亿美元:比特币硬件钱包漏洞分析与AI安全启示

    【本期要点】 Coldcard、自托管、AI 与全新的安全军备竞赛 过去一周占据新闻头条的焦点事件莫过于 Coldcard 遭黑客攻击事件,迄今已被盗取 1.3 亿美元。Coldcard 是由成立于 2012 年的加拿大比特币安全设备制造商 Coinkite 推出的硬件钱包。除了受影响用户遭受的巨额财产损失外,这一事件还动摇了行业的一些核心信条(如自托管和冷存储),并凸显了 AI 对软件安全日益增长的影响。 事件经过 首先应当明确的是,该漏洞并未影响比特币协议、其共识规则或底层密码学。问题发生在 Coldcard 的钱包固件上。2021 年 3 月引入的一项软件集成导致受影响设备将助记词(种子)生成逻辑定向到了基于软件的确定性伪随机数生成器,而非预期的硬件熵源。根据 Coinkite 的初步分析,该缺陷将有效搜索空间从预期的 128 位降低到了大约 40 位或 72 位(视具体设备型号而定)。 随机性缺失削弱安全性 由于钱包中的每个私钥都是从恢复助记词派生而来,降低助记词的随机性会大幅减少攻击者需要测试的可能性数量。128 位的密钥拥有约 3.4×1038 种可能值,而 72 位约有 4.7×1021 种,40 位仅有约 1.1×1012 种。因此,对于 40 位的情况,攻击者利用并行计算或专用计算设备即可实现穷举搜索。虽然较新的设备集成了安全芯片(Secure Element)随机源以提升安全性,但由于熵混合到软件生成器中的方式存在问题,Coinkite 初步评估其有效安全强度仍仅约 72 位。 此外,该软件生成器主要依赖于三个可被预测或获取的输入参数,这进一步收窄了黑客的搜索空间:设备的部分固定芯片标识符、与开机时间挂钩的处理器计数器,以及设备时钟的时间与亚秒级寄存器。一旦确定了这些输入以及之前的随机数调用次数…

    2026-08-08
    4.0K00
  • BitMEX 退出历史舞台背后,加密货币正面临一场前所未有的“应用大收缩”

    BitMEX 退出历史舞台背后,加密货币正面临一场前所未有的“应用大收缩”BitMEX 退出历史舞台背后,加密货币正面临一场前所未有的“应用大收缩”BitMEX 退出历史舞台背后,加密货币正面临一场前所未有的“应用大收缩”BitMEX 退出历史舞台背后,加密货币正面临一场前所未有的“应用大收缩”

    本期要点: 上周有消息称,BitMEX 正准备关门大吉。这一声明之所以引发瞩目,是因为 BitMEX 曾是首屈一指的加密衍生品交易所,并通过发明“永续合约”(Perpetual Swap,简称 Perp)塑造了现代加密市场的交易结构。在其鼎盛时期,BitMEX 是全行业最激进交易员的大本营——他们在这里动辄加上惊人的杠杆,用真金白银下注自己同样激进的市场判断。 然而败局早有预兆。BitMEX 并未从 2020 年 3 月的“黑色星期四”中彻底恢复过来——当时比特币日内暴跌近 50%,连锁爆仓吞噬了 17 亿美元的杠杆头寸,直到交易所宕机才遏制了爆仓潮。随后,监管行动迫使公司创始人离职,限制了其进入重要市场的渠道,并加速了交易活动向币安(Binance)、Bybit 等竞争对手迁移。BitMEX 固然仍是加密历史上重要的一页,但在关停声明发布之前,它的经济影响力早已淡去。 BitMEX 绝非孤例。在过去几个月中,多家加密交易所、基础设施提供商、协议和媒体公司纷纷申请破产、关停产品、裁员或寻求出售。 一场截然不同的回撤 当前的行业紧缩与上一轮重大回撤截然不同。2022 年的典型特征是高度互联的机构和数字资产发生了史诗级的崩塌,包括 Terra (LUNA)/TerraUSD (UST)、三箭资本(Three Arrows Capital)、Celsius、Voyager、BlockFi 和 FTX。这些溃败造成了数十亿美元的债权人损失,冻结了客户资产,并暴露了被关联交易、风控缺失以及薄弱资产负债表所掩盖的杠杆。 而这一轮周期要安静得多。企业普遍没有因为隐性债务缠身或风控不善,而在短时间内轰然倒塌。 加密业务具有显著的市场 Beta 属性 关于加密商业有一个公开的秘密:商业活跃度高度依赖于市场 Beta(即对市场价格的高敏感度)。交易量、波动率和链上活跃度都与价格呈正相关。客户交…

    2026-08-04 Web3
    4.8K00
  • 《CLARITY 法案》:市场结构、银行游说与“雪佛龙”飞镖效应

    《CLARITY 法案》通过对比特币带来的边际上行空间小于山寨币(Altcoins)。

    2026-07-20
    4.0K00
  • NYDIG 报告|2026 Q2 回顾:驱动比特币的是杠杆而非现货需求,价值与趋势投资者仍在观望

    NYDIG 报告|2026 Q2 回顾:驱动比特币的是杠杆而非现货需求,价值与趋势投资者仍在观望NYDIG 报告|2026 Q2 回顾:驱动比特币的是杠杆而非现货需求,价值与趋势投资者仍在观望NYDIG 报告|2026 Q2 回顾:驱动比特币的是杠杆而非现货需求,价值与趋势投资者仍在观望NYDIG 报告|2026 Q2 回顾:驱动比特币的是杠杆而非现货需求,价值与趋势投资者仍在观望

    比特币从2025年10月6日创下的12.6万美元历史高点已回撤54.3%,并于7月1日触及57,717.55美元的周期新低,回撤持续时间已达268天。若本次重复相似时长但幅度收窄至约-70%(符合周期谷底逐渐变浅的规律),则10月初附近可能出现3.8万–3.9万美元的周期低点。

    2026-07-11 Web3
    6.4K00
  • 微策略资本飞轮迎来首次考验:深入解析再融资与比特币累积逻辑

    我们一直将 Strategy 定义为一种比“带杠杆的比特币替代品”更具体的工具:它是一个以比特币为后盾的资本市场准入工具。它通过一种类似飞轮的机制,将市场信心转化为比特币的渐进式累积。 这种区分至关重要,因为该公司的价值创造不仅来自于拥有 847,363 枚 BTC,更来自于不断将证券层面的溢价转化为更多的“每股 BTC 持仓”。随着上周公司发布重磅战略更新,这一特点变得更加清晰。 飞轮运作的 2 大核心机制 当这些条件满足时,Strategy 就可以发行普通股或优先股资本来购买比特币,从而增加每股 BTC 持仓,并进一步强化使发行成为可能的市场溢价。相反,当这些条件失效时,同样的结构就会变成“现金消耗型”,因为管理层必须用支撑该结构的资产(即比特币)来保卫这些为累积资金提供支持的金融工具。 目前的实际情况表明,飞轮并未破裂,但运转吃力。截至 7 月 1 日,MSTR 收盘价约为 1.04 倍 mNAV,即普通股相对资产净值溢价 6.1%。这在技术上重新打开了普通股融资渠道,但为增值发行留出的利润空间非常狭窄。STRC 已从 74 美元的低点反弹,目前在 90 美元左右交易,这意味着优先股融资渠道目前仍处于受损状态。 市场问错了问题 传统投资者首先关注的问题,不应该是 Strategy 在目前的 BTC 价格下是否有足够的资产覆盖率。 按目前的比特币价格计算,该公司持有的 BTC 价值约 524 亿美元,加上 25.5 亿美元的现金,总资产达到了约 549 亿美元。对比约 222 亿美元的债务加优先股索赔权,该结构在现有资产无法覆盖负债之前,拥有约 327 亿美元的“盈余”资产净值(NAV)。 资产/负债项目 预估金额 比特币持仓市值 524 亿美元 现金储备 25.5 亿美元 总资产 (Total Assets) 549 亿美元 总负债 + …

    2026-07-06
    6.0K00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

÷ 4 = two
Powered by MathCaptcha