TPS:全方位解析以太坊2.0分片与其他分片公链的差异_比特币

ETH2.0的Merge阶段近在咫尺,官方预计约在9月15日左右实现POW到POS的转换。此次POS转换与以往公链分叉所用的方式不同,并没有采用在特定区块高度分叉的方式,而是规定了TTD并设置“难度炸弹”。TTD全称为TotalTerminalDifficulty,即以往所有区块难度的总和。当全网积累的挖矿难度值达到TTD时,ETH主网会启动“难度炸弹”。“难度炸弹”是进行以太坊难度调整的后门函数。以太坊的POW出块时间并没有固定,而是根据全网算力大小对挖矿难度进行动态调整,通过这种方式把区块时间固定在一个大致的范围。难度炸弹的部署则是通过后门函数将挖矿难度调整到一个极大的值,使得没有矿工可以在该挖矿难度下生产区块,从而推动着矿工放弃POW。POW-POS的转换并没有设置一个固定的区块高度,而是规定TTD作为Merge发生的时刻,部分原因其实在于防止有人刻意破坏Merge的进程。

1.1分叉声浪以及可能的延期利空

社区关于ETH分叉之争主要集中在POW与POS谁更加符合区块链自身的定义以及特性,即POS是否违背了区块链去中心化的精神以及是否具有抗审查性。但无论争论的结果如何,目前已经有多方势力包括矿工群体、交易所群体以及ETH大户在为各自的利益用脚投票。

可能的延期利空则是因为8月的Goerli测试网合并时出现了一些问题,这些问题并没有影响测试网的合并。但对于Merge这种会影响以太坊未来发展的重要事件,小问题可能会使主网合并推迟数月。此外,合并的推迟也相当于为POW分叉创造了时间,增加了整个体系的混乱度。

若最后真的实现了POS/POW分叉,可能存在的情况包括:

-ETHPOW链分叉链缺少预言机,DeFi失效;

-分叉链中由中心化机构发行的资产,如WBTC资产等没有了实际价值支撑;

-ETHPOW链缺少RPC接口,用户无法与ETHPOW进行链上交互;

-AMMDEX的定价不依赖于预言机,因此UniswapPOW可以独立运行,但是由于大多数DeFi币没有价值,因此抢先将所有AltcoinPOW换成ETHPOW将能获得最大收益;

-由于缺少连接ETHPOW的RPC接口,钓鱼攻击的频率会增加。黑客可能利用用户在RPC上授权,ID为1的TX,在POS链上展开重放攻击,取用户ETH2.0主网的资产;

-交易所是最大的受益者,ETHPOW的变现必须通过交易所实现,这意味着交易所只要支持ETHPOW的买卖就可以获取交易手续费;

-ETHPOW生态的虚无也给了各个项目方可乘之机,例如在ETHPOW链上发行以ETHPOW为抵押品的稳定币;

-ETH主网上关于ETH的借贷利率暴增;

普通交易者在整个过程中可做的事情其实并不多,最重要的还是注意不要被钓鱼攻击和重放攻击。

1.2ETH2.0的实现路线图

ETH2.0自提出到开始实行经历了一次大改,最初ETH2.0的设计是实现状态分片。状态分片可以简单理解为将以太坊主网拆成多条子链,并将其命名为Shard1、Shard2……,每条Shard都有以太坊主网的全部功能,拥有独立的状态并且独立处理各自的交易,最后利用信标链将所有的子链统筹起来,也就实现了状态分片。但在2020年随着Rollup潜力的凸显,以太坊便改变了其实现状态分片的路线图,而将数据分片作为ETH2.0的最终目标。数据分片类似于模块化区块链,即将以太坊分成多个数据分片,每个数据分片连接一个或多个Rollup,Rollup作为执行层而以太坊则成为数据层与共识层的底层。

因此目前Sharding2.0的整个路线图大致分为三部分:Merge、Proto-Danksharding和Danksharding。

Merge预计发生于9月15日,而Proto-Danksharding预计在两年内完成,Danksharding的实现更是在未来的3-4年。实现Danksharding后以太坊的TPS有望达到互联网级别,从而奠定了区块链应用的未来。

