第6章:比特币和匿名

作者: Nutbox_Lab | 来源:发表于2017-11-28 14:03 被阅读0次

    “比特币是一种安全而匿名的数字货币”

    ——维基解密捐款页面

    “比特币不会把你从NSA的窥视中隐藏起来”

    ——连线英国

    比特币最有争议的事情之一就是它的匿名性。首先,比特币是匿名的吗?从上面相互矛盾的引用可以看出,这有些混乱。其次,我们想要一个真正匿名的加密货币吗?匿名的利弊,导致了一些基本的问题:匿名的加密机制有利于利益相关者吗?这对社会有好处吗?有没有办法隔离匿名的积极方面,同时消除负面部分?

    这些问题很难,因为它们部分取决于人的伦理价值观。本章我们不会回答,虽然我们将会对匿名的论据进行研究。大多数情况下,我们将坚持研究各种技术——一些已经存在于比特币和其他被提出加入的技术——旨在提高比特币的匿名性。我们还将看看具有与Bitcoin不同匿名属性的替代加密货币的提案。这些技术提出了新的问题:他们工作的有多好? 他们被采取有多么困难? 采用它们有什么折衷方案?

    6.1匿名性的基础

    定义匿名在我们可以正确地讨论(或在什么程度上)比特币是否匿名之前,我们需要定义匿名。我们必须明白我们口中的匿名是什么意思,以及匿名和类似术语之间的关系,如隐私。

    顾名思义,匿名的意思是“没有名字”。当我们尝试将此定义应用于比特币时,有两种可能的解释:在不使用真实姓名的情况下进行交互,或者在不使用任何名称的情况下进行交互。这两个解释导致了比特币是否是匿名的结论是非常不同的。比特币地址是公钥的哈希。你不需要使用你的真实姓名来与系统进行交互,但你将使用你的公共密钥哈希作为你的身份。因此,针对第一个解释,比特币是匿名的,因为你不使用你的真实姓名。但是,通过第二个解释,它不是;你使用的地址是伪身份。在计算机科学的语言中,使用的不是你的真实姓名的身份的这个中间地位称为假名。

    回想一下,你可以随意创建任意数量的Bitcoin地址。考虑到你可以创建尽可能多的这些假名,你可能会想知道Bitcoin地址是否真的是伪身份。我们将看到,这仍然不能使Bitcoin匿名。


    侧边栏。你可以从各种其他背景中熟悉匿名和纯假名之间的区别。一个很好的例子是在线论坛。在像Reddit这样的论坛上,你可以选择一个长期的假名,并在一段时间内用这个假名互动。你可以创建多个假名,甚至为每个评论创建一个新的,但这将是乏味和烦人的,大多数人都不会这样做。所以在Reddit上交互通常用的是假名,但不是很匿名。相比之下,4Chan是一个在线论坛,用户通常以匿名的方式发布——完全没有归因。


    在计算机科学中,匿名性是指假名与无关联性。无关联性是针对特定对手性能定义的属性。直观上,无关联性意味着如果用户反复与系统进行交互,这些不同的交互应该不能从对手的角度来看到彼此的联系。

    比特币使用的是假名,但如果你的目标是实现隐私,则假名是不够的。回想一下,区块链是公开的,任何人都可以查找涉及给定地址的所有比特币交易。如果有人能够将你的比特币地址与你的真实世界身份相关联,那么所有的交易(过去,现在和将来)都将与你的身份相关联。

    让事情更糟的是,将比特币地址与真实世界的身份联系起来往往很容易。如果你与比特币业务(无论是在线钱包服务,交易还是其他商业)互动,他们通常都会想要你现实生活中的身份,以便你与他们进行交易。例如,交易所可能需要你的信用卡详细信息,而商家将需要你的送货地址。

    或者你去咖啡店,用比特币支付。由于你本人在那,咖啡师知道你的身份,即使他们不要求你的真实姓名。你的物理身份也将因此绑定到你的一个Bitcoin交易上,使得所有涉及该地址的其他交易都可以链接到你。这显然不是匿名的。

    侧面通道。即使没有直接联系,你伪造的个人资料也可能由于侧面渠道或信息的间接泄露而使匿名性失效。例如,有人可能会看到一个匿名的比特币交易的配置文件,并在该用户处于活跃状态的当天注意到他。他们可以将此信息与其他公开信息相关联。也许他们会注意到一些Twitter用户在大致相同的时间间隔内是活跃的,从而创建匿名的比特币简档和真实世界身份(或至少一个Twitter身份)之间的链接。明确的假名不能保证隐私或匿名。要实现这些目标,我们需要更强的不相关性。

    无关联性。为了更好地了解比特币上下文的不可链接性,让我们列举Bitcoin活动不可链接所需的一些关键属性:

    1.很难将同一用户的不同地址链接在一起。

    2.很难将同一用户进行的不同交易链接在一起。

    3.很难将付款发送方连接到收件人。

    前两个属性是直观的,但第三个属性有点棘手。如果你将“付款”解释为比特币交易,则第三个属性显然是错误的。每个交易都有输入和输出,这些投入和产出必然会在区块链中并且公开连接在一起。然而,我们所说的付款方式并不是一个单一的比特币交易,而是任何具有将比特币从寄件人转移到接受者的效应。它可能涉及一个迂回的交易系列。我们想确保的是,通过查看区块链,链接发送方和付款的最终收件人是不可行的。

    匿名集。即使在我们广义的付款定义下,第三财产似乎也很难实现。假设你为一个产品支付了一定数量的比特币,并通过迂回的交易方式发送了该支付。看着区块链的人仍然可以推断出一些事实,即一定数量的比特币离开了一个地址,大致相同数量的比特币(可能减去交易费用)最终在其他地址出现。此外,尽管存在迂回的路线,初始发送和最终接收将发生在大致相同的时间段,因为商家将希望在没有太多延迟的情况下接收付款。

    由于这个困难,我们通常不会试图在系统中的所有可能的交易或地址之间实现完全的无关联,而是更有限的东西。给定一个特定的对手,你的交易的匿名集是一组交易集合,对手不能从你的交易中区别开来。即使对手知道你进行了一个交易,他们也只能告诉你这是集合中的一个交易,而不是它是哪一个。我们尝试最大化匿名集合的大小——可以隐藏其他地址或交易的集合。

    计算匿名集是棘手的。由于匿名集是针对某个对手或一组对手而定义的,因此你必须首先具体定义你对手的模式。你不得不认真对待对手知道什么,他们不知道什么,以及我们正在试图从对手中隐藏什么,也就是说,对手从交易中不知道的东西就被认为是匿名的。没有这样做的通用公式。它需要在个案的基础上仔细分析每个协议和系统。

    污点分析。在比特币社区,人们经常对匿名服务进行直观的分析,而不是严格的定义。污点分析特别受欢迎:它是一种计算两个地址“相关”的方式。如果由地址S发送的比特币总是在另一个地址R处,无论是直接地还是经过一些中间地址,则S和R将具有较高的污点分数。该公式涉及具有多个输入和/或输出的交易,并指定如何分配污点。

    不幸的是,污点分析并不是比特币匿名的一个很好的衡量标准。它隐含地假设对手正在使用相同的机械计算来链接地址对。一个稍微聪明的对手可能会使用其他技术,例如查看交易时间,甚至利用钱包软件的特性,我们将在本章后面看到。所以污点分析可能表明你在某种情况下有很高的匿名性,但实际上你可能不会。

    为什么我们需要匿名。看到匿名意味的意思后,让我们回答一些关于匿名的元问题,然后再进一步说明:为什么人们需要匿名?匿名货币的伦理含义是什么?

    在基于块链的货币中,所有交易都记录在分类帐上,这意味着它们被公开和永久地追溯到相关联的地址。所以你的比特币交易的隐私可能比传统的银行业务差得多。如果你在真实世界的身份与Bitcoin地址相关联,那么你将完全失去了与该地址相关联的所有交易(过去,现在和将来)的隐私。由于区块链是公开的,从字面上任何人都可以执行这种类型的脱离语言,甚至无需你意识到已被识别。

    考虑到这一点,我们可以确定使用匿名加密货币的两种不同动机。第一种是简单地实现我们已经习惯从传统银行开始的隐私水平,并减轻公有链带来的脱离风险。第二种是超越传统银行业的隐私级别,开发货币,使其技术上无法跟踪参与者。

    匿名伦理。我们认为传统货币理所当然地,有许多重要的(虽然经常被忽视)匿名的理由。大多数人不喜欢与他们的朋友和同事分享薪水。如果个体的地址在区块链中很容易被识别,并且他们通过比特币获得工资,那么通过寻找一个大的、定期每月支付就可以很容易地推断出他们的工资。组织也有重要的财务隐私问题。例如,如果一个视频游戏机制造商通过区块链支付给制造虚拟现实眼睛的分包商,则可能提示公众(及其竞争对手)他们正在准备推出新的产品。

    然而,人们有理由担心真正的匿名加密货币可以用于洗钱或其他非法活动。好消息是,尽管加密货币交易本身可能是匿名或匿名的,但是数字现金和法定货币之间的接口不是。事实上,这些流程受到高度监管,正如我们将在下一章中看到的那样。所以加密货币不是洗钱或其他金融犯罪的灵丹妙药。

    然而,人们可能会问:“难道我们不能以这样一种方式来设计技术,只有匿名的良好使用是允许的,而坏的用法是被禁止吗?”这实际上是对计算机安全和隐私研究人员的反复呼吁。不幸的是,它从来没有被证明是可能的。原因是我们以道德的角度来归类好或者坏在技术上是相同的。在比特币方面,我们不清楚我们如何能够对矿工做出关于哪些交易包含的道德决定。

    我们认为,通过使用匿名加密货币来保证其存在的潜在好处,我们应该将系统的技术匿名属性与我们在使用货币时所使用的法律原则进行分离。这不是一个完全令人满意的解决方案,但它也许是实现有利权衡的最佳途径。


    侧边栏:Tor。如何应对具有良好的和坏的用途的技术的道德困境并不是Bitcoin独有的。匿名的另一个系统是Tor,一个匿名的通信网络。

    一方面,Tor被希望保护自己免受在线追踪的普通人使用。它被记者、活动家和持不同政见者用来自由的说话,而不用担心受到压迫政权的影响。执法机构也会使用这些来监控嫌疑人,而不会透露他们的IP地址(毕竟,分配给不同组织,包括执法机构的IP地址范围或区块往往是众所周知的)。显然,Tor有很多应用可以在道德上得到批准。然而,它也有明显的坏用途:僵尸网络运营商使用它们来控制受感染机器,并用于分发儿童性虐待图像。

    在技术层面区分这些用途基本上是不可能的。Tor开发商和Tor社区广泛地解决了这个难题。真个社会也在某种程度上进行努力。我们似乎得出结论,总的来说,技术存在的世界更好。事实上,Tor项目的主要资金来自美国国务院。他们对Tor感兴趣,因为它可以在压迫政权中为异议人士在线免费发表言论。与此同时,执法机构似乎也勉强地接受了Tor的存在,并且开辟了解决方法。FBI经常设法破坏分发儿童性虐待图像的“黑网”网站,尽管这些网站隐藏在Tor之后。通常这是因为操作员跳起来了。我们必须记住,技术只是一种工具,犯罪者生活在现实世界中,在于技术相互作用的情况下,他们可能留下实际证据或犯下全部人都会犯下的人为错误。


    匿名化与权力下放。我们将在本章中看到一个反复出现的主题,即匿名化和权力下放的设计标准通常彼此冲突。如果你从序言中回忆起了Chaum的ecash,它在某种意义上实现了完美的匿名性,但要通过与中央机构——银行的交互式盲签名协议。你可以想象,这样的协议很难分散。其次,如果我们分散化,那么我们必须保持一些机制来跟踪交易并防止双重支付。这种公开的交易可追溯性是对匿名的威胁。

    在本章的后面,我们将看到匿名分散的加密货币Zerocoin和Zerocash,与Chaum的ecash有一些相似之处,但是由于这两个限制,它们必须解决棘手的加密挑战。

    6.2如何对比特币进行匿名化

    我们已经说过多次,比特币只是匿名的,所以你的所有交易或地址都可能会被链接在一起。我们来仔细看看实际可能发生的情况。

    图6.1显示了维基解密捐赠页面的一个片段(包括本章开头的引文)。注意捐赠地址旁边的刷新按钮。如你可能期望的,点击按钮将用新生成的地址替换捐赠地址。同样,如果你刷新页面或关闭它,并稍后访问它,它将有另一个从来没有见过的地址。那是因为维基解密希望确保他们收到的每一笔捐款都会发给他们创建的新公钥。维基解密正在利用创建新假名能力的最大优势。这实际上是Bitcoin钱包使用匿名的最佳做法。

    图6.1维基解密捐赠页面的片段。注意Bitcoin地址旁边的刷新图标。维基解密遵循Bitcoin最佳做法,为每次捐款生成新的接收地址。

    起初,你可能会认为这些不同的地址必须是无法链接的。维基解密分别收到每笔捐款,想必他们也可以分别支付这些捐款。但事情很快就崩溃了。

    链接。假设爱丽丝想买一个8比特币的茶壶(按2015年汇率计算,更可能是8厘比特币)。另外,假设她在不同的比特币地址分别有3、5和6三个独立的未使用的输出。爱丽丝实际上没有一个地址有8个比特币在那,所以她必须将她的两个输出作为输入组合成一个单一交易,付给商店。

    但这揭示了一些东西。交易永久记录在区块链中,任何看到它的人都可以推断出交易的两个输入最有可能在同一用户的控制之下。换句话说,共享支出是联合控制不同输入地址的证据。当然也可能有例外。也许爱丽丝和鲍勃是室友,并同意通过提供一个交易输入共同购买茶壶。但总的来说,联合投入意味着共同控制。

    图6.2为了支付茶壶,Alice必须创建一个具有两个不同地址的输入交易。一旦这样做,爱丽丝就透露了这两个地址是由一个实体控制的。

    但它不会就此止步。对手可以重复这个过程,并将整个交易集群连续地链接成属于一个实体。如果另一个地址以这种方式链接到Alice的任何一个地址,那么我们知道所有三个地址都属于同一个实体,我们可以使用这个观察集群地址。一般来说,如果新地址的输出与集群中任何地址的输出一起使用,则该新地址也可以添加到集群中。

    在本章的后面,我们将研究一种名为CoinJoin的匿名技术,它通过违背这一假设而起作用。但是现在,如果你假设人们常规使用的比特币钱包软件没有任何特殊的匿名技术,那么这种集群往往是非常强大的。我们还没有看到如何将这些集群与现实世界的身份联系起来,但我们很快就会得到。


    侧边栏:更改随机化地址。bitcoin-qt库的早期版本有一个错误,它始终将更改地址作为具有两个输出交易中的第一个输出。这意味着在许多交易中确定变更地址是微不足道的。这个错误在2012年修复,但突出了重要的一点:钱包软件在保护匿名方面发挥了重要的作用。如果你正在开发钱包软件,你应该注意到许多陷阱;特别是你应该随时选择更改地址的位置,以避免给对手太多的空间。


    回到我们的例子,假设茶壶的价格从8比特币上升到8.5比特币。爱丽丝不能再找到一套有效的未使用输出,她可以结合来产生茶壶所需的零钱。相反,爱丽丝利用了交易可以有多个输出的事实,如图6.3所示。其中一个输出是商店的付款地址,另一个是她自己拥有的“更改”地址。

    现在从对手的角度来考虑这个交易。他们可以推断出两个输入地址属于同一用户。他们可能会怀疑其中一个输出地址也属于该用户,但无法确定哪一个是。0.5输出较小的事实并不意味着这是变更地址。爱丽丝可能会有在交易中有一万个比特币,她可能在茶壶上花8.5比特币,并将剩余的9,991.5比特币送回自己身边。在这种情况下,更大的输出实际上是改变地址。

    图6.3:更改地址。为了支付茶壶,爱丽丝必须创建一个交易,一个输出到商家,另一个输出发回到自己。

    一个更好的猜测是,如果茶壶的成本只有0.5比特币,那么爱丽丝就不必用两个不同的输入创建一个交易,因为3个比特币输入或6个比特币输入本身已经足够了。但这种启发式的有效性完全取决于常用钱包软件的实现细节。即使没有严格的必要条件,也不会阻止钱包(或用户)组合交易。

    惯用语。这种实现细节被称为“使用习语”。2013年,一组研究人员发现大多数钱包软件都是一种习惯用语,并且导致了一种强大的启发式来识别变更地址。具体来说,他们发现,每当需要更改地址时,钱包通常会生成一个新的地址。由于使用习惯用语,更改地址通常是从未出现在区块链中的地址。另一方面,非变化输出通常不是新的地址,并且可能以前在区块链中出现过。对手可以使用这些知识来区分更改地址并将其与输入地址相链接。

    利用习语可能会很容易出错。事实上,更改地址是新鲜的地址,恰好是钱包软件的一个功能。研究人员在2013年测试时确实如此。也许这是真的,但也许不是。用户可以选择废除此默认行为。最重要的是,知道这种技术的对手很容易规避它。即使在2013年,研究人员发现它产生了很多假阳性,他们最终把不属于同一实体的地址集中在一起。他们报告说,他们需要进行重大的手工监督和干预,以消除假阳性。

    图6.4:地址的聚类。在2013年的一篇“一群比特币:表征男性无名称付款”的论文中,研究人员将共享消费启发式和新鲜变化地址启发式组合到集群比特币地址。这些圆圈的大小代表流入这些集群的货币数量,每个边缘代表一笔交易。

    将现实世界的身份附加到集群中。在图6.4中。我们看到Meiklejohn等人如何使用用作启发式的基本习语的集群比特币地址。但图形没有标注——我们还没有附加身份到集群。

    我们可能会根据对比特币经济的了解,做出一些有根据的猜测。早在2013年,Mt. Gox是最大的比特币交易所,所以我们可能会猜到,大的紫色圆圈代表了他们所控制的地址。我们也可能会注意到,尽管拥有最多的交易数量,但是Bitcoins中左侧的棕色集群的数量很小。这适合赌博服务Satoshi骰子的模式,这是一个流行的游戏,你发送少量的比特币作为下注。总的来说,这不是识别集群的好方法。它需要知识和猜测,且只能为最突出的服务工作。

    通过交易标记。只访问每个交易所或商家的网站,并查找他们为接收比特币做广告的地址会怎么样?然而,这并不奏效,因为大多数服务将为每个交易发布一个新的地址,并且向你展示的地址尚未在区块链中。这没有任何等待的意义,因为这个地址永远不会展示给其他人。

    推断地址的唯一可靠的方法是与该服务提供商实际交易——存放比特币,购买物品等。当你向服务提供商发送比特币或从服务提供商接收比特币时,你现在将知道其中的一个地址,这些地址将很快在区块链(以及其中一个群集)中结束。然后,你可以使用服务提供商的身份标记整个集群。

    这正式“一群比特币”的研究人员(和其他人)完成的。他们购买了各种各样的东西,加入采矿池,使用比特币交易所,钱包服务和赌博网站,并以各种其他方式与服务提供商进行互动,折中了344笔交易。

    在图6.5中,我们再次显示了图6.4的集群,但是这次与标签相连。虽然我们对Mt. gox和Satoshi骰子的猜测是正确的,研究人员能够识别许多其他服务提供商,但不与这些服务提供商交易将很难识别他们。

    图6.5。标签集群。通过与各种Bitcoin服务提供商进行交易,Meiklejohn等人 能够将真实世界的身份附加到他们的集群中。

    识别个人。下一个问题是:我们可以为个人做同样的事情吗?也就是说,我们可以将对应于个人的小集群连接到他们的现实身份吗?

    直接交易。任何与个人交易的人——在线或离线商家,交换,或使用Bitcoin分享晚餐帐单的朋友——至少知道一个属于他们的地址。

    通过服务提供商。在几个月或几年内使用比特币的过程中,大多数用户将最终与交易所或另一个集中式服务提供商进行互动。这些服务通常要求提供者向用户询问他们的身份——通常他们在法律上需要,我们将在下一章中看到。如果执法机构想要识别用户,他们可以转向这些服务提供商。

    疏忽。人们经常在公共论坛上发布他们的比特币地址。一个常见的原因是被要求捐赠。当有人这样做时,它会创建他们的身份和他们的地址之间的链接。如果他们不使用我们将在以下部分中看到的匿名服务,那么他们有可能使所有的交易脱离匿名。

    事情变得越来越糟。历史表明,随着越来越多的研究人员研究问题并发现新的攻击技术,数据可公开获得,去匿名算法通常会随着时间的推移而改善。此外,攻击者可以使用更多的辅助信息来将身份附加到集群。如果你关心隐私,这是值得担心的。

    迄今为止,我们所研究的去匿名技术都是基于分析区块链中交易的图形。它们统称为交易图分析。

    网络层去匿名。有一种完全不同的方式,用户可以不依赖于交易图去匿名。回想一下,为了将交易发布到区块链,一个通常将其广播到Bitcoin的对等网络,其中发送的消息不一定永久地记录在区块链中。

    在网络术语中,区块链被称为应用层,对等网络是网络层。Dan Kaminsky在2011年黑帽会议上首次指出了网络层去匿名。他注意到,当节点创建一个交易时,它同时连接到许多节点并广播交易。如果网络上足够多的节点相互勾结(或由同一对手运行),则他们可以计算出第一个节点来广播任何交易。想必,这将是创建交易的用户运行的节点。然后对手可以将交易链接到节点的IP地址。一个IP地址接近真实身份;有很多方法可以尝试使IP地址后面的人员露出真相。因此,网络层去匿名是隐私的严重问题。

    图6.6:网络层去匿名。正如丹·卡明斯基在2011年黑帽谈话中指出的那样,“通知你一个交易的第一个节点可能是它的源头”。当多个节点合作并识别相同的源时,该启发式被放大。

    幸运的是,这是通信匿名的一个问题,这已经成为相当大的研究课题。正如我们在6.1节早些时候看到的,有一个广泛部署的名为Tor的系统,可用于匿名通信。

    使用Tor作为比特币的网络层匿名解决方案有几个注意事项。首先,Tor协议和覆盖在其上的任何协议之间存在微妙的交互,导致新的方式来破译匿名。事实上,研究人员发现使用Bitcoin-over-Tor的潜在安全问题,所以这一点必须特别小心。其次,可能还有其他匿名通信技术更适合在比特币中使用。Tor的目的是用于“低延迟”活动,如网络浏览,您不想坐在等待太久。它做了一些妥协,以达到低延迟实现匿名。相比之下,比特币是一种高延迟系统,因为交易需要一段时间才能在区块链中得到确认。在理论上,至少,你可能希望使用一种替代的匿名技术,例如混合网络,但目前,Tor具有大量用户群,并且其安全性被深入研究的实际系统的优点。

    到目前为止,我们已经看到,不同的地址可能会通过交易图分析联系在一起,并且它们也可以链接到真实世界的身份。我们也看到一个交易或地址可以链接到基于对等网络的IP地址。后一个问题比较容易解决,即使不能完全解决。前一个问题更棘手,我们将在本章的其余部分讨论如何解决这个问题。

    6.3混合

    有几种机制可以使交易图的分析效率降低。一种这样的技术是混合,其背后的直觉非常简单:如果你想匿名,使用中介。这个原理并不是比特币特有的,在许多以匿名为目标的情况下都是有用的。混合如图6.7所示。

    图6.7:混合。用户向中介人发送硬币,并拿回其他用户存放的硬币。这使得难以在区块链上追踪用户的硬币。

    在线钱包混合。如果你回想起我们在线钱包的讨论,他们可能似乎适合作为中介。在线钱包是你可以在线存储你的比特币的服务,稍后将其退回。通常,你提取的硬币将不会与你存入的硬币相同。在线钱包是否提供有效的混合?

    在线钱包确实提供了一种无关联性的措施,可以掩盖交易图分析的尝试——在一种情况下,杰出的研究人员不得不收回已经收到的大量公开的索赔,因为他们认为他们发现的链接是由一个在线钱包造成的虚假链接。

    另一方面,使用在线钱包进行混合有几个重要的限制。首先,大多数在线钱包实际上不承诺混合用户的资金;相反,他们这样做是因为它简化了工程。你不能保证他们不会改变他们的行为。第二,即使他们混合资金,他们几乎肯定会在内部保存记录,这样他们就可以将你的存款与你的退款挂钩。由于安全和合法合规的原因,这是一个谨慎的钱包服务选择。因此,如果你的威胁模式包括服务提供商本身跟踪你或被黑客入侵或被迫交出记录的可能性,那么你将回到原点。第三,除了在内部保存记录之外,信誉良好和受监管的服务还将要求记录你的身份(我们将在下一章中更详细地讨论监管)。你将无法用用户名和密码创建帐户。所以在某种意义上说,它使你比不使用钱包服务更糟糕。这就是为什么我们在上一节中提到中央集权和匿名之间的紧张关系。

    在线钱包提供的匿名性与传统银行系统所提供的类似。有集中的中间人了解我们的交易,但是从一个没有特权信息的陌生人的角度来看,我们有一个合理程度的隐私。但是正如我们所讨论的那样,块链的公共性质意味着如果出现问题(比如钱包或交换服务遭到黑客攻击,记录被暴露出来),隐私风险就会比传统的系统更严重。此外,大多数以比特币匿名的人倾向于这样做,因为他们不满意传统系统的匿名属性,并希望有更好的(或不同种类的)匿名保证。这些是专门的混合服务背后的动机。

    专用混合服务。与在线钱包形成鲜明对比的是,专门的混合承诺不保留记录,也不需要你的身份。你甚至不需要使用用户名或其他化名来与混合进行交互。你把你的比特币发送到混合提供的一个地址,你告诉混合目的地地址来发送比特币。希望混合将很快发送你的(其他)比特币在你指定的地址。它本质上是一个互换。

    虽然专门的混合承诺不保留记录是件好事,但你仍然不得不相信他们履行承诺。你不得不相信他们会把你的硬币意义送回来。由于混合不是存储你比特币的地方,与钱包不同,你需要相对快速地恢复你的硬币,这意味着你的其他硬币池与你即将混合的存款将小得多——那些存放在大致相同的时间。


    侧边栏:术语。在本书中,我们将使用术语“混合”来代指专用混合服务。一些人喜欢的等同词是混合器。

    你也可能会遇到洗礼一词。我们不喜欢这个术语,因为不必要将道德判断附加在一个纯技术概念上。如我们所见,有很好的理由解释为什么你可能想保护你在比特币中的隐私,并在日常隐私中使用混合。当然,我们也必须承认有不良用途,但是使用洗礼术语可以促进消极的内涵,就像它意味着你的硬币时脏的,你需要清理它们。

    还有一个翻滚术语。不清楚这是指滚筒的混合作用还是其清洁效果(在宝石等上)。无论如何,我们将坚持“混合”一词。


    一组研究人员,包括本教科书的五位作者中的四位,研究了混合物,并提出了一套改进混合方式运行的原则,无论是增加匿名性上,还是委托你的硬币给混合物的安全性上。我们将看看这些准则。

    使用一系列混合物。第一个原则是一个接一个地使用一系列混合,而不是单一的混合。这是一个众所周知和公认不错的原则——例如,Tor,我们将稍后看到,使用一系列3路由器进行匿名通信。这减少了对任何单一组合可信赖性依赖。只要系列中的任何一个混合物都保持其承诺并删除其记录,你就有理由期望没有人能够将你的第一个输入链接到你收到的最终输出。

    图6.8.混合系列。我们从拥有一个硬币或输入地址的用户开始,我们假定对手已经设法链接到它们。用户通过各种混合发送硬币,每次提供新产生的输出地址到混合。只要这些混合物中至少有一个破坏了其输入到输出地址映射的记录,并且没有信息的侧信道泄漏,则攻击者将无法将用户的原始硬币连接到最终的硬币。

    统一交易。如果不同用户的混合交易具有不同数量的比特币,则混合不会很有效。由于进入混合和混合出来的值不得不被保留,它将使用户的硬币在流过混合时链接,或者至少大大减少匿名集的大小。

    相反,我们希望混合交易具有统一的价值,以便最小化可链接性。所有混合均应符合标准块大小,即输入混合交易必须具有固定值。这将增加匿名集,因为所有通过任何混合的交易将看起来相同,并且不会根据其价值区分。此外,在所有混合上具有统一的尺寸,可以轻松地使用一系列混合而不必拆分或合并交易。

    实际上,很难就单个块大小对所有用户的工作达成一致。如果我们选择它太大,想要混合少量钱的用户将无法实现。但是,如果我们选择它太小,那么想要混合大量资金的用户将需要将其分成大量的块,这可能是无效率的和成本高昂的。多个标准块大小会提高性能,但也可以通过块大小拆分匿名集。也许一系列的两个或三个增加的块大小,将提供一个合理的效率和隐私之间的权衡。

    客户端应自动化。除了尝试基于交易价值链接硬币之外,一个聪明的对手可以尝试各种其他方式进行匿名化,例如通过观察交易的时间。这些攻击可以避免,但是对于用户而言,必要的预防措施太复杂和繁琐。相反,用于与混合进行交互的客户端功能应该是自动化的,并且内置在隐私友好的钱包软件中。

    费用应该是全有或全无。混合是企业,并希望得到报酬。混合收费的一种方式是对用户发送的每笔交易进行削减。但这对于匿名是有问题的,因为混合交易不再是标准的块大小。(如果用户尝试将稍微更小的块拆分并合并回原始块大小,则会引入了严重且难以分析的匿名风险,因为引入的硬币之间有新的联系。)


    不要混淆混合费用和矿工收取的交易费用。混合费用与此类费用是分开的。


    为了避免这个问题,混合费用应该是全有或者全无,并且概率地应用。换句话说,混合应该以很小的概率吞下整个块,或者将其全部返回。例如,如果混合要收取0.1%的混合费用,那么每1000次混合中的一次就可以吞下整个组块,而1,000个组合中的999次应该返回整个组块而不收取混合费用。

    这是一个棘手的事情。混合必须做出概率决定,并说服用户它没有作弊:它没有偏倚其随机数发生器,因此它(例如)以1%的概率保留块作为费用,而不是0.1%。密码学提供了一种方法,我们将在进一步阅读部分中介绍Mixcoin论文的详细信息。文中还谈到混合可以提高其可信度的各种方式。

    在实践中混合。截至2015年,没有一个功能齐全的混合生态系统。有很多混合服务,但是它们的体积很小,因而具有很小的匿名集。更糟糕的是,据报道,许多混合被报告过偷盗比特币。也许“引导”这样一个生态系统的困难是它从来没有进展的原因之一。考虑到混合的欺诈性声誉,没有多少人想要使用它们,导致交易量低,因此匿名性差。有一个古老的说法,匿名爱公司。也就是说,使用匿名服务的人越多,它就可以提供更好的匿名性。此外,由于缺乏提供广告服务的资金,混合运营商可能会试图窃取资金,从而延续不可信度的混合循环。

    今天的混合不符合我们制定的任何原则。每个混合操作独立并且通常提供web界面,用户通过该界面手动地交互以指定接收地址和任何其他必要的参数。用户可以选择他们想要混合的量。 该混合将以每笔交易的方式将其作为混合费用,并将其余费用发送到目的地址。

    我们认为混合(和钱包软件)有必要移动到我们提出的模型,以实现强大的匿名性,抵御聪明的攻击,提供可用的界面,并吸引大量声音。但是,如果一个强大的混合生态系统将不断发展,还有待观察。

    6.4分散混合

    分散混合是摆脱混合服务,并用一组用户可以混合其硬币的对等协议替换它们的想法。可以想象,这种方法与比特币相比更符合哲学原则。

    权力下放也具有更多的实际优势。首先,它没有引导问题:用户不必等到有信誉的集中式混合才能存在。第二,在分散混合中盗窃是不可能的;协议确保当你将比特币混合时,你将得到相同价值的比特币。正因为如此,即使一些中央协作在分散混合中是有帮助的,所以人们更容易建立这样的服务,因为他们不必说服用户信任他人。最后,在某些方面,分散混合可以提供更好的匿名性。

    Coinjoin。分散混合的主要方案称为Coinjoin。在这个协议中,不同的用户共同创建一个组合它们所有输入的比特币交易。使Coinjoin工作的关键技术原则是:当一个事务具有来自不同地址的多个输入时,对应于每个输入的签名彼此分离并且彼此独立。所以这些不同的地址可以由不同的人控制。你不需要一方收集所有私钥。

    图6.9.Coinjoin交易

    这允许一组用户将他们的硬币与单个交易混合。每个用户提供输入和输出地址并且一起形成这些地址的交易。输入和输出地址的顺序是随机的,因此局外人将无法确定输入和输出之间的映射。参与者检查他们的输出地址是否包含在交易中,并且它收到与他们输入的相同数量的比特币(减去任何交易费用)。一旦他们确认了这一点,他们签署交易。

    有人在区块链上看这个交易——即使他们知道它是一个Coinjoin交易——将无法确定输入和输出之间的映射。从局外人的角度来说,硬币是混合的,这是Coinjoin的精髓。

    到目前为止,我们所描述的只是一轮混合。但我们之前讨论的原则仍然适用。你想和不同的用户组重复这个过程(大概是)。你还需要确保标准化的块尺寸,以便不要引入任何侧面通道。

    我们现在深入了解Coinjoin的细节,可以分为5个步骤:

    1.寻找想要混合的对等体。

    2.交换输入/输出地址。

    3.构建交易。

    4.发送交易。每个对等体在验证其输出之后进行标志。

    5.广播交易。

    寻找对等体。首先,一群想要混合的对等体需要找到对方。这可以通过作为“浇水孔”的服务器来促成,从而允许用户连接和分组在一起。与集中混合不同,这些服务器无法窃取用户资金或泄露匿名资料。

    交换地址。一旦对等体组合已经形成,对等体必须彼此交换他们的输入和输出地址。参与者以这样一种方式交换这些地址非常重要,即使对等组的其他成员也不知道输入和输出地址之间的映射。否则,即使你执行的是一个随机的对等体组合的coinjoin交易,一个对手也许可以将它们移入组中,并注意输入到输出的映射。以不可链接的方式交换地址,我们需要一个匿名通信协议。我们可以使用我们前面提到的Tor网络,或者称为解密混合网络的专用匿名路由协议。

    收集签名和拒绝服务。一旦输入和输出被传达,其中一个用户——不管是谁——将构建与这些输入和输出相对应的交易。未签名的交易将被传递;每个对等体将验证其输入和输出地址是否正确且包含签名。

    如果所有的对等体遵循这个协议,这个系统运行良好。任何对等体可以组合交易,任何对等体可以将该交易广播到网络。他们中的两个人甚至可以独立广播;当然,它将只发布一次到区块链。但是,如果一个或多个对等体想要破坏性,那么他们很容易发起拒绝服务攻击,从而阻止协议的完成。

    特别的,对等体可以参与协议的第一阶段,提供其输入和输出地址,然后拒绝登录第二阶段。另外,在签署交易之后,一个破坏性的对等体可以尝试将其提供给它的对等体的输入,并将其花费在其他交易中。如果备用交易在网络上赢得比赛,它将首先被确认,Coinjoin交易将被作为双重支付拒绝。

    在Coinjoin中,有几项预防拒绝服务的建议。一个是通过工作证明(类似于采矿)或通过燃烧证明来强加协议的参与成本,一种用来证明破坏你拥有的少量比特币的技术,我们在第3章中研究过。另外,存在用于识别不合规参与者并将其从群组中踢出的加密方式。有关详细信息,请参阅进一步阅读部分。

    高层次流动。我们较早提到了侧通道。现在我们来仔细看看侧通道有多巧妙(棘手)。让我们说,爱丽丝收到一个特定数量的比特币,比如说43.12312

    BTC,每周一个特定的地址,也许是她的薪水。假设她有一个习惯,自动将5%的金额转入退休账户,这是另一个比特币地址。我们称这种传输模式为高层次流程。在这个场景中,没有混合策略可以有效地隐藏这两个地址之间存在关系的事实。想一想在这个区块链上可以看到的模式:具体的数量和时间及不可能地偶然发生了。

    图6.10:合并回避。爱丽丝希望买一个价值8比特币的茶壶。商店给她两个地址,她支付5个到一个地址,3个到另一个地址,与她可用的输入资金相匹配。这样可以防止透露这两个地址都属于爱丽丝。

    Bitcoin开发人员Mike Hearn提出一种技术,可以帮助恢复在高层次流动性存在的情况下重新获得无关联性,称为合并回避。一般而言,为了进行付款,用户创建一个单独的交易,它将所需的硬币组合在一起,以将整个金额支付给单个地址。如果他们可以避免合并的需求,从而连接所有的输入呢?合并回避协议通过允许接收方付款提供多个输出地址(根据需要)来实现这一点。发送者和接受者同意一组面值,来将付款分解,并执行多个交易,如图6.10所示。

    假设商店最终将这两笔付款与它收到的其他付款的许多其他输入相结合,那么这两个地址彼此关联就不那么明显了。商店应避免在收到这两个输入之后重新组合,否则它们由同一实体制造的将仍然是清楚的。此外,爱丽丝可能希望避免在同一时间发送两笔付款,这可能会同样揭示这些信息。

    一般来说,合并回避可以帮助缓解高层次流动的问题:如果它被分解成许多较小的彼此没有链接的流动,对手可能无法辨别流流动。它还克服了依赖于单个交易共同使用硬币的地址聚类技术。

    6.5 Zerocoin和Zerocash

    没有哪个加密货币的匿名解决方案引起了如Zerocoin一样的兴奋和如Zerocash一样的成功。这既是因为他们使用的巧妙密码学,也是因为他们所承诺的强大匿名性。尽管我们迄今为止所见到的所有匿名增强技术在核心协议之上增加了匿名性,但是Zerocoin和Zerocash在协议级别都包含匿名性。我们将在这里介绍协议的高级视图,并且简化一些细节,你也可以在“进一步阅读”部分找到对原始论文的参考。

    兼容性。正如我们将看到的,Zerocoin和Zerocash的强大匿名保证是有代价的:与集中混合和Coinjoin不同,现在这些协议与Bitcoin不兼容。在技术上,可以使用软叉将Zerocoin部署到比特币,但是实际的困难足够严重,使得这不可行。对于Zerocash,分叉甚至是不可能的,而altcoin是唯一的选择。

    加密保证。Zerocoin和Zerocash包含了协议级的混合,它的匿名属性具有加密保证。这些保证在质量上优于我们讨论的其他混合技术。你不需要信任任何人——混合体,对等体或中间人,甚至是矿工和协商一致的协议——以确保你的隐私。匿名的承诺只取决于对手的计算能力限制,与大多数加密保证一样。

    Zerocoin。为了解释Zerocoin,我们将首先介绍Basecoin的概念。Basecoin是比特币式的altcoin,而Zerocoin是这种altcoin的延伸。提供匿名性的关键功能是,你可以将basecoin转化为Zerocoins并重新回收,当您这样做时,它会打破原始basecoin和新的basecoin之间的联系。在这个系统中,Basecoin是你所处理的货币,Zerocoin只是提供一种机制来交易你的新basecoin,而与旧的不相关。

    你可以查看你拥有的每个zerocoin,作为一个令牌你可以使用它来证明你拥有一个basecoin,并使其无法使用。证明并不揭示你拥有哪个basecoin,只是说明你拥有一个basecoin。你可以稍后通过向矿工提供此证明来兑换新的basecoin。一个比喻是就像进入一个赌场,并将你的现金交换成扑克筹码。这些服务作为你存入现金的证明,你可以随后在退出赌场时兑换相同价值的不同现金。当然,与扑克筹码不同的是,除了持有它,你不可能做任何事情,除了保留它,然后就只能将它兑换为一个basecoin。

    为了使这个工作以加密的方式运行,我们用密码学的方式实现这些证明。我们需要确保每次证明只能使用一次来赎回basecoin。否则,你可以通过将basecoin转化为zerocoin,然后多次赎回来免费获得basecoins。

    零知识证明。我们将使用的关键加密工具是一种零知识证明,这是一种方法,可以让某人证明(数学)语句,而不会透露导致该声明成立的任何其他信息。例如,假设你已经做了很多工作来解决哈希谜题,并且你想要说服某人也这样做。换句话说,你想证明这个说法。

    当然,你可以通过揭示x来做到这一点。 但是,零知识证明可以让您以这样一种方式来做到这一点:另一个人在看到证明之后,对于x的价值并不比以前更清楚。

    你也可以证明一个声明,如“我知道x,使得H(x)属于以下集合{...}”。该证明将不会显示x,也不会显示该集合的哪个元素等于H(x)。Zerocoin至关重要地依赖于零知识证明,事实上Zerocoin证明的陈述与后一个例子非常相似。在这本书中,我们将把零知识证明视为黑盒子。我们将介绍通过零知识证明实现的属性,并会显示他们在协议中是如何的必要,但是我们不会深入研究这些证明实现的技术细节。零知识证明是现代密码学的基石,也是许多协议的基础。再次,如读者你有兴趣可查看进一步阅读部分,以获得更详细的处理。

    铸造Zerocoins。Zerocoins通过铸造而存在,任何人都可以铸造Zerocoins。他们有标准的面额。为了简单起见,我们假定只有一个价值为1.0的zerocoins,而且每个zerocoin都值一个basecoin。虽然任何人都可以铸造zerocoin,只是铸造不会自动赋予它任何价值——你不能得到免费的钱。只有当你把它放在区块链上才能获得价值,这样做就需要放弃一个basecoin。

    要铸造zerocoin,你要使用加密承诺。回顾一下第1章,承诺方案是将信封中的价值密封并将其放在桌子上的加密模拟。

    图6.11:提交序列号。加密承诺的真实世界模型是在信封内密封一个值。

    铸造一个zerocoin分三个步骤完成:

    1.生成序列号S和随机密码r

    2.计算并提交(S,r),对序列号进行承诺

    3.将承诺发布到区块链上,如6.12所示。这会烧伤一个basecoin,使其无法使用,并创造出一个zerocoin。现在对S和r保密。

    图6.12:把一个zerocoin放在区块链上。要将一个zerocoin放在区块链上,你需要创建一个特殊“造币厂”交易,其输出“地址”是zerocoin序列号的加密承诺。造币厂交易的输入是一个basecoin,已经在创造zerocoin中花费掉。这个交易不显示序列号。

    要花费一个zerocoin兵兑换一个新的basecoin,你需要证明你以前铸造了一个zerocoin。你可以通过打开你以前的承诺,即揭示S和r来做到这一点。但是,这使得你的旧basecoin和新的basecoin之间的联系显而易见。 我们如何打破链接?

    这就是零知识证明的来源。在任何时候,块链上都会有很多的承诺-让我们称之为c,c,...,c。

    以下是使用带序列号S的zerocoin赎回一个新的basecoin的步骤:

    ·创建一个包含S的特殊“支出”交易,以及零知识证明的声明:

    "I know r such that C ommit (S, r) is in the set {c, c,..., c}".

    ·矿工将验证你的零知识证明,确定你是否有能力在区块链上开启一个

    zerocoin承诺,而无需实际打开它。

    ·矿工还将检查序列号S从未在任何以前的支出交易中使用(因为这将是双

    重支出)。

    ·你的支出交易的输出现在将作为一个新的basecoin。对于输出地址,你应该使用一个你拥有的地址。

    图6.13:花费一个zerocoin。支出交易显示了早起造币厂交易提交的序列号S,以及S对应的一些较早的造币厂交易的零知识证明。与造币厂交易(或正常的比特币/basecoin交易)不同,支出交易没有投入,因此没有签名。相反,零知识证明可以确定其有效性。

    一旦你花了一个zerocoin,序列号将变成公开的,你将永远无法再次兑换这个序列号。由于每个zerocoin只有一个序列号,这意味着每个zerocoin只能花费一次,正如我们所要求的那样安全。

    匿名。注意到r在整个过程中保持秘密;造币厂和消费交易都不会显露出来。这意味着没有人知道哪个序列号对应于哪个zerocoin。这是Zerocoin匿名的关键概念。在提交序列号S的造币厂交易和后来显示S兑换basecoin的支出交易之间的区块链上没有链接。这是一个可以通过加密技术实现的神奇属性,但是我们不会进入一个物理的,基于信封的系统。就好像在桌子上有一堆具有不同序列号的密封信封,你可以证明一个特定的序列号是其中之一,而不必揭示哪一个,也不必打开任何信封。

    效率。回顾在支出交易中证明的陈述:

    "Iknow r such that Commit (S, r) is in the set {c, c, ..., c}".

    这听起来像执行效率太低,因为零知识证明的大小会随着n的增加而线性增长,这是曾经被铸造zerocoins的数量。值得注意的是,Zerocoin设法使这些证明的大小为n的对数。注意,即使要证明的语句有一个线性长度,但也不需要连同证明一起包含。声明是隐含的;这可以由矿工推断出来,因为他们知道区块链上的所有zerocoins的集合。证明本身可以更短。然而,与比特币相比,Zerocoin仍然增加了相当可观的开销,其证明大小有50 kB。

    信任的建立。用于构建Zerocoin(RSA累加器)的加密工具之一,需要一次性的信任建立。具体来说,可信方需要选择两个大素数p和q,并发布N = p·q,这是每个人将在系统的使用寿命期间使用的参数。想像N像一个公钥,除了所有的Zerocoin,而不是一个特定的实体。只要信任方破坏了p和q的任何记录,系统就被认为是安全的。特别地,这取决于广泛认可的假设,即将数字分解为两个大素数的乘积是不可行的。但是如果有人知道p和q的秘密因素(称为“陷门”),那么他们可以为自己创建新的zerocoins而不被检测到。因此,这些秘密输入必须在生成公共参数时使用一次,然后被安全地销毁。

    这里有一个有趣的社会学问题。不清楚实体如何选择N并说服大家他们已经安全地销毁了在设置过程中使用的因素p和q。已经有了各种各样的建议去探索如何实现这一点,包括允许一组代表联合计算N的这种“阈值加密技术”,只要它们中的任何一个删除其秘密输入,系统将保持安全。

    也可以使用稍微不同的加密结构来避免可信设置。具体地说,已经表明,简单地生成非常大的随机值N是高可靠性的,因为这个数量可能不能被完全考虑。不幸的是,这带来了巨大的效率打击,因此不被认为是实际的。

    Zerocash。Zerocash是一种基于Zerocoin概念的不同的匿名加密机制,但将加密技术提升到了一个新的水平。它使用称为零知识SNARK(zk-SNARKS)的加密技术,这是一种使零知识证明更加紧凑和高效验证的方式。结果是,整个系统的效率达到了一个可以在不需要一个basecoin的情况下运行整个网络的程度。所有交易都可以以零知识的方式完成。正如我们所看到的,Zerocoin支持常规事务,当你不需要非连接性时,增加了仅用于混合的计算上昂贵的交易。混合交易是固定面额,价值的分割和合并只能在Basecoin发生。在Zerocash中,这个区别已经消失了。交易金额现在在承诺的范围内,且在区块链上不再可见。加密证明确保分裂和合并正确发生,用户不能凭空创建zerocash。

    分类帐公开记录的唯一事项是这些交易的存在,以及允许矿工验证系统正确运行所需的所有属性的证据。在任何一点上,区块链都不会显示地址和值。需要知道交易金额的唯一用户是该特定交易的发件人和接收者。矿工不需要知道交易金额。当然,如果有交易费用,矿工们需要知道这笔费用,但这并不真正影响你的匿名性。

    在匿名和隐私方面,zerocash作为一个完全不可追踪的交易系统的运行能力,它独自归类。由于公共分类帐不再包含交易金额,Zerocash不受侧面渠道的混合攻击。

    创建Zerocash。在其技术性能方面,Zerocash听起来可能太好了,而显得不真实。确实有一个陷阱。就像Zerocoin一样,Zerocash需要“公共参数”来建立零知识证明系统。但是,与Zerocoin不同,Zeroco只需要一个数字N,只有几百个字节,Zerocash需要一大堆公共参数——超过一千兆字节。再次,为了产生这些公共参数,Zerocash需要随机和秘密的输入,如果有人知道这些秘密输入,它会通过启用不可检测的双重支付来破坏系统的安全性。

    我们不会在这里深入研究建立zk-SNARK系统的挑战。 它仍然是一个积极的研究领域,但截至2015年,我们并不知道如何以充分可靠的方式在实践中建立该系统。迄今为止,zk-SNARKs在实践中还没有被使用。

    把它们放在一起。现在我们来比较我们已经看到的解决方案,无论是在他们提供的匿名性质方面,还是在实践中如何部署它们。

    表6.14:本章中介绍的匿名技术比较

    我们从已经部署的Bitcoin本身开始,是“默认”系统。但它只是匿名,我们已经看到强大的交易图分析是可能的。我们研究了大量分组地址族群的方法,以及如何有时将真实身份标识附加到这些集群。

    匿名的下一个级别是以手动方式使用单个组合,或者通过手动查找对等体来执行Coinjoin。这掩盖了输入和输出之间的链接,但在交易图中留下了太多潜在的线索。此外,组合体和同伴可能会恶意,被黑客入侵或强制暴露其记录。虽然在匿名方面还不完美,但混合服务存在,因此今天可以使用此选项。

    我们看到的第三个层次是一连串混合或Coinjoins。匿名性改进来自于对单个组合或同一对等体的较少依赖性的事实。诸如标准化块大小和客户端自动化等功能可以最大限度地减少信息泄漏,但是一些侧面的通道仍然存在。还有一个对手控制或串通多个混合或同伴的对手的危险。实现混合链的钱包和服务今天可以部署和采用,但据我们所知,安全的混合链解决方案尚不容易获得。

    接下来,我们看到Zerocoin直接将密码学加密到协议中,并提供匿名性的数学保证。我们认为一些侧面渠道仍然是可行的,但它肯定优于其他混合解决方案。然而,Zerocoin必须作为altcoin推出。

    最后,我们看了一下Zerocash。 由于Zerocash效率的提高,Zerocash可以作为一种完全不可追踪的方式运行——而不仅仅是匿名的——加密货币。不过像Zerocoin一样,Zerocash并不与比特币兼容。 更糟糕的是,它需要一个复杂的设置过程,社区仍然在弄清楚如何最好地完成它。

    本章已经介绍了很多技术。现在让我们退一步。比特币的匿名(和匿名的潜力)是强大的,并与其他技术特别是匿名通信结合获得力量。正如我们将在下一章中看到的,该强大组合体现在丝绸之路和其他匿名在线市场上。

    尽管它的力量,匿名是脆弱的。一个错误可以创建一个不需要的,不可逆的链接。但是匿名是值得保护的,因为它除了明显的不良之外还有许多好的用途。虽然这些道德差异很重要,但我们发现自己无法在技术层面上表达他们。匿名技术似乎在深刻而内在的道义上是模棱两可的,作为一个社会,我们必须学会生活在这个事实中。

    比特币匿名是技术创新和道德辩论的积极领域。我们仍然不知道比特币的哪个匿名系统(如果有的话)会变得突出或主流。这是一个伟大的机会,无论对于开发人员,决策者还是用户——去参与和做贡献。希望你在本章中学到的东西给你正确的背景去做这些。

    相关文章

      网友评论

        本文标题:第6章:比特币和匿名

        本文链接:https://www.haomeiwen.com/subject/lqosbxtx.html