随着区块链技术的进一步成熟,更加安全、高效的模块式区块链成为了一个新型的结构框架。按照区块链的各个功能将其中的内容划分为不同的模块,像积木一般进行组合,大幅提升了区块链可用性。
模块化的区块链目前并没有对各个模块做出具体的定义和标准,但大多数通用的区块链模块都按照执行层、结算层、共识层、历史状态层、数据可用性层等进行分层。
在当下,很多人都更加关注能够处理交易结果的执行层,以及提供交易处理方案的共识层中。这两个模块已经成为了区块链领域中一个火热的市场。另外,很多时候,结算层主要进行很月验证,和共识层的内容有很大的相似性,很多时候人们也将它们看做是一个整体。而历史状态层主要是记录和留存一些历史交易内容,价值开发的潜力并不是特别大。在这些模块中,数据可用性层有着很大的潜力,但却在模块化区块链发展中被忽略了。
区块链中全节点能够更好地验证每个区块中的交易,但由于节点数量众多,要下载全节点对很多常规的用户而言是一个很大的负担,在如今的区块链市场中,采用了一种轻客户端的方式解决这个问题,普通用户或应用只需下载一小部分内容,比如区块头或验证账户余额等。
不过,轻客户端虽然减轻了用户的负担,但也产生了数据可用性的问题,即可能存在一些恶意的区块生成者在发布数据时将一部分数据隐藏。这在全节点下载中,这个区块可以很轻易被判定为无效,但轻客户端却无法验证,并且由于数据被隐藏,全节点也无法生成欺诈证明来警告轻客户端。
此时,数据可用性层就显得十分重要。
在2018年,区块链领域中两位知名人士 Mustafa AI-Bassam和 Vitalik 就提出了利用多维纠删码来检查数据可用性解决轻客户端中存在的这个问题,通过随机下载一部分数据进行验证,就能较为容易地确保数据可用。
这一方案得到了很多人的认可,不同项目之间的区别在于确保纠删码被正确编码的方案。常见的有 KZG 承诺、欺诈证明,以及 STARK 和 FRI 等方案。
随着区块链的发展,其结构也发生了改变。在区块链的扩容方案中,Rollup 是一个主流的方案,而在 Rollup 中的数据可用性也产生了一个新的问题,那就是费用很贵。据分析,链上数据可用性的费用能占据 Rollup 80%-95%的成本。
为此,人们也提出了两种解决方案,一种是利用协议层来生成“大区块”,即更大的数据可用性空间,从而降低链上数据存放的成本;另一种就是直接将数据放在链下,降低链上负担。
小结
数据可用层是区块链中一个同样十分重要的内容,它也有很多价值等待着我们进行深度开发。