Token背后潜伏的Bancor危机

区块链安全档案
区块链安全档案 机构得得号

Jul 18, 2018 隶属于曲速未来安全区,安全问题深度分析、一手威胁情报披露

摘要: 包括 Status 和 FunFair 在内的部分国内外热门区块链项目,智能合约存在管理员权限过高的问题,或导致项目存在过度中心化的风险,相关 Token 生态极易发生单点失效。

代币发行平台Bancor在周一早上发生“安全漏洞”后脱机,损失了数百万美元的加密货币。虽然事后Bancor公司在Twitter上发帖称,在安全事件发生后该公司将其平台下线,并表示“没有用户钱包被泄露”。但根据CoinMarketCap的数据透露,该货币的价格在过去一天下跌了大约14%,价格在2.73美元左右。

根据后续声明透露,该公司总共损失了约1350万美元。

漏洞让很多人损失了很多加密货币,即使是那些不允许签订智能合同的货币,也容易受到错误的影响。就连衡量其他硬币的基准比特币也有它的份额,就像2010年的漏洞,在74638块中创造了1,800亿比特币。虽然很快就修好了,但没有人得到或丢失硬币。以太坊的用户从来没有这么幸运过。像DAO和最近的Bancor(其1250万美元的损失被归因为他们智能合同中允许的)这样的事件已经将加密丢失的数量推到了10亿美元。

其实有很大一部分是因为智能合约存在管理员权限过高的原因。
致命问题可能会出现在两个方面:一是项目方滥用权限,二是超级管理员身份被盗用。这两种情况一旦发生,相关 Token 生态可能会迅速崩塌。

关于Bancor团队如何处理被盗事件:
Bancor 项目方在攻击发生后,声称是识别出攻击者地址,冻结了攻击者偷来的 BNT 代币。经过调查,Bancor 管理员实际上是动用了 destroy() 方法来“销毁”用户手中的 Token。

Bancor 团队也发表声明称普通用户的钱包没有受到影响,并进一步解释铸币、烧币以及存储大量以太币是他们协议中价格发现机制的一部分。

作为比特币和区块链爱好者,都是崇尚去中心化。然而,很多持币者可能还不太清楚,目前各类 Token 项目智能合约管理员拥有超级权限竟已逐渐成为常态. 据不完全统计,排名前 570 名的 Token 合约中,有342个合约存在只有管理员能调用的功能,不少合约更存在管理员任意铸币、烧币、冻结账户、关停转账等过高权限。

就好比如Status(SNT)和FunFair(FUN)这两个热门项目都存在着非常严重的管理员权限过高问题。

Status合约中有名为Controller的管理员角色,可调用generateTokens()往任意地址增发代币,可调用destroyTokens()销毁任意地址上的代币。但Status项目的白皮书并没有相关特殊权限声明。此外,Status合约还应用了可升级的代理合约机制,管理员可以通过任意设置代理合约controller地址的方式,在关键函数前面插入可升级的校验逻辑,来影响转账等关键操作。

知名的FunFair(FUN)项目也存在与Status类似的问题。

倘若有人作恶,增发巨额数量的Token至市场上抛售,后果不堪设想。

此外,交易所作为区块链项目生态中的中坚力量,也应当积极督促项目方限制过高权限以及透明运营。

目前,区块链浏览器网站 EtherScan 已将攻击者的地址标注为 Fake_Phishing1701 和 Fake_Phishing1702。

以 Bancor 为例,在巨大的经济利益面前,即使我们信任了发行方不会滥用权限,却依然无法保证别有用心者不会借此攻击。对于发行与运营极度依赖项目方的 Token,可能我们永远无法形成类似对比特币的共识与信仰。

Bancor 危机也给我们带来很多反思:

1、Bancor 是否是真正的去中心化交易协议

2、智能合约在哪些情况下需要管理员

3、合约管理员权限的边界在何处

4、如何保障钱包及私钥安全

管理员权限是把双刃剑。在 Bancor 事件中,黑客利用了管理员权限盗取代币,而项目方也正利用了管理员权限来降低损失。不过我们认为,开发者依然可以通过良好的代码设计来降低 Token 和 协议合约对管理员的依赖。同时,我们也号召大家,去更多地了解相关项目的智能合约,利用社区力量监督项目管理员权限。

(本文仅代表作者观点,不代表链得得官方立场)

链得得仅提供相关信息展示,不构成任何投资建议
本文系作者 区块链安全档案 授权链得得发表,并经链得得编辑,转载请注明出处、作者和本文链接

更多精彩内容,关注链得得微信号(ID:ChainDD),或者下载链得得App

分享到:

相关推荐

    评论(0

    Oh! no

    您是否确认要删除该条评论吗?

    分享到微信