主页 > imtoken安装下载地址 > 区块链学习笔记 11 - 比特币的匿名性

区块链学习笔记 11 - 比特币的匿名性

imtoken安装下载地址 2024-01-13 05:07:41

十一、比特币的匿名匿名

比特币不需要使用实名,可以使用公钥生成的地址。从这个角度来看,有一定程度的匿名性,可以生成任意数量的地址,然后不同的地址可以做不同的事情,根本不是没有名字的。,使用化名,所以有人认为这叫化名。就像作家用笔名写作,有人在互联网上以各种网名发帖一样。

匿名的好处

匿名性有多好,它为我们提供了什么样的隐私保护?

比如和法币、美元相比,匿名其实还不如现金,比如100元钞票,完全匿名,没有这个人的信息,也没有假名,所以很多不法交易 现金的问题在于不易保存和运输。

与银行存款相比,如果你有银行账户,那就是实名制。您需要提交一些身份信息才能注册银行账户,但您不需要使用比特币。事实上,国内银行之前并不要求实名制,可以使用化名。如果这个版本的银行账户涉及到比特币的隐私,匿名性比较好,因为比特币是网上交易的,即使是化名,也是银行账户。当你取钱时,必须有人取钱。这里还涉及一个非常重要的问题——我应该怎么做才能从比特币中取出钱?

在线交易没有问题,但这些在线交易最终与物理世界相连。例如,如果您在网上购买东西,商家必须将其发送给您,您必须将比特币兑换成法定货币和美元。从某种意义上说,如果银行允许使用化名,他的匿名比特币更好,因为比特币区块链的账本是公开的,每个人都可以查到,而银行的账簿是受控的,工作人员在银行里可以穷,然后一些司法手段可以检索到银行的信息,但是普通人不能查别人的账户,银行在这方面比比特币好。比特币是完全公开的,每个人都可以去区块链下载全部信息。

比特币什么时候可以破坏匿名性?

表面上,第一次接触比特币的人都觉得比特币的匿名性非常好。他们需要使用一个帐户来生成一个公私钥对,然后在下次需要帐户时再做一次。有人建议每次收款时使用新地址。在这种情况下,你有各种各样的地址,没有人知道哪些属于你。这看起来很匿名,但实际上在很多情况下,你创建的这些不同的地址是可以链接在一起的,比如网上购物,比特币交易允许多输入多输出,比如你想买东西,输入这个交易是两个账户,一个是第一个地址,然后是第二个地址,输出也可以是两个,第三个地址,第四个地址

在这里插入图片描述

假设这个交易是在区块链上发布的,那么 addr1 和 addr2 很可能属于同一个人,因为这个人同时控制着这个账户的私钥比特币是干什么的,而且有多个输入因为它一般很难被购买成为你们中的一员。账户的全部价值,所以会有多个输入和多个输出。这两个地址之一很可能是换钱的地址。只要你在网上买了东西,你花在那个东西上的钱,剩下的那部分钱就转到你的新地址了。这种交易一般是由钱包软件产生的。钱包软件每次交易都会自动生成找零地址,也是为了保护隐私。是否可以输入地址它还与输出地址相关联。我刚刚提到有 n 个输入地址。可以认为它们都属于同一个人,被同一个人控制。一般在输出地址中还有一个地址可以改变。这个地址可以用吗?找零钱的地址有点难,因为有两个地址,不知道哪个是找零钱的。比特币在生成这个交易的时候,并没有在输出中指定地址变化的位置,也就是说不一定是第一个输出或者最后一个输出,但实际上可以在一些分析案例。例如,让我们看一个具体的例子。比如第一个地址账户里有四个比特币,第二个地址账户有四个比特币。有五个比特币,产生两个输出,第一个输出转成六个比特币,第二个输出转成三个比特币,那么此时哪个是零地址?应该是第二个输入三个比特币转入的地址,因为如果第二个输出是商家的地址,为什么要用两个 Input,其实一个就够了。这样,输入地址和输出地址也可以转换也关联。理论上,如果想要更强的隐私保护,可以人为的产生一些不必要的输出,只是为了迷惑敌人,但这些交易基本都是钱包软件产生的,而很少有人手动生成这些比特币,用于转账交易的常用比特币钱包也寥寥无几。因此,如果把这个常用的比特币钱包产生的交易方式弄清楚,就可以分析出区块链上很大一部分的转账交易。常用的钱包一般不会生成。这个不必要的输出地址,也就是我们说的第一个可能破坏比特币匿名性的方面,就是这个人可以生成很多地址账户,但是这些地址账户可能是有关联的。

