条件竞争(Race Condition)进攻的方法许多样,可是焦点的本质无非是对某个条件的状态修改的竞争,如上期先容的重入裂痕,也是条件竞争的一种,针对的是用户余额这个条件举办竞争,只要用户的余额没有归零,用户就能一直提走智能合约的钱。这次先容的条件竞争的例子是最近产生的著名的 Edgeware 锁仓合约的拒绝处事裂痕,详情可参考:关于 Edgeware 锁仓合约的拒绝处事裂痕。这个裂痕问题的本质在于对新建的锁仓合约的余额的这个条件举办竞争。进攻者可以监控所有链上的锁仓请求,提前计较出锁仓合约的地点,然后向合约地点转账,造成锁仓失败。在官方没有修复之前,要防备这种进攻,只能利用比进攻者更高的手续费让本身的锁仓生意业务先行打包,从而与进攻者形成竞争制止进攻。最后,官方修复方案为差池锁仓合约的余额举办强制性的相等查抄,而是回收大于便是的形式,制止了进攻的产生。
假币进攻(Fake Token Attack),是针对那些在建设官方 Token 时回收通用建设模版建设出来的代币,每个 Token 的识别仅按照特定的标志举办识别,如 EOS 官方 Token 的识别标志是 "eosio.token"合约,波场的 TRC10 的识别标志是 tokenid,以太坊的 ERC20 是用合约地点作为识别标志。那么这样就会呈现一个问题,假如收款方在对这些 Token 举办收款的时候没有严格校验这些 Token 特有的标志,进攻就会产生,以 EOS 为例子,由于 EOS 官方 Token 回收的是合约来刊行一个名为 EOS 的 Token,标志 EOS 自己的标识是 "eosio.token" 这个刊行帐号,假如在接管转账的时候没有校验这个标识,进攻者就能用其他的帐号同样刊行一个名为 EOS 的 Token,对生意业务所或钱包举办
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。