天天看点

《我学区块链》—— 十五、以太坊安全之 Solidity 类型漏洞十五、以太坊安全之 Solidity 类型漏洞

十五、以太坊安全之 Solidity 类型漏洞

漏洞描述

       2016年10月30日,以太坊的智能合约开发语言 Solidity 本身,被发现存在安全漏洞。

       目前只知道这是一个 Solidity 数据类型的漏洞,影响了智能合约中一些地址以及数据类型,由于漏洞的详细情况实在无法找到,这里先占个位,待以后补充。

       但也不是全无所得,具体可参考下面 [目前情况]。

目前情况

       1、漏洞发布的两天后,2016年11月01日,Solidity 推出了修复版 0.4.4,但已经发布的有问题合约仍旧无法升级。

       2、由于发现及时,这一漏洞不会影响到太多合约,据 Solidity 语言的创造者 Christian Reitwiessner表示,其通过对 etherscan 上的合约程序进行 “半自动” 分析,发现在 12,000 个合约当中,只有 4个是有问题的,且这些合约中都没有以太币。

       3、这次问题主要是由 Solidity 源码编译到字节码时发生的,鉴于以太坊及 Solidity 都是较新的事物,问题一定会很多,而 Solidity 语言又保持着快速更新,因此,我们在编译智能合约时尽可能都升级到最新的 Solidity 版本。

       4、另一个避免智能合约安全问题的思路是,缩短它们的运行时间,定期迭代新的合约,以减少影响的发生。

       5、还一个思路是设置每次交易资金的上限。