以太坊Layer2扩容方案之Validium

一 什么是Validium?

Validium也是一个以太坊的Layer2的扩容方案,它主要是在链下处理交易、链下保证数据可用性(链下存储数据)、同时生成零知识证明对交易有效性进行确认。

二 Validium如何工作的?

2.1 提交交易

用户提交交易,交易会提交给Operator运营商,这里的运营商其实就是执行交易的Validium Node。这里的Operator可以是单个,也可以是多个

2.2 处理交易

2.2.1 收集交易,组成批次

操作员收集一定时间段内的交易,并将这些交易组织成一个批次

2.2.2 处理交易

2.2.2.1 验证交易有效性

验证签名: 操作员首先验证每笔交易的签名,以确保交易是由合法的账户发起的 校验余额: 验证交易账户是否有足够的余额进行交易。这一步确保不会出现超额支出的情况,确保交易的资金有效性。

2.2.2.2 交易排序

Operator按照一定规则(如时间戳、费用等)对交易进行排序。排序的目的是优化处理效率和确保交易的公平性。

2.2.2.3 打包批次

将多笔交易打包成一个批次,以便后续的统一处理

2.2.2.4 状态更新

操作员根据交易内容更新账户的状态(如余额变动), 这一步涉及修改链下状态数据库,记录每个账户的新状态。为每个更新后的状态生成新的哈希值,这些哈希值将用于生成新的状态根

2.3生成零知识证明

操作员使用使用特定的证明电路生成零知识证明,验证这些链下交易的正确性。ZK 证明确保所有链下计算都是正确进行的,同时保护交易的隐私。

2.4 提交状态承诺和零知识证明到链上

Operator运营商根据批次生成最新的state root, 作为状态承诺,和生成的零知识证明(证明链下交易的正确性) 一起提交到L1主网中

2.5 数据链下存储

Validium 依赖数据可用性委员会(DAC)来管理链下数据的存储和可用性。这确保在需要时数据可被访问和验证。

2.6 主网验证和记录

2.6.1 验证零知识证明

以太坊主网的智能合约验证收到提交的零知识证明,则会进行验证,从而确认链下处理的正确性和新的状态根的有效性。

2.6.2 记录状态根

一旦验证通过,新的状态根(State Root)在以太坊上记录,确保链下状态的合法性和最终性。通常记录在区块头或专门的智能合约中。这一步骤确保了链下状态的透明性和可追溯性。

状态根的记录相当于对链下状态的一种承诺,表示所有提交的链下交易都已被确认和记录。通过记录状态根,用户和验证者可以使用默克尔证明(Merkle Proofs)来验证特定交易是否包含在状态中,而无需下载和验证整个状态。这大大提高了数据验证的效率。争议解决:在发生争议时,状态根可以作为验证链下数据完整性的依据。用户可以提交相关证明来解决争议,确保数据的透明性和正确性

2.7存款和提现

2.7.1 存款

用户将 ETH 或其他代币发送到以太坊上的特殊合约。该合约记录存款并通知链下的 Validium 操作员。操作员在链下账户中记入用户的存款操作员在链下账户中记入用户的存款

2.7.2 提现

用户提现请求:用户提交提现请求给操作员。批处理提现请求:操作员将提现请求包含在一个批次中,并生成相应的 ZK 证明。验证和提现:主网验证提交的 ZK 证明和提现请求。一旦验证通过,用户可以从以太坊主网的合约中提取相应的资金。

三 validium 优缺点

3.1 优点

3.1.1 高吞吐量

链下数据可用性提升了吞吐量并增强了可扩展性

3.1.2 交易费用降低

不需要将交易数据发布到主链,大大降低了交易费用

3.1.3 具有一定的隐私性

数据只在链下存储,不在链上存储,那么就不会被链上所访问,因此具有一定的隐私保护作用

3.1.4 可以快速提现,没有挑战期限制等

3.2 缺点

3.2.1 数据可用性风险

Validium 依赖链下数据可用性,这带来一定的风险。因为如果Operator运营商或数据可用性管理者隐瞒交易数据,可能无法生成必要的证明来提现用户资金

