主页 > imtoken苹果地址 > 2022 年度回顾 | 技术:努力突破公链不可能三角

2022 年度回顾 | 技术:努力突破公链不可能三角

imtoken苹果地址 2024-01-03 05:11:21

2022年接近尾声以太坊区块浏览器,让我们一起来回顾一下这一年行业的跌宕起伏。 无论是技术突破、应用创新,还是生态兴衰,都成为行业发展的历史注脚。 与往年一样,万向区块链在年底推出了一系列重要的年度回顾文章:《公链技术》、《应用》和《监管》,以记录当前行业发展的缩影。

以下是年度回顾系列——《公链技术》。 作者:崔晨,万向区块链首席经济学家办公室,审稿人:邹传伟,万向区块链首席经济学家。

公链不可能三角问题一直是制约公链技术发展的障碍,进而影响链上应用的性能。 长期以来,公链的发展目标都集中在如何突破不可能三角,或者说在不可能三角中找到最佳平衡点。 公链的创新体现在更新的以太坊路线图、兼容EVM的公链和模块化公链、以Solana和Aptos为代表的高性能公链等。下面将从不同的不可能三角解法的区别进行阐述不可能三角形的视角和交易过程。

理解不可能三角

不可能三角概念

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

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

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

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

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

去中心化体现在两个层面:第一个是通过节点数量来衡量,节点进入门槛越低,数量越多,去中心化程度越高; 二是实际控制人衡量,如果公链中存在矿池,实际上是一个角色控制多个节点,会给系统带来集中交易审核等问题。

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

siteethfans.org 以太坊区块浏览_以太坊区块浏览_以太坊区块浏览器

表1:不可能三角测量指标及具体含义

siteethfans.org 以太坊区块浏览_以太坊区块浏览器_以太坊区块浏览

从交易过程的角度理解不可能三角与优化

区块链上的交易过程可以简化为以下四个步骤:

①用户签署交易并广播给节点,加入未确认交易池;

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

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

④其他节点对区块进行验证,加入区块链后存储。

这些步骤从不同角度影响着公链的三个指标。

1.可扩展性

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

在步骤③中,如果节点数量较多,各节点之间的同步速度也会变慢。 当通过扩展区块容量来提高可扩展性时,很难在原计划的时间内将区块广播给所有节点。 在网络没有完全同步的情况下,共识处理不同区块后的交易会导致分叉,影响网络的安全。 但是,如果通过减少节点数量来加快同步速度,则会影响系统的去中心化。

第四步是网络交易的最终确认。 如果节点在收到区块后能够快速验证,那么可扩展性可以得到提升,但是妥协安全和中心化的问题是类似的。

2. 安全

步骤②③④中被攻击的难易程度,即被恶意节点控制的难易程度,将影响系统的安全性。 特别是在第二步,体现在共识机制的性能上。 如果共识机制容错率低或容易被恶意者操纵,将降低系统安全性或导致节点趋于中心化。

siteethfans.org 以太坊区块浏览_以太坊区块浏览_以太坊区块浏览器

3.权力下放

分布式节点是公链的底层基础。 加入的节点越多,认同公链的节点就越多,避免单点故障的风险。 它还可以增加恶意行为者的攻击成本,因为需要控制节点数量的恶意者增加了。 扩大中心化程度需要降低节点的进入成本,但如前所述,在相同安全条件下增加节点数量会降低系统的可扩展性。

从节点的实际控制人的角度理解去中心化时,重点是“审查交易”的问题。 当节点负责打包交易时,如果根据自己的喜好对交易进行选择和排序,会导致一些交易在提出后很难在链上执行和确认。 也就是说,步骤①中提出的交易很难在步骤②中被选择和验证。

一般来说,公链可以在交易过程的几个步骤中进行改进和优化,但由于不可能三角的影响,在某一方面进行优化时,总会伴随至少另一种负面影响。 公链需要在不可能三角中找到平衡,才能满足更多的应用场景。 以下是不同公链在各个环节的优化尝试,包括以太坊最新路由、以太坊同构公链和高性能公链。

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

在最近公布的以太坊路线图中,我们可以看到在不可能三角和用户体验方面的一些改进。

siteethfans.org 以太坊区块浏览_以太坊区块浏览器_以太坊区块浏览

图一:以太坊最新路线图

Merge:共识机制从PoW转变为PoS

共识机制主要影响区块生成和验证的同步过程。 以太坊转化为PoS后,采用LMD GHOST + Casper FFG公式机制,实现两个目标:每个时隙内(12秒)出块。 区块以及相应的见证人投票在两个 epoch(一个 epoch 包括 32 个时隙)后被确认为最终性,区块的回滚需要至少销毁链上质押的 ETH 的三分之一。

在以太坊的Merge阶段规划中,以太坊还计划将最终的线路确认时间缩短为单槽,交易确认将不再需要几分钟的等待时间,从而实现更高的效率,提升用户体验。 但要实现单时隙确认需要改进共识算法,可能会降低攻击链(改变共识)的成本,减少验证节点的数量,影响公链的安全性和去中心化。

Surge:Rollup与Danksharding合作提升交易处理速度

以太坊通过 Layer 2 方式进行扩容,特别是 Rollup 扩容。 第二层网络在链外执行主网上的内容,然后将可验证的结果传回链上。 目前,以太坊中的 Rollup 仍然以 Optimistic 和 ZK 路线为主。

以太坊区块浏览器_以太坊区块浏览_siteethfans.org 以太坊区块浏览

在 Optimistic Rollup 中,由于普适性的设置,在用户数量和整体锁定值上都具有先发优势。 Optimistic 在分拣机上的争议很大,因为目前的 Arbitrum 和 Optimism 分拣机都是中心化生产的,容易造成交易审核问题。 ZK Rollup 主要关注两个问题。 首先是zkEVM的构建。 选择兼容的EVM还是完全独立的虚拟机构建,也是实用性和性能的选择。 二是加快零知识证明的速度。 通过硬件设备生成零知识证明也是一种选择。 为了进一步降低链上数据可用性的成本,这两种 Rollup 作为链下数据存储模式应运而生,适用于需要高频交互的场景,但增加了对节点的信任成本.

Rollup 看似解决了公链的不可能三角问题,但 Rollup 有两个先天的问题。 首先,Rollup 的信息处理能力是有上限的。 特别地,Rollup 依赖于底层网络来实现。 底层网络的承载能力决定了 Rollup 的运营能力。 其次,链上不同的 Rollup 会造成互操作性问题。

为了让Rollup发挥更大的作用,以太坊的EIP 4844(proto-danksharding)提出将区块容量扩展为blob数据块来承担Rollup返回主链的数据。 虽然扩大区块容量提高了可扩展性,但大数据的共识和同步也会带来问题。 因此,在Surge阶段,还计划推出DAS(Data Availability Sampling)。

DAS允许节点将数据分成几份,而不需要下载和验证所有数据以太坊区块浏览器,节点只需要随机下载一部分来验证数据是否丢失。 DAS的检测精度将通过纠删码得到提高。 纠删码可以扩展额外的数据来恢复丢失的原始数据。 它是一种数据冗余机制。 纠删码扩展数据的有效性由密码机制KZG保证。 .

假设有 4 个数据块等待验证,节点有 25% 的概率发现 1 个原始数据块丢失。 使用纠删码将数据翻倍为8个数据块后,如果超过50%的数据丢失,则无法恢复原始数据,即节点发现数据丢失的概率超过50%。 随着验证节点数量的增加,发现数据丢失的概率也随之增加。 假设共有n个节点进行随机采样,当50%的数据丢失时,只有1/2n的可能性所有节点都恰好提取了没有丢失的数据块。 因此,在节点数量较多的情况下,DAS的验证方式足以保证数据安全。

因此,一般来说,通过增加区块容量来提高整体区块的可扩展性,会降低同步效率,影响系统的安全性。 为了提高同步速度,减少节点的存储容量,保证足够的去中心化,我们只能改进机制的密码学,但网络的整体安全性仍然受到影响。

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

以太坊采用PBS(Proposer/Builder Separation)方式将节点的工作任务分为Proposer和Builder两个角色。 建造者负责建造街区的主体并提交投标。 提议者只需要执行出价最高的区块,并不知道区块中的交易内容,以减少审核交易。

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

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

庞大的历史数据会影响以太坊的去中心化,尤其是不断增长的状态数据会导致各种低效。 为了不影响去中心化,在实现上述可扩展性计划的同时,需要一些机制来保证能够达到相同的安全标准,使系统能够更高效地运行。

Verkle 树是一种更简单的数据存储方式。 与现有的 Merkle 树相比,它需要更少的证明空间。 这是密码学技术做出的改进,配合历史数据过期机制,降低节点的存储压力。 ,继续降低节点阈值。

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

以太坊区块浏览器_以太坊区块浏览_siteethfans.org 以太坊区块浏览

在多维费用市场中,每个资源都指定了一个目标值和一个容量上限,就像 EIP 1559 执行 gas 要求一样,资源使用程度与资源定价相关。 以太坊将开始从EVM执行、交易调用数据、见证数据和存储容量等方面进行更细分的定价和收费,包括即将在Proto-Danksharding中推出的blob块。 最终目标是为每个单独的操作码启用定价,这将改善计费时的用户体验。

综上所述,以太坊急需性能提升,提出了Rollup和Danksharding的思路来提升性能。 同时,为了让更多的 Rollup 数据能够廉价且不膨胀地存储,提出了数据可用性的解决方案,弱化了由此带来的安全性降低的问题。 以太坊仍然要修复自身的技术债务,通过PBS、历史、状态到期等规划继续保护节点的去中心化。 随着新技术和新框架的引入,以太坊在保证去中心化和安全性的同时实现了最大的可扩展性。

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

EVM兼容链

