币圈按价定投方法论,币圈a9是什么意思

  

  风险:国内外一些热门的区块链项目,包括Status和FunFair,都存在智能合约中管理员权限过高的问题,或者导致项目过于集中的风险,相关的Token生态容易出现单点失效.的致命问题,可能出现在两个方面:一是项目方滥用权限,二是超级管理员身份被盗用。一旦这两种情况发生,相关的令牌生态可能会迅速崩溃。   

  

  

恐怖的智能合约管理员权限

  

  

  作为比特币和区块链爱好者,我们敬佩去中心化.然而,很多币民可能并不知道,目前各种代币项目的智能合约管理员拥有超级权限竟已逐渐成为常态.据我们不完全统计,排名前570的代币合约中,有只有管理员才能调用功能的 342合约(onlyOwner),很多合约甚至拥有管理员独断铸币、烧币、冻结账户、关停转账.等过度权限   

  

  SECBIT实验室研究了top Status (SNT)和FunFair(趣味)项目。我们认为这两个热门项目存在非常严重的管理员权限过高问题。   

  

  状态协定中名为Controller的管理员角色可以调用generateTokens向任何地址发出附加令牌,并且可以调用destroyTokens在任何地址销毁令牌2。但是,地位项目白皮书没有相关的特别许可声明。而且这两个超权限函数并不触发铸币或刻录事件,只是普通的转账事件。   

  

  如果有人冒用管理员身份作恶,社区可能很难在第一时间发现。通过扫描区块链数据,我们发现,目前状态团队仅在2017年6月19日依次传入最小值并成功调用发行和销毁函数进行测试,普通用户无需过于恐慌。但你需要知道的是,官方团队随时保留这样的超级权限。   

  

  此外,地位契约还适用可扩展的代理契约机制。管理员可以通过任意设置代理合同控制者的地址,在关键功能前插入可扩展的验证逻辑,从而影响转账等关键操作。   

  

  众所周知的FunFair(趣味)项目也有类似于Status的问题3。白皮书没有提及其代币合同中的特殊权利;项目方在众筹后的一定时间内并未关闭本应关闭的造币等功能。如果有人作恶,将会发行巨额代币到市场上出售,后果不堪设想。   

  

  另外,很多项目都有同样的问题。我们呼吁相关项目方立即向社区做好风险告知特殊权限披露的工作,而社区参与者也可以充分发挥监督.的力量   

  

  令牌持有者有权,了解项目方在有义务:还披露了以下内容   

  

  以及项目方在代币业务合同中所拥有的特殊权利的详细情况。为什么项目方需要这些特殊权利?特殊权限会在什么情况下使用?特权被滥用会有什么后果?哪些特殊权限可以永久关闭,什么时候关闭?特别权利使用历史的详细描述?特别权利使用的监督渠道?项目方采取什么措施保证特殊权利不被滥用和盗用?如何通过更好的智能化设计提升社区治理水平?此外,交易所,作为区块链项目生态的中坚力量,还应该活跃在督促项目方限制过高权限透明运营。.   

  

  

管理员权限过高造成损失的真实案例

  

  

  到目前为止,还没有证据表明热门项目团队利用超能力作恶。也许我们可以松一口气了。但即使在信任官方团队不会主动作恶的前提下,恶性安全事件仍有可能发生。   

  

  加密货币交易平台Bancor表示,其在7月10日遭到攻击,损失了24,984 ETH、3236967 BNT、229,356,645 NPXS、兑换法定货币金额为1250万美元的以太坊、1000万美元的Bancor代币和100万美元的Pundix代币。   

  

  当初很多媒体报道Bancor智能合约存在安全漏洞。SECBIT实验室随后对这一安全事件进行了追溯分析。   

  

  Bancor的主要合约有SmartToken和BancorConverter,分别是与业务相关的ERC20令牌合约和令牌转换交易合约。   

  

  这个Bancor平台   

被盗事件与 BancorConverter 合约有关,攻击者(黑客/内鬼)极有可能获取了 0x009bb5e9fcf28e5e601b7d0e9e821da6365d0a9c 账户的私钥。

  

而此账户正是转换代币合约 BancorConverter(0x3839416bd0095d97bE9b354cBfB0F6807d4d609E)的 owner,同样拥有极高权限。owner 作为该合约的所有者和管理员,有唯一的权限通过 withdrawTokens 方法提走合约中的全部 ERC20 Token 至任意地址。

  

第一次攻击发生在以太坊主网区块高度 5930096,北京时间 7 月 9 日 8 时 6 分。攻击者利用 owner 身份,首先调用 withdrawTokens 转走 0.1 ERC20 ETH 进行攻击测试<4>。

  

三分钟后,攻击者再次转走 22000 巨额数量的 ERC20 ETH 至其控制的地址(0x33ed22f4b6b05f8a5faac4701550d52286bd735a)上 <5>。

  

随后,攻击者再调用 Ether Token 合约(0xc0829421C1d260BD3cB3E0F06cfE2D52db2cE315)的 withdrawTo 方法,将 ERC20 版本的以太代币兑换为真实以太币 <6>。

  

至此,22000 个 ETH 便完全被攻击者借用管理员身份所盗走。

  

攻击者还控制了以下账户,如法炮制地偷走其账户余额,以及其所管理合约中的代币。

  

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

  

