NET:一文速览顶级国际学术会议USENIX ATC收录的Conflux论文_PegNet

编者注:原标题为《录用率18.6%顶级国际学术会议USENIXATC收录Conflux论文》。本文作了不改变作者原意的删减。

日前,Conflux团队创作的论文《ADecentralizedBlockchainwithHighThroughputandFastConfirmation》被国际顶级学术会议USENIXATC录用,并受邀参加2020USENIXAnnualTechnicalConference做主题报告。在2019年,中国计算机学会依据技术专业、举办届数、参会人数、录用率等相关因素,同时重点听取了院士成员的意见,并且向广大学者们也征集了建议,将USENIXATC列为A类国际学术会议。

随着近几年中国计算机理论研究水平的迅速提高USENIXATC上也出现了越来越多的中国高校与企业。本次Conflux投递的论文旨在从共识协议出发,通过合理的系统设计与优化来提升区块链的性能,同时保证区块链的安全性。文章指出,在共识层面提升区块链的吞吐率,减少区块确认的等待时间对于区块链技术的应用有着重要的意义。与最近两年其他的前沿学术工作相比,Conflux论文的亮点在于:

1.提出了自适应权重的概念,根据网络是否受到攻击,在乐观策略和保守策略之间切换,兼顾效率与安全。

2.实现了3倍网络延迟时间内的区块确认,相比之前的结果大幅提升。

3.在20Mbps的网络条件下,实现了9.38Mbps的共识协议数据运载能力。以每交易100字节计算,相当于每秒11000笔交易。

4.执行以太坊的真实历史交易测试系统性能,达到了每秒1392笔交易。而其它系统开发团队暂无该测试数据。

协议设计

论文首先指出了,当我们通过调整工作量证明的参数,调高区块生成速率时,中本聪共识协议存在安全性的问题,而GHOST共识协议存在活性攻击的问题。

在这个攻击模型中,假设攻击者对矿工之间的网络有一定的控制能力:当一个诚实的矿工挖出或收到一个区块后,经过一个固定的时间d秒,模型保证所有的诚实矿工都收到了这个区块。但在此期间,攻击者可以决定谁能收到区块,谁无法收到区块。

在中本聪协议中,过高的区块生成速率会导致大量的区块分叉,最长链增长速度缓慢,攻击者更容易构造一条侧链反超。

在GHOST协议中,攻击者利用其控制网络的能力,将诚实节点分成算力大概均等的两组。组内的通讯是顺畅的,但是组与组之间的通讯延迟是d秒.于是,每一组矿工都看不到另一组矿工在最近d秒生成的区块。利用网络延迟造成的差异,攻击者让两组参与者对于“X,Y谁的子树权重更大观点不一”,从而导致诚实参与者的观点出现了分裂。

为了解决这一问题,Conflux首先提出了结构化的GHOST。与GHOST协议不同的是,在结构化的GHOST中,只有1/h的区块是有权重的,其他区块是没有权重的。h是一个共识协议参数。而哪些区块有权重,是根据区块头哈希值,通过一个确定的方法选出来的。为方便理解,我们举一个例子,如果h=1024,当前的难度要求每个合法区块的哈希值前50位都是0,那么此时,只有前60位都是0的区块,才可以有权重。

通过这种方法,在安全性上,等价于将GHOST的区块生成速率降低至1/h。而前文所述的攻击方式,只在区块生成速率很高时成立。这样,就解决了GHOST的活性攻击问题。

然而,更慢的“含权重区块”生成速率,导致了更慢的区块确认时间。于是,Conflux设定了两种区块生成策略,乐观策略使用普通的GHOST规则,而保守策略使用结构化的GHOST。当攻击真的发生时,共识协议非同步地切换到保守策略。没有攻击发生时,使用乐观策略。特别在保守策略下,每个含权重区块的权重被设为h,以保证两种策略下生成区块的期望权重不变。两种策略之间的切换规则显得尤为重要,Conflux设计了一套规则来保证:

1.如果攻击发生并持续一段时间,所有诚实节点都切换到保守策略。

2.在诚实节点没有探测到攻击发生时,攻击者不能使用保守策略挖一条侧链。

同时,为了提高吞吐率,不浪费主链以外的区块,Conflux采用了树图结构。在GHOST规则里,每个区块通过父边指向另一个区块,所有区块构成树的结构。而Conflux允许每个区块通过引用边引用其他分支上的区块,形成树图结构。树图结构不丢弃任何区块,大大提高了共识层面的吞吐率。

在树图结构之上,Conflux通过GHOST规则选出一条主链。然后基于主链,将区块进行排序。区块的排序进而决定了哪些交易在前,哪些交易在后。

系统实现与优化

将吞吐率提高后,Conflux在系统实现过程中遇到了大量的挑战。Conflux针对性地提出了若干优化方案。

1.检查点机制:当一个区块以高概率被确认,并持续一段相当长的时间后,Conflux全节点将删除这个区块更早的交易内容与账本状态,仅保留区块头,以节约内存空间。

2.引导机制:如果一个区块链系统的吞吐率接近带宽极限,当一个新节点加入时,从创世块开始同步会导致新节点永远无法追上最新状态。因此Conflux从检查点开始同步交易。

3.交易转发:Conflux使用了更有效、对带宽占用更小的去重方式来实现交易转发。

4.签名验证:签名验证的计算开销巨大,Conflux使用多线程并行化签名验证。

5.激励机制:Conflux设计了若干激励机制细节,以应对树图结构里可能的攻击行为。

6.延迟执行:在高区块生成速率下,GHOST规则所选取的主链末端往往是不稳定的。在trivial的实现中,每次主链末端“摆动”,区块的顺序都会发生改变,于是Conflux需要重新执行交易。这带来了不必要的开销。在延迟执行策略中,对于高度为x的主链区块,区块只需要执行高度x-c区块之前的交易并填入账本MerkleRoot中。c是一个经验参数满足:在系统正常运行时,主链上最后c个区块以外的区块,“摆动”的频率很低。

7.使用Link-cuttree维护树图结构。将维护子树权重的计算开销从O(n)降低到O(logn).

实验数据

Conflux在800台AmazonEC2m5.2xlarge虚拟机上进行实验。在可扩展性实验中,每台机器运行15个Conflux全节点,以模拟最高12000个全节点。在其他实验中,每台机器运行1个Conflux全节点。所有实验都将各节点网络带宽限制在20Mbps.

在不同的区块大小和区块生成速率等系统参数下,Conflux区块传输延迟和确认时间均在几十秒量级上。最高支持9.38Mbps共识吞吐率。

当网络中全节点增多时,交易转发和确认时间没有明显的增长。

在交易执行实验中,Conflux重跑了以太坊上的真实数据,达到了1392笔/秒的速度。交易执行实验说明了,Conflux不仅仅设计了一个高效的共识协议,并且为区块链系统的效率问题提供了端到端的解决方案。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

大币网

[0:0ms0-10:58ms