近日,一个名为“FairWin”的资金盘项目尤为引人瞩目,受其影响,以太坊网络 Gas 消耗量持续处于高饱和的状态,其单个 DApp 的 Gas 利用率就达到了以太坊网络可承载 Gas总量的近半数。
然而,因被曝存在智能合约安全漏洞, FairWin被推上风口浪尖,一时间引来大众对于类 FairWin 游戏命运乃至整体以太坊网络稳定性的担忧。
概述
北京时间2019年09月27日,PeckShield 安全人员在深入分析 FairWin 智能合约时发现,FairWin 智能合约存在一些因管理权限问题引发的致命缺陷,旧合约中的余额可被用户任意操作并转移,且在升级后的新合约又存在一个新问题,使得用户可以制造虚假投注来捞取奖池剩余资金。
FairWin 合约问题的由来
经 PeckShield 旗下 DApp 数据服务平台 DAppTotal.com 最新监测数据显示,自08月26日以来,以太坊网络每日 Gas 消耗量持续处于高度饱和的状态,即每日 Gas 消耗量占以太坊网络可承载 Gas 总量的90%以上,整体网络状况异常拥堵。
造成持续拥堵原因为,最近横空出世了一个名为 FairWin 的资金盘项目,其每日 Gas 消耗量占比达到了以太坊网络可承载总量的近半数(如下图)
PeckShield 安全人员通过分析FairWin智能合约代码发现,在06月17日,FairWin 部署了0x11f5 开头的合约,分析其合约源码发现,存在以下的调用:
不难发现,sendFeeToAdmin()
这一方法可以被任何用户调用,一旦调用之后,FairWin 合约中的余额就会被转移至指定的 admin 地址之中。这一问题被 ConsenSys 的安全研究人员 Daniel Luca 发现,随后项目方于07月27日部署了 0x01ea 开头的新版合约,对该问题进行了修复。
如下图,通过分析新版合约的代码发现,sendFeeToAdmin()
方法已被设置为 private
: