数据可用性(Data Availability,DA)是指验证者能对区块链网络中交易数据进行查看和下载, 并且保证交易数据是正确的, 这里有几个隐含语义:
在一定时间段内产生的所有交易数据都能被整个网络上的全节点获取并见证。反之,意味着不存在已经执行但没有公布的交易数据;
全节点保存的交易数据在验证需要时一定能访问到,即当有验证者向连接的全节点请求交易数据时,全节点不能拒绝将内容发送出;
全节点发送的交易数据的内容是完全正确,没有隐藏或歪曲信息。
对于单片链而言,例如我们所知的大部分 Layer1 的区块链比特币,以太坊,Solana,数据可用性其实都不是问题,由于共识机制的存在,数据是自然可用的。但随着区块链生态系统(尤其是以太坊)在过去两年中变得更加发达,对于一个交易量在不断增加的网络来说,扩容已经成为一个十分关键的优先事项,其中最受欢迎的解决方案是 Rollup,它涉及到将压缩的交易数据上传到主网,以确保其状态可以得到以太坊网络的保护,并增强安全性。
随着 Rollups 规模的增长,需要上传的数据量也在同步上升。一方面,这增加了以太坊的负担,而另一方面,它也提高了 Rollups 的成本。当 Rollups 跨越了一定的门槛之后,数据可用性才成为一个不可避免的问题。只有确保所有交易数据可以被访问和下载,以太坊才能跟踪和重建 Rollup 上的状态,也只有这样,才有可能将 Rollup 的交易数据存储在一个独立的数据网络中,降低 Rollup 的存储成本,进一步促进扩容。
此外,数据的可用性与 Rollup 的安全性密不可分。在数据遗漏和记录不规范的情况下,从以太坊的角度看,Rollup 的状态将无法辨别。在这种情况下,鉴于 Rollup 有可能不能完全继承以太坊的安全设置,尽管性能良好,但用户会对 Layer 2 保持警惕。
数据可用性和存储的区别
数据可用性涉及到数据的存储和检索,但这个问题与存储不一样,两者的重点领域不同。存储需要在较长的时间内保持数据随时可供检索,在此期间,数据是有意义的。数据可用性需要确保主区块链网络产生的最新交易数据被发布到网络上(可能是自己的网络以外的网络),并易于访问。
一般的存储网络,例如 Filecoin,Arweave 其实并不适合数据可用性网络,因为存储的对象往往是大文件,而在每个以太坊区块区间内获得所有 Rollups 的数据可用性所需的数据量一般小于 2MB。数据可用性网络可以设计成非常精细的数据采样验证和检索过程,但存储网络不能这样设计,否则处理大量的数据就不可行了。
不过存储是数据可用性的支柱,数据可用性是存储的先决条件,存储网络和数据可用性网络还是可以做结合的,例如将数据可用性网络产生大量的数据存在于一个独立的存储网络中,便于数据可用性节点减轻负荷,专注做数据采样验证和检索。
数据可用性常见方案
Danksharding 是以太坊正统的数据可用性方案,前置方案是坎昆升级即将引入的 EIP-4844 提案,即 Proto-Danksharding,引入了一种称为 Blob carrying Transactions 的交易格式。这种交易格式与普通的交易格式相比,多了一个 Blob 的位置可以用来存放 L2 的数据。而且,Blob 数据在一个月后会被节点删除,从而大幅节省了存储空间。
目前 Rollup 上传数据到 Layer1 是以 Calldata 的形式,这种方式非常昂贵,占 Layer2 交易费的九成,Blob 这种交易格式能够提供比 Calldata 更廉价的数据可用性。主要有两方面原因:一方面,Callda 存在于 Execution Payload 中,而 Blob 数据存储于 Prysm 节点或者 Lighthouse 节点中(而不是在 Geth 中),相比而言 Calldata 需要被合约读取时所消耗的资源要多很多;另一方面,Blob 数据是短期存储,一个月后节点会删除 Blob 数据。
完整的 Danksharding 升级会引入数据可用性抽样(DAS,Data Availability Sampling),节点通过 DAS 检查,可以只下载一些随机选择的块来验证一个块是否已发布。由于 DAS 可以对区块数据做并行化验证,所以未来数据分片(Data Sharding)的数量即使很多,也不会增加单个验证节点的负担,反而会刺激更多验证节点加入,从而保证验证节点的充分去中心化。为了实现 DAS,引入了纠删码技术;同时为了确保纠删码被正确编码,又引入了 KZG 多项式承诺(KZG Polynomial Commitments)。
由于 Danksharding 尚未上线,目前主要的链下数据可用性方案包括 Validium 和模块化区块链。
Validium
Validium 是 Danksharding 的过渡方案,目前大部分 Rollup 都采用 Validium 作为链下数据可用性方案,例如 Arbitrum Nova,StarkEx、zkSync2.0、Polygon zkEVM 。
Rollup 将交易数据可用性验证的责任分配给相对较小的一组可信节点,这些节点被称为数据可用性委员会(Data Availability Committees,DAC),轻节点必须相信 DAC 中大多数为诚实的节点,这引入了信任假设。DAC 节点存储区块交易数据的完整副本,并通过在主链上发布加密签名来表明数据确实完全可用。这样,轻节点就能以低成本验证这些签名,从而确信 DAC 节点的数据是可用的,而无需自己实际处理或存储数据。
依赖于集中式 DAC 会给网络带来一定程度的集中风险和单点故障,因此一般用权益证明(PoS)验证器系统代替集中式的 DAC。在这里,任何人都可以成为验证者并在链下存储数据。但是,他们必须提供保证金(即质押 token),并将其存放在智能合约中。如果出现验证者隐藏或歪曲数据,则可以削减其保证金。
EigenLayer 更进一步,允许将已经质押的 ETH 代币再次质押在其他协议和 DApp 中并参与其验证过程,从而使其他协议和 dApp 能够在一定程度上利用以太坊网络的安全性。
目前,如果以太坊网络上的验证者参与恶意行为,他们可能会没收其质押的 32 个 ETH 代币中的一半,也就是最多可损失 16 个 ETH。而 EigenLayer 允许没收剩余的另一半。虽然参与「再质押」会使风险增加一倍,但它也增加了总奖励,因为它不仅获得了以太坊区块奖励,还获得了其他协议的奖励。所以,验证者可以通过 EigenLayer 「再质押」来验证其他协议,以获得额外奖励。在以太坊网络中抵押的普通用户也可以从这些优势中受益。
EigenDA 是 EigenLayer 的数据可用层应用,本质上就是使用「再质押」策略的分布式 DAC 技术,罚没不当行为节点「再质押」的以太坊,可以降低但仍然不能完全消除轻节点的信任要求。
模块化区块链
对比模块化区块链,单片链在单个层上包含以下四个组件:
执行:确保所执行的交易进行正确的状态更新。执行层必须确保被执行的交易是有效的,即交易的结果是有效的状态机转换。
结算:确保有一个使得执行层能够验证证明、解决欺诈纠纷的环境,并作为执行层之间的桥梁。
共识:确保交易的顺序达成一致。
数据可用性:确保交易数据的可用性。
模块化区块链指将「执行、结算、共识、数据可用性」四个组件中至少一个组件完全外包给外部链的区块链,以 Celestia 和 Polygon Avail 为代表。模块化区块链的数据可用层,提供了更高级的 Validium 能力,以 Celestia 为例,其架构图如下:
Celestia 将区块链堆栈解构为不同层次,主要剥离共识和数据存储,通过提供数据可用性,支持多种执行层的接入。
Celestia 通过一个共识协议 (基于 Cosmos SDK 的 Tendermint)来排序交易,不去推理这些交易的有效性, 也不负责执行它们,平等对待所有交易,所有交易的有效性证明都由 Rollup 节点在轻节点中执行。任何构建基于此架构的去中心化应用程序的开发人员都将享有更好的灵活性、安全性和可扩展性。
技术原理上,Celestia 仍然采用 DAS,但通过 Reed-Solomon 方式对区块数据进行编码:每个区块数据被分成 k*k 部分,排列成 k*k 的矩阵,并且引入校验数据将矩阵扩展成 2k*2k,对扩展矩阵的每行和列分别计算 Merkle 根,再组成Merkle 根保存在新的区块头中。
轻节点做验证时随机选取一个坐标点,向自己信任的全节点获取该坐标对应的区块数据和 Merkle proofs。如果这部分数据的正确性验证通过,则轻节点广播区块数据和 Merkle proofs,这样当网络中有足够多的轻节点时,全节点就能通过收到的采样数据恢复出完整的原始区块数据。
轻节点保证了数据可用层的有效性,节点数量越多,能允许的区块吞吐越大。为了验证采用数据的正确性,轻节点需要获取 4k 大小的Merkle roots。对于 n^2 字节大小的区块,每个轻节点需要获取 O(n) 字节量级的数据,因此对于单个轻节点带宽的提升能带来平方级别吞吐的提升。
以太坊基金会对数据可用性的态度
以太坊基金会已经明确澄清,不用以太坊做 DA 层的 Rollup 不是以太坊 Layer2,因为以太坊链下的数据可用层均无法达到与以太坊同等级别的可用性保障,存在一定程度的信任假设,例如 Celestia 需要预先假设主链不出停机故障,但其 Validator 最多 200 个左右,与以太坊主链的可用性有区别。
因此,对于以太坊基金会的表态,有不少人认为,实际是在借着区分技术方案的由头,来维护自身的商业利益,道理不言自明:如果 Celestia 为代表的模块化区块链的数据可用层被大规模采用,那以太坊的地位必然被削弱,以太坊基金会投入大量精力要实现的 EIP-4844、Danksharding 的意义也将不复存在。
总结
以太坊创始人 V神 1月3日发表的一篇推文中称赞以太坊名字服务(ENS)超级重要,他还重申所有的 Layer 2 应该在无需信任的、基于默克尔证明的跨链交互协议(Cross-Chain Interoperability Protocol,CCIP)解析器上运行,以实现在Layer 2上直接注册、更新和读取 ENS 子域。
V神或许并非简单宣扬 ENS Layer 2 数据解析方案,而是有更深层次的考虑。用户在 Layer2上要正常使用 ENS 的域名,前提需要调用且验证以太坊主网上的全局数据,这意味必须得采用正统的以太坊 DA 能力,而那些把 DA 放在 Celestia 等第三方 DA 平台上的 Layer2 就无法兼容ENS了。他试图通过这个方案,进一步加强以太坊在 Layer 2上的 DA 控制力,维护以太坊 DA 的正统性。
V神的推文在某些程度上反映了模块化区块链对以太坊的威胁,尽管模块化区块链技术与 DA 层叙事有利于 Web3 的长期发展,但模块化区块链需要有一条流动性充沛且存在溢出现象的公链作为对应的结算层,而这条公链其实就是以太坊,如果模块化区块链彻底与以太坊生态割裂,其叙事就没有太大意义,然而,要从以太坊上吸引流动性,同时还不对以太坊本身进行直接赋能,是一种动了以太坊奶酪的行为,以太坊又能忍它到何时呢。
声明:本网站所有相关资料如有侵权请联系站长删除,资料仅供用户学习及研究之用,不构成任何投资建议!