PEPE0.00 -5.47%
SUI4.50 -3.82%
TON5.26 -4.67%
TRX0.24 -1.95%
DOGE0.31 -5.20%
XRP2.21 -4.22%
SOL180.62 -7.73%
BNB655.83 -4.21%
ETH3312.92 -4.84%
BTC96150.49 -1.43%
PEPE0.00 -5.47%
SUI4.50 -3.82%
TON5.26 -4.67%
TRX0.24 -1.95%
DOGE0.31 -5.20%
XRP2.21 -4.22%
SOL180.62 -7.73%
BNB655.83 -4.21%
ETH3312.92 -4.84%
BTC96150.49 -1.43%
ETH Gas5.35 Gwei
贪婪 73
撰文:Haotian
市场出现了「并行 EVM」的新叙事,于 layer2 就非常有意思了,可实现一种「精细化」Rollup 新范式,夸张点可达成 Solana 成为以太坊新 layer2 的魔改效果。
在我看来,并行 EVM 只是 Rollup 高度「模块化」的显学,是 DA 被第三方侵袭之后,VM 执行层的再度沦陷,未来 layer2 会被重新定义。Why?接下来,以科普视角分析下:
理解这个话题,得先厘清「EVM」的单线程执行模型。
该模型规定了交易必须按顺序一个接一个地被处理和确认,这直接影响了交易处理速度、出块时间、以及交易吞吐量等,是以太坊主网 Gas 高且拥堵的主要原因。而且,之所以设计成单线程,有一定历史局限性存在。
由于以太坊上的交易由分布的独立节点验证和执行完成,且要保证所有地址的数据,比如余额、智能合约代码等保持不同节点间的状态一致,与此同时还得保证不会有同一资产双重支付的可能性出现。
这就使得交易得按顺序排队处理。如果出现并行交易,就可能导致节点之间的数据同步出错,关键是还会出现严重的双花交易。
通俗解释:银行只有一个服务窗口,客户取款要按顺序排队,无论是存款取款以及贷款等业务,一个客户完成业务后才能开始下一个,优点是,银行的账户系统的每项操作都会精准记录,但客户排队时间会比较长;
若银行开放多个服务窗口,客户可选择窗口办理不同业务,就会出现有两个窗口同时尝试从一个账户中扣款,若窗口间账户系统对账不及时 就会导致双花,显然这样做明显提升了效率,但复杂的记账逻辑会对账务系统带来压力。
在 layer1 独立链场景下,如果链底层支持并行处理问题就迎刃而解了,Solana 由于计算和存储状态分离,因此其 VM 在收到用户的多笔交易后,节点会对这些交易进行排序,然后调用独立的存储系统状态数据检测这些交易是否存在状态冲突,若无冲突就将交易打包到一个区块中,若冲突则将冲突的交易排除到本次区块外。
相较之下,以太坊的存储状态是实时计算出来的,每个交易必须等待前一笔交易完成才能更新状态,故而就无法做到在等待打包前的交易筛选工作,限制了其并行处理的可能性。
在 layer2 Rollup 链场景下,要实现并行处理,远离也类似。你可以把 Solana 在等待 POH 时间戳的交易计算和存储状态检测视为 Rollup 链在 Sequener 处理交易然后向主网 Batch 的过程。
现在 layer2 在 Batch 交易前 Sequener 会先按时间顺序给交易排 nonce,然后按顺序 Batch 到主网,如何才能做到多线程呢?
1)可基于 AA 账户抽象模型,从账户状态上实现了可以同时发起多笔交易,比如,若同时执行两笔 Transfer,AA 智能合约会赋予其 nonce,需要按顺序执行,若一笔是 Transfer,一笔是 Approve 则就可以不受 nonce 限制更灵活的并行处理。在 AA 账户模型中,每个账户可以自定义交易处理逻辑,进而配合 nonce 实现高并发。
2)可对 Sequencer 中的交易进行「精细化」的加工处理,比如当 layer2 的交易被提交到 Sequencer 中,Sequencer 可以快速的检测这些交易逻辑,并进行精细化排序和筛查工作,比如若同一账户发起了两笔 Transfer,就要把后一笔排除在外,等待下一次 Batch,若同一账户发起两笔性质不同的操作,就可以同时 Batch 到一个区块中。
听上去很简单?但事实情况绝非如此,仅以 DeFi 场景为例,Sequencer 要实现交易的精细化管理,存在两大挑战:
1)要实时解析交易数据,了解传入数据的智能合约调用方法及参数,以 DeFi 常见的 Staking 为例,一次 Staking 操作,涉及代币转移、状态更新、质押期限、以及潜在奖励计算等。若同时有大量用户传入一些质押交易,若其中还参杂质押后再 Transfer 的交易,再加上复杂的 Oralce 价格因素等等,若 Sequener 无法解析处理到位,一步出现错误都可能导致严重事故。
2)Sequencer 得确保去中心化,当前 layer2 Sequener 只是 Batch 交易的前提下,权利都已经过大了,若 Sequencer 去中心化问题解决不了,再来做「精细化」Rollup,等于又赋予 Sequencer 更多的权限。若 Sequencer 在中作恶塞假交易,明目张胆搞 MEV 夹子,甚至恶意操控 Oracle 清算等等都会滋生。
最近,Metis 受追捧,表面上看只是 Sequencer 实现了去中心化,深层次看则是为未来 Sequencer 做精细化 Rollup 构建了基本的共识前提。
当然,靠 Sequencer 做到高度精细化的 Rollup 交易汇聚和处理,目前还只是一种设想,好在,AA 账户抽象,区块链整体的模块化组合开放思想给这一设想落到实处提供了先决条件。
以上。
况且正如前文所言,现在 layer2 整体日趋模块化,在 OP Stack 的框架上嵌入 ZK 技术来实现隐私扩展;把原先的以太坊 DA 转化成 Celestia 这类第三方 DA 来降低成本;逐渐把 ETH 作为 Gas 费的传统也变革掉了,给予 layer2 代币更大的实用性赋能;甚至,layer2 完全也可以 Batch 好交易后提交给不同的 VM 执行环境,交易分到 Solana 和以太坊上处理等等。
到时候,一个全新的的范式出现了,现在的 layer2 不再单单是以太坊的 layer2,Solana 也可以做以太坊的 layer2,甚至 layer2 的定义也会被魔改。
大胆设想,现在 layer2 变成了一个集成高并发交易处理能力的入口级「layer1」,而以太坊、Solana 这些曾经的 layer1 变成一个做资产结算和安全性保障的新「layer2」。
layer2 从来都不是一个死板的概念,layer2 平台们要解决交易大规模并发处理,吸引增量用户市场群体的使命一直存在。
若使命达成,在模块化思想下,不仅以太坊 layer1 的正统性会被打破,整个全链的 DA 数据可用性、VM 执行层甚至 interoperability 通信交互都会成为 layer2 们实现 Mass Adoption 的 infra。
届时,layer2 不再只是 layer1 的补充,而成为一个功能强大的综合型交易汇聚和分发处理平台,试问,谁才是谁的 layer2?
欢迎加入深潮TechFlow官方社群
2024.12.20
2024.12.20
2024.12.18
2024.12.16