从cannon的角度理解Layer2 - 1:前世今生

今天我们来聊聊区块链的layer2,并通过一个实际的项目(cannon),从一个特定角度,看看为什么需要layer2,以及layer2都干了些什么事情

本篇文章只关注了区块链的一个纵深领域,并没有从头讲起,希望你可以对一些前置知识有所了解:

如果你对以上知识并不了解,建议可以阅读上述外联文章后,再行食用

没有layer2不行吗?

在聊layer2之前,我们应该先简单回溯一下layer2出现的原因,毕竟,要理解一个事物,就要从这个事物的源头开始了解

众所周知,以太坊是一个建立在区块链方案上的完全去中心化的系统,系统中所有节点以及节点功能,都是以去中心化的思维方式进行设计和实现的,节点与节点间是完全独立、互不相识,也互不信任的,在运行的过程中,以太坊需要维护一套世界范围内统一的账本,这套账本的全量数据,需要存储在每个节点上(全节点[ref]),读到这里,大家可能就有所思考,什么?数以万计的节点居然需要统一的存储一套数据?是的,没错,只有大量的陌生节点都认可了这套数据,这套数据才能具备不可篡改和安全等特性,就如同数学于我们所处的社会一样,社会中陌生人之间是互不相识,也互不信任的,但对于数学和数字,陌生人间也应该大概率是具有相同共识的,并可以依赖数学作为信任基础,而相互交流和相互沟通的,现实中的例子,就比如合同的制定、文档的交流等,当然,如果有个别人硬要说1+1=3,这也并不会影响数学系统在社会中的运行,因为,绝大多数人的共识已经达成了,整体的共识并不会跟随个别人的意见而改变,最后,共识就变成了安全的和不可篡改的了

这是区块链的逻辑基础,也是架构在区块链之上的以太坊的逻辑基础,总得说来就是:一旦在大量陌生节点上对数据达成共识后,数据就变得安全和不可篡改了

如此说来,共识是如何产生的呢?回归到社会与数学,我们就会发现,这需要经历漫长的论证、教育和同化过程,时间长达千年之久,区块链中陌生节点间的共识达成过程也是如此,节点运行着一套标准的”共识协议“(POW协议),节点间通过协议对新产生的数据进行独立的论证、记录和传播,每个节点都会对新数据进行一次完整的共识协议过程,而传播过程则是使用流言模型层层扩散,其时间不会长达千年,但一次共识也需要持续10秒以上

如果以太坊只是一方应用,那上述过程也许人们就忍了,但是,以太坊的定位是”世界计算机“,你能想象一台全世界人民共用的计算机,十秒才能做一次数据的批量录入的场景吗?

是时候考虑扩容问题了

所以,对以太坊性能的扩容问题一直都备受关注,并产生了大量的方案和实践项目,我们今天的主角layer2便是扩容方案之一

在真正聊layer2之前,我还是先大致梳理一下几种扩容方案的概况,有了清晰的轮廓,才能对layer2解决的问题产生准确的理解,当然,如果你对其他扩容方案已经了解或不感兴趣,可以跳过阅读,后面的内容也能毫无压力

说到系统扩容,无非就是强大自己和赋能别人,也就是:

  • 让自己的处理能力变好,也就是主链分片模式和共识机制优化
  • 让自己只处理核心事务,让别人处理周边事务,也就是链下处理、链上证明模式

以太坊当前准备是双管齐下,在主链分片和共识机制优化的情况下,将实际业务剥离到链下进行处理,而链上做的是:

  • 数据的可信化背书:一个去中心化的信任机构,数据上链后,陌生双方都可依赖链上数据作为信任基础
  • 底层数据的存储标准化:一个现象级的数据存储标准,为陌生组织间的数据流动提供可能

通过先驱们的不断实践,产生了大量优秀的实践项目,当然,这些落地项目也有着这样与那样的缺陷,让我们逐个大致了解一下:

  • 主链分片模式信标链,将大量节点分片为64个处理单元
  • 优化共识机制:从POW转向POS,当然还有其他的共识协议可供参考
  • 以上,对主链的扩容方案,的确可以在一定程度上可以提高系统性能,但毕竟是有限的,就如同,在社会中,人们每次的交易都需要询问中央银行系统一样,中心化的服务提供机制,带来的必然是延迟与崩溃,所以,当前社会交易的主流模式是:中央银行背书,多种交易方式并存,例如:现金支付、支付宝支付和银联支付等等,在以太坊中的趋势亦是如此,以太坊主链作为去中心化的信任机构,为不同的链下机构作为信用背书和数据流通协议,实际的业务是在链下机构完成并流通的,这些链下机构便是下述的扩容方案
  • 通道闪电网络是其中之一,是一种点对点的链下处理方案,但使用场景有所限制,只能适用于熟人网络间的信息流动,对大量的陌生人间的数据流动没有提供直接支持
  • 侧链plasma是其中之一,解决了通道的场景限制,但其本质上脱离了主链的信用背书,是一条独立的区块链,只是与主链进行了有限的数据交互,这会让链上数据产生数据可用性问题(也就是,如何验证数据可以使用),又因其定位于特定场景下的应用,所以,其节点规模不足以达到主链的规模,也就无法具备应有的安全、不可篡改等特性
  • layer2rollup是其中之一,依赖的是layer(分层)的思想,将主链称为L1,而自己则是L2,通过将数据从L2 rollup(卷起来,可以理解为批量)到L1上,并使用L1为L2做信用背书的方式,解决了侧链的数据可用性问题和规模不足问题

layer2 能让我们变得更好

由上述不难看出,链下扩容方案是以项目的形式一代一代的向生产级迈进的,layer2的rollup则是当前最合理的方案之一,这也十分符合软件工程思想:”没有什么问题是增加中间层解决不了的,如果有,那就加两层“(其实我想说,”没有什么是一顿火锅无法解决的,如果有,那就吃两顿“),当然,rollup是一种方案框架,要落地的话,我们还需要一些实际项目:

  • optimistic-rollup:正如其名,是一种乐观rollup方案,其认为大部分的L2到L1的数据提交都没有问题的,不需要花成本对其进行审查(注意,这里的成本是指L2的成本,不代表第三方的成本),只当有节点发起数据提交异议的时候,才使用仲裁和惩罚机制对异议进行处理,这像极了社会中,法院、诉讼与犯罪处理的过程
  • zk-rollup:依赖于零知识证明算法的一种悲观rollup方案,其认为每笔交易都需要进行审查,并使用零知识证明算法[ref],优雅的解决了审查中的性能、隐私等问题

你可以通过zk-rollup的外联文章看到,zk-rollup似乎是一种”完美“的rollup解决方案,当然,是在不考虑任何成本的场景下,我十分同意Offchain Labs的观点,因为通过观察人类社会就可以发现,成本是衡量社会运行机制合理性的重要考量因素之一,而经济学的经验也告诉我们,通过设计合理的举证和处罚机制,是可以以廉价的方式维持社会的正常运行的,zk-rollup也许可以做到万无一失,但其高昂的成本(运行和迁移),也许会将其适用场景限制在一些非成本敏感的场景中,而optimistic-rollup作为廉价的、更加社会化的方案,则可能会被应用在普适的场景中

posted on 2022-07-15 09:37  稻草篮儿  阅读(143)  评论(0编辑  收藏  举报

导航