Honey Badger of BFT 协议详解

简介

加密数字货币的成功使得 BFT 共识协议不断的被应用在那些重要的领域尤其是金融行业。传统的 PBFT 是一种弱同步性质的共识协议,因为它的可靠性对网络中的时间处理延时依赖非常大。也就是说,网络的活性 Liveness 很大程度上会受到网络条件的影响。

HoneyBadgerBFT 作为一种异步的 BFT 共识协议,号称不依赖网络中的对时间条件的依赖。对比与传统的 PBFT 共识协议,它的效率都有显著提高。

应用场景

可以满足下面两个应用场景

1)由多个金融机构组成的金融财团共同基于 Byzantine agreement protocol 协作运行的联盟链,这样,就能保证快速、稳定的处理交易。
2)在无许可(permissionless)的公链中依然可以提供可以接受的(acceptable)的吞吐量和延迟。

网络模型

HoneyBadgerBFT 系统假定每两个节点之间都有可靠的通信管道连接,消息的最终投递状态完全取决于敌方(adversary),但是诚实节点之间的消息最终一定会被投递。在整个网络中的总节点数必须大于三分之一的敌方节点,也就是 N ≥ 3F+1。

网络中的交易还依赖于一个全局顺序。

一个成功的网络,最后状态应该是这样的:

  • 任何诚实的节点确认了一笔交易 TX,那么其他所有的诚实节点也会确认这笔交易
  • 任何诚实的节点确认了一笔交易 TX,其序号是 s1,而另一个诚实节点确认了另一笔交易 TX,其序号是 s2,那么要么 s1 发生在 s2 之前,要么之后。也就是说,其时间顺序是确定的。
  • 如果一笔交易被发送到 N - F 个诚实节点了,那么最终每个诚实节点都会确认这笔交易。这就是可审查特性。

实现

HoneyBadgerBFT 使用了两个方法来提升共识效率。

1、通过分割交易来缓解单节点带宽瓶颈
2、通过在批量交易中选择随机交易块,并配合门限加密来提升交易吞吐量。

下面就分别来详细解释这两种方法的原理

1)交易分割传输
在网络中,批量的交易(总数为 n)需要打包传输给其他节点,作为共识发起方,一个节点需要把打包的交易发送 N - 1 份给其它节点。 如下:


改进的方案是,把总数为 n 的交易分割成 N - 1 分,也就是说,每份包含 n / N - 1 条交易。 如图,把交易分成三个小块,每块发给不同的节点。这样原来一共需要发 3 * n 份交易数据就变成了只需要发送 n 分即可。

其他节点收到了分块的交易之后,分别再从其他节点收取缺失的交易块,这样,节点 A、B、C 之间的带宽就被充分利用了,而减少了 P 作为发起节点的瓶颈,整个系统的性能不会完全受限于 P 节点。

2)随机块的选择以及门限加密

由于 HoneyBadge BFT 是一种异步共识协议,节点之间收到交易是非同步的,随机的。也就是说,每个节点收到来自客户端的交易可以是不同的,交易到达各个节点的时间顺序也是不定的。

各节点收到交易信息之后,会把该交易放入它自身的 Input Buffer 中,后续收到的交易也依次按顺序放入其 Input Buffer。HoneyBadger 网络中是依靠 epochs 来作为时间间隔进行交易打包处理的,在一个 epoch 中,每个节点会从自身的 Input Buffer 中选一批交易,并广播给其它所有节点。最终,每个节点都会有形成一个有相同交易集的交易池,它们是这些节点广播出来的所有交易的并集,也就是 BatchA U BatchB U BatchC U ...。

显然,这个交易池中可能存在重复的、无效的交易,需要剔除。

最终确认哪些交易还需要一个叫做 Binary Byzantine Agreement 的过程,简单来说就是,在所有节点之间进行一轮共识,得到一个最终确认的二进制数值,由这个二进制的对应的位来决定哪个交易会被最终确认。

在进行 Binary Byzanting Agreement 完成之后,会得到一个确定的 Value,根据这个 Value 来确定交易集合。在剔除无效交易和重复交易之后,每个节点就可以立刻确认剩余的交易集(Asynchronous Common Subset )。

需要注意的是,各节点广播时的交易都是按照顺序从自己的 Input Buffer 中取出的,为了防止这种策略被 adversary 节点监控到,从而对诚实节点进行网络干扰阻碍交易的发布和共识,Honey Badger 采用了一种 Random Selective 的优化方式随机选取一批交易。

就是,每个节点从自己的 Input Buffer 中随机选区一批交易,这样的好处有两个,一是可以防止 adversary 了解策略进行干扰或者攻击,二是随机选取一批交易可以很大程度上避免各节点提交的交易出现大量重复。原因是各节点虽然收到的交易顺序不一定一致,但在网络条件差不多的情况下,大部分交易顺序可能是相同的,随机选取而不是都按顺序选取可以避免大量的重复。

门限加密 Threshold Encrytion

因为 Adversary 的存在可能干扰 Binary Byzantine Agreement 的结果。因此,Honey Badger 提出了门限加密的方式来避免最终的交易集受到攻击。

门限加密的原理是允许任何节点使用一把主公钥来加密一条信息,但是解密则需要网络中所有节点来共同合作,只有当 f + 1 个诚实节点共同合作才能获得解密秘钥,从而得到消息原文。在这之前,任何攻击者都无法解密获得消息的原文。

具体过程如下:
由一个第三方的可信节点为每个节点生成公/私钥,使用一把主公钥(master public key)加密原交易信息得到一份 ciphertext,然后每个节点分别使用其私钥 SKi 和这份 ciphertext 得到完整解码秘钥的一个部分σi。

当节点拿到 f + 1 份 σi 时,配合 PK 就可以解密 ciphertext。

性能测试

以下性能测试结果来源于其官方论文截图(本人暂未测试)

官方论文:
https://eprint.iacr.org/2016/199.pdf

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

推荐阅读更多精彩内容