toddz

Posted on Aug 26, 2022Read on Mirror.xyz

模块化之后的下一步--关于区块链底层优化路径的探寻

这两周花了不少时间来弄明白新公链&新L2的创新点,并尝试从中寻找模块化之后,下一个公链底层创新可能出现的地方,就有了“拆分&优化&重组”--是我从所有这些创新中提炼出的第一性原则,更是我认为会长期指引区块链不断优化的第一性原则。

TL, DR;

  • 近期的创新(Danksharding,Aptos&Sui,Altlayer),抽象来看都在走 “先拆分,再优化的路线” 的路线,这与模块化区块链的初始理念一致,但又走的更远 ➡️ 这样的理念会持续指引区块链优化的方向
  • 将不同项目创新项目的创新点进行抽离和重组,可以获得更好的效果:将并行计算引入模块化区块链框架
  • 即便给整个框架带来了大量的复杂性,但我们仍应该继续 “拆分&优化” ,区块链还未到“做减法”的时候

什么是细分&优化&重组:

这个理念源于“模块化区块链”(关于为什么不直接用“模块化”,可以去看我的上一个Post),但与当前主流的模块化定义存在一定的不同:

  • 模块化理念意味着将区块链三大块 “存储,计算,共识” 中至少一块拆分成相对独立运行的结构,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之外的项目中看到,但这样的设计是其他项目能够快速参考 & 上手的理念。

以上这两点均完美契合了“拆分&优化”的定义。

Aptos & 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

  • 新兴技术的发展大概都是你这样的三部曲:“寻找&确定一套通用且最具价值的大框架” ➡️ “提升能力范围,也变得复杂” ➡️ “简化以获得更好的使用体验和更低的成本”
  • 简化的前提是东西已经足够好用,而当前的区块链底层基础很明显尚未达到 “足够好用” 的级别。我们仍在上半场

我十分坚信:我们能在漫长的熊市中看到更多的 “细分&优化” ! 届时,再回来做更新🥳🥳🥳