来源:a16z
编辑:Katie辜,Odaily
通常,黑客会发现并利用软件开发整个流程链条(从设计到部署再到维护)中的缺陷,从而打破区块链项目的安全屏障。如果能够提前了解到相关经验,我相信安全事故会少很多。本文概述了Web3开发人员和安全团队在设计、开发并维护智能合约时必须考虑的安全要素,覆盖了从威胁建模到应急响应准备的整个周期。开发一款安全的软件包括以下五个阶段:设计:开发人员描述系统所需的功能和操作,包括重要的基准和固定属性;开发:开发人员编写系统代码;测试和评审:开发人员将所有模块聚集在一个测试环境中,并评估它们的正确性、规模和其他因素;部署:开发人员将系统投入生产;维护:开发人员评估和修改系统,确保其执行预期功能。下图将需要考虑的安全因素与上述阶段对应起来。需要注意的是,软件开发的生命周期并不一定总是遵循线性的路径:各类别可能重迭或扩展到其他阶段。对于每个版本,步骤可能会重复。有些安全任务(如测试和安全审查)可能需要贯彻执行。上面描述的软件生命周期步骤和相应的安全考虑为促进智能合约安全性提供了基础。下面将从三个问题出发,进行更详细的研究。1.设计阶段的智能合约安全考虑——考虑威胁建模和安全设计内容:从项目开发生命周期初期就明确识别系统的潜在威胁,并确定其优先级是关键。智能合约开发人员应该识别在开发中要实现的所有安全控制,以及在测试、审计和监控中应该检查的威胁。所有安全假设,包括攻击者预期的复杂程度和经济手段,都应该在设计阶段明确定义和阐明。原因:虽然对开发人员来说,只