BASE:万向区块链年度回顾之技术篇:突破公链不可能三角的努力_OIN

撰文:崔晨,万向区块链首席经济学家办公室

审核:邹传伟,万向区块链首席经济学家

2022年接近尾声,驻足回看行业这一年的跌宕起伏,无论是技术的突破,应用的创新,还是生态的兴衰,皆成为了行业发展的历史注脚。如往年一样,万向区块链于年末推出重磅年度回顾系列文章:《公链技术篇》、《应用篇》和《监管篇》,以期记录当前行业发展的缩影。?

公链的不可能三角问题一直是制约公链技术发展的阻碍,进而影响到链上应用的性能。一直以来,公链的发展目标都集中在如何突破不可能三角的问题上,或者在不可能三角中找到最佳平衡。公链的创新体现在以太坊更新的路线图、EVM兼容公链和模块化公链、Solana和Aptos为代表的高性能公链等。下文将针对不可能三角和交易流程角度,解读不同不可能三角解决方案的区别。

对不可能三角的理解

不可能三角的概念

公链最基本的功能是在链上记录信息且维护信息安全,即在开放的网络中防止信息被篡改,依赖的是密码学、共识机制、分布式网络等底层组件。密码学包括公私钥密码学和哈希函数等,保证验证签名的正确性和链式结构规则。

以太坊创始人Vitalik?Buterin在2017年的一篇博客文章中提出:在可扩展性、安全性和去中心化这3个特征中,区块链系统最多同时具备两个。在讨论不可能三角对公链影响以及公链在不可能三角上的突破时,我们需要理解这三者的定义和对系统的影响。

可扩展性衡量公链支持交易速度和规模的能力,体现在交易从提出到被确认的时间。交易处理速度慢的公链难以实现很多应用功能,例如即时支付,这会限制应用的范围并影响用户体验。

安全性衡量系统抵御攻击的能力,代表系统在面对故障时的可靠性,主要体现在容错性和修改共识的难度。系统容错性低会让系统易于攻击,修改共识会改变已确认的交易,相当于篡改过去的交易记录。

去中心化衡量公链节点的分散程度,由于公链不是通过可信第三方建立的,只能由分布式的点对点网络维持网络系统运营,在此基础上,公链节点的分散性提供了系统的信任基础。结合密码学和共识机制,公链才能发挥正常的功能。去中心化同时代表了用户参与交易验证的权力,也体现出用户在公链系统中的话语权。

去中心化体现为两个层次:第一以节点数量衡量,节点的准入门槛越低,数量越多,分散程度越高;第二以实际控制者衡量,如果公链中存在例如矿池类的角色,实际上一个角色控制多个节点,会给系统带来中心化的交易审查等问题。

总的来说,公链不可能三角所衡量的指标和具体含义如下表所示。

表?1?:不可能三角衡量的指标和具体含义

从交易流程角度理解不可能三角及优化

区块链上的交易流程可以简化成以下四步:

①使用者签署交易并广播给节点,添加到未确认交易池;

②共识节点验证和执行交易,并将这些交易打包成区块;

③区块广播给网络中的其他节点;

④其他节点验证区块,并储存添加到区块链后。

这几步骤从不同角度影响公链的三种指标。

1、可扩展性

可扩展性会受到第②③④步的影响。在第②步中,交易的验证、执行和共识速度会影响到可扩展性。区块链的账户模型、虚拟机和共识机制等因素都会影响完成第②步的速度。以更改共识为例,如果以减少共识节点的方式缩短共识时间,就会影响系统的去中心化程度。

在第③步中,如果节点数量多,那么在各节点中同步的速度也会变慢。以扩大区块容量的思路提高可扩展性时,很难在原计划的时间内将区块广播给所有节点。在没有网络完全同步的情况下,在不同的区块后共识处理交易,会导致分叉出现,进而影响网络的安全性。而如果通过减少节点数量加快同步速度的话,会影响系统的去中心化。

第④步意味着网络交易的最终确认,如果在收到区块后节点能够快速验证,那么可以提高可扩展性,但面临损害安全性和中心化的问题是类似的。

2、安全性

在第②③④步中被攻击的难度,也就是被恶意节点控制的难度会影响系统的安全性。尤其是在第②步中体现为共识机制的性能,如果共识机制容错率低,或者容易被恶意者操纵,就会降低系统安全,或者导致节点趋于中心化。

3、去中心化

分布式的节点是公链底层基础,越多节点加入代表越多节点认同公链,并且避免单点故障带来的风险,也能提高恶意者的攻击成本,因为在相同容错率的情况下恶意者需要控制节点数量变多了。扩大区中心化程度要求节点的进入成本更低,但像上文提到的,在相同安全条件下提高节点数量会降低系统的可扩展性。

