以太坊智能合约中的安全问题持续收集中。
外部函数调用安全性
转账给别的地址,使用call,send等方式小心循环攻击。尤其注意send,callvalue,split 等函数。
举例:
- the DAO
函数可见性
数学运算安全
整型溢出
“随机数”与时间戳依赖
矿工预先得知。
举例:
- The casino with a public RNG seed
合约数据可见性
谨慎使用汇编注入
代码逻辑错误
代码拼写错误,逻辑漏洞。
举例:
- FirePonzi
所有权失控
构造函数拼写错误,导致任何人可以获得控制权
举例:
- Parity 钱包
- Rubixi
- MakerDAO
上溢/下溢
20种溢出情况
Dos with Throw
低成本阻塞,比如投标的合约
Dos with Block Gas Limit
for 循环内的转账
call Depth
调用超过次数限制,EIP150 已经修复