前言:拜占庭容错是区块链领域的常见术语,它也是密码学的核心问题。本文适合初学者阅读。

译者注:本文简化了“拜占庭将军问题”中可能出现的多种数学模型,简要指出拜占庭问题解决的核心是“尽管有破坏者存在,拥有最多算力的链即可认定为主链,因为做叛徒(发布虚假区块)的成本和竞争难度非常大,以至于几乎不可能。”由于区块链的去中心化和自治属性,如何在容许一定差错的情况下让众多参与的节点达成共识并传递信息,这是一个核心问题,中本聪第一个做到了。

当你开始深入了解区块链时,会经常听到一个术语:拜占庭容错(BFT)。如果你想弄清楚它,一个听起来非常奇怪和神秘的术语,我们可以用一个故事来解释。

1982年,一个叫做拜占庭将军问题的数学问题被提出来。这里不详细描述它背后的数学原理,本质上,拜占庭将军问题是一个关于两个帝国之间一场战争的故事。

骑士精神:中世纪的战争

一个帝国置身于坚实的城墙里,另一个帝国的数位将军包围了这座城市,每个将军都带领着军队等候进攻。两个帝国势均力敌。

如果所有的将军达成一致同时进攻,他们就有足够的力量战胜城墙里的帝国,从而赢得战争。

但是,不管出于什么原因,如果他们不能协调好同时发动进攻,哪怕只有一个将军错过了信息,他们的围攻计划将会失败并输掉这场战争。

拜占庭将军问题探讨了密码学的一个关键领域,事实上,这是密码学的核心,本质是如何在一个某些人可能会“叛变”的环境中交换信息。

现在, 这些将军们唯一的沟通方式就是派一个伪装的信使,穿过城市给其他将军传递信息。这里将会一直存在一个风险。如果你是其中一个将军, 你将从其中的一位信使那里得到一个消息,那么你怎么知道, 或者你怎么能够比随机决定有更大把握相信你得到的信息是可靠且没有被篡改过的?

这也是1982年提出的一个假设,直到2008年才得以解决。那一年匿名的中本聪(Satoshi Nakamoto)提出了一个解决办法,这使得比特币成为可能。

本质上,解决方案是让所有的将军都尽可能拥有更多的数学家。

“当我们谈论拜占庭容错时,我们谈论的是将军们比城墙内的帝国拥有更多的权限,更多的数学家,或更多的算力。

所以, 如果我能雇更多的数学家, 那就意味着我可以越来越复杂地加密我通过城里传递的信息;但如果城外将军们的权力平衡局面变得非常有利, 且他们可以使用的加密方法是如此复杂, 以至于城里的任何一位数学家真的没有机会或非常小的机会,能够在将军们几乎注意不到的足够快的时间里,拦截消息,然后解密、改变内容并重新加密。

这就是拜占庭容错。

这也是现在我们看到的,大多数公共区块链解决方案中使用的容错机制,包括我之前提到的比特币和以太坊,尽管以太坊正在过渡到权益证明系统(Proof of Stake)。

因此,说到区块链,当你听到拜占庭容错时,它表示的含义就是如果区块链上的算力和哈希能力比链外的更强大,它就会变得安全。

比特币是目前最大的区块链网络, 拥有超过30,000个节点, Ethereum有超过16,000个节点, 它为我们提供了高度的安全性和不可变性。这些网络上的算力非常强大, 以至于真的没有多少机会,让一个对手可以控制尽可能多的算力来攻击该区块链上的数据。

如果有人要这样做,其背后的经济机会很可能是,他们将花费更多的钱来同时利用所有的算力,这可能是他们无法承受的。

关于这个问题,你会听到很多关于51%攻击的问题。最后, 我们可以说, 拜占庭容错是密码学的根源, 它只是单纯研究我们如何在有“敌对方和恶意行为者”的时候能够安全地来回传递信息, 它是存在于区块链中所有安全性和不可变性的基础。

------

风险警示:蓝狐笔记所有文章都不构成投资推荐投资有风险,投资应该考虑个人风险承受能力,建议对项目进行深入考察,慎重做好自己的投资决策。

通往区块链的新世界:关注“蓝狐笔记”公众号:lanhubiji

本文作者Demiro Massessi,是由“蓝狐笔记”社群Dyna翻译。