从节点的实际控制者方面理解去中心化时,重点关注的是「审查交易」的问题。节点负责打包交易时,如果按照自己喜好挑选交易和排序,会导致一些交易在提出之后很难执行以及得到链上确认。也就是影响第①步提出的交易难以在第②步中被挑选验证。

总的来说,公链在交易流程的几步中都可以做出改善和优化,但碍于不可能三角的影响,在某一方面进行优化时,总会伴随着至少另一方面的负面影响。公链需要在不可能三角中找到平衡点,以满足更多应用场景。下文就是在各环节不同公链的优化尝试,包括以太坊的最新路线、以太坊同质公链和高性能公链。

以太坊:应用新技术和新框架优化不可能三角

在以太坊最近公布的路线图中,可以看出一些在不可能三角以及用户体验方面的改善。

图1?:以太坊最新路线图

Merge:共识机制由PoW转化为PoS

共识机制主要影响区块的产生和验证同步过程,在以太坊在转化为PoS后,采用的是LMDGHOST+CasperFFG公式机制,实现了两个目标:在每个slot内产生一个区块,并进行相应的见证投票,在两个epoch后被确认最终性,回滚区块需要销毁至少三分一的链上质押的ETH数量。

在以太坊的Merge阶段规划中,以太坊还计划将最终行确认时间缩短到单个slot,交易确认不再需要几分钟的等待时间,这会达到更高效率,提升用户体验。但达成单个slot确认需要改善共识算法,可能会减少降低攻击链的成本,以及减少验证的节点数,影响公链的安全性和去中心化。

Surge:Rollup和Danksharding配合提高交易处理速度

以太坊通过Layer2手段进行扩容,特指Rollup的扩容方式,二层网络将主网上的内容放在链外执行,再将可验证的结果传回到链上。目前以太坊中的Rollup仍以Optimistic和ZK两个路线为主。

在OptimisticRollup中,由于通用性的设定,在用户数量和整体锁定价值占据了先发优势。Optimistic在排序器方面有很多争议,因为目前Arbitrum和Optimism的排序器都是以中心化方式的方式出块,很可能造成交易审查问题。ZKRollup重点专注两个问题,第一是zkEVM的构建,在兼容EVM和完全独立构建虚拟机之间做选择,也是在实用性和性能做选择。第二是加速零知识证明的速度,通过硬件设备生成零知识证明也是一种选择。为了进一步降低链上的数据可用成本,这两类Rollup都出现了链下数据存储的模式,适用于需要高频交互的场景,不过提高了对节点的信任成本。

Rollup看似解决了公链的不可能三角问题,但Rollup存在两个固有问题。第一,Rollup的信息处理能力存在上限,尤其是Rollup依赖底层网络实现,底层网络的承载能力决定了Rollup中的运行能力;第二,链上的不同Rollup会带来互操作问题。

为了让Rollup发挥更大功能,以太坊的EIP4844?提出将区块容量扩大出blob数据块,以承接Rollup传回主链上的数据。扩大区块容量虽然提高了扩展性,但大数据的共识和同步同样会带来问题。因此在Surge阶段,还计划上线DAS。

DAS可以让节点无需下载和验证全部数据,而是将数据分成几块,节点只需要随机下载其中的一部分来验证数据是否丢失即可。DAS的检测准确度将通过纠删码提高,纠删码能够扩充额外数据用以恢复丢失的原始数据,是一种数据冗余机制,纠删码扩充数据的有效性由密码学机制KZG承诺保证。

假设共有4个数据块等待验证,节点有25%的概率发现原始数据块丢失了1个。使用纠删码将数据扩充一倍至8个数据块后,超过50%的数据丢失则无法恢复原始数据,也就是节点发现数据丢失的概率超过了50%?。随着验证节点数量的增加,发现数据丢失的概率也会增加。假设共有n个节点进行随机抽样,数据丢失50%时,只有1/2?n的可能性恰好所有节点都抽取了未丢失的数据块。因此在大量节点存在的情况下,DAS的验证方式足以保证数据安全。

所以综合来说,以增加区块容量的方式提高整体区块的可扩展性,就会同步效率降低影响系统安全性。而为了提高同步的速度,减少节点存储量,保证足够的去中心化,只能做出机制上密码学的改善,但整体上还是影响了网络的安全性。

节点的角色提议者和构建者分离

以太坊使用PBS的方式,将节点的工作任务分成两个角色,分别是提议者和构建者。构建者负责构建区块主体和提交出价,提议者只需要执行出价最高的区块,并且不知道区块内的交易内容,以减少审查交易。

