bitget最新消息:在区块链行业,地址追溯是一个相对敏感的话题。虽然在反洗钱,丢币事件以及追踪黑客时,我们可以通过追溯地址和链上转账行为获取更多信息,但由于区块链本身具有的匿名/加密属性,再加上各种反追踪和匿名技术的发展,地址追溯似乎成了一件“苦差事。”这次我们就以追踪近期Upbit交易所被盗的以太坊资金为例,也谈谈以太坊上的地址追溯方法和工具。
大体来说,我们可以将地址追溯拆分为以下四个步骤:
1. 大额转账指路
2. 关注小额资金流动
3. 分析交易所出入金地址
4. 对地址进行持续性的监控
一、大额转账
我们在收到某交易所/地址资金被盗后,通常会先拿到一个可疑地址,也就是黑客将盗来的资金转出的地址。这时我们可以先关注该地址的大额转账动向,从而确定黑客盗取资金后的第一步动作。
具体方法是通过区块链浏览器输入可疑地址,查询该地址的交易,从交易结果列表中寻找出大额的资金流向,按照新的流向打开每层地址,逐层深入查询,即可得出大额资金的流向图。
此处以Upbit交易所被盗的以太坊资金流动为例:
被盗以太坊从交易所流出的地址是0x5e032243d507c743b061ef021e2ec7fcc6d3ab89,而流入的黑客地址是0xa09871aeadf4994ca12f5c0b6056bbd1d343c029。依据下图步骤即可获取黑客的第一步行动:
1. 打开Tokenview区块浏览器,输入黑客地址0xa09871aeadf4994ca12f5c0b6056bbd1d343c029,点击“搜索”
2. 在搜索结果中点击地址,打开地址的交易详情页
截止本篇文章截稿,可以看到该地址已进行114笔交易,我们可以先查看该地址的前2笔交易。
第一笔交易是来自上面提到的0x5e03开头的Upbit交易所地址,说明该黑客地址是新的链上生成地址,转出金额为342000枚ETH。
接下来观察后续交易中的转出交易,从第一笔转出交易开始的后续转出交易,他的转出地址即会是第一层的分散地址。
依次观察到从0xa098转出111000枚ETH给地址0x9a207194cbed9f229694fdf5a28caab59157920d,
转出111010枚ETH给地址0x3408edca2d47ddaa783a3563d991b8ddebcd973b,
转出120280.16枚ETH给地址0xc7d64e6509333a3b68f6fc09d7d19404bfdd229a;
至此该地址中绝大部分以太坊已被转出,我们就可以重点监控以上三个地址,并分析随后的资金流动,从而得出更进一步的资金流向:
此外,对于资金转移过程中余额较大的地址,我们都需要持续的关注。在第4个部分“地址持续监控“中我们会讲到具体使用的工具和方法。
二、关注小额资金流动
得出大额流向图之后,我们还需要对涉及到的小额资金进行梳理。通常小额资金会在多层转移之后通过各种渠道找到交易所的入口。针对这种情况,我们需要对地址和交易记录进行多层梳理。
1.多层转移,小额渗透
仍然以Upbit黑客地址为例,我们来解释第一种进入交易所的方式。交易hash为0x8237dc359f2af9d23759cfa7c692da3e12a21cdc45e3d8a8e28190d29974bf2a的交易就是在黑客地址进行到第9层转移时转入荷兰交易所60cek的,他的转移金额为123.99枚ETH。具体的交易转移情况如下图,方法是通过此前追踪大额交易时的交易详情页,找到转出地址0xf4678169b1eb0c141fd99942ac02191145fefe3f,然后点击该地址,查看交易详情页,继续点击该地址的转出交易的转出地址,依次重复这个步骤,就可以得出下面的9层转移图:
最后一笔进入60cek的交易详情如下:
截止12月10日15时,黑客通过多层转移、小额渗透的方式,已经将超过2000枚ETH转入了交易所地址,涉及到的交易所有60cek、币安、Cryptonator、Bitmax、MXC、Bilaxy、Bitfinex、Bit-Z、ZB等。当然,我们有充分的理由相信,黑客依旧只是在试探交易所阈值,这可能也是为何黑客至今尚未进行大额交易所充值的原因。
2.调用交易所充值接口
这种进入交易所的方式不被普遍使用,但不排除这个可能性。我们以Upbit为例,简要了解 一下这种操作方式。
首先,创建一个智能合约,例如0x9d5b674163336c0945c28990a4ff364541282777;
第二,在该合约中调用交易所的充值API;
第三,调用该智能合约转账进入交易所。
具体的实施方法需要通过开发者的代码来实现,本篇不详细涉及。
3.调用智能合约分散资金
除以上两种方式之外,黑客还可以通过将币转入不同的智能合约,再调用智能合约的transfer进行分赃。该方式有一个缺点,就是不容易辨别币到底入了谁的口袋,但同时分赃的地址会作为新一层线索来追踪黑客行为轨迹。具体的方法同上,也需要通过开发者的代码来实现,本篇不详细涉及。
三、分析交易所入金/出金地址
首先,我们需要了解一下什么是交易所入金/出金地址。
交易所入金地址即个人充值到交易所的钱包地址。因为交易所拥有KYC认证,如果资金通过个人地址进入交易所,那么我们就可以从交易所的KYC信息获取到具体的用户信息。而出金地址就是指个人从交易所提币的地址。
以Upbit事件为例,黑客地址进行了9层转移之后转入Binance 19.6枚ETH的小额。
我们可以从Tokenview区块浏览器查询到这笔交易的详情:
Hash-0xd16223c470823219c73e7e357826fed73bc6514d03328039f877c4ba8cdc623d
如果Binance拥有相关的KYC记录,我们即可确定一个详细的用户信息。当然,这种想法往往过于直接,黑客既然选择转入交易所账户,必然会考虑到自身信息的匿名性,其KYC信息大概率也就不会是真实的了。
四、地址持续监控
一般来说,黑客不会在短期内将盗来的资金转到交易所。从盗得资金到完全出手,整个过程可能会持续半年甚至更长的时间。这也给我们的监测带来很多困难。这时候如果可以订阅某个地址的余额变动情况,在第一时间获取相关信息,那么监测就会变得容易很多。这里我们主要介绍Tokenview开发的【地址监控】功能。
打开微信搜索并关注“Tokenvew区块链浏览器“,在菜单栏点击”数据监控“,随后点击”地址监控“,把需要监控的地址输入随后的页面,选择阈值即可。监控成功后,一旦该地址的余额变动符合监控的范围,公众号就会发送余额变动通知。
我们可以通过这个工具获取任何地址的余额变动情况,不仅限于以太坊,还包括比特币和Omni链上的USDT。
当然,地址追溯的方法并不限于以上提到的几点,而能够突破交易所的黑客也必然会使用各种反追溯的手段来应对,包括利用去中心化交易所套现,利用混币/搅拌机等技术手段阻碍追溯等。而不断变化的地址背后,更反映出区块链本身的监管与规范难题。
如何在保证用户的权利与隐私的前提下,合理有效的对区块链网络进行链上治理;是否应该在某些场景下,为了应对黑客或类似事件而预留超级权限;如何平衡不可能三角的关系?这些都是行业需要解决的问题。