区块链:5、匿名性和隐私性

一、不具备真正的匿名性

用户是通过地址来使用比特币的,账本中的交易只记录了地址和比特币数量,从交易中无法直接得到用户的真实信息,这就是人们常说的比特币匿名性。

如果比特币仅仅是在虚拟数字世界里面流转,确实比较难发现用户的身份信息。

可是,当用户一旦用比特币和现实世界的事物发生联系,用户的信息就可以关联上某个地址。

例如,用户在商店用比特币购买一杯可乐,店员就可以把比特币支付地址和该用户的相貌、性别等信息关联起来。如果用比特币网购商品,那么买家的姓名、地址、电话等信息就会透露给卖家。还有不少人在网站、视频、文章中留下自己的比特币地址来接收捐赠或收款,殊不知这样就泄露了自己和比特币地址的关系。

有的国家法律要求,从事比特币等业务的机构(如比特币交易所)需要了解用户真实信息(Know Your Cusomer, KYC), 以符合反洗钱( Anti-Money Laundering,AML)等一系列监管规定。这样,用户的信息也被政府或相关机构所掌握。

一些学术研究的结果也印证了比特币的匿名性难以保证。

例如,瑞工苏察世联邦理工学院和德国NEC欧洲实验室的学者们研究发现
即使采用了隐私保护措施,40% 的比待币用户身份信息仍能够被识别出来的。

假名性

因此,比特币地址不具备真正的匿名性,更准确地说,应是假名性( pseudonymit), 就像用户在网络论坛上使用的代号一样,虽然不知到用户是谁,但用户一言一行都可关联到这个代号上。

二、隐私性无法保障

除了匿名性之外,每个地址的隐私性几乎是无法保证的。

因为比特币的每一笔交易都会公开记录在区块链账本上,任何人都可以查阅。只要通过分析每个地址发生过的交易,就可以发现很多的账号之间的关系。

看下面的例子:
比特币的交易是记录各个地址之间转移货币的数量,通常有一个或多个地址作为输入,还有一个或多个地址作为输出。在通常使用的习惯下,同一个交易中的输入地址一般可以认为是由同一人所有。

例如,张三要支付3个比特币给李四购买一台电脑,张三有两个地址,各有2个比特币,这这个交易会广播到比特币所有节点上并持久化下来。

其他人通过比特币区块链上公开的数据,可以推测出这笔交易的两个输人地址很可能属于同一个人。然后按照同样的方法,可以分别追踪两个输人地址发生的其他交易,从而发现更多的地址相关性。

另外,配合其他信息,从交易的输出地址也可能分析出更多结论。
例如,有的钱包软件总是把找零地址作为输出的第一个地址,这样可推断出第一个输出地址和输入地址属于同一人所有。另一些钱包软件总是创建全新的找零地址,那么他人通过查找账本,可把未发生过交易的地址归结为找零地址。

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

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

三、 CoinJoin方案

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

CoinJoin不需要改变比特币的协议,实施起来比较容易。已经实现的方式较多是采用中间服务器,需要CoinJoin的用户可在服务器上登记,由服务器聚合多个用户请求生成一个大交易,经过各个用户签名后再发布到比特币网络上。

尽管这种方式能够混合用户交易,但缺点是中间服务器可以掌握所有用户的输人输出地址,对于该服务器来说用户毫无隐私可言。

如果该服务器被攻破,用户的隐私也将无从保证。
一种潜在的解决办法是用户对服务器加密,屏蔽服务器对交易细节的了解,目前这种方法还在研究中。另一种解决办法是去除中间服务器,采用去中心化的方式来组织用户的交易。

已经有若干个这类实现,如Coinjumble、Coinmux、 CoinJoiner 等,但是都没有被广泛使用。

经过CoinJoin处理过的交易是否就能够保护用户的隐私呢?

Blockchain.info 公司提供称为SharedCoin的CoinJoin服务,有研究人员发现它并不能完全掩盖交易地址,通过工具分析数据特征,还是可以发现原来交易的输人和输出地址。其中一个原因是各个用户输人的比特币数量都不尽相同,因此,根据输入等于输出(可相差少量交易费)原理,可以把原交易识别出来。

一种改进办法是要求参与混合交易的用户使用相同的输入金额,这样可减少用于区分交易的特征。不足之处是需要更多时间“凑齐”一组用户来合并交易。

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

参考文献

[1]邹均.张海宁.唐屹.李磊.区块链技术指南.机械工业出版社

