什么是 pBFT 算法

区块链资讯psitoken2019-06-27 16:49:58  阅读 -评论 0

什么是 pBFT?

Practical Byzantine Fault Tolerance ,实用拜占庭容错。

什么是 BFT?

Byzantine Fault Tolerance ,拜占庭将军问题。

拜占庭将军的问题是什么?

简单地说,是一种少数服从多数的问题。拜占庭罗马帝国的每块封地都驻扎一支由将军统领的军队,将军与将军之间只能靠信差传递消息。在战争时期,拜占庭军队只有占据人数优势情况下,才能夺取目标的胜利。但在军队内有可能存有叛徒,当敌军与之联合起来大于忠诚将军数量时,进攻就会失败。

pBFT 算法的提出主要是为了解决拜占庭将军问题。

要解决这个问题的前提是通信必须是可靠的,如果通信不可靠则问题无解。而拜占庭将军问题中通过通信不可靠而试图达成一致的结果几乎不可能或者非常困难。所以要在通信可靠的前提下来解决此问题。也就是在系统上有一些恶意组件不断发送错误信息的情况下让系统依旧正常运行的能力。

pBFT 原理

在系统中有一个节点会被当做主节点,而其他节点都是子节点。系统内的所有节点都会相互通信,最终目标是大家能以少数服从多数的原则达成数据的共识。

达成共识的过程

第一步,客户端发一个请求给主节点去执行某个操作;

第二步,主节点通信给各个子节点;

第三步,所有节点通过算法并把结果返回给客户端;

第四步,当客户端「收到结果」后,过程结束;

第四步中收到结果时的最大容错节点数

1.假设 n 是总节点数,f 为有问题的节点,

2.问题包括两种,一种是故障节点 f,一种是作恶节点 f。

3.故障节点收到通信后不会返回结果,作恶节点收到通信后会返回错误的结果。在统计返回节点数时,有问题的节点 f 会被排除在外,所以只要正确通信数大于作恶节点数 f 即可保证本次通信正常,即 f + 1 个正确节点,

4.也就是说总节点数n 包括 f + 1 个正确节点,f 个作恶节点和 f 个故障节点,即 3f + 1 = n,

5.因此pBFT算法支持的最大容错节点数是 f = (n-1)/3,

6.也就是超过 1/3 的节点数即可。

第三步中的pBFT算法

其中

C代表客户端,0,1,2,3 代表节点的编号,

打叉的3代表故障节点或者是问题节点,这里表现为故障节点。

0 是主节点。

算法的核心三个阶段分别是

pre-prepare预准备,由于主节点不会发布两条内容不同的通信,则如果收到节点编号相同而内容不同的通信,子节点会选择拒绝请求。

prepare 准备,由于同时有n个节点接受请求进行通信,所以在一定时间范围内,如果收到超过 2f 个不同节点的 prepare 消息,就代表 prepare 阶段已经完成。

commit提交,和prepare同理,当收到 2f+1 个 commit 消息后(包括自己),代表大多数节点已经进入 commit 阶段,这一阶段已经达成共识,于是节点就会执行请求,写入数据。

有关其他技术

checkpoint 、stable checkpoint和高低水位

checkpoint,是当前节点处理的最新请求序号。比如一个节点正在共识的一个请求编号是1,那么对于这个节点,它的 checkpoint 就是1。

stable checkpoint,是已经共识完成的最大请求序号。也就是 f + 1个节点请求编号是10 ,那么stable checkpoint就是10。

stable checkpoint为的是减少内存占用。当稳定是stable checkpoint是10 ,那么代表 10 号之前的记录已经共识过的了,可以删掉了。

stable checkpoint 可以设置一个范围,即水位,他的最小值叫下水位,最大值就高水位,他们的差 L 可以自定义。为了减少各个节点之间最大请求序号的差。假设水位是 50 ~ 100,当 a 节点到达100后,会等待 b 节点到达接近 100 时,自动更新水位范围,比如变成 100 ~ 150。这样节点就可以基本同步重新进行操作了。

更换主节点

当主节点出现故障,就会触发 ViewChange + 1 事件viewchange 会有三个阶段,分别是

view-change , 从节点认为主节点有问题时,会向其它节点发送 view-change 消息,当前存活的节点编号最小的节点将成为新的主节点。

view-change-ack ,新的主节点收到 2f 个 view-change 消息,则证明 view-change有效,并广播new-view 消息。

new-view ,新主节点会继续执行上个视图未处理完的请求,其它节点验证 new-view 消息通过后,就会处理执行pbft 过程并进入ViewChange + 1。

pBFT 的优点

高效,由于各个节点达成共识是在同一时刻决定的首先,所以pBFT 无需等待确认。

节能,因为 pBFT 是无需挖矿的,所以pBFT 不用耗能。

pBFT 的缺点

中心化,由于要保证各个节点间的频繁的通信,所以节点数不能太多。

门槛高,由于pBFT 不能防止女巫攻击,也就无法防御一个恶意用户用多个账户来进行共识的造假行为,所以需要审核加入节点。

所以 pBFT 比较适合需审批的联盟链,不太适合做无条件加入的公链

声明:链世界登载此文仅出于分享区块链知识,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。此文如侵犯到您的合法权益,请联系我们100@7234.cn

参与讨论 (0 人参与讨论)

相关推荐

中信银行打造“区块链”信用证结算!

中信银行打造“区块链”信用证结算!

