共识发展的核心问题及其改进方向

  • Lori
  • 更新于 2024-02-28 15:23
  • 阅读 1596

通过对近年论文总结做的笔记,从个人角度思考共识发展,仅供参考。

通过对近年论文总结做的笔记,从个人角度思考,仅供参考。

一、研究背景

针对公链共识的基础要求:通过阅读和完成共识协议的比较,我们首先要明确,任何的区块链共识协议都需要满足基本的安全性,最理想的情况是一笔新交易到达之前,网络各节点就对前一笔交易的有效性进行了确认,但我们必须考虑到,公链网络节点数量规模大,无论通信消息有多小,都存在无法忽略的瞬时延迟,如果采取强一致共识,会存在两方面问题,一个是巨大的通信开销(通信复杂度随着网络规模呈二次方增长),另一个是网络带宽,也就是通信能力是有限的,很难在有限的时间达成一致,所以对于公链我们应该考虑的是弱一致性的情况。

针对PoW所存在的不足:首先讨论,区块链典型代表比特币,比特币是在无许可环境中的第一个完成实现BFT共识协议,它通过工作量证明(PoW)算法选举领导者进行出块,通过最长链原则实现概率性确定,PoW能够有效地防范女巫攻击以及双花攻击,因为产生区块要耗费一定的算力,而要成功实施双花攻击需要掌握全网51%的算力。

共识共有的限制因素:比特币的吞吐量和交易确认延迟无法满足用户需求,其性能瓶颈是由多种因素造成的,比特币产生区块之后,要进行区块广播,区块验证和确认,当区块间隔足够长,才能给区块广播验证和确认提供充裕的时间,从而减少未确认区块又产生新区快的可能性,进而减少网络分叉的风险。而这一过程的处理速度实际上是与区块链网络通信能力,也就是网络负载能力,以及节点对区块处理能力相关

二、现有协议改进技术调研

现有PoW后续优化的协议主要是通过以下两个大方向进行优化的:

  1. 提升TPS a. 对选举方式进行改进。通过减少Bitcoin-NG,Prism以PoT这几篇论文将选举出块节点和出块分开,进而使一段时间内由一个节点打包交易出块,这可以使区块网络的带宽减小,同时采用最长链的原则来实现区块finalization。 b. 通过对底层网络拓扑的优化,从而对通信进行优化。Solana的PoH对网络消息转发进行优化,并且采取出块与验证并行的策略,而后采用PoH的出块方式,一方面在一段时间内只有一个leader进行出块,另一方面优化区块传播方式,优化底层网络拓扑,通过流水线式传播,进而减小网络的负载,加上滞后的验证方式,来延长通信时间。 c. 允许区块链网络在一定时间内分叉,延长区块在网络传播时间。基于DAG的共识,例如以太坊的GHOST(2017)和conflux,允许区块链短暂的分叉,相当于针对其有限网络负载和区块生成速度进行了折衷,通过允许分叉来延长通信的持续时间,对于其会产生的分叉,通过最大权重来实现block finalization,牺牲了一定的安全性。(分片部分还没具体看)
  2. 提高去中心化 PoW是通过算力进行竞争,这对矿工的计算性能要求越来越高,随着越来越多的节点参与区块链,对设备要求更高更专业,现在设备趋向选择专用集成电路(ASIC),这不利于个人节点加入比特币网络,这会导致区块链网络中心化,不利于区块链网络安全。

那么有很多共识协议就想着缩短专用设备和和个人设备的距离,这样就能使更多节点加入网络。例如,比较火的Filecoin的共识协议PoRe是通过存储空间代替算力来进行竞争记账权,以及PoSt则是用Data storage time来代替,采用PoSt减少通信成本,以及Hyperledger Sawtooth 采用的 PoET 依赖于可信执行环境 (TEE)等等。

PoS作为最有可能替代PoW的共识协议,它能够补充PoW在以上两问题的不足。PoS的里程碑Peercoin(2012)将PoS和PoW结合,h(x)<=target * stake,并且采取币龄最高链为block finalization。以及第一个纯PoS加密货币Nxt ,节点拥有的加密货币越多,获得生成区块的权利的机会就越大。这样的PoS也带来了新的问题,攻击者可以通过增长币龄操控节点的选举,以及中心化的问题。如果leader的产生是可预见的,或是恶意节点通过特定手段便可让其选举成功,进而使恶意节点操控网络,从而破坏区块链网络安全,所以PoS协议设计需要考虑到leader的产生不可预测不可操纵。

随着密码学、分布式计算、可信多方计算等发展,很多共识协议将其加入在其中,用于出块节点的选举和区块的验证。基于委员会的PoS,共识对象议委员会为单位,这样可以减小达成共识的通信开销,是为了其增强选举出leader的随机性,通过安全多方计算(MPC)生成委员会,以及leader名单。Ouroboros(2017)通过可公开验证秘密共享(PVSS)选举下一个epoch的出块者名单,对应着每个slot进行出块,这带来了leader被攻击的风险,或是提前贿赂leader的可能。Ouroboros Praos通过可验证随机函数(VRF)以本地加密计算为代价节省了大部分通信开销,leader名册不公开,生成leader可以安全验证。Algorand(2017)在基于委员会的PoS的基础上,通过一种称为加密排序的VRF方案完成的,该方案根据stake对候选人进行排序,只有排名高于阈值的人才被接纳进入下一个区块周期的委员会。

区块链网络由委员会进行共识,但随着网络节点越多,委员会中节点数量也会增多,通信开销也会随之增大,可能出现宕机和性能下降的情况。又加上其采用的大部分是LCR这种概率性总结规则,在这种情况下,也容易出现Nothing-at-Stake,也就是双押攻击,以致于更加容易出现网络分叉的情况。

PoS为了确保block finalization的确定性,将BFT作为其区块终结方式,同时,也在减少委员会内的通信开销努力。早期的Tendermint(2014)将BFT和PoS分离,通过BFT来进行共识投票,但由于未实施有效的slash规则,很容易出现懈怠行为,进而影响其区块链安全性。Algorand过BA*(拜占庭共识,满足调节的候选者通过密码学抽签随机选取)来达成共识。CasperFFG(2017)首先将网络中活跃的验证者随机地加入各个委员会,以委员会为单位进行出块和投票收集,通过检查点和投票权重结合,并结合一系列奖惩措施去保证PoS的正确执行。

三、总结

安全性是我们设置共识协议的前提条件,在这个基础上,我们再结合对应的使用场景在去中心化和可扩展性之间进行平衡。在设计共识协议的时候,可以尝试在这些方面进行优化:

a. 对PoX出块方式进行优化,将X与特定场景性能进行结合,就类似于将算力工作运用在别的地方,或者与IoT相应特性结合,例如PoLe(与强化学习结合); b. 减少区块链网络的通信开销,例如对底层网络拓扑进行优化,或者将出块方式进行拆解,异步并行处理,另一个方面,对重复或是冲突交易进行处理; c. 通过密码学等来对共识过程进行优化,例如通过密码学改进区块验证方式,减少区块处理时间,或是增强选举过程的随机性.

点赞 5
收藏 3
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

3 条评论

请先 登录 后评论
Lori
Lori
0x3F3c...Dc2F
最近有点儿小忙,更新不频繁~