a16z:关于数据可用性抽样和 danksharding 的概述及改进建议

互联网 阅读 1846 2023-04-28 17:10:00

Danksharding是一种用于扩展未来版本以太坊链上数据量的方法。这次升级的目标是确保链上的数据在首次发布时就能被归档方访问。它通过一种叫做数据可用性采样(简称 DAS)的技术来实现这一目标。

在这篇文章中,我们将研究 Danksharding 中的数据可用性是如何工作的,并对底层技术提出一些修改建议。特别地,我们探讨了一种可能改进数据恢复的小改动:当前的方案需要 75% 的份额来恢复一个区块,而这项修改可能将此界限降低到 25%。

Protodanksharding

Danksharding 计划在 Protodanksharding(EIP-4844)之后推出。Protodanksharding 将通过引入一种名为“携带数据块交易”的新交易类型,使客户端能够将更多数据写入区块链。最初,这种新交易类型将携带多达四个数据块,每个数据块最大为 128 KB(每个 32 字节的 4096 个字段元素),每个区块可添加多达 512 KB 的额外数据(平均目标为 256 KB),而目前以太坊的区块大小平均为 100 KB。

这些数据块将被处理得不同:

(一)它们只会被存储一段有限的时间,比如 30-60 天;

(二)尽管这些数据是交易数据的一部分,但智能合约无法直接访问这些数据。相反,智能合约只能访问到数据块数据的一个简短承诺,称为 DATAHASH。验证者承担的额外负担似乎是可以接受的:验证者目前存储不到 100 GB 的数据以维护区块链的状态。在 protodanksharding 之后,他们将不得不额外存储 50-100 GB 的数据。

紧接着将推出 Danksharding。它将通过增加每个区块的数据块数量上限,将客户端可用的数据提高 60 倍。区块将从每个区块 0.5 MB 增长到 30 MB。但是,因为验证者不能被迫存储 60 倍的数据,数据将在它们之间分散,使得每个验证者只存储一小部分数据。然而,他们可以通过数据可用性采样(DAS)协议就他们是否共同存储所有数据达成共识。

验证者这些数据块的定价将通过类似于 EIP-1559 的机制进行,并且将以每字节约 1 个数据-gas 为目标。当前最便宜的替代品 Calldata 的价格为每字节 16 gas。但由于有两个不同的费用市场,这些费用无法直接比较。Roll-up 客户端将从这些升级中受益,因为目前超过 90% 的客户端费用用于支付以太坊数据费。

其他项目,如 Celestia 和 EigenLayer,也采用 DAS 技术来增加可用的数据空间。这些设计比完全分片的以太坊网络要简单得多。

数据可用性采样的目标

我们描述这个方案,假设采用了提议者-构建者分离(PBS)设计:

  • 客户端将其携带数据块的交易提交给区块构建者。
  • 区块构建者通过选择 N 个客户端数据块来形成一个区块 B。数据块编号为 i,附带一个由发送它的客户端签名的简短承诺 Ci。让 C =(C1,...,CN)是区块 B 中所有 N 个签名承诺的列表。
  • 区块构建者将他们提议的区块提交给当前的区块提议者(验证者之一)。区块提议者选择其中一个区块并将其原样发布到网络上。

验证者挑战在于确保稍后可以重建区块B。为此,构建者将区块在 V 个验证者的大型网络中进行复制。可以要求每个验证者都存储整个区块,但这被认为太昂贵。相反,区块构建者:

  1. 使用纠删码将区块B编码成更大的区块E;
  2. 将区块E分成V个重叠的片段P1,...,PV;
  3. 将一对(Pi,C)发送给编号为i的验证者。

每个验证者检查它接收到的片段Pi是否与签名承诺列表C一致。区块构建者为验证者提供证明以方便这些检查。

有了这个设置,数据可用性采样方案有两个协议:

  1. 采样协议在采样验证者和验证者集之间运行。采样验证者将列表C作为输入,并从验证者集合中随机请求区块E的元素。如果采样验证者收到了所有请求的元素,并且都与C一致,它将输出成功。
  2. 重构协议在重构代理和验证者集之间运行。重构代理将C作为输入,从验证者集请求区块E的元素。一旦收集到超过75%的元素,且所有元素都有效,重构代理计算并输出区块B。 (我们在下面讨论了一种可能减少重建所需元素数量的方法。)

要求是,如果采样验证者输出成功,那么只要输入超过四分之三的元素,重构代理将输出区块B。只要提供足够的元素,即使提供的元素是对抗性选择的,重构也应该成功。

总之,以下各方参与到Danksharding中:

  • 客户端:将数据块(可以是交易或捆绑包)发送给构建者。
  • 构建者:创建区块并将此区块的片段发送给验证者。
  • 区块提议者(验证者之一):将区块发布到网络。
  • 采样验证者(任何一个验证者):运行采样协议,如果协议输出成功,则对区块头进行签名。
  • 重构代理:在需要时与整个验证者集合进行交互以重构先前发布的区块。如果验证者回应超过四分之三的有效元素,重构将成功。

纠删编码和多项式承诺

接下来我们解释该方案的两个构建模块:纠删编码和多项式承诺。

构建模块#1:纠删编码

纠删编码可以追溯到20世纪60年代,它的产生是为了满足在损耗信道上传输信息的需求。在danksharding中,它被用来防止验证者丢失数据片段。该技术将数据从N个元素扩展到M个元素(M > N),以便可以从扩展数据的任何完整的N个元素中重建原始数据。想象一下,将N个元素(原始数据)编码成M = 2N个元素,并将一个编码元素分给2N个验证者。如果大多数验证者都是诚实的,他们就可以共同重建原始数据。这种技术可以防止任何一半验证者的崩溃故障。通过在下一节中讨论的多项式承诺,可以扩展以防止一半验证者的拜占庭行为。

以下是扩展的详细过程。要将数据从N个字段元素d1、d2、...、dN ∈

免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
上一篇:一文速览 Lens Protocol 扩展解决方案 Momoka:运作方式、基本构成与特点 下一篇:Binance「闺蜜板块」传闻从何而来?

您可能感兴趣

  • 如何通过DeFi协议杠杆挖矿提升稳定币年化收益?
    如何通过DeFi协议杠杆挖矿提升稳定币年化收益?

    在当前加密货币市场震荡行情下,通过去中心化金融(DeFi)协议进行杠杆挖矿已成为提升稳定币收益的有效方式。杠杆挖矿本质上是通过借贷额外资金放大本金投入流动性池(LP)的策略

    专栏精选 2025-08-30 21:00 8
  • 永续合约与传统期货合约的区别是什么?
    永续合约与传统期货合约的区别是什么?

    永续合约与传统期货合约的主要区别在于标的物类型、交割机制、持有期限和价格锚定方式四个方面。永续合约以加密资产为标的,没有到期日,通过资金费率机制维持价格稳定;传统期货

    专栏精选 2025-08-30 20:45 10
  • 如何查询比特币多空持仓比例数据?
    如何查询比特币多空持仓比例数据?

    比特币多空持仓比例是反映市场情绪的重要指标,通过多头与空头持仓量的对比,用户可以判断当前市场多数参与者对未来价格走势的预期。本文将详细介绍五种主流查询渠道及其操作方

    专栏精选 2025-08-30 20:30 14
  • USDT在中国法律框架下的合规性解析
    USDT在中国法律框架下的合规性解析

    USDT在中国法律框架下的交易活动存在明确限制,个人持有虽未被直接禁止,但任何形式的交易行为均可能涉及非法金融活动风险。以下从定义、法律边界及风险应对三方面展开分析。一

    专栏精选 2025-08-30 20:15 14
  • USDT场外交易(OTC)全流程详解
    USDT场外交易(OTC)全流程详解

    USDT场外交易(Over-The-Counter,简称OTC)是一种直接买卖USDT的方式,通过点对点(P2P)交易平台完成,支持多种支付方式,如银行转账、支付宝、微信等。相较于交易所交易,OTC交易流动性高,

    专栏精选 2025-08-30 20:00 15
  • 永续合约短线交易必备的三大技巧
    永续合约短线交易必备的三大技巧

    永续合约短线交易是一种高收益、高风险的交易策略,需要结合趋势判断、风险控制与仓位管理才能有效提升成功率。以下是三大核心技巧:顺应趋势、严格止损、合理分配仓位。技巧一

    专栏精选 2025-08-30 19:45 15
  • Coinbase CEO:全员强制 AI 编程,违者开除
    Coinbase CEO:全员强制 AI 编程,违者开除

    作者:J0hn,AGI HuntCoinbase 的工程师们收到了一份不容拒绝的通知:要么用 AI,要么走人。Coinbase CEO Brian Armstrong 在 Stripe 联合创始人 J

    每日资讯 2025-08-30 19:30 18
  • 币圈杠杆交易爆仓风险如何规避?
    币圈杠杆交易爆仓风险如何规避?

    杠杆交易是加密货币市场中常见的投资策略,它允许用户通过借入资金来放大交易规模,但同时也伴随着较高的爆仓风险。本文将详细分析如何规避杠杆交易中的爆仓风险,并提供实用的风

    专栏精选 2025-08-30 19:30 19