Validium
上次编辑: , Invalid DateTime
Validium 是一种扩容解决方案,使用零知识卷叠等有效性证明来执行交易的完整性,但它不在以太坊主网上存储交易数据。 虽然链下数据可用性是一种折衷方案,但它可以显著提升可扩展性(Validium 每秒可以处理约 9000 笔交易,甚至更多(opens in a new tab))。
前提条件
什么是 Validium?
Validium 是使用链下数据可用性和计算的扩展解决方案,旨在通过在以太坊主网外处理交易来提高吞吐量。 与零知识卷叠(ZK 卷叠)一样,Validium 发布零知识证明以便在以太坊上验证链下交易。 这样可以防止无效的状态转换并增强 Validium 链的安全保障。
这些“有效性证明”可以有 ZK-SNARK(零知识简洁非交互式知识论证)或 ZK-STARK(零知识可扩展透明知识论证)等形式。 更多关于零知识证明(opens in a new tab)的信息。
属于 Validium 用户的资金由以太坊上的智能合约控制。 恰如零知识卷叠一样,Validium 几乎可以提供即时提款;在主网上验证提款请求的有效性证明后,用户可以通过提供默克尔证明提取资金。 默克尔证明验证用户的提款交易是否包含在经过验证的交易批次中,从而允许链上合约处理提款。
但是,Validium 用户可以冻结他们的资金并限制提款。 如果 Validium 链上的数据可用性管理器不给用户提供链下状态数据,就会发生这种情况。 如果无法访问交易数据,用户将无法计算证明资金所有权和执行提款所需的默克尔证明。
这是 Validium 和零知识卷叠之间的主要区别,它们在数据可用性范围内的位置不同。 两种解决方案处理数据存储的方式不同,这会对安全性和去信任产生影响。
Validium 如何与以太坊交 互?
Validium 是建立在现有以太坊链上的扩容协议。 虽然它在链下执行交易,但 Validium 链由部署在主网上的一系列智能合约管理,包括:
验证者合约:验证者合约验证 Validium 运营商在进行状态更新时所提交证明的有效性。 该合约包括证明链下交易正确性的有效性证明和验证链下交易数据存在的数据可用性证明。
主合约:主合约存储区块生产者提交的状态承诺(默克尔根),并在链上验证有效性证明后更新 Validium 的状态。 该合约还处理 Validium 链上的存款和提款。
Validium 还依赖以太坊主链实现:
结算
在父链验证其有效性之前,无法完全确认在 Validium 上执行的交易。 所有在 Validium 上进行的业务最终都必须在主网上结算。 以太坊区块链还为 Validium 用户提供了“结算保障”,这意味着一旦提交到链上,链下交易就不能逆转或改变。
安全性
作为结算层的以太坊也保证 Validium 上状态转换的有效性。 在 Validium 链上执行的链下交易通过以太坊基础层上的智能合约进行验证。
如果链上验证者合约断定证明无效,则交易被拒绝。 这意味着运营商必须满足以太坊协议执行的有效性条件,然后才能更新 Validium 的状态。
Validium 如何运作?
交易
用户向运营商提交交易,运营商是负责在 Validium 链上执行交易的节点。 一些 Validium 可能采用单个运营商来执行链,或者依靠权益证明 (PoS) 机制轮换运营商。
运营商将交易聚合成一个批次并发送到证明线路进行证明。 证明线路接受交易批次(及其他相关数据)作为输入,并输出验证操作正确执行的有效性证明。
状态承诺
Validium 的状态被哈希处理成默克尔树,其根存储在以太坊的主合约中。 默克尔根又称为状态根,作为对 Validium 上当前帐户状态和余额的加密承诺。
要执行状态更新,运营商必须(在执行交易后)计算一个新的状态根并将提交给链上合约。 如果有效性证明得到证实,提出的状态被接受,Validium 切换到新的状态根。
存款和提款
用户通过在链上合约中存入以太币(或任何与以太坊意见征求兼容的代币),将资金从以太坊转移到 Validium。 该合约将存款事件转发到链下 Validium,并向用户在 Validium 上的地址存入与其存款相同的金额。 运营商还将此存款交易添加到新批次中。
要将资金转移回主网,Validium 用户发起提款交易并将其提交给运营商,后者验证提款请求并将其包含在批次中。 在用户能够退出系统前,他们在 Validium 链上的资产也被销毁。 一旦与该批次相关的有效性证明得到验证,用户就可以调用主合约来提取剩余的初始存款。
作为一种抗审查机制,Validium 协议允许用户直接退出 Validium 合约,无需通过运营商。 在这种情况下,用户需要向验证者合约提供默克尔证明,证明帐户包含在状态根中。 如果证明被接受,用户可以调用主合约的提款函数,从 Validium 中提取他们的资金。
批量提交
执行一批交易后,运营商向验证者合约提交相关有效性证明,并向主合约提出新的状态根。 如果证明是有效的,则主合约更新 Validium 的状态并最终确定批次中交易的结果。
与零知识卷叠不同,Validium 上的区块生产者不需要发布交易批次的交易数据(仅发布区块头)。 这使得 Validium 成为一个纯粹的链下扩容协议,而不是在以太坊主链(例如 calldata
)上发布状态 数据的“混合”扩容协议(即二层网络)。
数据可用性
如上所述,Validium 利用一个链下数据可用性模型,运营商通过该模型将所有交易数据存储在以太坊主网之外。 Validium 的低链上数据足迹提升了可扩展性(吞吐量不受以太坊数据处理能力的限制),并降低了用户费用(发布 calldata
的成本降低)。
然而,链下数据可用性带来了一个问题:创建或验证默克尔证明所需的数据可能不可用。 这意味着如果运营商采取恶意行为,用户可能无法从链上合约中提取资金。
各种 Validium 解决方案试图通过以去中心化的方式存储状态数据来解决这个问题。 即,强制区块生产者将底层数据发送给“数据可用性管理器”,这些管理器负责存储链下数据并在用户请求时提供给用户。
Validium 中的数据可用性管理器通过签署每个 Validium 批次来证明链下交易数据的可用性。 这些签名构成了一种“可用性证明”,链上验证者合约在批准状态更新之前对其进行检查。
Validium 的数据可用性管理方法不同。 一些依赖受信任方存储状态数据,而另一些则使用随机指定的验证者。
数据可用性委员会 (DAC)
为了保证链下数据的可用性,一些 Validium 解决方案指定了一组受信任的实体(统称为数据可用性委员会 (DAC))来存储状态副本并提供数据可用性证明。 由于成员较少,数据可用性委员会更容易实施并且需要较少的协调。