Danksharding的实施会对构建者有更高带宽资源的要求,构建者会因为专业化的要求成为中心化组织,而提议者是一个广泛的去中心化群体,用以平衡中心化风险,只要有一个诚实的构建者存在,以太坊区块就能正常出块。为了防止构建者审查交易,提议者会传递crList代表提议者要求打包的交易列表,构建者需要使用crList中的交易填满区块。这是一种削弱MEV的机制,同时在大区块模式下,让节点分成两种角色,保证足够的去中心化。

Verkle树、历史过期和多维度费用市场

庞大的历史数据会影响以太坊的去中心化,尤其是日益增长的状态数据会导致各种效率低下的问题。为了不影响去中心化,同时实现上文提到的可扩展计划,需要一些机制保证能够达到同样的安全标准,以及实现系统更有效率的运行。

Verkle树是一种更简单的数据存储模式,相对于现有的Merkle树来说所需要的证明空间更少,这是由密码学技术做出的改善,配合历史数据过期机制减少节点的存储压力,继续降低节点门槛。

历史数据过期机制可以解决数据膨胀的问题,客户端无需储存超过一定时间后的数据。Proto-Danksharding也可以实现在一段时间后自动删除blob数据的独立逻辑,因此大区块不再成为扩容的阻碍。这不意味着区块数据永久丢失,在数据删除之前,已经留给足够多的时间给需要数据的用户备份。网络中也存在保存全部历史数据的节点,这些角色包括专门的协议,以太坊PortalNetwork、区块浏览器和数据服务商、个人爱好者和数据分析的学者会保存全部节点数据。

在多维度费用市场中,每种资源都规定目标值和容量上限,正如EIP1559实施对gas的要求一样,资源的使用程度关系到资源的定价。以太坊将要从EVM执行、交易calldata、见证数据和存储容量这几方面开始进行更细分的定价和收费,包括Proto-Danksharding中即将上线的blob区块。最终目标是实现每个单独操作码的定价,将提高费用统计时的用户体验。

综上所述,以太坊迫切需求性能提升,提出了Rollup和Danksharding的思路提高性能。同时又为了让更多Rollup数据能廉价、不臃肿地存储,提出了数据可用性的解决方案,并弱化它带来的安全性降低的问题。以太坊仍然要修补自己的技术债,通过PBS、历史和状态过期等规划,继续保护节点的去中心化。以太坊借助新技术和新框架的引入,在保证去中心化和安全性的前提下,实现最大化的可扩展性。

以太坊同质公链:在不同层解决不同的不可能三角

EVM兼容链

在过去的几年中,以太坊牺牲了可扩展性来换取安全和去中心化,表现为以太坊是全世界拥有节点数量最多的公链项目,并且在运行的这几年过程中没有经历过大规模的网络中断事件,网络不会因为个别节点的故障和退出而中断,证明了网络拥有足够的冗余备份。与此同时,节点需要很长时间的共识同步时间,交易的处理速度较慢并引起了交易手续费的上升。

简单区分,以太坊主网的结构包括执行层和共识层,执行层指的是节点在以太坊中执行用户指令的过程,包括转账和EVM。在大量节点存在的情况下,共识及同步势必会受到影响。因此最简单的提升以太坊性能的方式就是修改其共识层,减少共识同步的速度以实现更快的效率。

这一点从以太坊同质公链的竞争中就能看出这一点。尤其是在执行环境相同时,应用的迁移更为容易。因此可以看到采用以太坊架构的同质化公链采取了这样的方式,它们修改了以太坊的共识方式,减少了节点数量并缩短共识时间,但保留了执行层的功能。虽然可能带来中心化的问题,但由于迅速承接以太坊上应用的外溢需求,替代以太坊成为应用类项目的发行地。比如BSC、Polygon和Avalanche,都是EVM兼容链的代表公链,它们的共同点都是大幅减少了网络中参与共识的节点数。

模块化公链

以太坊的竞争公链中出现了「模块化公链」,将以太坊的功能分层,以模块化的方式运营。这其实也是一个代表性思路,不可能三角虽然存在,但是可以在其中找到了一个折中点。

不同侧重的应用会选择不同侧重的公链,因为它们对性能、安全和去中心化的需求是不同的。例如隐私公链不允许交易审查存在,它愿意付出额外的成本去保护它的去中心化。承载金融应用的公链对于安全性重视更高,而游戏类公链会要求极高的性能体验,会放低对去中心化的要求。

因此模块化公链将需求的每一层抽象出来,将区块链分为:共识层、执行层、结算层、数据层,不同层都可以有多种解决方案,而又根据链的不同需求,直接整合这些解决方案,这样实现最佳的效果。同时各层方案是模块化的供公链切换,以此平衡应用需求,变相突破了不可能三角的限制。

