上周,我们与 L2BEAT 的联合创始人兼研究员 Piotr Szlachciak 就 L2 扩容方案的现状和不足进行了一次精彩的讨论。
L2BEAT 的诞生
Piotr 决定创建 L2BEAT,是因为当前没有一个工具来展示以太坊Layer 2 方案的使用情况。 此外,团队发现自身在哲学上与以太坊扩展方案是一致的,即以太坊主网无法自行扩展,而是需要 Rollup 扩容方案。
「通过 L2BEAT,我们想告诉用户有哪些选择,有哪些风险,因为当前整个生态系统还不够成熟。 L2BEAT 的使命是推广 Rollup 扩容方案,进行用户教育,并探索系统中存在的问题。」 -Piotr 提到。
L2BEAT 定义的 Layer 2
根据 Piotr 的说法,如果我们要对 Layer2 做一个适当定义,那么首先要讨论 Layer2 是否包括Polygon。当然还有币安智能链(BSC),但是正如 Piotr 相信的那样,每个人都同意 BSC 是一条独立的链,它并不应该被归类为 Layer2,因为它完全由币安运作,并且它没有继承以太坊的安全性。
至于 Polygon,一方面他们声称自己是一条基于 Plasma/Commit 的混合链,这是他们自认为以太坊二层扩容方案的标志。另一方面,L2BEAT 团队发现 Polygon 的一些说法并不准确,因为 Polygon 并不是 Plasma:
「你可以称 Polygon 是 commit 链,但这并不重要,因为它只是一个带有一些验证器的侧链,这些验证器是由以太坊智能合约在一层选择的。基本上,Polygon 的状态根提交给以太坊链,但它不做任何实际承诺之外的事情」。-Piotr 解释道。
在详细说明为什么 L2BEAT 团队不认为 Polygon 是合适的二层时,Piotr 提到如果 Polygon 链出现问题,以太坊链无法确定在以太坊主链上发布的数据是否正确。
那么,正因为如此,没有办法对该状态进行无信任的操作,如果有一种从 Polygon 提取资金的方法依赖于该状态的正确性,那么以太坊就没有办法检查该状态是否正确。
Piotr 认为,适当的二层解决方案实际上包括一些验证状态的机制。这就是为什么他对 L2BEAT 的定义指出,适当的 L2 解决方案是那些真正依赖以太坊来确保其安全性的解决方案。此外,当他们在以太坊上发布状态时,有一种方法,即通过使用 Validity 或 zkproofs 或欺诈证明来确定发布的状态是否正确。
简单来说,以太坊必须能够确定 L2 链是否没有问题。例如,比特币不是以太坊的 L2,因为以太坊无法确定比特币上发生的事情是否正确。
根据 Piotr 的说法,这并不意味着 Polygon 或比特币不安全,或者那里发生的事情不正确。而只是意味着它们不是以太坊的 L2,因为以太坊无法决定那里发生的事情是否正确。
L2BEAT 的指标及 L2BEAT 追踪的内容
L2BEAT 从追踪 L2 的 TVL (锁定的总价值)开始,这是一个唾手可得的成果,因为计算 TVL 的算法就是将所有的代币乘以价格。TVL 是一个判断用户实际活动的很好的指标。可以说,用户越多,他们的活动越多,他们需要的流动性就越大,所以更多的资金会被锁定在那个特定的 L2 链上。Piotr 还提到,情况也不一定总是这样,例如 NFT 并不需要流动性,因为当你进行 NFT 相关活动时,并不会显示在 L2BEAT 的 TVL 中。
L2BEAT 团队还决定跟踪其他指标,即所谓的实验指标,因为不能 100% 确定它们是正确的。比如,L2BEAT 正在跟踪流入和流出的资金。特别是对于 Arbitrum,还添加了交易数量的测试指标。
L2BEAT 跟踪和试验所有这些指标的原因是,他们不想依赖于人们声称的自己的交易量或吞吐量是多少,他们想自己对其进行验证。由于解决方案是 Rollup 的,团队至少可以部分地做到这一点,因为 Rollup 必须提交状态和交易。这就是为什么至少在理论上,L2BEAT 团队可以从链上提交的数据中读取它们,处理它们,然后显示统计数字。
L2BEAT 的风险
在 L2BEAT 上有一个标签,显示了与不同 L2 方案相关的所有风险。Piotr 分享了一些非常有趣和有争议的发现:
「我不相信当前任何一个项目已经为今天的主流世界做好了准备。如果我们相信加密货币的原始愿景,即去中心化、无需许可和抗审查,那么这些项目并不符合标准。虽然他们可能在某种程度上保证不会丢失你的资金,而且他们可能是无需许可的,即你不需要在任何地方申请即可进入项目,但他们并不完全是抗审查的,而且他们也是部分中心化的,因为他们中的大多数是可以升级的,即可以更改你正在使用的合约代码。」
Piotr 认为,理论上,这些系统和技术将允许去中心化的扩展,但在实际上目前情况并非如此。
可升级性
根据 Piotr 的说法,在区块链的世界中,有一个分叉的概念,这意味着新的规则被引入,我们有软分叉和硬分叉。有时甚至基础层也会改变它的规则,自然,建立在基础层上的系统(以前可能只有 dAPP ,现在还有二层),也可以有系统来更改其代码。我们通过治理,它可以决定,例如,我们允许另一个资产可以被转移到这个协议。然而,更基本的可能是智能合约本身存在一种机制,允许人们将代码更改为一个新的版本。
例如,像 Uniswap (V2)这样的协议有一个很好的系统,协议的代码永远不会改变,因此你可以确保永远可以使用相同的方法来访问系统,而系统也总会以同样的方式工作。与此相反,我们可以使用另一种协议来引入一些升级机制——比如通过替换合约代码。
Piotr 提供了 Maker 的例一个子,它存在一些设定系统参数的治理方式,比如系统的抵押以及哪些资产可用。
正如 Piotr 所解释的,通过汇总和其他解决方案,我们可以看到一些参数可以被调整,但我们也看到一些更基本的东西也会被允许调整。有这样一种智能合约设计叫做代理,代理就是两个智能合约的组合——其中一个智能合约用于大家与之交互,并指向另一个真正持有代码的合约。代理有一个所有者,所有者并不能改变用于交互的合约,却可以改变持有代码的合约。
如果有人是这样一个合约的恶意所有者,而用户在这个合约中投入了资金——合约非常简单,它规定如果你把钱投入这个合约,合约会储存你的余额,然后你就可以提取资金。作为恶意所有者,他可以更改合约,禁止所有人提取资金,并且只允许自己提取所有用户的资金,进而欺骗所有人,很有可能这个人从一开始就打算这么做。
Piotr 认为,这就是为什么对于现在市场上的绝大多数解决方案,你必须信任运营商的原因,因为运营商掌握着这些代理的私钥和所有权,由此,如果他们愿意,他们就能够窃取大量资金。
根据 Piotr 的说法,一些解决方案,即使他们没有使用代理的方式,也会在代码中明确包含「暂停智能合约,提取所有资金」的方法。他们只是简单地说明了这一点,甚至没有使用可升级机制。Piotr 强调,让用户知道这些东西的存在是非常重要的。「这并不意味着你不应该使用这些协议,当然你可以使用任何你想要的东西,只是要有这样一个认知,就是,在使用这些协议前,你必须投入一些信任」。
高阶用户需要注意的重要事项
NFT 和 Layer 2
Piotr 分享了一些 NFT 和 Layer 2 有关的有趣发现。如果你在二层上铸造了一些 NFT,当你提取这些 NFT 的时候,会发生什么可能并不可预期。通常情况下,你会在以太坊上铸造 NFT 并在以太坊上转移。但如果你在二层上铸造了一个 NFT,并想在以太坊上提取它,但它在以太坊上其实并不存在。实际会发生的情况是,一些解决方案包括一个名为 「withdraw and mint」 的功能。在某种意义上,所发生的事情是,当 NFT 被提取时,它是在以太坊上被重新铸造的。
通用的 optimistic rollups
当你正在构建一个更复杂的协议,而你已经有一份代码在以太坊 L1 上运行,而且一切顺利,并且这个 optimistic rollup 是 EVM 兼容的,因此你会理所当然的认为可以把现有的协议直接部署到 L2 上,就能正常工作了。但有一个问题是,如果协议(L2)出现故障并且需要退出时会发生些什么。因此,即使你可以只是复制粘贴代码,你也需要意识到一个事实,即需要设计一个退出机制来关闭和提取所有的资产。L1 上不需要这种机制,因为我们默认以太坊 L1 会永远存在。然而,L2 是有可能关闭的,而当 L2 关闭时,用户必须可以无信任地退出。因此,如果你在 L2 上建立一个协议,你需要考虑这种情况,即如果 L2 协议失败,你需要考虑接下来要做什么。
「我真的非常期待看到整个 L2 生态在未来的发展!」 Piotr 说道。
L2Show 推荐查看L2BEAT 网站!
在 YouTube 上的 #L2Show 上观看与 Piotr 的讨论。
L2Show 是一个 YouTube 节目,致力于展示二层的开发和在此基础上构建的项目。L2Show 由DeGate引入生态系统,DeGate 是一个以订单簿为中心的二层 DEX,由Agne K主持。