Harmony/Near分片

2.1Harmony

Harmony的分片模式与ETH的Sharding1.0版本极为类似,若ETH2.0没有改变路线图,则未来以太坊主网关于Sharding的形态机制将与Harmony大体一致。Harmony利用信标链统筹分片链的状态,不同的分片可以理解为同质化子链,子链内部的交易由管理子链的验证者进行验证。每个分片在出块后都需要将分片区块的区块头存储在信标链对应位置的区块中,这样使得信标链区块可以存储所有分片的状态信息。除了统筹分片链的状态外,信标链还需要执行的功能包括提供随机数用于随机轮换各个分片的验证者和区块提议者、记录每个分片的BLS聚合签名以及验证者的状态。

信标链确立区块提议者以及与各个区块对应的委员会的方式是通过随机数实现的。区块提议者将负责提议区块,负责该分片的委员会在分片内部达成FBFT共识,并在确认后将达成的共识上传信标链。

具体步骤如下图所示:

区块提议者在其所属的Slot中提议一个区块,并将该区块头信息向其他验证者传播;

-验证者在收到消息后确认该区块头,并附上自己的签名,表示接受该区块提议者提议区块;

-这些签名汇集到区块提议者那里,计算合成为一个BLS聚合签名;

-区块提议者将BLS签名发送给验证者,当BLS签名中包含超过2/3的验证者权重时,验证者将对区块内的交易进行验证,验证结束后附上自己的签名,表示交易验证完成,并将签名发送给区块提议者;

-区块提议者收集BLS签名,在BLS签名超过2/3的权重时确认该区块,并将该区块以及所有的BLS签名广播给所有的验证者,分片链上的Slot成功出块;

-分片链上的Slot出块时,该区块头信息以及生成该区块时各个验证者的BLS聚合签名将会被记录在信标链对应的Slot中。同时其他分片也会收到该分片的区块头信息并记录在区块内,方便跨片交易的验证;

在所有的分片都出块后,对应位置的信标区块将收集所有的区块头信息、BLS聚合签名以及所有验证者的状态并将这些信息打包成信标链区块。但这个过程中其实存在着分片链出块与信标链出块的协同性问题。由于分片链过多,短时间里信标链可能没有办法收集全所有的分片链头信息,从而出现漏块的情况。为解决这个方面的问题,Harmony从两个方面给出了解决方法:一是用FBFT共识取代PBFT快速达成分片区块内的共识;二是利用高性能节点快速协同信标链区块和分片链区块的信息。Harmony的问题其实是所有分片链都会遇到的问题,针对这个问题Near和ETH2.0分别给出了自己的答案。

尽管Harmony与ETH2.0的Sharding1.0版本在结构上有些相似,但其仍然具有不同于ETH2.0的特点,具体包括:

-验证者质押的币会随机分配到不同的分片,这意味着发动攻击的人没有办法把币集中在某一个分片上;

-验证者质押获得的奖励并不与质押的币的数量线性相关,而是具有凹性,即边际质押收益递减;

-新入驻的节点可以通过Hashlink连接每个Epoch的Checkpoint以实现快速状态同步;

-跨分片交易时可以绕过信标链直接进行分片链之间的交易;

2.2Near

Near一直以来以分片作为该公链的特色,但直到目前为止Near还没有实现像Harmony那样的状态分片。Near在架构上也与Harmony这些以信标链为协调枢纽的分片结构不同。Near的分片集中在一个区块内,即将一整个区块做分割,分成不同的Chunk。而Chunk其实也就可以被认为是一个分片。

Near的逐步分片过程呈以下几个阶段:

-2021年第四季度实现SimpleNightshade,将Near的区块空间分成四个Chunk;

-2022年第一、二季度在Near生态引入Chunk-Only-Producer;

-2022年第三季度通过Nightshade真正实现分片;

-2022年第四季度实现动态分片,即根据容量需求动态调整Chunks的大小;

