今日实时汇率

1 美元(USD)=

7.1788 人民币(CNY)

反向汇率:1 CNY = 0.1393 USD   更新时间:2025-07-10 03:00:01

一文读懂以太坊最新二层隐私技术Zkopru,实现ETH、ERC20和ERC721代币标准互通

7月20日,Ethereum 9¾ 创始人 Wanseob Lim在太坊技术论坛 ethresear.ch上正式发布了Zkopru,这是一种二层(Layer 2)私人交易扩容解决方案,同时使用了zk-SNARK和Optimistic rollup技术。 它能够以很低的成本支持ETH,ERC20,ERC721代币在二层网络内进行私人转移和原子交换。 此外,借助预付款功能,用户可以在交易确认之前从二层提取资产。
非常高兴分享以太坊二层隐私技术Zkopru的实现。 从去年11月开始,我和@barryWhiteHat开始构建此项目,如今结果如下。

Zkopru是什么?

它是一种二层(layer 2)私人交易解决方案。它使用了Optimistic rollup技术来管理区块。它使用了zk SNARK技术来创建私人交易

性能

在以太坊网络上实现每笔私人交易成本仅8000gas。当gas限制为1195万且区块时间为13.2秒时,最大TPS为105

亮点功能

支持ETH、ERC20、甚至ERC721支持私人原子互换。可以与私人订单匹配系统一起使用。Subtree rollup将成本削减为merkle树形的20分之1在区块最终确认之前进行快速提款使用大量存款和大量迁移,我们可以构建一个第2层间网络。而且,最重要的是,它现在已经开始生产区块! 欢迎在我们的测试网上试用: https://zkopru.network

介绍

Zkopru是一种二层(Layer 2)私人交易扩容解决方案,同时使用了zk-SNARK和Optimistic rollup技术。 它能够以很低的成本支持ETH,ERC20,ERC721代币在二层网络内进行私人转移和原子交换。 此外,借助预付款功能,用户可以在交易确认之前从二层提取资产。

交易

zk交易可以接受多个UTXO作为其流入(inflow),并为其流出(outflow)创建新的UTXO。 因此,最重要的是验证流入和流出。

流入验证

Zkopru使用承诺消除器方案实现隐私。 这意味着zk交易花费了UTXO,而没有透露已使用了哪个票据。 取而代之的是,我们揭示了源自UTXO的无效符,但无法与其原始UTXO链接。

要使用UTXO,必须满足以下条件:

UTXO证明tx构建器会提交每个UTXO的Merkle证明以证明其存在。 为了进行有效的SNARK计算,UTXO树使用Poseidon作为其哈希函数。 所有权证明只有所有者才可以使用UTXO。 在这种情况下,每个note都有一个公钥字段,即一个Babyjubjub点。 使用配对的私钥,所有者可以创建EdDSA签名以证明其所有权。 commitment证明该回路应具有有关输入UTXO的详细信息,以计算流入的总和。 因此,所有者应提供详细信息,其Poseidon哈希值应等于Merkle证明和所有权证明的leef哈希值。 Nullifier证明给定的Nullifier可以从输入的UTXO正确得出。

流出验证

zk交易可以创建三种类型的输出:UTXO,取款(Withdrawal)和迁移(Migration)。 如果zk事务创建了UTXO,则Zkopru将它们附加到UTXO树中。 创建提款输出时,Zkopru会将它们附加到提款树中。 最后,作为二层区块一部分的大规模迁移(mass migration),包括该区块每个zk交易的迁移输出。

因此,流出(outflow)应满足以下条件:

当输出为UTXO类型时,输出的公共哈希值等于在SNARK回路中计算出的值。如果输出的类型是提款或迁移,则应显示详细信息,因为它将正确数量的资产移至网络外部。 零和证明(zero-sum proof)

最后,zk交易应保证流入等于流出,包括手续费。

区块结构

区块头(header)

数据的前372个字节应为区块头(header)。 区块头包含以下数据: