当前位置:首页 » 区块链知识 » 区块链将军打仗

区块链将军打仗

发布时间: 2025-03-16 10:38:30

『壹』 拜占庭将军问题与区块链

1982年,图灵奖得主莱斯利·兰伯特提出拜占庭将军问题,探讨了分布式系统中节点故障下的共识达成。这一难题随着区块链技术的发展,愈发引人关注。本文将通过通俗易懂的方式,解析这一问题背后的共识协议。

想象一下,两位将军需共同决定进攻时间,但通信途径受阻。这个简单的“两个将军问题”揭示了在分布式环境中,信息传递的不确定性可能导致共识无法达成。FLP定理指出,在异步通信中,无法保证一致性。

然而,工程师们并未放弃,他们通过调整策略,如增加信使数量,确保至少一部分信息能传递,或多次尝试直到联系成功,从而在实际操作中找到解决方案。拜占庭将军问题的复杂版本则涉及更多将军和复杂策略,但关键是叛徒数量不能超过总人数的1/3,否则共识无法达成。

传统的方法如口头协定和书面协定都有局限性,口头协定难以追踪来源,书面协定依赖于中心化权威。区块链技术的出现,通过非对称加密和工作量证明(PoW)算法,解决了这些问题,实现了去中心化的信任网络,确保了消息的不可篡改和来源的可追溯。

总的来说,区块链技术巧妙地解决了拜占庭将军问题,展示了在分布式系统中达成共识的强大能力,为未来的信任网络奠定了基础。这个过程虽有挑战,但通过技术创新,我们找到了一个接近完美的解决方案。

『贰』 五分钟了解共识机制

五分钟了解共识机制
什么是共识机制?
“共识机制是区块链的灵魂。”这是业内经常能听到的一句话,共识机制在区块链中的地位可想而知。那么到底什么是共识机制呢?我们不妨从拜占庭将军问题说起。
拜占庭位于如今的土耳其的伊斯坦布尔,是东罗马帝国的首都。由于当时拜占庭罗马帝国国土辽阔,为了防御目的,每个军队都分隔很远,将军与将军之间只能靠信差传消息。在战争的时候,拜占庭军队内所有将军和副官必须达成一致的共识,决定是否有赢的机会才去攻打敌人的阵营。但是,在军队内有可能存有叛徒和敌军的间谍,左右将军们的决定又扰乱整体军队的秩序。在进行共识时,结果并不代表大多数人的意见。这时候,在已知有成员谋反的情况下,其余忠诚的将军在不受叛徒的影响下如何达成一致的协议,拜占庭问题就此形成。
拜占庭将军问题是一个协议问题,拜占庭帝国军队的将军们必须全体一致的决定是否攻击某一支敌军。问题是这些将军在地理上是分隔开来的,并且将军中存在叛徒。叛徒可以任意行动以达到以下目标:欺骗某些将军采取进攻行动;促成一个不是所有将军都同意的决定,如当将军们不希望进攻时促成进攻行动;或者迷惑某些将军,使他们无法做出决定。如果叛徒达到了这些目的之一,则任何攻击行动的结果都是注定要失败的,只有完全达成一致的努力才能获得胜利。
而这个问题该如何解决?中本聪的理念给出了一个比较好的答案:不能让所有人都有资格发信息,而是给发信息设置了一个条件:“工作量”,将军们同时做一道计算题,谁先算完,谁才能获得给其他小国发信息的资格。而其他小国在收到信息后,必须采用加密技术进行签字盖戳,以确认身份。然后再继续做题,做对题的再继续发消息……对这种先后顺序达成共识的算法,就是共识机制。
共识机制的作用
区块链作为一种按时间顺序存储数据的数据结构,可支持不同的共识机制。在区块链上,每个人都会有一份记录链上所有交易的账本,链上产生一笔新的交易时,每个人接收到这个信息的时间是不一样的,有些想要干坏事的人就有可能在这时发布一些错误的信息,这时就需要一个人把所有人接收到的信息进行验证,最后公布最正确的信息。
共识机制是区块链技术的重要组件。它就像一本法典,维系着区块链世界的正常运转,使得区块链技术自带改善世界的光芒,也是让区块链得以被全世界逐步接受和认可的最大幕后功臣,它让互联网、陌生人之间,在没有第三方作为信用背书的情况下发生的一切交易变成可能,它赋予了机械的代码以人性和温度。
共识机制的类别
目前的共识机制主要有POW、POS、DPOS、PBFT、dBFT、Pool验证池。
POW,就是人们熟悉的比特币挖矿,通过计算出一个满足规则的随机数,即获得本次记账权,发出本轮需要记录的数据,全网其它节点验证后一起存储。可实现完全去中心化,节点自由进出。干的越多,收的越多。
POS,权益证明,POW的一种升级共识机制,根据每个节点所占代币的比例和时间,以此等比例的挖矿难度,从而加快找随机数的速度。持有越多,获得越多
DPOS,股份授权证明机制,类似于董事会投票,持币者投出一定数量的节点,代理他们进行验证和记账。
PBFT ,Practical Byzantine Fault Tolerance,实用拜占庭容错算法,是一种状态机副本复制算法,即服务作为状态机进行建模,状态机在分布式系统的不同节点进行副本复制,每个状态机的副本都保存了服务的状态,同时也实现了服务的操作。
dBFT,delegated BFT 授权拜占庭容错算法,由权益来选出记账人,然后记账人之间通过拜占庭容错算法来达成共识。
Pool验证池,基于传统的分布式一致性技术建立,并辅之以数据验证机制,是目前区块链中广泛使用的一种共识机制。Pool验证池不需要依赖代币就可以工作,在成熟的分布式一致性算法(Pasox、Raft)基础之上,可以实现秒级共识验证,更适合有多方参与的多中心商业模式。
现有共识机制存在问题
目前现有的共识机制都不算完美,在一些实际应用场景弊端很多。
A、计算能力浪费
在工作量证明机制POW中,猜数字最快的通常是电脑计算能力强的。超强的计算能级仅用来猜数字,实在是浪费。
B、权益向顶层集中
在权益证明机制POS中,token的余额越多的人获得公示信息的概率越高,公示人会得到一定的token作为奖励,如此持有token多的人会越来越多,少的人越来越少。
C、作恶成本低下
在靠算力与权益的的多少来获得公示信息的权利的模式当中,当算力和权益向少数人集中之后,这些少数人如果想要做一些违反规则的事情是轻而易举的;在PBFT中,由所有人投票,如果一个没有任何token余额的人想要捣乱,那他几乎是完全没有利益损失。
D、对于真正的去中心化构成威胁
在工作量证明机制中,计算能力越强,获得记录权利的概率就越高。如果有人把很多人集中在一起来猜数字,把好多电脑的算力加在一起来用,那这些抱团的人就会更容易获得公示信息的权利,发展到最后可能公示权就直接掌握在这些人手里。
在权益证明机制POS中,权益越大的人获得记录权利的概率越高,而记录的人就会有奖励token ,这样一来这些人就会越来越富有,贫富差距就会越来越大。持有token少的人几乎都没有话语权了。权利掌握在少数人手中,这有违区块链去中心化理念。

