{"content":{"title":"解析 Avail DA","body":">- 原文链接：https://docs.availproject.org/docs/introduction-to-avail/avail-da\r\n>- 译者：[AI翻译官](https://learnblockchain.cn/people/19584)，校对：[翻译小组](https://learnblockchain.cn/people/412)\r\n>- 本文永久链接：[learnblockchain.cn/article…](https://learnblockchain.cn/article/9133)\r\n    \r\n## Avail DA\r\n\r\n> 构建与Avail DA，有效性证明的数据可用性层统一Web3\r\n\r\nAvail DA 是为满足下一代、信任最小化应用和主权 Rollup 的需求而构建的。其优势在于其创新的安全方法，使轻客户端能够通过对等网络上的采样轻松验证数据可用性。我们的模块化方法简化了开发人员的区块链集成，因为他们不再需要担心验证者集或代币经济学。凭借 Avail DA 无与伦比的数据可用性接口和强大的安全功能，开发人员可以更高效、更轻松地创建基于零知识或欺诈证明的区块链应用。\r\n\r\nAvail DA 的核心优先考虑排序和发布交易，同时使用户能够在不需要下载整个区块的情况下验证区块数据的可用性。Avail DA 的数据无关性是其定义特征之一。它支持各种执行环境，包括 EVM、WASM 和自定义新运行时，为多样化的区块链应用提供了多功能的基础。\r\n\r\n  \r\n### L2 扩展概述\r\n在传统的区块链网络中，全节点执行所有交易，确保完整性和安全性。然而，尽管这种模型是安全的，但由于其全面的处理要求，限制了吞吐量和可扩展性。Layer 2 (L2) 解决方案应运而生，通过将大部分交易执行从主链 (Layer 1) 转移出去来提高性能。\r\n\r\n尽管有其优势，L2 解决方案在保持数据可用性和交易完整性方面面临挑战，尤其是在高效且成本效益高的方式上。Rollup 旨在通过链下执行交易，然后将聚合结果发布回主链来缓解这些挑战。这种方法显著减少了 Layer 1 的压力，降低了运营成本和交易费用，为区块链网络提供了更具可扩展性的解决方案。\r\n\r\nRollup 主要有两种形式：\r\n\r\n**Optimistic Rollup:**\r\n\r\nOptimistic Rollup 基于假定有效性的原则，交易被假定为有效，除非被证明无效。其生命周期包括：\r\n\r\n1. **交易聚合**: 交易由排序器收集并形成一个 Rollup 区块。\r\n\r\n2. **区块提交**: 该区块提交到基于以太坊的智能合约，并附带保证金作为安全措施。\r\n\r\n3. **假定有效性**: 交易在提交时被假定为有效。\r\n\r\n4. **挑战窗口**: 提交欺诈证明的时间段，允许对区块有效性提出挑战。\r\n\r\n5. **结果**:\r\n\r\n   * **挑战成功**: 保证金被没收，区块被撤销。\r\n   * **无挑战**: 如果没有挑战，区块被最终确定。\r\n\r\n**ZK Rollup:**\r\n\r\nZK Rollup 需要预先提供交易有效性的加密证明，重点在于安全性和数据完整性。其生命周期包括：\r\n\r\n1. **有效性要求**: 在区块提交之前必须提供有效性证明。\r\n\r\n2. **区块提交**: 区块与所需的有效性证明一起提交。\r\n\r\n3. **假定有效性**: 与 Optimistic Rollup 不同，预先要求有效性证明。\r\n\r\n4. **数据可用性**: 虽然有效性证明独立于数据可用性，但链的安全性在很大程度上依赖于数据可用性。\r\n\r\n5. **数据不可用的影响**:\r\n\r\n   * **状态重建**: 如果数据不可用，用户无法重建状态。\r\n   * **排序器干预**: 其他排序器可以介入恢复状态并继续操作。\r\n\r\n尽管如此，数据可用性仍然存在限制。\r\n \r\n\r\n## 数据可用性 \r\n\r\n  \r\n**什么是数据可用性问题？**\r\n\r\n数据可用性问题是区块链和分布式账本技术中的一个关键问题，集中在需要使所有交易数据在网络中公开可访问和可验证。这一挑战对区块链的完整性和安全性至关重要。\r\n\r\n在区块链系统中，每个区块的交易数据需要由网络节点验证。当节点试图通过下载和验证交易数据来验证新块时，问题就出现了。问题的核心不仅在于发布数据，还在于确保其在网络中的可靠分发，保证所有参与者的平等访问。\r\n\r\n数据可用性问题在 L2 网络中特别显著，原因有以下几点：\r\n\r\n* **链下交易**: L2 解决方案在主链之外处理交易以提高可扩展性。然而，这可能导致在验证所有交易数据是否完整和准确方面的挑战，因为它们不会立即记录在 L1 区块链上。\r\n* **对 Layer 1 的安全依赖**: 尽管 L2 网络独立于交易处理，但它们依赖 L1 的安全性。确保从 L2 到 L1 的数据传输完整和准确对于维护整个网络的完整性至关重要。\r\n* **解决机制对数据的依赖**: L2 网络可能使用欺诈证明等机制进行争议解决。这些机制的有效性取决于交易数据的可用性和可访问性。\r\n* **透明性和信任问题**: 透明性是区块链技术的核心原则。在 L2 网络中，任何数据可用性的妥协都可能导致信任问题，因为用户可能无法独立验证交易。\r\n* **验证复杂性的增加**: L2 的增加使得确保数据准确报告回主链变得复杂。这增加了数据可用性问题的风险，影响网络的可靠性。\r\n\r\n\r\n### Layer 2 的数据可用性 \r\n\r\nL2 解决方案中的数据可用性可以分为两种方法：\r\n\r\n*   **链上数据可用性**: 所有交易数据都存储在 L1 链上，提供更高的安全性但成本更高。\r\n*   **链下数据可用性**: 数据存储在链下，只有加密摘要（哈希）在链上。这种方法具有成本效益，但依赖于外部实体进行数据检索。\r\n\r\n这些方法强调了 L2 在增强状态管理和与 L1 交互中的作用。\r\n\r\n### 将 Layer 2 数据移至链下 \r\n\r\nRollup 的适应性代表了一类可扩展性解决方案，它们在保持交易处理完整性的同时提供链下数据可用性。这些解决方案包括：\r\n\r\n*   **Validium: ZK Rollup + 链下 DA**\r\n*   **Optimium: Optimistic Rollup + 链下 DA**\r\n*   **Volition: ZK Rollup + Validium**\r\n*   **主权 Rollup: 具有自定义 DA 和安全模型的独立 Rollup**\r\n\r\n将数据可用性移至链下本质上增加了额外的信任依赖，因为它们依赖于外部数据管理者。\r\n\r\n  \r\n**什么是 Validium？**\r\n\r\nValidium 是 ZK Rollup 的直接适应，将数据可用性移至链下，同时继续使用有效性证明。\r\n\r\n它们代表了一类以链下计算和强大有效性证明为特征的扩展解决方案。与传统方法不同，Validium 不在以太坊主链上存储数据，从而显著提高了交易吞吐量。这些系统的基石是使用零知识证明，例如 ZK-SNARK 或 ZK-STARK。这些加密工具使一方能够在不透露除声明有效性之外的任何其他信息的情况下向另一方确认声明的真实性。在 Validiums 中，所有交易的完整性通过这些有效性证明来保障，而数据可用性则保持在链下。这种架构允许用户通过提供默克尔证明来执行提现。这样的证明可以证明包含用户的提现交易，从而使链上合约能够促进提现过程。\r\n\r\nValidiums 和以太坊之间的交互通过一套智能合约进行协调。在这个设置中，主要组件是主证明合约。该合约存储状态承诺，表示为默克尔数据根，由区块生产者提交。此外，验证合约在状态转换期间验证有效性证明，这对于确保 Validiums 在以太坊生态系统中的无缝集成和操作至关重要。\r\n\r\n**什么是 Optimiums?**\r\n\r\nOptimium 是对 Optimistic Rollups 的直接改编，并且也将数据可用性移至链下。它们保留了欺诈证明机制以进行验证，同时提高了可扩展性。\r\n\r\nOptimiums 的核心原则是假定交易有效性。系统内的交易最初被假定为有效。这种假设一直成立，直到通过欺诈证明机制证明相反。这些机制对于维护网络的完整性和可靠性至关重要。如果交易被质疑并被发现是欺诈性的，它将被撤销，从而确保网络的安全性和忠实性。\r\n\r\nOptimiums 与传统对手的主要区别在于链下存储交易数据。这一战略转变通过减少主以太坊链上的数据负载显著提高了网络效率和可扩展性。然而，这也引入了新的数据检索和验证考虑，这些问题通过欺诈证明系统得到了巧妙处理。\r\n\r\n在 Optimiums 中，用户可以无缝地执行交易和与系统交互。提现通过提交验证交易真实性的欺诈证明来处理。这些证明是确保网络内所有操作合法且符合既定规则的基石。\r\n\r\nOptimiums 与以太坊主链的集成通过一组专门的智能合约进行管理。这些合约共同监督交易生命周期，从提交到最终确定，同时确保所有数据虽然存储在链下，但在需要时仍然可访问和可验证。\r\n\r\n**什么是 Volitions?**\r\n\r\nVolitions 代表了扩展解决方案领域中的一种多功能方法。它们结合了 ZK-Rollups 和 Validiums 的特性。这种混合模型在数据存储方面提供了灵活性，允许用户根据其特定需求和偏好选择链上或链下数据可用性。\r\n\r\nVolitions 的核心利用零知识证明，如 ZK-SNARKs 或 ZK-STARKs，以确保交易的完整性和有效性。这种机制使得在不妥协隐私或暴露底层数据的情况下进行交易验证成为可能。\r\n\r\nVolitions 的独特特性在于其双模式操作。用户可以选择 ZK-Rollup 模式，在该模式下，交易数据存储在链上，从而受益于以太坊主链的安全性和去中心化。或者，用户可以选择 Validium 模式，该模式将交易数据存储在链下，从而提高可扩展性和吞吐量，同时保持强大的有效性证明。\r\n\r\n在这两种模式下，交易的完整性通过零知识证明得以维持，但数据可用性模式的选择允许在可扩展性、安全性和成本效益之间实现定制化平衡。\r\n\r\nVolitions 与以太坊生态系统的交互也通过一套全面的智能合约进行管理。这些合约管理状态承诺和有效性证明验证，确保系统无论选择何种数据可用性模式，都能保持安全、高效并与以太坊无缝集成。\r\n\r\n**什么是 Sovereign Rollups?**\r\n\r\nSovereign Rollups 代表了一类独特的区块链扩展解决方案，每个 Rollup 作为一个自我管理的实体运行，拥有自己的验证者集和共识规则。与传统的依赖于特定主链的安全性和数据可用性模型的 Rollup 不同，Sovereign Rollups 在这些方面保持自治。\r\n\r\n这些 Rollup 提供了可扩展性和主权的独特组合，使它们能够根据特定的用例或社区需求定制其基础设施。通过管理自己的数据可用性，无论是链上还是链下，Sovereign Rollups 可以根据其需求优化性能、成本和安全性。\r\n\r\nSovereign Rollups 的关键特性在于其在升级、代币经济学和治理模型方面的独立决策能力。这种自治使得区块链扩展能够采用更灵活和适应性强的方法，以满足多样化和不断发展的生态系统需求。\r\n\r\n在 Sovereign Rollups 中，交易的完整性通常通过定制的共识机制或加密证明来维护，它们与主链（如果有的话）的交互由其独特的治理协议定义。这种结构使它们能够作为独立的区块链运行，同时仍然受益于 Rollup 技术的可扩展性特征。\r\n\r\nAvail DA 通过提供强大且可靠的链下数据可用性机制来解决这些信任假设。这种集成显著增强了交易数据的完整性和可访问性，同时最小化了对基于信任的数据管理的依赖，从而提高了各种扩展解决方案的整体安全性和效率。\r\n\r\n## Avail DA 系统设计概述 \r\n\r\n通过解耦数据托管、执行和验证，Avail DA 优化了每个组件的效率和有效性，这是模块化的直接结果。\r\n\r\n### 数据托管和排序层（DA 层） \r\n\r\n在基础层，DA 层负责摄取和排序交易数据。该层不参与执行交易，而是专注于存储数据并保证其可用性。DA 层对于确保系统不依赖每个全节点来执行交易至关重要，从而缓解了传统区块链中的瓶颈问题。\r\n\r\n### 执行层（Exec 层） \r\n\r\nExec 层与 DA 层接口以访问已排序的交易。然后，它处理这些交易并生成必要的检查点、断言或证明。这些随后提交给验证/争议解决层（DR 层），该层可以被视为 Avail 生态系统的安全锚。\r\n\r\n### 验证/争议解决层（DR 层 ）\r\n\r\nDR 层作为裁决组件，验证执行层提交的检查点或证明。这确保了网络内仅接受有效的状态转换。\r\n\r\n### 网络参与者 \r\n\r\nAvail DA 包含三种类型的节点：\r\n\r\n*   **全节点**：这些节点下载并验证区块的正确性，但不参与共识过程。它们的角色对于维护网络的完整性至关重要。\r\n*   **验证节点**：这些节点是 Avail DA 共识机制的核心。它们负责生成区块、决定交易的包含并维护排序。验证节点通过参与共识获得激励，是 DA 层操作的基础。\r\n*   **轻客户端**：轻客户端在资源受限的情况下运行，依赖区块头参与网络。它们可以根据需要查询全节点以获取特定的交易数据，对于维护去中心化和可访问的网络至关重要。\r\n\r\n### 共识\r\n\r\nAvail DA 选择了提名权益证明 (NPoS) 共识模型，以实现其可扩展性和能源效率的优势。具体来说，它采用了 Substrate 的 BABE/GRANDPA 共识，提供了快速区块生成和可证明的最终性。\r\n\r\n## Avail DA 如何工作？ \r\n\r\nAvail DA 通过结合纠删编码、KZG 多项式承诺和数据可用性采样，重新定义了区块链的可扩展性，提供了世界级的数据可用性保证。它作为一个基础层，提供可扩展的数据托管，而不执行交易，特别是为 Rollup 提供支持。\r\n\r\n### 交易生命周期 \r\n\r\n1.  **交易提交**\r\n2.  **数据扩展和纠删编码**\r\n3.  **承诺创建**\r\n4.  **区块传播**\r\n5.  **轻客户端网络**\r\n6.  **证明验证**\r\n\r\n### 从交易提交开始 \r\n\r\n作为 Avail DA 的主要消费者，Rollup 通过向 Avail DA 提交交易来开始这个过程。每笔交易都带有一个唯一的 [应用程序 ID](https://docs.availproject.org/docs/end-user-guide/app-id)（简称 appID），表示其在更广泛生态系统中的来源和目的。\r\n\r\n### 通过纠删编码增强数据可靠性\r\n\r\n一旦交易到达 Avail DA，它们将通过纠删编码进行处理。此过程增加了冗余性，增强了数据的可靠性和完整性。区块被分成 `n` 个原始块并扩展到 `2n`，允许从任何 `2n` 块中的 `n` 块进行重建。虽然 Avail DA 包含欺诈证明机制，但数据完整性的主要依赖是验证者的共识。超过 2/3 的验证者需要诚实才能达成共识，确保纠删编码数据的强大安全性。\r\n\r\n> 为了对抗纠删编码块的误构建，全节点可以创建和传播 **欺诈证明**，确保轻客户端可以验证区块头的真实性。\r\n\r\n### 通过承诺创建巩固数据完整性\r\n\r\nAvail DA 将冗余数据应用于每个区块的 KZG 多项式承诺。这些承诺作为数据完整性的加密证明，确保存储的数据是准确且防篡改的。验证者使用这些承诺来确认数据的完整性，然后通过 Avail DA 的 [数据证明桥](https://docs.availproject.org/docs/learn-about-avail/glossary#data-attestation) 进行验证和传输。\r\n\r\n### 确保共识和区块传播\r\n\r\n验证者在 Avail DA 中扮演着关键角色。他们接收带有承诺的区块，重新生成承诺以验证其准确性，并对区块达成共识，这需要至少三分之二（超级多数）的同意。验证者确保只有经过验证和同意的数据才能通过网络传播。他们达成共识 这一阶段对于确保数据一旦验证后，可以通过 Avail DA 的数据证明桥进行中继至关重要。\r\n\r\n### 轻客户端：使用 DAS 的数据可用性守护者 \r\n\r\nAvail DA 生态系统中的轻客户端使用 [数据可用性采样 (DAS)](https://docs.availproject.org/docs/learn-about-avail/glossary#data-availability-sampling-das) 来验证区块数据的完整性。他们检查区块头中每个采样单元的 KZG 多项式开口，能够独立且即时地验证数据可用性。这种方法绕过了重建完整 KZG 承诺或依赖欺诈证明的需要，支撑了 Avail DA 由去中心化验证维护的高安全性和数据完整性标准。然而，对于更全面的数据完整性检查，特别是数据矩阵中的行完整性，应用客户端执行 KZG 重建。这种方法比验证单个单元更适合验证整个行的完整性。\r\n\r\n> 另一方面，全节点使用 Kate 承诺有两个主要目的：重建全数据以进行网络范围的验证或创建欺诈证明以挑战数据中的任何差异。轻客户端和全节点协同工作的双重机制也增强了网络的整体安全性和可靠性。\r\n\r\n### 证明验证：最后的检查点\r\n\r\n这一过程以轻客户端执行证明验证而告终。此过程涉及从数据矩阵生成单元级别的证明，使轻客户端能够高效且独立地验证区块链的状态。这种去中心化的验证方法支撑了 Avail DA 的安全性和完整性。\r\n\r\n> Avail DA 的结算主要是确保 Rollup 的数据可用性。实际的交易执行和最终性发生在 Rollup 层，而 Avail 提供必要的数据基础设施。\r\n\r\n> 我是 [AI 翻译官](https://learnblockchain.cn/people/19584)，为大家转译优秀英文文章，如有翻译不通的地方，在[这里](https://github.com/lbc-team/Pioneer/blob/master/translations/9133.md)修改，还请包涵～"},"author":{"user":"https://learnblockchain.cn/people/22406","address":null},"history":null,"timestamp":1724839698,"version":1}