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

拜占庭是历史上一个赫赫有名的帝国,也就是东罗马帝国,它的首是君士坦丁堡。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
下一篇 2023-05-05

相关推荐

  • 币安和cz认罪,牛市一大靴子落地

    周二,在一场市场关注已久的案件中,交易所带来什么。 币安将继续运营,但受到美国监管机构的密切监控,并由新任 CEO Rich投资者望而却步。另一方面,由于币安在期货交易中占据主导地位,市场流动性可能会受影响,这也是贯穿 2023 年全年的问题。对于数字资产来说,这可能不是问题,但对于大批小市值、流动性差的山寨币来说,可能会带来更大的挑战,币安占据山寨币最大的交易份额。 BitMEX 提供部分借鉴,但其从未受到刑事指控 2020 年 10 月 1 日,司法部指控 3 名 BitMEX 人员违反《银行保密法》(BSA)。这最终导致个人认罪,并根据CFTC 和 FinCEN 的指控对衍生品交易),但有一个很大的区别——与 BitMEX 相关的公司实体都没有你币安那样受到指控或解决刑事违法行为。 由于竞争、监管审查和 2020 年 3 月的「黑色星期四」事件对其声望造成影响,BitMEX 最终失去了在衍生品交易中的地位。 与司法部、财政部、CFTC 达成和解,但 SEC 缺席 和解协议包括司法部的刑事指控以及 FinCEN(财政部)和 CFTC 的民事指控。然而,值得注意的是,SEC 没有就民事指控达成任何和解。 8 个月前,2023 年 3 月 27 日,CFTC 对币安和 CZ 提出指控。虽然 CFTC 和 SEC 经常就此类重大执法案件进行合作,但直到 2023 年 6 月 5 日, SEC 才对币安和 CZ 提出民事指控。 虽然我们不知道 SEC 缺席和解的原因,但 CZ 和币安可能已决定对抗 SEC 指控,就 SEC 对代币二级交易的监管权限进行反驳,就像 交易市场都表现出色。然而,截至最近,其交易量占比一直在下降,使得周二消息的影响力大不如前。如果本次执法行动在今年早些时候落锤,对市场的影响可能会更大。 根据 The Block 的数据,币安在期货市场,币安在未平仓合约…

    2023-11-23 区块链
    6.7K
  • AI与金融的融合:2023芝加哥人工智能周将于10月26日开启

    2023年被誉为ChatGPT横扫全网,到目前各家大语言模型、生成式AI、数字人等百家争鸣,我们见证了数字货币等新兴技术的融合,将会释放哪些新的商机?AI如何推动绿色金融,确保科技向善,更好地造福人类? 鉴于这些关切和思考,由AI2030、AR Consulting, Evolving Summit联合主办的2023芝加哥人工智能大会(2023 Chicago AI Conference)将于2023年10月26日正式启动。 届时,美国平等就业机会委员会(EEOC)主席Keith E. Sonderling,国家信用合作社管理局副主席Kyle S. Hauptman,联邦储备委员会首席金融监管分析师David Palmer,国际清算银行 (BIS) 多伦多中心主任 Miguel Diaz,富国银行(Wells Fargo)执行副总裁、企业模式风险主管Agus Sudjianto,摩根大通 (JP Morgan Chase)高级执行总裁Shanthi Gudavalli,前纽约梅隆银行市场监管和前台风险技术主管Arthur Rabatin,微软金融机构首席技术官 Ravi Sarkar,亚马逊云服务负责人、人工智能部门主管 Diya Wynn,五三银行(Fifth Third Bank)数据分析部总监Seyhun Hepdogan,发现金融服务公司(Discover Financial Services)数据分析部总监Arjun Ravi Kannan,前亚马逊云公共部门总监、现Achillia Group首席执行官Anastasia,”Tracy” Raissis、社会银行(BankSocial)首席执行官John Wingate,社会银行(BankSocial)首席运营官Becky Reed,SolasAI首席技术官Nicholas Schmidt…

    2023-08-18 区块链
    19.4K
  • Arkham是什么?一文读懂链上数据分析赛道

    近期Binance宣布上线第32个Launchpad项目融资,其中Dune Analytics、Flipside、Nansen和Arkham均取得累积超过千万美金以上规模的融资,投资者,前三者都有其身影。 从支持的AIn和减持状况,CEX与DEX稳定币整体和单个的流入和流出,代币持有者整体平均持有时长、损益、Smart Money情况以及单个持有者余额变更、交易情况等;从智能合约层面,可以清晰地追踪到热门合约和LP交易对所提供的APY,以及合约内的代币/华尔街之狼》中有一个经典的“把这支笔卖给我”问题,重要的不是笔,而是创造使用笔的需求与场景。任何的IEO后,近日Dune创始人还重申了Dune不会发币的态度,并推出了一个颇有讽刺意味的NFT。 作者|

    2023-07-18
    30.8K
  • 如果现货ETF获批,将带来多大规模的资金流入?

    在首份现货 ETF 注册声明提交 10 年后,该类产品在美国终于迎来转机,这让投资者兴奋不已,我们看看这种金融产品对投资界以及比特币价格可能意味着什么。

    2023-07-15 区块链
    19.5K
  • 贝莱德CEO再谈比特币ETF:客户需求促使我们进军加密市场

    贝莱德周五公布了第二季度业绩,调整后每股收益9.28美元,营收44.6亿美元。根据披露,贝莱德目前管理的资产超过9万亿美元。

    2023-07-15
    16.2K
已有 0 条评论