『叁』 共识机制(一)拜占庭容错系统

区块链是一种分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。利用区块链构造基于互联网的去中心化账本,首要问题是如何实现不同节点上的账本数据的一致性和正确性,即如何达成共识。在20世纪80年代出现的分布式系统共识算法,是区块链共识算法的基础。

我们从基本的拜占庭容错技术入手,逐步介绍适合于私有链/联盟链和公有链的共识算法。拜占庭将军问题描述了一个假想的情境,10支军队围攻一个敌国,需要在分散的包围状态下同时攻击。由于叛徒的存在,这些将军们需要找到一种分布式协议来建立战斗计划的共识。

问题实质是寻找一个方法,使得将军们能够在有叛徒的非信任环境中建立一致的战斗计划。条件定义是,一群将军想要实现某一个目标(一致进攻或者一致撤退),但是单独行动行不通,必须合作,达成共识;由于叛徒的存在,将军们不知道应该如何达到一致。

只有“一致性”是不足以解决拜占庭将军问题的,我们还需要提出一个“正确性”要求。正确性定义为每个忠诚的将军都能够让别的将军接收到自己的真实意图,并最终一致行动。条件演进为一个发送命令的将军要发送一个命令给其余n-1个将军,使得系统满足一致性与正确性。

拜占庭容错系统要解决分布式系统中存在恶意节点(即拜占庭节点)时,系统的一致性和正确性等问题。假设分布式系统拥有n台节点,并假设整个系统拜占庭节点不超过m台(n ≥ 3m + 1),拜占庭容错系统需要满足如下两个条件。实用拜占庭容错系统降低了拜占庭协议的运行复杂度,使拜占庭协议在分布式系统中应用成为可能。实用拜占庭容错系统是一类“状态机”拜占庭系统,要求系统所有节点共同维护一个状态,所有节点采取的行动一致。

实用拜占庭容错系统需要运行三类基本协议,主要关注支持系统日常运行的一致性协议。该协议要求来自客户端的请求在每个服务节点上都按照一个确定的顺序执行。一致性协议至少包含请求、序号分配、响应三个阶段。假设故障节点个数为m个,而整个服务节点数为3m+1个。实用拜占庭容错系统中服务节点分为两类。协议的基本过程包括客户端发送请求、主节点启动三阶段协议向各从节点广播请求、客户端等待响应,若有m+1个响应相同,则该响应即为运算的结果。

