进入第二层改进世界

2021-01-19 03:31:21

随着以太坊的价格飙升至心理门槛1,000美元以上,向以太坊链(L1)发送单笔交易变得越来越昂贵。下图显示了过去一年以美元进行的以太坊交易的平均交易费用。在撰写本文时,每笔交易的平均交易费超过5美元(还不错),但是几天前,我们几乎达到了18美元。如果您现在是以太坊DApp的普通用户,那么您的ETH余额可能会难以为您的所有交易提供资金;另一方面,如果您是一家资助数千名用户交易费用的区块链初创公司,那么……如果您现在破产了,我不会感到惊讶。

幸运的是,这是以太坊网络的一个众所周知的局限性,以及它的可扩展性,因此,已经有一些方案可以在短期和长期内规避这些问题。请允许我欢迎您进入第2层(L2)改进的迷人世界。

术语&#34第2层"用于表示旨在帮助扩展以太坊应用程序的任何解决方案或协议。之所以将它们称为第2层解决方案,是因为它们补充了以太坊的核心协议即第1层。它们的使用不需要对基本协议进行任何更改(不需要派生或节点更新)。第2层解决方案的主要目标是最大程度地减少应用程序为进行正确(和安全)操作而需要提交给以太坊区块链的交易数量。这会产生一些有趣的结果:

通过最大程度地减少发送到主网的交易数量,我们可以最小化我们为应用程序操作所需要支付的费用。因此,这些第2层解决方案使我们能够逃离“费梦night”。以太坊正在变得越来越近。

通过L2解决方案,人们可​​以执行有效的交易而不必立即将其提交给主链这一事实使开发人员能够构建高吞吐量的应用程序。不必再担心以太坊平均15秒的区块验证时间或每秒15次交易。

最后,就分散应用程序的用户体验而言,无需等待15秒钟即可完成验证就能够执行事务,这是一个巨大的飞跃。谁对完成其他交易之前的等待绝不止一次?

L2解决方案为以太坊的可扩展性铺平了道路。它们提供了网络顶部的基础架构以进行扩展,而不会损害其基础分散性和安全性,并且避免立即破坏核心协议中的更改(启用渐进式迁移)。

所有的L2解决方案都基于相同的原理。他们在以太坊之上建立一个基础架构,以接受用户交易,对其进行验证,对其进行汇总并将其提交给第1层(即以太坊的主链)。事务聚合的方式是,一旦将它们锚定到主网上,仍然可以对它们进行单独验证。因此,一旦L2事务所属的L2批处理已被锚定到主网上,就可以将其视为安全且不可更改。在L2解决方案中,如何完成此操作的细节有很大不同,但是让我们看一下两个广泛使用的L2解决方案,以详细了解它们的操作。

汇总是将侧链或脱链交易捆绑(或“汇总”)为单个交易,然后提交给L1的解决方案。为了保护所有这些捆绑交易,并使它们可单独验证,将从捆绑中生成加密证明。早期,该证明可能像Merkle证明一样简单,但是随着密码学的最新发展,这些证明现在是通过zk-SNARKs(零知识简洁的非交互式知识论点)以及其他零-证明生成的。知识结构。

汇总工作的要求是拥有某种与以太坊兼容的独立区块链(具有数量减少的节点或具有高性能的附加功能),负责处理签名验证,合同执行等,以验证有效性之后因其在以太坊主链中的承诺而捆绑在一起的交易中。 L2汇总侧链负责验证和合同执行,而L1专门存储不变的交易'数据。

如果您想减少用户费用(您为侧链捆绑的每X笔交易支付一次L1交易的费用),汇总是完美的L2解决方案;开放参与(无需任何先决条件即可开始使用汇总,只需安装您首选的侧链兼容客户端,然后开始无缝发送交易);和快速的交易吞吐量(请记住,侧链最终是一个独立的以太坊兼容的区块链,具有自己的分类帐,自己的共识和自己的经济。在以太坊的L1协议中没有任何变化,我们可以利用其在高效的侧链中信任时)。

实际上,这种独立地分拆几个侧链网络处理和捆绑交易,并将其提交给主要通道的方法,是针对以太坊2.0提出的核心体系结构(但让Eth 2.0离开另一天)。

