业内借鉴计算机网络通信体系架构的OSI模型(Open System Interconnection Reference Model,即开放式系统互联通信参考模型),将区块链逻辑架构划分为三层——Layer0、Layer1和Layer2。
1) Layer0:对应OSI模型的底层协议,大致包括物理层、数据链路层、网络层和传输层。
2) Layer 1: 大致包括数据层、共识层和激励层。我们所熟悉的比特币网络、以太坊主网等主流公链都属于Layer 1。
3) Layer 2: 主要包括合约层和应用层。
在以太坊网络中,Layer 1的主要作用就是确保网络安全、去中心化及最终状态确认,做到状态共识,并作为一条公链网络中可信的“加密法院”,通过智能合约设计的规则进行仲裁,以经济激励的形式将信任传递到 Layer2 上;而Layer2 则以追求更高效的性能为终极目标,从上面区块链技术逻辑架构示意图中,我们可以看到,作为第二层网络,可以替 Layer1 承担大部分计算工作,近年来,不少项目都是基于Layer2搭建的,从而将交易行为从主链上分离出来,降低一层网络的负担,提高业务处理效率,从而实现扩容。在这个过程中,Layer2 虽然只做到了局部共识,但是基本可以满足各类场景的需求。
Layer2和Layer1,这两者是从不同的角度来解决高额Gas费的问题。Layer1的解决方案专注于改善核心区块链的性能,而Layer2方式则着眼于改善区块链的使用方式。简单点说,Layer1就是采用分布式、Layer2就是将非关键性操作从链上转到链下。
Layer2涉及的扩容技术
01
状态通道
状态通道指的是链下”处理交易和其他操作的一种技术,其本质是通过在不同用户之间或用户和服务之间建立一个双向通道,为不同实体之间提供状态维护服务。它允许把区块链上的许多操作在链外进行管理,等完成链外操作后多方签名确认后,才将最终结果上链。其实,可以把状态通道理解成一个执行特殊操作的智能合约,一个专门建立双向通道,在一定条件下进行状态保持的智能合约。
02
侧链
主链和侧链的关系就像是马路的主干道和分支干道一样,主链是主干道,侧链是分支干道。由于主干道上的车流量太大,导致车辆运行速度慢,甚至产生堵车现象,所以有人想办法在主干道上开辟出一些分支干道,既不影响主干道流通,又可以缓解拥堵现象。侧链就相当于在主干道的基础上,增加其他的分支车道,来避免这种拥堵。
所谓“侧链”(又称楔入式侧链),是相对于主链而言的,是平行于主链的另一条区块链。它们通过“双向锚定” (Two-Way Pegging)来建立关联,实现主链与侧链之间价值的双向转移。可以在侧链上使用主链资产,并通过侧链来弥补主链功能的不足。虽然它们具有双向转移的能 力,但它们是隔离的,即使侧链中的加密被**(或恶意设计),所有的损害也都只限于侧链本身。
侧链作为主链新功能或新业务逻辑的“试验田”,一方面帮助主链试行、扩展新功能,另一方面随着各种主链本身无法具 备的业务逻辑在侧链上实现,围绕主链可更进一步搭建起一个覆盖各种业务需求的产业生态圈。比如新的扩展可以支持无数资产类型,例如股票、债券、金融衍生 品、真实和虚拟的世界货币,还能够实现智能合约、安全处理机制和真实世界财产注册。目前Blockstream以比特币区块链作为主链,正在做自己的侧链 项目。
03
Plasma
Plasma是一种设计模式,它允许链外消息驱动链上资产的转移。它通过将交易吞吐量转移到Plasma链来实现对根链的扩展。你可以把它看作是一个教授需要在短时间内批改许多考卷。教授可以将这项工作委托给助教,他们查看考卷上的每个问题并计算对应的分数,但只向教授报告总分。
Plasma在一个树形结构上组装区块链。最底层的是根区块链,根区块链之上是第一级子链——Plasma链。在第一级链上,可进一步分支出二级和三级Plasma链。上一级Plasma链称为下一级链的“父链”。
区块的承诺流向下,出口能被提交给任何父链,最终在根链上被执行。理解为子链的交易、状态等运算可以向下层层递交,最终在根链上落定和执行。
1)子链
Plasma的设计类似于一种网络分片,或者说分片状态下的共识、记账、计算处理。
子链负责处理具体交易。
一个人并不需要关心根链上所有的交易数据,仅仅需要关心设计其利益的Plasma的子链数据((蓝色)):
1)Plasma区块链并不在根链上公开区块链的内容。作为替代,区块头哈希被递交在根链上。大量的交易数据通过压缩的方式存放在根区块链上。即并非所有的信息上“根链”,大量的账本记录在子链完成。由于数据最终被递交到根链,这也是根链是交易最终落定者和执行者的原因之一。
2)一人只需要观察他需要确保执行的数据。如果在其他Plasma链上发生了不是必须确保执行的经济活动和计算发生,一人能把其他链当成单个交易对手。例如,在一个Plasma去中心化交易中,一个人仅仅需要观察影响他自己的承诺的链。
2)根链
根链负责以智能合约的方式持有资金,但账本记录在Plasma子链上。
对根链来说,只需要知道在某个Plasma子链有有一笔资金,并且负责保管它。而根链并不需要知道在Plasma子链上发生了什么交易,因为账本记录在子链上。而这笔存放在特定Plasma子链上的账本,在没有被提取到根链,或者说没有被从子链赎回的情况下,只能在这条子链上转移。这就减轻了每笔交易都需要在一条链——根链上共识确认的低效率。
“资金被位于根区块链的智能合约持有,但是账本记录在特殊的Plasma区块链上因此能够不需要根节点的花费来发生。”
04
Rollup
Rollups 是最新、最广泛的二层扩容技术。
Rollup 将计算转移到链下,只将最少的事务数据存储在链上。从这个基本意义上来讲,Rollup 就是以太坊的草稿纸。Rollup 负责所有复杂的数据处理,让每个以太坊区块都能容纳(叠卷)成倍多的智能合约事务。
交易可分为三部分,输入数据、执行和世界状态改变。最消耗 Gas 的部分是交易执行和世界状态改变,执行部分消耗没有这么大。Rollups 的想法是将执行与存档分开,大量交易汇总为一个批次,并为该批次生成证明发布在主网上——即把开销小的部分放 L1(开销小的部分也能恢复出完整的交易),从而减少执行和改变世界状态所耗费的 Gas。
链下执行:将执行以及状态维护等消耗大量资源的操作放在链下
链上存档:链上只存交易输入(calldata)
为什么只把 calldata 放在 L1 上,就认为这笔交易是安全的?智能合约没办法多线程,如果是多线程,同样的输入可能会由于多线程带来不同的输出。矿工在输入一笔输入时,同一笔数据放在不同矿工上执行出来的数据不太一样,该矿工提议的一个区块在别的矿工那里就会不成立。因为状态改变对应的值不一样,可能导致网络分叉等一些问题,EVM 是单线程模型,把 calldata 放在 L1 上按照顺序记录、按照顺序执行一定能计算出 L2 上准确的状态。
Rollup 又分为 Optimistic Rollup 和 ZK Rollup,前者参考了 Plasma 欺诈证明机制(默认所有交易有效,如怀疑有欺诈行为可提出挑战,并对欺诈进行证明),后者用零知识证明机制(证明者不提供任何有效信息就能使验证者相信这笔交易,一旦链上接受证明,就可以立即确认这笔交易是有效的)来确保安全性。
1)Optimistic Rollup
在扩展 NFT 方面有较大局限性,不能进行快速的 NFT 提款;其次,如果 Optimistic Rollup 中的 NFT 价值非常高,它可能会成为攻击目标,因为从Optimistic Rollup 中窃取资金的成本与潜在盗窃的规模无关。应用包括 Arbirum、Optimism、Boba Network 等。
2)ZK Rollup
它将链上的用户状态压缩存储在 Merkle 树中,将用户状态的变更转移到链下进行(链上直接处理成本较高,但是用链上合约验证零知识证明的 proof 是否正确成本是很低的,但同时也保证了链下状态共识的安全性),通过 zk-SNARK 的证明来保证该链下用户状态变更过程的正确性。NFT 系统中,ZK 解决了 Optimistic 的两个问题,一是用户的快速退出以及系统的安全性得到保障;二是每秒数千笔交易的速度使得更大的交易规模成为可能。但目前只有个别功能如转账、交易可以使用。应用包括 zkSync、Loopring、dYdX 等。
05
(5)Validium
Validium运行方式类似于ZK rollup,不同之处在于数据被保存在链下。因为交易数据不是发布在区块链上的,所以有必要采用额外的信任假设,用户必须信任操作员,以便在需要时可以访问数据。Validium的链下数据存储有很多好处,交易速度更快,并且因为公众无法访问交易,所以用户隐私性也到了提高。然而,由于数据是在链外保存的,因此用户将无法随时看到其在智能合约中的可用金额。因此,用户必须从中继器那里获取数据才能掌握自己的资金,并且他们必须信任中继器。为了解决这个问题,StarkWare这样的解决方案提供了一个数据可用性委员会(DAC),其会存储所有链下数据,并在紧急情况下变为公开可访问,减少用户对中继器的依赖:由于其仍使用zkp,所以不存在广播不正确状态的危险;用户现在必须信任的只是信息的及时性。Validium解决方案是较新的,建立在ZKR基础之上,如果扩展解决方案的有效性证明套件越来越受欢迎,其势头会不断提高。使用Validium解决方案的项目包括DeversiFi、ZKSwap(支付、交易平台)、Sorare(足球NFT游戏)和Immutable X(NFT 市场)。
参考文献
[1] https://zhuanlan.zhihu.com/p/410557922
[2] https://www.likecs.com/show-203903308.html
[3] https://www.jinse.com/blockchain/426248.html
[4]https://baijiahao.baidu.com/s?id=1611211503100984210&wfr=spider&for=pc
[5] https://www.jinse.com/blockchain/1114779.html
[6] https://blog.csdn.net/TinTinCommunity/article/details/124986340Validium
[7] https://zhuanlan.zhihu.com/p/478766944