3.2.2 中心化风险

生成有效性证明需要使用专用硬件,这会带来中心化风险。因为如果只有少数实体能够负担所需资源,他们可能会主导网络,损害其去中心化特性

3.2.3 算力成本

生成零知识证明需要强大的算力;对于低吞吐量的应用不具有成本效益

3.2.4 不能值依赖加密安全机制

与完全依赖加密安全机制的零知识卷叠不同,它还依赖于信任假设和加密经济激励措施

四 validium和plasma比较

4.1 相同点

第一: 都是属于Layer2链下扩容方案,可以增加交易吞吐量,减少交易费用 第二: 都通过将大部分交易和数据处理移到链下进行,以减少主链的负担

4.2 不同点

4.2.1 数据处理方式不一样

Plasma: 存钱和提现都是从L1层发起的;需要提交state root到L1主链 Validium: 存钱是L1发起的,提现是L2发起的;不仅要提交state root, 还需要生成零知识证明提交到L1主链

4.2.2 安全模型不一样

Plasma: 使用欺诈证明机制,通过主链处理争议来确保安全性。用户有一定时间窗口提交欺诈证明。Validium:  主要依赖零知识证明来验证链下交易的正确性,确保数据隐私和安全

4.2.3 成本和性能不一样

Plasma: 大部分交易计算在链下处理,费用较低。但是在提交检查点和处理争议时候,可能会产生一定的链上成本 Validium: 大部分交易计算在链下处理,费用较低。用户只需支付提交 ZK 证明和状态根的成本

4.2.4 使用场景不一样

Plasma: 适用于需要高安全性和复杂交易处理的应用,但是成本又不需要很高适合企业级应用和跨链解决方案 Validium: 适用于高频交易、去中心化金融(DeFi)、游戏等需要高吞吐量和低成本的应用。因为有高效的链下处理能力和较低的交易成本

五 validium和zk rollup比较

5.1 相同点

5.1.1 链下计算

两者都将大部分计算和交易处理移到链下,以减少主链的负担,提高系统的扩展性和吞吐量

5.1.2 零知识证明

两者都使用零知识证明技术来验证链下交易的正确性和合法性。零知识证明确保了隐私和数据完整性,不需要公开交易的具体细节

5.1.3 状态根提交到主链

Validium 和 ZK Rollup 都定期将状态根(state root)提交到以太坊主链,以确保链下状态的更新和验证

5.2 不同点

5.2.1 数据存储不同

Validium: 数据存储在L1链下 ZK Rollup: 数据批量压缩提交到L1链上存储

5.2.2 数据可用性风险

Validium: 将交易数据存储在链下的数据可用性委员会(DAC)或其他分布式存储系统中。数据不直接存储在主链上。如果数据可用性委员会失职或恶意(停机、故意不将一些交易打包),用户可能无法访问必要的数据。

ZK Rollup: 由于所有交易数据都存储在主链上,数据可用性更有保障,用户可以随时访问和验证交易数据

5.2.3 安全程度不同

Validium:依赖数据可用性委员会 Validium 的安全性部分依赖于数据可用性委员会的行为。如果委员会失职或恶意,可能会影响系统的安全性。ZK Rollup:完全链上验证 ZK Rollup 完全依赖主链进行数据验证和存储,确保了更高的安全性和透明度

5.2.4 交易成本

Validium:由于数据不需要存储在主链上,Validium 可以显著降低交易成本,特别是对于大量小额交易。ZK Rollup:尽管相比传统链上交易成本已经降低,但由于所有数据最终需要提交到主链,ZK Rollup 的交易成本仍然高于 Validium

5.2.5 隐私性

Validium:因为数据在链下存储,没有在主链上,所以具有一定的隐私性 ZK Rollup:数据在链上存储,不具备隐私性

5.2.6 使用场景

Validium: 更加适合高频交易或者对于隐私性有要求的场景 ZK Rollup: 适合一些普通或者对隐私性没有要求的场景

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注