在这期节目中ECN邀请到了来自 A&T Capital 的研究者 Todd 一起聊聊模块化区块链,希望大家听完之后可以对模块化区块链这一概念能够有更清晰的认知。
目前模块化区块链热度不减,这是由于单一型区块链它所固有的一些局限,性能和效率的低下让用户体验实在不良好;而单纯地提高硬件要求来改善性能的做法又会导致中心化的问题,因为节点参与网络运营的成本或者说门槛太高。
那么模块化区块链/分层结构为何会被大家青睐呢?它的设计逻辑是什么?怎么改善单一型区块链所固有的局限?在这期节目中我们邀请到了来自 A&T Capital 的研究者 Todd 一起聊聊这些话题,希望大家听完之后可以对模块化区块链这一概念能够有更清晰的认知。
Intro - 00:37
模块化区块链起源 - 02:43
模块化的含义 - 07:48
单一型区块链的局限 - 09:18
模块的切分方式有哪些 - 17:29
以太坊的模块化生态讲解 - 19:29
Rollup 排序共识的探讨 - 35:45
Validium 的安全性讨论 - 43:04
Danksharding 的大区块问题和去中心化维持 - 46:11
Celestia 和以太坊在模块化上最大的区别是什么 - 58:24
Celestia 提供的主权性有什么好处 - 61:52
这种主权性会带来额外的信任假设吗?- 71:45
结尾 - 74:31
Franci:
根据维基百科,模块化编程的定义是指将计算机程序的功能分离成独立的、可互换的“模块”(module) 的软件设计技术,模块接口表达了这个模块所提供的和所要求的元素。
那么区块链中模块化的具体应用是如何的呢?我们一直强调的模块化区块链,它为何会出现并且发展成蓬勃的生态?它的提出必然是为了解决或是完善单一型区块链的一些问题,总的来说,后者有什么局限呢?
Todd:
从单一型区块链的定义开始,我们通常把什么样的区块链称为模块化区块链呢?举两个最典型的例子就是比特币网络和以太坊 1.0 网络,他们最大的特点就是节点承担运行区块链所有类型的职责:这些职责包括计算、共识和存储。这意味着节点运行者的硬件要同时满足这三部分所带来的要求。比如说,CPU 这个硬件能算多快?带宽与共识职责相关,节点与其他节点通信完成共识,能够传递信息的速度能有多快?最后就是内存,你的节点能存多少东西。这些都需要考虑。然而从硬件上来看,这些都已经被压榨到一个极限了。
也就是说,作为单一型区块链,由于他对于节点的硬件要求已经到了一定的瓶颈。那么为了不提高硬件要求,同时让网络变得更快,模块化提出的方案就是让节点去承担相对少的职责。比如说把上面的三块拆分开来看作是不同的模块,然后让节点只承担一块或者两块的职责。这样来让网络提高效率。
Franci:
模块的切分方式有哪些?
Todd:
主要来说会把它分成三层,分别是数据可用性层、共识层和执行层。这个分层框架主要适用于介绍以太坊模块化的生态。而之后会提到的 Celestia,我会对共识层进行再细分:交易顺序共识和全局状态共识。
那么我们来看以太坊上的模块化生态发展。先从最简单的两种开始:基于以太坊的 Rollup 和 Validium。Rollup 就是将执行层分出来,单独交给了 L2 去执行。相当于将大量的计算工作交由给链下,最终把计算结果发送到链上,链上只需要对计算结果进行共识即可。
第二个就是 Validium,它就是在 Rollup 的基础上,把数据可用性层也拆开了并交个了链下。从某种意义上来讲,Validium 这套体系其实是削弱了整个网络的安全性,来换取更高的可扩展性。
Danksharding 是一种更为精妙的设计。它通过对共识层上的节点进一步拆分。也就是说,让其中一部分 (区块构建) 的职能由硬件能力超高的网络节点来承担,而在这部分中,势必会造成削弱网络的去中心化,所以会引入其他部分对其进行补充,让共识层网络维持去中心化。那它是如何在大区块的前提下维持整体网络的去中心化呢?前面那部分只是涉及了区块的构造,并没有涉及区块内容的验证或者说对区块内容的共识。所以其实全网依然是有一万个甚至两万个节点来参与共识的一个过程。最终让网络的安全性得到一个不错的保障。
Franci:
怎么看待 Rollup 中心化排序的问题?
Todd:
Rollup 目前排序的权力确实是由项目方来掌握的,也就是说你需要信任项目方在这方面不会作恶。其实排序这件事情,能够带来的最大的一个价值就是 MEV。所以其实 Sequncer 的作恶其实无非就是能做到提取一些 MEV,并不是说可以掺杂一笔假交易或者可以双花。
Franci:
Validium 相较于 Rollup,会牺牲掉部分的安全性。会牺牲到什么程度呢?有没有具体的例子。
Todd:
DA 放在链上最本质的一个原因就是,当我的所有元数据都在链上,那我单个节点是有能力去重新跑一遍交易然后算出这个状态是否对的。如果将 DA 放在链下,实际上你能够拿到的数据只是对方想让你拿到的数据。如果对方不想让你拿到其中一部分数据的话,意味着你是没有办法重现所有链上交易的。那这其中能够做到的一些很明确的事情就是拒绝服务。
Franci:
Celestia 和以太坊在模块化上最大的区别是什么?
Todd:
我最最开始提到的将模块化分成四层,但是在谈以太坊的模块化生态时只按三层来讲,因为以太坊的交易排序共识和全链状态共识其实都是由 Beacon Chain 来维护的。而在 Celestia 的体系里是有明显的拆分的。也就是说,交易排序共识由 Celestia 的底层网络来维护,而全局状态的共识则是由 rollup 或者自己的链的节点来维护。
那么这么做最大的一个好处就是,基于 Celestia 搭建的 Rollup 允许自己的节点同时跑不同版本的客户端。打个比方,在以太坊的框架下,大家经常会说想在这个地方做个升级,想在那个地方做个升级,那基本上只有一条路,就是硬分叉。因为所有节点都需要跟上最新的一个版本。在 Celestia 的逻辑里,它认为既然你的历史数据、历史交易排序都是一致的,那么不管你用 A 算法来算还是 B 算法来算,答案都是一样的。那这样的话,它会释放更多的自主性。