引言拜占庭将军问题在分布式领域是一个所有人都耳熟能详的问题,在初次学习分布式共识算法,比如Raft的时候,我们会看到容忍非拜占庭错误这样的句子,所以Raft可以抵御N>2f+1时f个节点的错误。那么什么是拜占庭错误,如何可以避免拜占庭错误呢?这就需要我们再深入学习了。拜占庭容错算法的完善其实是一个逐步发展的过程,在Lamport 1982年提出拜占庭将军问题时其实就已经给出了两种解法OM与S
文章目录一、拜占庭容错共识1. 什么是PBFT拜占庭将军的问题是什么?pBFT 原理2. 与最传统的PoW共识机制相比,PBFT优势和劣势3. BFT共识开发库TendermintBFT-SMaRtBABBLEConcord-BFTHBBFTlibbft二、参考 一、拜占庭容错共识1. 什么是PBFT共识机制堪称区块链的核心。我们知道,EOS、Hyperledger(之前0.x是,现在2.x已经
作者:苏江同学 链接:https://www.jianshu.com/p/...
原创 2021-06-04 22:33:50
465阅读
什么是异步拜占庭容错 (ABFT)?   异步拜占庭容错(ABFT)是拜占庭容错共识算法的一个属性,它允许网络的诚实节点保证公平、安全地就一组交易的时间和顺序达成一致。   什么是拜占庭容错? 让我们首先了解拜占庭容错实际上意味着什么。术语拜占庭容错源自称为“拜占庭将军问题”的假设场景。 开发这个假设场景是为了描述一种情况,在这种情况下,为了避免分布式系统出现故障,系统的参与者必须就协调一致的策略
原创 2021-06-25 11:26:39
580阅读
作者:苏江同学  拜占庭将军问题很多人可能听过,但不知道是什么意思,本文从非专业的角度来讲讲,拜占庭将军问题到底是说什么的。拜占庭将军问题(Byzantine Generals Problem),首先由Leslie Lamport与另外两人在1982年提出,很简单的故事模型,却困扰了计算机科学家们数十年。故事大概是这么说的:拜占庭帝国即中世纪的土耳其,拥有巨大的财富,周围10个邻邦垂诞已
转载 2022-04-01 10:24:54
269阅读
拜占庭容错协议(BFT)在分布式系统中发挥着至关重要的作用,能够在存在故障或恶意行为的情况下保持一致性和可靠性。尽管BFT
原创 2024-10-16 16:54:35
0阅读
区块链快速入门(四)——BFT(拜占庭容错)共识算法一、BFT简介1、拜占庭将军问题简介拜占庭将军问题(ByzantineGeneralsProblem)是LeslieLamport(2013年的图灵奖得主)用来为描述分布式系统一致性问题(DistributedConsensus)在论文中抽象出来一个著名的例子。拜占庭将军问题简易的非正式描述如下:拜占庭帝国想要进攻一个强大的敌人,为此派出了10支
原创 2018-10-18 18:34:46
10000+阅读
2点赞
论文精度系列文章,是笔者个人对论文内容的私有解读,可能会
原创 2022-09-24 23:53:42
362阅读
功能: 1.定义了一个General类,用于表示每个将军的状态和行为。 2.实现了一个拜占庭容错算法的模拟过程,处理多轮消息交换和决策。 3.初始化指挥官发送命令,并根据叛徒情况调整消息内容。 4.每轮决策采用多数决原则。 5.测试框架验证算法正确性,包括一致性和遵循指挥官命令的条件。 6.处理合法和非法测试用例,进行压力测试。 step1:C:\Users\wangrusheng\Pycharm
原创 4月前
145阅读
2.实现了一个拜占庭容错算法的模拟过程,处理多轮消息交换和决策。1.定义了一个General类,用于表示每个将军的状态和行为。5.测试框
algorand:可扩展的拜占庭协议1、系统概述1)系统目标Algorand是MIT机械工程与计算机科学系SilvioMicali教授与合作者于2016年提出的一个区块链协议,主要是为了解决比特币区块链采用的pow共识协议存在的算力浪费,扩展性弱、易分叉、确认时间长等不足。因此SilvioMicali教授在algorand区块链协议中提出了一种新的共识协议BA*,其目标是:  1.能耗低,不管系统
区块链快速入门(三)——CFT(非拜占庭容错)共识算法一、CFT简介CFT(CrashFaultTolerance),即故障容错,是非拜占庭问题的容错技术。Paxos问题是指分布式的系统中存在故障(crashfault),但不存在恶意(corrupt)节点的场景(即可能消息丢失或重复,但无错误消息)下的共识达成问题,是分布式共识领域最为常见的问题。最早由LeslieLamport用Paxon岛的故
原创 精选 2018-10-16 22:51:39
10000+阅读
1点赞
分布式拜占庭容错算法——权益证明(PoS)算法详解
[Distributed]拜占庭将军问题拜占庭概述拜占庭将军问题分布式领域中“拜占庭将军问题”问题核心剖析问题核心问题分析问题解决解决方案:口头协议实现过程不可靠场景Commander不可靠Node不可靠少数不可靠多数不可靠不足解决方案:书面协议实现过程特点不足解决方案:工作量证明总结参考拜占庭概述首先来说说,什么是拜占庭拜占庭拜占庭帝国,又称东罗马帝国,首都位于如今土耳其的伊斯坦布尔。如上图
拜占庭算法是一种用于解决分布式系统中节点间可能存在的信任问题的算法,它可以保证在一定条件下,即使有部分节点出现故障或者作恶的情况下,仍然可以让节点之间达成一致的共识。在本文中,我们将深入探讨拜占庭算法的背景、原理和应用。背景在分布式系统中,由于各个节点的不可靠性和网络的不稳定性,常常出现无法达成共识的情况。而拜占庭问题是指在分布式系统中,由于部分节点的故障或者作恶,导致节点之间无法达成一致的共识的
理解分布式一致性:拜占庭容错与PBFT拜占庭问题拜占庭容错BFTPBFT(Practica
原创 2022-09-19 16:41:51
62阅读
 软件实现Tendermint采用Go语言实现,代码在https://github.com/tendermint/tendermint。Go是一个类C的语言,带有强大的标准库,可以很轻易的启动大量轻量级并发,并且提供了简单并安全的开发环境。该代码使用了许多软件包,这些软件包足够模块化,可以作为自己的库进行隔离。这些软件包大部分由Jae Kwon编写,包含错误修复,测试以及作者提供的临时功
在程序运行过程中难免会遇到各种意想不到的状况出现,我们需要不断完善代码,对可能出现的程序错误要有准备。程序错误一般分为以下几种可能:本来程序就有错误,如:函数功能不完善,数值计算错误,符号错误,等等。这些bug都是需要我们在编写代码之初,就要解决消除的。另外就是用户输入错误还有就是意想不到的错误,比如说:程序运行过程中,内存读取错误等等我们常见判断错误的方式返回一个错误码,但是python和其他高
文章目录一.简介二.示例2.1 二忠一叛的难题2.2 口信消息型拜占庭问题之解2.2.1 演示2.3 签名消息型拜占庭问题之解2.3.1 签名消息2.3.2 签名约束行为2.3.3 作战一致性一.简介拜占庭将军问题(The Byzantine Generals Problem),它其实是借拜占庭将军的故事展现了分布式共识问题,还探讨和论证了解决的办法。而大多数人觉得它难理解,除了因为分布式共识问题比较复杂之外,还与莱斯利·兰伯特(Leslie Lamport)的讲述方式有关,他在一些细节上(比如,口信消
原创 2021-08-31 09:10:52
955阅读
拜占庭将军问题(Byzantine Generals Problem),是由莱斯利·兰波特在其同名论文[1]中提出的分布式对等网络通信容错问题。 在分布式计算中,不同的计算机通过通讯交换信息达成共识而按照同一套协作策略行动。但有时候,系统中的成员计算机可能出错而发送错误的信息,用于传递信息的通讯网络
原创 2021-07-16 16:11:48
783阅读
  • 1
  • 2
  • 3
  • 4
  • 5