从拜占庭容错机制,看数字货币的关键:信息验证&容错

初接触数字货币/加密货币的时候,偶尔会遇一个非常特别的名词:「拜占庭容错机制」,而这个名词总与「共识机制」同时出现。

这看似与地名有关的名词,到底是什么?其实这是一个非常经典的信息逻辑问题,而又与数字货币的发展息息相关。

拜占庭将军问题:如何依靠分散的个体去确保信息正确?


要了解「拜占庭容错机制」,首先要知道什么是「拜占庭将军问题」(Byzantine Generals Problem),这是一个由硅谷科学家Robert Shostak于1978年提出的情境难题。内容是这样的:

古代某个大城市「拜占庭」正经历一场战争,四位将军散落在城内各处,必须在短时间内决定进攻还是撤退。条件在于,不论进攻或撤退,都必须四位将军一致同意,才能保证最后胜利。

四位将军决定各自写信予其他三人,告知相关决定。当每位将军都寄出信息,又同时收到其他三名将军的来信后,就会知道决定是否一致,到底是进攻还是撤退。

听来很简单对吧?但问题是--

如何防止其中一位将军叛变?又或者,其中一位将军已被暗杀,寄信的其实是间谍?又或者,寄出信件后被敌方截取,篡改成相反的内容,从而阻止四位将军达成共识?

现代版的拜占庭将军问题:办公室午餐共识问题


如果仍然觉得难以理解的话,可以尝试从现代的生活环境去设想。假设某公司中有四位女同事决定要一同午餐,在选择餐厅的时候,必须要征得一致同意才可以去吃饭。

我们故且假设四位女同事分布在四个楼层,工作繁忙而且无法以群组沟通,每一人必须各自告知其他三位女同事心仪的餐厅,但又如果有第五位女同事出于某种原因(可能是积怨在先?),希望破坏这场午餐,她即可以截取其中一人的其中一封通信,又篡改成相反的内容,就可令四位女同事无法达成共识,无法出外午餐了。

这就是拜占庭将军问题的本质:在没有中心化通讯机制的前题下,如何保证某一团队/情境下的相互信息验证功能--如何在去中心化的同时,找出密码学的「唯一事实」(single truth)?

拜占庭容错机制:少数服从多数

拜占庭容错机制(Byzantine Fault Tolerance, BFT)正是解决这个情境题的经典解答,所以,我们常听见的「拜占庭容错机制」其实是答案,背后要解决的,是上述的「拜占庭将军问题」。

拜占庭容错机制的做法,就是基于团队会忠诚执行指令的前题下,所有人只需要执行最大多数的共同指示即可。以上述「女同事午餐问题」为例,那就是最后四人一同选择占大多数的餐厅提案即可--说穿了,就是少数服从多数,将错误的信息预计在内,再加以排除。

如果将同样情况,套用于复杂的电脑信息及区块链验证当中,就会发现「拜占庭容错机制/BFT」比我们想象来得更重要。试想想,如果没有任何机制确保去中心化信息的正确性﹐又没有一个方案能够容许少数错误的情况下仍然确保系统运作,那么整个区块链都都会寸步难行。

没有共识机制就没有去中心化


看到这里,你一定会问,如果所谓的「容错」,只是执行多数决定,那么,如果敌人占了大多数呢?如果更多的信息被篡改又如何呢?如对女同事积怨的不只是一个人呢?

拜占庭容错机制所提供的,只是在逻辑/数学上最经典的答案,背后所延伸出来的,是所有去中心化机制都要面对的最核心问题:共识&容错机制。

共识机制」顾名思义,就是能够寻求可行共识的机制,在去中心化的世界里,如何订立这项机制、如何执行这项机制、这项机制的速度、扩展性、私密度、容错度,将会决定每一项去中心化系统的价值。

比特币的中本聪协议,就是一个比经典的BFT(少数服从多数)更进一步的解决方案,透过将信息重度加密,再要解密者以极高难度的蛮力去计算数学题,从而获得答案。这项验证方式要大量高难度数学计算,所以又名为「工作量证明」(Proof-of-work, PoW)

其他的区块链亦有更先进机制去应对容错/共识问题,不论是以太坊,Solana,Cardano,Avalanche,也同样在追求更有效率的方式,去获得「唯一事实」(single truth)。

看到这里,你就会发现为何拜占庭容错机制会一再出现。因为任何的区块链,其实都需要先解决拜占庭将军问题,亦可以说,每一项新发明的共识机制,其实都是拜占庭容错机制的进阶版,或直接推翻再创新。

验证的形式与速度=区块链的价值基础

现实世界当中,一群没有中心领导的个体,要集中统一行动,追求最大利益,第一件事就要找出符合所有人利益的「唯一事实」。

这同样是密码学的最终目的,如何在充满密钥的世界里,找出可行而高效的解密方案,传输及保存「唯一事实」。

当这个概念套用于区块链,就变成所有区块链节点能够互相以密钥验证,再具有能够防止恶意攻击的容错,从而达成共识机制。

共识机制的诞生过程中,就要解决速度及可扩展性的问题。比特币长年为人诟病之处,即中本聪共识机制「工作量证明」需要消耗非常多资源与时间,对于以太坊及其他公链后起之秀,已显得太过高成本,设计上更无法与以太坊等公链互通。

时至今天,已有各种方案去解决拜占庭将军的问题/女同事午餐问题。中本聪的「工作量证明」PoW只是其中一个方案,其他如公链 Solana 的「PoH(Proof-of-History,历史证明)」,Luna 的「PoS(Proof-of-Stake,权益证明)」,Avalanche的「雪崩共识」,或更多进阶共识机制,都是旨在解决拜占庭将军问题的本质:

独立去中心化的计算器,如何可以自我容错运算,互相以单一事实验证。

最复杂的计算,往往是为了解决最简单的问题。当我们认真了解拜占庭将军问题/拜占庭容错机制,其实已经足以了解区块链,以至数字货币世界的本质。

本文链接地址:https://www.wwsww.cn/jishu/9682.html
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。