区块链共识算法:投票式算法解析
1. 投票式共识算法概述
投票式共识算法与基于证明的共识算法不同,负责创建和维护区块链的节点通常是受管理和控制的。这类算法主要针对许可型和无激励机制的区块链应用,我们可以借鉴分布式系统中传统的容错方法来研究它们。
分布式系统中的节点可能会出现崩溃故障(非拜占庭故障),比如因硬件故障、网络中断或软件问题导致节点停止工作或与网络断开连接;也可能会出现拜占庭故障,即节点恶意伪造或篡改信息。因此,投票式共识算法可进一步分为崩溃容错(CFT)和拜占庭容错(BFT)两类。
当前主流的 CFT 算法有 Paxos 和 Raft,其中 Raft 是 Paxos 的简化且易于实现的衍生算法。CFT 算法在存在拜占庭故障的情况下无法保证系统的可靠性和弹性,通常用于像 IPFS 和 IBM Hyperledger Fabric 这样的封闭环境中。本文主要关注能够同时容忍崩溃故障和拜占庭故障的 BFT 算法,它能提供更好的安全性和实现灵活性。
常见的 BFT 算法包括 PBFT 及其各种变体,如 Redundant BFT(RBFT)、delegated BFT(dBFT)和 BFT - SMaRt,还有近期出现的 HotStuff,它将成为 Facebook 即将推出的区块链支付系统 Diem(原 Libra)的基础共识算法。
2. 实用拜占庭容错算法(PBFT)
2.1 基本原理
原始的 PBFT 算法是在网络文件系统(NFS)的背景下提出的,节点分为主节点和副本节点,客户端的请求会触发状态机的执行。基于 IBM 的 Hyperledger Sawtooth PBFT 实现,其正常
超级会员免费看
订阅专栏 解锁全文
20

被折叠的 条评论
为什么被折叠?



