KOP:ZKopru:结合 ZKP 和 Optimistic Rollup

引言

隐私性和可扩展性研究团队都在填补零知识证明的前沿研究和以太坊应用开发之间的空白。

我们最近研究的一个重点领域是?zkopru,这是一套为隐私交易节约gas的新协议。我们已经在四月份完成了一场信任起步设置,自那时开始,我们就一直在埋头苦干。我们已经到了实现网页版钱包和压力测试的最终阶段。第二次审计也已在进行中。在本文中,我们想对Zkopru的特点作概要的说明,顺便预告下Zkopru在未来几周里有关公开测试网和主网的计划。

本文预设了你已经大体了解以太坊、Layer2和零知识证明的基础知识。

什么是Zkopru?

Zkopru的名字来源于zk和opru。你可能听过零知识证明、zkrollup和optimisitcrollup。那到底什么是zk-optimisticrollup?且听我仔细分解。

什么是零知识证明?

零知识证明方案让验证者可以验证一个计算过程的正确性,且验证者无需自己重新执行这段计算、证明者也无需暴露计算的输入。因此,零知识证明可以用于实现可扩展性和隐私性。Zkopru使用零知识证明来保证交易的隐私性。Zcash、AZTEKnetwork?和?tornado.cash?都是在区块链上使用零知识证明来实现隐私性的例子。

什么是optimisticrollup?

Optimisticrollup是一种Layer-2技术方案,其内部运行是平行于以太坊主链的。optimisticrollup可以带来可扩展性上的提升,因为它们默认不在主链上执行任何计算。相反,用户在optimisticrollup环境下发送交易后,它只会在主链上发布执行后的状态根以及这些交易的数据,这一切都不会造成主链状态的增长,因此可以减少gas开销。在使用以太坊时,修改状态是开销繁重的事情,所以,optimisticrollup可以提供高达10~100倍的吞吐量提升。这篇文章介绍了optimisticrollup的更多细节。Rollup的运行需要一种称为“协调者”的角色,需要他们来计算新状态并在以太坊区块链上发送数据。

什么是zk+opru

Zkopru是一个基于UTXO的optimisticrollup项目。还有另一种类型的rollup叫做zk-rollup,它使用零知识证明来验证rollup状态更新计算的正确性——但Zkopru不是?zk-rollup。因为zk-rollup仅使用零知识证明作为生成计算有效性证明的方法,但Zkopru使用零知识证明来保证每一笔转账都是隐私的。

这个概念在gas消耗量上具有很大的优势。在以太坊主链上直接执行一笔零知识的交易,必须使用一个对SNARK友好的哈希函数来构建一棵默克尔树,这都是非常昂贵的。使用optimisticrollup,我们可以在链下更新这棵默克尔树,成本低得多。结果是,我们这套协议,单次隐私转账在主链上只需使用8800gas。

为什么我需要Zkopru呢?

接下来,我们讲讲最重要的部分:Zkopru面向用户的功能。用户可以通过一个网页端钱包跟这个系统交互,从充值、取款、转账到在L2上做币币互换,都可以。下面我们概要介绍下这几个功能的用户体验;更详尽的技术描述,请看我们的文档和?GitHub。

充值:用户可以把ETH、ERC-20代币和NFT存入L1上的Zkopru合约。在存入资金之后,用户就可以在L2上转移自己的资产,而这背后是一套基于UTXO的表示方法。

转账:存入资产后,资产还是关联着用户的账户,但隐私交易功能可以打破这种关联。在转账时,发送者需要接收方的Zkopru地址,这个不是以太坊地址哈,但用户可以在Zkopru钱包中使用同一把私钥生成一个相应的地址。钱包软件会生成一个零知识证明,证明转账前后系统的完整性,而无需把交易提交给Zkopru的协调者,也无需公开任何细节。

取款:用户希望从L2撤出资金到L1的时候,可以直接使用钱包的取款功能。这个操作的交易细节就需要公开了,所以取款的地址和数量都不再是隐私的了。就像其它optimisticrollup方案一样,Zkopru需要用户等待7天,取款才能完成。不想等待的用户可以使用即时取款机制。

即时取款:如果用户想要即时取款,他们可以出价请求另一个用户预付资金。预付资金者可以拿到手续费,但要承担交易被欺诈证明无效化的风险。

原子化互换:Zkopru支持原子化互换。两名用户可以请求协调者协助两者资产的互换,如果协调者拒绝协助,他们就会被惩罚。这项服务会有专门的一个网站。现在很难高效而隐私地找到相互匹配的订单。我们正在开发一个支持隐私订单匹配的解决方案。

成本:

用户可以存取ETH、ERC-20代币和NFT。而且也有可能做到在一笔交易中同时存入ETH、ERC-20代币和NFT。下图所示的USD价值基于gasprice为25gwei和ETH的价格为2500美元的假设。

对于rollup内的隐私转账,协调者会根据相关交易在L1上发生的成本收取一定的手续费。批量的交易会更便宜,而且要看UTXO的数量:

除了上面列出的成本,协调者还需要为每批交易支付一笔一次性费用171954Gas。

那什么时候能用上呢?

大约两周后,Zkopru合约将部署在测试网上,钱包UI也会放出,我们也会放出更多文档来讲解用户如何上手。如果测试网上没有出现大的问题,那么再过约两周,我们会放出主网合约。预计第二次审计也会在这个时间出结果。

结论

经过多年的努力,Zkopru将很快进入生产环境,为以太坊提供便宜、隐私的交易。如果你想在测试网上使用Zkopru,请关注我们的下一篇博客。你也可以在我们的?github、网站和博客了解更多。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:0ms0-3:445ms