区块链:5、匿名性和隐私性相关推荐

  1. 区块链是如何实现隐私保护的?

    2019独角兽企业重金招聘Python工程师标准>>> 现今,科技已经侵犯了我们的隐私.个人或组织所做的大多数事情都属于公共领域.第三方会监控,存储并利用个人及组织的数据.模式.爱好 ...

  2. 02 区块链的安全和隐私

    原文标题:Security and Privacy on Blockchain 原文作者:RUI ZHANG, RUI XUE,,LING LIU 原文地址:https://doi.org/10.11 ...

  3. 平安壹账通陆一帆:通过牺牲区块链价值来达到隐私保护,无价值无意义

    记者:海伦 12月27日,全球首档区块链跨年演讲"玲听2020" 在杭州·运河文化艺术中心举行."玲听2020"以"确定感"为主题,由巴比特 ...

  4. 区块链真的能保护隐私吗?

    思考 这一年,我看过不少媒体的报道,基本言必谈区块链能力之一 --隐私保护.作为区块链从业者,我一方面很好奇那些文字背后的严肃技术:一方面也很怀疑区块链在隐私保护方向的具体价值.我们当然知道隐私保护很 ...

  5. 透过8个行业,带你了解Web 3.0区块链网络时代的颠覆性,你的行业会被颠覆吗?...

    「那是最美好的时代,那是最糟糕的时代」,这是出自狄更斯所著<双城记>的经典开头,引用到今天也同样适用. 区块链时代的到来,这是颠覆巨头们最好的时代.这篇文章以交易所.银行.保险.视频流媒体 ...

  6. Genaro Network - 区块链技术如何让隐私权受益

    硅谷Live / 实地探访 / 热点探秘 / 深度探讨 在2018年1月26日硅谷密探在美国旧金山艺术宫成功举办了"Blockchain Connect Conference".在 ...

  7. 区块链技术的五大颠覆性价值

    传统模式信用机制是中心化的,而中心化的信任和信用机制必然导致中心化机构称为价值的核心.而区块链技术则首先在人类历史上实现去中心化分散式的大规模信用机制,在消除中心机构"超级信用"的 ...

  8. 贾求真、李思成、程伟做客《筱静观察》,区块链技术是否会颠覆性改变医疗行业?

    随着区块链技术的发展,区块链和各项产业的结合也在慢慢落地,医疗产业作为一个相对特殊的领域,区块链技术会如何赋能并会产生哪些应用呢? <筱静观察>第11期聚焦区块链+医疗,主持人叶筱静与北京 ...

  9. 物联网区块链有望成新一轮颠覆性技术

    早期互联网的"杀手级应用"是电子邮件;它驱动网络的普及,也强化了网络.比特币是区块链的杀手级应用.以区块链为基础的比特币,驱动了区块链的采用,去年审核通过的<"十三 ...

  10. ING创建有利于华尔街的区块链解决方案

    点击上方"蓝色字"可关注我们! 暴走时评:荷兰金融集团ING宣布创建"零知识范围证明"(ZKRP),让金融机构不用再担心区块链的匿名性和隐私性风险,同时提升交易 ...

最新文章

  1. 2022-2028年中国安防行业研究及前瞻分析报告
  2. CVPR 2022 | ConvNeXt - FAIR再探纯卷积结构的极限(优于Transformer)
  3. java基础思维导图
  4. 析构函数与构造函数的调用
  5. linux/windows中mysql、oracle、dm数据库连接
  6. java判断时间区间 隔天_Java初中级程序员面试题宝典
  7. 使用AspectJ和Spring简化了AOP
  8. C++语言基础 —— 函数
  9. 2021年福建高考成绩位次查询,2021年福建普通高考理科成绩一分一段表汇总(成绩排名查询)...
  10. 互联网域名解析系统DNS的工作原理及相关服务配置
  11. Vue Cli 3 搭建一个可按需引入组件的组件库架子
  12. linux系统的总父目录,Linux虚拟文件系统-资料路径名的解析(2)-回退父目录
  13. NFT头像屡拍天价,如何从理性角度分析其市场价值?
  14. 一个大学生的人生随笔
  15. html背景图怎么调亮度,不得不知的ps技巧-亮度与背景图设置
  16. python数字及字母的分离_Python 分割文本使得 字母和数字 分开?
  17. int x=3,y=2;则表达式x+=x*=y+8的值为(60)
  18. ajax 等待,等待所有的ajax请求都完成
  19. OkHttp与HTTP协议
  20. 【C语言程序设计】从键盘上输入某年某月(包括闰年),编程输出该年的该月拥有的天数。

热门文章

  1. 计算机基础知识题库选择题,计算机基础知识题库选择题
  2. 大学生计算机知识竞赛,大学生计算机基础知识竞赛题库(试题附答案).docx
  3. 东汉十三州以及各个郡的说明
  4. Phase2 DAY5 MyArrayList
  5. 今天,你绿坝了没有?
  6. vue中index.html文件为什么可以使用模板语法
  7. 假如时光倒流,我会这么学习Java
  8. CRITIC权重指标如何计算?
  9. ubuntu 18.04LTS 安装HP LaserJet 1020(含Plus) 驱动 cups自带驱动不正常的问题解决
  10. Matlab使用for循环实现5阶乘和的计算