1.“模块化区块链”的概念正在成为围绕可扩展性和区块基础设施所做的一种类别定义叙述。
2.这个论点很简单:我们可以通过分解L1区块链的核心部分,将单个层改进100倍,使区块链变成一个更加可扩展、可组合以及去中心化的系统。
3.一起简单回顾下区块链基础知识,区块链中的区块由两个部分组成:区块头和与区块头相关的交易数据。
4.简要概述一下组成一条区块链的功能“层”。
执行层:交易和状态的改变首先会在这里进行处理。通常用户也会通过执行层与区块链进行交互,包括签名交易、部署智能合约以及转移资产。
结算层:结算层用于验证rollup的执行结果以及解决争议。它不存在于单一型链中,是模块化堆栈的可选部分。类比一下,对于美国法院系统来说,结算层就好比它的最高法院,在争议问题上提供最终裁决结果。
共识层:区块链的共识层通过全节点网络下载和执行区块的内容,就状态转换的有效性达成共识,从而提供排序和最终确定性。
数据可用性层:应该将验证状态迁移有效性所需的数据发布并储存在这一层。在恶意区块提议者扣留交易数据的攻击事件中,这些数据可以被轻松验证。数据可用性层是区块链可扩展性不可能三角中的主要瓶颈,我们将在后面探讨。
5.为了让区块链变得去中心化,硬件要求一定不能成为参与的限制,验证网络的资源要求也要放低。
6.可扩展性指的是区块链的吞吐量除以它的验证成本:区块链处理不断增多的交易量,同时保持较低的验证资源要求的能力。
7.有了模块化的执行层和数据可用性层,区块链可以扩大计算规模,同时通过打破吞吐量和验证成本之间的相关性,保持让网络变得去信任、去中心化的特质。
8.@VitalikButerin在文章Endgame中指出,尽管区块验证(保持区块生产者的诚实)应当保持去中心化,但未来的区块生产可能会集中在池和服务于可扩展性目的的专门生产者身上。
9.可以通过将区块链节点拆分为全节点和轻客户端做到这一点。但这种模式会涉及两个问题:区块验证(验证计算结果的准确性)和区块可用性(验证所有发布的数据)。
10.全节点会在区块中下载、计算和验证每一笔交易,而轻客户端只需要下载区块头,并假设状态转换是有效的。
11.轻客户端有赖于全节点生成的欺诈证明来验证交易。反过来,它允许轻客户端自动识别无效的交易,使它们能够在与全节点几乎相同的安全保证下运行。
12.这就是我们最小化信任同时扩大吞吐量规模的方式:让计算变得集中,同时保持对这种计算的验证是去中心化的。
13.数据可用性问题
虽然欺诈证明是解决去中心化区块验证的有效工具,但是全节点依赖于区块可用性来生成欺诈证明。
14.作恶的区块生产者可能会选择只发布区块头,并且扣留部分或全部的相应数据,让全节点无法验证或识别无效交易,从而通过生成欺诈证明来警告轻客户端。
15.在这种情况下,轻客户端将继续追踪潜在无效链的链头,从全节点中分叉出来。(要记住轻客户端不会下载整个区块,只会默认假设状态转换是有效的。)
16.我们的探讨好像回到了原点,轻客户端如何保证在无需下载整个区块的情况下发布区块中所有的交易数据——集中硬件需求从而违背轻客户端的目的?
17.我们利用叫作纠删码的数学原语来进行数据可用性采样,让轻客户端通过随机采样区块的一小部分,有概率性地确定已经发布的整个区块内容。
18.尽管我们通过区块生产者硬件的升级让rollup的吞吐量有了指数级的增长,但是真正的可扩展性瓶颈在于区块可用性而不是区块验证。要点:吞吐量最终会被数据可用性所限制。
19.rollup的架构也为我们带来了一种独特见解,即区块链本身不需要提供执行和计算功能,而只需要提供排序区块的功能并保证那些区块的数据可用性。
20.这是第一个模块化区块链网络@CelestialOrg背后主要的设计理念。Celestia仅关注于通过数据可用性采样,为交易排序和数据可用性保证提供数据可用性层。
21.同时,区块链堆栈的所有前端所取得了进步:@fuellabs_正在执行层开发一个并行VM,而@optimismPBC团队则正在开发分片、激励验证和去中心化定序者。
22.合并后的以太坊开发路线图包括统一结算层和数据可用性层的计划。Danksharding会将以太坊L1的数据分片转变为“数据可用性引擎”,从而让L2的Rollup实现低成本、高吞吐量的交易。
23.除此之外,对L2方案的使用逐渐增加以及它的流行解锁了L3:分形式扩容。它让应用专用型Rollup得以部署在L2上,为开发者解锁定制性和互操作性。
24.类似于网络架构从本地服务器发展为云端服务器,去中心化网页也正在从单一型区块链与孤立式的共识层,发展为具有共享共识层的模块化、应用专用型区块链。
25.不管最终流行的解决方案和实现是什么,明确的是:在模块化的未来,用户才是最后的赢家。
(声明:请读者严格遵守所在地法律法规,本文不代表任何投资建议)