前言
扩容一直是以太坊绕不开的话题之一,以太坊要想成为真正的“世界计算机”需要同时具备可扩展性、安全性、去中心化,但同时具备这三个条件在行业中被称为“区块链不可能三角”,在整个行业中是一直没有被解决的一个大难题。
但随着2021年末以太坊研究员&开发者DankradFeist提出以太坊新分片方案Danksharding后,似乎给解决“区块链不可能三角”带来了一种变革性方案,甚至有可能改写整个行业的游戏规则。
本份研报将尝试用白话形式讲清楚什么是以太坊的新分片方案Danksharding以及来龙去脉。关于为什么写这份研报是因为关于Danksharding的中文文章十分少并且大多都需要较高的知识门槛,因此菠菜将尝试为你掰开揉碎背后的复杂原理,通过用简单的大白话去让一个Web3初学者也可以看懂以太坊新分片方案Danksharding及其前置方案EIP-4844。
目录
一、以太坊为什么需要扩容?
以太坊创始人VitalikButerin在2014年发表以太坊的白皮书“下一代智能合约和去中心化应用平台”后,区块链迎来了一个新的时代。智能合约的诞生使得人们可以在以太坊上创建去中心化的应用,也为区块链的生态带来了一系列创新如NFT、DeFi、GameFi等。
以太坊扩容背景
随着以太坊链上生态日渐壮大,越来越多的人开始使用以太坊,以太坊的性能问题开始暴露出来。当许多人同时在以太坊上进行交互时,区块链就会发生“拥堵”,就像一条马路上的红绿灯时间是固定的,在一定数量内的车辆不会导致堵车,但突然在高峰期的时候许多车都往这条马路上开,绿灯时驶出马路车辆的数量远远没有新驶入这条马路等待红绿灯车辆的数量多,就会导致大拥堵,所有车辆通过这条马路的时间就会被一直拉长,那么在区块链中也是如此,所有人的交互请求确认时间都会被拉长。
但在区块链中,被拉长的不只是时间,还会导致高昂的Gas费,因为矿工会优先处理出价最高的交易,这就会导致大家都去抬高Gas费去争取更快的交互请求确认引发一场“GasWar”。比较有名的一次事件是2017年的一个NFT项目——CryptoKitties加密猫的爆红将Gas费推至几百美金一次交互,在以太坊上进行一次交互需要消耗几十甚至上百刀的Gas费是多么昂贵的一个成本。
而导致如此昂贵Gas费的主要原因便是以太坊的性能已经无法满足现有用户的交互需求。在性能的计算上,以太坊与比特币不同,比特币由于只是单纯的账本处理转账信息,所以TPS是固定的每秒可以处理7笔交易,但在以太坊中不同。
以太坊由于智能合约的存在,每个交易的内容各不相同,所以每个区块可以处理多少笔交易取决于一个区块中包含的交易的数据量大小,每个交易的数据量大小都是根据实时需求决定的,关于以太坊性能的机制我们可以了解到:
→以太坊是按照Gas费来规定一个区块的数据量上限的,一个区块最高可以承载3000万GAS的数据量
→以太坊不希望每个区块的数据量都太大,所以每个区块都有一个GasTarget为1500万Gas的数据量
→以太坊有一套Gas的数据消耗标准,不同类型的数据消耗的Gas都是不一样的,但根据菠菜的估算,每个区块大概有5kb~160kb左右的大小,平均一个区块是60~70kb左右的数据大小
→一个区块的Gas消耗一旦超过了GasTarget也就是1500万Gas,那么下一个区块的基础费用就会贵12.5%,如果低于的话就会降低基础费用,这个机制是一个自动化的动态调节机制,可以在交易高峰时一直增加成本去缓解拥堵,同时在交易低迷时降低成本来吸引更多交易
Otherside:KodaPendant实物申领正式启动,美东时间7月6日截至:金色财经报道,Yuga Labs元宇宙项目Otherside在官推宣布与奢侈品巨头Gucci合作推出限量版KodaPendant实物项链申领已正式启动,本次申领将于美国东部时间2023年7月6日中午12点结束,之后Voyager用户将失去领取实物KodaPendant项链的权利。KodaPendant与今年四月推出,配套NFT总计3,333枚,据悉实物 KodaPendant项链采用925银制成,带有古董饰面且配有“GG”LOGO的Koda形状吊坠,每个吊坠的背面都有一个独特的版本号。[2023/6/22 21:53:52]
那么通过了解了以上机制我们可以得知,以太坊的TPS是浮动的。我们可以通过区块链浏览器看到每个区块的交易数量来算出大概的TPS,根据下图可以看到,平均一个区块按照刚好达到GasTarget来计算有160笔交易左右,最高的可以达到300笔交易以上。
按照每个区块12秒的出块时间TPS大概为13~30笔交易左右,但根据目前已知以太坊的TPS最高可以达到每秒45笔交易。
图源:Mainnet|BeaconChainExplorer(Phase0)forEthereum2.0–BeaconScan
如果拿世界著名的交易系统VISA每秒可以处理几万笔交易的性能来说,想要成为“世界计算机”的以太坊每秒最多处理45笔交易的性能实在是太弱了。所以以太坊迫切需要扩容来解决性能问题,这关乎到以太坊的未来,但扩容并非一件易事,因为在区块链行业中存在一个“不可能三角”。
什么是区块链不可能三角?
“区块链不可能三角”指的是一个公共区块链无法同时满足三个特性:去中心化、安全性、可扩展性。
→去中心化:指的是节点的去中心化程度,节点越多越分散越去中心化
→安全性:指的是整个区块链网络的安全,攻击成本越高越安全
→可扩展性:指的是区块链的处理交易性能,每秒可处理交易越多越具备可扩展性
如果我们从这三点的重要性来看的话,我们会发现去中心化和安全性是权重最高的,去中心化是以太坊的基石,正是去中心化赋予了以太坊中立、抗审查、开放性、数据所有权和近乎牢不可破的安全性。而安全性的重要性自然不必解释,但以太坊的愿景是在去中心化并且安全的前提下实现可扩展性,实现难度可想而知,所以这也被称为“区块链不可能三角”。
图源:以太坊愿景|ethereum.org
目前以太坊的扩容解决方案有哪些?
我们知道了“区块链不可能三角”中,以太坊要想实现扩容的前提必须是保证去中心化和安全性,要做到确保去中心化和安全性的话就必须在实现扩容中不能过多提高对节点的能力要求。
因为节点是维护整个以太坊网络中必不可少的角色,高要求的节点会阻碍更多人成为节点越来越中心化,节点当然是门槛越低越好,低门槛节点会让更多人参与进入让以太坊更加去中心化和安全。
那么目前针对以太坊的扩容方案有两种:Layer2和分片,Layer2是针对底层区块链扩容的一种链下解决方案,原理是将区块链上的请求放在链下执行。Layer2的方案有好几种,本份研报只重点介绍一种Layer2方案那就是Rollup:Rollup原理是将数百笔交易在链下像摊煎饼一样打包成一笔交易发送给以太坊来实现扩容,这样每个人平摊下来上传以太坊的费用就会很便宜,同时还可以继承以太坊的安全性。
Cardano生态最大Web3黑客松Cardano EMURGO BUILD 2023在DoraHacks.io开启报名:5月30日消息,由EMURGO Ventures主办的Cardano EMURGO BUILD 2023报名入口已在开发者激励平台DoraHacks.io开启。
作为Cardano生态中最大规模的Web3黑客马拉松,本此活动评审团来自EMURGO、EMURGO Ventures、Cardano Foundation、Input Output Global(IOG)、Binance、Republic Crypto和Wave Financial。活动总资助池超200万美元。项目提交截止时间为7月3日。
Cardano EMURGO BUILD 2023面向全球Web3开发人员,鼓励其基于Cardano网络,在Derivatives、Aggregators和Zero-Knowledge三大赛道上构建具有创新意义的dApp,以进一步丰富整个生态体系。[2023/5/30 11:48:13]
Rollup目前分为两种类型:OptimismRollup和ZKRollup,这两个Rollup的区别简单来说OptimismRollup就是假设所有交易都是诚实可信的,把许多笔交易压缩成一笔交易提交给以太坊,在提交后会有一段时间窗口,任何人都可以质疑发起挑战来验证交易的真实性,但用户如果要将OPRollup上的ETH转到以太坊上则需要等待挑战期结束后才可以得到最终确认。
ZKRollup则是通过生成一个零知识证明来证明所有交易都是有效的,并将所有交易执行后的最终状态变化上传至以太坊。相比OptimismRollup来说ZKRollup更有前景,ZKRollup不需要像OptimismRollup那样上传压缩后的所有交易细节,只需要上传一个零知识证明和最终的状态变化的数据即可,意味着在可扩展性上可以比OPRollup压缩更多的数据,并且也不需要像OPRollup那样等待长达一周的挑战期,但ZKRollup最大的缺点就是开发难度极大,所以短期来看OptimismRollup会占据L2大量的市场。
除了Layer2之外呢,还有一种扩容解决方案就是我们本文的主角分片,我们知道了Layer2是将以太坊上的交易放到链下去处理。但不管Layer2怎么去处理数据,以太坊本身的性能还是没有变,那么Layer2能实现的扩容效果其实是没有那么显著的。
分片就是在以太坊这条Layer1的层面上去实现扩容,但我们知道在以太坊上实现扩容的前提是确保以太坊的去中心化和安全性,那么就不能去增加太多对节点的负担。
关于分片的具体实现方案也一直是以太坊社区不断讨论的一个话题,目前最新的方案便是本文的主题Danksharding,那么也提到了Danksharding是最新的分片方案,在讲Danksharding之前呢菠菜也会简单介绍一下老的分片方案是什么样的以及为什么不采纳。
二、以太坊初始分片方案Sharding1.0
在讲分片1.0方案之前,菠菜需要先介绍一下以太坊目前的POS共识机制是如何运行的,因为这是理解分片1.0方案和Danksharding的必备前置知识,在讲分片1.0方案上会简短概括。
以太坊的POS共识机制是如何运作的?
共识机制是使区块链中所有维护网络的节点达成一致的一套体系,其重要性不言而喻。以太坊在2022年9月15日完成了以太坊2.0升级阶段中的“TheMerge”,即POW工作量证明的以太坊主网与POS权益证明机制的信标链进行了合并,POS权益证明机制正式取代了POW工作量证明机制成为了以太坊的共识机制。
我们知道在POW工作量证明机制中,矿工们是通过算力的堆叠来竞争出块权,那么在POS权益证明机制中,矿工们则是通过质押32个ETH成为以太坊的验证节点来竞争出块权。
Cardano正在探索代币销毁机制:3月20日消息,Watcher.Guru发推称,据报道,根据Cardano最近的开发更新,其正在探索一种代币销毁机制。
此前消息,Cardano团队宣布已经成功地在Cardano公共测试网上开启首个Hydra Heads。[2022/3/20 14:07:29]
除了共识机制的变化,以太坊的出块时间也由之前浮动的出块时间变为了固定时间,分为插槽和周期两个单位:Slot为12秒,Epoch为6.4分钟。一个Epoch中包含了32个Slot,简单来说就是12秒出一个块,6.4分钟出32个区块为一个周期。
当矿工质押32个ETH成为验证节点后,信标链就会通过随机算法来选择验证节点作为出块节点来打包区块,每一个区块都会随机选择一次出块节点。同时在每一个周期Epoch中,信标链还会将所有的验证节点平均并随机分配给每个区块一组由至少128个验证节点组成的“委员会”。
也就是说每个区块会被分配所有节点数量32分之1数量的验证节点,这些验证节点组成的“委员会”需要对每个区块出块节点打包的区块进行验证投票。当出块节点打包区块后,超过三分之二以上的验证节点投票通过即可成功出块。
初始分片方案Sharding1.0是什么样的?
在初始的分片方案Sharding1.0的设计理念中,以太坊从原本的一条主链被设计为了最多64条分片链,通过增加多条新链的方式来实现扩容。在这个方案中,每条分片链负责处理以太坊的数据并交给信标链,信标链则负责整个以太坊的协调,每一条分片链的出块节点和委员会都是由信标链来随机分配。
信标链和分片链之间通过交联(crosslinksqwpu)来进行实现链接,信标链的区块会给同区块的分片区块一个哈希值,然后这个分片区块带着这个哈希值给到下一个信标区块就可以实现交联(crosslinksqwpu)了,如果错过了的话则给到下一个信标区块即可。
初始分片方案Sharding1.0方案存在哪些弊端?
简单来说分片1.0的方案就是把以太坊切割成很多条分片链来一起处理数据然后将数据交给信标链来达到扩容,但这个方案存在许多弊端:
开发困难:把以太坊分割成64条分片链的同时还要确保可以正常运行,在技术上要实现十分困难,并且越是复杂的系统越容易出现一些不可预料的漏洞,一旦出现问题要进行修复的话也会带来许多麻烦。数据同步问题:信标链每一个周期Epoch就会重新打乱一次负责验证的“委员会(committees)”,那么每次重新分配验证节点就是一次大规模网络的数据同步,因为如果被节点分配到了一条新的分片链就需要同步这条分片链的数据,由于节点的性能带宽各不相同,很难能保证在规定时间内完成同步。但如果让节点直接同步所有分片链的数据的话,就会大大的增加对节点的负担,这就会使得以太坊越来越中心化。数据量增长问题:虽然以太坊的处理速度提高了许多,但多条分片链同时处理数据也带来了存储数据量的大量增长,以太坊数据量的膨胀速度将会是之前的许多倍,对于节点的存储性能要求也会持续增加,从而导致更加中心化。无法解决MEV问题:?最大可提取价值(MEV)是指通过在区块中添加和排除交易并更改区块中的交易顺序,可以从区块生产中提取的超过标准区块奖励和燃料费用的最大值。在以太坊中一个交易发起后,这笔交易会被放在mempool中等待被矿工打包,那么矿工就可以看到mempool中的所有交易,而矿工的权利是很大的,矿工掌握了交易的包含、排除和顺序。如果有人通过支付更多的Gas费贿赂矿工调整了交易池中的交易顺序而获利,这就属于一种最大可提取价值MEV。举个例子:
Cardano钱包数量突破300万:金色财经报道,2月4日,据Cardano Community官推透露,Cardano Network实现了另一个重要里程碑,网络钱包数量已经突破300万个。此前数据显示,Cardano钱包数量在2021年5月首次突破100万个,这意味着之后每天创建约11,000个钱包。[2022/2/4 9:31:07]
→有一种MEV手段叫「三明治攻击」或「夹子攻击」,这种提取MEV的手段是通过在链上监控大额的DEX交易,比如有人想在Uniswap上购买价值100万美金的山寨币,而这一笔交易会将这个山寨币的价格拉高很多,在这笔交易被放入mempool的时候,监控机器人就可以检测到这一笔交易,这时机器人就贿赂打包这个区块的矿工将一笔买入这个山寨币的操作插队在这个人前面,随后在这个人的购买操作之后进行一个卖出的操作,就像一个三明治一样把这个进行大额DEX交易的人夹在中间,这样发动「三明治攻击」的人就从中获取了山寨币因为这个人大额交易拉盘的利润,而大额交易的这个人则造成了损失。
MEV的存在也一直给以太坊带来一些负面的影响,比如「三明治攻击」给用户带来的损失和更差的用户体验、抢跑者竞争导致的网络拥堵、高Gas费甚至是节点中心化问题,因为通过获取MEV价值越多的节点可以通过收益不断在网络中占据更多的份额,因为更多收益=更多的ETH=更多的质押权益,再加上MEV带来的高昂成本会使得以太坊的用户不断流失,甚至如果MEV价值大幅超过了区块奖励还会造成整个以太坊的共识不稳定和安全性,而分片1.0方案无法解决MEV带来的一系列问题。
随着2021年末以太坊研究员&开发者DankradFeist提出以太坊新分片方案Danksharding后,Danksharding被以太坊社区一致认为是实现分片扩容的最佳方案,甚至可能会给以太坊带来一场全新的革命。
三、什么是以太坊新分片方案Danksharding?
Danksharding使用了一套新的分片思路去解决以太坊的扩容问题,即围绕着Layer2的Rollup进行扩容的分片方案,这套新的分片方案可以在不大量增加节点负担且保证去中心化和安全性的同时解决可扩展性问题,同时也解决了MEV带来的负面影响。
我们可以从下图看到接下来的以太坊升级阶段”TheSurge“和”TheScourge“的目标分别为:在Rollup中实现10万+的TPS和避免MEV带来的中心化以及其他协议上的风险。
图/来源:vitalik.eth翻译:ethereum.cn
那么Danksharding到底是如何去解决以太坊的扩容问题的呢?让我们先从Danksharding的前置方案EIP-4844:Proto-Danksharding开始讲起。
前置方案EIP-4844:Proto-Danksharding—新的交易类型Blob
EIP-4844给以太坊引入了一种新的交易类型—BlobTranscation,这种新的交易类型Blob可以为以太坊提供了一个额外的外挂数据库:
→一个Blob的大小约为128KB
→一个交易可以最多携带两个Blob-256KB
→每一个区块的TargetBlob为8个-1MB,最大可承载16个Blob-2MB
→Blob的数据是临时存储的,一段时间后会被清除
目前以太坊每个区块平均大小只有85KB左右,Blob给以太坊带来的额外存储空间是巨大的,要知道以太坊所有账本的总数据量大小从以太坊诞生至今也只有大约1TB左右,而Blob每年可以为以太坊带来2.5TB~5TB的额外数据量,是整个以太坊账本数据量的好几倍。
Moonstake质押池网络增加对Cardano的支持:8月11日消息,专注于去中心化质押网络开发的初创公司Moonstake与区块链解决方案提供商、Cardano(ADA)协议创始实体公司EMURGO签署了合作备忘录,双方将通过合作共同推动质押发展,并加速Cardano的应用。Moonstake最近开发一个通过PoS算法创建的质押池协议。标志性产品包括Moonstake网络钱包和Moonstake移动钱包,钱包能够提供完整的staking功能,并为用户提供网关来最大化加密货币的使用潜力。目前,Moonstake的质押池网络已支持Cosmos、IRISnet、Ontology、Harmony、Tezos,通过此次合作新增对Cardano的支持,从而为当前用户提供灵活的选择。[2020/8/11]
EIP-4844引入的Blob交易可以说是为Rollup量身定制的,Rollup的数据以Blob的形式上传至以太坊,额外的数据空间可以使Rollup实现更高的TPS和更低的成本,同时也将原本Rollup占据的区块空间释放给了更多用户。
由于Blob的数据是临时存储的,数据量的暴增并不会对节点的存储性能造成越来越重的负担,如果只是临时存储一个月的Blob数据量的话,从同步的数据量来看每一个区块节点需要多下载1MB~2MB的数据量,对于节点的带宽要求来说似乎不是什么负担。那么从数据的存储量来看,对于节点来说只需要多下载并保存固定的200~400GB左右的数据量,在保证去中心化和安全性的同时只付出了增加一点点节点负担的代价的情况下,换来的TPS的提高和成本的降低则是以数十甚至上百倍来计算的,这对于解决以太坊的可扩展性问题来说简直是绝佳的方案。
如果数据被清除了用户想访问以前的数据怎么办?
首先以太坊共识协议的目的不是为了保证所有历史数据的永远存储。相反,其目的是提供一个高度安全的实时公告板,并为其他去中心化协议留出长期存储空间。而公告板的存在是为了确保在公告板上发布的数据有足够长的时间停留,任何想要这些数据的用户或者协议,都有足够的时间来抓取数据这些数据并进行保存,所以保存这些Blob数据的职责就交给了其他角色比如Layer2的项目方、去中心化存储协议等。
Danksharding—完整扩容方案
EIP-4844实现了以太坊围绕Rollup进行扩容的第一步,但对于以太坊来说EIP-4844达到的扩容效果是远远不够的。完整的Danksharding方案将Blob可以承载的数据量从每个区块1~2MB进一步扩充至16MB~32MB,并且提出了新的机制出块者-打包者分离去解决MEV带来的问题。
那么我们需要知道要在EIP-4844的基础上继续进行扩容会存在哪些难题:
节点负担过大:我们知道EIP-4844中只有1~2MB大小的Blob对节点增加的负担是完全可以接受的,但如果将Blob的数据量扩大16倍至16~32MB的话,不管是在数据同步还是数据存储上的负担都会使得节点的负担过大从而以太坊的去中心化程度降低。数据可用性问题:?如果节点不去下载全部的Blob数据,就会面临数据可用性问题,因为数据不在链上开放且随时可访问,比如以太坊节点对OptimismRollup上的某笔交易存疑想发起挑战,但OptimismRollup不交出这段数据,那么拿不到原始数据就无法证明这个交易是有问题的,所以要解决数据可用性问题就必须确保数据是随时开放且可访问。那么Danksharding是如何解决这些问题的呢?
数据可用性采样
Danksharding提出了一个方案—数据可用性采样来实现降低节点负担的同时也保证了数据可用性。
数据可用性采样的思想是将Blob中的数据切割成数据碎片,并且让节点由下载Blob数据转变为随机抽查Blob数据碎片,让Blob的数据碎片分散在以太坊的每个节点中,但是完整的Blob数据却保存在整个以太坊账本中,前提是节点需要足够多且去中心化。
举个例子:比如Blob的数据被切割成了10个碎片,全网有100个节点,每个节点都会随机抽查下载一个数据碎片并且将抽查的碎片编号提交到区块中,只要一个区块中可以凑齐所有编号的碎片,那么以太坊就会默认这个Blob的数据是可用的,只要将碎片拼凑起来就可以还原出原始数据。但也会有极低的概率出现100个节点都没有抽到某一个编号的碎片的情况,这样数据就会缺失,在一定程度上降低了安全性,但在概率上是可以接受的。
Danksharding为了实现数据可用性采样采用了两个技术:纠删码和KZG多项式承诺
纠删码
纠删码是一种编码容错技术,使用纠删码切割数据可以使得所有以太坊节点在只拥有50%以上数据碎片的情况下就可以还原出原始数据,这样就大大减少了数据缺失的概率,具体的实现原理会比较复杂,这里用一个数学公式来举例子大概解释一下原理:
→首先构造一个函数f(x)=ax+b,随便取4个x值
→设m=f(0)=b、n=f(1)=a+b,可以得出a=n–b、b=m
→再设p=f(2)、q=f(3),可以得出?p=2a+b=2n–m,q=3a+b=3n–2m
→然后m、n、p、q四个碎片分散在全网的节点中
→根据数学公式,我们只需要找到其中两个碎片就可以算出另外两个碎片是什么
→如果找到n和m,直接可以算出q=3n-2m和p=2n-m
→如果找到q和p,可以将-得出2p-q=n然后就可以直接算出m了
简单来说就是纠删码利用数学原理将Blob数据切割成很多个数据碎片,以太坊的节点不需要收集所有的数据碎片,只需要收集50%以上的碎片就可以还原出Blob的原始数据,这样极大的降低了碎片收集不够的概率,其概率可以忽略不计。
KZG多项式承诺
KZG多项式承诺是一种密码学技术,用来解决纠删码的数据完整性问题。由于节点只抽查被纠删码进行切割后的数据碎片,节点并不知道这个数据碎片是不是真的来源于Blob的原始数据,所以负责编码的角色还需要生成一个KZG多项式承诺来证明这个纠删码的数据碎片确实是原始数据中的一部分,KZG的作用有点类似于默克尔树但形状不同,KZG所有的证明都在同一个多项式上。
Danksharding通过纠删码和KZG多项式承诺实现了数据可用性采样使得在Blob额外携带数据量扩充至16MB~32MB的情况下大幅的降低了节点的负担,目前以太坊社区还提出了一种叫2DKZGscheme的方案去进一步切割数据碎片降低带宽和计算量的要求,但最终具体使用的算法社区仍在热烈讨论中,包括DAS的设计上也在不断地优化完善。
对于以太坊来说数据可用性采样解决了实现Blob数据量16MB~32MB扩容的同时降低了节点的负担,但似乎还存在一个问题:谁来对原始数据进行编码?
如果要对Blob原始数据进行编码的话前提是进行编码的节点手里必须有完整的原始数据,要做到这一点的话就会对节点有较高的要求。那么菠菜之前提到,Danksharding提出了一个新的机制**出块者-打包者分离**去解决MEV带来的问题,那么其实这个方案在解决MEV问题的同时,其实也解决了编码的问题。
提议者-打包者分离
首先我们知道数据可用性采样降低了节点验证Blob的负担,实现了低配置和去中心化的验证,但创建这个区块的话就需要去拥有完整的Blob数据并进行编码处理,这提高了许多对以太坊全节点的要求,提议者-打包者分离则提出将节点分为打包者和提议者两个角色,性能高的节点可以成为打包者,而性能低的节点则成为提议者。
目前以太坊的节点分为两种:全节点和轻节点。全节点需要同步以太坊上所有的数据比如交易列表和区块Body等,全节点担任着区块打包和验证出块两个角色。由于全节点可以看见区块内所有的信息,所以全节点可以对区块的交易进行重新顺序或添加删除来获取MEV价值。轻节点则不需要同步所有的数据,只需要同步区块头负责验证出块即可。
在实现提议者-打包者分离之后:
→性能配置高的节点可以成为打包者,打包者只需要负责下载Blob数据进行编码并创建区块,然后广播给其他的节点来进行抽查,对于打包者来说,因为同步数据量和带宽要求较高,所以会相对中心化。
→性能配置较低的节点可以成为提议者,提议者只需要验证数据的有效性并创建和广播区块头,但对于提议者来说,同步数据量和带宽要求较低,所以会去中心化。
PBS通过将打包和验证的角色进行分离实现了节点的工作分工,让性能配置高的节点负责下载全部数据进行编码分发,让性能配置低的节点来负责抽查验证,那么MEV问题是如何解决的呢?
抗审查清单
由于PBS分离了打包和验证的工作,所以对于打包者来说其实是拥有了更大的审查交易的能力,打包者可以故意忽略掉某些交易并且随意排序并插入自己想插入的交易去获取MEV,但抗审查清单解决了这些问题。
抗审查清单的机制:
→在打包者打包区块交易之前,提议者会先公布一个抗审查清单,这个crList中包含着mempool中的所有交易
→打包者只能选择打包并对crList里的交易进行排序,这意味着打包者不能插入自己的私有交易去获取MEV,也不能去故意拒绝某个交易
→打包者打包好之后将最终版本的交易列表Hash广播给提议者,提议者选择其中一个交易列表生成区块头并广播
→节点同步数据时会从提议者那获取区块头,然后从打包者那获取区块Body,确保区块Body是最终选择的版本
通过抗审查清单解决了像「三明治攻击」这种MEV带来的负面影响,节点无法再通过插入私有交易来获取类似的MEV。
以太坊关于PBS具体的实现方案仍在探讨中,目前可能初步实现的方案为双槽PBS。
双槽PBS
双槽PBS采用竞标的模式来决定出块:
1、打包者拿到crList后创建交易列表的区块头并出价
2、提议者选择最终竞标成功的区块头和打包者,提议者无条件获得中标费
3、验证委员会确认中标的区块头
4、打包者披露中标的区块Body
5、验证委员会确认中标的区块Body并进行验证投票
虽然打包者仍然可以通过调整交易顺序来获取MEV,但双槽PBS的竞标机制使得这些打包者之间开始“内卷”。在大家都要出价竞争出块的情况下,中心化的打包者们通过MEV获取的利润就会被不断挤压,最终的利润则会分配给去中心化的提议者们,这解决了中心化的打包者通过获取MEV越来越中心化的问题。
但双槽PBS有一个设计缺陷:我们看这个设计的名字中有“双槽”,就是有两个插槽slot,这意味着在这个方案中进行一次有效的出块时间被延长至了24秒,如何解决这个问题以太坊社区也一直在热烈讨论中。
总结
Danksharding为以太坊解决“区块链不可能三角”提供了一种变革性的解决方案,即在确保以太坊去中心化和安全性的同时实现可扩展性:
→通过前置方案EIP-4844:Proto-Danksharding引入了新的交易类型Blob,Blob携带的1MB~2MB额外数据量可以帮助以太坊在Rollup上实现更高的TPS和更低的成本
→通过纠删码和KZG多项式承诺实现了数据可用性采样,让节点只需要抽查部分数据碎片即可验证数据的可用性并降低了节点的负担
→通过实现了数据可用性采样,Blob的额外数据量扩充至16MB~32MB,让扩容效果更上一层楼
→通过提议者-打包者分离将验证-打包区块的工作分离为两个节点角色,实现了打包节点偏去中心化、验证节点去中心化
→通过抗审查清单和双槽PBS极大降低了MEV带来的负面影响问题,打包者无法插入私有交易或审查某一笔交易
如果不出意外的话Danksharding的前置方案EIP-4844将会在以太坊上海升级之后的坎昆升级中正式落地,在EIP-4844方案落地实现后最直接的利好便是Layer2中的Rollup以及Rollup上的生态。更高的TPS和更低的成本十分适合链上的高频应用,我们不妨想象可能会诞生出一些“杀手级应用”。
Danksharding实现的中心化出块+去中心化验证+抗审查将会给以太坊带来一轮全新的公链叙事,除了Layer2之外,模块化区块链与Danksharding后的以太坊又会碰撞出什么样的化学反应呢?
菠菜相信Danksharding的落地将会改写整个游戏规则,以太坊将会引领区块链行业走向一个新的时代!
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。