上述概念可能会让人有一些疑惑,其实直到2022年第三季度Near的Nightshade开始实行前,Near都没有做到状态分片,状态分片的实行是逐渐推行的。SimpleNightshade阶段只是把区块空间分片,但是交易的确定与验证与其他Layer1POS公链没有太大差别,验证者同时处理所有的交易。接着在2022年第二季度,Near引入了新的角色-“Chunk-Only-Producer”,其本质上也是验证者,只不过作用范围局限在单个分片内,用于专门验证每个Chunk内的交易。该阶段里Near生态里总共有两大类验证者,第一类是可以出块的高性能验证者,负责整合所有的Chunk块并汇总成整区块以及跟踪所有分片状态并进行交易验证;第二类就是局限在分片内的Chunk-Only-Producer,负责分片内Chunk的出块以及Chunk内交易的验证。第二类验证者对于节点性能的要求并不高,因此Near公链在Chunk-Only-Producer层面可以做到一定程度的去中心化,但仍然需要高性能的第二类验证者负责大区块的生成。第三阶段Near将实行Nightshade,此时Near才真正实现了状态分片。

状态分片的实现意味着每个分片可以被看作是一条“链”,该分片上的交易由负责该分片的Chunk-Only-Producer进行验证。为更近一步降低验证者节点的性能要求,Near使用纠删码技术对Chunk的数据进行处理,而没有选择对Chunk内的所有数据进行广播。直接广播Chunk的所有数据可能会使性能较低的出块节点出现丢包的现象,而通过纠删码技术,验证节点只需接受Chunk的碎片信息即可,从而降低了节点的性能负担。纠删码是一种对于数据的冗余处理办法,将一整块数据处理成n份,当需要进行数据还原时只需要其中任意的f份即可。在某个Chunk数据的广播过程中,Chunk数据被冗余处理,每个验证节点随机获取一份纠删码。当大多数的验证节点收到来自所有分片内Chunk数据的纠删码时,这些节点会发动共识投票,汇总各个节点手中的Chunk纠删码数据段,恢复原来的Chunk,并按照分片顺序对所有的Chunk进行排列,确立Near的主区块并附上聚合签名。

Near为解决验证者网络中心化问题使用的纠删码技术目前已经被多种协议或者公链所使用,ETH2.0的Danksharding也同样使用纠删码技术以达到去中心化验证以及可拓展的效果。

ETH2.0基本机制

3.1客户端的变化

Merge代表着信标链与目前以太坊主网的合并,以太坊网络将“无感”转换为POS共识机制。“无感”主要针对的是用户,但对于矿工以及验证者节点而言,他们仍需要为POS转换做一些客户端层面的改变。

类似于模块化区块链将执行与共识分离一样,Merge之后以太坊客户端也会做到执行与共识的分离。POW阶段的以太坊客户端被称为ETH1.0,其包含挖矿、POW共识、交易验证、内存交易池等多个功能。但当共识机制转向POS后,ETH1.0Client中关于挖矿以及POW共识的部分将全部被废除,剩下的部分作为执行客户端继续运行在以太坊网络中。共识层则是由共识客户端负责,也称为ETH2.0Client,运行在信标链节点上,主要负责达成POS共识。共识客户端与执行客户端合并起来共同组成了Merge后的以太坊客户端,两者之间的连接是通过API实现的,并通过JWT私钥进行验证。

共识客户端与执行客户端可以做到分离,验证者可以只运行执行客户端并把共识客户端托管在信标节点上,也可以选择在同一台机器上同时运行执行客户端和共识客户端。

如下表所示,运行客户端并不要很高的性能,消费级别电脑即可。

3.2出块模式的改变

POW出块是通过求解哈希难题实现的,在全网算力动态变化的情况下,每个区块出块时间也会动态变化。但由于POS是指定出块者,每个区块的时间间隔是固定的。Merge之后以太坊会以6.4分钟为一个Epoch,共32个Slot,因此每个Slot为12s,理想情况下每个Slot都应该有一个区块。