科技不会改变金融的实质,但却能让金融服务更高效,能让资金供、需方信息不对称的问题更好地解决。近期,中信银行首个区块链项目——基于区块链的国内信用证信息传输系统(简称BCLC)(一期)成功上线,这是国内银行业第一次将区块链技术应用于信用证结算领域。 据中信银行国际业务部总经理助理张栩青介绍,将现在流行的区块链技术应用在国内信用证中,改变了银行传统信用证业务模式,信用证的开立、通知、交单、承兑报文

中国信息技术部门成立区块链研究实验室

中国信息技术部门成立区块链研究实验室

暴走时评:本月初,中国政府对国内的ICO和数字货币交易所的打击在世界范围内引起了强大反响,但政府已经多次声明不会将区块链与数字货币划等号,依然非常重视区块链技术在中国的发展。鉴于中国工业和信息化部成立了一个专门研究区块链的实验室,这一论调也得到了进一步的证实。 虽然中国政府最近在大力打击比特币交易所和ICO,但仍然致力于开发区块链在其他领域的潜力。 据财新网报道,中国工业和信息化部已经成立了一

 分布式账本中的生命科学

分布式账本中的生命科学

生物科学是医学领域涉及遗传研究,疾病预防和生活方式治疗(lifestyle treatments)的学科。它已经存在了很长时间,但区块链技术的基础设施应用给该学科提供了重大进步的可能性。 根据Pistoia Alliance进行的2016年6月份高级制药和生命科学领袖调查,83%的受访者表示,他们预计在五年内将全面采用区块链技术。 Pistoia Alliance是一个全球性的非营利组织,致

区块链vs.核能:日本最大电力公司东京电力(TEPCO)寻求使用区块链减轻对核电的依赖

区块链vs.核能:日本最大电力公司东京电力(TEPCO)寻求使用区块链减轻对核电的依赖

东京电力公司 (TEPCO) 对于能源过度中心化的风险可以说绝不陌生。 也许最著名的就是2011年发生的福岛核电站事故,这个日本最大的能源公司如今正在寻求区块链技术来防止这种灾难再次发生。 然而,从使用微型风车的分布式风力发电到用于存储在电力成本低时购买的电力的智能电池,可替代能源项目一直以来都属于个人慈善事业。 然而,TEPCO风险投资部门主管Jeffrey Char认为区块链能够帮助为这

继证监会发表代币发行声明之后,香港交易所Gatecoin将下线部分ICO币

继证监会发表代币发行声明之后,香港交易所Gatecoin将下线部分ICO币

经过一系列监管以及合规审查后,香港交易所Gatecoin将会下线那些被金融监管部门定性为"证券"的代币。 香港加密货币交易所Gatecoin透露,如果在该平台交易的ICO代币在法律上符合"证券"定义,他们就会下线这些代币。据巴比特上月报道,香港主要的金融监管部门证券及期货事务监察委员会(SFC)表达了对ICO这种日渐普及的募资模式的担忧。 尽管ICO中售卖的数字代币通常都被定义为虚拟商品,但

IBM与超级账本共同加入去中心化身份基金会(DIF),推动创建区块链ID行业标准

IBM与超级账本共同加入去中心化身份基金会(DIF),推动创建区块链ID行业标准

IBM与超级账本已经签署协议加入去中心化身份基金会(DIF),这个于今年初成立的联盟旨在帮助推动基于区块链的ID系统的互操作性和标准。 这两个企业区块链大佬加入了这个有各种企业组成的团体,其中包括像微软和埃森哲这样的大企业,还有像Civic和Gem这样的创业公司,以及像uPort和Sovrin这样的开源项目。 DIF执行主管告诉Coindesk说: "这应该是一个信号,表明在这一领域有广泛的

为打击人口贩卖,牙买加警方盯上了犯罪分子的比特币钱包

为打击人口贩卖,牙买加警方盯上了犯罪分子的比特币钱包

作为打击人口贩卖计划的一部分,牙买加警方已经开始行动,锁定了那些试图用比特币和数字支付来掩人耳目的犯罪分子。 越来越多的人口贩卖者都开始转向数字货币来帮助他们进行地下活动并接收非法活动所得,但牙买加警方已经盯上他们了。 牙买加的'大生意' 不幸的是,人口贩卖以及性奴市场规模十分庞大,预计涉资1500亿美元。在牙买加,大约有7000个妇女、儿童以及成年男性被奴役,他们的操控者出售奴役服务的价格

深圳市将发布《深圳市扶持金融业发展若干措施》,奖励区块链、数字货币等金融创新

10月9日,深圳市人民政府向各区人民政府,市政府直属各单位印发《深圳市扶持金融业发展若干措施》(以下简称"《若干措施》")。深圳市政府表示,此举是为进一步完善金融支持政策体系,吸引集聚优质金融资源,推动全市金融业可持续均衡发展,加快建设国际化金融创新中心。 《若干措施》共分五大项,33条。内容包括:坚持服务导向,优化金融政策环境;发展金融总部经济,鼓励金融总部企业做大做强;支持金融企业分支机构

麦妖榜
更新日期 2019-07-19
排名用户贡献值
1BitettFan24097
2等待的宿命23809
3牛市来了21467
4六叶树20309
5区块大康19332
6linjm122717548
7天下无双16192
8lizhen00215252
9让时间淡忘14484
10冷风大q11188
返回顶部 ↑