模块化之后:关于区块链底层优化路径的探寻
前言
这两周花了不少时间来弄明白新公链&新L2的创新点,并尝试从中寻找模块化之后,下一个公链底层创新可能出现的地方,就有了“拆分&优化&重组”——是我从所有这些创新中提炼出的第一性原则,更是我认为会长期指引区块链不断优化的第一性原则。
TL,DR;
即便给整个框架带来了大量的复杂性,但我们仍应该继续 “拆分&优化” ,区块链还未到“做减法”的时候
A&T View:Danksharding, Celestia 以及区块链分层结构
正文
什么是细分&优化&重组
这个理念源于“模块化区块链”,
但与当前主流的模块化定义存在一定的不同:
-
模块化理念意味着将区块链三大块 “存储,计算,共识” 中至少一块拆分成相对独立运行的结构,e.g. Celestia将存储层拆分,并提供通用的存储层以支持更高的效率&更多的自主性;
-
拆分&优化&重组,代表着在三大块中任意单一块中,按照优化需求做进一步“拆分”,并最终重组成一个更高可能性的区块链,e.g. 在计算层,将所有交易按照分类来独立执行。
这个理念其实很好理解:让每一个结构可以执行尽可能简单的计算,以获得单个结构最大的效率提升。
基础层创新中的“拆分&优化”
以太坊——Danksharding
在以太坊基金会研发团队第八次AMA中,Justin明确表示“以太坊正在变得越来越模块化”(Ethereum is becoming increasingly modular)
Justin在Reddit中回复的截屏
但你应该也注意到了,Justin口中的 “模块化” 是超出了当前市场上大量被讨论的 “模块化区块链” 概念的:
-
第四点 “Proposer Versus Builder” 提出将交易排序与最终出块进行拆分,以获取抗MEV的特性 »> 此设计并没有在Danksharding之外的项目中看到;
-
第五点 “Prover Versus Verifier” 提出将部分非关键性共识验证逻辑从关键性共识SNARK验证逻辑中剥离,并以此开发出两套客户端,以获取更好的网络效能 »> 针对Prover和Verifier提供两套客户端的设计也并未在Danksharding之外的项目中看到,但这样的设计是其他项目能够快速参考 & 上手的理念。
以上这两点均完美契合了“拆分&优化”的定义。
Ap to s & Sui
并行计算 是Aptos和Sui 扩容方案中的核心理念。
其实,并行计算是一种已经在Web2中被大量验证过的扩容理念,但其中的前置条件限制了这种理念在当前主流区块链:两两之间存在相关性&冲突性的交易无法直接进行并行计算,e.g. 当两个用户与Uniswap中的同一个交易对进行交互,A用户交易执行后会改变B用户面对的资产兑价,那么先执行A还是先执行B对结果是存在冲突的。
Aptos & Sui 通过一系列的分类处理来解决了这样的限制:
- Software Transactional Memory (STM)与optimistic concurrency control (OCC)的组合,是一种对内存访问进行检测并管理冲突的方法(从链上对交易的记录最终会修改数据库的视角):先乐观的让并行的多个线程独立完成对共享数据库的修改,完全忽略可能会有其它的线程存在,如果不涉及冲突,则可以轻松的处理超大量的内存修改;如果涉及冲突,则会对单个交易进行回滚,并待冲突交易更新完毕后再执行。
这种分类处理的概念从某种意义上也完全符合 “拆分&优化” 的理念:
- 将共识层和执行层进一步细分,按照交易的类别来对整个P2P网络中的所有进行分类处理,让每一个结构可以独立完成对共享数据库的修改,这样尽可能优化了单个结构的执行要求。
Altlayer
Altlayer是一个可插拔的&按需加载的L2&L3框架,主要针对应用阶段性的高扩展性需求。
如果你一定要问我Altlayer和其他主流L2的区别,我大概会说:Altlayer是套弹性的扩容方案,而其他主流L2都是非弹性的。
以下的这种场景将最大化弹性扩容的价值:
-
大量的NFT项目会在其Mint活动期间爆发出超高量的交易,但长期中并不会持续有对高TPS的要求 »> 弹性扩容方案可以满足NFT项目Mint期间的网络需求,且长期不会给NFT项目带来持续性负担。
-
Altlayer的核心理念也完美契合“拆分&优化”的理念:
-
弹性扩容本质上是将用户的需求进行细分,针对阶段性&突发性需求,提供了更加优化的方案–弹性扩容其实在传统云服务中是一种非常常见的解决方案。
简单的归纳一下:
在以太坊诞生至今的数年里,关于最优的区块链的大体框架结构其实已经越来越清晰,但我们仍需要将区块链底层再次优化以适应大规模应用的需求,那优化的方向是?
-
方向之一:将区块链这个整体进行细分,并对细分结构进行极致的优化;
-
方向之二:新一代的技术替代,e.g. 零知识证明,10x的网络带宽,10x的固态硬盘空间(如果你一定要我“细分&优化”之外,还有什么方向的话 )
**请注意:通过细分&优化的单个结构, 重组的方案也可以创新, 且最终效 ** 果可能远超原计划
下一代以太坊杀手?
最近社群里其实有很多关于下一代以太坊杀手的讨论:
Move匪帮Aptos & Sui V.S. 模块化标杆Celestia
个人认为:不是上述的任何一个,但会包含上述方案中的创新点。
大体四层框架 :Celestia& Danksharding已经展示了将Monolithic Blockchain拆分成四层再优化的价值(拆分成更多层当然是可以的,但这里为了方便大家理解,就拆成四层)
存储–Celestia: 从节点规模层面来看,Celestia可以是目前最安全的独立DA层;
交易排序共识–Celestia: 通过引入DAS(Data Availability Sampling),Celestia能够提供高效的对交易顺序的共识;此外,将交易进行分类后的并行计算,也同样能加速此结构。
状态共识–类Aptos&Sui共识: 并行计算在理论上拥有极高的处理效能,是当前此层的最效率选项;此外,引入ZK技术,可进一步优化(已出现 ZKmove 的讨论)
执行: 作为相对独立的一层,现有很多方案已经极大的释放了开发者的可能性;而弹性扩容可作为一个补充以应对各类突发需求。
上述“以太坊杀手”V.S.以太坊(Danksharding)
以太坊是更安全的选项,但在可扩展性&自定义能力上并不占优–个人观点(可能会update :D)
Aptos&Sui的共识涉及到了区块链状态共识部分,意味着该共识天生就和以太坊现有框架无法集成 »> 以太坊目前还无法集成这类并行计算的创新,至少在短期不太行。
基础层创新中的“拆分&优化”
从Vitalik在EthCC打趣 “Shall we cancel sharding” ,再到@Polynya的《4844 and Done》,市场上有许多关于 “减缓链创新以降低区块链复杂度” 的讨论。
个人偏向于 “还没到简化的阶段”: 如果我们回看云服务行业的发展历程,在前半段的数年里,云服务变得越来越有用的同时也是在变得复杂。直到近几年,我们才看到越来越多的简化措施,e.g. Serverless, IAC
-
新兴技术的发展大概都是你这样的三部曲:“寻找&确定一套通用且最具价值的大框架” » “提升能力范围,也变得复杂” » “简化以获得更好的使用体验和更低的成本”
-
简化的前提是东西已经足够好用,而当前的区块链底层基础很明显尚未达到 “足够好用” 的级别。我们仍在上半场
我十分坚信:我们能在漫长的熊市中看到更多的 “细分&优化” !届时,再回来做更新!