基于联合签名的强共识协议(ByzCoin,Bitcoin-NG)

不同于传统拥有中心授权机构管理的货币,比特币是一种分布式加密货币,提供开放式接入和自治式管理。比特币建立在点对点网络上,无需中介机构用户就可以提交待验证的交易给系统。网络上的特殊节点——矿工,收集交易请求,解决计算难题(工作量证明)来达成共识,并将交易信息以区块的形式添加到分布式公共账本中,称之为区块链。

 

尽管比特币在很多方面展示了其巨大潜力,但其中也存在不足,如交易确认需要用户等待十分钟之久,而且只提供概率性保证。此外,传统区块链还面临严重的可扩展障碍,系统能够处理的最大交易数目已经被两个参数限制了:区块大小和区块间隔。增加区块大小能够改善吞吐量,但是会导致大区块需要更长的时间在网络上传输。减少区块间隔可以减少延迟,但是系统会有较高概率出现分叉,导致系统不稳定。而本文提出的强共识协议具有以下好处:

 

1.所有矿工立即验证区块的有效性,而不用浪费算力解决分叉问题;

 

2.客户端无需等待不必要的时间用于交易被确认,交易出现在区块的同时即刻确认完成。

 

3.提供前向安全性,交易被添加到区块中,其内容就无法篡改。

 

本文提出了ByzCoin,一种基于强共识协议的加密货币,ByzCoin建立在成熟的实用拜占庭错误容忍算法(PBFT)之上,并引入联合签名方案来减小PBFT轮次的开销和轻量级客户端验证交易请求的开销。

 

主要创新如下:

 

1.使用联合签名将BFT协议扩展成为大型共识协议,并使节点能够高效验证交易。

 

2.首次提出能够支持比特币中工作量证明的基于动态成员关系的拜占庭共识协议。

 

3.实验证明本文的强共识协议能够增加比特币两个数量级的吞吐量,降低交易确认延迟至1分钟以内。

 

 

背景

 

Bitcoin-NG是一个基于比特币信任模型的可扩展的区块链协议,仅受限于网络的传输延时和个人节点的处理能力。Bitcoin-NG通过将比特币的区块链操作分解为两部分来实现这个性能改善:首领选择(leader election)和交易序列化(transaction serialization)。它将时间划分为新片段,每一个片段都有单独的首领。在比特币中,首领选择是随意执行的,且不经常发生。一旦选择好首领,它就有资格序列化交易,直到一个新的首领出现,标记在前一个片段的尾部。在比特币中,首领负责序列化历史记录,使得首领选择之间的持续时间长时间被冻结(下一个首领出现时上一个首领处理的交易才能得到验证)。相反,Bitcoin-NG中的首领选择是向前进行的,确保系统能够持续处理交易。

 

拜占庭将军问题是一个共识问题, 首先由Leslie Lamport与另外两人在1982年提出,被称为The Byzantine Generals Problem或者Byzantine Failure。核心描述是距离遥远的部队之中可能有叛徒,却要保证进攻一致,由此引申到计算领域,发展成了一种容错理论。Pease证明了能容忍f个错误节点却仍能达成共识,总共至少需要3f 1个参与节点。拜占庭错误容忍算法PBFT是弱同步网络环境(如因特网)下首个对拜占庭将军问题的高效解决方案。

 

可扩展的联合签名方案CoSi使得authority或leader请求的状态可以被公开验证和被witness组成的分布式群组联合签名。本文采用的联合签名方案来自于PKI系统中证书授权的分散证人(witness)联合签名方案。

 

方案

 

ByzCoin使用成员关系证明取代工作量证明,如图1,首先选定窗口大小w,然后选取最近挖矿成功的w个矿工作为群组成员,窗口会随着新矿工的出现而向前移动,总成员保持w不变。群组成员构成联合签名的所有组成员,最新出现的矿工成为leader节点。

图1 blokchain中的窗口选择

 

 

该协议将时间划分为片段。每一个片段中,都有一个单独的首领来负责序列化状态机器转换。

 

关键区块(如图2方框):用于首领选择

微区块(如图2圆圈):包含账本记录

 

一旦一个节点生成了一个关键区块,它将变为首领。作为首领,该节点被允许以固定速率来生成微区块。一个微区块包含账本记录和数据头。数据头包含上一个区块的引用、目前的GTM时间、账本记录的哈希值以及数据头的签名

图2 关键区块和微区块

 

 

PBFT算法:

 

模型采取了Client -> Primary -> Backups的流程,即Client先将请求发给Primary,再由Primary通过一个三阶段协议广播给Backups。其中replicas节点表示窗口内的所有节点,replicas分为primary和backup两类。

 

