在过去两年里,关于扩展的争论范围逐渐缩小,最后集中在模块化与集成的核心问题上。
。
在考虑模块化与集成时,一个链可以做出的最重要的设计决策就是让应用程序开发人员承担多大的复杂性。区块链的客户是应用程序开发人员,因此设计决策最终应该考虑到他们的需求。
如今,模块化在很大程度上被誉为区块链扩展的主要方式。本文,我将从第一性原理出发质疑该假设,揭示模块化系统的隐性成本,并分享我过去六年来对这一争论的思考和结论。
1、模块化系统增加了开发人员复杂性
到目前为止,模块化系统最大的隐性成本是开发人员面临的复杂性。
模块化系统大大增加了应用程序开发人员必须管理的复杂性,无论是他们自己的应用程序,还是与其他应用程序和状态块的交互。
在加密系统的背景下,我们今天看到的模块化区块链在理论上支持更大的专业化程度,但代价却是产生新的复杂性。这种复杂性——本质上是技术上和社会上的——正在向上传递给应用程序开发人员,最终使开发建设变得更加困难。
例如,拿OPStack来说,它似乎是2023年8月领先的模块化框架。OPStack迫使开发人员选入Lawofchains,或者是独立分叉并管理OPStack。这两种选择都给builder带来了大量的下游复杂性。如果你选择分叉走自己的路线,你是否会从其他生态系统参与者那里获得技术支持?如果你选入LawofChains,你在今天,甚至更重要的是,在明天给自己设置了什么样的规则和约束?
DID信用协议Getaverse发布Getaverse Multichain SBT嘉年华活动:据官方消息,Web3 DID信用协议Getaverse为了让用户体验更多Web3生态,团队现已完成多链部署。现官方发布Getaverse Multichain SBT嘉年华活动,包含zkSync、Optimism和Polygon。持有三个Getaverse特定系列SBT用户将有机会赢得Getaverse IDO白名单。
截至目前,Getaverse DID平台用户数量已突破127,000,平台SBT铸造数量突破98,000,可信验证节点数量突破15,500,各项数据均创新高。[2023/6/9 21:26:38]
Modern操作系统是由数百个子系统组成的大型复杂系统。ModernOSes处理上图中的2-6层。这是集成模块化组件以管理堆栈带给应用程序开发人员复杂性的典型示例。应用程序开发人员不想处理第7层以下的任何东西,这正是OSes存在的原因:OSes管理下面各层的复杂性,这样应用程序开发人员就不必这样做了。因此,模块化本身不应该是目的,而应该是达到目的的一种手段。
当今世界上每一个主要的软件系统——云后端、OSes、数据库引擎、游戏引擎等——都是高度集成的,同时由许多模块化子系统组成。软件系统倾向于长期集成,以最大化性能并最小化开发人员面临的复杂性。区块链也不会有什么不同。
模型,认为数据可用性和执行应该分离;然而,这一观点被广泛误解。对手头问题有正确的优先项理解会导致相反的结论:使用OSI作为类比是集成系统而非模块化系统的论据。)
2、模块化链不能更快地执行代码
根据设计,“模块化链”的通用定义是数据可用性和执行相分离:一组节点执行DA,而另一组执行执行。节点集之间不必有任何重叠,但它们可以重叠。
Multichain降低跨链手续费,跨链总金额突破900亿美元:11月20日,据官方消息,跨链路由协议Multichain降低主流资产USDT、USDC、ETH的跨链手续费。针对跨链至Ethereum的交易,Multichain收取0.1%的手续费,最低手续费从等值$20降至$4.9;针对跨链至币安智能链、Polygon、Avalanche的交易,Multichain仅收取0.01%的手续费,最低手续费从等值$0.9降至$0.19。[2022/11/20 22:10:11]
在实践中,分离DA和执行并不能从本质上提高两者的性能;最终,世界上某个地方的某些硬件必须执行DA,某个地方的某些硬件必须执行执行。分离这些功能不会提高任何一方的性能。然而,分离可以降低计算成本,但只能通过中心化执行来实现。
同样,值得重申的是:无论是模块化还是集成架构,某处的某些硬件必须完成工作,并且将DA和执行推送到单独的硬件上,本质上既不会让系统提速也不会增加系统的整体性能。
一些人认为,模块化允许大量EVM以rollup方式并行运行,从而使执行能够水平扩展。虽然这在理论上是正确的,但这个说法实际上强调了EVM作为单线程处理器而非在扩展总系统吞吐量的情况下解决DA和执行的基本前提。
模块化本身并不能提高吞吐量。
3、模块化增加了用户交易成本
根据定义,每个L1和L2都是具有自己状态的不同资产账本。这些独立的状态块可以通信,尽管延迟更严重,开发人员和用户复杂性也更大。。
资产账本越多,所有账户碎片的全局状态就越多。这对链和各端用户来说绝对是非常可怕的。状态碎片化将导致:
流动性减少,因此对投资者来说价差更高。
Multichain将与Layer 1公链Sei Network集成:10月11日消息,多链协议Multichain将与Layer 1公链Sei Network集成。据悉,Sei Network是一个旨在加速去中心化金融交易的区块链,使用Cosmos SDK与Tendermint构建,具有内置的中央限价订单簿(CLOB)模块。[2022/10/11 10:30:54]
gas总消耗更多。
更多跨资产账本的重复计算:当ETH-USDC的价格在Binance或Coinbase上波动时,所有资产分账本的每个ETH-USDC池都有套利机会。
重要的是要认识到,创建更多的资产账本明确地增加了所有这些维度的成本,特别是与DeFi相关的成本。
DeFi的主要输入是链上状态。当团队启动应用链/rollup时,他们自然会分裂状态,这对DeFi非常不利,在管理应用程序开发人员复杂性和用户复杂性方面都如此。
当资产在单个资产账本上发布并且交易在单个状态机内发生时,DeFi表现最佳。资产账本越多,应用程序开发人员必须管理的复杂性就越高,用户要承担的成本也就越多。
4、Approllup不能为开发人员创造新的盈利机会
App链/rollup的支持者认为,激励机制将引导应用开发人员构建rollup,这样他们就可以为自己的代币捕获MEV。然而,这种想法是有问题的,因为运行approllup并不是将MEV捕获回应用层代币的唯一方法,而且在大多数情况下,这不是最佳方法。应用层代币可以简单地通过在通用链上的智能合约中进行逻辑编码,将MEV捕获回自己的代币。让我们来看几个例子:
清算——如果Compound或AaveDAO想要获取清算机器人的部分MEV,他们可以更新各自的合约,支付当前清算人路由到DAO的费用的一定百分比。不需要新链/rollup。
Multichain将于8月推出MultiDAO:7月29日消息,据官方推特,跨链互操作性协议Multichain宣布将于8月推出MultiDAO。[2022/7/29 2:45:52]
Oracle——Oracle代币可以通过提供BRaaS来捕获MEV。除了价格更新之外,oracle还可以绑定任何保证在价格更新后立即运行的链上交易。因此,oracle可以通过向搜寻者、区块构建者等提供BRaaS来获取MEV。
NFT铸造——NFT铸造充斥着恶意机器人。这可以简单地通过一个逐渐降低的利润再分配编码来缓解。例如,如果有人试图在NFT铸造的两周内转售他们的NFT,那么100%的收入可以被重新捕获回NFT创建者或DAO。这个比例会随时间变化而变化。
对于将MEV捕获到应用层代币,没有通用答案。然而,只要稍加思考,应用程序开发人员就可以轻松地将MEV捕获回通用链上自己的代币中。启动一个全新的链是完全没有必要的,这会给开发人员带来额外的技术和社会复杂性,并给用户带来更多的钱包和流动性挑战。
5、Approllup不能解决应用间拥塞问题
许多人认为,app链/rollup可以确保特定应用不受其他链上活动造成的gas峰值的影响。这种观点一部分是正确的,但大部分是错误的。
这个问题之所以一直存在,主要是因为EVM的单线程特性,而不是因为DA和执行没有分离。所有的L2都向L1支付费用,L1的费用可以随时增加。在今年早些时候的meme币热潮中,Arbitrum和Optimism上的交易费超过了10美元。最近,在Worldcoin发布后,Optimism的费用飙升。
解决费用飙升的唯一方法是:既要最大化L1DA,又要使费用市场尽可能细化:
跨链互操作性协议Multichain集成Kava Network:6月13日消息,跨链互操作性协议Multichain宣布集成Kava Network,目前用户可以将Kava上USDC、USDT、DAI、ETH、WBTC跨链至Multichain支持的包括以太坊和BNBChain在内的8条区块链。[2022/6/13 4:22:39]
如果L1的资源受到限制,那么各个L2的使用高峰将会影响到L1,这将给所有其他L2带来更高的成本。因此,app链/rollup也不能幸免于gas费飙升。
许多EVML2的共存只是试图将费用市场本地化的一种原始方式。它比将所有内容放在单个EVML1中要好,但不能从第一性原理出发解决核心问题。当你认识到解决方案是将费用市场本地化时,逻辑端点是各状态块的费用市场。
其他链已经得出了这个结论。Solana和Aptos都自然而然地将收费市场本地化。这需要多年来对各自的执行环境进行大量的工程工作。大多数模块化的支持者严重低估了解决工程难题的重要性和难度,这些问题使超级本地收费市场成为可能。
通过启动许多资产账本,开发人员自然会增加技术和社会复杂性,而不会释放真正的性能收益,即使在其他应用推动交易量增加的时候亦如此。
6、灵活性被高估
模块化链的支持者认为模块化架构更加灵活。这种说法显然是正确的。但目前还不清楚这是否是重要的。
六年来,我一直在努力寻找这样的应用程序开发人员,他们所需的灵活性是有重大意义的,是通用L1无法提供的。但到目前为止,除了三个非常具体的用例之外,还没有一个清晰的表述可以说明灵活性为什么重要,也没有说明它如何可以直接帮助扩展。我发现的关于灵活性很重要的三个具体用例如下:
利用“热”状态的应用程序。热状态是一些操作的实时协调所必需的状态,但最终不会在链上永久提交。下面是热状态的几个例子:
--DEX中的限价订单。
--实时协调以及dFlow的订单流交付识别。
--Pyth之类的oracle。Pyth是一个独立的SVM链。Pyth产生了如此多的数据,以至于核心Pyth团队决定最好将高频价格更新发送到一个独立的链,然后根据需要使用Wormhole将价格桥接到其他链。
更改共识的链。这方面最好的例子是Osmosis和Thorchain。
需要以某种方式利用阈值签名方案的基础设施。这方面的例子有Sommelier、Thorchain、Osmosis、Wormhole和Web3Auth。
除了Pyth和Wormhole之外,上面列出的所有示例都是使用CosmosSDK构建的,并且作为独立链运行。这充分说明了CosmosSDK在所有三个用例中的质量和可扩展性:热状态、共识修改和阈值签名方案系统。
然而,上述三部分中的大多数项目都不是app,而是基础设施。
Pyth和dFlow不是app,它们是基础设施。Sommelier、Wormhole、Sei和Web3Auth都不是app,它们是基础设施。而那些面向用户的app都是一种特定类型:DEX。
六年来,我一直在询问Cosmos和Polkadot的支持者,他们提供的灵活性释放了哪些用例。我认为有足够的数据可以做出如下推断:
首先,基础设施示例不应该以rollup的形式存在,因为它们要么产生太多的低价值数据,要么因为它们执行一些有意与资产分账本上的状态更新垂直的功能。
其次,我所看到的唯一一种能够有效改变核心系统设计的应用便是DEX。这是有道理的,因为DEX充斥着MEV,而且从定义上讲,通用链无法匹配CEX的延迟。共识是交易执行质量和MEV的基础,因此基于对共识的改变,DEX自然就有很多创新机会。然而,正如本文前面所指出的,现货DEX的主要输入是正在交易的资产。DEX之间会竞争资产,因此也竞争资产发行人。在这种框架下,独立的DEX链不太可能获取成功,因为资产发行人在发行资产时考虑的主要变量不是DEX相关的MEV,而是通用智能合约功能以及将该功能纳入应用程序开发人员各自的app中。
然而,这种DEX竞争资产发行人的框架与衍生品DEX无关,衍生品DEX主要依赖于USDC抵押品和oracle喂价源,并且本质上必须锁定用户资产以担保衍生品头寸。因此,在某种程度上,独立的DEX链是有意义的,它们最有可能适用于以衍生品为重心的DEX,如dYdX和Sei。
相反,让我们来考虑一下目前存在的跨通用集成L1的app。例如:游戏、Audius、DeSoc系统、DePIN协议、声音、NFT交易等。这些都没有特别受益于共识更改带来的灵活性,它们各自的资产账本都有相当简单、明显的共同需求:低费用、低延迟、访问现货DEX、获取稳定币以及法币入金渠道。
我相信我们现在有足够的数据可以在一定程度上自信地说,绝大多数面向用户的应用程序都具有与上述相同的需求。虽然一些应用程序可以通过自定义对其他变量进行优化,但是这些自定义经利弊权衡通常是不值得的。
启动新的资产账本是实现灵活性的一种方式,但它却很少增加价值,而且几乎总是为应用程序开发人员创造技术和社会复杂性的同时获得的收益却微乎其微。
7、扩展DA不需要再质押
你还会听到模块化支持者探讨在扩展背景下的再质押。这是模块化链支持者提出的最值得商榷的论点,但值得关注。
它大致指出,由于再质押,加密生态系统作为一个整体可以无限次地再质押ETH,为无限数量的DA层和执行层提供支持。因此,在确保ETH增值的同时,可扩展性在各个方面都得到了解决。
尽管在现状和理论上的未来之间还存在大量的不确定性,但我们可以理所当然地认为所有分层假设都像宣传的那样。
目前以太坊的DA约为83KB/s。在今年晚些时候发布EIP4844后,将翻一番,约为166KB/s。EigenDA虽然采用了不同的安全假设,但其增加了额外的10MB/s。
相比之下,Solana今天提供的DA约为125MB/s。Solana比以太坊和EigenDA效率高得多,因为其Turbine区块传播协议,该协议已经问世3年了。此外,Solana的DA采用尼尔森定律将随时间的推移而扩展。
有很多方法可以通过再质押和模块化来扩展DA,但是这些机制在今天是完全没必要的,而且会带来很大的技术和社会复杂性。
8、为应用程序开发人员而建设
经过多年思考,我得出的结论是:模块化本身不应该是一个目标。
区块链必须服务于区块链用户——也就是应用程序开发人员——因此,区块链应该在基础设施级别抽离出复杂性,以便企业家可以专注于开发建设世界一流的应用程序。
模块化构建块很棒。但是,构建成功技术的关键是弄清楚要整合堆栈中的哪些部分,以及将哪些部分留给其他人。就目前而言,集成DA和执行的链本质上提供了更简便的终端用户和开发者体验,最终将为一流的应用程序打下更好的基础。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。