欢迎访问海外数字货币招商网!

ZK Rollup 改进思路无需交易历史数据以提升效率和隐私-区块链社区

时间:2021-10-13 21:26编辑:admin

这篇帖子最后在2021-10-13 11:06上原文标题: 《zkRollup 改进提案:无需 tx 历史数据,以实现效率和隐私提升》写作: Leona Hioki编译:隔夜粥简短地介绍了这篇文章中不需要来自运营方的tx历史数据的zkRollup。 这意味着,在L1中使用txcalldata的gas有效率,而且每个batch都有智能合同和资产,只需要在txcalldata中记录其状态发生变化的所有者的帐户列表。 缺点是,每个用户在将资金转移到L1时都需要客户端zkp计算。 另一个缺点是在EVM兼容性方面很困难。 背景和动机对Rollup的运营商和交易者来说,是在使用txcalldata时消耗的。 这种限制只是因为必须恢复交易结果的状态,以防止用户生成资金的Merkle证书。 根据Rollup的大多数规格,运营商必须将所有交易历史记录数据转储到L1的txcalldata上。 交易历史数据的这种透明度不仅增加了txcalldata的gas成本,也损害了交易的隐私。 据推测,交易历史数据的累加器既解决了效率问题,也解决了隐私问题。 简单地说,在第一步,我们构建了zkRollup。 其中,运营商将最终状态的差异直接写入txcalldata。 交易历史数据位于zkp电路的隐私输入中。 在第2步中,通过将常规存储器与用户状态存储器分开,从txcalldata中删除最终状态差异。 这允许用户使用非包含证书(如Plasma Prime的状态版本)退出。 用户保留用户存储,只公开Merkle根目录。 用户可以通过zkp证明路由转换,并更新智能合约的常用存储。 详细步骤如下。 在第一步中,zkRollup的txcalldata使用选项有两种选择,可以使用txcalldata恢复到完整状态。 选项1 :在txcalldata中记录所有事务处理历史记录数据。 选项2 )记录区块(批次)内交易导致的最终状态差异。 在选项2中,txcalldata没有记录,因此产生数百万相同结果的交易将使用0 gas来使用txcalldata。 zkp保证Merkle根变换的可靠性。 采用“选项2”是第一步。 第二步,优化“选项2”。 如果批/块中的事务处理更改合同的相同存储值,则上述选项2的gas使用量更少。 此共享和更改的值类似于ERC20的总供应量、交换协议的总资产池量等。 此外,这样的存储值还会影响所有资产所有者,这样的数据丢失会导致zkRollup的活性损失。 另一方面,其他很少共享或更改的数据大多是个人资产数据。 这类数据的丢失直接意味着资产持有人失去了资金。 这个风险是分离的,不影响对方的资金。 之后,通过分离用户状态,并提供该状态的用户数据及其证明作为运营商交易的收据,降低了大量的gas成本。 交易者向经营者发送交易的经营者将其用户状态的merle证明作为交易收据的交易者在签署该收据的电路中只接收签名收据的交易数据; 如果一个用户进行交易,多个用户的余额发生变化,并且知道自己的状态,包括这些余额和Merkle证书,那么他们中的任何一个都可以随时通过zkp提取资金。 这将证明这是余额的最后状态,并且可以由每个批次的更改状态所有者的每个帐户列表中未包括的证书确定。 稀疏Merkle树用于更改状态所有者的帐户列表,可以用于有效的证明。 有两种方法可以通知更改状态的所有者最近的更改。 如果他们在线,运营商发送最后的差异,接受签名的差异,将其放入zkp电路的输入,这样的gas成本是最低的。 如果他们不在线,运营商会将其发布到txcalldata,或者将其链下以中心化存储。

通过这种状态分离,运营商不再需要将最终状态的差异放在txcalldata上。 由于用户的帐户状态对终止十分安全,因此丢失通用共享数据意味着运营商无法更新zkRollup的Merkle路由,他们很容易停止服务。 然后,可以在链外分发公共共享存储和用户存储。 每个批处理只在txcalldata中记录状态已更改的所有者的帐户列表。 第三步,执行隐私智能合约虽然用户的交易不在链条上,但是运营商为了zkp证明,可以看到用户的状态(包括余额),需要看到。 如果用户在该端进行了zkp,并进行了证明用户状态的Merkle路由和公共共享存储的转换,运营商只需要更改其Merkle路由和存储,而余额的秘密就会保留下来。 用户向运营商发送交易的运营商返回余额和更新的公共共享存储的区别用户对更新的用户状态和公共共享存储的Merkle路由进行zkp证明; 创建批次(区块)的运营商可以通过批次内共享存储的变更知道余额的不同,但由于运营商之间只共享最终的不同,所以无法知道其他批次的余额不同。 这个有混合级别的隐私。 这个机制需要递归的zk。 更详细的讨论是,在链下与离线状态的变更者进行通信只是一种选择。 这个协议可以在没有这个部分的情况下建立。 最坏的情况是,即使状态更改器脱机,这种情况下的数据可用性风险也非常有限。 脱机用户可以在线获取数据并安全退出。 另外,可以设置代理,而不是自己接收数据。 还可以构建退出方法,以防止上次状态更新由于数据可用性问题而危及以前的状态。 典型的去中心化存储结构如下。 提交散列(存储)证书预图像(散列,最后一块头) ) -最后)。 每个batch只需要一个帐户列表,可以省略重复。 这比txcalldata使用的交易历史记录要高效得多。 公共共享存储的进一步优化位于以太坊L1,不能清除txcalldata。 公共共享存储不需要在链上,所以可以修改。 与交易历史数据不同,只需要最后的状态数据,不需要以前的状态。 然后,运营商可以放弃此前在网络上共享的“最终状态数据”。 运营商可以知道zkp逻辑可以丢弃的数据。 结论:通过分离用户状态,zkRollup智能合约的执行变得高效且隐私,大部分txcalldata成本已从zkRollup中删除。 感谢AlexGluchowski(ZKsync )和Barry Whitehat提出的意见和看法。 来源: www.8btc.com免责声明:作为区块链信息平台,在本网站发表的文章是代表作的个人见解,与链条气味ChainNews的立场无关。 文章中的信息、意见等仅供参考,不应视为实际投资提案或实际投资提案。 这个主题是彩云小琦昨天在17:33中加入了精华

图文推荐