该论文关注的背景是 TON(The Open Network)公链:其市值峰值超过 200 亿美元,链上已激活地址逾 1.75 亿,智能合约由 TVM(TON Virtual Machine)执行。与常见的栈式虚拟机不同,TVM 采用一等续延(first-class continuation)配合 savelist 来管理控制流与寄存器状态:续延被调用时,部分寄存器会被 savelist 捕获并随之传递,而不是通过操作数栈显式压栈传递。这一设计导致数据可以在续延边界之间“隐式”流动,若字节码级分析不显式建模 savelist 语义,就无法还原完整的数据流,也就无法准确追踪污点与定位缺陷——这是本文提出的核心问题。 为此作者提出 TasmScan,声称是首个面向 TVM 的字节码级静态分析框架,在不需要源码的前提下支持跨续延的数据流推理。其技术路线分三步:第一,用前向寄存器分析对 savelist 语义建模,对可精确解析的保存点(exact-resolved save sites)与本地追踪的寄存器定义给出形式化的过近似保证,从而安全地推导寄存器在续延间的取值;第二,把原始字节码提升为带类型的中间表示 TASIR,使指令语义与分析规则解耦;第三,在 TASIR 上执行路径敏感(path-sensitive)的污点分析,并使用上下文感知(context-aware)的污点源来检测缺陷。 实验部分:作者在 TON 验证者注册表中的 2,921 份合约以及一个含 208 份合约、由人工确认真值的标注基准上评估。在全量语料上,TasmScan 解析出 294,546 个动态续延目标,精确率 100%;消融实验显示 savelist 传播对于解析依赖跨续延寄存器传递的间接寄存器调用是不可或缺的。在标注基准上,工具对五类缺陷查全率达 95.3%,精确率 96.8%;从全量语料中分层抽样的 366 对样本估计整体精确率为 85.8%。性能方面,相对当前最先进的符号执行基线取得 17 倍中位加速,在路径分析对比中完成全部分析任务,零崩溃、零超时。 总体贡献可归纳为:把 savelist 这一 TVM 特有的续延状态语义形式化并纳入字节码静态分析,提出可复用的类型化 IR,并以大规模真实语料验证了跨续延污点分析在准确率与效率上的可行性。适合区块链安全研究者、智能合约审计工具开发者以及 TON 生态的安全工程师阅读。
💡 推荐理由: TON 生态合约规模大且字节码级审计缺少源码,savelist 造成的跨续延隐式数据流一直是静态分析的盲区。TasmScan 首次给出可形式化保证的建模方式,提供了可直接迁移的检测思路与公开基准,对链上合约审计与工具选型有直接参考价值。
🎯 建议动作: 研究跟进:可先评估 TasmScan 的建模与 IR 设计能否接入现有 TON 合约审计流程,再考虑对重点合约做小范围复现验证。