比特币最有争议性的一个特性,就是匿名性。首先,比特币是匿名的吗?实际上普遍存在着各种相反的论调,原因在于人们对比特币匿名性存在理解上的困惑。其次,我们需要加密数字货币(crypto-currency)做到完全匿名吗?
1 匿名的基础知识
在讨论比特币是否具备匿名性之前,我们需要对匿名做一个定义。
从字面上理解,匿名的意思是”没有名字”。当我们尝试用这个定义来说明比特币的匿名特征时,会有两种不同的诠释:在交易的时候不使用真实的姓名,或者在交易的时候完全不使用任何名字。比特币是否具有匿名性,这两种释义会带来两种完全不同的结论。比特币的地址是公钥哈希值(hashes of publickeys),在交互过程中,使用者不需要使用真实的姓名,但是需要使用公钥哈希值来作为交易标识。显然符合第一种而不符合第二种定义。
在计算机领域中,这种不用真实姓名而是用一种特定标识的折中做法被称为化名。
在计算机科学中,匿名指的是具有无关联性(unlinkability)的化名,无关联性是一种针对特定攻击者的能力而定义的属性:如果一个用户和系统重复进行交互,从攻击者的角度考虑,这些交互行为之间应该无法互相关联。
比特币是具备化名性的,但如果要求绝对隐私还不足够。如果有人可以用你的比特币地址链接到你的真实身份,那么你的所有比特币交易记录都会关联到你的真实身份。更糟糕的是,把比特币地址和真实身份链接在一起并不困难——比如进行需要提供真实身份的交易或者进行实地比特币交易。
旁路攻击(side channels)
即使没有发生直接的关联,因为侧面渠道或者一些间接的信息泄露,你的匿名身份也可能会被暴露——比如关联活跃时间。
显然,这样的化名性不能保障隐私或者绝对匿名,要想做到绝对匿名,我们需要更强的无关联性属性。
无关联性
为了更好地理解比特币范畴的无关联性,我们可以列举一些无关联性需要的关键属性:
- 同一个用户的不同地址应该不易关联
- 同一个用户的不同交易应该不易关联
- 一个交易的交易双方应该不易关联(指任何一种从发送者到接受者的传输比特币的行为,而不仅仅指一笔交易)
匿名集
上述第三条要求比较难以实现,所以我们通常并不试图在系统中,对所有可能的交易或者地址都实现完全的无关联性,而是去实现更有限度的无关联性。想象一个特定的攻击者的情况,你的交易匿名集(anonymity set)是指该攻击者无法把你的交易从其中分辨出来交易集合。即使该攻击者知道你完成了一个交易,他也仅仅知道这个交易是某一个集合中的一个,并不能确定是哪一个,我们只需要努力去最大化这个匿名合集就可以了。
污点分析(taint analysis)
这是一种推算两个地址相关性的方法。如果地址S发出的比特币总是地址R接收,那么不管是直接抵达,还是经过多少中间地址,S和R被定义为具有高分污点。
为什么需要匿名性
在区块链货币中,所有交易都被记录在一个公共账本上,因此如果你的真实身份被关联到一个比特币地址,那么你就完全失去了所有交易的隐私,而且任何人都有可能在你不知道的情况下识别你的身份。
考虑到这一点,我们可以认定两种不同的需要匿名加密数字货币的动机:
- 达到我们习惯的传统银行给我们的隐私保护级别,降低公共区块链所带来的信息暴露风险
- 超越传统银行给我们的隐私保护级别,进一步开发数字货币,使其从技术上实现任何人不能轻易追踪参与者。
对于系统的技术匿名属性和在使用货币时应该遵守的法律规范,我们应该加以区分
2 如何对比特币去匿名化
关联性
假设Alice想要买一个茶壶,价格是8比特币。进一步假设,她的比特币分在三个不同的地址里,分别有3,5,6个比特币。实际上,Alice没有一个比特币地址有足够的8个比特币,她必须把两个输出合并成一个单体输入。
那么问题来了,这笔交易会在区块链网络有一个永久的记录,任何看到这个记录的人都可以推断,这两个输入地址很可能是由同一个用户控制的。换句话说,共享型消费,成为两个不同输入地址联合控制的证据(当然也可能存在例外)。
攻击者可以重复上述过程,从而一步步把这个个体所进行的所有交易关联起来,我们可以因此建立一个地址簇(clustering of address)。
不仅如此,由于一些钱包软件的默认行为,攻击者能推导出用来鉴定零钱地址(用于找零的输出地址)的方法,从而进一步扩大地址簇。
关联真实世界的身份到地址簇
- 利用交易进行标记:适用于交易所或者商家
- 辨识个人:(1)直接交易(2)服务提供商提供(3)疏忽泄漏
上述探讨的去匿名化技术,都是基于对区块链网络上交易图谱进行的分析,这些方法被归纳为交易图谱分析(transaction graph analysis)
网络层的去匿名化
当某个节点创建一个交易时,该节点就会和其他很多节点建立连接并且广播该笔交易。如果网络上足够多的节点串通起来(或者被同一个攻击者所控制),他们就能分辨出第一个广播交易的节点,并且可以推断这个节点就是创建这个交易的用户所拥有的。因此可以把这个交易关联到这个节点的IP地址,这已经很接近真实世界的个人身份了。
网友评论