信标节点通过RANDAO和VDF确立每个Slot的验证者委员会以及区块提议者,一个Epoch需要挑选32个提议者和32个验证者委员会。每个Slot都应该有一个区块,如果没有则说明区块提议者没有尽到自己的义务,将会被罚没部分ETH。根据泊松分布,在考虑可能存在区块丢块的情况,区块的生成时间平均下来约为13s。

对于如何理解RANDAO和VDF,以下举个简单的例子,

RANDAO是一种生成随机数的方式,假设班级里有10个同学,老师想随机挑选一名学生给其发放奖励。老师给出的挑选方法是所有的同学同时给出一个随机数,老师将得到的10个随机数加和,最后得到的数字对10求余,剩下的数字就是应该挑选的同学。但是从上述RANDAO的运行过程中其实可以发现一个问题。如果某个同学作弊,后于9个同学给出随机数,那么其就可以根据9个同学给出的随机数信息,挑选一个最有利于自己的数字,使最后的结果指向自己。因此RANDAO的有效运行是需要引入防作弊机制的,即需要用一定的方式保证所有人同时给出答案。VDF也就派上了用场。VDF全称为可验证延迟函数,该函数的重要特征在于得到结果的计算过程无法并行计算,即无法加速。但得到结果后,验证该结果的计算量却又非常小。VDF是通过哈希函数实现的,哈希函数计算慢验证快的特性也跟VDF的性质一致。

VDF的具体实现过程比较复杂但有一种简单的理解方式:F(x)=(((x)^2)^2)^2………^2

上述函数的()并非简单算术中表示的(),而是某个复杂函数。计算F(x)的值只能串行运算多次。在单次计算时间确定的情况下,计算该函数所需要的时间是固定的,这也就因此解决了RANDAO可能存在的作弊问题。

研究特定的VDF算法,维持VDF计算时间的稳定性对于ETH2.0网络的稳定非常重要。EthereumFoundation曾与Filecoin合作研发ASIC化的VDF算法。稳定后的ASIC算法可以将VDF计算时间限制在102分钟。

3.3GasperFFG与LMDGHOST

GasperFFG在ETH2.0中主要实现区块的最终确定性,而LMDGHOST则是通过分叉选择规则,选择某个区块接入当前的链。这两个机制都是以投票的形式达成共识。每个验证者在验证区块时需要向信标链提供三个信息:确认区块内交易的签名、GasperFFG投票以及LMDGHOST投票。上传确认各个验证者签名的原因在于,当验证者提供错误证明后,上传信标链的签名将成为罚没该验证者ETH的证据。

GasperFFG投票是每个Epoch内所有的验证者必须参与的投票,一个Epoch只投一次,作用是确立该Epoch以及上一个Epoch的Checkpoint。Checkpoint指每个Epoch内的第一个区块。由于可能存在区块信息传输不及时的情况,对于不同的验证者而言其观察到的每个Epoch内的第一个区块可能并不一样。因此GasperFFG投票的本质就是统一这种可能存在的信息差,把每个Epoch的Checkpoint定下来。

在当前的Epoch结束时,若有超过2/3权重的验证者为该Epoch的某个区块背书,认为其为该Epoch的Checkpoint并投票给上个Epoch的Checkpoint时,上个Epoch的区块被认为达到最终确定,而该Epoch的区块则被定义为Justification的状态,可译为待最终确定。因此在以太坊实现Merge之后其区块最终确定的时间反而变长了,至少为6.4分钟,最多为12.8分钟。在Merge之前,以太坊区块的最终确定性是通过最长链原则实现的,6个区块即可确定最长链,因此最终确定时间只需要约1分钟。但实际上POW的最终确定和POS的最终确定性是有一定差异的。虽然POS达到最终确定性的时间较长,其一旦达成便不可回滚。而对于POW而言,其达成最终确定的区块永远都有回滚的风险。

LMDGHOST又称分叉选择规则,每个Slot内的验证者都需要根据权重选择当前Slot连接主链的区块,LMDGHOST投票也是为了解决区块确认过程中存在的信息差的问题。举个简单的例子,Slot1位置生成了区块A,Slot2位置生成了区块B,但由于信息传递不及时,小部分Slot2的验证者并没有收到区块B生成的任何信息,因此错把区块A当作Slot2对应位置的区块,此时由于区块B获取了最多的票数,其将在Slot2的位置与主链连接。

