Layer2 入门理解

本文简单介绍Layer2是什么。

以太坊的世界状态和区块链数据

以太坊节点的数据也可以看成是分成两部分,一部分叫世界状态,另一部分叫区块链。

世界状态就相当于比特币的UTXO,可以简单理解为以太坊全网所有地址的账户余额表。

以太坊的世界状态是交易直接驱动修改的。我们每次发送一笔交易,无论是以太币还是erc20币,都会对世界状态这张余额表产生影响。

以太坊交易的完整数据会以区别于世界状态存储在另外的区域。这些交易的完整数据的存储就和比特币的区块链数据一样。每一笔交易都会驱动全网修改区块链数据。

以太坊的一个节点也可以使用区块链数据从0高度开始计算出世界状态。

以太坊的区块大小设计

对比特币来说,一个区块能容纳多少笔交易是受区块大小上限限制。即每一笔交易都有一个数据尺寸,比如500字节。一个区块所有交易尺寸加起来不能超过某个值,现在是1M(严格来说BTC是1M交易数据加3M签名见证数据。BCH是32M。)

对以太坊来说,一个区块能容纳多少笔交易是受区块的gas上限限制。即每一笔交易都要消耗一定的gas,比如5万gas。一个区块里所有的交易消耗的gas总量不能超过某个值,现在是1500万。

下面是本文的关键

对以太坊来说,一笔交易消耗掉的gas可以分成两部分,一部分是驱动修改世界状态消耗掉的,另一部分是将交易数据写进区块链消耗掉的,并且,前者消耗掉的gas远远贵于后者。

将交易数据存在区块链数据里,只是消耗存储的gas。读写世界状态的gas值要远高于存储消耗的gas。

请记住这一点。

有了这样的认知,就可以讨论L2的设计了。

Rollup-Layer2的设计理念

Layer2的设计目标就是为了降低以太坊交易消耗的gas。所谓的Rollup就是将多笔交易卷起来打包一块上传给L1。

对用户来说,Layer2和L1一样,就是一个用来发送和接收交易的东西。交易会在L2完整修改世界状态和写入区块链。L2会定期将多笔交易卷起来打包一块上传给L1。

但在L2将交易打包上传到L1的操作,并不会修改L1的世界状态,只会修改区块链数据,即只是将交易数据存储进L1的区块链数据里。除非在L2和L1发生了充值和提款操作,才会在L1修改世界状态。

因为修改L1的世界状态太消耗gas了,而只是交交易数据存进区块链数据很便宜。

对L1来说,虽然这些来自L2的交易包不直接修改世界状态,但有了区块链数据,也可以通过计算完整回溯这些世界状态的修改过程。但计算过程要消耗大量的gas。

L2的设计的本质就是通过某方式来证明在L2上的交易执行的规则,完全符合L1的执行规则。即L2说,虽然在我身上发生的交易,我保证我的交易转账规则完全符合L1,但我不会直接在L1上体现出来。

zk系列的L2设计方案,就是通过零知识证明,以证明在zk-L2上的交易完全符合L1上的交易规则。这是有数学保证的。

OP系统的L2设计方案,是通过抵押资产,声明自己不作弊,如果谁能证明我作弊了,就可以罚我的抵押资产。就是默认L2不会作弊,这就是所谓的乐观rollup。

 

Layer2 入门理解

扫一扫手机访问

Layer2 入门理解

发表评论