跳转至主要内容

智能合约安全准则

solidity智能合约安全性
中级
Trailofbits
构建安全的合约(opens in a new tab)
2020年9月6日
7 分钟阅读 minute read

遵循这些高级建议,构建更安全的智能合约。

设计准则

编写代码之前,务必先讨论行智能合约的设计。

文档和规范

文档可以在不同级别编写,在执行合约时应进行更新:

链上计算与链下计算

  • 保持尽可能多的链下代码。 保持链上代码层的最小化。 用链下代码的方式对数据进行预处理,使链上验证变得简单。 是否需要已排序列表? 在链下对列表进行排序,然后在链上只检查其顺序。

升级

我们在我们的博客文章(opens in a new tab)中讨论了不同的升级解决方案。 在编写任何代码之前,请慎重选择是否支持可升级性。 该决定将影响你如何构建你的代码。 一般来说,我们建议:

实施指南

力求简洁。 尽可能使用最简单的解决方案来实现你的目的。 所有的团队成员都应当能够理解解决方案。

功能组成

使用便于检查的代码库架构, 避免选择不利于正确性验证的架构。

  • 通过多个合约或将相似的功能分到一组(例如,身份验证、算术等)来拆分你的系统逻辑
  • 编写小的函数,并且目的明确。这将便于审查并允许对单个组件进行测试。

继承

事件

  • 记录所有关键操作。事件有助于在开发过程中调试合约,并在部署后对其进行监控。

规避已知漏洞

依赖关系

测试和验证

Solidity

部署准则

合约开发和部署完成后:

上次修改时间: @pettinarip(opens in a new tab), 2023年12月8日

本教程对你有帮助吗?