在7月31号至8月1号以太经典受到黑客的51%链攻击。在本文中,我们将分析这两次攻击期间的交易链的分叉情况。
关键要点:攻击者在此次攻击中花费了807,260 ETC(560万美元),花费了17.5 BTC(19.2万美元)来获得攻击的哈希值。攻击者还获得了13K ETC作为区块挖掘奖励,我们没有将其计入两次花费。
从重组链和非重组链收集数据
我们在Bitquery中基于Open Ethereum软件从Ethereum Classic节点收集数据。正如它出现在分叉之后一样,该软件有一个bug,区块链重组超过某个特定的程序段号。我们保留了所有数据,包括在重组发生后由其他矿工在Open Ethereum软件上开采的一系列区块。
看来要赶上重新排序的链的唯一方法是转移到其他节点软件,我们选择了Geth。但是在此之前,我们将未重组链的所有数据存储在单独的数据库中,以备将来分析。
在Geth节点同步之后,我们从块10904146开始重新索引数据,在块10904146开始进行重组。
我们现在有了两个数据集,我们在Bitquery Explorer接口和GraphQL API中公开了这些数据集:
来自Open Ethereum节点的非重组链(每个矿工都在该节点上工作)
从Geth节点重组链(受攻击的对象起作用)
这些数据集在区块10904146之前具有完全相同的数据,并且差异从下一个区块开始。例如比较下一个区块10904147:
10904147(非重组链)
10904147重组链
通常,您可以使用以下格式的URL:
https://explorer.bitquery.io/ethclassic查询重组的链(当前接受的链,以及带有攻击者挖掘块的链)
https://explorer.bitquery.io/ethclassic_reorg查询未重组的链(带有被丢弃的区块的链)
链中的这些区块有几个不同之处:
1. 高度相同,但哈希不同,因为这些区块的内容不同。
2. 父哈希值是相同的,因为它们指向了从中开始分叉的同一原始区块(10904146)
3. 矿工是不同的。重组链的矿工是攻击者,0x75d1e5477f1fdaad6e0e3d433ab69b08c482f14e,他在12小时内挖出3500多个区块以执行重组。未重组链的矿工是一些常规矿工,由于他们不知道攻击者的存在,所以像往常一样挖矿。
4. 在重组和非重组链中,不仅区块,交易,转移,智能合约和事件也有所不同。
让我们看看攻击者的挖矿活动。
攻击者的挖矿活动
攻击者设法从10904147到10907761的高度插入区块。在10907761区块之后,他继续挖掘一些区块,但这并没有造成重大重组。可以在以下位置查看攻击者的活动:
攻击者的挖矿活动
攻击者4天内总共挖掘了4280个区块。请注意,他在攻击之前只进行了一点挖掘,在攻击之后停止了挖掘。这不是普通矿工的行为。
结果,矿工将所有的采矿奖励金(13K等)发送到了地址0x401810b54720faad2394fbe817dcdeae014066a1
攻击时间线
根据我们的调查,攻击者执行了以下操作来执行51%的攻击:
1. 7月29日至31日。攻击者从交易所提取约807K的ETC到几个钱包。
2. 7月31日16:36。攻击者通过从Nicehash提供者daggerhashimoto以双倍价格购买哈希功率来开始挖掘区块。挖矿的总成本约为17.5 BTC(〜192,000美元)
3. 7月31日17:00–17:40。攻击者将钱汇入链自己的钱包,并将这些交易插入正在挖掘的区块中。之所以没有人发现这些交易,是因为攻击者没有把这些区块宣布出去。
4. 7月31日18:00 – 8月1日2:50 UTC。攻击者使用未重组链上的中间钱包将钱转回交易所,每个人都可以看到。在此期间,攻击者有足够的时间将这些货币转换为美元,然后进行提取或购买BTC。攻击者将操作拆分开多个阶段,对网络攻击持续长达12个小时,以避免被任何人怀疑。
5. 8月1日4:53。攻击者使用在步骤3中创建的交易账本并在全网发布,并执行链重组。这意味着将步骤4的事务替换为步骤3的事务。
现在,让我们看一下这些步骤的详细信息,以及矿工如何能够获得超过807K ETC(560万美元)的收入。
攻击者插入的交易(经过重组的链)
在攻击过程中,该矿工仅插入了11笔交易。这可能导致了“违规矿工在挖矿时暂时无法访问互联网”的原因。值得注意的是,这些交易没有被发送到其他矿工的事务存储池(mempool)。所以他们不会被网络中的其他矿工开采。
看一下这些交易:
ETC攻击者挖掘的交易
请注意,前五笔ETC交易金额较高。让我们逐一检查这些交易。
第一次交易(值353005 ETC)(Tx)
第二次交易(价值77955 ETC)(TX)
第三笔交易(价值194100 ETC)(TX)
第四笔交易(价值97710 ETC)(TX)
第五笔交易(价值:84490 ETC)(TX)
比较这些事务,您会注意到以下模式:
1. 金额以数千为单位的ETC
2. 所有交易均源自地址0x63a8ab05ae4a3bed92580e05e7dce3b268b54a7f
3. 从攻击开始前的7月1日(即7月1日)开始,所有交易都在40分钟内完成。
钱包准备好执行51%的攻击
要执行51%的攻击,攻击者必须将钱存放在他/她控制的钱包中。有5个地址在攻击前已准备好余额:
1. 0x439ff9e3a81a4847d0c2041c06e5a272883f69f2,在2020年7月29日至30日的22笔交易中从0x63a8ab05ae4a3bed92580e05e7dce3b268b54a7f接收了353K ETC
2. 0x9ac1785943ead4dafb2198003786b4b29143f081,在2020年7月30日至31日的7笔交易中从0x63a8ab05ae4a3bed92580e05e7dce3b268b54a7f收到了78K ETC
3. 0xad599aa123c2b5b00773b9bfadacf8c3e97ea72d,在2020年7月30日至31日的16笔交易中从0x63a8ab05ae4a3bed92580e05e7dce3b268b54a7f收到了194K ETC
4. 0xda88ea478545581eafffa3598fd11fc38f13c508,在2020年7月30日至31日的7笔交易中从0x63a8ab05ae4a3bed92580e05e7dce3b268b54a7f收到了9.77万ETC
5. 0x305292887ad1ffa867e8564c804575f3d7a19a1f,在2020年7月30日至31日的5笔交易中从0x63a8ab05ae4a3bed92580e05e7dce3b268b54a7f收到了84K ETC
总的来说,在攻击之前,这些地址上的ETC总值约为807,000 ETC(560万美元)。
非重组链中的交易
攻击开始时,没人知道它,因为攻击者没有发布任何块。但是攻击者创建了私人交易,我们将其记录在第二个数据集中(未重组的链)。
这张图展示了我们之前提到的地址,显示了攻击者如何从交易所中取出钱到他/她自己的钱包中,然后再将钱转回交易所。
请注意,攻击者进行的传输的图形,您必须通过双击扩展地址才能获得此图片。
将未重组链和重组链的数据结合起来,我们可以看到,在非重组链中,看到资金回到交易所:
攻击前,钱从地址0x63a8提取到5个不同的地址。我们认为0x63a8是交易所钱包。
在攻击期间,这笔钱通过1-3个中间地址被退回交易所0x63a8。
结果,从交易所0x63a8取出的所有资金都回到了交易所0x63a8,这些交易被确认,因为没有人知道正在遭受的攻击。
例如下面的事务显示了攻击者是如何将钱分一小部分转回交易所的:
这在未重组的链中可见,这些交易的有效期至少为12小时,而矿工则私下创建了新区块。
结果攻击者成功地对以太经典版实施了51%的攻击,从而获得了807K ETC加上采矿奖励(13K ETC)。总共大约是 $ 5,650,820。远远超过花在挖矿上的钱(19.2万美元)。
攻击者双花了ETC
攻击者现在利用他/她的钱包中剩余的ETC进行双花。在这里,我们看到了对许多地址和多跳传输进行拆分的典型模式。
然而,利用我们的Coinpath®技术,我们追踪了双花使用的ETC。截至撰写时间的当前分布为:
从0x1e3a5208db53be56b6340f732ec526b4bdc37981地址开始的Coinpath API报告
识别交易所
我们不知道地址0x63a8ab05ae4a3bed92580e05e7dce3b268b54a7f的确切所有者,但是我们非常有信心肯定这是一个加密交易所,因为交易量和其他行为方式非常多。
我们可以猜测的是,该地址属于OKEx交易所或其分支机构。以太坊主网中的同一地址与OKEx钱包有很多相关活动。
所有转账都是通过OKEx其他钱包进行的
--------------------------------------
原文作者:ALEKSEY STUDNEV
译者:链三丰
译文出处:http://bitoken.world
--------------------------------------