当前位置:首页 » 区块链精品文章 » 正文

9.3 匿名性和隐私性

2877 人参与  2018年09月30日 14:12  分类 : 区块链精品文章  评论

加密货币经常被宣传的优点之一就是匿名性(anonymity),实际情况是怎样的呢?我们以比特币为例子分析一下。

1.不具备真正的匿名性

用户是通过地址来使用比特币的,账本中的交易只记录了地址和比特币数量,从交易中无法直接得到用户的真实信息,这就是 人们常说的比特币匿名性。如果比特币仅仅是在虚拟数字世界里面流转,确实比较难发现用户的身份信息。可是,当用户一旦用比特币和现实世界的事物发生联系, 用户的信息就可以关联上某个地址。例如,用户在商店用比特币购买一杯可乐,店员就可以把比特币支付地址和该用户的相貌、性别等信息关联起来。如果用比特币 网购商品,那么买家的姓名、地址、电话等信息就会透露给卖家。还有不少人在网站、视频、文章中留下自己的比特币地址来接收捐赠或收款,殊不知这样就泄露了 自己和比特币地址的关系。有的国家法律要求,从事比特币等业务的机构(如比特币交易所)需要了解用户真实信息(Know Your Customer,KYC),以符合反洗钱(Anti-Money Laundering,AML)等一系列监管规定。这样,用户的信息也被政府或相关机构所掌握。一些学术研究的结果也印证了比特币的匿名性难以保证。例 如,瑞士苏黎世联邦理工学院和德国NEC欧洲实验室的学者们研究发现,即使采用了隐私保护措施,40%的比特币用户身份信息仍能够被识别出来的。因此,比 特币地址不具备真正的匿名性,更准确地说,应是假名性(pseudonymity),就像用户在网络论坛上使用的代号一样,虽然不知到用户是谁,但用户一 言一行都可关联到这个代号上。

2.隐私性无法保障

除了匿名性之外,每个地址的隐私性几乎是无法保证的。因为比特币的每一笔交易都会公开记录在区块链账本上,任何人都可以查阅。只要通过分析每个地址发生过的交易,就可以发现很多的账号之间的关系。我们来看看下面的例子。

比特币的交易是记录各个地址之间转移货币的数量,通常有一个或多个地址作为输入,还有一个或多个地址作为输出。在通常 使用的习惯下,同一个交易中的输入地址一般可以认为是由同一人所有。例如,张三要支付3个比特币给李四购买一台电脑,张三有两个地址,各有2个比特币,这 个交易如图9-3所示。

image.png

图9-3 比特币交易的输入和输出

这个交易会广播到比特币所有节点上并持久化下来。其他人通过比特币区块链上公开的数据,可以推测出这笔交易的两个输入 地址很可能属于同一个人。然后按照同样的方法,可以分别追踪两个输入地址发生的其他交易,从而发现更多的地址相关性。另外,配合其他信息,从交易的输出地 址也可能分析出更多结论。例如,有的钱包软件总是把找零地址作为输出的第一个地址,这样可推断出第一个输出地址和输入地址属于同一人所有。另一些钱包软件 总是创建全新的找零地址,那么他人通过查找账本,可把未发生过交易的地址归结为找零地址。

从上面例子看到,比特币是完全透明的系统,通过各种数据挖掘技术,可以发现很多地址的相互关系。从积极的方面说,政府 监管机构可以从中发现洗钱、行贿等犯罪的蛛丝马迹;而从消极的方面说,用户的隐私却无从保障,就好比将每笔交易都用假名在微信、微博等社交媒体上发布,一 旦假名的真实身份泄漏,所有交易将暴露在公众的眼皮底下。

估计没有哪个用户希望自己的交易情况被别人知道得一清二楚,保护隐私成为比特币系统中重要的问题。为此,Blockstream的开发者Gregory Maxwell提出了名为“CoinJoin”的方案。

3.CoinJoin方案

CoinJoin的原理比较简单,就是把不同用户的多个交易合并成一个交易,如图9-4所示。外人从这种混淆过的交易中无法假定输入地址属于同一人所有,也不能确定货币的流向。用户可以进行多次CoinJoin操作,进一步隐藏交易的关系。

image.png

图9-4 用CoinJoin来混淆交易的输入和输出

CoinJoin不需要改变比特币的协议,实施起来比较容易。已经实现的方式较多是采用中间服务器,需要 CoinJoin的用户可在服务器上登记,由服务器聚合多个用户请求生成一个大交易,经过各个用户签名后再发布到比特币网络上。尽管这种方式能够混合用户 交易,但缺点是中间服务器可以掌握所有用户的输入输出地址,对于该服务器来说用户毫无隐私可言。如果该服务器被攻破,用户的隐私也将无从保证。一种潜在的 解决办法是用户对服务器加密,屏蔽服务器对交易细节的了解,目前这种方法还在研究中。另一种解决办法是去除中间服务器,采用去中心化的方式来组织用户的交 易。已经有若干个这类实现,如Coinjumble、Coinmux、CoinJoiner等,但是都没有被广泛使用。

经过CoinJoin处理过的交易是否就能够保护用户的隐私呢?Blockchain.info公司提供称为 SharedCoin的CoinJoin服务,有研究人员发现它并不能完全掩盖交易地址,通过工具分析数据特征,还是可以发现原来交易的输入和输出地址。 其中一个原因是各个用户输入的比特币数量都不尽相同,因此,根据输入等于输出(可相差少量交易费)原理,可以把原交易识别出来。一种改进办法是要求参与混 合交易的用户使用相同的输入金额,这样可减少用于区分交易的特征。不足之处是需要更多时间“凑齐”一组用户来合并交易。

匿名性和隐私性是加密货币领域一直在研究的问题,用户在使用的时候,应该充分了解这些特点,以采取适合自己的隐私保护策略。


来源:我是码农,转载请保留出处和链接!

本文链接:http://www.54manong.com/?id=1003

区块链是什么  

微信号:qq444848023    QQ号:444848023

加入【我是码农】QQ群:864689844(加群验证:我是码农)

<< 上一篇 下一篇 >>

网站分类

标签列表

最近发表

全站首页 | 数据结构 | 区块链| 大数据 | 机器学习 | 物联网和云计算 | 面试笔试

本站资源大部分来自互联网,版权归原作者所有!