异步拜占庭容错(ABFT)是拜占庭容错共识算法的一个属性,它允许网络的诚实节点保证公平、安全地就一组交易的时间和顺序达成一致。

什么是拜占庭容错?

让我们首先了解拜占庭容错实际上意味着什么。术语拜占庭容错源自称为“拜占庭将军问题”的假设场景。

开发这个假设场景是为了描述一种情况,在这种情况下,为了避免分布式系统出现故障,系统的参与者必须就协调一致的策略达成一致,但其中一些参与者是不可靠的。它使用四名拜占庭将军对敌方城市的计划攻击。这些将军和他们的军队各自占据城市的不同一侧,因此彼此完全隔离,无法进行直接、协调的交流。为了计划他们的进攻——或撤退——他们必须使用自己的信使来处理通信,因此他们每个人都派出自己的信使与对方分享他们的计划。

但是这种方法存在严重缺陷——存在关于共享信息的可信度的问题,例如:如果任何信使被俘虏并被敌对信使替换,他们故意分享虚假信息怎么办?如果一名(甚至两名)将军本身实际上是叛徒,并发送了带有误导性信息的信使怎么办?如果其中一名信使本身是叛徒并故意分享虚假信息怎么办?

您很快就会发现这里存在一个信任问题,无法忽视这些拜占庭将军试图就是否攻击或从他们周围的城市撤退达成共识(或完全同意)的方式。通过解决这个被称为拜占庭容错的信任问题,您可以相信网络会公平地运作。

拜占庭容错(BFT)如何应用于去中心化网络?

所有去中心化网络(分布式账本,例如区块链)都有独立的节点,在上面的假设情况下就像拜占庭将军一样。

这些节点必须就以下事项达成一致或共识:提交给网络的交易、这些交易的排序以及网络本身的状态。这些网络节点可能在地理上、虚拟上、架构上,有时甚至在道德上彼此分离。

因此,节点不仅需要能够通信,以实现其最终的共识目标,还需要考虑到一些节点是恶意的;信任是这里的一个关键问题,因为一些节点可能在网络上不诚实:它们可能被黑客接管或故意发送不正确的信息。有时可能是数千个节点之间的通信使得就决策达成共识或协议非常具有挑战性。

在去中心化的网络中,知道网络上发生的交易的时间和顺序已通过共识达成,并且每笔交易都由参与节点记录、验证和共享,这具有巨大的价值——即使其中一些节点不值得信赖,甚至可能试图对共识产生负面影响。在去中心化的网络中,整个过程还有一个额外的好处,即拥有共识的数学保证,或者诚实参与的节点会做出相同的决定。去中心化网络中的节点无需相互信任即可就交易达成正确协议的这种能力——大规模地——才是真正使分布式账本技术与众不同的地方。

什么是“异步”拜占庭容错 (ABFT)?

当去中心化网络具有拜占庭容错能力时,这意味着可以保证网络的诚实成员或节点就一组交易的时间和顺序(共识)达成一致。不管是否有一些节点恶意地试图阻止这种共识——即使多达 1/3 的节点试图通过延迟交易或以其他方式破坏事物来对共识产生负面影响。这是网络的“容错性”,意味着网络可以容忍多少节点的恶意行为,但仍能达成诚实的共识。

拜占庭容错的“异步”特性克服了容错的挑战,即时序挑战。许多形式的拜占庭容错假设在达成共识时存在消息延迟的最大阈值。异步拜占庭容错 (ABFT) 网络消除了这种假设,并允许某些消息丢失或无限期延迟。

ABFT 网络允许消息丢失或无限期延迟,并且仅假设在某个时候诚实节点的消息最终会通过。如果该节点的消息可以无限延迟,则诚实节点评估另一个节点是否不遵守规则更具挑战性,但这种情况更好地反映了现实世界中的网络可靠性。

哈希图异步拜占庭容错

Hashgraph 是异步拜占庭容错 (aBFT) - 共识算法可以提供的最高安全级别。ABFT 意味着如果 a) 攻击者控制不到 1/3 的投票权超过共识 b) 我们只假设来自诚实节点的消息最终会通过,但不做任何假设关于这样做需要多长时间。具体来说,攻击者必须控制权益证明系统中少于 1/3 的权益,或控制没有权益证明系统中少于 1/3 的节点。攻击者可以控制整个通信网络,因为攻击者可以删除消息,或将消息延迟任意时间,唯一的限制是如果诚实节点 Alice 反复尝试向诚实节点 Bob 发送消息,最终一个人会通过。该系统对网络节点和通信网络本身的攻击具有弹性,只要这两种类型的攻击都在上述限制范围内。共识的最终性可以与工作量证明系统的概率置信度形成对比,在这种情况下,交易总是有被追溯回滚的机会(即使很小)。

关于哈希图Hedera Hashgraph

Hedera 是一个从头开始构建的公共分布式账本和管理机构,以支持在 Web 规模上运行的新的和现有的应用程序。Hedera Hashgraph 哈希图官网:https://hedera.com/

