以太坊智能合约的安全注意事项
安全注意事项 虽然它通常是很容易建立一个运行正常的软件,它是更难检查,没有人能在这是一个方式来使用它没有预料到的。 在Solidity中,这更为重要,因为您可以使用智能合约来处理令牌,或者甚至可能使用更有价值的东西。此外,智能合约的每次执行都是在公共场合进行的,除此之外,源代码通常也是可用的。 当然,你总是要考虑有多大危险:你可以将智能合约与对公众开放的网络服务(以及对恶意行为者)甚至是开源的网络服务进行比较。如果您只将购物清单存储在该网络服务上,则可能不必太在意,但如果您使用该网络服务管理您的银行帐户,则应该更加小心。 本节将列出一些陷阱和一般安全建议,但当然可以永远不完整。另外,请记住,即使您的智能合约代码没有错误,编译器或平台本身也可能存在错误。可以在已知错误列表中找到编译器的一些公知的安全相关错误的 列表,这些错误也是机器可读的。请注意,有一个bug bounty程序,它涵盖了Solidity编译器的代码生成器。 与往常一样,使用开源文档,请帮助我们扩展此部分(特别是,一些示例不会受到伤害)! 陷阱 私人信息和随机性 您在智能合约中使用的所有内容都是公开可见的,甚至是标记的局部变量和状态变量private。 如果你不希望矿工能够作弊,在智能合约中使用随机数是非常棘手的。 重入 合约(A)与另一合约(B)之间的任何互动以及任何以太方移交控制权转移到该合约(B)