第二个方面是这个地址账户也可能与你在社交现实世界中的真实身份有关。什么情况下别人会知道这个账号对应的是现实生活中的某个人?

当比特币系统中的虚拟货币与现实世界连接时,可以暴露身份,只是在区块链中玩耍,永远与现实世界没有任何联系,这个没问题,一旦连接到现实世界联系可能会泄露您的真实身份。最明显的一种是资金转移。人们通常没有比特币。你如何获得你的比特币?如果你是用钱买的,那么就有一个转移资金的过程。可以去交易所买,然后需要注册,一般用你的身份信息,也可以场外交易(两个人私下交易),比如A同学有比特币,B同学要买A同学的比特币,B同学给A同学钱,A同学给B同学比特币,但场外交易也会暴露你的身份。过去的经验表明,很多国家都有反洗钱法,那么如何防范使用比特币洗钱的违法行为呢?跟踪这笔资金的转移链实际上是一种常用的方法。一些黑道洗钱,你要转成比特币,或者你有很多比特币,你要转回法币,其实很难避免司法部门的注意,这也是比特币的隐私A可能被破坏的非常重要的机会是资金的进出。比如在现实世界用比特币支付时,有些国外商家接受比特币支付,你可以在咖啡店用比特币支付买咖啡,去餐馆也可以用比特币支付。亲自,

它快速准确地对应了你的哈希值。这个研究结果告诉我们,信用卡记录是不能公开的,但是比特币的交易记录不是保密的,都是公开的,所以你去咖啡店,你去喝咖啡,你告诉销售人员你的比特币账户,不仅他知道你的账号,你身边还有人。其他认识你的人会意识到此时你在这个地方有消费,然后查看区块链中的哪些账户此时在这家咖啡店进行了消费,然后可以计算出哪些账户可能是你的. 这样做一两次之后,下次你去买披萨用比特币购买时,你很快就会知道哪个账户是你的。这也是毁掉你的星星的一种方式。.

所以,比特币的匿名性并不是绝对的,也没有想象的那么好,那么在实践中又是怎样的呢?事实上,那些使用比特币的人,他们的匿名性保持得如何。在所有使用比特币的人中,匿名保护最好的人是中本聪,因为他根本没有花任何钱,中本聪直到现在都没有花掉他的比特币,因为一旦他要花掉,他必须与现实世界联系并揭示他的真实身份。这是中本聪不愿意做的事情。他没有花钱,也不想暴露自己的真实身份,所以他发明比特币可能不是为了钱,而是为了某种信仰,某种事业。以前有个网站叫丝绸之路,是个非法网站。有些人称其为非法毒品易趣。就像易趣一样,它有一个在线交易平台,也有像eBay这样的信誉系统。在进行网上交易时,该商户的诚信如何评分?他有一套完整的,但他出售违禁品和各种非法物品。为了逃避司法制裁,他的支付方式是比特币,然后下面的网络层使用洋葱路由(TOR),然后在美国使用这种匿名邮寄服务。最后,经过两三年的经营,被政府收缴,他的幕后老板在旧金山被捕。更重要的一点是,这个人通过经营这个网站赚了很多比特币。当他被捕时,美国政府没收了数十万比特币,这些比特币在当时可能价值数千万美元。这个人他很富有,但他只是纸上谈兵。他在旧金山过着非常简单的生活。他住在一居室公寓里。根本没有钱。一分钱都没花,因为一花就暴露了身份,所以我一个都不敢花。即便如此,他们最终还是被抓住了。他们如何被捕的细节没有透露。据说这个人不小心多次使用了同一个硬币。一台计算机登录了他在现实世界中的一个帐户和一个非法网站上的帐户。这个网站被封后,过了一段时间,有人打开了丝绸之路的第二版,叫做丝绸之路2。它也运营了几年,也被关闭了。有一些类似的网上黑店,结局不好。这告诉我们,比特币的匿名性并没有我们想象的那么好,尤其是如果你想用它来做坏事。过去的经验表明比特币是干什么的,所有从事非法活动的比特币最终都会被抓获。中本聪可以如此长期。保持匿名其实是个例外,不是常态,他也没有做坏事。有一个非常重要的一点。当比特币项目走上正轨时,他消失了,他成功了。退休了,所以他现在还没有透露自己的身份。他这样做不仅是为了钱,也是为了名声。保持匿名其实是个例外,不是常态,他也没有做坏事。有一个非常重要的一点。当比特币项目走上正轨时,他消失了,他成功了。退休了,所以他现在还没有透露自己的身份。他这样做不仅是为了钱,也是为了名声。保持匿名其实是个例外,不是常态,他也没有做坏事。有一个非常重要的一点。当比特币项目走上正轨时,他消失了,他成功了。退休了,所以他现在还没有透露自己的身份。他这样做不仅是为了钱,也是为了名声。

