安全成熟度

除了标准的选择之外,还有_implementation_的并行选择。当你决定使用标准(如ERC20)时,你必须决定如何实施兼容Token。以太坊生态系统中广泛使用了一些现有的“参考”实现。或者你可以从头开始写你自己的。再次,这个选择代表了一个可能产生严重安全隐患的困境。

现有的实施是“战斗测试”。虽然不可能证明它们是安全的,但其中许多都支持数百万美元的Token。他们一再受到攻击,并且受到了强烈的攻击。到目前为止,没有发现重大的漏洞。写你自己的并不容易 - 有许多微妙的方式可以让合约受到损害。使用经过充分测试的广泛使用的实现更加安全。在我们上面的例子中,我们使用了ERC20标准的OpenZeppelin实现,因为这个实现从头到尾都是安全的。

如果你使用现有的实现,你也可以扩展它。再次小心这种冲动。复杂性是安全的敌人。你添加的每一行代码都会扩展合约的_受攻击面_,并可能代表处于等待状态的漏洞。你可能没有注意到一个问题,直到你在合同上投入了很多价值并且有人打破了它。