1.以太坊升级路线图 M2SVPS
The Merge
在 The Merge 阶段,POW 共识机制将过度 POS,信标链将合并在一起。以太坊结构简化为下图,以便于理解:
在这里,我们首先定义什么是分片:简单的理解是水平分割数据库以分散负载的过程
在转为 POS 之后:区块提议者与区块验证者分离,POS 工作流程如下(按上图理解):
在 Rollup 上提交交易
验证人将交易添加到分区块中
信标链选择验证者提出新的块
其他验证人组成随机委员会,验证分片上的建议
需要提出区块和证明建议 slot 内部完成,一般是 12s。每 32 个 slot 组成一个 epoch 周期,每个 epoch 对打乱验证者进行排序,重新选举委员会。
合并后,以太坊将实现共识层建议者-构造者分离(PBS)。Vitalik 认为所有区块链的最终结果都将是集中的区块生产和分散的区块验证。由于以太坊块数据非常密集,因此有必要对数据可用性提出较高的要求。同时,必须有一个方案来维护分散的验证集,它可以验证块并执行数据可用性采样。
矿工和区块验证分离。矿工构建块,然后将块提交给验证人。投标验证人选择自己的块,然后投票确定块是否有效。
分区是一种分区方式,可以分区 P2P 分散在网络中的计算任务和存储工作负载。通过这种处理,每个节点不需要负责处理整个网络的交易负载,只需要维护与其分区(或分区)相关的信息。每个分区都有自己的验证网络或节点网络。
分片安全问题:比如整个网络都有 10 要破坏整个网络,需要条分片链 51% 计算能力,所以只需要破坏单个分片 5.1% 的算力。因此,后续的改进包括一个 SSF 该算法能有效防止 51% 计算攻击。根据vitalik的总结,转向 SSF 这是一个多年的路线图。即使目前做了很多工作,也将是以太坊较晚实施的重大变化之一,远离以太坊 PoS 证明机制、分片和 Verkle 树完全推出后。
信标链负责生成随机数,将节点分配到分片,捕捉单个分片的快照等功能,完成分片间的通信,协调网络的同步。
信标链的执行步骤如下:
区块生产者一起承诺区块头和出价。
信标链上的区块人(验证人)选择获胜的区块头和投标,无论区块包装人是否最终生成区块,都将无条件获得中标费。
Committee(验证人随机选择)投票确认获得的区块头。
区块包装者披露区块体。
The Surge
该路线的主要目标是推动 Rollup 以扩容为中心。 Surge 这意味着增加了以太坊分片,这是一种扩容解决方案。以太坊基金会声称,该解决方案将进一步启用 gas 费用的二层区块链,减少 rollup 或捆绑交易成本,使用户更容易操作节点来保护以太坊网络。
通过以下简图仍然可以理解这张图:
以 zkrollup 以运行原理为例:在 zkrollup 分为排序器(sequencer)和聚合器(aggregator),排序器负责对用户的交易进行排序,并将其分批打包(batch),发送给聚合器。聚合器执行交易,以前的状态是根(prev state root),生成后的状态根(post state root),然后生成证书(proof),最后,聚合器发送前状态根、后状态根和交易数据 L1 合同负责验证上述合同是否有效,并存储交易数据 calldata 内。Zkrollup 数据可用性允许任何人根据链上存储的交易数据恢复账户的整体状态。
但是使用 calldata 成本非常昂贵,所以整个EIP-4844 协议(可能随时更改)提议将交易区块的大小改为 1~2MB,为未来 rollup 为数据分片打下坚实的基础。目前以太坊的区块大小约是 60KB ~100KB,以 EIP-4844 例如,大概可以提高 10~34x 块尺寸极限。块格式被称为 blob(也可称为数据分片 data shard)。
The Scourge
该阶段 Scourge 补充路线图,主要用于解决 MEV 问题。什么是 MEV?
MEV 全名 Miner Extractable Value / Maximal Extractable Value,这一概念首先应用于工作量证明的背景下,最初被称为“矿工可提取价值”(Miner Extractable Value)”。 这是因为在工作量证明中,矿工掌握了包括、排除和顺序交易的角色能力。 然而,在合并过渡为权益证明后,验证人将对这些角色负责,而采矿将不再适用(这里介绍的价值提取方法将在过渡后保留,因此名称需要更改)。为了继续使用相同的首字母缩写,以确保连续性,并保持相同的基本含义,现在使用“最大可提取价值”(Maximal Extractable Value)作为一种更具包容性的替代词。
套利包括:
通过压缩存储空间获得 gas 成本价差;
裁判抢跑:广泛搜索 mempool 在上述交易中,机器在当地进行计算,看看它是否有利可图。如果有,用自己的地址发起同样的交易,用更高的 gas 费;
寻找清算目标:机器人竞争以最快的速度分析区块链数据,以确定哪些借款人可以清算,然后成为第一个提交清算交易并自行收取清算费的人。
三明治交易:搜索者监控内存池 DEX 大交易。 例如,有人想在那里 Uniswap 上使用 DAI 购买 10,000 UNI。 这种大规模的交易会是对的 UNI / DAI 可能会显著改善对重大影响的影响 UNI 相对于 DAI 的价格。搜索人可以计算大额交易 UNI / DAI 对一般价格的影响,并在大交易前立即执行最优付款,低价买入 UNI,然后在大额交易后立即执行销售订单,以更高的价格出售大额订单。
MEV 的缺陷:
某些形式的 MEV,例如,三明治交易会导致用户体验明显恶化。 夹在中间的用户面临更高的滑点和更差的交易执行。在网络层面,一般的跑步者和他们经常参与的矿工成本拍卖(当两个或两个以上的先锋逐渐增加他们交易的矿工成本时,他们的交易被打包到下一个区块),导致其他人的高矿工成本,网络拥堵,试图正常交易。除区块内发生的事情外,MEV 也可能对区块间产生有害影响。 如果一个区块可以使用 MEV 大大超过了标准区块的奖励,矿工可能会被激励重新开采区块并为自己捕获 MEV,然后导致区块链重组和共识的不稳定。
大部分 MEV 它是由独立网络参与者提取的,被称为“搜索者”。 搜索者在区块链数据上运行复杂的算法来检测利润 MEV 有机会,机器人会自动向网络提交这些利润交易。以太坊 MEV 问题是使用机器人进行网络交易,导致拥塞和高成本。
The Verge
Verge 将实现“Verkle 树(一种数学证明)和“无状态客户端”。在不存储大量数据的情况下,这些技术升级将允许用户成为网络验证者。这也是围绕 rollup 上面提到的扩容步骤之一 zk rollup 聚合器提交了简单工作原理的证明,layer 1 上述验证合同只需验证 blob 内的 KZG 承诺和生成的证明。这里简单介绍一下 KZG 承诺是确保所有交易都包括在内。因为 rollup 如果使用,可以提交部分交易并生成证书 KZG,所以所有的交易都将被保证包含在生成证书中。
The Verge 只需下载即可确保验证非常简单 N 实施基本计算可以验证个字节数据 rollup 提交的证明。
值得一提的是,ZK rollup 有很多方案,stark、snark 或者 bulletproof 等。每个方案都有不同的证明和验证方法,所以有权衡。SNARKs 目前比 STARKs 技术更容易上手,技术也更完善,所以很多项目一开始都是用的 SNARKs,但是随着 STARKs 经过技术迭代,最终会逐渐转向抗量子攻击 STARKs。尽管以太坊是为了和 rollup 适配,EIP-4844 主要改进之一是交易格式 blob,扩大了块容量,但所有零知识证明的主要瓶颈仍然是其自身的证明算法。一方面,通过改进算法来解决证明问题,另一方面,通过堆叠硬件来提高证明效率,从而衍生出ZK采矿轨道。如果你感兴趣,可以转到这篇文章。
The Purge
The Purge 存储在硬盘驱动器上的将减少 ETH 在没有节点存储历史的情况下,试图简化以太坊协议所需的空间量。这可以大大提高网络的带宽。
EIP-4444:
客户端必须停止 P2P 提供一年以上的历史标头、文本和 recipient。客户端可以在当地修剪这些历史数据。保存以太坊的历史是基础。我相信有各种各样的方法来实现这一点。历史数据可以通过 torrent 磁力链接或 IPFS 等待网络包装和共享。此外,Portal Network 或 The Graph 该系统可用于获取历史数据。客户端应允许导入和导出历史数据。客户端可以提供获取 / 验证数据并自动导入脚本。
The Splurge
该路线主要是一些零碎的优化和修复,如账户抽象、EVM 优化和随机数方案 VDF 等。
这里提到的账户抽象(Account Abstraction,AA)一直都是 ZK 系 Layer 2 首先要实现的目标是什么?账户抽象是什么?实现账户抽象后,智能合同账户也可以在不依赖“元交易”机制的情况下主动发起交易(这是 EIP-4844 内部提出)。
在以太坊,该账户分为合同账户和外部账户。目前,以太坊只有一种事务类型,必须由外部地址发起,合同地址不能主动发起。因此,合同本身状态的任何变化都必须依赖于由外部地址发起的事务,无论是多个签名账户、混合硬币,还是由至少一个外部账户触发的任何智能合同配置变更。
无论使用以太坊的应用程序是什么,用户都必须持有以太坊(并承担以太坊价格波动的风险)。其次,用户需要处理复杂的成本逻辑,gas price,gas limit,这些概念对用户来说太复杂了。许多区块链钱包或应用程序试图通过产品优化来改善用户体验,但效果很小。
以账户为中心的解决方案的目标是为用户创建一个基于智能合同管理的账户。抽象账户的好处是:
现在的合同可以持有 ETH,直接提交包含所有签名的事务,用户不一定需要支付交易费用 gas 成本完全取决于项目。
由于自定义密码学的实现,未来不会强制使用 ESCDA 椭圆曲线签名,指纹识别、面部识别、生物识别等技术可作为未来手机的签名方式。
因此,用户与以太坊的互动体验得到了显著改善。
二、以太坊模块化
目前以太坊已经出现了模块化的趋势,执行层是由 Layer 2 负责(如arbitrumm)、zksync、starknet、polygon zkevm 等)。他们负责执行 L2 交易用户,并提交证明。Layer 2 一般用的是 OP 技术 / ZK 技术,ZK 理论上,技术 TPS 是远高于 OP 是的,目前有大量的生态系统 OP 系,但未来,随之而来 ZK 随着技术的完善,将会有越来越多的应用迁移到 ZK 系。这部分是对路线图的详细描述和补充。
目前,以太坊只剥离了执行层。事实上,其他层次仍然混淆。在celestia的愿景中,执行层只做两件事:对于单笔交易,执行交易并发生状态变化;对于同一批次的交易,计算该批次的状态根源。目前,以太坊执行层的一部分工作已分配 Rollup ,也就是我们所熟知的 StarkNet 、zkSync 、Arbitrum 和 Optimism 。
现在无论是 optimism、polygon、starknet、zksync 探索模块化的道路。
Optimism 提出了 bedrock / op stack,polygon 也在研发 polygon avail 作为数据可用性层,supernets 用于简化链的创建和共享验证集。
结算层:可以理解为主链 Rollup 合同验证了上述前状态根、后状态根和证明的有效性(zkRollup)或欺诈证明(Optimistic Rollup)的过程。
共识层:无论采用 PoW 、PoS 或者其他共识算法,简而言之,共识层是在分布式系统中达成共识,即状态转换的有效性(计算后状态根)。在模块化的背景下,结算层和共识层的含义有些相似,因此一些研究人员统一了结算层和共识层。
数据可用性层:确保交易数据完全上传到数据可用性层,验证节点可以通过该层数据复制所有状态变化。
这里需要区分的是数据可用性和数据存储的区别:
数据的可用性与数据存储明显不同。前者关注最新块发布的数据是否可用,而后者涉及数据的安全存储,并确保在必要时访问。
1、各种结算层 Rollup
从结算层来看,目前认为 rollup 的焦点在 ZK 系。如果通过 ZK 系的 rollup 来改进 ZK 证明系统的大小,gas 消耗、成本,结合递归和并行处理,可以大大扩大 TPS。那我们先走吧 ZK rollup 开始。
随着以太坊扩容道路的发展,零知识证明(Zero Knowledge Proof,ZKP)技术被 Vitalik 它被认为是扩容战争的终结。
ZKP 本质是让某人证明他们知道或拥有一些东西。例如,我可以证明我有开门的钥匙,而不用拿出钥匙。该技术对个人隐私、加密、企业甚至核裁军都有影响,以证明知道某个账户的密码,而不需要输入密码并冒着暴露的风险。通过修改版本的姚百万富翁问题来加深理解:这个问题讨论了两位百万富翁爱丽丝和鲍勃,他们想知道哪一个更富有,而不透露实际财富。
假设公寓的月租金是 1000 如果美元符合出租人的标准,至少要支付一个月的租金 40 倍。所以我们(租客)需要证明我们的年收入是必要的 4 1万美元以上。但业主不希望我们找到漏洞,所以他选择不公布具体的租金。他的目的是测试我们是否符合标准,答案只是一致或不一致,而不是对具体金额负责。
现在有十个盒子 1 一万美元是增量,标记为 10~100k 美元。每个人都有一把钥匙和一个插槽。房主拿着盒子走进房间,毁了它。 9 拿走标有的钥匙 40k 美元盒的钥匙。
租客年薪达到 7.5 1万美元,银行代理人监督资产证明文件的出具,未注明具体资金。本文件的本质是银行的资产声明可以验证索赔文件。然后我们将该文件投资于此 10k~70k 在盒子里。然后房主用它。 40k 钥匙打开盒子,看到里面的可验证索赔文件时,租户将被判定符合标准。
涉及的点包括声明人(银行)出具资产标准证书,验证人(业主)通过钥匙验证租户是否合格。同样,验证结果只有两种选择 —— 具有资格和不合格的,不会也不能要求租户的具体资产金额。
我们仍然可以用下图来理解交易 layer 2 执行,分片提交交易。layer 2 一般采用 rollup 形式,也就是在 layer 2 将多笔交易打包成批处理事务,然后提交给 layer 1 的 rollup 智能合约。包括新旧状态根,layer 1 上述合同将验证两个状态根是否匹配。如果匹配,主链上的旧状态根将被新状态根取代。那么如何验证批处理后获得的状态根是正确的呢? optimistic rollup 和 zk rollup。使用欺诈证明和zk技术进行交易确认和状态根验证。
这里的 layer 2(rollup)相当于上面例子中的声明人(银行),其包装操作就是这个声明操作,不会声明具体金额,而是确认是否符合标准。包装后提交 layer 1 是这份可索赔的声明文件。验证新旧状态的根源是业主通过钥匙验证预期租户的经济实力是否符合标准。状态根验证问题是银行提交的声明,如何声明使问题可信。
基于 optimistic 也就是说,欺诈证明 rollup 说,主链 Rollup 合同记录了这一点 Rollup 内部状态根变化的完整记录,以及每批(触发状态根变化)处理的哈希值。如果有人发现某一批处理对应的新状态根是错误的,他们可以在主链上发布证明该批处理产生的新状态根是错误的。合同验证证明,如果验证通过,所有批处理交易将在批处理后全部回滚。
这里的验证方法相当于声明人(银行)提交验证资产声明文件,然后将所有资产文件公开到链,数据也应公开到链,其他挑战者根据原始数据计算验证资产文件是错误还是伪造,如果有问题,挑战,挑战成功向银行索赔。这里最重要的问题是预留时间为挑战者收集数据,验证文件的真实性。
使用零知识证书(Zero Knowledge Proof,ZKP)技术的 Rollup 就每一批处理而言,它包含一个名称 ZK-SNARK 密码学证明。银行通过密码学证明技术生成资产声明文件。这样就不需要为挑战者预留时间,所以就没有挑战者这个角色了。
2、现在 ZK 系 Rollup 原因不如预期
目前 polygon 系的 hermez 已经发布,zksync dev 主网、starknet 主网也上线了。但他们的交易速度在理论上似乎与我们相差太大,尤其是 starknet 用户可以清楚地感知到,其主网速度慢得令人惊讶。原因是零知识证明技术生成证明仍然困难,成本仍然很高,以及对以太坊的兼容性和需求 zkevm 平衡性能。Polygon 团队也承认:“团队也承认:“Polygon zkEVM 测试网版本也具有有限的吞吐能力,这意味着它远不是优化和扩展机器的最终形式。”
3、数据可用性层
以太坊抽象执行步骤如下:
我们也可以在以太坊的去中心化过程中 The Merge 在路线图上看到 —— 去中心化验证者。最重要的是实现客户端的多样性,降低机器的进入门槛,增加验证人数。因此,如果一些机器不符合标准的验证人想参与网络,他们可以使用轻客户端。轻节点的操作原理是通过相邻的整个节点索要块头,轻节点只需下载和验证块头。如果不参与轻节点,所有交易都需要整个节点进行验证,因此整个节点需要下载和验证块中的每个交易。同时,随着交易量的增加,整个节点的压力越来越大,因此节点网络逐渐倾向于高性能和集中。
但这里的问题是,恶意的整个节点可能会缺失 / 无效块,但轻节点不能伪造,有两种方法,一开始是使用欺诈证书,需要一个可靠的整个节点来监控块的有效性,在发现无效块后构建欺诈证书,一段时间内未收到欺诈证书判定为有效块。但这里显然需要一个可信的全节点,即可信设置或诚实假设。但是,如果区块生产者可以隐藏部分交易,欺诈证明显无效,因为诚实的节点也依赖于区块生产者的数据。如果数据本身被隐藏,可信节点认为提交的数据是所有数据,因此自然不会生成欺诈证明。
Mustarfa AI-Bassam 和 Vitalik 在合并论文中提出了新的解决方案 —— 纠删码。解决数据可用性问题,如纠删码 celestia,polygon avail 均采用的是 reed-solomon 纠删码。但是如何确保传输的数据是完整的数据呢? KZG 承诺 / 欺诈证明就够了。
在 KZG 承诺 / 在欺诈证书中,可以确保块生产者发布完整的数据,不隐藏交易,然后通过纠正和删除代码编码数据,然后通过数据可用性采样,使轻节点能够正确验证数据。
Rollup 内聚合器提交的数据都是基于 calldata 因为形式存储在链上,这是因为 calldata 与其它存储区相比,数据更便宜。
Calldata cost in gas = Transaction size × 16 gas per byte
每笔交易的主要费用是 calldata 由于存储在链上的成本极其昂贵,这部分占了成本 rollup 成本的 80%~95% 之多。
因为这个问题,我们提出了 EIP-4844 新的交易格式 blob,扩大块容量,减少链上提交所需的 gas 费。
4、链上和链下的数据可用性层
那么如何解决链上数据昂贵的问题呢?有以下方法:
首先是压缩上传到 L1 的 calldata 数据大小在这方面有很多优化。
二是通过以太坊降低在链上存储数据的成本 proto-danksharding 和 danksharding 来为 rollup 通过纠删码和提供更大的数据可用性空间,提供“大块” KZG 承诺解决轻节点问题。例如 EIP-4844。
三是将数据可用性放在链下,这部分的一般方案包括,celestia / polygon avail 等。
我们将数据可用性存储的位置分为下图:
Validium 解决方案:如果将数据可用性放在链下,这些交易数据将由集中运营商维护。用户需要可靠的设置,但成本会很低,但几乎没有安全性。之后 starkex 和 arbitrum nova 都提出成立 DAC 负责存储交易数据。DAC 成员是法律管辖范围内知名的个人或组织,信任假设他们不会串通和作恶。
Zkporter 提出 guardians(zksync token 持有人)对数据可用性进行质押和维护。如果数据可用性出现故障,质押资金将被没收。Volition 用户自己选择链上 / 根据需要在安全和成本之间选择链下数据的可用性。
这时候,celestia 和 polygon avail 就出现了。如果 validium 需要链下数据的可用性,害怕分散程度低,导致类似性跨链桥的私钥攻击,所以分散的通用 DA 这个问题可以通过计划来解决。Celestia 和 polygon avail 通过成为一个单独的链来实现 validium 提供链下 DA 解决方案。但是通过单独的链条,虽然安全性有所提高,但成本也会相应增加。
Rollup 扩展实际上有两部分,一部分是聚合器执行速度,另一方面需要数据可用层,聚合器是集中服务器运行,假设交易执行速度可以达到无限的程度,那么主要的扩展困境是受底层数据可用性解决方案数据吞吐量的影响。如果 rollup 为了最大化其交易吞吐量,如何最大化数据可用性解决方案的数据空间吞吐量至关重要。
回到开头,使用 KZG 承诺或欺诈证明确保数据的完整性,通过修改和删除代码扩展交易数据,帮助轻节点采样数据可用性,进一步确保轻节点能够正确验证数据。
也许你也想问,到底 KZG 承诺是如何运行以确保其数据的完整性的?也许你可以回答一点:
KZG 承诺:证明多项式在特定位置的值与指定值一致。
KZG 承诺无非是多项承诺之一,可以在不给出具体信息的情况下验证信息。一般流程如下:
将数据通过纠删码化为多项式来扩展。使用 KZG 承诺确保我们的扩展是有效的,原始数据是有效的。然后可以使用扩展 reconstruct 数据,最后采样数据可用性。
提交者(commiter)生成承诺(commitment),将其与消息绑定。
将绑定消息传递给验证人,这里 communication 方案与证明规模有关(proof size)的大小。
验证者(verifier),带入有限域的多值验证是否仍等于a(这是可用性采样过程),基本原理是验证次数越多,正确概率越高。
Celestia 要求验证人下载整个块,现在 danksharding 采用数据可用性采样技术。
由于部分块是可用的,我们需要在任何时候重建块时确保同步。当块确实可用时,节点之间的通信将块拼凑在一起。
KZG 比较承诺和数据欺诈证明:
可以看到 KZG 承诺确保扩展和数据正确,并引入第三方观察欺诈证书。最明显的区别是,欺诈证书需要一个时间间隔来响应观察者,然后报告欺诈。此时,需要满足节点的直接同步,以便整个网络能够及时收到欺诈证书。KZG 它显然比欺诈证明更快,它使用数学方法来确保数据的正确性,而不需要等待时间。
它可以证明数据及其扩展是正确的。但由于一维 KZG 承诺需要更多的资源,所以以以太坊选择二维 KZG 承诺。
比如 100 行 × 100 列,那就是 100,00 个份额(shares)。但每次采样都不是万分之一的保证。扩展四倍意味着至少在整个份额中 1/4 只有当份额不可用时,你才能获得不可用的份额, 这意味着它真的不可用,因为它无法恢复。只有在 1/4 如果不可用,就无法恢复,这才是真正有效发现错误的方法。因此,抽一次的概率可能是 1/4。十几次,十五次,可以达到 99% 保证可靠性。现在在 15–20 在二次范围内做出选择。
5、EIP-4844(Proto-Danksharding)
在 proto-danksharding 在实现过程中,所有验证者和用户仍然必须直接验证完整数据的可用性。
Proto-danksharding 介绍的主要特征是新的交易类型,我们称之为携带 blob 的交易。携带 blob 事务类似于常规事务,不同之处在于它还携带一个叫blob的额外数据。Blob 非常大(~125 kB),而且比类似数量的调用数据便宜很多。但是,这些 blob 无法从 EVM 访问(只有对 blob 的承诺)。而blob 由共识层(信标链)而不是执行层存储。这实际上是数据分片概念逐渐形成的开始。
因为验证人和客户端仍然需要下载完整的内容 blob 内容,所以 proto-danksharding 每个插槽的数据带宽目标是每个插槽 1 MB,而非完整 16 MB。然而,由于这些数据没有与现有的以太坊交易, gas 利用竞争,所以仍然有很大的可扩展性收入。
虽然实现全分片(使用数据可用性采样等)是一项复杂的任务,但在 proto-danksharding 这仍然是一项复杂的任务,但它包含在共识层中。一旦 proto-danksharding 推出,执行层客户端团队,rollup 开发人员和用户不需要做进一步的工作来完成向全分片的过渡。Proto-danksharding 还将 blob 数据与 calldata 分离使客户端更容易在更短的时间内存储 blob 数据。
值得注意的是,所有的工作都是由共识层改变的,不需要执行客户团队、用户或 Rollup 任何额外的开发人员工作。
EIP-4488 和 proto-danksharding 导致每个插槽(12) 长期最大使用量约为秒) 1 MB。这相当于每年的大约 2.5 TB,今天以太坊所需的增长率远高于以太坊。
在 EIP-4488 在这种情况下,历史记录到期提案EIP-444(路线图部分提到)不再需要客户存储超过一定时间的历史记录。
6、数据分片
在这里,我们将从小白的角度尽可能多地解释以太坊扩张过程中每个人都在讨论的问题。因此,让我们回到片段,再次强调片段的片面概念:简单的理解是水平分割数据库以分散负载的过程。
在这里,我们的数据分片有一个非常重要的问题 PBS 中间(提议者与区块构建者分离,路线图 The Merge 提到),在分片中,每个节点组只处理分片中的交易,交易在分片之间相对独立,所以 AB 两个用户处于不同的片段,如何处理相互转账?这里需要良好的跨片通信能力。
过去的方法是数据可用性层分片,每个分片都有独立的提案者(proposers)和委员会(committee)。在验证人集中,每个验证人轮流验证分片数据,他们下载所有数据进行验证。
缺点是:
需要严格的同步技术来确保验证者之间有一个 slot 内同步。
验证人需要收集所有验证人 committee 这里的投票也会有延迟。
而且验证人完全下载数据的压力也很大。
第二种方法是放弃完全的数据验证,而是采用数据可用性采样(这种方法是 The Surge 后期实现)。这里有两种随机采样方法。1)区块随机采样,部分数据分片采样。如果验证通过,验证人将签字。但这里的问题是,交易可能会被遗漏。2)将数据重新解释为多项式,然后在特定条件下恢复数据的特性,以确保数据的完整性和可用性。
“分片" 关键是验证人不负责下载所有数据,这就是为什么 Proto-danksharding 不被认为是 "分片的" 原因(尽管它的名字里有) "分片 sharding")。Proto-danksharding 要求每个验证人完全下载所有分片 blob 验证它们的可用性;Danksharding 然后引入采样,单个验证人只需下载分片即可 blob 的片段。
三、以太坊的未来 Layer 3
被视为以太坊拓展未来的未来 ZK 系 Layer 2 如 zksync、starknet 一个接一个地提出 Layer 3 概念。简单理解就是概念。 Layer 2 的 Layer 2。
以太坊高昂的交易成本正在推动其(L3)成为 L2 结算层。我相信在不久的将来,由于交易成本的显著降低和正确性 DeFi 工具的支持和支持不断增加 L2 最终用户将增加提供的流动性 L2 大部分活动都是在上面进行的,以太坊逐渐成为结算层。
L2 通过减少每笔交易 gas 提高成本和交易率以提高可扩展性。同时,L2s 它保留了分散化、通用逻辑和组合的好处。然而,一些应用程序需要定制,这可能更好地由一个新的独立层提供:L3!
L3 与 L2 相关,就像 L2 与 L1 相关一样。只要 L2 支持验证者(Verifier )智能合约,L3 有效性证明可以用来实现。当 L2 也使用提交 L1 有效性证明时,就像 StarkNet 这将成为一个非常优雅的递归结构 L2 乘以证明的压缩优势 L3 压缩优势的证明。理论上,如果每一层都实现了,例如 1000 成本降低了一倍,那么 L3 可以比 L1 降低 1,000,000 倍 —— 同时保持 L1 的安全性。这也是 starknet 递归证明的真实用例引以为豪。
这里需要使用部分知识的链上链下的数据可用性层。整个 Layer 3 包括了:
Rollup(链上数据的可用性),validium(链下数据可用性)。两者对应不同的应用需求。对价格和数据敏感 web2 企业可以使用 validium,将数据放在链下,大大降低了链上 gas 成本,不披露用户数据可以实现隐私,使企业能够完成对数据的控制,使用自定义的数据格式。以前的数据商业模式仍然可以运行。
L2 用于扩展,L3 用于隐私等定制功能。
在这种愿景中,没有试图提供“二级可扩展性”;相反,堆栈中有一层可以帮助扩展应用程序,然后根据不同用例的定制功能需求将每层分开。
L2 L3用于通用扩展 用于自定义扩展。
自定义扩展可能有不同的形式:使用除外 EVM 计算其他东西的特殊应用程序的数据压缩优化了特定应用程序的数据格式 rollup(包括将“数据”与“证明”分开,并使用每个块的单个 SNARK 完全替换证书)等。
L2 用于无信任扩展(rollup),L3 用于弱信任扩展(validium)。
Validium 是使用 SNARK 验证计算系统,但将数据可用性留给值得信赖的第三方或委员会。在我看来,Validium 被严重低估:特别是许多“企业区块链”应用程序实际上可能最好运行 validium 证人定期将哈希提交到链的集中服务器,以提供最佳服务。Validium 安全等级低于 rollup,但是可以便宜很多。
对于 dApp 对于开发者来说,基础设施可以有以下选择:
自己开发一个 Rollup(ZK Rollups 或者 Optimistic Rollups)
优点是你可以继承以太坊的生态(用户)和它的安全性,但对于一个 dApp 团队来说,Rollup 开发成本明显过高。
选择 Cosmos、Polkadot 或者是 Avalanche
开发成本会更低(比如 dydx 就选择了 Cosmos),但是你会失去以太坊的生态(用户)和安全。
自己开发一个 Layer 1 区块链
开发成本和难度都很高,但可以拥有最高的控制权。
让我们比较三种情况:
难度/费用:Alt-layer 1 > Rollup > Cosmos
安全性:Rollup > Cosmos > Alt-layer 1
生态/用户:Rollup > Cosmos > Alt-layer 1
控制权:Alt-layer 1 > Cosmos > Rollup
作为一个 dApp 如果开发者想继承以太坊的安全性和流量,他们不能重新开发一条链,他们只能选择 rollup 。但是自己开发一个 layer 2 rollup 而且很贵,那么合适的解决方案就变成了利用 layer 3 SDK 开发自己的应用程序专用 Rollup(application-specific rollup),即 Layer 3。
四、Layer 2 的未来发展
由于以太坊是基于账户模型设计的,所有用户都处于整个状态树中,因此不能平行。因此,以太坊本身的枷锁使其需要剥离执行操作 rollup 多笔交易合成为一笔交易,作为结算层的存在。现在所有的问题都集中在问题上 layer 2 吞吐量增加。不仅仅是用 Layer 3 它还可以增加交易的吞吐量 Layer 2 并行处理也可以大大提高整个网络的吞吐量。
并行化问题 starknet 也在积极探索,虽然目前证明算法仍然是枷锁,但预计未来不会成为阻力。潜在的瓶颈包括:
排序器 tx 处理:似乎有些排序器的工作是自然串行的。
带宽:多排序器之间的互连将受到限制。
L2 状态大小
在 starknet 社区成员还提出了aptos 并行处理方法很好。 Starknet 目前,排序器内部也在推广 tx 并行排序的能力。
五、总结
以太坊正在剥离执行层,所有行为都朝着其“全球”结算层愿景的方向发展。目前,虽然整个以太坊进展缓慢,但由于其整体规模太大,每次更新都涉及到许多利益和权衡。但不可否认的是,以太坊正在经历大量的链条活动、经济机制的改进和以太坊 2.0 可扩展性,其主导的创新 ICO、Defi、NFT 等待很多值得以太坊社区兴奋和期待的事情。我相信,随着越来越多的国家部署以太坊节点,比如阿根廷首都政府计划在那里 2023 以太坊验证节点的年度部署,在不久的将来,以太坊真的可以实现其宏伟愿景。
原文作者:Hakeen,W3.Hitchhiker
原文编辑:Evelyn,W3.Hitchhiker
来源:星球日报
本文的部分内容来自网络,仅供参考。如有侵权行为,请联系删除。