金色前哨|以太坊二层隐私扩容解决方案Zkopru上线测试网
2021年12月1日,在经过数月工作后,以太坊二层隐私扩容解决方案Zkopru宣布上线Görli测试网。
什么是Zkopru?
Zkopru名字来源于zk(零知识证明)和opru(optimistic rollup)。Zkopru是一个Optimistic rollup,它使用零知识证明来验证rollup状态更新计算(即交易执行)的正确性 —— 但Zkopru不是zk-rollup。因为zk-rollup 仅使用零知识证明作为生成计算有效性证明的方法,但Zkopru 使用零知识证明来保证每一笔转账都是隐私的。
这个概念在gas 消耗量上具有很大的优势。在以太坊主链上直接执行一笔零知识的交易,必须使用一个对SNARK 友好的哈希函数来构建一棵默克尔树,这都是非常昂贵的(gas 消耗量非常大)。使用optimistic rollup,可以在链下更新这棵默克尔树,成本低得多。结果是,Zkopru单次隐私转账在主链上只需使用8800 gas(哪怕一笔普通的以太坊ETH 转账,都要消耗21000 gas)。
Zkopru目前支持ETH和ERC-20代币(即将支持NFT)的存款、转账和提款。在大多数情况下,这些功能的工作方式与第1层的对应的功能类似,但与用户可能习惯的一些功能会有一点关键区别:
虽然向你的Zkopru钱包进行的初始存款在以太坊上将会被作为可见交易,但后续的任何交易都将只对你和收件人可见。
Rollups只向主链提交少量数据,协调人(coordinator)可以分批提交交易,所以每笔交易的价格会大幅降低。
ZKOPRU允许你同时存入多种资产(ETH和另一种代币)。
ZKOPRU地址与以太坊地址不同。当你需要接收资产到你的ZKOPRU账户时,你将使用从你连接的Ethereum地址中生成的ZKOPRU地址。
Rollups在撤回到主链时有7天的延迟(我们正在努力建立一个即时撤回机制,以便用户可以绕过这个延迟)。
为什么需要Zkopru?
用户可以通过一个网页端钱包跟这个系统交互,从充值、取款、转账到在L2上做币币互换,都可以。下面概要介绍下这几个功能的用户体验。
充值:用户可以把ETH、ERC-20 代币和 NFT 存入 L1(以太坊)上的 Zkopru 合约(可借助我们提供的用户接口)。在存入资金之后,用户就可以在 L2 上转移自己的资产,而这背后是一套基于UTXO的表示方法。
转账:存入资产后,资产还是关联着用户的账户,但隐私交易功能可以打破这种关联。在转账时,发送者需要接收方的 Zkopru 地址,这个不是以太坊地址哈,但用户可以在 Zkopru 钱包中使用同一把私钥生成一个相应的地址。钱包软件会生成一个零知识证明,证明转账前后系统的完整性,而无需把交易提交给 Zkopru 的协调者,也无需公开任何细节。
取款:用户希望从L2(Zkopru)撤出资金到L1(以太坊)的时候,可以直接使用钱包的取款功能。这个操作的交易细节就需要公开了,所以取款的地址和数量都不再是隐私的了。就像其它 optimistic rollup方案一样,Zkopru 需要用户等待7天,取款才能完成。不想等待的用户可以使用即时取款机制。
即时取款:如果用户想要即时取款,他们可以出价请求另一个用户预付资金。预付资金者可以拿到手续费,但要承担交易被欺诈证明无效化的风险。
原子化互换:Zkopru 支持原子化互换。两名用户可以请求协调者协助两者资产的互换,如果协调者拒绝协助,他们就会被惩罚。这项服务会有专门的一个网站。现在很难高效而隐私地找到相互匹配的订单。我们正在开发一个支持隐私订单匹配的解决方案。
成本:对于 rollup 内的隐私转账,协调者会根据相关交易在 L1(以太坊)上发生的成本收取一定的手续费。批量的交易会更便宜。