以太坊非同质化公链:重新思考不可能三角中的侧重方向

由于以太坊的性能瓶颈问题,新的非同质化公链几乎所有都选择了性能优先的规划,配合PoS类共识,又引入新技术强化它的性能优势或者弥补安全性的缺陷。

Solana首先提高了区块的容量,区块承载的数据量扩大了十倍。其次,为了减少每次同步的节点数,Solana会提前公布负责的节点名单,每次交易只需要传输给负责人,其他验证者只需验证自己负责的部分,也不需要验证整个区块。

除此之外,Solana在执行交易前会预先判断,如果满足条件会采用并行计算来提高交易的处理速度,如果是必须串行处理的,会转为比以太坊效率更低的运行方式。可以看出,Solana为了追求可扩展性,牺牲了安全和去中心化,当领导人节点故障,或者在判断是否要并行处理失误时,就会造成网络中断的问题。

Aptos号称是新一代高性能公链的代表,它以不同方法延续了以太坊公链上的各种功能。Aptos采用AptosBFT共识机制,这是一种基于BFT的共识机制,只需两次网络往返即可验证和提交区块,无需多轮投票,并且可以快速实现最终确认性。Aptos区块只包括交易记录的摘要,不会包含所有交易记录信息,因此每个区块中包含的交易数量会更多。它将交易分组为批次,并在达成共识后合并进区块,在后续的执行和存储中都是批量处理的,这个过程中可以提高效率。

Aptos同样采用了并行处理的方式,采用了Block-STM引擎,默认对所有事务采用并行处理的方式,发生冲突时不成功的交易会重新执行,这需要依靠调度程序,防止同一事务被同时执行,以及重新执行事务后获得更多安全确认。除此之外,快速的状态同步也是Aptos考虑的问题。

状态同步指的是在交易完成进行状态转化后,将状态后的结果同步给其他节点的过程。状态同步的低效会导致大多数节点无法同步到最新的状态信息,因此影响用户体验,并且新节点难以加入共识过程,影响网络的去中心化。Aptos提供了多种状态同步方式,包括使用RocksDB或者节点通过验证者产生的状态变化的默克尔证明,跳过交易执行阶段来同步状态。这种方式减少了节点同步时所需要的大量计算资源,但需要建立在使用大量网络资源的基础之上,Aptos建议共识节点在云服务器上运行,个人电脑很难达到其要求。

Aptos认为以太坊的虚拟机也是它的瓶颈,以太坊没有办法再大规模更新它的语言,但是Aptos没有这样的技术包袱。Aptos和SUI都采用了Move语言,Move的创新在于将资产作为资源处理。在创建、使用和销毁资源时有一定限制,因此不会发生以太坊中常见的重入攻击问题,能够让更安全地构建智能合约,并且让虚拟机并行处理多个事务,根据存储资源收取租金也成为可能。

总结来说,新公链认为可扩展性优先于安全性和去中心化,这和以太坊是不同的。因此,它们重新选择了不可能三角中的侧重方向,这样的改动对于用户的感受是非常明显的,Solana上发生的宕机问题也是不可避免的。

思考与总结

共识机制和分布式的节点网络从两方面保证了公链的可靠运转:

第一,保证系统的容错性:共识机制有一定的容错性,也就是故障节点占比在一定比例之下时,系统依然可以验证信息。自由加入的分布式节点能够补充新的正常节点。

第二,提高系统的攻击成本:共识机制代表节点对已有区块状态达成一致意见的方式,掌握共识机制的控制权的一方代表作恶者拥有修改共识和审查交易的权力。共识机制和分布式节点能够从规则上增加攻击的难度和成本。

在此基础上,区块链的不可能三角问题可以这样理解:

以太坊本身已经基本成型,较难另起炉灶做出改变,因此以太坊在尽最大努力引入新的技术和新的框架来优化它的性能瓶颈,希望凭借新技术和新框架,使其在去中心化和安全性变大不大的基础上,大幅提升性能,进而优化不可能三角。

以太坊同质化公链,EVM公链和模块化公链则灵活得多。对以太坊层级的拆分,可以让它们寻找自己的「社会分工」来匹配不同的应用,例如承载金融、游戏、隐私等等。根据应用的需求,反推出不同层技术框架的需求,这帮助它们在不可能三角中找到了新的平衡点。

以太坊的非同质化公链,因为没有技术包袱,则可以彻底另起炉灶,使用全新的架构和技术手段。与以太坊在足够去中心化和安全的前提下追寻性能不同,它们不约而同地都选择了性能优先的路径。这样的好处是用户非常直观地感受到了它们的进步,但是其中的安全和去中心化问题也是一种隐患。

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

大币网

[0:62ms0-4:590ms