快捷搜索:

以太坊代币安全如何操作是最佳的

代币宣布时应遵照其他最佳实践履历,但也要有一些独特的留意事变。

相符最新标准

一样平常来说,代币的智能合约应遵照公认且稳定的标准。

今朝吸收的标准有:

· EIP20标准

· EIP721标准

留意在EIP-20上的前端进击

EIP-20令牌的approve()函数为赞许的支出者创造了越过预期金额的可能性。可以应用前端进击,使赞许的支出者可以在处置惩罚对approve()的调用之前和之后调用transferFrom()。

防止将代币传输到0x0地址

在编写本文时,“零”地址(0x0000000000000000000000000000000000000000)包孕值跨越8000万美元的代币。

防止将代币传传输合约地址

还要斟酌防止代币转移到智能合约的同一地址。

EOS代币智能合约便是此中一个可能造成丧掉的例子,此中跨越90,000个代币被卡在合约地址上。

示例:

实施上述两项建议的一个示例是创建以下修饰符;验证“to”地址既不是0x0也不是智能合约自己的地址:

modifier validDestinaTIon( address to ) {

require(to != address(0x0));

require(to != address(this) );

_;

}

然后将修饰符利用于“ transfer”和“ transferFrom”措施:

funcTIon transfer(address _to, uint _value)

validDesTInaTIon(_to)

returns (bool)

{

(。.. your logic 。..)

}

function transferFrom(address _from, address _to, uint _value)

validDestination(_to)

returns (bool)

{

(。.. your logic 。..)

}

法度榜样文件

当启动一个将有大年夜量资金或必要关键义务的智能合约时,必须包括适当的解释文件和安然相关的文档包括:

规格和推出计划

· 规范,图表,状态机,模型和其他文档,可赞助审核员,审阅者和社区懂得系统的意图。

· 很多bug都可以从规范中找到,从而低落修复它们的资源。

· 推出计划,此中包括此处列出的具体信息以及目标日期。

状态

· 当前代码的支配位置。

· 编译器版本,应用的标志以及用于验证支配的字节码的步骤与源代码匹配

· 将用于不合阶段的编译器版本和标志

· 已支配代码确当前状态(包括未决问题、机能统计等)

已知的问题

· 智能合约的主要风险。 (例如, 你可能会损掉落所有的钱,黑客可能会经由过程投票支持某些结果)

· 所有已知Bug/限定。

· 潜在的进击和办理措施。

· 潜在的利益冲突。(例如,筹集的Ether将纳入自己的腰包,像Slock.it与DAO一样)

历史记录

· 测试(包括应用环境统计信息,发明的Bug,测试光阴)。

· 已审阅代码的职员(及其关键反馈)。

紧急法度榜样

· 发明Bug时的行动计划(例如,紧急选项,公共看护流程等)。

· 假如呈现问题,请停止流程(例如出资者会在进击前从残剩资金中得到余额的百分比)。

· 认真任的表露政策(例如在何处申报发明的Bug,任何Bug赏金计划的规则)。

· 发生故障时的追索权(例如保险,罚款基金,无追索权)。

联系信息

· 谁来处置惩罚问题。

· 法度榜样员和/或其他紧张职员的姓名。

· 可以提问的谈天室。

滥觞: 区块链钻研实验室

您可能还会对下面的文章感兴趣: