区块链地址追溯 | 如何使用Tokenview 区块链浏览器追踪交易所 (Upbit交易所)被盗资金?

在区块链行业,地址追溯是一个相对敏感的话题。虽然在反洗钱,丢币事件以及追踪黑客时,我们可以通过追溯地址和链上转账行为获取更多信息,但由于区块链本身具有的匿名/加密属性,再加上各种反追踪和匿名技术的发展,地址追溯似乎成了一件“苦差事。”这次我们就以追踪近期Upbit交易所被盗的以太坊资金为例,也谈谈以太坊上的地址追溯方法和工具。

想要追溯地址大概分为以下四个步骤:

  • 大额转账指路;
  • 关注小额资金流动;
  • 分析交易所出入金地址;
  • 对地址进行持续性的监控;

大额转账

我们在收到某交易所/地址资金被盗后,通常会先拿到一个可疑地址,也就是黑客将盗来的资金转出的地址。这时我们可以先关注该地址的大额转账动向,从而确定黑客盗取资金后的第一步动作。

具体方法是通过区块链浏览器输入可疑地址,查询该地址的交易,从交易结果列表中寻找出大额的资金流向,按照新的流向打开每层地址,逐层深入查询,即可得出大额资金的流向图。

此处以Upbit交易所被盗的以太坊资金流动为例:

已知:被盗以太坊从交易所流出的地址是:0x5e032243d507c743b061ef021e2ec7fcc6d3ab89,流入黑客的地址:0xa09871aeadf4994ca12f5c0b6056bbd1d343c029

地址查询:

  • 打开Tokenview区块浏览器或者直接在地址栏中输入tokenview.com,到达tokenview首页,在tokenview的搜索框中输入黑客地址0xa09871aeadf4994ca12f5c0b6056bbd1d343c029,点击搜索'。
  • Blockchain Explorer Address Tracking
  • 在搜索结果中点击地址,打开地址的交易详情页;
  • Blockchain Explorer Address Tracking

    截止本篇文章截稿,可以看到该地址已进行114笔交易,我们可以先查看该地址的前2笔交易。第一笔交易是来自上面提到的0x5e03开头的Upbit交易所地址,说明该黑客地址是新的链上生成地址,转出金额为342000枚ETH。接下来观察后续交易中的转出交易,从第一笔转出交易开始的后续转出交易,他的转出地址即会是第一层的分散地址。依次观察到从0xa098转出111000枚ETH给地址0x9a207194cbed9f229694fdf5a28caab59157920d,转出120280.16枚ETH给地址0xc7d64e6509333a3b68f6fc09d7d19404bfdd229a,至此该地址中绝大部分以太坊已被转出,我们就可以重点监控以上三个地址,并分析随后的资金流动,从而得出更进一步的资金流向。

    Blockchain Explorer Address Tracking

    此外,对于资金转移过程中余额较大的地址,我们都需要持续的关注。在第4个部分“地址持续监控“中我们会讲到具体使用的工具和方法。

    关注小额资金流动

    得出大额流向图之后,我们还需要对涉及到的小额资金进行梳理。通常小额资金会在多层转移之后通过各种渠道找到交易所的入口。针对这种情况,我们需要对地址和交易记录进行多层梳理。

    多层转移,小额渗透

    仍然以Upbit黑客地址为例,我们来解释第一种进入交易所的方式。交易hash:0x8237dc359f2af9d23759cfa7c692da3e12a21cdc45e3d8a8e28190d29974bf2a的交易就是在黑客地址进行到第9层转移时转入荷兰交易所60cek的,他的转移金额为123.99枚ETH。

    具体的交易转移情况如下图,方法是通过此前追踪大额交易时的交易详情页,找到转出地址:0xf4678169b1eb0c141fd99942ac02191145fefe3f,然后点击该地址,查看交易详情页,继续点击该地址的转出交易的转出地址,依次重复这个步骤,就可以得出下面的9层转移图。

    Blockchain Explorer Address Tracking

    最后一笔进入60cek的交易详情如下:

    Blockchain Explorer Address Tracking

    截止12月10日15时,黑客通过多层转移、小额渗透的方式,已经将超过2000枚ETH转入了交易所地址,涉及到的交易所有60cek、币安、Cryptonator、Bitmax、MXC、Bilaxy、Bitfinex、Bit-Z、ZB等。当然,我们有充分的理由相信,黑客依旧只是在试探交易所阈值,这可能也是为何黑客至今尚未进行大额交易所充值的原因。

    调用交易所充值

    这种进入交易所的方式不被普遍使用,但不排除这个可能性。我们以Upbit为例,简要了解 一下这种操作方式。
    • 创建一个智能合约,例如0x9d5b674163336c0945c28990a4ff364541282777;
    • 在该合约中调用交易所的充值API;
    • 调用该智能合约转账进入交易所。

    调用智能合约分散资金

    除以上两种方式之外,黑客还可以通过将币转入不同的智能合约,再调用智能合约的transfer进行分赃。该方式有一个缺点,就是不容易辨别币到底入了谁的口袋,但同时分赃的地址会作为新一层线索来追踪黑客行为轨迹。具体的方法同上,也需要通过开发者的代码来实现,本篇不详细涉及。

    分析交易所入金/出金地址

    首先,我们需要了解一下什么是交易所入金/出金地址。交易所入金地址即个人充值到交易所的钱包地址。因为交易所拥有KYC认证,如果资金通过个人地址进入交易所,那么我们就可以从交易所的KYC信息获取到具体的用户信息。而出金地址就是指个人从交易所提币的地址。

    以Upbit事件为例,黑客地址进行了9层转移之后转入Binance 19.6枚ETH的小额。我们可以从Tokenview区块浏览器查询到这笔交易的详情:Hash-0xd16223c470823219c73e7e357826fed73bc6514d03328039f877c4ba8cdc623d

    Blockchain Explorer Address Tracking

    如果Binance拥有相关的KYC记录,我们即可确定一个详细的用户信息。当然,这种想法往往过于直接,黑客既然选择转入交易所账户,必然会考虑到自身信息的匿名性,其KYC信息大概率也就不会是真实的了。

    地址持续监控

    一般来说,黑客不会在短期内将盗来的资金转到交易所。从盗得资金到完全出手,整个过程可能会持续半年甚至更长的时间。这也给我们的监测带来很多困难。这时候如果可以订阅某个地址的余额变动情况,在第一时间获取相关信息,那么监测就会变得容易很多。

    具体操作如下:

    • 打开微信公众号,搜索并关注'Tokenvew区块链浏览器'并关注;
    • 点击菜单栏【数据监控】> 【地址监控】;
    • 选择币种和阈值,并将想要监测的地址输入订阅框中,点击订阅;
    • 如该地址的余额变化符合监控范围,公众号就会发送余额变动通知。
    Blockchain Explorer Address TrackingBlockchain Explorer Address Tracking

    我们可以通过这个工具获取任何地址的余额变动情况,不仅限于以太坊,还包括比特币和Omni链上的USDT。当然,地址追溯的方法并不限于以上提到的几点,而能够突破交易所的黑客也必然会使用各种反追溯的手段来应对,包括利用去中心化交易所套现,利用混币/搅拌机等技术手段阻碍追溯等。而不断变化的地址背后,更反映出区块链本身的监管与规范难题。

    如何在保证用户的权利与隐私的前提下,合理有效的对区块链网络进行链上治理;是否应该在某些场景下,为了应对黑客或类似事件而预留超级权限;如何平衡不可能三角的关系?这些都是行业需要解决的问题。