关于长亭空间
超值服务提供卓越产品
编者按:本文来自区块律动BlockBeats,作者0x2,Odaily星球日报经授权转载。
黑客预先投入百万人民币,将自己控制的节点成功选举为EOS 中21 个出块节点,再利用节点的便利,将价值6000 万人民币的被冻结EOS 一次性转走到交易所变现?还是他运用了更聪明的方法,使其不需要投入任何成本,上演了一出完美的空手套千万?
2 月22 日下午2 点,区块链世界总值排名第四的EOS 网络上出现了一笔离奇的转账。
曾被(EOS 仲裁委员会) 冻结交易的EOS 账号出现了异常交易活动,向疑似某交易所的账号转了三笔交总计209 万个EOS 的交易,价值6000 万人民币。这笔钱本是犯罪份子骗取EOS 用户私钥后转移来的赃款,已经被冻结,现在这个被冻结的账户居然意外出现了转账。
区块链安全团队PeckShield 随后发表分析认为,是EOS 区块链上一个名为games.eos 的节点没有设置黑名单(没有阻止黑名单账号交易)而导致的。
上面提到的被ECAF 仲裁冻结交易的账号,绝大部分为持有黑产、盗窃、诈骗等手段获取的EOS 资产的账户。为了防止黑客把偷来的币转移或销毁证据,所以ECAF 仲裁机构向节点发出冻结令,冻结以后账户就不能做任何交易,使用户资产和黑客盗窃证据得以保全。
按照规定,在ECAF 宣布冻结命令后,EOS 节点要完成黑名单的同步,这样就保证币不会转移走,等到仲裁机构给出结论后再做下一步打算。
可是,22 日下午,因为21 个EOS 出块节点之一的games.eos 没有设置好黑名单,黑客利用这个节点出块时段,连续三次,把209 万个EOS 区块链代币转移走。此类行为又被称为是「偷跑」。
EOS 节点的主要工作就是负责生产区块,即处理转账交易和阻止黑名单交易。到这里,很多人都会认为这只是一起由于工作疏忽而导致的因意外事件,而事情接下来的发展,却出乎我们的意料。
当天下午4 点,PeckShield 数据再次显示,黑客是假装向疑似Newdex 去中心化交易所的账号转账,躲避追踪。
但实际上这是一个混淆视听的假账号,黑客同时向多个不同的小号分散转账,小号收到转账马上转进交易所,比如火币、币安、Bitfinex 等。
据了解,这些转进交易所的EOS,在安全团队和交易所都还没有反应过来的时间内就开始提币走人,原先的赃款就这么瞬间洗白。据PeckShield 提供的链上数据,目前黑客已向交易所成功汇入了35.5 万EOS,即洗白的赃款可能高达990 万元。
这是一场预谋已久的犯罪行为。
区块链世界里又一例新的高智商犯罪?
在社交网络上有人认为这是黑客的一个完美高智商犯罪,以极低的成本成功将此前被冻结的价值6000 万人民币的EOS 取走。
有观点认为:
为了让黑客偷的币顺利转移,黑客通过一些手段买到了1500 万EOS 的票,让一个没有加黑名单的节点成为出块节点,然后成功偷跑了价值5000 万的EOS。
这里提到的「买票」,其实就是代理投票。EOS 网络上有专门做代理投票的团队,他们手中持有大量的筹码,可以根据客户需求来进行投票成为节点,借此获得节点分成或者利润。代理投票和抵押EOS 资源的服务模式是一样的,相当于租赁业务,用户只需要支付极少的费用就可以获取大量的、短时可用的EOS。
在EOS DAPP 非常流行的时候,因为EOS DAPP 大量消耗资源,所以用户玩DAPP 的时候需要购买CPU 资源。不少钱包都提供CPU 租赁业务,用户4 个EOS 就可以租到5000 个EOS 的CPU。买票的服务也是一样,用很少的EOS 就可以买到大量的EOS 投票,抵押结束后,票就会撤回来。
如果按照抵押EOS 资源的价格,有人也大概算出了这次犯罪的成本,大约在30-114 万人民币之间。从EOS 节点投票数据看,games.eos 节点在2 月20 日和21 日这两天,一共新获得了1518 万票,这些票让games.eos 一跃成为了前21 名出块节点。
如果4 个EOS 可以买到5000 个EOS 的票,那1518 万票就需要12,144 个EOS 去买,按照现在的价格,就是30.3 万人民币。而据业内从业者表示,100 万EOS 投票需要3000 个EOS 的租赁费,那么1518 万票就需要45,540 个EOS,价值114 万人民币。
所以网友推测这次犯罪的买票成本大概是在30 万到114 万人民币之间。PeckShield 安全团队也认为,不排除黑客买票让节点当选的可能性。
然而这个让人激动人心的黑客故事可能经不起推敲。根据PeckShield 的数据,games.eos 节点在2 月21 日就已经成为了出块节点。如果黑客真的进行了买票操作,那黑客应该会时间趁着深夜将资产转出,为什么要等到一个工作日的下午呢?而且买票的行为非常容易被人发现真实身份,目前还没有可以进行匿名买票的途径。
区块律动BlockBeats 于是针对这一事件展开了深入调查。
早有先例
区块律动BlockBeats 之前曾经报道过EOS 节点偷跑黑名单导致普通用户资产被盗事件:《EOS迟早毁在这群白吃干饭的超级节点上》【点击链接查看全文】。
文中,小手(化名)在今年4 月份以110 元左右的价格买入了1000 多个EOS。6 月份EOS 主网上线之后,各大钱包对EOS Token 的支持都不完善,小手在操作转账到交易所的过程中遇到了问题,在电报群中求助后,有「客服」来与他联系说可以手动导入EOS 资产到交易所。然而小手没有想到的是,这个客服其实是骗子假扮的。骗子在索要了小手的EOS 私钥后,将其EOS 资产掠夺一空。
因为泄露了自己的私钥,小手自己EOS 账户中的1280 多个EOS 被骗子盗走后买了EOS RAM。小手找到了EOS 自治社区ECAF,并通过这一渠道进行了仲裁申请(申请编号198),3 个月后的10 月5 日,ECAF 发布了这一资产被盗事件的紧急冻结令,骗子的钱包地址被冻结,小手的资产得到了暂时的保护。
然而,噩梦却在那意思小确幸后降临。11 月12 日,这个被冻结的EOS 地址居然执行了操作,骗子将EOS RAM 卖掉,这仅剩的552 个EOS 被骗子转到币安交易所卖掉后提现走人。已经被各个节点加入黑名单冻结的账号是怎么进行操作的,小手大为不解。
原来,负责这次交易的出块节点starteos 并没有将这个黑客账号添加到黑名单中,导致黑客成功地「偷跑」。
2 月22 日的209 万个EOS 被偷跑,也是使用的同样的手法。
于是有两种可能性摆在我们面前:这是黑客精心安排的一次独立高智商犯罪,亦或是与games.eos 节点串通,一同导演的一场黑客盗币的大戏。
区块律动BlockBeats 把games.eos 这个节点的得票历史(统计超过20 万票数)做了下面这张图。
可以看出,该节点账号于10 月份创建后并没有立即开始获得投票,直到11 月才获得大量选票,期间有三次大幅度的票数增长,分别在11 月4-5 日、12 月23-25 日和2 月20-21 日。
在20 日和21 日这段时间里,games.eos 得票量突然猛增,成为获票数前21 的节点,成为了出块节点。在发现209 万个EOS 通过该节点偷跑后,排名22 和23 的节点迅速获得大量票数,将games.eos 挤出出块节点行列。大约1 小时后,games.eos 回到了排名23 位,不再负责出块。
在区块链浏览器上,每个节点都有完整名称和所在地,可games.eos 什么介绍都没有,好像是凭空出来的,更令人生疑。
从投票历史上看,games.eos 是从去年10 月份才开始有得票的节点,在浏览器上也发现这个账号是一个10 月份才开始建立的,出现了只有4 个月。正常来说,节点申请提交是在去年6 月前就截止了,不可能在有新的节点申请出现。其他的节点的主网账号都是去年6 月份建立的,只有games.eos 比较特殊。
既然不可能有新的节点团队申请进来,那的解释,这个节点是现有节点团队的小号。果然,有一个节点曾经公开表示,自己有两个节点账号,就是刚才提到的starteos 节点。
在starteos 自己发表的这篇文章里(现已删除),他们承认,starteos 建立了games.eos 这个节点,这两个节点都是一个团队在控制。并且还公开表示,games.eos 会给投票用户分红。
上述文章还提到了与引导大家投票的有关的内容:节点games.eos 流畅运行后,节点收益将分给持币者,这也就是EOS 节点圈内褒贬不一的「贿选」做法。
所以当你看到starteos 和偷跑有关的时候,关于games.eos 发生的一切似乎就可以解释了。
在区块律动BlockBeats 的《BOS,大佬和他的小弟们》这篇文章中曾提到,EOS 的部分节点存在一个节点联盟,节点之间会互相投票,以获得节点奖励。国内大多数节点(包括starteos)也在这个联盟中。
在近的节点换票(相互投票以建立节点共识联盟)中,games.eos 获得了大量的选票,直接升到了第20 名,成为了出块节点。starteos 之前就因为没有设置冻结账户黑名单(即文章开头的「小手」真实故事),黑客在starteos 出块的那6 秒钟里把盗窃的EOS 转移了,但是该节点对外界的任何质疑不做任何形式的回应。
这次被转移的账户的冻结命令是9 月25 日下的,其他节点已经加入了黑名单,而10 月份刚成立的games.eos 依然延续了自己团队的老问题,没有更新黑名单。
精心的谋划与耐心的等待
目前事态已经非常明朗,黑客已经成功作案并洗白了不少资金,我们现在可以回过头来分析发生的一切:
黑客在games.eos 当选出块节点的第二天发现了这个可以偷跑的事实漏洞,喜出望外的同时,迅速计划了这次转移209 万个EOS 的犯罪活动。
从黑客转移资产的路径,区块律动BlockBeats 发现,除了一个混淆账号外,其他所有关联交易的EOS 账号均创建于9 月27 日,即黑客账号被冻结后的2 天,黑客早就做好了随时偷跑的准备。黑客被冻结账号个转出的账号为一个仿冒Newdex 交易所的账号(newdexmobapp)。
该混淆帐号创建于2 月18 日,创建之后就开始批量地向其他EOS 账号发送虚假的广告来迷惑追踪者,让别人以为这是「Newdex 交易所的官方账号」。这种反侦察的行为甚至一度骗过了安全团队的追查,但还是因为交易量过少而被发现。值得注意的是这个时间「2 月18 日」,也就是games.eos 节点大量获票的前2 天,黑客已经预测到该节点很有可能会当选。
在成功偷跑后,黑客将所有资产走转移到了这个混淆帐号,随后混淆帐号又转到了十几个二级账号,二级账号又快速地转到了三级账号或交易所。目前已经有大量EOS 赃款通过交易所进行洗白,包括火币、币安、Bitfinex 等交易所。据PeckShield 提供的链上数据,目前黑客已向交易所成功汇入了了35.5 万EOS,即洗白的赃款可能高达990 万元。
很显然,黑客准备的十分充分,从目前掌握的证据来看,这是一个精通EOS 开发的黑客,他对链上的交易和记录查询非常熟悉。
创建混淆帐号的EOS 账号(guagddoefdqu)甚至曾创建过一个EOS DAPP 并发行过mEOS 代币,这名开发者还发了一款名为mEOS Folio 的EOS 区块链交易追踪App,可在美区App Store 下载(请勿轻易尝试,该App 可能存在盗取私钥的风险!)
此外,guagddoefdqu 账号曾在1 月30 日测试往火币交易所里进行过6 次充值,备注的账号识别信息分别为6 个不同的账号。也就是说,这位黑客已经在1 个月前准备好了少6 个交易所洗白账号,只等games.eos 节点当选这的到来。
至此,我们已经了解了所有犯罪的准备条件:
1、一个新的可能没有黑名单的EOS 节点即将上线;
2、深谙EOS 网络的运行规律,比节点更懂EOS;
3、准备好了多个交易所账号,准备洗白;
4、准备好了混淆视听的账号来避免追踪,或者拖慢被冻结的进度;
5、准备好大量可操控的账号进行转账交易。
在games.eos 当选后的十几个小时内,黑客得手了。
问题这么久了为什么还没解决?
作为一个曾经被认为区块链世界安全的社区,EOS 已经不是次出现由于节点的问题导致用户资产损失的事情了。
在事情发生24 小时后,其中一个EOS 节点EOS42 发文表示,这种事情不应该再次发生,他们认为可以用废除黑名单内账户私钥的方式来防止单一节点不更新黑名单的行为再造成损失。黑名单账户的私钥一旦被废除,就再也不能进行交易行为了。
这个办法的确可以用,但是这样一来,节点又可以对账户的私钥进行操作了。在之前ECAF 的仲裁命令中,ECAF 就要求节点修改账户私钥,这一行为引发了社区很多讨论。不少人认为私钥是个自己财产的底线,如果私钥可以修改,那自己的财产根本谈不上安全了。而废除私钥的这个方法,从某种程度上说,跟修改私钥是一个意思,只能作为暂时性的方案。治标不治本。
我们承认EOS 作为头部项目,正在身体力行的探索区块链世界的种种可能性,区块链就像一场大型社会实验,而EOS 在其中做了很大的贡献。
但区块律动Blockbeats 也要看到,作为EOS 生态重要环节的EOS 节点,本应该履行应尽的职责,但却一而再,再而三的出现同样的问题,让人不禁反思,这样的治理方法,真的有效么?
讽刺的是,基于EOS 而诞生的BOS 区块链,在事情发生后就在区块链上配置了BP 多签黑名单机制,解决了节点因为懒惰或工作失误不作为而偷跑的高风险漏洞。BOS 上目前以中国的EOS 节点为主,也就是说,同样一批人,在侧链上,解决了这个问题,这到底是节点的问题,还是制度的问题?
让EOS 的每一个节点都能保证永远负责,永远认真为用户做事,让节点与节点之间永远不存在利益共生体,让每一个节点都保持独立,这样的想法是不是太过于理想了。