区块链NFT投资,BTC/USDT/CGPAY,虚拟加密货币交易行情分析平台
无需交易历史数据,以提升效率和隐私
| 百款NFT链游免费玩 | 数字货币支付图解教程 | 区块链游戏获利技巧 |
虽然能提升效率和隐私性,但用户在将资金退出到 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 的活性损失。另一方面,其他不常共享和更改的数据大多是个人资产数据。这类数据的丢失,直接意味着资产持有者损失了资金。这种风险是分开的,不会影响到对方的资金。
然后分离用户的状态,并提供其状态的用户数据及其证明作为运营商对其交易的收据,从而降低了大量 gas 成本。
- 交易者向运营方发送交易;
- 运营商将其用户状态的 merle 证明作为交易的收据;
- 交易者签署这个收据;
- 电路中只接收带有签名收据的交易数据;
如果一个用户进行了交易,并且多个用户的余额发生了变化,并且他们知道自己的状态,包括这些余额和 Merkle 证明,那么他们中的任何一个都可以随时通过 zkp 退出其资金。
这证明这是其余额的最后一个状态,可以通过每个批次的更改状态所有者的每个帐户列表的不包含证明来确定。更改状态所有者的帐户列表的稀疏 Merkle 树可用于有效证明。
有两种方法可以让更改状态的所有者知道他们最近的更改。
如果他们在线,运营商发送最后一个差异,接收签名的差异,并将其放入 zkp 电路的输入,这样的 gas 成本是最低的。
如果他们不在线,运营商会将其发布到 txcalldata 或链下去中心化存储。
通过这种状态分离,运营商不再需要将最终状态的任何差异都放在 txcalldata 中,因为用户的帐户状态对于退出来说足够安全,而丢失共同共享的数据,只是意味着运营商无法更新 zkRollup 的 Merkle 根,他们将简单地停止服务。然后,公共共享存储和用户存储都可以在链外分发。每批只需要在 txcalldata 中记录一个状态改变的所有者的账户列表。
第三步,隐私智能合约执行
用户的交易不在链上,但运营商仍然可以看到并需要看到用户状态(包括余额),以进行 zkp 证明。
如果用户在其一边进行 zkp 以证明其用户状态的 Merkle 根和公共共享存储的转换,则运营商只需更改该 Merkle 根和存储,余额的秘密仍然存在。
- 用户向运营商发送交易;
- 运营商返回余额和更新后的公共共享存储的差异;
- 用户对更新后的用户状态和公共共享存储的 Merkle 根进行 zkp 证明;
制作每个批次(区块)的运营商可通过更改批次中共享存储的变化知道余额差异,但其无法知道其他批次的余额差异,因为运营商之间只共享最终差异。这具有混合级别的隐私。
这种机制需要用到递归 zk。
更详细的讨论
在链下与离线状态改变者通信
这只是一种选择。该协议可以在没有这部分的情况下构建。
即使在最坏的情况下,状态更改器处于离线状态,这种情况下的数据可用性风险也非常有限。
离线用户可以在其在线时获取数据以安全退出,其可以设置代理而不是自己接收数据。
并且我们可以构造退出方法,以便上次状态更新不会因为数据可用性问题而使之前的状态变得危险。
典型的去中心化存储结构如下所示:
- 提交哈希(存储)
- 证明 preimage(hash(storage)) = preimage(hash(storage, last-Ethereum-block-header)) - last-Ethereum-block-header
- 继续观察有多少节点可以完成(2)
账户链上 gas 费用
每个帐户都可以获得一个比地址本身短得多的 ID。
每个 batch 只需要一个账户列表,这样就可以省略重复项,这比 txcalldata 中使用的交易历史要高效得多。
公共共享存储的进一步优化
在以太坊 L1 上,你无法擦除 txcalldata。我们可以修改它,因为公共共享存储不需要在链上。
与交易历史数据不同,我们只需要最后的状态数据,不需要任何之前的状态。然后运营商可以放弃之前在网络中共享的“最终状态数据”。
运营商可以通过 zkp 逻辑知道可以丢弃的数据。
结论
分离用户状态使得 zkRollup 智能合约执行既高效又隐私,几乎所有的 txcalldata 成本都从 zkRollup 中移除了。
感谢 Alex Gluchowski (zkSync)以及 Barry Whitehat 提供的意见和看法。
| 百款NFT链游免费玩 | 数字货币支付图解教程 | 区块链游戏获利技巧 |
相关文章
热门推荐
- 以太坊最终会突破 1 万美元的 10 个理由
- 解析波卡平行链插槽拍卖参与方式及潜在影响
- 借贷平台 Venus 遭遇大额清算,1 亿美元坏账谁来买...
- TrustBase 将于今日 21:00 上线于火币生态链建立的...
- 加密市场处于泡沫之中,以太坊市值最终或超过比特币
- 加密货币市场大跌,买入比特币的主流机构还有盈利吗?
- 内蒙古等多地矿场被清退,比特币系统会受影响吗?...
- 它为何一再延期?
- DeFi 协议在加密市场暴跌中面临压力测试,它们还好...
- 加密市场尚未触顶,后市看好以太坊
- 以太坊应用登录流程解决方案 GSN 将发布 V2 版,同...
- 以太坊 Layer 2 扩容方案 Hermez 发布产品发展路线...
- 比特币挖矿真的有害环境吗?Coinbase 澄清比特币挖...
- 刚刚为第三支基金募得 1.25 亿美元的 1confirmatio...
- DeFi 总锁仓价值半月内缩水近四成,借贷与交易所板...
- Polygon 发布 SDK 软件开发工具包,以构建以太坊多...
最新文章
- 日本央行升息的镰刀,为何最先挥向比特币?
- 加密币 ETF 泡沫将至?分析师:2026 年百档齐发、 ...
- 印度反垄断机构放行!Coinbase 获准收购 CoinDCX ...
- 美国 SEC 发布指引:券商代客保管加密资产,必须掌...
- 上涨空间达 40%!德银首评 Coinbase 喊买、目标价 ...
- 力拚成为「全能交易所」!Coinbase 推出美股交易、...
- 「筹码大换手」近尾声!K33 分析:比特币 2026 年...
- 比特币逼近关键「生死防线」!分析师:Strategy 已...
- 5 年烧掉 1.7 亿 !台湾 Blocto 钱包宣告熄灯,痛...
- Grayscale 最新报告:2026 年 10 大投资主线与「4 ...
- 打破「4 年周期」规律!Bitwise 研究:比特币 2026...
- BitoPro 独家上架 KAIA 币!全球唯一台币入口
- Visa 携手 Circle 、 Solana,向美国银行提供 USDC...
- 比特币跌回 1 万美元?彭博专家抛出「最悲观预测」
- 动用 1 万枚比特币建城!不丹拒绝抛售、靠复利打造...
- 香港「加密资产第一股」HashKey 今上市!蜜月失灵...
BTC
ETH
USDT
BNB
XRP
USDC
SOL
TRX
STETH
DOGE