在 n ≥ 3m + 1 的情况下,一致性是可能解决的。实用拜占庭容错系统能够容纳将近1/3的拜占庭节点。在区块链应用中,实用拜占庭容错系统适合于对强一致性有要求的私有链和联盟链场景。在IBM主导的区块链超级账本项目中,实用拜占庭容错系统是一个可选的共识协议。

参考资料:[1] 邹均,张海宁,唐屹,李磊等. 区块链技术指南[M].北京:机械工业出版社,2017

『肆』 拜占庭将军很忙—《区块链思维》第21块

无论在链圈,还是在币圈混,经常听到一个名词“拜占庭将军问题”。

到底拜占庭是啥,拜占庭将军怎么啦,到处都被提及,这位将军好忙啊!

先说拜占庭这个地方。很久很久以前的欧洲,建立在比中世纪还古老的时期,历史上就是东罗马帝国,跨越了千年的历史期盼。

扯远了,回到正题,什么是拜占庭将军问题。

拜占庭这个地方异常坚固,同时被十个独立邻邦环伺,分别有一位将军,单独攻城必败,只有一半以上的将军同时攻打才能破城。

十位将军为了协调一致,在那个古老的时代,累死传令兵,要么飞鸽传书(那时的欧洲比中国落后,好像没有这个高速通信手段)。十位将军相互通信一次就需要90次传信,每位将军都有各自的攻城计划,要想达成统一就需要往复传递不知道多少次。

我们可以假设一个场景,一个桌子上坐着十位将军,每个人各自说着自己的想法,同时听其他九位的说法,但是信息的传递不是实时的,有快有慢,有早有晚。想明白了吗?也就是说,这十位将军如果想达成一致,理论上有可能,实际上他们的有生之年都实现不了,难怪拜占庭帝国经历了千年也没有被这十位将军攻破。

中本聪这个神人,利用互联网信息传递的及时性特点,引入时间戳可以明确知道“谁先说、谁后说”的特性,创造性地加入挖矿机制(就是用计算机算随机数满足一定难度才算成功)比拼各位将军的智商来决定谁做本次进攻的统帅,使用非对称加密保证信息传输的安全性等等手段融合到比特币中,用实例说明自己破解了这个历史难题“拜占庭将军问题”。从而向世人证明解决60亿人口的互信问题是有去中心化解决方案地。

币圈和链圈的朋友很焦虑的另一个关键问题就是:这个圈子概念太TM多。除了这个“拜占庭将军问题”,还有一个“拜占庭容错”,这是什么鬼?这两个是一样的吗?这两个是故意有一个被写错了吗?还是说我的智商税没交够?其实,你都说对了。

“拜占庭将军问题”假设所有十个将军都是好的,都想攻破拜占庭,只是达成共识很难,比特币提供了好人达成共识的方案。

“拜占庭容错”是说十个将军可以很好地达成共识。但是,如果其中出了坏人,怎么解决?

如果十个将军中出现了坏人(叫叛徒也行),进攻计划是否会永远无法达成共识呢?

“拜占庭容错”告诉大家,是可以达成地,并且,还能找出这些“叛徒”是谁。只是,10个将军中叛徒的数量不能超过3个,超出了就无法“容错”,也找不出这些叛徒是谁。对应的公式就是:3n+1。其中3n+1是将军总数(区块链的账本/矿机总数),n是能够“容错”的“叛徒”(恶意记错账)总数。

对于十个将军来说,最多容忍三个叛徒,多了就彻底没戏啦。为了比特币的容错能力越来越强,就需要更多的节点,这样才能容忍并找出更多的叛徒。懂了吧。

小结一下:拜占庭将军问题是假设都是好人前提下如何达成共识,拜占庭容错就是全网最多能够容忍多少叛徒并且能找出他们。

请交智商税到如下地址:

国税BTC到Kcash:

地税ETH及各种原生Token到 Imtoken:

不交税的,祝你做“韭菜”一切顺利 :D

热点内容
区块链将军打仗 发布:2025-03-16 10:38:30 浏览:536
天龙八部辅助自动挖矿 发布:2025-03-16 10:03:53 浏览:512
供应链与区块链的 发布:2025-03-16 09:38:38 浏览:592
比特币精灵破解教程 发布:2025-03-16 09:26:09 浏览:539
eth和ada的区别 发布:2025-03-16 09:19:01 浏览:311
币圈用什么表情代替以太坊 发布:2025-03-16 09:13:16 浏览:383
我的世界为什么挖矿会晕 发布:2025-03-16 08:55:03 浏览:507
eth质押持续多久 发布:2025-03-16 08:48:44 浏览:370
动漫doge动态表情 发布:2025-03-16 08:45:19 浏览:579
竞斗云区块链游戏是什么 发布:2025-03-16 08:37:56 浏览:308