首页 > 其他分享 >合约安全性及工具一些整理

合约安全性及工具一些整理

时间:2022-10-10 12:34:20浏览次数:79  
标签:安全 代码 智能 整理 编写 合约 安全性 漏洞

  以太坊智能合约是极为灵活的。它能够存储超过非常大量的虚拟货币(超过十亿美元),并且根据先前部署的智能合约运行不可修改的代码。 虽然这创造了一个充满活力和创造性的生态系统,但其中包含的无信任、相互关联的智能合约,也吸引了攻击者利用智能合约中的漏洞和以太坊中的未知错误来赚取利润。 智能合约代码通常无法修改来修复安全漏洞,因此从智能合约中被盗窃的资产是无法收回的,且被盗资产极难追踪。 由于智能合约问题而被盗取或丢失的价值总额很容易超过 10 亿美元。   审核不是完美的解决方案   几年前,用于编写、编译、测试和部署智能合约的工具还非常不成熟,许多项目被随意地编写 Solidity 代码,并将其交给审查员,审查员将审查代码以确保其安全并按预期运行。 在 2020 年,编写 Solidity 代码的开发过程和工具得到了显著改善,不仅可以确保项目更易于管理,而且能够组成项目安全性的一部分。仅仅在项目结束时对您的智能合约进行审计已经不足以成为项目的唯一安全考虑。 安全性来源于适当的设计和开发过程,所以在您编写第一行智能合约代码之前,安全性就应该被考虑。   智能合约开发过程   最低安全限度:     所有代码应该被存在于一个版本控制系统当中,例如 git     所有的代码修改都应该通过拉取请求来进行     所有的拉取请求都应该有至少一个审核员。 如果这是一个个人项目,请考虑寻找另一位个人作者和一个交易代码审核员。     使用开发以太坊环境(请参阅:Truffle),只需一个命令就可以编译、部署和运行一套针对您的代码的测试     已经通过 Mythril 和 Sliter 等基本代码分析工具运行了代码,最好是在合并每个拉取请求之前,比较输出中的差异。     Solidity 代码编辑器不会发出任何警告     代码有据可查     上面的这些条目是编写智能合约的一个良好的开始,但是在编写代码过程中还有很多要值得注意。 关于更多条目及其详细解释,请参阅DeFiSafety 提供的过程质量检查清单。 DeFiSafete 对项目的安全评级等级的一部分包括该项目是否遵守了质量检查表。 遵循这些审核过程: 通过可复现的自动化测试,产生更安全的代码 审查员将能够更有效地审查您的项目 对新开发者友好 允许开发者快速迭代、测试并在修改时获得反馈 回滚代码的可能性较低   漏洞攻击   既然您正在使用高效的开发过程编写 Solidity 代码,那么让我们看看一些常见的 Solidity 漏洞问题。 重入攻击   重入攻击时在编写智能合约代码时应该考虑的最大且最重要的安全问题。 虽然以太坊虚拟机不能同时运行多个合约,一个合约可以调用另一个合约来暂停一个合约的执行和内存状态,直到被重新调用。这时,代码将会继续被正常执行。 暂停和重新启动的过程可能会造成一种被称为“重入攻击”的漏洞。 其他攻击   除了上面的重入攻击,智能合约还会收到许多其他类型的攻击需要注意,例如:   溢出攻击   自毁攻击   delegatecall数据篡改   随机数问题 安全工具   虽然了解以太坊安全基础知识和聘请专业审计公司审查您的代码是无可替代的,但在合约编写的过程中学会使用安全工具,能帮助你更有效率的发现和改正代码中出现的错误和漏洞。 Slither   Slither是分析代码和报告问题的实用工具。 每个人都有一个 [commercial] 托管版本,但也可以免费在本地运行。像所有自动化测试工具一样,Slither 并不完美,它在报告一侧出现了太多错误。 即使在不存在可开发的脆弱性的情况下,它也可以就潜在的重返提出警告。 在代码更改之间在 Slither 输出中查看 DIFERENER 常常非常有启发性,可以帮助发现比等待您的项目代码完成早得多的漏洞。 Mythril   Mythril 是 EVM 字节码的安全分析工具。它检测为以太坊、Hedera、Quorum、Vechain、Roostock、Tron 和其他与 EVM 兼容的区块链构建的智能合约中的安全漏洞。它使用符号执行、SMT 解决和污点分析来检测各种安全漏洞。它还在MythX安全分析平台中使用(与其他工具和技术结合使用)。     随着区块链技术的不断发展,智能合约关于安全性的解决方案也越来越完善和多样,但我们也应该做好预防措施去避免漏洞:   使用开放的资源与社区接受的库合约的实质标准 (de facto standards),例如 Open Zeppelin’s contracts。   使用推荐的模式与最优操作指导手册,例如 Consensys 提供的。   考虑由信誉好的供应商审核您的智能合约。

