# 数据存储所需要知道的一切：Rollup、Validium、Volition

By [Starknet 中文](https://paragraph.com/@starknet-zh) · 2022-11-23

---

> **原文**：[Rollup, Validium, Volition — Where is Your Data Stored?](https://medium.com/starkware/rollup-validium-volition-where-is-your-data-stored-c4015093f615) **翻译及校对**：[「StarkNet 中文社区」](https://twitter.com/StarkNet_ZH)

概要
--

*   StarkWare 提供一系列数据可用性（DA）模式供用户根据优先级进行选择
    
*   STARK 证明的数据可用性有三种方式，都已在生产中可用：
    
    **Rollup**：账本直接发布在区块链上
    
    **Validium**：数据可用性协会 (DAC) 确保账本安全，只有哈希值保存在链上
    
    **Volition**：应用程序可用让用户自己选择每笔交易的 DA 模式，Rollup 或 Validium
    
*   无论使用的哪一种 DA 模式，所有的交易有效性都会由 STARK 有效性证明保障
    

引言
--

到 2022 年 11 月，[StarkEx](https://starkware.co/starkex/) 已经在以太坊上结算了超过 7500 亿美元的交易量和超过 2.7 亿笔交易。在 NFT 领域，StarkEx 为 ImmutableX 和 Sorare 等应用程序提供支持，NFT 铸造量已超过 8500 万，铸造费用比直接在以太坊上铸造便宜 1000 倍。STARK 技术早已成功已应用于扩展以太坊性能。比如，StarkEx 的一周交易量是以太坊的 1.6 倍（StarkEx 为 1200 万，以太坊为 750 万），同时占用的区块空间不到以太坊的 0.1%。而这一切，同时为用户保证直接在以太坊上结算同等安全级别。

StarkWare 是如何做到的？
-----------------

用户在 L2（StarkEx 和 StarkNet）上发送交易，这些交易被分批发送给 STARK 证明器。该 STARK 证明器知道这些交易处理前后的账本状态。证明器生成一个 STARK 证明，证实在这些交易执行后账本新状态的有效性。新状态和 STARK 证明将发送至链上 STARK 验证器。该证明通过以太坊上的不可篡改的智能合约自动验证。

这种架构提供了两全其美的优势，既可以拥有低交易成本，同时还让以太坊作为中立仲裁方。以太坊作为仲裁方不仅是锦上添花，还为终端用户提供了至关重要的安全性。用户可以确信自己的资金受到以太坊的保护，并且交易一旦在以太坊上得到验证就不可更改。用户还可以完全自行保管其资金。自托管非常重要，因为这确保了用户无需依赖任何第三方，可以随时使用资金。

在哪些地方需要数据可用性？
-------------

了解数据可用性之前，先了解证明可以做什么以及不可以不做什么很重要。证明证实了新状态的有效性，但并不会告诉你新状态是什么。为此，数据可用性就派上了用场。如果我们只有证明，那么区块链知道提交的内容是有效的，但并不知道新状态是什么（比如账本余额）！数据使用者包括在这些证明中进行交易的用户。如果用户想要在以太坊上提取资金，则不需要信任 L2 运营商便可获取此类数据，**实现用户完全自托管资金**。

可以类比为高中老师要求你证明 x 等于 x，这很容易。更难回答的是，x 实际上等于什么？这需要一条单独的信息，x 可能等于 5，也可以是其他任何数字。同样，在区块链上，可以将 STARK 证明提交给 STARK 验证器智能合约进行验证，并且验证器可以验证该证明是有效的（即 x 等于 x），但还需要一个单独的输入告诉你 x（新账本余额）是多少。

数据可用有以下三种方式。

### Rollup 模式

Rollup 模式确保账本的状态与证明一起存储在以太坊上。目前 [dYdX](https://dydx.exchange/) 和 L2 公共网络 [StarkNet](http://starknet.io/) 都是使用 Rollup 模式。好处显而易见，可以仅通过与以太坊交互来重新创建账本状态。这意味着，作为终端用户，可以无需信任地与以太坊上的相关智能合约进行交互，即使 L2 系统关闭也可以提取资金。

### Validium 模式

在 Rollup 模式下，大部分以太坊 gas 成本用于数据可用性上，而不是验证证明。因为在区块链上存储数据非常耗费 gas。在 Validium 模式下，账本信息不会发送到以太坊，而是由数据可用性委员会 (Data Availability Committee, DAC) 存储在链下，以太坊仅存储此账本信息的哈希值。该 DAC 由法定人数的独立成员组成，负责监督状态正确更新，并保留已处理数据的副本。每个 StarkEx 实例都可以创立自己的委员会。负责 StarkEx 上运行的现有应用程序数据可用的委员会成员包括 [Consensys](https://consensys.net/)、[Nethermind](https://nethermind.io/)、[Iqlusion](https://iqlusion.io/) 和 [Cephalopod](https://cephalopod.equipment/) 等实体。

Validium 的好处也是显而易见，无需支付以太坊 gas 费用即可将账本信息存储在链上，存储在以太坊上的只有账本信息的单个哈希值。如果你想通过与以太坊交互，从 L2 无需信任地提取资金，只需要 DAC 中一名成员的数字签名。委员会成员用密码学来证明你拥有这笔资金的所有权。

Validium 数据可用性的另一个隐藏好处是，对于查阅区块链的人保密。在 Rollup 模式下，公众可以查阅到每个证明提交时每个帐户的余额。而使用 Validium，这些数据都被隐藏了，只有 DAC 知道，因为数据保存在链下。这种保密级别支持各种实用案例，其中对于混淆交易数据来说很重要。

### Volition 模式

Volition 是一种数据可用性架构，可供在交易层级从 Validium 和 Rollup 模式之间选择。它通过将一个账本保存在链上，另一个账本保存在 DAC 中来实现这点。用户可以在每个单笔交易中选择用 Validium 或 Rollup 模式进行保存。

想象一下，你在 StarkEx 上运行的应用程序上购买了非常昂贵的 NFT，比如 BAYC 或 CryptoPunk，你就会想用 Rollup 模式来保护该 NFT 的数据，因为需要在以太坊上存储该特定交易的记录。然而，你也可能会购买一些非常便宜的 NFT，比如链游里的小道具，在这种情况下，使用 Validium 来节省成本就是很明智的选择。

如果你对 STARK 有效性证明所实现的高扩展性感兴趣，请加入我们的生态系统，并在此基础上再接再厉吧！

---

*Originally published on [Starknet 中文](https://paragraph.com/@starknet-zh/rollup-validium-volition)*
