原文标题:How Ethereum can solve L2 liquidity fragmentation
原文作者:Tim Robinson
原文来源:blueyard
编译:火星财经,MK
上周末,我在Farcaster上的朋友们纷纷讨论一个新兴热门币种——$DEGEN,它刚在Base上市。由于不想错过(FOMO),我查看了我的Rabby钱包,想知道我能投入多少资金:
“好的,看起来我能投入500美元到这个币种,只需卖掉一些其他资产。我的投资组合现状如何?”
“哦,很糟糕。”
我发现几乎每个代币都分散在不同的L2上。为了购买$DEGEN,我必须进行多次桥接和交换,逐个完成。尽管手续费不高,但这个过程既耗时又令人沮丧。
我们必须解决这个问题,使整个以太坊生态系统的体验就像是单一网络。让我们看看如何通过统一流动性以及钱包升级,简化桥接操作,从而让跨链二层体验与单一链使用无异。
为什么当前的桥接操作体验这么差?存在几个问题:
最重要的是,如果没有桥接的必要,我们为何还要浪费数百万小时去做呢?
使用去中心化交易所(DEX)或借贷协议时,它们应能追踪你在所有链上的代币。当你从另一个链存入代币时,它们应在后台自动完成桥接到正确链的操作,使得整个过程与在以太坊主网无异。
尽管应用和钱包渴望实现此功能,但底层基础设施尚不成熟。如果桥接过程需要10分钟,且可能损失1%的代币,大多数用户会对此感到不满。
让我们深入探讨基础设施层,看看如何解决这一问题。
有三种主要方法可以在L2网络间统一流动性,并通过一种增强方式来提升它们的效率。这些方法各有优缺点,但可以互相补充。
从以太坊主网到任何L2桥接资产时,当前流程如下:
目前桥接的工作方式是,每个桥接都是以太坊上的一个智能合约,我们称之为“原生桥接”。当你桥接到L2时,你的资产在L1上被锁定,然后在L2上铸造一个副本。这些网络有能力铸造其原生桥接支持的任何资产的无限数量。
尽管拥有相同的名称并明确没有被称为封装资产,但通过链的原生桥接从以太坊桥接到任何L2的每一项资产实际上都是封装资产,因为合约地址,有时甚至是代码,都是不同的。例如,以太坊上的USDC合约地址以0xa0b8开头,而在Arbitrum上以0xaf88开头,在Optimism上以0x0b2c开头,在Polygon zkEVM上是0xa8ce。
若所有L2共用一座桥接,则资产可在一个称为互操作层的共享链上铸造,之后在目标L2上再次铸造。
Polygon将这种设计称为聚合区块链。
这种设计的优势在于,资产从一个链转移到另一个链,如从Polygon zkEVM到OKX X1,无需经过传统桥接或回到以太坊主网。相反,可以直接在互操作层销毁资产,并在目标链上铸造等量资产!
通过这种互操作层桥接的每个资产,在生态系统内的每个链上都是完全一致的。假设互操作层使用速度快且免费(Polygon声称其操作在20秒内完成),你可以在几秒内免费在生态系统内的任何L2之间桥接任意大小的资产!
Polygon和zkSync正在为他们的生态系统开发这种互操作层设计。Optimism的设计文件中也提到了一个共享桥接的概念,看来他们也在追求相同的目标,尽管尚未正式确认。
这种方法的局限性是它只能在单一生态系统内工作,且所有链都需使用同一桥接,这增加了一定的风险。然而,生态系统内所有链间流动性的无缝流动带来的好处远超过这些风险。
由于所有代币在生态系统内可自由兑换,你的钱包无需显示你所在的链或按链分类代币。相反,钱包界面可以简化为:
一个统一的钱包界面,展现为单一链条体验。
进行跨链交易时,你的钱包可以简单显示你正在使用“Polygon”网络,并在后台自动处理所有桥接操作。
如果这种设计如此出色,为何之前未被采用?直到最近,零知识证明(ZK Proofs)才变得足够快和便宜,能够实现此功能。互操作层使用ZK证明完成所有铸造/销毁操作,因此可以在几秒内完成,无需任何延迟。
优势
弊断
另一种方法是让代币自行处理桥接任务。代币通过实现铸造/销毁功能,允许用户随时销毁某链上的代币并在另一链上铸造它。
通过中间件如Layer Zero或Chainlink CCIP传递这些铸造/销毁消息。Layer Zero正在开发一个名为Omnichain的项目,该项目将允许代币实现跨链功能。
一些代币已经采用了这种系统。例如,Circle最近推出的跨链转账协议(CCTP),就为USDC在八个不同网络上实现了此功能。
由于USDC在许多网络上具有高流动性,并且其可用流动性没有上限,它可能成为链间转移资产的理想中介。钱包可以将你希望桥接的代币转换为USDC,通过CCTP将USDC桥接到目标链,然后在目标链上将其换回所需的代币。这一过程可以通过极低的费用或滑点完成,并由你的钱包自动处理。
将流动性统一留给代币本身的缺点是,这依赖于个别代币去实现此功能,以及钱包和应用必须知道哪些代币可以自动桥接。
此外,这还要求代币等待链条最终确定后才能发送,这可能需要从几分钟到几小时不等,取决于数据被写入以太坊的频率。如果代币不等待最终确定,可能会因为在目标链上被铸造,而在发送链上发生的重组而导致双重支付。
优点:
缺点:
采用ZK桥接技术的L2链条可以通过信任其他L2链条的原生桥接,实现快速、免费的代币转移。这意味着用户在一个链上销毁代币后,使用销毁证明通过另一个链的原生桥接铸造等量的代币。
例如,如果Scroll认为Linea的桥接是安全的(并且不能通过升级来破坏这一安全性),他们可以设立一个服务监控Linea桥的L1状态根,允许任何在Linea上销毁代币的用户发布证明,这个销毁交易已被包含在L1状态根中,然后在Scroll上铸造等量的代币。
这类似于先将代币桥接回以太坊,再桥接到另一个L2,但节省了昂贵的L1燃料费用。
现在的风险是,这些原生桥接可能没有足够的锁定代币来匹配它们在L2上铸造的代币数量,这是至今未被突破的一个核心属性。如果在上述例子中,一个用户将$1M DAI从Linea移动到Scroll,Scroll的桥接将缺少$1M DAI,如果用户希望从原生Scroll桥接提取大量代币,将没有足够的资金可用。桥接可以通过彼此之间的大规模L1代币转移来协调这些差异,或者通过建立彼此间的双向信任,确保即使在Scroll桥接被清空后,大户也可以通过Linea桥接提取资金。
优点:
缺点:
上述三种方法都具有良好的扩展性和安全性属性,但它们的缺点在于,等待最终确定会大大减慢转移速度。最终确定一个区块需要发送网络将其数据写入以太坊,这可能需要长达一个小时,而以太坊的最终确定可能需要进一步15分钟。
通过经济激励,我们可以创建一个“软最终确定”机制,其中一个交易通过比它价值更高的经济价值来获得最终确定。这种机制可以通过像Eigenlayer这样的服务上的节点质押来实现,如果交易被以某种方式撤销,节点会被罚没,并且这种罚没可以用来补偿因撤销导致的损失。
这种机制的好处是,交易可以在几秒内获得软最终确定,大大加速了所有跨链代币转移的速度。
NEAR正在研究一项技术,不需要将发送/销毁的证明写入以太坊L1并等待最终确定,而是将证明写入一个NEAR快速最终确定链,其中最终确定由Eigenlayer的质押者保证,如果发生回滚或撤销,他们会被罚没。这种方法更详细地解释了它如何工作。
这个快速最终确定层如何改善所有三种代币转移方法:
在实现这些统一流动性的新改进后,跨L2的钱包体验将如同使用单一链一般简便,但还有哪些步骤需要完成?最主要的两个挑战是跨链燃料费和将应用与此系统集成。
如果用户不断在多个链条间移动,他们如何在所有这些链条上获得燃料费来支付转移费用?
这个问题可以通过账户抽象化,即EIP-4337和支付主(paymasters)来解决。支付主是一个地址,你可以请求它为你支付交易费用。一些钱包,如Avocado和Ambire,允许你预加载一个燃料费余额,然后在任何链上使用这个燃料费,类似于预付费借记卡。
另一个解决方案是Bungee Exchange Refuel,它在一个链上接收燃料费并在另一个链上为你提供一定量的燃料费。这种方法的用户体验不如支付主那么好,因为它会让用户在多个链上留下少量的燃料费,但它对于标准非智能合约账户(EOA账户)来说是有效的。
支付主还解锁了让应用本身运行支付主并覆盖所有用户交易费用的能力。这意味着任何人都可以在其自己的链上使用一个应用,而无需担心桥接操作。应用可以通过其他方式盈利,比如销售需要代币的高级功能,或者提供一个免费的试用模式,但完整体验需要付费。
目前,许多应用通过调用每个已知ERC-20代币的balanceOf函数来加载用户代币余额,这个过程既缓慢又不适用于跨链场景。它们通常对可能从其他网络桥接过来的代币一无所知。
这个问题最好在钱包层面解决,这样每个应用就不必重新发明轮子来支持多链的未来。EIP-2256提出了一个标准函数,钱包可以实现它,一次性加载所有代币余额,尽管目前这只适用于单链。
如果钱包对多链有所了解,并知道如何在不同链之间桥接代币,它就可以立即告诉应用用户拥有哪些可桥接的代币,并且当用户与应用交互时,钱包可以在交互之前自动完成桥接。这可以利用上述任何桥接机制来实现代币的桥接。
希望现在你对如何在L2之间更无缝地流动流动性有了更好的理解,以及钱包如何利用这些新技术来完全抽象化链条细节,使得使用以太坊变得像2020年那样简单,同时避免高昂的燃料费!