现在的比特币是 不是真的匿名. 尽管比特币地址不一定与真实世界的身份相关联,但可以。监视未加密的对等网络,分析公共区块链以及了解客户(KYC)政策或反洗钱(AML)法规,可以揭示有关谁在使用比特币以及用于什么目的的很多信息。.
从隐私的角度来看,这不是很好。比特币用户可能不一定希望世界知道他们的钱花在哪里,他们的收入或拥有的数量,而企业可能不想将交易详细信息泄露给竞争对手–仅举一些例子.
另外,可追踪的比特币,可能被“污染”,并且可能比其他比特币的价值更低,这与可替代性是矛盾的。这甚至可能会挑战比特币作为货币的价值主张.
但是,有一些潜在的解决方案可以增加隐私并提高可替代性.
已有一段时间的解决方案是CoinJoin.
背景
从本质上讲,比特币协议由交易组成。所有这些交易在区块链上都是完全公开的,这意味着任何人都可以看到哪个地址将比特币发送到了哪个地址。如果其中一些地址与真实世界的身份相关联,则可以揭示谁与谁进行交易或针对什么进行交易。这与隐私,尤其是‒可替代性不符.
此外,每笔特定交易都会花费一个或多个“输入”,这是指从中发送比特币的地址。 (这些输入花在“输出”上,指的是比特币发送到的地址。)这给隐私和可替代性带来了另一个挑战,因为所有输入地址通常都属于同一用户:交易的发送者。如果甚至所有群集输入地址中的一个都可以链接到真实世界的身份,则它们都是.
CoinJoin – 建议的 在2013年 比特币核心 和 区块流 开发人员Gregory Maxwell –旨在解决这两个问题。它混淆了比特币的踪迹,打破了所有输入地址都属于同一用户的假设.
想法
CoinJoin概念非常简单.
本质上,CoinJoin允许多个用户将多个交易的所有输入和输出组合为一个大交易。这项单笔交易将比特币从不同的地址花费到不同的地址,并且由于没有一个发送地址专门支付了任何接收地址;他们之间没有任何联系.
(这可以比作是一群人把现金凑在一起去购物的人。虽然每个人都可以确保没有人花更多的钱,但是购物者不一定会花掉最初放入共享钱包的确切账单) )
在比特币中,这可以完全安全地完成。所有输入都需要来自其各自所有者的相应签名,而添加签名后不能更改交易的内容。这样,CoinJoin交易的参与者只需宣布要在交易中包括哪些输入和输出,并且仅在正确包含这些输入和输出的情况下,才对集合签名。一旦所有参与者都签名(并且只有他们签名一次),该交易才会被广播.
CoinJoin的一个关键特征:交易被广播并包含在区块链中之后,就无法知道哪个比特币去了哪里。甚至交易的接收者都不会知道他们从哪个地址获得付款.
此外,CoinJoin可以改善甚至根本不使用隐私的人的隐私。由于输入的组合不再必然意味着所有输入地址都属于同一用户,因此群集通常已成为功能较弱的分析工具。.
在实践中
CoinJoin不需要对比特币协议进行任何更改,并且已经有多种实现。某些版本之间的主要区别是如何创建CoinJoin交易.
创建CoinJoin交易的最简单方法是通过专用服务器。任何想使用CoinJoin的人都可以简单地连接到服务器,以指示该交易应包括哪些输入和输出。然后,服务器创建一个大的汇总交易,并将其发送回给所有参与者进行签名. 黑暗钱包 –专注于隐私的比特币钱包似乎处于alpha阶段–与流行的一样,采用基于服务器的模型 区块链 网络钱包,尽管它的有效性 质疑 在过去.
基于服务器的模型的主要问题是,控制服务器的人通常可以访问各个参与者提供的数据。这样,从隐私和可替代性的角度来看,该服务器会出现单点故障。有潜在的解决方案甚至可以加密从服务器加密交易数据,但是目前仍是理论上的.
还存在分散的CoinJoin解决方案,该解决方案构建了点对点的CoinJoin事务,或者至少没有任何特定的中央中介。在这个方向上已经进行了几次尝试,包括 Coinmux, 钱币杂乱, 投币者 和前DarkWallet开发人员Amir Taaki的 CoinJoin工具. 但是这些都不是被广泛使用的,因此不是很有用–只有当有人加入时,“ coinjoining”才有意义.
旨在解决此问题的CoinJoin策略的最新观点是 加盟市场:CoinJoin交易的市场。用户可以支付少量费用就可以在CoinJoin交易中提供现货,或者自己购买对CoinJoin交易的访问权。 JoinMarket的创造者 相信 混合使用硬币以换取费用的激励措施应产生足够的流动性,以使市场成功-同时其竞争性质应使费用保持较低水平。确实,与替代产品相比,JoinMarket的使用相对较好,并且 订单簿 (在撰写本文时)提供了数千种比特币供您混合使用.
最后,另一个注重隐私的钱包, Samourai钱包, 目前包括一种CoinJoin模仿,旨在摆脱分析区块链数据的任何人。此选项使事务看起来像CoinJoin事务,而实际上所有输入和输出都属于同一用户。 (Samourai Wallet计划在今年晚些时候扩展内置和跨钱包混合选项,这也可能会利用CoinJoin功能。)
缺点和权衡
虽然CoinJoin可能有用,但并不完美.
最重要的是,尽管CoinJoin在混合输入和输出方面做得很出色,但是如果数量可以揭示的话,这还不够。如果一个输入发送4.9比特币,另一输入发送2.7比特币,而第三输入则发送0.8比特币,而一个输出接收4.9比特币,一个输出接收2.7比特币,第三输出接收0.8比特币,那么将输入连接到输出很简单.
解决此问题的潜在方法当然是 机密交易. 由于机密交易会掩盖发送的金额(但不会掩盖输入和输出),因此CoinJoin和机密交易是潜在的强大组合.
另一个风险是 西比尔攻击. 似乎CoinJoin交易中的多个参与者实际上可以是一个实体,并且监视特定参与者.
(如果十分之九的输入和输出属于向自己发送比特币的单个NSA代理,他将知道哪个剩余输出向哪个剩余输出发送了比特币。)
对于Sybil攻击问题,没有简单的解决方案,但是随着越来越多的真正用户混合使用硬币,成功实现这一目标确实变得越来越困难.
这就引出了下一个要点:CoinJoin仍然很麻烦。几乎没有内置钱包,使用的钱包很少(并且依赖中央服务器)。JoinMarket可能是迄今为止最成功的实现,但仍需要专用软件和额外费用(尽管很小).
但是,即将出现的有趣发展可能会扭曲以下激励措施: 施诺尔签名. 通过隔离见证人启用,Schnorr签名可以允许将CoinJoin交易中的所有签名聚合为一个签名。这种效率应导致每次输入的交易费用降低,并可能刺激使用最私密且易于替代的解决方案.
感谢Gregory Maxwell的新增反馈.