向谁隐瞒你的身份?

如果你是一个普通人,不想让你身边的同事、亲戚朋友知道你有多少比特币,这就是我的隐私。以比特币现有的机制,在这个程度上保护你的隐私相对容易。

如果你是比特币用户,你能做些什么来最大化你的匿名性

在这里插入图片描述

前面提到,比特币协议实际上运行在应用层,底层是一个P2P Overlay Network,所以要提高匿名性,我们需要从两个方面入手。

在线的

在区块链出现之前,去一家网吧,在网上发个帖子。有没有什么办法让别人知道你是谁,因为去网吧需要身份证,他会注册,查你的IP地址,你就知道是谁干的了。,现实生活中的IP地址和身份是非常相关的,所以要在比特币中实现匿名,就需要在网络层实现匿名。当比特币交易在这个网络上发布时,如果网络不保证匿名性,如果很多节点发现交易是从同一个节点发出的,那么从这个节点的ip地址,我们就可以推断出他的真实身份是谁生活中,幸运的是,网络上的匿名性是比较容易解决的。在以往的研究中,有很多方法。区块链是一个新事物,但是网络层的匿名性,学术界有很好的解决方案,所以比较常见的就是多路径转发的方法,比如我们前面提到的洋葱路由,就这个TOR,怎么能让大家不知道这个是谁发的信息?这条消息不是由发送方直接发送给接收方,而是中间要经过很多跳。,多次转发,中间的每个节点只知道自己的前一个节点,中间的一些节点可能是坏的,但是只要这条路径上的一个节点是诚实的,原始发送者的身份就可以隐藏起来,这是洋葱路由的一个基本思路 你怎么能让每个人都不知道这个消息是谁发的?这条消息不是由发送方直接发送给接收方,而是中间要经过很多跳。,多次转发,中间的每个节点只知道自己的前一个节点,中间的一些节点可能是坏的,但是只要这条路径上的一个节点是诚实的,原始发送者的身份就可以隐藏起来,这是洋葱路由的一个基本思路 你怎么能让每个人都不知道这个消息是谁发的?这条消息不是由发送方直接发送给接收方,而是中间要经过很多跳。,多次转发,中间的每个节点只知道自己的前一个节点,中间的一些节点可能是坏的,但是只要这条路径上的一个节点是诚实的,原始发送者的身份就可以隐藏起来,这是洋葱路由的一个基本思路

应用层

破坏匿名性的原因是同一个人的比特币账户会被关联起来,因为区块链是一个公共账本,你花费的每一笔钱都可以追溯到它的来源。产生了哪笔铸币交易,然后这个币参与的每一笔交易都可以追溯,所以要起到匿名保护的作用,不同人的做法就是把不同人的币混在一起,叫做混币,有一些专门从事混币的网站,提供此项服务并收取一定的服务费。所有想做混币的人都将这些币发送到这些网站,然后网站重新整理这些币,然后这些人再次处理它们。现在,没有信誉度很高的混币服务,很多混币服务也是匿名的。如果你投入的硬币被这些人拿走,其实你也无能为力。在线钱包是很多人存钱的钱包,然后可以混合这些人的硬币。也许你现在拿回来的硬币不是最初存入的硬币。在线钱包本身具有混币功能。但是,在线钱包不保证执行混币功能。加密货币交易所通常具有硬币混合的性质。例如,如果我有一些比特币,我会将它们上传到交易所。再过一段时间,我认为比特币的价格会下跌,所以我会卖掉它们。出去,换成美金,过一会我买以太币,然后我可能会换成莱特币,折腾几下,我可能会买回比特币,然后把它放起来放进我里面。一般来说,我在本地拥有的比特币不是我最初存放的比特币。前提是交易所不会泄露相关记录,并选择出入金兑换的相关记录,否则,不接受暴露整个记录。

