来自Bancor被黑的思考:披着去中心化外衣的中心化

去中心化交易所Bancor于7月9日受到黑客攻击,总计24,984 ETH、320万BNT、2.29亿NPXS被黑客盗取,总价值约2350万美金。交易所随即暂时关闭并在之后的53小时内宣布重新开放。

事件发生后Bancor立即在其官方twitter表示被盗账户为平台准备金账户(connector balance),并非任何用户钱包。对于自家平台币,Bancor表示将冻结所有被盗资金,而对于被盗的ETH,Bancor表示虽然无法做到将其冻结,但Bancor会与其他交易所合作监管黑客钱包账户的任何动向,控制这笔被盗ETH的流动性。

好奇的朋友们可自行围观,黑客钱包地址为:

0x8ddfdf60aaffe05c623ba193a186abd1f8024946

平台准备金

官方解释准备金(connector balance)为当用户购买BNT时所需要在平台储存的ETH,而当用户出售BNT时平台将会销毁此笔BNT以退还ETH。看上去平台自持ETH与用户资产并无太大关系,但用户持有的代币,例如BNT等,仅会在Bancor平台存在并运行状态良好的的时候才有价值,且当用户卖出BNT时也需要等值ETH的返还。如果平台内ETH数量不充足或运营状况下降过多,用户的资产仍会遭受到一定损失。

为何被盗

虽然自称为去中心化交易所,但Bancor的代码中有一个称为owner(solidity语言)的人,这个owner有着明显类似中心化的超级权限,包括可以无理由冻结任何BNT的转账、随意销毁任意账户内的任意代币、和可制造新的代币(token)。而此次被盗的原因很有可能是黑客拿到了这个owner的私钥,从而使用owner的超级权限提走准备金账户内的所有资产。

打个比方说,Bancor是一个提供代金券(BNT)与代金券存储账户(钱包)的机构。代金券的获取是通过使用ETH交换来获得。每位用户保留自己存储账户的密码(私钥),Bancor平台设立一个账户来储存用户提交的ETH(准备金),并安排一个看门人持有这个账户的密码来管理账户。而黑客正是通过拿取了这个ETH账户的密码,提走账户内所有资金。

但话又说回来,为什么一个自称为“去中心化”的交易所里会存在一个拥有超级权限的owner?这个问题其实早在Bancor做埃希欧的时候就被审计人员发现了,Bancor表示这个“后门”的设定最初是为了解决平台早期运营将会出现的问题,这看起来无可厚非。可平台在运行了一年多后仍未关闭这个很有风险隐患的漏洞,也许这就是此次巨额ETH被盗事件的关键所在。

狗币(Dogecoin)的创始人Jackson Palmer曾经做过研究,他发现大部分前100名的基于ERC20的代币合约主人都拥有中心化的权限。类似于上文所说的制造新的代币,暂停冻结所有转账等。很明显地,这是一个披着去中心化外衣的中心化行为。

关于私钥

最后我们来说一下中心化与去中心化到底是不是对于所有接触区块链的人都适用的。

中心化交易所(包括P2P交易所):

集中化管理,效率高。但是资金存在交易平台,不是用户自己管理私钥。

去中心化交易所:

资金储存在用户个人钱包中,且用户自己掌握钱包私钥。

我们可以看到,因为是用户自己掌握私钥,所以去中心化交易所较中心化交易所安全系数更高。但这里存在另一个问题,即是否所有用户都有必要自己保存私钥。据统计,80%的区块链用户没有正确和安全地保管自己的私钥,而这80%的用户中,有很多都是加密货币的新手玩家。所以,拥有极高安全性的去中心化是否真的适合所有人仍需事实的考证。

END

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180718G04X4U00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券