Client会发送一系列请求给各个replicas节点来执行相应的操作,BFT算法保证所有正常的replicas节点执行相同序列的操作。backup机制下有一个叫view的概念,在一个view里,一个replica会是主节点(primary),其余的replicas都叫备份节点(backups)。主节点负责将来自Client的请求给排好序,然后按序发送给备份节点。出现异常情况(序列合法性,timeout)时,这些备份节点就会触发view change协议来选举出新的主节点。当主节点挂掉后就触发了view change协议。需要确保在新的view中如何来延续上一个view最终的状态。图3为方案的overview,当前时间段的所有微区块(圆圈)分别隶属于关键区块(方框),窗口内关键区块的产生者——矿工组成联合签名的成员,对微区块中的交易信息进行签名。

图3 方案Overview

 

 

本方案设计了基于Bitcoin-NG,PBFT和联合签名方案的ByzCoin方案,利用选定窗口机制和成员关系证明方式解决了区块链协议中不适合于PBFT的要素:开放的成员关系;大规模可扩展的节点;工作量证明的区块冲突等。并且结合了Bitcoin-NG中首领选择和交易序列化相分离的特性,及联合签名中树形结构的特性,大大提高交易的吞吐量,将交易确认延迟由10分钟降低到15-20秒以内。

上图的上半部分显示了ByzCoin的区块链,该区块链分为两个相互依赖的子链:一个用于键,一个用于

密钥块用于管理ByzCoin的共识组成员资格。这些区块由矿工大致每10分钟通过工作量证据生成,如比特币,并由ByzCoin的共识组共同签署。密钥块形成常规区块链。成功挖掘新密钥块的矿工将获得共识组份额成员证明,从而进入共识组,如果他还不是成员,则成为下一个组长。固定大小的滑动窗口机制构成可用股份的总数:超出当前窗口的任何股票到期,不再持有任何有效股票的矿工退出共识组。矿工拥有的有效股份数量反映了他的数量在提交交易时,共识组内的投票权。此外,当找到新的密钥块时,该数字确定矿工接收的硬币部分作为奖励。换句话说,ByzCoin不仅奖励挖掘新密钥块的节点,而且还奖励与每个矿工持有的有效份额成比例的分割,在共识组的所有矿工中产生的硬币。一旦不再开采硬币,ByzCoin也会使用这种技术将交易成本分摊为奖励。成员证明方法确保活跃,因为休眠矿工被从共识组中移除,并且共享比例奖励进一步促使所有矿工保持活跃并为系统的进展做出贡献。

相反,微块包含交易,由现任领导者提出,并且由于它们不需要工作证明,因此共识小组更频繁地承诺。除了事务列表之外,每个微块还包含最后一个微块的散列以确保总排序,以及领导者的密钥块的散列以识别微块所属的时代。尽管微块是由共识组织领导者创建的,但ByzCoin的见证机制阻止了领导者行为不端(例如加重双重攻击),因为任何不当行为都会被其他团队成员立即检测到,这反过来又会引发观点变化从而删除恶意节点。

部署挑战

为ByzCoin制定合理的部署策略涉及至少解决以下三个挑战:

  1. 推出与当前比特币系统向后兼容的代码,直到大量矿工支持新的ByzCoin共识。
  2. 建立初始共识组,一旦出现上述临界质量,然后切换到新的共识机制。
  3. 处理(希望是罕见的)PBFT僵局事件,例如,因为太多的矿工在太短的时间内消失,并且在目前的共识组中没有或将再次有三分之二的绝对多数可用。

为了解决前两个挑战,我们可以利用已经运行的Nakamoto共识作为引导机制。从外部的角度来看,只要引导没有完成,比特币就会像往常一样运作。然而,从矿工的角度来看,一些事情发生了变化:每个矿工分别将他的公钥和联系信息(IP地址/端口号)放入他创建的每个块中。包括公钥使矿工能够在找到必要的工作证明后将该块作为共享来声明; 联系信息是必需的,以便共识组成员能够找到彼此并创建通信树。一旦分配的份额达到最大共享窗口大小,共识组中的所有矿工都会切换到ByzCoin,最后一个加入该组的矿工成为领导者,并且小组共同签署了领导者的密钥块。然后,领导者从他的密钥块创建新的微块子链,并开始创建微块并将其提交给共同签署的共识过程。为了应对第三个挑战,我们可以使用Nakamoto共识作为后备选项:如果矿工注意到PBFT共识组缺乏进展太长时间(可能经过多次观察 - 更改)后,他们将返回交易作为后续行动他们的关键字块,就像在比利时的比特币一样,从而有效地将系统恢复到其拜占庭前协议机制。一旦再次分配了一定的股份门槛,矿工就可以重新启动ByzCoin的共识。另一种选择是使用比特币NG作为后退机制,

 

该论文是发表于USENIX2016会议上的《Enhancing Bitcoin Security and Performance with Strong Consistency via Collective Signing》,文章作者是Nicolas Gailly等人。

以上译文转载自区块链大师。

阅读更多

更多精彩内容