Solidity智能合约编程漏洞及对策

2018-09-04  本文已影响20人  af09b3c456ce

上溢(Overflow)和下溢(Underflow)

Solidity能处理256位的整数。所以2²⁵⁶-1 加1就会为0.这个就是Overflow

0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

+ 0x000000000000000000000000000000000001

----------------------------------------

= 0x000000000000000000000000000000000000

在Solidity中如果使用无符号整数,那么0减1就会得到最大的整数

0x000000000000000000000000000000000000

- 0x000000000000000000000000000000000001

----------------------------------------

= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

对策是使用SafeMath库来做数学运算

>>>阅读全文

上一篇 下一篇

猜你喜欢

热点阅读