据 BlockSec Phalcon 分析,Aztec 事件的实际根因是已验证 Rollup 交易集与 L1 结算处理边界(numRealTxs / _numTxs)不匹配,导致 ZK 证明验证路径与 L1 结算逻辑对交易列表的解释不同。攻击者可将 numRealTxs 设为 1,并将真实存款交易放入第二个解码交易槽位,从而跳过对应的 L1 签名验证和待处理存款余额扣减,生成无资产支持的私有余额并提现。BlockSec 称,攻击者先在 Rollup 状态中记入 7 个不同资产的无支持余额,随后通过 7 笔提现取出资产;此外,RollupProcessorV3 于 2024 年 4 月 10 日通过 PR #
67# 升级,但该升级部署前似乎未经过外部审计。