智能合约开发必读:这10个Solidity安全问题不容忽视_SOLID:SOL

编者按:本文来自登链社区,Odaily星球日报经授权转载。在2018年,我们曾对智能合约安全状况进行过初步研究,重点是Solidity编写的智能合约。当时,我们根据公开的合约源代码编写了最常见的10个智能合约安全问题。两年过去了该更新研究并评估智能合约安全性发展的如何了。值得关注的其他问题

尽管有一个安全问题排名很不错,但它往往一些有趣的细节,因为某些细节与排名列表并不完全一致。在深入挖掘10大问题之前,必要阐述一下原始研究中一些值得关注的亮点问题:在2018年,最主要的两个问题是外部合约拒绝服务和重入。但是现在这些问题有所缓解。可以从我们的研究博客中了解更多有关Reentrancy的信息:从安全角度出发审视智能合约。译者注:实际上由于DeFi应用之间的组合应用,又导致了多起严重的重入攻击事件。现在Solidityv0

Coinbase告诉美SEC:不再认为加密货币是金融的未来:金色财经报道,在美SEC对Coinbase提起诉讼之前,该交易所正忙于将加密货币宣传为金融的未来,倡导“为每项金融服务提供全球性、开放的替代方案”。去年,它重申了“推动去中心化、Web3和金融未来的进步”的使命,并且致力于“为世界创造更多的经济自由”。

然而,Coinbase现在声称它一直只是在销售数字豆豆娃。Coinbase对比特币的态度倒退,那么到底是什么原因导致了事态的大转变呢?这可能与SEC的指控有关,指控其经营非法证券交易所至少三年。如果寻求最高处罚,SEC可能会获得没收非法所得、罚款以及超过Coinbase自成立以来全部净收入的处罚。它还可能阻止该公司完全运营美国交易所。

为了生存,Coinbase于8月4日提出了一项驳回指控的动议。在该动议中,该公司放弃了大部分关于加密货币为任何新金融体系提供动力的愿景。

此前今日早间报道,Coinbase报告称19%纽约州居民持有加密货币,对加密货币未来持乐观态度。[2023/8/9 21:34:43]

如上例所示,在乘法之前执行的除法,可能会有巨大的舍入误差。5.依赖tx

ARK方舟基金累计减持165359股Coinbase股票:9月17日消息,数据显示,9月12日至今,ARK方舟基金累计减持165359股Coinbase股票(COIN),仅增持18105股 COIN。期间COIN价格整体呈下跌趋势,今晨收盘价报74美元,较发行价381美元下跌了80.58%。[2022/9/17 7:03:22]

}可以在Solidity的文档中找到TxOrigin攻击的详细说明。简单的说,tx

在上面的示例中,当i的值为0时,下一个值为2^256-1,这使条件始终为true。开发人员应当尽量使用<、>、!=和==进行比较。7.不安全的类型推导

Bitcoin.com联合创始人担任ADAX战略顾问:ADAX任命Bitcoin.com联合创始人Mate Tokay为战略顾问。ADAX是一种自动化流动性协议,以去中心化和非托管的方式促进Cardano生态系统内的交易。(newsbtc)[2021/6/26 0:07:05]

该问题在Solidity十大安全问题排行榜中上升了两位,现在影响到的智能合约比之前多了17%以上。Solidity支持类型推导,但有一些奇怪的表现。例如,字面量0会被推断为byte类型,而不是通常期望的整型。在下面的示例中,i的类型被推断为uint8,因为这时能够存储i的值uint8就足够。但如果elements数组包含256个以上的元素,则下面的代码就会发生溢出:for(vari=0;i<elements

在这个例子中,攻击者可能利用此行为来进行拒绝服务攻击,从而阻止其他用户接收以太币。10.时间戳依赖

在2018年,时间戳依赖问题排名第五,重要的是要记住,智能合约在不同时刻多个节点上运行的。以太坊虚拟机不提供时钟时间,并且通常用于获取时间戳的now变量实际上是矿工可以操纵的环境变量。if(timeHasCome==block

由于矿工可以操纵当前的环境变量,因此只能在不等式>、<、>=和<=中使用其值。如果你的应用需要随机性,可以参考RANDAO合约,该合约基于任何人都可以参与的去中心化自治组织,是所有参与者共同生成的随机数。总结

比较2018年和2020年十大常见问题时,我们可以观察到开发最佳实践的一些进展,尤其是那些影响安全性的实践。看到2018年排名前2位的问题:外部合约拒绝服务和重入,已经不再榜单了,这是一个积极的信号,但仍然需要采取措施来避免这类常见错误。请记住,智能合约在设计上是不可变的,这意味着一旦创建,就无法修补源代码。这对安全性构成了巨大挑战,开发人员应利用可用的安全测试工具来确保在部署之前对源代码进行了充分的测试和审核。Solidity是一种非常新且仍在成熟的编程语言,Solidityv0.6.0引入了一些重大更改,并且预计在以后的版本中还会有更多更改。来源链接:securityboulevard.com

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金智博客

[0:31ms0-3:87ms