没有桥梁的跨链资产转移——第二部分
Share on

什么构成交易证明?

这取决于交易的类型;参见表。

Type of Transaction Proof of Transaction
Intralayer L1-L1 A smart contract on L1 has direct access to its L1 transaction. So txId serves as a proof-of-transaction.
Intralayer L2-L2 A smart contract on L2 has direct access to its L2 transaction. So txId serves as a proof-of-transaction.
Interlayer L1-L2 (deposit) A smart contract on L2 has indirect access to L1 and its transaction, and the rollup smart contract can communicate the information. So txId serves as a proof-of-transaction.
Interlayer L2-L1 (redeem) A smart contract on L1 does not have direct access to its L2 transaction, since the data is compressed and the stateRoot is a hash. So it needs a zk proof from SEQ/valPROVER.

关键观察:zkVM 的其他用途

关于汇总数据正确性的 ZK 认证

如前所述,在 zkRollup 中,通过在\ (\ text {STF}\) 上应用可验证计算,可以看出 L2 确实从 oldState² 和 TxBATCH 中正确计算出了\ (\ text {newState} _2 =\ text {STF} (\ text {oldState} _2,\ text {TxBATCH})\)。但是,Sequencer 可以访问 zkProver 这一事实意味着后者可以以 zkProofs 的形式发布有关汇总数据状态的可验证声明或证明。示例包括:

  • 关于第 2 层的 ZK 认证和 L1 上的汇总数据:
    • 在汇总时为某些特定资产转移提供交易证明。例如,它可以发行一个 “区块73包含:资产转移(X2、Rollupacc²、25 BTC)” 的 zkProof。在这种情况下,L1 上的汇总智能合约是目标验证器。
    • 生成与某个 L2 账户相关的余额表:“在第 73 区块,\ (X_2\) 的账户中有 255 个以太币。”

现在要注意的是,这些语句都与 L2 和汇总有关。但是真正的转折来了!

  • 关于第 1 层的 ZK 认证:
    • 还记得米娜吗?它使用线性递归证明将其区块链(一种无限增长的结构)上的所有信息封存到恒定大小。这是如何运作的?人们知道创世区块以及什么构成有效交易,可以使用 ZKProofs 捕获和验证。通过使用证明递归,可以保证证明大小不会增加。

但是请注意,Mina 在 zkVM 存在之前就开始了,因此必须开发特定的 SNARK 才能使这个想法付诸实践。使用 zkVMS,这种机制的开发速度要快得多。

请注意,这些 zkProof 就像认证支票一样。通过将它们发送到其他链,可以进行跨链转移(见下文)。

跨链资产转移——水平桥

\ (A_1-B_1\)

假设我们要将资产从 A 层 1 转移到 B 第 1 层;为了具体起见,让我们以 Avalanche 和 ETH 为例。由于我们有两个不同的主链,所以原子交易是不可能的,所以我们采用先销毁再创造。

但是,如何说服ETH区块链相信某些资产销毁交易 TX 发生了 Avalanche 吗?两条主链都没有任何理由信任来自外部的信息。但是,两者都将接受完整的zkProof,证明某些交易已在另一条链上完成。

有两种策略可以解决这个问题:

1-- 向后的 zkProof 交易证明: 假设以太坊上的智能合约中有硬编码的 Avalanche 创世区块。然后可以执行以下操作:将交易数据(\(TX\))发送给 zkProver,后者使用递归证明技术(比如 Mina)生成一个 zkProof。\ (TX\) 和 zkProof 被发送到智能合约,智能合约会对其进行验证和接受。这个 zkProof 的功能就像一张经过认证的支票,证明某些资产已被销毁,从而授权在另一条链上创建等值价值。通过这种方式,我们实现了从 Avalanche 到以太坊的跨链资产转移,本质上就像桥梁一样,但不需要中间实体。

2-- 转发 zkProof 交易证明: 比如说\ (TX\) 包含在区块\ (M\) 中。我们等待\ (N\) 个区块,其中\ (N\) 足够大,足以保证没有发生回滚。区块\ (M + N\) 的哈希值包含在交易证明中。了解 Avalanche 区块链逻辑的 zkProver 提供了有效性证明,表明:

  • \ (\ 文本 {TX}\) 包含在\ (\ text {Block} [M]\) 中
  • \ (\ text {Hash} [M]\) 计算正确
  • \ (\ text {Hash} [M+N]\) 计算正确

这构成 zkProof 的原因是 TX 已经解决了很简单:伪造这样的证据等同于开发比特币的替代分支,假设这是不可能的。

因此,就像上面的例子一样,这个 zkProof 可用作认证支票,证明资产已被销毁,允许在其他地方兑换,即跨链资产转移。

请注意,这里使用 zkProofs 与汇总无关;它只利用了 zkVM 的存在。此外,接收链上的虚拟机必须足够强大以支持 zkProver。就比特币而言,情况并非如此,这需要非常具体的解决方案。

本文由 ZKM 高级密码学家 Jeroen van de Graaf 撰写。该系列的第三部分将更详细地探讨 Entangled Rollup 的应用。

