Paxos算法如何撑起区块链共识
通常被简略理解成“投票”的区块链的共识机制,然而真正的工业级系统离不开那种严谨的数学基础。Paxos是呈现于分布式系统领域的经典算法,它给区块链的节点间信任给予了底层逻辑支撑。只要理解Paxos,便能够看懂联盟链以及高性能公链的稳定性来源。
Paxos是什么
Paxos是一种算法,该算法专门用于解决分布式系统里的问题,这个问题是多个节点如何就某个特定值达成一致。该算法由Leslie Lamport提出。该算法的核心思想在于,通过“提案者 - 接受者 - 学习者”这三种角色,进行分工协作。通过这种分工协作,以此保证,即便在节点出现故障的情况下,依然能够形成唯一的决议。并且,即便在网络存在延迟的情况下,也依然能够形成唯一的决议。
与比特币采用的工作量证明机制相较,Paxos无需展开算力竞赛这项特性,令它于许可链场景里展现得更契合,能较好地满足该场景中对于达成一致的需求,为分布式系统的稳定运转予以有力保障。
Paxos如何工作
分准备与接受这两个阶段的是算法,提案者会先朝着多数派节点去发送编号是n的准备请求,节点在收到之后已然承诺不会再去接受编号比n小的提案,当提案者收到多数节点所做出的承诺之时,就会发送真正带有值的接受请求,要是多数节点去接受了,那么该值就会变成最终的决议,这样的流程保证了即便有节点出现崩溃的情况,系统依旧能够持续运行。

区块链为何需要Paxos
有着每秒处理数千笔交易要求的企业级区块链领域中,联盟链像Hyperledger Fabric,它的排序服务基于Raft,而Raft是Paxos的简化变种,Paxos类算法不用进行挖矿操作,延迟能低到毫秒级。而且,它在特性上天然支持节点的动态增加和删除,这让其很适合供应链金融、政务数据共享等合规场景。在国内已经落地的区块链服务网络,就是BSN当中,多个城市节点正是靠着Paxos来维持状态的一致。
Paxos与实用拜占庭容错区别
帕克斯基于特定假设构建,该假设假定节点只会出现宕机或者丢消息这样的状况,而不会恶意作恶。与之相比,实用拜占庭容错也就是PBFT具备更为强大的能力,它能够有效抵御节点故意发送假消息这种行为。多数联盟链巧妙地混合了两样东西,一类是常规状态同步方面采用帕克斯,利用其高效安定的特性保障数据的正常流转,另一类是面对异常节点启用PBFT处理,凭借其对恶意行为的防范机制确保系统的安全性及稳定性。理解这个区别需充分,如此在设计区块链应用时,才能够正确地选择共识模块,进而避免因假设错误致使数据分叉等问题出现,为区块链应用的稳定运行提供坚实保障。
能否正确认识Paxos跟PBFT之间的区别,这对区块链应用设计来讲甚是关键,Paxos假定节点只会呈现出宕机或者丢消息的状况,不会有恶意作恶的情形 ,这样的假定为它在常规状态同步里的应用奠定了基础,而实用拜占庭容错也就是PBFT能够抵抗遭遇节点故意发送假消息的状况,从而展现出更强的安全性,多数联盟链把两者进行结合,常规状态同步采用的是Paxos ,处理异常节点运用的是PBFT。倘若没办法领会这个差异,于设计区块链应用进程当中就说不定会由于假设失误进而致使数据分叉现象出现,对整个系统的正常运转产生影响。因而,深度理解两者之间的区别是正确挑选共识模块、保障区块链应用稳定的关键因素所在。
