智能合约论文评审专家的六项黄金准则

本文从资深评审视角,揭示智能合约分析论文的六大核心要求,涵盖算法实现细节、区块链基础认知、实验数据集构建、模糊测试规范、工具对比基准及漏洞检测边界定义,为研究者提供实用指南。

智能合约论文评审专家的自白

如果您正计划撰写关于智能合约分析的创新方法论文,并想了解评审专家的关注点,那么您来对地方了。随着各大会议(如ISSTA工具论文、ASE、FSE等)截止日期临近,以及我们自己的智能合约分析研讨会即将召开,我们愿分享一些专业建议。即使您不撰写智能合约论文,本文也能帮助您识别值得阅读的研究并理解其影响力。

作为智能合约分析论文的多年评审专家——去年在七个不同场合评审了超过25篇论文——我总结出优秀论文的六大要求。同时,我还想分享一些将论文从"足够好"提升至"优秀"的加分项。

1. 阐明分析方法的具体实现

部分作者因篇幅限制未能描述提议的分析算法工作原理。虽然无需详述算法或实现的每个繁琐细节,但优秀论文应超越使用高层流行语的描述方式。“我们将符号执行与群测试相结合"是论文摘要的佳句,但此种粒度无法贯穿全文。评审视此为含糊其辞。请提供细节让读者理解您的提案并进行评估。对于工具论文(简短论文主要宣传特定工具),通用解释有时可行。但此类信息匮乏的描述竟频繁出现在完整会议投稿中,而这些投稿本应让读者理解甚至复现有趣的新方法。

2. 掌握区块链与智能合约基础知识

太多论文因对合约或区块链工作原理的明显错误而遭拒稿。此类问题常由包含区块链和智能合约模板化介绍的引言预示。智能合约和区块链分析在某种程度上是核心代码分析和测试生成问题的纯粹实例。但若您尚处研究早期阶段,需完成最低限度的准备工作才能产出可信结果。我们建议通过Ethernaut CTF练习理解合约漏洞利用基础,然后阅读我们的《构建安全合约》教程(包含付费审计中真实工具的实验)。区块链和智能合约是快速移动的目标,许多早期论文聚焦处理以太币。然而,现代合约的财务价值多存在于ERC-20或其他新近开发的代币类型中。若仅关注以太币相关漏洞利用,您并未解决当前大部分问题。

3. 基于有意义的合约集进行实验结果

在以太坊区块链上创建的所有合约中,仅一小部分占据了几乎所有交易和以太币/代币活动。大多数Etherscan合约实用价值低,是程序员学习Solidity时部署的玩具。若实验基于Etherscan随机选取的合约,您的结果将无法反映重要合约,且许多可能近乎重复。合约随机抽样对评审是危险信号,因为数据集噪音大且可能未包含任何实际受关注的合约。相反,请基于参与交易、持有以太币或代币价值或满足其他证明其有意义标准的活跃合约进行实验。在合约集中包含多样性并证明您未将结果基于30个实现几乎相同的基础ERC-20代币,也展现了良好判断力。此外,最先进以太坊技术快速发展的现状于此适用。当今许多活动不在单一合约中,而在多合约系统中,基于这些合约组合的分析对探索有意义行为至关重要。相同指导适用于演示漏洞发现方法。在未持有以太币或代币价值且从未参与交易的合约中发现无意义漏洞并不令人信服。相反,在参与大量交易的真实合约中存在真实漏洞。找到这些,您就很好地证明了您的想法!Google BigQuery是入门途径之一,因为从区块链提取数据可能困难。

4. 遵循(模糊测试)研究规则

我们关于进行优秀模糊测试研究的文章大多也适用于智能合约模糊测试。智能合约模糊测试器可能无需运行24小时,但运行工具"足够长时间"绝对必要。您需要基于统计的证据,而非一串轶事。如果您的合约模糊测试器表现更好,其优势是否具有统计显著性?估计效应大小是多少?我们对该估计质量的置信度如何?优秀模糊测试实验实践的其他要点只是常识但易被忽视:例如,若您在实验中未使用一致版本的Solidity编译器或未报告所用版本,复现(和理解)您的结果将变得复杂。这些通用指南中有两个特定方面对智能合约模糊测试论文至关重要,因此我们将单独列出。

5. 与有意义的工具基线比较

您需要将您的工作与广泛接受的概念和工具进行比较。让您的工具面对真实竞争,这在智能合约工作中可能需要更多努力。人们不断发布新工具并更新旧工具,且一些旧工具不再有效。到您的论文被评审时,技术前沿可能已移动。但仍必须明显看出您费心选择了一组合适的可比工具,并在撰写论文时将您的工作与最先进技术进行比较。

6. 明确界定工具的检测范围

智能合约模糊测试器报告各种错误,但不存在Solidity"崩溃”。因此工具必须寻找某些内容,无论是整数溢出、重入、锁定资金还是指示潜在拒绝服务漏洞的失控gas使用。最终,这意味着工具可能在某些领域表现出色而在其他领域落后。一个模糊测试器可能使用一组激进的oracle,可能导致误报,而另一个可能报告一组特定错误降低其误报错误。在此背景下进行公平比较可能困难,但您必须证明您的方法能找到有意义的错误。在模糊测试中实现此点的一种方式是比较您的工具与其他工具的代码覆盖率结果。

我们希望这些建议有助于加强您发布智能合约研究的方法。总之,您几乎可以保证,如果我评审您的论文且无法理解您的方法是什么,我会拒稿。如果您明显未在阅读维基百科以太坊页面之外对智能合约做任何功课,我会拒稿。如果您将实验基于区块链上50个随机合约,这些合约在部署后收到10笔交易,持有总价值0.05美元的以太币,且大多相互重复,我会拒稿。如果您不理解模糊测试研究的基本规则,如果您仅与一个过时的学术研究工具比较而忽略五个流行开源工具,如果您声称您的方法更好仅因为您基于非常宽松的"错误"概念倾向于产生更多误报……嗯,您可以猜到了!

好消息是,完成本文建议的所有事项不仅是满足评审专家的一部分,还是满足您自己和未来读者(及潜在工具用户)的一部分,对为智能合约开发者构建更美好世界至关重要。

最后,将论文从"好"提升至"优秀",请告诉我您如何想出论文核心想法以及想法生效的更大影响。也就是说,除了纯粹运气之外,有些原因使此方法在发现智能合约错误方面更优。方法的成功告诉我们关于智能合约本质或生成测试的更大问题(不仅仅是字节或输入值序列而是结构化函数调用序列)的什么?基于您的工作,我如何提高对智能合约或测试的整体理解?我期待阅读您的研究。我们希望在七月与ISSTA联合举办的今年WoSCA中看到您的智能合约分析论文!

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计