此外,Bancor SmartToken ERC20 合约也由 owner 完全控制,目前是一个名为 MultiSigWallet 的合约,暂未被盗用。

  

owner 对 SmartToken 合约具有以下权限:

  

owner 可通过 disableTransfers 任意禁用转账功能owner 可通过 issue 任意增发代币owner 可通过 destroy 任意销毁代币以上这些功能均通过 ownerOnly 进行限定,换句话说,owner 对 Bancor 合约拥有最高权限。

  

Bancor 团队如何处理被盗事件

  

Bancor 项目方在攻击发生后,识别出攻击者地址,声称冻结了攻击者偷来的 BNT 代币。

  

经我们调查,Bancor 管理员实际动用了 destroy 方法来“销毁”用户手中的 Token。

  

管理员可以从任意账户 _from 中扣除任意金额 _amount 的 Token,同时将总供应量 totalSupply 缩减。

  

这就是常说的 烧币功能。由于攻击者在得手后,将偷来的币分散到若干个地址中。Bancor 的管理员不得不挨个依次调用 destroy 来销毁对应地址的代币,再调用 issue 方法将烧毁的币重新增发到自己手中。但此补救方法对于 NPXS Token 和已转走的 ETH 无效,这些被盗的币将被转至交易所抛售。

  

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

  

Bancor 安全事件的影响与反思

  

除开巨额被盗事件,Bancor 团队的这一声明和处理方式,同样引起了社区的恐慌。人们纷纷质疑 Bancor 项目智能合约中 owner 管理员的超级权限,甚至称之为“后门”。

  

Udi Wertheimer 早在一年前就曾发文抨击 Bancor 项目无论是众筹合约还是 ERC20 Token 合约都缺乏良好的设计,称所有的 Token 都由 Bancor 团队完全掌控,管理员拥有绝对控制权,极度中心化 <7>。而 Bancor 团队则一直声称自己十分重视安全,并采用业内最佳的钱包和私钥管理方案 <8>。不过,他们并没有披露此次被盗事件的细节,如攻击者如何能控制多个管理员账户。

  

我们把目光放至整个通证生态。社区参与者对管理员拥有的权限知之甚少,而项目方的相关披露与风险提示更少。安比(SECBIT)实验室也正在智能合约风险表中收录各类权限过高问题 <9>,试图借此引导社区重视这些问题。

  

对于 Token 合约,当有账户存在超级权限时,整个 Token 生态极容易发生单点失效。致命问题可能会出现在两个方面,一是项目方作恶,二是超级管理员身份被盗用。当 Token 的价值全部依赖在某一个人或少数几个人身上时,可想而知这其中暗藏的风险会非常之高。以 Bancor 为例,在巨大的经济利益面前,即使我们信任了发行方不会滥用权限,却依然无法保证别有用心者不会借此攻击。对于发行与运营极度依赖项目方的 Token,可能我们永远无法形成类似对比特币的共识与信仰。

  

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

  

Bancor 是否是真正的去中心化交易协议智能合约在哪些情况下需要管理员合约管理员权限的边界在何处如何保障钱包及私钥安全管理员权限是把双刃剑。在 Bancor 事件中,黑客利用了管理员权限盗取代币,而项目方也正利用了管理员权限来降低损失。不过我们认为,开发者依然可以通过良好的代码设计来降低Token 和 协议合约对管理员的依赖。同时,我们也号召大家,去更多地了解相关项目的智能合约(它可能跟你想象的不太一样),关注手中的 Token 到底由谁控制,利用社区力量监督项目管理员权限。

  

参考文献

  

<1> CoinAlpha 对 ERC20 乱象的总结 https://medium.com/finance-3/the-myth-of-the-erc-20-token-standard-ab0d76cf8532

  

<2> Status 合约代码 https://etherscan.io/address/0x744d70fdbe2ba4cf95131626614a1763df805b9e#code

  

<3> FunFair 合约代码 https://etherscan.io/address/0x419d0d8bdd9af5e606ae2232ed285aff190e711b#code

  

<4> 第一次攻击测试 https://etherscan.io/tx/0xf9fd6ac9bb4e632cf07d5b80b59bb6e417fe52305ea720e552ca6ca204951629

  

<5> 第二次攻击 https://etherscan.io/tx/0xf9fe97d642705fa016c4f8d11ea13ce581ba75c57ac455586254e15d915e9bde

  

<6> 兑换成 ETH https://etherscan.io/tx/0x43a964e635f31b0cc329db6f980f09096054e4e3a627c85654852fd026b92ba0

  

<7> 对 bancor 的质疑 https://medium.com/unchained-reports/bancor-unchained-all-your-token-are-belong-to-us-d6bb00871e86

  

<8> bancor 的回应 https://blog.bancor.network/response-to-bancor-unchained-cdb3bd2ba505

  

<9> SECBIT 智能合约风险表 https://github.com/sec-bit/awesome-buggy-erc20-tokens/blob/master/ERC20_token_issue_list_CN.md#c-%E6%9D%83%E9%99%90%E7%AE%A1%E7%90%86%E9%97%AE%E9%A2%98%E5%88%97%E8%A1%A8

  

(本文作者:安比(SECBIT)实验室 & 轻信科技(LedgerGo),以上数据均由安比(SECBIT)实验室提供。)

相关文章