加密+拜占庭将军_简单读懂拜占庭容错相关推荐

  1. 的协议是加密+拜占庭将军_分布式协议之拜占庭问题

    分布式协议笔记 常用的分布式算法 分布式算法的四度空间 为了更好地理解最常用的分布式算法的特点,作者从拜占庭容错.一致性.性能和可用性四个纬度整理了一张表 拜占庭容错 拜占庭错误是莱斯利·兰伯特在&l ...

  2. 加密+拜占庭将军_屡屡被提及拜占庭将军问题,究竟和比特币是什么关系?

    摘要: 比特币提供了一个拜占庭将军问题的解决方案,而这个方案,可以推广到任何核心问题是分布式网络上缺乏信任的领域. 拜占庭将军问题是区块链领域的常见术语,也是密码学的核心问题. 拜占庭将军问题(Byz ...

  3. java实现拜占庭将军_每日一题 | 拜占庭将军问题

    昨日问题 这道题来源于读者投稿,解法来源于知乎. 很显然,每个囚犯最多打开50个抽屉,抽中自己号码的概率是1/2.但是我们有100个囚犯,这100个囚犯都找到自己号码的概率就是2的一百次方分之一.咱们 ...

  4. java实现拜占庭将军_什么是拜占庭将军问题(一)

    如果你刚接触区块链,会发现经常被一堆PoW,PoS搞得头晕晕的,特别是哪个项目对应哪个机制的时候,就会处于一种懵逼ing状态. 要了解PoW,PoS,那就要从拜占庭将军问题说起. 拜占庭将军问题是Le ...

  5. 看这篇就够了!一文读懂拜占庭将军问题

    作者 | Yu Liebing 责编 | Carol 出品 | 区块链大本营(ID:blockchain_camp) 拜占庭将军问题(The Byzantine Generals Problem)提供 ...

  6. 【区块链】读懂拜占庭将军问题

    拜占庭将军问题(The Byzantine Generals Problem)提供了对分布式共识问题的一种情景化描述,由Leslie Lamport等人在1982年首次发表.论文<The Byz ...

  7. 一文读懂拜占庭将军问题

    作者 | Yu Liebing 责编 | Carol 出品 | 区块链大本营(ID:blockchain_camp) 拜占庭将军问题(The Byzantine Generals Problem)提供 ...

  8. 樊登读书搞定读后感_《读懂一本书:樊登读书法》_精选读后感_500字

    <读懂一本书:樊登读书法>_精选读后感500字 樊登老师大名鼎鼎,但我之前没读过他的书.这本书读完,乘着记忆力还没完全遗忘整理一下笔记. 我以前读完一本书,至少会整理一段笔记.但从今年五月 ...

  9. 樊登高效休息法读书心得_《读懂一本书:樊登读书法 》作者:樊登

    "樊登读书"创始人亲授内容解读的动作要领. 吸引超过15亿次收听,捕获2200万会员之心的秘密. 私家放送知识变能力的秘密--学会这些,让自己越来越值钱 5年精选10本图书,亲笔手 ...

  10. mysql火焰图_如何读懂火焰图?

    原标题:如何读懂火焰图? 文章作者:阮一峰http://www.ruanyifeng.com/原文链接:http://www.ruanyifeng.com/blog/2017/09/flame-gra ...

最新文章

  1. AI驱动洞察 智能数据营销时代迎来拐点
  2. Python踩坑记录
  3. MVC分页控件之二,为IQueryable定义一个扩展方法,直接反回PagedListT结果集
  4. U-Boot启动过程--详细版的完全分析
  5. 我的Android进阶之旅------Android中高低API版本兼容使用@TargetApi或者@SuppressLint(NewApi)...
  6. 基于Node的PetShop,RESTful API以及认证
  7. 前端学习(1183):指令v-cloak
  8. 联发科5G芯片发布:7nm,4.7 Gbps下载速度,独立AI架构
  9. 事物(二)之客户端事务应答匹配
  10. 宏基ACER Aspire R3600 REVO离子平台
  11. 【BZOJ3894】文理分科(最小割)
  12. Spring中注解实现原理
  13. php爬虫选择器-来自phpspider
  14. ubuntu18 防火墙关闭_ubuntu18上关闭默认的防火墙
  15. VSCode查看gltf文件(glTF Tools插件)
  16. 【题解】JZOJ1321:灯
  17. Django的多表查询操做
  18. 我都有MES系统了,还有必要上工业APP吗?
  19. python-半省略号、三个点、点点点、...符号的用法小结
  20. 童程童美JAVA笔试A卷,童程童美的待遇为什么这么好

热门文章

  1. 为什么CPU的使用率总是100%
  2. 1.OAuth 2实战 --- OAuth 2.0是什么,为什么要关心它
  3. 23. 实例 --- 变量
  4. 4.1 Zend_Config
  5. 5. 用 PHP 源码操作 memcache(2)
  6. 27. PHP 文件创建/写入
  7. 14. JavaScript Date(日期)对象
  8. python 操作目录注意事项
  9. embed标签动态改变Src的值,局部刷新播放其他视频的javascript方法
  10. 当手机访问时自动跳转到手机网站