以太坊智能合约漏洞梳理:为何DeFi安全事件频发

OKX欧易app

OKX欧易app

欧易交易所app是全球排名第一的虚拟货币交易所,注册领取6万元盲盒礼包!

APP下载   官网注册
以太坊智能合约的安全问题主要是因为其「过于灵活」引起的,灵活性和安全性如同天平的两端。

原文标题:《以太坊智能合约为何安全漏洞频发?》撰文:谈国鹏,Ownbit创始人

最近,随着DeFi火热,以太坊智能合约安全漏洞频发。究竟是什么原因造成的,以及如何更好地防范这些漏洞?

概述

相比于比特币而言,以太坊更易发生安全事故。这主要是因为以太坊虚拟机是图灵完备的,以太坊可实现函数间相互调用、嵌套调用,智能合约间相互调用等各种复杂逻辑。而比特币只实现了基于栈的非图灵完备的虚拟机,并只能通过操作码进行入栈和出栈操作。另外比特币也没有复杂的DApp应用,所以逻辑上简单,故而没有太多空间引发安全漏洞。

以太坊上各种DApp复杂的智能合约逻辑是引发安全漏洞的主因。以太坊智能合约的安全漏洞主要可以分为逻辑问题和合约代码问题两种。

逻辑问题

最近频繁的「闪电贷」攻击是一个典型的逻辑问题引起的安全漏洞。在各种闪电贷攻击中你可以看到清晰的逻辑问题。攻击者只要制造出两个系统之间的价格差,便能通过闪电贷攻击获利。

闪电贷攻击的逻辑细节大家可以阅读之前一篇专门讲闪电贷的文章:「造富神器」闪电贷。本文主要阐述合约代码问题。

合约代码问题

我们知道,几乎稍微复杂一点的代码都或多或少地存在问题(bug)。了解出现问题的原因,并且归纳问题类别可以帮助我们更好地防范它们。下面是Ownbit钱包团队整理的关于以太坊智能合约安全最容易出现问题的点。

【重入(Reentrancy)】这是排名第一的问题。所谓「重入」就是一个方法被多次循环调用。而这通常是合约开发者所意想不到的。例如一个取款合约:

functionwithdrawEtherpublic{uintamount=userBalances[msg.sender];(boolsuccess,)=msg.sender.call.value(amount)("");//这里重入require(success);userBalances[msg.sender]=0;}

这是一段很简单的取款合约,让用户取走他的ETH余额。开发者并没有意识到这段代码可能会被重入。方法是:只要调用者是一个合约账户,那么msg.sender.call将默认调用该合约账户的fallback函数。攻击者只需要在其fallback函数再次调用withdrawEther就可以源源不断地取走ETH。

发生在2016年6月,著名的TheDAO攻击,从而导致了ETC分叉的事件,就是通过同样的方法实施攻击的。从事后看来,这只是一个小小的程序问题(却造成了如此严重的后果)。要修复这个问题也非常容易,只需要将两行代码调换顺序即可:

userBalances[msg.sender]=0;(boolsuccess,)=msg.sender.call.value(amount)("");

【让你的交易不打包】以太坊区块的打包机制是按照给予的矿工费(GasPrice)进行优先打包,并且每个区块有总GasLimit的限制(目前为每区块1200万Gas)。所以攻击者可以制造出若干使用GasLimit非常大,并且GasPrice给得非常高的交易,让它们优先占满区块,从而让目标交易无法被打包。

所以,在编写合约逻辑时,不能假设你的交易会在有限时间内被打包,否则就容易受到此类攻击。著名的「Fomo3D」事件就是用了

本文来自用户投稿,不代表币大大立场,如若转载,请注明出处:https://czxurui.com/zx/72031.html

上一篇 2023年08月25日
下一篇 2023年08月25日

相关推荐

  • 以太坊模拟器游戏下载,零风险体验区块链世界的入门捷径

    以太坊模拟器游戏下载,零风险体验区块链世界的入门捷径 随着区块链技术的飞速发展和加密货币的日益普及,越来越多的人渴望深入了解这个充满机遇与挑战的数字世界,真实区块链网络的复杂性、高门槛以及潜在的资产风险,常常让初学者望而却步,幸运的是,“以太坊模拟器游戏”

    2026-11-12 20:10:02
    2 0
  • 以太坊母婴店,当区块链遇上母婴消费,是噱头还是新可能?

    以太坊母婴店,当区块链遇上母婴消费,是噱头还是新可能? 近年来,随着“元宇宙”“Web3”等概念的火热,“以太坊”作为区块链技术的代表之一,逐渐从金融领域延伸至消费场景。“以太坊母婴店”这一看似跨界组合的名词,也随之引发讨论:它究竟是什么?能解决母婴消费的哪些

    2026-11-12 18:10:01
    1 0
  • 以太坊实时行情,在数字浪潮中,起伏即是常态

    以太坊实时行情,在数字浪潮中,起伏即是常态 在数字货币的广阔星海中,以太坊(Ethereum)无疑是最耀眼、最受关注的存在之一,对于投资者、开发者和观察者而言,以太坊的实时行情不仅仅是屏幕上不断跳动的数字,它更像一个动态的生命体,每一次价格的升降都牵动着无数人的神

    2026-11-12 18:10:01
    4 0
  • 以太坊创始人V神,不止是加密货币男孩,更是重塑互联网格局的远见者

    以太坊创始人V神,不止是加密货币男孩,更是重塑互联网格局的远见者 当人们谈论区块链时,比特币常常是第一个跳出的名字,但如果说比特币是“数字黄金”,那么以太坊(Ethereum)则是“世界计算机”——而构建这台“计算机”的,是一位年仅19岁时就写下白皮书、如今被《时代》

    2026-11-12 16:10:01
    5 0
  • 以太坊分身来了?ELF链与以太坊生态的最新融合与进展

    以太坊分身来了?ELF链与以太坊生态的最新融合与进展 在区块链领域,除了以太坊本身持续进行的升级(如坎昆升级等)备受关注外,一个名为ELF(AElf)的项目与以太坊生态的结合动态,也逐渐吸引了市场的目光,虽然ELF本身是一个具有独立愿景和架构的公链,但其与以太坊生态的互

    2026-11-12 16:10:01
    3 0
  • 以太坊价格走势图最近,震荡格局中的技术博弈与市场情绪

    以太坊价格走势图最近,震荡格局中的技术博弈与市场情绪 近期以太坊(ETH)价格走势呈现典型的震荡整理特征,多空双方在关键点位展开拉锯,市场情绪受宏观环境与链上数据双重影响,波动性较前期有所收敛,据最新行情数据显示,ETH价格在2800美元至3200美元区间内反复震荡,9月

    2026-11-12 16:10:01
    5 0

发表回复

8206

评论列表(0条)

    暂无评论

binance币安交易所
已有2000万用户加入币安交易所

立即下载