3.4ETH通胀率、GAS、TPS的变化

以太坊主网转向POS后每年ETH的产量将大幅度降低,而且由于EIP-1559在不断销毁ETH,ETH有望由通胀转为通缩。但在Merge后以太坊主网的GAS和TPS并没有很显著的变化。由于出块时间固定为12s,相比于POW阶段12-30s的浮动出块时间而言,单位时间内可以容纳的交易增多,TPS增加。TPS的增加也使得以太坊主网没有那么拥堵,使得BasegasFee略有下降,每笔交易更加便宜。总体而言Merge对于ETH流通量的影响远远大于其对GAS和TPS的影响。TPS和GAS的革命性调整还得等到Danksharding的落地。

3.5Proto-Danksharding

Proto-Danksharding也被称为EIP-4844提案,主要内容是向以太坊区块中引入Blob交易格式。EIP-4844提案是为以太坊彻底实现Danksharding做出的准备,其并未将以太坊做到分片,验证者节点仍然需要下载并且验证所有的数据。

目前阶段以太坊的区块大小是由Gas容量确定的,在EIP-4844实施后Blob的数量成为决定区块大小的另一个维度。Blob是一种二元数据结构,大小约为128KB。以太坊区块对每个区块内可以容纳的Blob做出了限制,目标Blob数量为8,最大为16。因此每个区块将额外增加1-2MB的存储空间。Blob主要用于存储Layer2数据,在此之前其数据的存储是通过Calldata实现的,而一个区块内Calldata的容量只有约10KB。这意味着在引入Blob后区块内可用于存储的空间将增加至少100倍。但由于单位空间内Calldata与Blob的信息密度不一样,虽然Blob空间比Calldata大100倍,但实际可以容纳的交易数量可能并不能达到100倍。Blob数据较大,每个区块将引入至少1MB的Blob数据,一个月将多出数TB的数据。为解决数据量快速增加的问题,每月产生的Blob数据将会离线存储。

EIP-1559是针对区块大小调整的提案,其对区块内可容纳的Gas量做出了调整,设置了目标Gas以及最大Gas量。当区块内的Gas量高于目标Gas时,每笔交易的基础Gas费将上调12.5%,产生的基础Gas费将会被销毁。EIP-4844也为区块大小做出了调整,当Blob的数量超过8时,下一个区块的基础Gas费将升高,产生的基础Gas费也同样被销毁。EIP-1559与EIP-4844的整合将为以太坊区块大小以及Gas费率引入更加动态的调整机制。

3.6Danksharding

“中心化出块、去中心化验证”是V神对于以太坊未来形态的构想,这种构想通过PBS、Crlist以及DAS则有机会变成现实。

PBS全称“Proposer-Builder-Separation”,即构建区块时区块提议者与区块构建者的分离。其核心思想在于向系统中引入Builder角色,由Proposer提议区块,Builder竞拍交易的排序权并计算区块头,Proposer根据Builder的计算结果打包交易并将区块头写入区块完成出块。

PBS的引入主要是为了解决以下四个问题:

-ETH2.0面临的MEV问题:Proposer既负责打包交易又负责交易的排序,可通过其特殊身份获取MEV;

-分片与信标链的同步问题:Sharding1.0的构想中,64条分片链在12s的时间内出块并将验证后的区块头信息、签名、验证器的状态、交联等数据发送给信标链,由信标链打包出块。整个过程较为复杂可能会出现漏块的情况;

-验证者子集分离的安全性问题:Sharding1.0的64个分片中的每个分片在一个Epoch的时间里被分成了32个Slot,每个Slot都需要一个委员会进行投票验证。因此原本的验证者群体被分割成(64+1)x32个验证者子集,每个验证者子集需要负责一个Slot内区块的生成与验证;

-中心化引起的是否抗审查的议题;

