DeFi的安全虽然被暴击了一万点,但这并没有影响我继续为DeFi写东西,为了能让大家了解目前这块短板,还是有必要去推广一下DeFi这块涉及的安全知识,今天就和大家一起学习如何分析一下DeFi应用的安全。
写这个的部分原因还是Uniswap也被攻击了,个人最看好的DEX,也是写的各文中都提过的,此次攻击Uniswap损失了1,278个ETH和18.37个imBTC,其实就是ETH-imBTC这个流动池,彻底凉了 ,攻击手法就是进行 ETH-imBTC 交易时,利用ERC777中的多次迭代调用tokensToSend来实现重入攻击,具体已有很多文章分析了。所幸的是Uniswap这种去中心化的设计,看起来有点像一艘庞大的航母,每个流动池相当于内部的各个空舱,就算某个舱被鱼雷击穿漏水,只要隔离好,其他舱照样可以安然无恙,因此Uniswap的其他流动池也是如此,依然安全无损,Uniswap这个兼容性虽然导致了部分用户的损失,但相比于Lend.me影响不算大,并没有形成完全一锅端的情势,所以这给DeFi开发者一种启发,在开发应用时也应该有种去中心化的想法来分解应用架构,把安全风险分散,尽量减少损失。当然,这也只是个人的一厢情愿,站着说话不腰疼,真正开发起来还是有难度。
再来说说ERC777这个问题,早在一年前ConsenSys给Uniswap做的审计报告就已经注明,并设置安全级别为Major(主要),还处于开启未解决的状态,报告地址:https://github.com/ConsenSys/Uniswap-audit-report-2018-12#31-liquidity-pool-can-be-stolen-in-some-tokens-eg-erc-777-29。DeFi开发者应该增加更多的安全意识了,DeFi本身就是铁板一块的,存在紧密的相互操作性,多去了解DeFi生态的安全问题,相似的可以借鉴处理或者是规避掉,这样才能为DeFi用户提高更高级别的安全保障,让用户放心。这个审计报告是ConsenSys提供的,我们当然有必要了解一下它。ConsenSys是家区块链软件公司,其宗旨是为区块链生态圈开发Dapps并为开发者及终端用户提供相应工具,其主要项目目前皆基于以太坊平台,看起来还挺牛X的,审计也算一项他们的业务,申请报告直接放在github上,也是足够透明了,让人觉得靠谱啊。看了Uniswap审计报告了,提到一个分析工具,就是专门用于分析智能合约的问题漏洞,然后根据这个分析结果制作出审计报告的,这个工具就是Mythril(报告也叫Mythril Classic),它可以为Ethereum、Hedera、Quorum、Vechain、Roostock、Tron和其他EVM兼容的区块链构建的智能合约通过分析EVM字节码方式检测安全漏洞,它是开源的,当然是人人都能使用。下面就来说下它的应用:
1.安装
安装方式有两种:docker和python,如果你有个docker环境,docker pull mythril/myth这个命令就把mythril下载下来(推荐),python的话就需要配置python3环境,通过pip3 install mythril把工具安装好,就可以用myth这个命令了。
2.使用
使用的模式也分两种:分析sol源码和分析链上智能合约的地址,第一种比较适合DeFi开发人员,第二种还是比较适合我们小白直接去了解某个DeFi应用的安全情况,所以直接说下第二种。比如我们通过etherscan查到某个智能合约的地址,如0xEbFD99838cb0c132016B9E117563CB41f2B02264,然后就可以一行命令去分析它的安全情况myth analyze --infura-id (你在infura.io上申请到ethereum主网的密钥) -a 0xEbFD99838cb0c132016B9E117563CB41f2B02264,然后得到截图如下:
从图中我们就可以看到此智能合约上两个Medium(中级)风险,具体可以看更多英文说明。哈哈,是不是感觉用起来像命令版的360,虽然只能看,不能处理,但我们可以了解DeFi的项目方是否够认真在做事(一堆漏洞谁敢用?),在用DeFi应用时增加了一双火眼金睛。这个工具无法让你不再踩DeFi的雷,但帮你对DeFi安全重提信心,不管开发者还是用户,我们都应该敬畏安全。
最后提醒一下,市场有风险,本文只是个研究,不作为投资建议,请合理控制风险。
点赞就是对传教士最大的鼓励,谢谢支持。
版权声明:项目均采集于互联网, 空投币 无法审核全面,且希望大家能赚钱,请谨慎切勿上当受骗!
温馨提示:★★★天上真会掉馅饼!天道酬勤,都是机会!不错过每个空投糖果!真假难以辨认,尽量0撸!