今天给大家讲解的论文是关于构建区块链用户画像的,它的中文题目是《区块链正在注视着你:对以太坊用户进行分析和去匿名化》
??2009年,比特币诞生了。它的诞生带来了一种新的去中心化交易模式。在比特币的交易模式下,交易记录是匿名的,仅以地址来代替账户。人们只能看到地址之间的交易信息,但是无法获取使用者的身份信息,因此用户的隐私性得到了极大的保证。
?? 但是,这种匿名性给国家监管机构带来了极大的不便,比如:洗钱、走私、毒品交易等非法活动在这种匿名交易模式下很难追踪识别。因此,将比特币交易去匿名化是一项非常有必要的。
?? 针对区块链去匿名化问题,今天这篇论文的作者基于以太坊进行了一些探索,并提出了一些新的解决思路。
?? 接下来,我将从以下三个方面进行讲解:相关概念,作者实验方法与结论,对链上数据分析与用户画像构建的思考。
相关概念
准标识符 Quasi-identifier
?? 数据以表的形式表示,每一行表示一条记录(record),每一列表示一个属性(attribute)。每一个记录与一个特定用户/个体关联。这些属性可以分为三类:1. 标识符:可直接确定一个个体,如:身份证号;2.准标识符集:可以和外部表连接来识别个体的最小属性集,如:图1{邮编,年龄};3.敏感数据:用户不希望被人知道的数据,可以认为数据表中除了标识符和准标识符之外都是敏感数据,如图2的disease。 ?? 当公开数据表时,应避免用户的敏感数据被公开,也即不能让观察者者将某条记录和一个确定的用户联系起来。信息公开(information disclosure)可以分为两类:1. 身份公开::指可以将用户和特定记录联系起来;2.属性公开:当新公开的信息可以使观察者更准确地推测用户的特征时,称发生了属性公开。 ?? 如下图所示,图2是图1经过k-匿名处理后的数据,它使得同一等价类中记录对于敏感属性不能与其他k-1条记录相区分。
图1. 原始数据
图2. 3-匿名数据
去匿名化De-anonymization
??去匿名化是指一种数据挖掘策略,其中的匿名数据和其它数据来源相互对照来重新识别匿名的数据来源。区别一个数据来源和另一个数据来源的任一信息都能用于去匿名化。 ?? 这里我们主要以社会网络为例,因为社会网络的图结构在后面会讲到。社会网络的去匿名化主要针对的是节点的去匿名化,识别一个节点就是获得一个人的真实信息。对于社会网络的去匿名化方法可以分为两类,一类是基于映射的方法,另一类是基于猜测的方法。基于映射的方法是将攻击者了解的或爬取得到的真实网络结构与公开的经过匿名化的网络结构数据做节点匹配。基于猜测的方法则是利用攻击者已知的背景知识在公开数据中找到符合的一个或多个节点。本文作者做的去匿名化实际上做的是地址匹配或者说节点匹配。
图3.社会网络
用户画像 User Profiling
??用户画像,即用户信息标签化,就是企业通过收集与分析消费者社会属性、生活习惯、消费行为等主要信息的数据之后抽象出一个用户的商业全貌。
图4. 用户画像
??用户画像的焦点工作就是为用户打“标签”,而一个标签通常是人为规定的高度精炼的特征标识,如年龄、性别、地域、用户偏好等,最后将用户的所有标签综合来看,就可以勾勒出该用户的立体“画像”了。用户画像的意义如图4所示。
图5.用户画像的意义
节点嵌入 Node Embedding
??形式上讲,Embedding就是用一个低维稠密的向量“表示”一个对象,这里所说的对象可以是一个词(Word2Vec),也可以是一个物品(Item2Vec),亦或是网络关系中的节点(Graph Embedding)。其中“表示”这个词意味着Embedding向量能够表达相应对象的某些特征,同时向量之间的距离反映了对象之间的相似性。或者说更直白一点,它就是一个矩阵。Embedding将一个东西映射成一个向量,如果两个东西很像,那么得到的向量距离就会很小。下面举几个例子:
- Word Embedding: 将单词映射成向量:如果两个词意思相近,则词向量的欧式距离很小
- User Embedding: 将用户映射成向量,如果用户行为习惯接近,则向量间欧式距离很小
-
?? 知道什么是Embedding之后,我们开始讨论Node Embedding了。在传统机器学习任务中,我们需要根据下游任务来提取指定的特征,如果下游任务变化了,提取的特征也需要变化,也即是依赖下游任务导向。 ?? 很显然,传统机器学习算法很难提取图结构数据的特征的。因为,图的特征信息很多是隐式的、抽象的、高维的、与任务无关的。因此,我们需要借助图表示学习将高维度信息降维到低维度空间,同时最大化保留原有图原本的结构信息。此外,它还有一个很重要的一个优点就是它弱化了对下游任务的依靠,不需要针对不同的任务每次都进行不同的特征提取。 ?? 因此,我们可以使用Node Embedding将图中节点映射到一个向量空间,同时保持节点的某些性质。
图6. node embedding
图7. 原始网络映射到embedding空间
??当节点映射到向量空间之后就可以进行各种下游任务了。
图8.下游任务
Danaan-Gift Attack
?? Danaan-Gift attack 首次在《Privacy Aspects and Subliminal Channels in Zcash》中被提出,它的意思是说:攻击者向目标的shielded address发送少量受污染的zcash,当目标de-shielded时这些值会保留下来,起到标记的作用。它基于这样一个事实:zcash的交易值精确度很高,最后几位数字没有经济意义,但是可以被用作fingerprint value。 ?? 在作者的定义中,交易价值的指纹是它在 Zatoshis 中的最后 7 位数字,尤其是最后4位数字特别稳定。由于最后四位数字低于交易的门槛费用,所以它没有什么经济意义,只代表了以前交易的残余。在区块链世界中,矿池支出都是以全精度计算的,因此会在最低有效数字中产生随机分布,所以fingerprint value的独特性可以得到保证。在作者的实验中,他们认为如果最后7位中有5位是相同的,或者最后4位都是相等的,这两个fingerprint value就是匹配的。
作者实验与结论
?? 本文作者主要做了三个实验:以太坊用户画像与去匿名化、对混币服务进行去匿名化、以太坊上的Danaan-Gift攻击。
实验数据
?? 本文实验数据以ETH地址为基础,来源有三个:Twitter API、Humanity DAO、TC mixer contracts。作者收集到地址之后通过ETH区块浏览器查询交易信息。Humanity DAO可以理解为一种实验,它鼓励参与者进行去中心化的登记与注册;TC mixer contracts
- Twitter API提供的数据是ENS names,每个ENS names可以与一个或多个数据关联
- Humanity DAO可以理解为一种实验,它鼓励参与者进行去中心化的登记与注册
- TC mixer contracts是一个混币合约,多个参与者将等额资金汇入到合约中,构造出一个匿名集
图9.来自Twitter的ENS names
图10.三个数据源的平均交易量
评估方法
?? 本文的评估方法有两个,一个是AUC,还有一个是熵增益。
AUC
?? 对于前两个实验,算法会为测试集中的每个账户返回一个候选对的排名列表,每个排名列表里面只有一对是正确匹配的,则AUC可以表示为下式:
A
U
C
=
a
v
g
(
r
(
a
)
∣
c
(
a
)
∣
)
AUC=avg(\frac{r(a)}{|c(a)|})
AUC=avg(∣c(a)∣r(a)?) over all
a
a
a, and
r
(
a
)
r(a)
r(a) is the rank of correct pair.
熵增益
?? 除了衡量匹配的AUC之外,作者还想量化去匿名化匹配带来的隐私损失。在这里,作者巧妙地将攻击者获得的信息表示为熵增益,即先验熵和后验熵的差异。注:先验熵是指没有使用去匿名化方法。对于TC mixer contracts来说,匿名集的大小是动态变化的,因此我们需要首先证明匿名集的大小对于我们比较熵增益是没有影响的。 论证:先验匿名集大小对熵增益没有影响
Δ
=
g
a
i
n
(
2
n
,
p
)
?
g
a
i
n
(
n
,
p
)
\Delta=gain(2n,p)-gain(n,p)
Δ=gain(2n,p)?gain(n,p),作者在概率分布为p的条件下,对大小为2n和n的匿名集的熵增益做差处理。如果概率分布是平滑的,且在邻域范围内变化很小,那么上述的差值就会很小,就可以近似认为先验匿名集大小对熵增益没有影响。 推断后验概率分布 ?? 对于每个大小为
n
n
n、正确匹配对排名为
r
r
r的匿名集,其概率
P
(
n
,
r
)
P(n,r)
P(n,r)在
[
(
r
?
1
)
/
n
,
r
/
n
]
[(r-1)/n,r/n]
[(r?1)/n,r/n]均匀分布。后验概率分布就是
P
(
n
,
r
)
P(n,r)
P(n,r)的平均值。注:前面说了算法为每个账户返回候选对列表,其实就是匿名集。 计算熵增益
实验一:以太坊用户画像分析
?? 作者选用恰好有两个地址的ENS names,并挑选三个准标识符:交易时间、汽油费、以太坊交易图位置进行用户画像分析,最后将属于同一用户的账户关联起来。
图11.两个ENS names的交易画像
?? 在进行交易图分析的时候,本文作者率先采用节点嵌入的方法对同一用户的账户进行匹配识别,并同仅使用其他两个准标识符进行识别的方法进行对比。
图12.仅使用交易时间的AUC
图13.仅使用汽油费的AUC
图14.十二种节点嵌入方法的AUC
?? 在进行交易图分析的时候,本文作者率先采用节点嵌入的方法对同一用户的账户进行匹配识别,并同仅使用其他两个准标识符进行识别的方法进行对比。
图15.仅使用交易时间的熵增益
图16.仅使用汽油费的熵增益
图17.十二种节点嵌入方法的熵增益
方法二:对混币服务进行去匿名化
??在TC mixer contracts的混币服务中,存入地址与赎回地址可能存在重复使用的情况,这会导致隐私方面的风险。于是,作者采用节点嵌入方法进行去匿名化,最终找到存入地址对应的赎回地址。
图18.给定排名下找到赎回地址的数量
方法三:以太坊上的Danaan-Gift攻击
??作者对以太坊上进行Danaan-Gift攻击做了一个指纹存活概率的分析,说明了在以太坊进行该攻击的可能性。
区块链去匿名化与用户画像构建思考
地址数量会不知不觉误导你 ?? 地址数量是最常见的一个具有误导性的指标,因为并非所有的地址都同等重要。交易创建的一个用于临时性转账的地址,显然不能和另一个长期持有资产的钱包地址相提并论。
匿名性 vs. 可解读性 ?? 在区块链数据集中匿名性与可解读性之间的摩擦相对来说还比较小。一个区块链数据集的匿名性越高,从中获取有意义的信息的难度就越大。 去匿名化 vs. 隐私保护 去匿名化区块链数据集并不涉及了解每个参与者的真实身份。「你是什么」远比「你是谁」要重要。
|