上文解释了Harmony对于信标链与分片链出块的协同性问题的解决方法,其核心想法在于利用FBFT快速达成共识以及高性能节点快速打包区块。这种解决方案的缺点在于不能解决抗审查问题、没有考虑MEV、验证者网络仍然分离。Danksharding解决协同性问题的方式也是通过中心化的方式,但却考虑了以上可能存在的问题。相比于Sharding1.0每12s挑选64+1个Proposer和委员会,分别负责所有分片和信标链的出块以及区块验证,Danksharding每12s只挑选1个Proposer、1个Builder和1个委员会。信标链和所有分片的区块都由Proposer提议,由一个Builder构建,由1个委员会验证。由于所有的出块信息最后都只汇集到1个Proposer手中,信标链和分片链的出块可以做到同步进行。此外原本64+1个委员会子集在Danksharding后被汇集成一个,验证者子集过于分散的问题可得到解决。

Proposer和Builder共同承担所有区块的构建任务,但是为了保证Proposer的去中心化,其不可处理高性能计算的问题。因此高性能计算的任务也就交给了Builder。Builder在整个系统中充当的角色是“无情的计算机”,主要原因在于其不能筛选交易,只能对Crlist内的交易进行排序,并进行哈希计算。Proposer在发布构建区块的竞拍任务时会发布Crlist,该Crlist包含Proposer可见的所有的交易,Builder在交易排序时必须将该Crlist的所有交易囊括在内,否则无法参与竞拍。由于Proposer是随机且去中心化的,而Builder只是排序打包机器,并不能对交易的筛选起任何作用,因此也就维持了交易的抗审查性。

对于MEV的问题,通过使用PBS,ETH2.0中的MEV流通路径可以归结为:交易者向Builder寻租-Builder竞拍排序权-市场化竞价下,Builder可以获取的额外收益与拍卖成本基本持平,Builder寻租收益接近于0-收益由验证者网络获取。最后的MEV收益由全网验证者共享而不是流入个人钱包。这种解决方法也很契合MEV的本质。毕竟MEV是一个公共系统产生的额外收益,这部分公共收益更应该由维持网络运行的人共享。

数据可用性抽样是解决区块链状态爆炸的有效方法。状态爆炸指随着时间的积累以太坊主网积累的太多的交易数据以及账户历史余额数据,使得节点的负担过重,验证节点的进驻门槛升高,不利于验证者网络的拓展。而利用DAS技术,验证节点在同步以及验证区块数据时无需下载所有数据,只需要下载区块的部分冗余片段即可,需要进行区块重构时多个节点互相配合。

但DAS在数据碎片重构时可能遇到一些问题。大区块的碎片化重构需要高性能的处理器,这与DAS低性能去中心化要求的初衷相违背。因此DAS需要一种不需要高性能节点的大区块重构算法。

Danksharding的DAS采用的方式是RS编码以及KZG多项式承诺。大区块数据利用RS先进行一维拓展,再利用KZG多项式承诺进行二维拓展。二维拓展多引入了一个维度,因此可以基于该维度对冗余数据进行分割,分成多个片区。当需要区块中的某一部分数据时,只需要挑选出该区块对应的片区,对该片区进行重构即可。也正是因为每个分区都可以做到单独重构,整个大区块的重构可以通过不同分区并行重构的模式进行,从而降低了重构数据对于节点的性能要求。

由于DAS可以做到对区块数据的并行化处理,未来即使增加Sharding的数量也不会很显著的增加验证节点的性能负担,这部分负担可以通过增加验证者的数量来解决,但Builder的性能则需要进一步提升。

4.0公链的终局?

Danksahrding通过PBS实现以太坊的中心化出块,通过DAS实现去中心化的验证,让以太坊成为可拓展的数据可用性底层,使得以太坊未来可以容纳应用链Rollup,智能合约平台Rollup等多种Rollup。EIP-4844中Blob交易格式的引入也将显著降低Rollup的成本。由此看来Danksharding实际上在为模块化区块链的未来下注。目前大多数公链的主流选择仍然是共识与执行层耦合,Danksharding关于模块化区块链剑走偏锋的选择是否正确则有待时间的考验。

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

大币网

[0:0ms0-3:931ms