织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 竞争币

详解以太坊智能合约安全性漏洞 如何有效减少 DeFi 攻击?(5)

时间:2021-03-08 18:07来源:未知 作者:admin 点击:
类型转换:此漏洞最早在[10]中发现。以Solidity语言编写的合约可以通过直接引用被调用方合约的实例来调用另一个合约。 过时的编译器版本:当合约使用

类型转换:此漏洞最早在[10]中发现。以Solidity语言编写的合约可以通过直接引用被调用方合约的实例来调用另一个合约。

过时的编译器版本:当合约使用过时的编译器时会发生,其中包含错误,因此使已编译的合约易受攻击。通过使用最新的编译器可以防止此漏洞。

简短地址:此漏洞最早在[11]中实现,并进行了广泛讨论。

以太币丢失给孤立地址:以太币失去到孤立发生在汇款时,以太坊仅检查接收者地址的长度不超过160位,而不检查接收者地址的有效性。如果将钱发送到一个不存在的孤立地址,则以太坊会自动注册该地址,而不是终止交易。由于该地址未与任何EOA或合约帐户相关联,因此没有人可以提取已转移的资金,这实际上是丢失的。此漏洞是由EVM不能孤立保护引起的。在撰写本文时,只能通过手动确保收件人地址的正确性来防止此漏洞。

调用堆栈深度限制:此漏洞是由EVM的执行模型不足引起的,并且已被EIP-150的硬分叉所消除,该硬叉重新定义了外部调用的耗油量规则,使其不可能达到1,024 in调用堆栈深度。

低估操作码:首先从两次DoS攻击中发现了此漏洞[12][13]。

交易顺序依赖(又名前端运行):这是指并发性问题,即区块链的即将到来的状态取决于交易的执行顺序,但是由矿工决定。

时间依赖关系:当合约在执行关键操作(例如汇款)时将block.timestamp用作触发条件的一部分或作为可由恶意矿工操纵的随机性来源时,会发生此漏洞。该漏洞是由以太坊引起的,它只要求时间戳大于其母块的时间戳并且在当前时钟的900秒以内。

产生随机性:例如,许多赌博和彩票合约都是随机选择中奖者,通常的做法是根据一些初始私有种子(例如block.number,block.timestamp,block。难易度或blockhash)生成伪随机数。但是,这些种子由矿工完全控制,这意味着恶意矿工可以操纵这些变量使自己成为赢家。此漏洞是由可操纵的entropy源引起的。

数据层漏洞

难以分辨的链:当以太坊分为ETH和ETC两条链[13]时,首先从跨链重放攻击中观察到此漏洞。回想一下,以太坊使用ECDSA签署交易。在进行EIP-155[7]硬分叉之前,每笔交易都包含六个字段(即,随机数,收件人,值,输入,gasPrice和gasLimit)。但是,数字签名不是特定于链的,因为那时甚至还不知道特定于链的信息。结果,为一个链创建的事务可被另一链重用。通过将chainID合并到字段中,已消除了此漏洞。

State Trie中的「空帐户」:此漏洞首先从参考文献[12][13]中报告的DoS攻击中发现的。

共识层的漏洞

可外包的难题:回想以太坊采用了名为Ethash的PoW难题,该难题旨在抵御ASIC,并能够限制并行计算的使用(由于事实上,矿工的大部分工作将是读取数据集。通过有限的内存带宽)。但是,狡猾的矿工仍然可以将搜索难题解决方案的任务划分为多个较小的任务,然后将其外包。该漏洞是由Ethash造成的,它仅使拼图解决方案在原图像搜索中部分顺序,而不是依赖顺序PoW。 (责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容