数据可用性解决方案如何工作以及各有何不同?
Arbitrum
Tendermint
Status
数据可用性是区块链扩容的主要瓶颈之一。
编译:Kate, Marsbit
注:本文来自@expctchaos 推特,其是@ChaosDAO 的研究员,原推文内容由 MarsBit 整理如下:
0/ 数据可用性 (DA) 是主要的扩展瓶颈
幸运的是,@CelestiaOrg, @AvailProject 和 @eigenlayer 将改变 DA 游戏,并实现新的可扩展性
但它是如何工作的,#EigenDA 与#Celestia 和#Avail 等 DA 15 有何不同?
1/ 如果你不熟悉数据可用性问题,请查看我下面的帖子,其中我详细介绍了数据可用性情况👇
https://twitter.com/expctchaos/status/1535698402939265025
2/ 总的来说,数据处理解决方案主要有两种类型
- 🔷链上 DA
- 🔷链下 DA
3/ 而「纯有效性验证」意味着数据处理可以在没有保证的情况下下链,因为链下数据服务提供商可以随时下线……
4/ …#StarkEx, #zkPorter 和#Arbitrum Nova 是依赖于 DAC 的验证场景的例子,DAC 是一个由知名第三方组成的小组来保证数据的可用性
5/ 另一方面,#EigenDA, @CelestiaOrg 和@AvailProject 是我们可以称之为通用 DA 解决方案
但是,EigenDA 和其他两种解决方案之间存在一些区别
6/ 如果你想知道@CelestiaOrg 是如何工作的,请查看下面的链接
https://twitter.com/expctchaos/status/1535970188012572672
7/ 我过去也介绍过@AvailProject,所以要了解更多信息,请查看这里
https://twitter.com/expctchaos/status/1537459186421772288
8/ 如果你需要复习@eigenlayer,请查看以下线程👇
https://twitter.com/expctchaos/status/1601921935662731265
9/ 所以在今天的帖子中,我们想把重点放在@eigenlayer 的#EigenDA 和 DA L1 链 ( 如@CelestiaOrg 或@AvailProject) 之间的比较上
10/ 让我们假设一个基于以太坊并使用 Celestia 进行 DA(又名 Celestium)的 rollup
因此,以太坊上的 L2 合约像往常一样验证有效性证明或欺诈证明,而 DA 由 Celestia 提供
11/ 在@CelestiaOrg 和@AvailProject 上,没有智能合约或计算,只保证数据可用
12/ 但是让我们仔细看看
在@CelestiaOrg 上,tx 数据由 L2 排序器发布到 Celestia, Celestia 验证者签署 DA 证明的默克尔根,随后发送到以太坊上的 DA 桥接合约进行验证和存储
13/ 与在链上存储 DA 相比,这大大降低了拥有强大 DA 保证的成本,同时也提供了来自 Celestia 的安全保证 ( 而不是中心化的 DAC)
14/ 成本降低方面将改变整个 rollup 领域的游戏规则,因为将数据发布到以太坊 L1 所产生的 calldata 成本占 rollup 费用的 80-90%
有关 calldata 成本的更多信息,请查看下面的帖子👇
https://twitter.com/expctchaos/status/1661794274206445569
15/ 但是在#Celestia 上到底发生了什么?
将发布到@CelestiaOrg 的数据 blob ( 基本上作为原始数据 ) 通过 P2P 网络传播,并且使用 Tendermint 共识达成关于数据 blob 的共识
16/ 每个#Celestia 全节点必须下载整个数据 blob。对于可以使用数据可用性采样 (DAS) 来确保数据可用性的轻节点来说,这是不同的
17/ 有关 DAS 和轻节点的更多信息,请查看下面的帖子
https://twitter.com/expctchaos/status/1662141571666681856
18/ 我们稍后也会在这个线程中回到 DAS,但现在的重点是全节点
所以回到@CelestiaOrg,它继续以 L1 的方式行事,依赖于对数据 blob 的广播和共识
19/ 因此,它对网络的全节点 (128 MB/s 下载和 12.5 MB/s 上传 ) 提出了很高的要求。
尽管如此,@CelestiaOrg 在开始时的目标是达到中等吞吐量 (1.4 MB/s),考虑到全节点需求,这似乎很低
20/ 然而,网络可以通过增加轻节点来扩展吞吐量。数据采样轻节点越多,在保证安全和去中心化的情况下,区块大小可以越大
21/ 另一方面,@eigenlayer 采用了不同的架构,没有自己的共识,也没有点对点网络
那么这是如何工作的呢?
首先,EigenDA 节点必须在@eigenlayer 合约中重新分配 $ETH。因此,#EigenDA 节点是以太坊验证器的一个子集
22/ 随后,DA 买方 ( 例如 rollup,也称为分散器 ) 接收到数据 blob 后,用纠删码对其进行编码,并生成 KZG 承诺…
23 /……其中证明大小取决于纠删码的冗余比率,并发布 KZG 对#EigenDA 智能合约的承诺
24/ 编码后的 KZG 承诺由分散器分发到#EigenDA 节点
在收到 KZG 承诺后,这些节点将其与 EigenDA 智能合约的 KZG 承诺进行比较,并在确认无误后签署证明
25/ 之后,分散器将这些签名一一收集,生成聚合签名,并发布到#EigenDA 智能合约中,由智能合约对签名进行验证
26/ 但是,如果#EigenDA 节点只是简单地签署证明,声称它在这个工作流中存储了编码的数据 blob,而 EigenDA 智能合约只验证聚合签名的正确性,我们怎么能确定 EigenDA 节点真的存储了数据?
27/ #EigenDA 使用托管证明方法来实现这一点
但是让我们后退一步,看看这个变得重要的场景
28/ 让我们假设一些懒惰的验证者没有完成分配给他们的任务(例如确保数据可用)
相反,他们假装已经完成了工作,并签署了最终结果 ( 在数据不可用时谎报数据可用性 )。
29/ 从概念上讲,托管证明就像欺诈证明一样:
任何人都可以向#EigenDA 智能合约提交证明 ( 验证者懒惰 ),该证明将由智能合约进行验证
29/ 如果验证成功,惰性验证器被削减 ( 因为它是一个客观可归因的错误 )
30/ 那么共识呢?
@CelestiaOrg 使用 Tendermint 作为其共识协议,该协议具有单槽最终性。也就是说,一旦一个区块通过了#Celestia 的共识,它就完成了。这意味着最终确定性基本上和出块时间一样快 (15 秒 )。
31/ @AvailProject 使用协议组合来实现最终性。BABE 是具有概率终结性的区块生产机制,GRANDPA 是终结性小工具。虽然 GRANDPA 可以在一个槽中完成区块,但它也可以在一轮中完成多个区块
32/ 由于@eigenlayer 是以太坊上的一组智能合约,对于需要转发到 rollup 合约以证明数据可用性的数据,它也继承了与以太坊相同的最终确定时间(12 - 15 分钟)
33/ 然而,如果 rollup 完全使用@eigenlayer,它可以更快地完成,这取决于共识机制的使用等。
此外,由@eigenlayer 的再质押验证器保护的中间件专注于提供快速结算,例如 EigenSettle 可以提供强有力的经济安全保证,允许最终预确认。然而,硬最终性保证仍然来自以太坊 L1
34/ 是时候重新审视数据可用性抽样概念了
在大多数区块链中,节点需要下载所有交易数据来验证数据的可用性。这造成的问题是,当块大小增加时,需要验证的数据节点的数量也会增加
35/ 数据可用性抽样 (DAS) 是一种允许轻节点通过只下载一小部分区块数据来验证数据可用性的技术
36/ 这为轻节点提供了安全性,以便它们可以验证无效块 ( 仅限 DA 和共识 ),并允许区块链在不增加节点需求的情况下扩展数据可用性
37/ DAS 至少需要一个诚实的全节点和足够数量的轻客户端
38/ 但是如何保证轻节点的安全性呢?
与全节点相比,传统的轻客户端具有较弱的安全性假设,因为它们只验证区块头
因此,轻客户端无法检测到一个无效区块是否是由不诚实的大多数区块生产者生产的
39/ 具有数据可用性采样的轻节点在安全性上得到了升级,因为如果 DA 层只做共识和数据可用性,它们可以验证是否产生了无效块
40/ @CelestiaOrg 和@AvailProject 都将具有数据可用性采样,因此它们的轻节点将具有信任最小化的安全性。
41/ 这与以太坊和@eigenlayer 不同
带有#EIP4844 的以太坊没有数据可用性抽样,因此其轻客户端将没有信任最小化的安全性
42/ 由于以太坊也有它的智能合约环境,轻客户端也需要验证执行 ( 通过欺诈或有效性证明 ),而不是依赖于诚实的大多数假设
43/ @eigenlayer ( 除非有 DAS) 轻客户端,如果支持的话,将依赖于诚实的大多数再质押节点
因此,#EigenDA 的安全性主要基于以太坊验证器集,继承了以太坊 slashing 原语并确保了 DA 的经济安全性
44/ 因此,更多利益相关者参与#EigenDA 意味着更大的安全。减少节点需求也有助于更好地去中心化
45/ 纠删码是使数据可用性采样成为可能的重要机制。纠删编码通过产生数据的额外副本来扩展块。额外的数据产生冗余,为采样过程提供更强的安全保证
46/ 然而,节点可能会试图错误地编码数据以破坏网络。为了防御这种攻击,节点需要一种方法来验证编码的正确性——这就是证明的用武之地
47/ 以太坊,@eigenlayer 和@AvailProject 都使用一种有效性证明方案来确保块被正确编码。这个想法类似于 zk rollup 使用的有效性证明。@eigenlayer 已经在这个线程的前面讨论过了
48/ 每产生一个区块,验证者必须对节点使用 KZG 证明验证的数据做出承诺,证明该区块被正确编码
49/ 虽然,为 KZG 证明生成承诺对区块生产者来说需要更多的计算开销,但当区块很小时,生成承诺不会带来太多的开销。然而,这改变了……
50/……随着区块变得越来越大,KZG 证明的承诺产生的负担要高得多
因此,负责生成这些承诺的节点类型可能需要更高的硬件需求
51/ 另一方面,@CelestiaOrg 为纠删码执行欺诈证明。因此,#Celestia 节点不需要检查块是否被正确编码。他们默认它是正确的
52/ 好处是,区块生产者不需要做昂贵的工作来生成纠删编码的承诺
但是有一个权衡,因为轻节点必须等待很短的时间才能假设一个块被正确编码,并在它们的视图中完成它
53/ 欺诈证明和有效性证明编码方案之间的主要区别在于生成承诺的节点开销和轻节点的延迟之间的权衡
54/ 这个表格很好地总结了比较
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表Bi123的观点或立场