首页 > 世链号 > 一分钟读懂 PBFT 算法
币老头  

一分钟读懂 PBFT 算法

摘要:PBFT 全称为“Practical Byzantine Fault Tolerance”,中文意思为:实用拜占庭容错协议,由卡斯特罗和利斯科夫在 1999 年提出,是由拜占庭容错机制 (BFT) 变种而来。

基础普及(43):一分钟读懂 PBFT 算法!

什么是 PBFT?

PBFT 全称为“Practical Byzantine Fault Tolerance”,中文意思为:实用拜占庭容错协议,由卡斯特罗和利斯科夫在 1999 年提出,是由拜占庭容错机制 (BFT) 变种而来。

PBFT 解决了原始拜占庭容错算法效率不高的问题,被应用于在各方存在信任度的情况下进行的交易,“容错”意味着使用了这套机制,能够“包容”一定数量的恶意节点的存在,让它们不至于影响整个共识的正常达成。

PBFT 算法是如何运行的?

PBFT 是一个具有拜占庭容错的状态机复制,想要解决拜占庭将军的问题,一个直觉的想法就是利用一轮或多轮的投票以获得多数共识。

PBFT 的创新之处,在于三阶段投票的设计,分为“就位”(Pre-prepare)、“预备”(Prepare)、“执行”(Commit) 三个阶段。

1,就位 (Pre-prepare)

主导者负责接收拜占庭君主的进攻 / 撤退命,由主导者负责发起提议,内容包含进攻或撤退,主导者透过信使发送附有自己签名的“ 就位 ”讯息给其他验证者。

2,预备 (Prepare)

各验证者收到“ 就位 ”讯息后需决定是否接受主导者的提议,若赞成提议则发送附有自己签名的” 预备 ”讯息给所有将军,若不赞成则不发送任何讯息。

发出“ 预备 ”讯息的验证者开始“ 预备 ”阶段,各将军若收到 3 则以上“ 预备 ”讯息,则该将军进入“ 已预备 ”(Prepared) 状态,这些“ 预备 ”讯息的集合统称为“ 已预备证明 ”(Prepared Certificate) 。

3,执行 (Commit)

“已预备 ”的将军若决定执行,则发送附有签名的“ 执行 ”讯息给所有将军,若决定不执行则不发送任何讯息。

发出“ 执行 ”讯息的将军开始“执行”阶段,各将军若收到 3 则以上“执行”讯息,则执行讯息内容,这也代表该提议取得了共识, 执行讯息后的将军进入“ 已执行 ”状态,并将执行结果回报 (Reply) 给拜占庭君主。

PBFT 算法有什么特点?

1,许可制的

PBFT 并非完全开放的,这是由于 PBFT 需要让节点能够验证彼此的讯息,以及精准掌握节点的数量,而区块链则是属于对任何人都开放的非许可制。

2, 基于领袖的

也就是先决定领袖,再由领袖送出提议,这样做最直接的好处就是不需要浪费自己的运算资源去争取当领袖的机会,缺点就是成为领袖的机会并不公平,缺乏加入网路的诱因。

3,基于通讯的

PBFT 的安全性奠基于 3 阶段投票,虽然不必如 POW 消耗大量计算资源,但数量庞大的通讯也造成可扩展性的瓶颈,就算是号称最实用的 PBFT ,也无法扩展到 1000 个以上个节点。

4, 安全性重于活跃性的

PBFT 不论在何种网路假设下 (同步 / 非同步) 都能确保安全性,几乎不可能出现分岔,因此具有即时敲定的特性;相对地,区块链则是活跃性重于安全性,其安全性有赖于同步的网路,而具有数个共识 (及分岔) 的情况也相当常见,需要经过一定数量的区块「确认」才能保证其不再分岔。

总结一下:

PBFT 具有许可制,缺乏参与诱因,过高的通讯成本,我们无法在 PBFT 上建立一个完全去中心化而实用的密码货币。

PBFT 通常用于联盟链或私有链中的共识机制,需要对节点的加入进行权限控制,不能用于公有链,因为公有链中所有节点都可以自由加入或退出,无法抵挡女巫攻击。
 

来源:叶胜超区块链
 
Tags:
免责声明
世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。