[论文解读] Exploring Security Practices of Smart Contract Developers
本研究通过访谈和对29名智能合约开发者的代码审查,调查了其安全实践,揭示了安全意识和漏洞检测方面存在显著差距,尤其是在早期阶段的开发者中。研究发现,在代码审查任务中,15%的早期阶段开发者识别出漏洞,而经验丰富的开发者中这一比例为55%,凸显了需要通过更好的教育和工具来缩小区块链开发中的安全知识差距。
Smart contracts are self-executing programs that run on blockchains (e.g., Ethereum). 680 million US dollars worth of digital assets controlled by smart contracts have been hacked or stolen due to various security vulnerabilities in 2021. Although security is a fundamental concern for smart contracts, it is unclear how smart contract developers approach security. To help fill this research gap, we conducted an exploratory qualitative study consisting of a semi-structured interview and a code review task with 29 smart contract developers with diverse backgrounds, including 10 early stage (less than one year of experience) and 19 experienced (2-5 years of experience) smart contract developers. Our findings show a wide range of smart contract security perceptions and practices including various tools and resources they used. Our early-stage developer participants had a much lower success rate (15%) of identifying security vulnerabilities in the code review task than their experienced counterparts (55%). Our hierarchical task analysis of their code reviews implies that just by accessing standard documentation, reference implementations and security tools is not sufficient. Many developers checked those materials or used a security tool but still failed to identify the security issues. In addition, several participants pointed out shortcomings of current smart contract security tooling such as its usability. We discuss how future education and tools could better support developers in ensuring smart contract security.
研究动机与目标
- 了解智能合约开发者如何感知和应对开发过程中的安全问题。
- 比较早期阶段与经验丰富的智能合约开发者在安全实践和漏洞检测能力方面的差异。
- 识别当前安全工具、资源和教育支持中的不足之处。
- 为设计更优的开发者工具和教育框架提供依据,以提升智能合约安全。
提出的方法
- 对29名智能合约开发者(包括10名早期阶段和19名经验丰富的开发者)进行了半结构化访谈。
- 对一个包含四个常见漏洞的智能合约执行了代码审查任务,以评估漏洞检测能力。
- 应用层次任务分析法,研究开发者在代码审查过程中所采用的步骤和策略。
- 收集了关于工具使用、文档访问以及现有安全工具可用性挑战的数据。
- 分析定性反馈,以识别开发者在安全认知、实践和工具限制方面的模式。
实验结果
研究问题
- RQ1智能合约开发者如何应对或确保智能合约的安全性?这些做法在早期阶段与经验丰富的开发者之间有何不同?
- RQ2开发者如何进行代码审查?他们在识别常见智能合约安全漏洞方面的成功率如何?
- RQ3现有智能合约安全工具的感知局限性是什么?这些局限性如何影响开发者的实践?
主要发现
- 在代码审查任务中,早期阶段开发者的漏洞识别成功率为15%,而经验丰富的开发者为55%。
- 许多开发者,尤其是早期阶段的开发者,虽然访问了文档和安全工具,但仍未能检测出已知漏洞,表明其在理解或应用方面存在差距。
- 参与者表示,现有安全工具通常难以使用,用户界面不佳,且未集成到开发工作流中。
- 大量开发者依赖外部审计或第三方机构进行安全保证,反映出其在内部漏洞检测方面缺乏自信。
- 许多早期阶段开发者不重视安全,因为他们主要在测试网部署,而这些错误在现实世界中无实际影响。
- 迫切需要更好的教育资源,例如包含故意植入漏洞的、专注于安全的测试网,以提升开发者的安全意识和技能。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。