拜占庭将军问题的经典解决方案

最好的描述资料

http://www.8btc.com/baizhantingjiangjun
注:论文中的拜占庭将军问题的两个方法只是解决拜占庭问题的手段之一,等价于PBFT也是解决拜占庭问题的手段之一。

PBFT是Practical Byzantine Fault Tolerance的缩写,意为实用拜占庭容错算法。该算法是Miguel Castro (卡斯特罗)和Barbara Liskov(利斯科夫)在1999年提出来的,解决了原始拜占庭容错算法效率不高的问题,将算法复杂度由指数级降低到多项式级,使得拜占庭容错算法在实际系统应用中变得可行。

经典方案中的1/3的容错率

区块链的解决方案比如PoW为什么可以突破1/3这个阈值而达到1/2,主要是因为经典的解决方案都利用了投票的方式。

下面简单证明,为什么投票方式的阈值是1/3:

从接收端的角度,n个节点里面可能有f个恶意节点出不回应。
这种情况下客户端必须要在有回应的 n-f 个消息中进行判断。但由于系统是异步的,即这f个不回应的消息可能都不是恶意的节点,只是因为延迟等问题。也即在n-f个回应中,可能还有f个消息是恶意节点发出的。为了能在这n-f个回应中通过多数决得出正确的结果,必须要求 n-2f>f,即n>3f。

经典解决方案的缺陷

  1. 节点之间要相互认识
  2. 因为节点之间要相互交互,带宽占用达到 O(n2) O ( n 2 ) O(n^2)的规模,这就是Hyperledger基本达到百级的节点就不能用的主要原因。

区块链的解决方案(PoW)

看了PoW真的有很深的触动,真正的创新不是繁杂的推导和证明,大道至简。

PoW采用的方法是专制的方式,不用投票,不用两两交互,谁赢了这个游戏,谁说了算,使得系统达到了一致性。

如果诚实节点占据多于50%的算力,从概率的角度看,诚实节点总会赢得游戏。从社会学的角度看,设计了coinbase的奖励,所以掌握了51%的人,为了经济利益也会去维护这个系统。

拜占庭将军问题的深入思考相关推荐

  1. 拜占庭将军问题深入探讨

    了解过比特币和区块链的人,多少都听说过拜占庭将军问题,或听说过比特币(或区块链)的一个重要成就正是解决了拜占庭将军问题.但真正明白这个问题的人并不多,甚至知道这个问题实质的人都很罕见.本文是一篇技术科 ...

  2. 丢失的拜占庭将军问题之谜

    众所周知,比特币作为一个开放的.分布式的点对点网络,所需要克服的一个非常关键的问题就是拜占庭将军问题,也就是关于分布式共识的问题. 共识机制,也是区块链领域一个非常热门的创新点.各种项目层出不穷,热衷 ...

  3. 拜占庭将军问题 原文翻译

    拜占庭将军问 作者:LESLIE LAMPORT.ROBERT SHOSTAK 和 MARSHALL PEASE @ 斯坦福国际研究院 译者&校对:闵敏 & 裴奇, Elisa @ E ...

  4. 兰伯特莱斯利_时钟,乳胶,拜占庭将军和后量子密码:遇见令人惊叹的莱斯利·B·兰莫特

    兰伯特莱斯利 I write this article in Medium, and with its limited text editor, but I really would love to ...

  5. 【区块链】(三)之拜占庭将军问题

    区块链的最早应用是比特币,而比特币的概念最初由中本聪在2009年提出,根据中本聪的思路设计发布的开源软件以及建构其上的P2P网络构成比特币系统.区块链发源于比特币技术.在中本聪的白皮书里," ...

  6. 区块链:拜占庭将军问题深入探讨

    原文链接:http://www.8btc.com/baizhantingjiangjun 了解过比特币和区块链的人,多少都听说过拜占庭将军问题,或听说过比特币(或区块链)的一个重要成就正是解决了拜占庭 ...

  7. 分布式系统–拜占庭将军问题(The Byzantine Generals Problem)

    本文档作为分布式系统的学习基础,通过拜占庭问题取尝试先了解分布式系统里面可能存在的基础问题.拜占庭将军问题,主要为了解决在已知有成员不可靠的情况下,其余忠诚的将军需要在不受叛徒或间谍的影响下达成一致的 ...

  8. 共识与拜占庭将军问题

    1.共识基础 人们对共识机制的研究其实由来已久,从上世纪70年代就开始了相关研究,其目的是为了解决分布式系统中的一致性问题.Fischer, Lynch 和 Patterson在1985年发表的论文中 ...

  9. 区块链技术用解决拜占庭将军问题_区块链设计核心难题:拜占庭将军问题

    在前面两期中,主要对区块链的基本概念和基本设计原则进行说明,现在有了这些背景知识后,再去学习更深层的知识将会更加容易.本期我们一起研究一下拜占庭将军问题,这是区块链解决的一个核心难题,通过理解这个问题 ...

最新文章

  1. resin-pro-4.0.34 服務器在windows环境下的配置
  2. xgboost不能解决哪些问题?为什么?进而说明树模型有哪些缺陷?那种模型能够树模型的这种缺陷?
  3. 转一个,中文分词方法概述
  4. 河南省第十三届ICPC大学生程序设计竞赛 【部分题题解】
  5. Linux rpm软件包管理工具常用命令示例
  6. poj1673 EXOCENTER OF A TRIANGLE
  7. ECS中的Entity实体
  8. LVM基本介绍与常用命令
  9. 杭电2019多校第八场 Acesrc and Good Numbers——思维打表oeis
  10. 【数学建模】——1992~2019国赛优秀论文
  11. 气温和降水空间栅格数据下载RS123
  12. 修改手机屏幕刷新率_手机屏幕刷新率那点事儿!
  13. Excel2007无法卸载:安装程序包的语言不受系统支持。微软的卸载程序也不行。——只能手工删除
  14. KingabseES 锁机制
  15. 师傅!华为eNSP报错啦!别担心,一篇文章教会你
  16. 路由器、交换机、服务器等网络设备常见故障及解决方法
  17. 如何写好科研论文 (第二章习题 Quiz 2)
  18. 教你使用html三剑客写一个高级的伪3D效果
  19. 程序员间 日常商业互捧。。
  20. linux在开发板LCD上显,W35型LCD驱动移植 - linux-2.6.32在mini2440开发板上移植_Linux编程_Linux公社-Linux系统门户网站...

热门文章

  1. vue将html标签内容导出word
  2. 电子烟也有黑科技-MEMS压力传感器提速产品应用智能化
  3. Re: 寂静岭风格的爱情图片,不喜勿入。(内有恐怖的图片)
  4. 【解决方案】log4j2配置日志打印时区
  5. 良好的编程风格(一)
  6. 高效阅读源码的五步速读法
  7. 组合 公式 计算机,排列与组合的概念与计算公式
  8. 【Oracle】session_cached_cursors和open_cursors的调整
  9. 关于随机输出数组中所有元素的三种算法
  10. C++ 创建文件夹和删除文件夹