More articles
当前举措概述
ZKM 引领着 ZK 技术的发展,开发了一套创新工具和教育资源,以实现 ZK 与区块链的无缝集成。本文全面概述了我们正在进行的举措,展示了我们工作的广度,展望了未来。
利用 ZKM 的新教育中心弥合与 ZK 的差距
零知识(ZK)已成为 Web3 世界中一个新的、非常受欢迎的流行语——但它到底意味着什么?ZKM 提供的教育中心是你解开 ZK 错综复杂之处的第一站。ZKM 团队将在您的 ZK 学习之旅的每一步中为您提供帮助。
没有桥梁的跨链资产转移——第二部分

什么构成交易证明?

这取决于交易的类型;参见表。

Type of Transaction Proof of Transaction
Intralayer L1-L1 A smart contract on L1 has direct access to its L1 transaction. So txId serves as a proof-of-transaction.
Intralayer L2-L2 A smart contract on L2 has direct access to its L2 transaction. So txId serves as a proof-of-transaction.
Interlayer L1-L2 (deposit) A smart contract on L2 has indirect access to L1 and its transaction, and the rollup smart contract can communicate the information. So txId serves as a proof-of-transaction.
Interlayer L2-L1 (redeem) A smart contract on L1 does not have direct access to its L2 transaction, since the data is compressed and the stateRoot is a hash. So it needs a zk proof from SEQ/valPROVER.

关键观察:zkVM 的其他用途

关于汇总数据正确性的 ZK 认证

如前所述,在 zkRollup 中,通过在\ (\ text {STF}\) 上应用可验证计算,可以看出 L2 确实从 oldState² 和 TxBATCH 中正确计算出了\ (\ text {newState} _2 =\ text {STF} (\ text {oldState} _2,\ text {TxBATCH})\)。但是,Sequencer 可以访问 zkProver 这一事实意味着后者可以以 zkProofs 的形式发布有关汇总数据状态的可验证声明或证明。示例包括:

  • 关于第 2 层的 ZK 认证和 L1 上的汇总数据:
    • 在汇总时为某些特定资产转移提供交易证明。例如,它可以发行一个 “区块73包含:资产转移(X2、Rollupacc²、25 BTC)” 的 zkProof。在这种情况下,L1 上的汇总智能合约是目标验证器。
    • 生成与某个 L2 账户相关的余额表:“在第 73 区块,\ (X_2\) 的账户中有 255 个以太币。”

现在要注意的是,这些语句都与 L2 和汇总有关。但是真正的转折来了!

  • 关于第 1 层的 ZK 认证:
    • 还记得米娜吗?它使用线性递归证明将其区块链(一种无限增长的结构)上的所有信息封存到恒定大小。这是如何运作的?人们知道创世区块以及什么构成有效交易,可以使用 ZKProofs 捕获和验证。通过使用证明递归,可以保证证明大小不会增加。

但是请注意,Mina 在 zkVM 存在之前就开始了,因此必须开发特定的 SNARK 才能使这个想法付诸实践。使用 zkVMS,这种机制的开发速度要快得多。

请注意,这些 zkProof 就像认证支票一样。通过将它们发送到其他链,可以进行跨链转移(见下文)。

跨链资产转移——水平桥

\ (A_1-B_1\)

假设我们要将资产从 A 层 1 转移到 B 第 1 层;为了具体起见,让我们以 Avalanche 和 ETH 为例。由于我们有两个不同的主链,所以原子交易是不可能的,所以我们采用先销毁再创造。

但是,如何说服ETH区块链相信某些资产销毁交易 TX 发生了 Avalanche 吗?两条主链都没有任何理由信任来自外部的信息。但是,两者都将接受完整的zkProof,证明某些交易已在另一条链上完成。

有两种策略可以解决这个问题:

1-- 向后的 zkProof 交易证明: 假设以太坊上的智能合约中有硬编码的 Avalanche 创世区块。然后可以执行以下操作:将交易数据(\(TX\))发送给 zkProver,后者使用递归证明技术(比如 Mina)生成一个 zkProof。\ (TX\) 和 zkProof 被发送到智能合约,智能合约会对其进行验证和接受。这个 zkProof 的功能就像一张经过认证的支票,证明某些资产已被销毁,从而授权在另一条链上创建等值价值。通过这种方式,我们实现了从 Avalanche 到以太坊的跨链资产转移,本质上就像桥梁一样,但不需要中间实体。

2-- 转发 zkProof 交易证明: 比如说\ (TX\) 包含在区块\ (M\) 中。我们等待\ (N\) 个区块,其中\ (N\) 足够大,足以保证没有发生回滚。区块\ (M + N\) 的哈希值包含在交易证明中。了解 Avalanche 区块链逻辑的 zkProver 提供了有效性证明,表明:

  • \ (\ 文本 {TX}\) 包含在\ (\ text {Block} [M]\) 中
  • \ (\ text {Hash} [M]\) 计算正确
  • \ (\ text {Hash} [M+N]\) 计算正确

这构成 zkProof 的原因是 TX 已经解决了很简单:伪造这样的证据等同于开发比特币的替代分支,假设这是不可能的。

因此,就像上面的例子一样,这个 zkProof 可用作认证支票,证明资产已被销毁,允许在其他地方兑换,即跨链资产转移。

请注意,这里使用 zkProofs 与汇总无关;它只利用了 zkVM 的存在。此外,接收链上的虚拟机必须足够强大以支持 zkProver。就比特币而言,情况并非如此,这需要非常具体的解决方案。

本文由 ZKM 高级密码学家 Jeroen van de Graaf 撰写。该系列的第三部分将更详细地探讨 Entangled Rollup 的应用。