在过去的几年里,以太坊牺牲了可扩展性来换取安全性和去中心化。 表明以太坊是全球节点数量最多的公链项目,在过去几年的运营中没有经历过。 在发生大规模网络中断时,不会因为个别节点的故障和退出而导致网络中断,证明网络有足够的冗余备份。 同时,节点需要较长的共识同步时间,交易处理速度慢,交易手续费增加。

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

这从以太坊的同质公链(即各种EVM兼容链)的竞争中可以看出。 尤其是在执行环境相同的情况下,应用迁移更容易。 因此,可以看出,采用以太坊架构的同构公链采用了这样的做法。 他们修改了以太坊的共识方式,减少了节点数量,缩短了共识时间,但保留了执行层的功能。 虽然可能会造成中心化问题,但由于以太坊上对应用溢出需求的快速接受,已经取代以太坊成为应用项目的发行地。 比如BSC、Polygon、Avalanche都是EVM兼容链的代表性公链。 它们的共同点是大大减少了网络中参与共识的节点数量。

模块化公链

以太坊竞争激烈的公链出现了“模块化公链”,将以太坊的功能分层,以模块化的方式运行。 这其实是一个有代表性的想法。 虽然不可能三角存在,但可以在其中找到折衷点。

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

因此,模块化公链将各层需求抽象出来,将区块链划分为:共识层、执行层、结算层、数据层。 不同层级可以有多种解决方案,并根据链条的不同需求,直接将这些解决方案进行整合,以达到最佳效果。 同时,将各层方案模块化,进行公链切换,平衡应用需求,变相突破不可能三角的限制。

以太坊非同构公链:重新思考不可能三角中的重点

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

siteethfans.org 以太坊区块浏览_以太坊区块浏览器_以太坊区块浏览

Solana首先增加了区块的容量,区块承载的数据量增加了十倍。 其次,为了减少每次同步的节点数量,Solana会提前公布负责节点名单。 每笔交易只需要传递给领导者(Leader),其他验证者只需要验证自己负责的部分,不需要验证整个区域。 片。

此外,Solana 会在交易执行前进行预判。 如果满足条件,将使用并行计算来提高交易的处理速度。 如果必须串行处理,它会切换到比以太坊效率低的运行模式。 可见,Solana为了追求可扩展性,牺牲了安全性和去中心化。 当leader节点出现故障,或者判断是否并行处理时,都会造成网络中断。

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

Aptos也采用并行处理方式,采用Block-STM引擎,默认对所有交易采用并行处理方式。 当发生冲突时,将重新执行不成功的事务。 这就需要一个调度器来防止同一个事务同时被执行。 并在重新执行交易后得到更多的安全确认。 此外,Aptos 还考虑了快速状态同步。

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

Aptos认为以太坊的虚拟机也是它的瓶颈。 以太坊没有办法大规模更新它的语言,但 Aptos 没有这样的技术包袱。 Aptos 和 SUI 都采用了 Move 语言,Move 的创新之处在于将资产视为资源。 资源的创建、使用和销毁都有一定的限制,所以不会出现以太坊常见的重入攻击,可以让智能合约更加安全,并允许虚拟机并行处理多个交易,并根据租金收取费用在存储资源上也是可以的。

综上所述,新公链认为可扩展性优先于安全性和去中心化,这一点与以太坊不同。 因此,他们在不可能三角中重新选择了聚焦方向。 这样的变化对用户来说是非常明显的,Solana 的宕机问题在所难免。

思考与总结

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

第一,保证系统的容错性:共识机制具有一定的容错性,即当故障节点的比例低于一定比例时,系统仍然可以验证信息。 自由加入的分布式节点可以补充新的普通节点。

第二,增加系统的攻击成本:共识机制代表节点对现有区块状态达成共识的方式,掌握共识机制控制权的一方代表作恶者有能力修改共识(修改账户记录)和审核交易(决定交易排序和是否打包上链)的权力。 共识机制和分布式节点可以从规则上增加攻击的难度和成本。

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

以太坊本身已经基本成型,很难从头开始改变。 因此,以太坊正在尽最大努力引入新技术(密码学技术、单时隙终结性算法)和新框架(Rollup、数据可用性)来优化其性能瓶颈,希望利用新技术和新框架来大幅提升性能。在去中心化和安全性的基础上,再优化不可能三角。

以太坊的同构公链、EVM公链和模块化公链要灵活得多。 以太坊层的拆分让他们找到了自己的“社会分工”来匹配不同的应用,比如托管金融、游戏、隐私等等。 根据应用的需求,将不同层次的技术框架的需求倒过来,帮助他们在不可能三角中找到新的平衡点。

以太坊非同质公链,因为没有技术包袱,完全可以从头开始,采用全新的架构和技术手段。 不同于以太坊在充分去中心化和安全的前提下追求性能(以太坊的同质公链介于两者之间,也更偏向于性能),它们都选择了性能优先的路径。 这样做的好处是用户可以非常直观的感受到自己的进度(TPS),但是安全和去中心化问题也是一个隐患。