拜占庭将军问题与区块链共识算法PBFT
概述
1、两军问题
两军问题中信道是不可靠的,并且其中没有叛徒之说。
解决方式:Tcp的三次握手可以提供相对可靠地信道通信。
2、拜占庭将军问题
概述
拜占庭将军问题中并不去考虑通信兵是否会被截获或无法传达信息等问题,即消息传递的信道绝无问。
拜占庭将军问题是一个协议问题。拜占庭帝国的将军们在地理位置上是隔开的,战争发生时,他们无法聚在一起来商讨进攻与否,只能彼此之间通过信使来传递彼此的决定。
困扰这些将军的问题是,他们不确定他们中是否有叛徒,叛徒可能擅自变更进攻决定。在这种状态下,拜占庭将军们能否找到一种分布式的协议来让他们能够远程协商,从而就进攻问题达成一致?这就是著名的拜占庭将军问题。
3、区块链共识机制
概述
目前,区块链采用的共识机制主要基于工作量证明(PoW)、权益证明(PoS)、拜占庭协议(BA)等。各类共识机制在效率、安全性等方面有利有弊,目前区块链协议的效率,特别是高速处理海量数据的能力是阻碍区块链落地应用的主要障碍。
4、PBFT算法
概述
Practical Byzantine Fault Tolerance: PBFT,是联盟币的共识算法的基础。实现了在有限个节点的情况下的拜占庭问题,有3f+1的容错性,并同时保证一定的性能。
基本流程
1)从全网节点中选举出一个主节点(Leader),新区块由主节点负责生成。
2)每个节点把客户端发来的交易向全网广播,主节点将从网络收集到需放在新区块内的多笔交易,排序后打包存入列表,并将该列表向全网广播。
3)每个节点接收到交易列表后,根据排序模拟这些交易。所有交易执行完后,基于交易结果计算新区块的hash摘要,并向全网广播。
4)如果一个节点收到了2f(f为可容忍的拜占庭节点数)个其他节点发来的hash摘要都和自己相等,就向全网广播一条commit消息。
5)如果一个节点收到2f + 1条commit消息,即可提交新区块及其交易到本地的区块链和状态数据库。
算法核心三阶段流程
- pre-prepare阶段(预准备阶段)
- prepare阶段(准备阶段)
- commit阶段(提交阶段)
- 图中c代表客户端;0、1、2、3代表节点编号,打叉的3代表可能是一个故障节点或问题节点,0代表主节点(Leader)
拜占庭将军问题与区块链共识算法PBFT相关推荐
- 区块链共识算法 PBFT(拜占庭容错)、PAXOS、RAFT简述
共识算法 区块链中最重要的便是共识算法,比特币使用的是POS(Proof of Work,工作量证明),以太币使用的是POS(Proof of Stake,股权证明)使得算理便的不怎么重要了,而今PO ...
- 区块链共识算法及应用研究
摘要 作为区块链核心技术的共识算法,为区块链的去中心化.开放自治.信息不可篡改.匿名溯源等功能的实现提供了机制支撑和保障,实现了分布式系统中强一致性和最终一致性的高效达成.以比特币出现为时间节点,将共 ...
- 15种区块链共识算法全面详解
1,摘要 本文尽可能列出所有主要的共识算法,评估各自的优劣之处.共识算法是区块链的核心技术,本文会跟随作者的理解,持续更新.如果读者发现有所遗漏,或是存在错误,希望能通过评论指出. 2,区块链共识算法 ...
- 区块链技术用解决拜占庭将军问题_区块链技术6:拜占庭将军问题
本篇主要结合Lamport((2013年的图灵奖得主) 1982年的论文<Byzantine Generals Problem>讲一讲拜占庭将军问题(Byzantine Generals ...
- 两军问题和拜占庭将军问题的区块链解读(二)
转自:https://www.jianshu.com/p/29db1b94c677 拜占庭将军问题是区块链技术中另一个经常被提到的模型.本篇将尽量用通俗的语言解释拜占庭将军问题的本质以及背后的经典算法 ...
- 区块链共识算法的发展现状与展望
来源:平行区块链 摘 要 共识算法是区块链技术的核心要素, 也是近年来分布式系统研究的热点. 本文系统性地梳理和讨论了区块链发展过程中的 32 种重要共识算法, 介绍了传统分布式一致性算法以及分布式共 ...
- php 区块链算法_PoW/BFT等5种主流区块链共识算法的开源代码实现
共识算法是实现自主产权区块链的必不可少的关键环节,本文列出社区中相对成熟的区块链共识算法开源实现,包括BFT共识.Raft共识.Paxos共识.PoW共识等,可供希望开发自主产权区块链的团队参考学习. ...
- 深入理解区块链共识算法
区块链的概念: 区块链是一种去中心化.不可篡改.可追溯的分布式数据库系统[3].区块链系统中底层网络采用对等式网络(P2P 网络)组织各个独立的网络节点.P2P网络是扁平式的拓扑结构, 网络中的每个节 ...
- 【区块链讲师会前访谈】结合应用场景 区块链共识算法如何选择?
再过8天,2017中国云计算技术大会将在北京隆重举行. 今年,2017年中国云计算技术大会将继续在技术基石上,更着重行业实践和应用.综合来看,本次大会将围绕"四大主题峰会+八大专题论坛&qu ...
最新文章
- 2022-2028年中国香精香料行业投资分析及前景预测报告
- 排序中减治法算法伪代码_【算法与数据结构】伪代码与流程图
- python 基础知识点整理 和详细应用
- [Vue] : 键盘修饰符
- collection 源码
- 存储器芯片国产化布局加速 数千亿投资欲打破进口依赖
- esp8266数据上传到mysql数据库_03-STM32+ESP8266+AIR202/302终端管理篇-把设备温湿度数据存储到MySQL数据库(Windows)...
- 在Apworks数据服务中使用基于Entity Framework Core的仓储(Repository)实现
- 第十三节:Lambda、linq、SQL的相爱相杀(2)
- 字符串 kmp算法解析
- Spring MVC 学习总结(五)——校验与文件上传
- scrapy信号扩展
- JS中的各种尺寸问题
- 在什么场合里你会用到消息队列?
- c语言编程八卦方位,易经手掌八卦图,如何C语言编程画一个彩色的周易八卦图...
- 国内外主流云计算开发平台对比图 云开发平台
- 好玩的Ipaddian
- 【工业智能】用AI来做工业设备的故障诊断,目前还停留在“鸡尾酒疗法”阶段
- python中reset_在Python中重置类的首选方法
- .net win7 iis7.5配置伪静态