零知识汇总(也称为ZK汇总)进行脱链计算,将数百笔交易捆绑为一个交易。此过程会生成捆绑软件中包含的所有传输的有效性证明(使用zk-Snarks)。然后将包含证明的交易提交到智能链上链,该智能合约通过证明来验证捆绑中所有交易的有效性,并相应地在主链中提交其状态。此过程称为“有效性证明”。与将交易单独发送到主网(甚至用于小型计算)相比,使用ZK汇总验证块更快,更便宜,因为捆绑中包含的数百个交易信息被压缩并在链上以几KB的证据发送。 。使用ZK汇总的一些技术示例包括:Loopring,StarkWare,MatterLabs,Aztec。

乐观汇总:在此方案中,参与者是"乐观"关于在侧链中执行的交易的有效性。无需进行任何计算即可将侧链交易提交到主链中。以及如何确定侧链过渡实际上是有效的?乐观汇总使用防伪证明来确保所有交易都是合法的。如果有人注意到欺诈交易,则汇总将执行此防欺诈行为并运行交易计算以验证其有效性。这意味着,与怀疑ZK汇总中的每笔交易无关,我们仅在怀疑交易是欺诈的情况下才执行证明计算。与ZK汇总相比,这显着降低了气体成本,并为实现事务处理吞吐量的x10-x100改进打开了大门。这种汇总方法是Etheruem的2.0分片链所考虑的方法,并且已经被Optimism,Offchain Labs和Fuel Network使用。

但是L2不能仅靠汇总来生存!以太坊生态系统中许多DApp使用的另一个广泛使用的L2解决方案是状态通道和支付通道。通道允许参与者进行有限次数的交易,而只向链上网络提交两个事务:一个打开通道,另一个关闭通道。这无需侧链或外部基础架构即可实现极高的交易吞吐量。您可能已经听说过,Bitcoin Lightning网络和以太坊的Raiden是两个基于通道的著名L2解决方案。

如果您的应用程序需要执行大量状态更新(例如在小额支付或游戏中),则此L2解决方案非常有用。在使用渠道之前,唯一要记住的是,只有在预先知道参与者数量的情况下才能使用它们,并且如果我们可以确定参与者在整个渠道的生命周期中都可以使用。

参与者将以太坊状态的一部分(如ETH存款)锁定到主链中的多重签名合同中,以说明状态通道的付款和计算。多重签名合同实现的逻辑要求运行多个用户的签名(并因此需要协议)。比特币还以其脚本语言支持多重签名交易,因此即使不支持执行智能合约,我们也将能够使用简单的L2通道。

锁定资金的第一笔交易打开了渠道。在开放渠道的情况下,允许参与者在他们之间进行链下交易,直至合同中锁定的金额。脱链交易的确认是由参与其中的所有参与者签名的凭证。每个新交易都在其凭证中捆绑了前一个凭证(即每个新凭证都是对前一个凭证的更新,建立了一个链)。

交互完成后,具有最后确认的参与者将在链中将其最终提交给合同。此事务验证链下交互的最终状态,更新参与者的余额,将相应的余额返回给每个参与者,并关闭渠道。

实现这些渠道的方法有很多,但根据其复杂性,通常将它们分为以下两种类型:支付渠道(更简单,仅用于处理支付,这是比特币中使用的);状态通道(更复杂,并且能够支持更复杂的计算,而不仅仅是支付,它们还用于诸如游戏之类的复杂应用程序)。

最后,要了解有关渠道的详细信息,我强烈建议您查看这个简单的Solidity示例,该示例说明如何为以太坊建立自己的小额支付渠道。如果您不害怕代码,那么这是使您的手变得肮脏并深入了解渠道如何工作的理想方法。

您可能想知道,所有第二层解决方案都是汇总还是基于通道? 好吧,不完全是。 有混合解决方案,更复杂的乐观和ZK汇总构造,成熟的侧链等等。 但是我认为这已经足够了。 如果您想在我不在的情况下继续学习L2解决方案,请在这里和这里看看。 我希望如果您到目前为止已经做到这一点,那么您就不必再担心以太坊的交易费用及其可扩展性限制了。 记住,总有适合所有事物的优雅的L2解决方案😎很快再见,了解更多与区块链相关的文章!