标签:安全,代码,智能,整理,编写,合约,安全性,漏洞
From: https://www.cnblogs.com/Soy-technology/p/16775221.html

相关文章

  • 合约安全性思维
    每个以太坊开发者都需要了解的4大安全性原则,以及基本的权衡。 虽然区块链行业正在走向成熟,但智能合约的发展仍是一个相对较新的、有待成熟的领域。因此,随着新的bu......
  • 智能合约自动化审计介绍
    区块链的智能合约发展至今,暴露出的问题不少,智能合约的正确性和安全性面临着巨大的问题;在海量的智能合约中,最好的一种设想就是通过自动化审计来降低人工审计的复杂度............
  • 智能合约web3.0系统开发实现核心
     Web3就是一个去中心化的互联网,旨在打造出一个全新的合约系统,并颠覆个人和机构达成协议的方式。Web3复刻了第一版互联网(即Web1.0)的去中心化基础架构,Web1.0的特色是用户......
  • 面试知识点整理
    1.volatile关键字 volatile是jvm的轻量级的同步锁保证可见性不保证原子性禁止指令重排2.JMM(内存模型)可见原子有序可见性的体现。3.CAS compare and set 比较并交换,这......
  • 最近整理的关于 FastAdmin 开源的文章
    最近整理的关于FastAdmin开源的文章《FastAdmin开源后的惊喜》《在FastAdmin社区如何快速获得答案?》《FastAdmin有些插件为什么要收费?》《开源是什么?(FastAdmin......
  • 整理一下 几个 MySQL 1000W 级别的问题
    ## 首先要关注占用的多大的内存​​ MYSQL-算一算1000万条数据大概占了多大磁盘空间​​ ## mysql批量插入数据,一次插入多少行数据效率最高?​​https://www.imooc.c......
  • 「高中数学」易错点以及不自然处整理
    总结是好事。一直没有学过奥数*,这让我在oi的自学旅途上曾经有过怀疑。可能有帮助的近似\(\ln2=0.69\)\(\ln3=1.09\)数值\(1\)(弧度制)约等于60°。易错点......
  • 做题记录整理图论2 P1600 [NOIP2016 提高组] 天天爱跑步(2022/10/4)
    P1600[NOIP2016提高组]天天爱跑步题解由于这位大佬似乎afo(?)了,所以我没搞懂那个桶怎么处理,到时候要回来再看一遍#include<bits/stdc++.h>#definefor1(i,a,b)for(in......
  • 00910 网络经济与企业管理简答、论述整理(自用版)
    目录第一章企业管理概论1、企业概念的要点(3个)2、公司制企业的特点(3个)3、组织职能的内容(5个)4、组织工作的基本原则【一小摊权权鞋】带上原则后缀(6个)5、领导活动的内容【领......
  • 我整理了50道经典Java算法题,直接进了字节跳动!!
    写在前面最近,很多小伙伴都想进入字节跳动这个快速发展的公司,而字节跳动对于算法的要求比较高。于是乎,有些小伙伴问我能否整理一些基础的算法题,帮助他们提升下基础算法能......