区块链链上追踪:识别中心化地址

  • A+
所属分类:安全闲碎


在上一篇我们提到了 “中心化” —— 这是一个相对于区块链的 “去中心化” 特性而来的概念。区块链技术因为采用了分布式账本所以具备去中心化特性,而为了将某些数字资产进行等价交换,就需要一些平台来提供便利的交易功能,这类平台就是中心化平台。在当前的区块链世界中,常见的中心化平台有三种形式存在:

  • 交易平台,此类平台为用户提供交易功能

  • 换币平台,本质上与交易平台类似,但在自动化交易实现逻辑上不同

  • 混币平台,专门用来躲避链上追查的换币平台


关于混币模式相对复杂度高、模式多,以后专门来做独立场景分析。这里的介绍则先以交易平台为主要目标,而换币平台在地址的追踪层面来看和交易平台在技术实现上差别不大,所以也可以用这个方法来进行分析收集。

提到中心化地址的识别,就必须对当前中心化机构普遍使用的模式和流程做一个基础了解,这一部分我们在第一篇文章时候已经提到过了,此处我们再做一个简单的回顾:

区块链链上追踪:识别中心化地址

上面过程中所涉及到的用户地址、系统出币地址、系统手续费地址,都是我们这里所说的“中心化地址”。对于以上的流程细节如果还不清楚的可以回到第一篇标签入门的第三节,其中对三个主要流程都有详细的说明描述。

如果对上面一系列业务流程有了清晰了解之后,就不难发现,中心化平台地址的识别有两个关键的点可以用来突破,即,零钱整理和手续费地址。


【1】零钱整理过程的利用逻辑


零钱整理就是指将多个地址上的小额零钱整理到一个或少数几个地址上形成大额。这里的“多个地址”虽然不仅仅限于用户地址,但其主要来源却是用户地址。

举例来说,甲充了5块、乙充了3块、丙充了2块,甲乙丙分别使用了三个地址,但突然丁要提走10块。在区块链的世界里,正常情况下可以选择分别从甲乙丙三个地址上分别提5块、3块、2块进入到丁的地址,这样丁就得到了10块。但问题在于,系统首先并不知道丁什么时候要来提走多少钱,而且来提的时候并不一定能正好用多个地址上的“零钱”来凑够刚好丁所需要的数额。另一方面,如果每次来人提币都是使用多个地址去“凑钱”,可能会造成更多的手续费损失,同时还可能因为某一笔“零钱”在转移过程中被链上卡住而导致整个交易失败。

所以,零钱整理的动作会比较频繁的发生 —— 在来自不同用户地址的零钱积攒到了一定程度之后,就会启动整理。

我们来看一笔链上实际的零钱整理动作,以 ETH 为例,在区块链浏览器中很容易找到符合零钱整理的典型特征:

区块链链上追踪:识别中心化地址

从图中圈红的标记处可以看出,金额5000和1194.05 两笔明显有整理的动作,而最后一处的30250,其他来源是 30000+250 ,这一行为则是更为典型的零钱整理行为。

这几处都是非常明显的零钱整理行为,而与之整理行为相关联的地址也被标记为 Binance,因此,这一系列地址自然也就有标签可寻了。


【注: 以上示例中涉及地址】地址: 0xc21ae7af41c4dfeeb7eca07df573288523076b60时间: 最早一笔于 2021-6-25 上午开始(UTC时间)


另外值得一提的是,从链上的零钱整理行为还可以推测出不同中心化机构的零钱整理策略。零钱整理策略对一般用户来说可能并没有什么太大的用途,但实施链上攻击的攻击者或是做链上行为监测的数据服务提供者来说,这一策略则会显得非常重要 —— 

例如,对于某些合约的攻击过程可能施加于收币地址的,这时候零钱是否被快速的从地址上整理走,就决定了攻击者的攻击时间窗口有多大。

而对链上监测的数据服务来说也是类似,某个中心化机构的零钱整理策略往往会形成某种固定模式,一旦某些看似“零钱整理”的过程破坏了这一模式,则很可能这一笔“零钱整理”并非系统正常行为,至少可以判断为是某类手动行为。而至于手动行为是来自于机构内不得已的某些应急性动作、还是来自攻击者,就需要更多的条件来辅助判断了。

这些并非今天的重点,在此也暂时不再展开了。总之,零钱整理是一项非常重要的业务行为,无论在何种场景中,都不容忽略。


【2】手续费地址的利用逻辑


手续费地址主要是指在链上交易过程中用于支付手续费的地址。这个链上交易过程可能既是上面提到的机构内进行零钱整理的过程,也可能是用户的提币过程。总之,一切链上过程都会产生手续费,而为了支付手续费,就需要一系列专门用于支付手续费的地址。

当然,有读者可能会有疑问,为什么不从交易地址上直接支付手续费而是需要有独立、专门用于支付手续费的地址?这其中的原因很多,比如,地址余额不足无法支付手续费而无法交易或零钱整理。相比之下,维护一组资金储备充足、专门用于支付手续费的地址,无论是从维护成本还是面对转移失败的风险时,都会有较高的性价比。

手续费的支付流程在上面图中已经有详细描述,如果还不清楚,依然可以回到第一篇标签入门的第三节,其中有详细描述。

那么,了解了手续费地址这一特性也就不难理解如何使用手续费地址来判断地址归属问题了。我们再看个实例:

区块链链上追踪:识别中心化地址

从上图可以看出,从某个固定地址有大量在某个特定范围内的小额资金流动,非常符合作为手续费地址的特征,如果对这个地址的链上行为持续的展开、跟踪,就可以确定其为某个中心化机构的手续费地址 —— 因为内容较多,在这里就不去展开跟进了,有兴趣的读者可以根据下面提供的线索到浏览器上去查看,整个过程并不复杂。

【注: 以上示例中涉及地址】 0x141fef8cd8397a390afe94846c8bd6f4ab981c48

通过以上两类规则介绍和实际案例,可以得到中心化机构地址识别的两个关键逻辑。而这些逻辑的利用方式也是多种多样,即可将其模型化去众多的数据中去套用、验证,也可以从其中梳理出一个线头来以此进行扩展,不断的持续标记,其中的优劣,见仁见智。


至此,本文也就到了尾声。而本文也是区块链链上追踪系列文章的最后一篇。在之前的前三篇分别为:

有兴趣可以点击链接阅读。这一篇之后,虽然这个入门系列的文章已告一段落,但这个链上追踪和数据分析的主题还会继续。后面还会围绕这个系列所打下的基础展开一些实战分析,例如,大家关心的暗网收币问题、混币的技术手段、换币平台的特性、去中心化交易所的识别等等。

总之,敬请期待。


本文始发于微信公众号(ZLabs):区块链链上追踪:识别中心化地址

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: