这段时间研究了模块化区块链,分享一些自己的理解,因市面上成熟资料还是不多,很多内容只能靠看文档和白皮书推演,所以可能存在偏差或者错误,如若出现欢迎讨论交流。
模块化区块链这个词是由Celestia第一个提出,并在今年2月份Delphi digital呼吁大家引起了关注,所以这个概念在近期很火让大家觉得是一个横空出世的全新的东西,但是目前来看是将已经存在的东西包装了一层新的概念和设计理念。
为什么这么说呢,模块化区块链解决的依然是“如何在保证去中心化和安全的情况下实现扩容”这一区块链诞生起就无数人前赴后继的问题,产生这个问题的原因就是大多数Layer1链都是单体区块链,也就是一条链实现了共识、数据可用性和执行的工作。
共识就是整个网路中节点决定打包哪些交易,以什么顺序打包,数据可用性就是验证某个区块是已经完成广播是写入链上的,执行则就是具体交易和状态的变更。
如果一条链把这三件事都干了,那它就是单体区块链,也就是目前L1面临的问题,交易、结算、出块都排着队完成。所以设计思路就是把共识、数据可用性和执行这几个区块链核心工作职责给拆开,每个职责单独做一条链即一层,然后各司其职干好自己的事,再将其拼装组合到一起。
说到这里大家应该就意识到了,这就是30年软件开发都遵循的模块化设计原则,封装多态耦合内聚那套理念,把一个复杂系统拆分职能,各干各的,再组装到一起,所以至少这条顶层设计理念是一直存在的,将这套设计理念应用在了区块链设计上。
然后当说到将共识、数据可用性、执行拆分出来成为一条链,大家应该意识到这就是L2在做的事,rollup扩容思路就是将执行层单独拿出来做一条子链去完成以太坊的交易处理工作,然后将结果再返回至以太坊主链,所以rollup其实就是模块化区块链,模块化区块链不是一个具体的东西,它是一种概念或者是设计理念
Rollup已经出现了很久了,只是一直没有人提它是模块化区块链理念,Celestia将这套理念进行了包装并提出,所以我们可以说只要是将区块链职责进行拆分都可以算是模块化区块链理念。
但我绝对不是说模块化区块链没有价值是炒概念,它肯定是存在很大价值挖掘空间的,只是我们要先明白它不是一个具体的东西,它是一种设计理念,这种理念一定是蕴含价值的,因为在传统软件工程领域就是因为模块化的提出使得极大的降低软件复杂度提升软件研发效率和容错率,这套理念是很强大同样适用区块链。
那回到模块化区块链概念的鼻祖Celestia,他们是将数据可用性层进行了模块化,通过共识机制存储交易记录并提供数据可用性,而不用参与结算和执行层的事,只管存,并保证存的东西是有效的,其他开发者就能以rollup的形式在 Celestia 上构建出自己的结算层和执行层,Celestia本身不提供智能合约。
所以我粗浅的理解,Celestia就像是区块链领域的AWS,传统一家公司开发软件需要买一台服务器放在机房,10家公司就要10台服务器,于是AWS说你们都别买了,我自己整一个大的,你们只管软件开发,需要存取数据就来我这,我能够保证你们的数据有效的(存的进来,取得出去),即数据可用性。
那么为什么Celestia要做数据可用性层模块化呢?如果我想发一条链最难的就是这么让尽可能多的节点参与到我的链中去为我完成共识和数据可用性的过程,有这么多节点来维护我的链,那才能在链上做更多应用层执行的事情。
所以需要先看一下L1链的数据可用性是如何完成的。我们都知道区块链是由大量可自由加入的节点组成的,节点越多也就越安全,越去中心化。节点分为全节点和轻节点,全节点就是要完整的维护一套数据账本,所以少量节点恶意攻击不会影响全局节点,这也是区块链的立根之本。
但是随着时间数据也越来越多,维护一个全节点成本过高,如果大家都不愿意来做全节点那区块链就趋于中心化变得不安全,所以会有轻节点的存在,不会维护验证全量交易数据,而只存区块头,当出现需要验证数据可用性的时候,就将其发送给相邻全节点帮忙验证,然后再将结果返回回来。
所以总结一下,搞一个链最难的是这么能搞到这么多的节点来维护我这条链的共识和数据可用性。这也就是Celestia想解决的问题,它在官网说希望能够让创建一条链像创建智能合约一样简单,大家不用管下面的数据问题,交给Celestia完成,只需要专注于自己上层执行结算。
至于Celestia是用DAS来减轻数据可用性验证的工作量,这个DAS还没有深入研究感觉比较复杂,涉及到了纠删码这种通信加密学比较深的内容。
以上就是对于模块化区块链的学习研究内容,如有错误和偏差见谅,欢迎互相交流探讨。
欢迎关注我的twitter:@jason_chen998,也可添加我的微信 cj350306878,请备注姓名、公司及目的
往期文章: