织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 区块链

ZK Rollup 改进思路:无需交易历史数据,以提升效率和隐私

时间:2021-10-13 10:14来源:未知 作者:admin 点击:
虽然能提升效率和隐私性,但用户在将资金退出到 L1 时,需进行客户端额外的计算,并且难以兼容 EVM。 本文介绍了一种无需来自运营方 tx 历史数据的 zkRollup,这具有在 L1 上使用 txc

虽然能提升效率和隐私性,但用户在将资金退出到 L1 时,需进行客户端额外的计算,并且难以兼容 EVM。


本文介绍了一种无需来自运营方 tx 历史数据的 zkRollup,这具有在 L1 上使用 txcalldata 的 gas 效率,并且还具有智能合约执行及资产隐私的特性。每个 batch 只需要在 txcalldata 中记录一个状态改变的所有者的账户列表。


缺点是每个用户在将资金退出到 L1 时,需进行客户端 zkp 计算,而另一个缺点是在 EVM 兼容性方面带来困难。


背景和动机


对于 Rollup 的运营商和交易者而言,他们在使用 txcalldata 时仍然会产生消耗。这种限制仅仅是因为需要恢复作为交易结果的状态,以免用户无法生成其资金的 Merkle 证明。Rollup 的大部分规范要求运营商将所有交易历史数据转储到 L1 上的 txcalldata。


交易历史数据的这种透明度,不仅增加了 txcalldata 的 gas 成本,而且还破坏了交易的隐私。


据推测,交易历史数据的累加器,既解决了效率问题,也解决了隐私问题。


方法


简而言之,在第一步中,我们构造了一个 zkRollup,其中运营商将最终状态差异直接写入 txcalldata。交易历史数据将在一个 zkp 电路的隐私输入中。


第二步,我们通过分离常用存储和用户状态存储从 txcalldata 中删除最终状态差异。这使用户可以使用非包含证明(如 Plasma Prime 的状态版本)退出。用户保留其用户存储并仅公开其 Merkle 根。用户可以用 zkp 证明根转换,并且可以更新智能合约的常用存储。


详细步骤如下:


第一步,zkRollup 中 txcalldata 使用选项


使用 txcalldata 恢复完整状态有两种选择。


选项 1:将所有交易历史数据记录到 txcalldata。


选项 2:记录由于区块(批处理)中的交易而导致的最终状态的差异。


在选项 2 中,由于 txcalldata 中没有要记录的内容,数以百万计具有相同结果的交易使用 0 gas 进行 txcalldata 使用。Merkle 根转换的可靠性由 zkp 保证。


而采用“选项 2”是第一步。


第二步,优化“选项 2”


当批次 / 区块中的交易更改合约中的相同存储值时,上述选项 2 会花费更少的 gas。这种共享和更改的值就像 ERC20 的总供应量、swap 协议的总资产池量等。


而且这种存储值也会影响到所有资产持有者,这种数据的丢失会导致 zkRollup 的活性损失。另一方面,其他不常共享和更改的数据大多是个人资产数据。这类数据的丢失,直接意味着资产持有者损失了资金。这种风险是分开的,不会影响到对方的资金。 (责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容