从0到1搞懂拜占庭容错共识机制

共识机制堪称区块链的核心。我们知道,EOS、Hyperledger以及Stellar等著名的项目,都采用了BFT(拜占庭容错)共识机制,那么,BFT到底是什么鬼?和其它共识机制相比,又有什么优势和特点呢?

1、什么是共识机制?

所谓共识机制,就是区块链中的节点,其中包括诚实节点和恶意的节点,就如何写入一个区块达成共识。

我们以最熟悉的比特币为例,因为有比特币的奖励,所以矿工们都会争夺每十分钟一次的记账权。公平起见,比特币采用了PoW(工作量)证明的共识机制,也就是通过增加算力来增加获得记账权的概率。

PoW的容错性是50%,也就是说只要超过一半的节点是诚实的,就可以保证区块链数据的有效性。不过,PoW存在出块慢、吞吐量小、耗电大的局限,因此PoS、BFT等共识机制也在不断被广泛应用。

2、BFT的原理

下面,我们先回到中世纪的西方世界。想象一下,强大的拜占庭帝国的几支部队在一个敌人的城市之外扎营,每支部队都由自己的将军指挥,将军只能通过信使互相沟通。在观察敌人后,他们必须决定共同的行动计划。然而,其中一些将军可能是叛徒,试图阻止忠诚的将军达成协议。将军必须决定何时攻击这座城市,但他们需要大部分军队同时进行攻击才有胜算。

协同进攻方能取胜,不协同进攻将会失败

为了取得战斗的胜利,将军们必须有一个算法来保证:

(a)所有忠诚的将军采取同一行动计划;

(b)少数叛徒不能使忠诚的将军采取不良计划。

忠诚的将军们都会按照算法所说的去做,但叛徒可以做任何他们想做的事情。无论叛徒做什么,算法都必须保证上述条件(a)。忠诚的将军不仅应该达成协议,而且应该就合理的计划达成一致。

在此我们将这个寓言放到区块链中:故事中的“将军”是参与运行区块链(数据库)分布式网络的各方,他们来回进行通讯的信使就是通过网络进行通信的方式。 “忠诚将军”的集体目标是攻占敌军----写入一个大家公认的区块记录。

在我们的寓言中,有效的信息将是决定支持攻击的正确机会。对于忠诚的区块链参与者而言,他们有兴趣确保区块链(数据库)的完整性,从而确保只接受正确的信息。另一方面,叛变的将军将是任何试图伪造区块链(数据库)信息的一方,他们的潜在动机有很多种:可能是试图花费他实际上并不拥有的数字货币,或者是不想履行之前已经签署和提交的智能合同中所述义务等等。

区块链的力量在于它需要在一个分布式的网络中、其中可能或者肯定有“恶意节点”----如同拜占庭将军们所处的境地,也能达成正确的共识。

各种计算机科学家已经从寓言中概述了拜占庭将军问题的一些潜在解决方案,用于在区块链系统中建立共识的实用拜占庭容错算法(PBFT),是那些潜在的解决方案之一。简单地说,PBFT的作用如下:每个“将军”维持一个内部状态(持续的特定信息或状态),当“将军”接收消息时,它们将消息与其内部状态结合使用,以运行计算或操作。这种计算反过来告诉这个“将军”如何思考有关信息。然后,在达成关于新消息的个人决定之后,这个“将军”再与系统中所有其他“将军”共享该决定,最后根据所有将军提交的全部决定,确定共识决定。

算法的研究结果显示,当“叛变将军”少于将军总数的三分之一时,“忠诚将军”将可以做出正确的决定并达成一致。

下面我们看这个例子,一共三个将军,其中一个是发令将军A、两个是普通将军B和C。当A告诉B攻击而告诉C撤退时,B和C互相发送消息,因为他俩都是忠诚的,都将如实转发A的消息。这样B和C都不能弄清楚到底谁是叛徒----因为不确定A是叛徒、或者是否另一个普通将军可能伪造了据称来自A的信息。可以证明,如果n是将军总数,而t是其中的叛徒数量 ,那么只有当n> 3t并且通信是同步的时候,拜占庭将军问题才能得到解决。

3、结论

与最传统的PoW共识机制相比,PBFT有以下优势:

1、效率高

PBFT要求所有节点之间的两两通信,因此这种通信机制要求节点数量不能太多,通常是几十个,在这种模式下,节点达成一致的速度更快,延时更低。

2、吞吐量高

节点数量的控制,使PBFT网络不用像大型PoW网络那样,受限于处理能力最低的节点;因此带来全网吞吐量的大幅提升。

3、节能

无须使用工作量证明的耗电模式,因此更加节能环保。

所谓有得必有失,相对而言,PBFT又有以下劣势:

1、可扩展性及去中心化程度较弱

由于节点数量的限制,因此可扩展性较弱;同时节点需要选举、或者许可,不像PoW节点那样可以自由加入,去中心化程度较弱。

2、容错性较低

PoW网络的容错性是50%,也就是须防范51%攻击;而PBFT容错性只有三分之一,也就是34%的恶意节点即可发起攻击。

表 共识算法对比    来源:中国信息通信研究院,2018 年8 月

最后再附上目前业内主流的共识算法对比表。由于行文仓促,其中难免有不完备之处,欢迎留言进行探讨。若大家感兴趣,后续还将继续推出更深度的分析。

祝您国庆假期愉快!

参考文献:

https://blockonomi.com/practical-byzantine-fault-tolerance/

本文首发于:币投财经

作者:币投研究院 李辉

转载请注明出处。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354

推荐阅读更多精彩内容