隐私难以保护的本质原因是区块链是公开的,不可篡改

零知识证明

零知识证明是当一方(证明者)向另一方(验证者)证明一个陈述是真实的,而不透露除该陈述真实之外的任何信息。

例子

比如我说某个比特币账户是我的,我想证明这个,怎么证明?

如果这个比特币账户是我的,说明我应该知道他的私钥,其实就是为了证明我知道他的私钥,但是我不能告诉你私钥,我该怎么办,但是我可以生成一个用这个私钥执行的签名,假设你知道账户的公钥,你可以验证签名的正确性。

在这个例子中:

证明人:我

验证人:你

证明声明:我知道这个账户的私钥

事实上,这作为零知识证明的一个例子仍然存在争议。虽然私钥没有泄露,但是用私钥生成的签名却泄露了。

同态隐藏

如果x和y不同,那么它们的加密函数值E(x)和E(y)也不同。

加密函数值 E 不会发生冲突。反之,如果两个加密函数值相等,那么原始输入也相等。

给定 E(x) 的值,很难推断出 x 的值。

说明加密函数是不可逆的

给定 E(x) 和 E(y) 的值,我们可以很容易地计算出一些关于 x,y 的密码函数值。

说明对这些加密后的函数值进行代数运算,相当于直接对这些输入进行代数运算,然后对它们进行加密

- 同态加法:通过E(x)和E(y)计算E(x+y)的值

——同态乘法:通过E(x)和E(y)计算E(xy)的值

—扩展到多项式

例子

Alice 想向 Bob 证明她知道一组数字 x 和 y 使得 x+y=7 而不让 Bob 知道 x 和 y 的确切值。

在这个例子中

证明者:爱丽丝

验证人:鲍勃

证明陈述:Alice 知道一组数字 x 和 y,使得 x+y=7

需要隐藏什么:x和y的具体值。

简单版

这个简单的版本有一个缺陷:Bob 可以使用蛮力算法将 x 和 y 的值一个一个地计算出来,所以 Alice 需要对 x 和 y 的值做一些随机化来保证 x 和 y加起来相同的值。变化。

在不考虑去中心化的前提下,正如我之前在谈到双花时提到的,需要对每一种数字货币进行编号,以防止双花。回到本课讨论的隐私保护问题,央行什么都知道,那么央行有没有办法在不让其知道的情况下进行集中记账检测双重支出呢?即虚拟货币的数量不能由央行生成,变为自生成,不会被篡改。

这里使用盲签名方法。

这种设计的好处是银行不知道B的硬币是从哪里来的。

硬币和硬币

比特币在很大程度上提供了匿名性,但并不能完全消除相关性,所以我们能不能设计一种新的加密货币,从结构设计一开始就由密码学原理保证匿名性,所以零币零纸币.

这是一种专门为匿名而设计的加密货币。

Zcoin有基础币(如比特币)和零币。使用时需要证明有基础币,使基础币不可消费,然后兑换零币。当零币被花掉时,你只需要用零知识来证明你所花的币在系统中是存在的。某种合法的硬币就可以了,但你不需要透露你在系统中花费的是哪个硬币。这是与比特币的本质区别,即每笔转账交易都必须注明货币来源。只有这样,我们才能证明所花硬币的真实性不是凭空捏造的。但零硬币和零纸币的情况并非如此。零币零纸币意味着数据可以保证你消费的币是之前区块链上的一些合法币,但你不知道哪些。在这种情况下,相关性就被破坏了,没有办法追踪它。

硬币没有基础货币,是完整的硬币。

零纸币和零币并不是100%匿名和安全的,在影响匿名安全的因素中还有一个因素是无法解决的,那就是与实体交互时。例如,当有人想用这些币做坏事时,当他们将大量的钱兑换成这种加密货币时,或者当他们将这些加密货币兑换成现金时,他们仍然必须暴露自己的身份。不管这些加密货币在数学上设计得多么好,他们只是说他们已经在区块链中进行了匿名转账,而与外界交互的匿名性仍然是一个弱点。所以它仍然不能提供 100% 的匿名性。