上一篇介绍了根据地址类型的最基本的识别方式。这一篇将介绍 Account 模型下的自动化追踪与标记方法。
既然提到了 Account 模型,为此有必要介绍一下区块链交易过程中最常见的两种模型,即,Account 和 UTXO 模型:
Account 是账户余额模型。
Account 作为账户余额模型,与我们日常理解的账户记录方式非常相似,例如:张三付5块钱给李四。
在 Account 模型中表示为:张三Balance - 5 ; 李四Balance + 5 ;
UTXO 是未花费模型。
UTXO是Unspent Transaction Output的缩写,即“未被花费的交易”。一笔UTXO交易,可以有多个转出和多个转入,且转入转出没有对应关系。
例如,张三有6个5块钱,分别给了李四22块、王五5块,自己剩3块钱。
用UTXO记账需要表示为:
输入 -> 张三:6个5块钱;
输出 -> 李四:1个22块钱,王五:1个5块钱,张三:1个3块钱;
这就导致了一个结果,当我们在区块链浏览器中看两种交易模型的交易记录时,其形势有较大差异。例如,ETH 作为 Account 模型的典型代表,它的每笔交易在浏览器里看是这样的:
从区块链浏览器的交易记录中不难看出,每一笔交易都是一对一的方式记录下来的。
而作为UTXO模型的典型代表,BTC的交易记录方式就不太友好了:
交易过程比较明显的看出,地址bc1作为输入,支付给了3GD 一笔BTC,剩下的钱作为零钱找零一样又回到了自己的 bc1 地址中。当然,找零的钱也可以不回到 bc1 而是回到自己所掌控私钥的另一个地址,这也是当前各类钱包App的主流做法,也是保护隐私的一种推荐做法。这样的方式在极大程度上增加了链上资金的追踪难度,不是简单的几条规则就可以识别到的。所以限于篇幅问题,我们先以相对简单的 Account 模型的追踪、标记为入手点。
Account模型下的自动化扩展与标签标记
-
A转账给B,B也应为黑客地址 -
B转账给C,C也为黑客地址 -
C转账给D,D也为黑客地址 -
如此反复 …… (如下图,A至N都为黑地址)
但是实际上,并非完全如此。
仅以地址B为例,其实,在很多情况下B并不一定是被黑客所持有的地址,比如,B是一个另受害者,因为贪图便宜而低价交易了黑客盗窃来的资产。或者,B是某个平台的地址,虽被黑客个人使用但并非完全个人持有。在这些情况下如果贸然将B也标记为黑客地址,就会出现错误,而这些错误在一些场景中被使用则可能会造成更大的损失。
所以,对B也需要进行二次判断,以确认是否可将B标记为黑客地址:
-
B是否有其他标签,尤其是否有“中心化”类别的标签 -
B是否为首次出现的地址,若不是,历史交易特征是否符合个人地址行为 -
B地址是否有明显的非个人地址特征,如,B是一个合约地址
即便完成了以上的判断,依然需要对B进行持续监控,以确认其在后续一段时间内是否呈现出非个人地址的交易特征,例如:
-
B是否进行了零钱整理,将转入资产等量汇聚到了另一个地址上 -
B地址上资产种类和数量是否多,交易是否频繁
【本篇完】
本文始发于微信公众号(网安杂谈):区块链链上追踪基础篇【中】:地址标签的识别(2)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论