科普:拜占庭将军问题和实用拜占庭容错算法
比特币行情:根据比特币交易平台火币网行情显示,截至北京时间7月5日13点,比特币价格为17881.01元人民币。火币网比特币今日开盘价格为18158.94元,目前最高价格为18200元,最低价格为17801元,跌幅1.53%。
BTC比特币行情小时图来自火币网
比特币小贴士:
“拜占庭将军问题”(Byzantine Generals Problem)是一个建立于共识机制解决的实例。拜占庭为过去东罗马帝国的首都,现在位于土耳其的伊斯坦堡。由于当时拜占庭罗马帝国的国土辽阔,基于防御目的,每个军队都分隔遥远,因此将军间只能靠信差传递消息。于战争时,拜占庭帝国军队的将军们必须全体一致的决定是否攻击某一支敌军,因为唯有达成一致的行动才能获致胜利。将军中若存在叛徒,叛徒可以采取行动以欺骗某些将军进行进攻行动,或致使他们无法做出决定,缺乏一致行动的结果则将注定战事的失利。
类比于区块链上的共识机制,拜占庭消息误传系指区块链上分散式网络中节点所出现的任何错误(如,伪造签名、恶意破坏系统的一致性、超时、重复发送消息等)。共识机制通常具有容错的设计,即使某些节点失败或是缓慢的,分散式网络中节点的独立处理器仍能达成某种精确的相互一致性。但是共识机制具多样种类且其各自特性,并由小表显示的共识机制基本参数来决定。
共识机制基本参数 | 定义 |
分散式治理 | 一个中央节点不能提供交易最终确定 |
仲裁结构 | 在预先定义的方式进行节点间讯息交换 |
身份验证 | 验证参加身份 |
完整性 | 交易完整性的验证 |
不可否认性 | 验证发送者应该是交易讯息的真正发送者 |
隐私 | 确保只有预期的收件者才能阅读交易讯息 |
高效容错 | 网络能高效快速的运行,即使某些节点失败或缓慢 |
性能 | 吞吐量,活跃度,可扩展性和延迟 |
PBFT算法的运作步骤为:
(1)取一个副本作为主节点,其他的副本作为备份;
(2)用户端向主节点发送使用服务操作的请求;
(3)主节点通过广播将请求发送给其他副本;
(4)所有副本执行请求并将结果发回用户端;
(5) 用户端需要等待F+1个不同副本节点发回相同的结果,作为整个操作的最终结果。
因此,PBFT算法对所有非有问题之副本节点的请求执行总顺序可达成一致,据以保证安全性。所有用户端最终都会收到针对他们请求的回复,据以确保活跃度(liveness)。
实用拜占庭容错算法保证安全性与活跃度示意图
来源:金色财经