发布时间:2023-01-29 09:30
本文为哈尔滨工程大学计算机学院2021年区块链技术课程,由2017060114唐俊杰、2017060201高晟昊、2017060216邵云骢共同查阅借鉴并总结相关文章资料完成。
平时谈的匿名性(anonimity) 总是和隐私保护相关,即用户做的事情不想被别人知道。因为比特币系统中账户的产生不会暴露用户个人信息,用户可以产生很多对账户,然后用不同的账户做不同的事情。但这种不暴露个人信息的账户显然不是完全的匿名,可以称为假名(pseudonymity)。所以比特币系统中的匿名只是一种假的匿名,就像作家写作用笔名,网民上网交流用网名一样。
比如说跟法币,美元相比,其实匿名性没有现金好,比如100元大钞,这个是完全匿名的,上面没有任何关于这个人的信息,假名都没有,所以很多非法交易用大额现金,用现金的问题在于不是很容易保管和运输。
跟银行存款相比呢,在银行账户的话,是实名制,要提交一些身份信息,然后才能注册一个银行账户,而比特币的话,不需要。其实国内的银行以前不是要求实名制的,可以用化名,如果跟这个版本的银行账户,还是比特币的隐私性,匿名性要好一些,因为比特币是在网上交易的,银行的话,就算是化名,取钱的时候,还得人去取。这里也牵扯到一个很重要的问题——比特币要把钱给取出来要怎么办?
在网上做交易没有问题,但是网上那些交易最终是要跟实体世界发生联系的,比如说在网上买东西,商家得把东西发给你,要用比特币换成法币,换成美元,还是得用东西把钱取出来,从某种意义上说,如果银行允许用化名的话,他的匿名性比比特币要好,因为比特币这个区块链的账本是公开的,所有人都能查,而银行的账本是受控制的,银行里面工作人员可以查的到,然后有些司法手段可以调取银行的信息,但是普通老百姓查别人的账户是查不到的,这方面银行要比比特币要好。比特币是完全公开的,每个人都可以上区块链,把整个信息都下载下来。
1.一个人可以生成很多地址账户,但这些地址账户可能被关联起来。假设有这样一个交易:
inputs:address1(4BTC),address2(5BTC)
outputs:address3(6BTC),address4(3BTC)
其中,address1和address2有可能是同一个人的,因为这个人同时控制着这两个账户的私钥。之所以出现两个输入,是因为你要买的东西很难正好是某个账户全部的值,一个账户用于找零。输出地址也可能会有一个找零钱的地址。例如上面例子,可以分析输出中address4是找零的地址,因为如果4是商家地址,那么没必要用两个inputs,一个就够了。理论上,为了更强的隐私保护,可以人为产生一些没必要的输出,用来迷惑他人。但是这些交易一般都是通过手机钱包软件生成,很少有人手动生成比特币转账交易,常用的比特币钱包就那么几种,而且没有故意生成不必要的输出地址。
2.比特币地址账户和现实中的真实身份产生关联。
(1)资金转入和转出。
如果去买比特币,就有一个资金转入区块链的过程,就容易泄露身份。防范用比特币进行洗钱的违法行为,盯住资金的转入转出链是常用手段。
(2)现实世界用比特币作支付。
延迟大,等6个确认需要大概一个小时时间,而且交易费高。收比特币的时候就容易引起隐私泄露,用于支付的账户和真实身份是建立联系的,这个支付账户和比特币的其他账户可能也有联系。不仅仅是接受你支付的商家会知道,其他人也会知道。
比特币交易记录都是公开的,所以用比特币支付时,把比特币账户告诉对方,不光是那个人知道你的账户,周围其他人也会意识到你在这个时候通过比特币进行消费,然后去区块链查有哪些交易是在这个时候这个地点进行的消费,就可以推算出哪个账户是你的。
所以比特币的匿名性不是绝对的,没有想象中那么好。
首先保证网络层的匿名性,普遍的做法是多路径转发,TOR(洋葱路由)就是这个原理,消息在网络上传输要经过许多中间节点,每个节点只知道上一个节点是谁,而不知道谁发出的,只要路径上有一个节点是诚实的,他就会把发消息的人信息隐藏掉,后面的节点就不知道发消息是谁了。
在应用层上,一种做法是coin mixing ,借助这类服务提供商,将你的币和别人的币混在一起,这时候你去取币,取的就不是原来的地址;还有一种做法是应用提供的天然mixing,比如在线钱包,大家都往里面投了币,然后取得时候就不一定是用原来的地址;还有一种手段是通过比特币交易所,你在交易所里面托管了比特币,然后经过一段时间的投资,比特币→美元→以太坊→莱特币→比特币,这时候你取到的比特币可能就不是原来的地址了。
保护隐私性难度很大,本质原因是区块链是公开的,而且是不可篡改的,这对于隐私保护来说是灾难性的。
混币的一个重要特性就是使得交易图谱变得不那么有效.
户发送比特币给一个中介媒体,并通过其他的用户回收比特币。这就使得在区块链上追踪一个用户的比特币,变得更加困难。
1.混币准则:
(1)一致性交易(uniform transactions)
初始进入和从混币过程中出来的比特币数量必须要一致。
最小化关联方面的一致性:混币中的交易价值能够服从平均分布,使用一个固定的混币输入值,就可以增强所有通过混币服务的交易匿名性,但同样这里块的大小选择很重要,比如大了的话就处理少量比特币的用户不方便而且比较浪费资源;块小的话就需要处理大量比特币的进行分割多个小的;
(2)客户端自动化
功能应该是自动化的,并且是隐私保护比较好的钱包内置功能。
手续费应该是要么全有要么全无。从每笔交易里去进行分成,那么很容易就泄露这笔交易的某些相关信息;所以策略就是采取要么全有要么全无,也就是所有交易对外面节点来看都是一样,这样一种混淆视听的感觉。
实际的实现就是:混币服务提供商应该要么在很小的概率情况下获得所有的交易金额,要么完全不收费。举例来说,如果混币服务商想要按照0.1%收费,那么应该是每1 000次交易中有一次服务提供商获得整个交易金额,而其他的999次则不收任何费用。
2.不同的混币运作方案
有一组研究者,包括本书5个作者中的4个,研究了混币模式,不仅仅是从增强匿名性的角度,而且还从安全信任等级方面,提出了一系列改进混币运作的方案:
(1)混币在线钱包
其实用已经 有的在线钱包去实现混币模式,因为在线钱包和混币之间其实是有很大的一个交集的,比如他们都是作为一个中介来进行不同的双方之间的支付的,但是混币多的一个功能就是需要把双方的交易变得混乱,不是那么一对一的,所以单纯的在线钱包还是有一定的缺陷,并且在线钱包还会保存一些记录:用来匹配你的存入和提取,一旦这些记录被人盗取或者分析出来就会有比较大的威胁了;
(2)专项混币服务
不同于在线钱包,专门的混币服务既可以保证不留记录,又不需要你的身份验证。你甚至不需要一个用户名或者其他化名来使用这项服务,只需要发送比特币到混币服务提供的地址,并且告诉交易服务提供商你发送的比特币所需要达到的地址,混币服务提供商就会帮你转过去相同数量的比特币(不是你发送的比特币)。
本质上,这是一种互换。
还有一个区别就是专项混币并不支持存储比特币,那么就需要你信任它,相信他会把比特币转给你而不是转给其他人;
其实这还有一个很黑的名词,那就是洗钱,你可以想象一下洗钱的 过程是不是就和这个一模一样
(3)多重混币的使用
只要这一系列中的任何一个混币服务提供者信守承诺并删除了记录,你就有理由相信,没有任何人能够将你的原始输入关联到你最终接收到的输出。
3.实践中的混币
糟糕的是,许多混币服务提供商被报告有盗币行为,或许“自举”这样一个生态系统太难,正是混币系统从来没有良好运行过的一个原因。基于混币服务提供商狡猾的名声,并没有多少人想要使用它们的服务,这也导致了较低的交易量,进而导致了不好的匿名保护,使用的人数直接就导致了匿名性不是太好。
比特币在很大程度上提供了匿名性,但它不能完全消除关联性,那么我们能不能设计一种新的加密货币,这个货币从一开始的结构设计上就用了密码学的原理保证了匿名性,所以就有了零币和零钞。零币和零钞在协议层就融合了匿名化处理,其匿名属性来自密码学保证。
零币(zerocoin )系统中存在基础币和零币,通过基础币和零币的来回转换,消除旧地址和新地址的关联性,其原理类似于混币服务。
零钞(zerocash)系统使用zk-SNARKs协议,不依赖一种基础币,区块链中只记录交易的存在性和矿工用来验证系统正常运行所需要关键属性的证明。区块链上既不显示交易地址也不显示交易金额,所有交易通过零知识验证的方式进行。
这是专门为匿名性设计的加密货币。
零币中存在基础币(比如比特币)和零币。用的时候要证明本来是有一个基础币,让基础币变得不能花费(unspendable),然后换取一个零币,零币在花的时候只需要用零知识证明你花掉的币是系统中存在的某一个合法的币就行了,但是不用透露你花的具体是系统中的哪一个币。这是跟比特币的一个本质区别,比特币是每一笔转账交易都要说明币的来源。这样才能证明花的币的真实性不是凭空捏造出来的。但零币和零钞不是这样,零币和零钞是说证明的时候可以从数据上保证你花的币是以前区块链上某个合法存在的币,但不知道具体是哪个。这样的话就把关联性破坏掉了,也没法追溯了。
零钞没有基础币,是完全的零币。
零钞和零币也不是100%匿名安全的,在影响匿名安全的因素中依然有一个因素无法解决,就是与实体发生交互的时候。比如有人想拿这些币干坏事,把很大的金额转换成这种加密货币的时候,或者是把这些加密货币转换成现金的时候,仍然要暴露身份。这些加密货币数学上设计的再好,只是说对已经在区块链当中的转账有匿名性,跟外界交互的匿名性仍然是一个弱点。所以它依然无法提供100%的匿名。
https://blog.csdn.net/weixin_43888039/article/details/103877527
https://blog.csdn.net/weixin_42295969/article/details/107008395
https://blog.csdn.net/SHU15121856/article/details/95896562