以太坊合约开发安全事项
文档更新说明
- 最后更新 2018年04月08日
- 第二次更新 2018年04月09日
- 首次更新 2018年04月09日
前言
本文用于记录遇到的安全问题,毕竟合约大都关系到财产问题,不可轻视.
ERC20中可能遇到的问题
approve方法
approve用于授权他人转移自己的代币,对某个地址在已经授权了一次之后,想要修改授权的值时,需要先调用approve方法把值重置为0,等待区块打包确认之后,再重新设置为修改后的值. 攻击方法参考这里
随机数问题
获取伪随机数可能会被攻击
以太坊上无法直接获取随机数(至于为什么,不在此处讨论),一般我们会通过keccak256 来制造随机数.但是这样有可能会被攻击,假设攻击者拥有超高算力,他可以提前运行赌博游戏的方法,偷窥结果,从而来决定要不要广播这个结果.当然这种攻击方法成本还是很高的.
下面是一些得到随机数的方法理论:
区块链中的随机数
以太坊合约中如何获得真随机数