fAmulet: 发现多边形 zkRollup 中的最终化失败缺陷
密码学与安全
2024-10-17 v1
摘要
零知识 layer 2 协议通过事务最终化过程来处理事务,作为解决区块链可扩展性问题的有力手段。在此过程中,事务在主链之外高效处理。此外,事务数据和事务执行的零知识证明都保留在主链上,确保事务数据的可用性以及事务执行的正确性和可验证性。因此,任何导致事务最终化失败的缺陷都是关键缺陷,因为它们会损害此类协议的可用性和区块链的可扩展性。本工作对零知识 layer 2 协议中的最终化失败缺陷进行首次系统性研究,定义了两种此类缺陷。此外,我们设计了 fAmulet,用于检测多边形 zkRollup(一种突出的零知识 layer 2 协议)中的最终化失败缺陷,利用模糊测试实现。为有效触发最终化失败缺陷,我们引入最终化行为模型,以引导事务模糊生成器生成和变异事务,以在最终化过程中的各个组件(如 Sequencer)之间产生多样化行为。我们根据 distinct bug 定义定义 bug 鉴别器,以准确检测缺陷。通过我们的评估,fAmulet 能够发现多边形 zkRollup 中的十二个零日最终化失败缺陷,并比基线方法覆盖至少20.8%更多的分支。此外,通过我们的初步研究,fAmulet 发现了 Scroll zkRollup 中的一个零日最终化失败缺陷,凸显了 fAmulet 可被应用于其他零知识 layer 2 协议的通用性。截至撰写本文之时,我们所发现的所有缺陷均已被多边形 zkRollup 和 Scroll zkRollup 团队确认并修复。
引用
@article{arxiv.2410.12210,
title = {fAmulet: Finding Finalization Failure Bugs in Polygon zkRollup},
author = {Zihao Li and Xinghao Peng and Zheyuan He and Xiapu Luo and Ting Chen},
journal= {arXiv preprint arXiv:2410.12210},
year = {2024}
}
备注
This submission serves as our full paper version with the appendix