开发人员使用分布式账本技术将计算信任直接构建到他们的应用程序中。这允许彼此不认识或不信任的个人和企业快速且廉价地进行协作。公共分布式账本允许创造和交换价值、证明身份、验证和验证重要数据等等。

什么是异步拜占庭容错 (ABFT)?相关推荐

  1. 区块链时代的拜占庭容错:Tendermint(四)

    2019独角兽企业重金招聘Python工程师标准>>> 原文题目:<Tendermint: Byzantine Fault Tolerance in the Age of Bl ...

  2. 权益证明协议中的拜占庭容错

    如果您遵循以太坊基金会的Casper研究,您将会听到许多术语,如"异步安全性"和"异步时序模型中的容错阈值".我想概述基础拜占庭容错理论中的重要概念因此您可以在 ...

  3. 区块链时代的拜占庭容错:Tendermint(五)

    2019独角兽企业重金招聘Python工程师标准>>> 原文题目:<Tendermint: Byzantine Fault Tolerance in the Age of Bl ...

  4. NEXT社区小课堂 | 第四课:dBFT 2.0详解 | 委托拜占庭容错:技术细节、挑战和前景...

    NEXT社区 | 小课堂 由于近期NEXT社区加入很多新的小伙伴,有在校大学生,有对区块链感兴趣的传统企业从业者.为了更方便.更系统的让NEXT社区的伙伴们了解NEO的技术知识,因此我们开设了小课堂, ...

  5. 拜占庭容错(BFT)算法介绍

    [原文作者:Jae Kwon,译者:郭光华] 2011年比特币将世界的注意力引向到了区块链.但可惜的是,比特币版本的区块链不能解决区块链行业的很多问题.那是因为: 1.比特币的POW共识会浪费大量能源 ...

  6. PBFT实用拜占庭容错算法详解

    分布式架构遭遇的问题 分布式架构会遭遇到以下问题: 1.异构环境的分布式架构首先可能遇到网络传输问题,比如数据丢失.延迟.重复.乱序. 2.欺骗攻击和重播攻击 3.操纵多个失效节点,延迟通讯,制造混乱 ...

  7. 拜占庭容错共识(PBFT)

    文章目录 一.拜占庭容错共识 1. 什么是PBFT 拜占庭将军的问题是什么? pBFT 原理 2. 与最传统的PoW共识机制相比,PBFT优势和劣势 3. BFT共识开发库 Tendermint BF ...

  8. 从Paxos到拜占庭容错,兼谈区块链的共识协议

    2019独角兽企业重金招聘Python工程师标准>>> 高可用架构在分布式系统设计中是最核心的挑战之一,拜占庭容错则是解决高效容错问题的通用方案.拜占庭系统来源于拜占庭将军问题,在古 ...

  9. 拜占庭容错的三个基本理论(CAP/FLP/DLS)

    拜占庭容错的三个基本理论 1) CAP理论 - "如果网路发生阻断(partition)时,你只能选择资料的一致性(consistency)或可用性(availability),无法两者兼得 ...

最新文章

  1. OpenResty学习中的几个小例子汇总
  2. 关于“System.Data.ProviderIncompatibleException”类型的异常
  3. APP市场火热的背后 云计算技术不是核心竞争力
  4. 检查CentOS7定时任务是否启用并执行过
  5. 发布dotNetCore程序到Kubernetes
  6. 关于算法--蛮力法篇--选择排序
  7. TCP 和 UDP 区别
  8. 破解闪讯,让你的笔记本变成wifi基站
  9. jpg图片批量压缩的简单方法
  10. 正月十五闹元宵,平安吉祥乐团圆
  11. 半夜冒着大雨跑网吧写文章是怎样的体验?
  12. jmeter-----使用
  13. phpinfo()是什么
  14. Warning: Data truncated for column at row 1
  15. bitbucket配置_Bitbucket和Confluence安装配置
  16. 使用tcpdump查看原始数据包
  17. 2019年“华为杯”研究生数学建模比赛总结
  18. OneNav开源导航系统 简约导航/书签管理器
  19. 中国门户网站现状和未来
  20. Unity 语音通话功能

热门文章

  1. TabLayout+ViewPager+Fragmet+RecyclerView结合的小demo
  2. galerkin有限元法matlab实现,有限元法求解二维Poisson方程的MATLAB实现
  3. Python爬虫入门-python之爬取pexels高清图片
  4. 梳理半月有余,精心准备了17张知识思维导图,这次要讲清统计学
  5. 【报告分享】厨房料理小家电新品类市场洞察(2021)-闻道网络(附下载)
  6. opengl高级光照之视差贴图(陡峭视差贴图以及视差遮蔽映射)
  7. 《易学C++》欢迎来到异步社区!
  8. 数据泵expdp/impdp导入导出详细说明
  9. 【MySQL】Navicat中SQL创建数据库表
  10. 面试遇到的 python 问题 -- 2017年 手写代码