虽然中本聪 白皮书 这表明隐私是比特币协议的设计目标,区块链分析通常会破坏用户的隐私。这是个问题。比特币用户可能不一定希望全世界知道他们的钱花在哪里,他们的收入或拥有的数量,而企业可能不想将交易详细信息泄露给竞争对手—仅举一些例子.
但是有一些重新获得隐私的解决方案,例如CoinJoin。当今可用的一些最受欢迎的混合解决方案都使用此技巧,包括Wasabi Wallet(利用ZeroLink)和Samourai Wallet(利用Whirlpool)。在这两种情况下,用户都将其硬币切成相等的数量,以将它们彼此混合。等量使用被认为是有效混合的关键步骤.
但是,新的混合协议称为 现金融合, 在开发比特币现金网络时,对这一假设提出了挑战。该协议背后的开发人员声称,CashFusion通过CoinJoins提供了隐私,而无需仅混合相等的金额。如果为真,那么这也可能会极大地改变我们对比特币隐私的看法.
如果属实…
投币
让我们从头开始。 (或者,如果您知道CoinJoin是什么,请跳过此部分。)
典型的比特币交易具有一个或几个输入(基本上是从中发送硬币的地址)和一个或几个输出(基本上是从中发送硬币的地址)。如果一笔交易有多个输入,通常是因为发件人使用了他的几枚硬币(UTXO)来达到所需的金额。如果一笔交易的输出不止一个,通常是因为一次要向几个人付款(批量交易),并且/或者付款人将钱作为找零的钱寄回自己的地址之一(因为这些块没有加起来)精确到正确的数量;通常是这种情况).
不幸的是,这里概述的典型交易显示了很多。例如,很容易得出结论,所有输入地址都属于同一个人,因此可以进行地址聚类。交易还显示了硬币从哪个地址移动到哪个地址,从而揭示了区块链上的硬币轨迹。可能会有更多(微妙的)提示,并且所有这些都不利于隐私.
首先,可能的解决方案 建议的 由比特币核心贡献者格雷戈里·麦克斯韦(Gregory Maxwell)在2013年提出,名为CoinJoin。 CoinJoin背后的想法很简单:将几个独立的交易合并为一个大交易。因此,如果两个事务分别具有两个输入和两个输出,则将其合并为一个具有四个输入和四个输出的单个事务。这至少打破了所有输入地址都属于同一个人的假设,并且也可能有助于打破硬币的踪迹.
为什么要等额
但是,通常假设如上所述的CoinJoin的隐私获取将受到限制。在许多情况下,输入中发送的金额和输出中接收的金额可能会在一起令人困惑,以重新发现哪些单独的交易进入了合并的CoinJoin交易.
例如,让我们进行两笔交易,一笔交易是从爱丽丝到卡罗尔,另一笔交易是从鲍勃到戴夫。爱丽丝有两枚分别价值2.3和1.4比特币的硬币,她想付卡罗尔3.2比特币。鲍勃拥有3和2比特币的大块,并想付给戴夫4比特币.
简化后,这些事务如下所示:
2.3 + 1.4 = 3.2 + 0.5
和
3 + 2 = 4 +1
(0.5 BTC和1 BTC输出已更改。)
合并在一起后,CoinJoin交易将如下所示:
3 + 2.3 + 2 + 1.4 = 4 + 3.2 + 1 + 0.5
尽管合并了交易,但是重新发现哪些输入支付了哪些输出却是很简单的,因此,哪些输入可以归为同一发送者,这也是很简单的。假设您知道有两个付款人,那么只需一个可能的配置就可以将金额搞混了:原始交易.
由于这个原因,像ZeroLink和Whirlpool这样的流行混合解决方案仅限于混合等量的东西。无论将多少金额混合在一起作为输入,混合后的输出都是无法区分的,这意味着任何参与者都可以收到任何固定大小的硬币.
如果固定金额设置为1 BTC,则Alice,Bob,Carol和Dave的CoinJoin看起来像这样:
3 + 2.3 + 2 + 1.4 = 1 + 1 + 1 + 1 +1 + 1 + 1 + 1 + 0.5 + 0.2
这是一个很大的改进,因为1的任何块都可以被拼凑成两个原始事务中的任何一个。目前尚不清楚这1个BTC中的哪个属于爱丽丝,鲍勃,卡罗尔或戴夫,甚至属于哪一对.
但是,它仍然不完美,因为剩下的输出不相等。正是由于它们的数量不相等,这些输出仍然可以链接到特定的输入:爱丽丝的输入。这也意味着爱丽丝的输入可以相互链接。而且,如果经过几次混合,某人在下一次交易中合并了不相等的输出,那么这也会损害隐私:它将不同的块链接到同一个人。此外,如果以后将不相等的输出与固定量的输出结合使用,这些泄漏可能会破坏初始混合过程本身.
现金融合
CashFusion是比特币现金开发商Mark Lundeberg和Jonald Fyookball的一个项目,着手解决“剩余”产出问题。他们最初将其创建为 CashShuffle, 这是针对比特币现金的CoinShuffle的实现,并且混合了相等的金额。 CashFusion令人惊讶的潜力还可能意味着它成为其自己的独立混合协议,但是.
要了解这种潜力,我们来看看另一组交易。假设爱丽丝(Alice)想向卡罗尔(Carol)支付4个硬币,她有两个价值2枚和3枚硬币的UTXO。同时,鲍勃想要支付戴夫9个硬币,他有两个价值7和8个硬币的UTXO。.
简化后,这些事务如下所示:
3 + 2 = 4 +1
和
8 + 7 = 9 + 6
合并在一起后,CoinJoin交易将如下所示:
8 + 7 + 3 + 2 = 9 + 6 + 4 + 1
现在,通过这次CoinJoin交易,当然可以将原来的两笔交易搞混了。但是,即使您知道有两个付款人,也可以使用其他几种组合.
例如:
8 + 2 = 9 +1
和
7 + 3 = 6 + 4
或者:
8 + 2 = 6 + 4
和
7 + 3 = 9 +1
或者:
7 + 2 = 9
和
8 + 3 = 6 + 4 + 1
或者:
7 = 6 + 1
和
8 + 3 + 2 = 9 + 4
为了简单起见,本示例仅使用整数。这使更多可能的配置成为可能,但实际上不会经常反映现实。另一方面,这个简化的示例仅使用了两个原始事务。实际上,CoinJoin可能包含数十个甚至数百个原始交易。因此,虽然简化了,但这种简化既有助于并损害创建多个配置的潜力.
CashFusion是围绕该理论构建的,该理论源自以下领域: 组合学, 即使使用了现实的金额,足够大的CoinJoin交易也经常会(即使不是总是)提供几种不同的解决方案。而且,随着包含更多的输入和输出,可以从中获得更多的潜在配置。 (如果金额在同一范围内(例如1 BCH),则应该特别如此,鼓励CashFusion用户出于自身隐私的考虑而这样做。)
随着更多的潜在难题解决方案,区块链分析师将很难确定哪种解决方案是原始配置。这应该会打破硬币的痕迹,并使得将输入链接在一起变得更加困难。因此,它应该提供隐私.
为了提高这种潜力,CashFusion包括一个额外的技巧,以使其更难于拼凑原始配置:它使用户可以半随机地将其输出切成几个较小的输出。因此,例如,Alice可以向Carol发送3个硬币和1个硬币的输出,而不是向Alice付给Carol 4个硬币的输出。 Bob可以支付5、3和1个硬币的Dave输出,而不是支付9个硬币的一个输出.
同时,鼓励用户也可能从以前的混音中提供一些输入。这使他们可以将较小的块合并为较大的块,而这在区块链上并不明显。 (例如,爱丽丝会提供2 + 2 + 1的输入;鲍勃会提供6 + 5 + 4的输入。)确实,将不相等的剩余块合并为更大的输出是最初的想法,并且是协议的起源。名称:CashFusion.
但是假设是否成立?
如果您读了这么远的书后仍想得出最终结论,会让您感到失望:本文不会就CashFusion的假设是否成立或在何种程度上坚持这一问题给出明确的答案。似乎还没有确切的答案。到目前为止,该提案已经经过了相对较少的同行评审,而CashFusion背后的开发人员认为他们的解决方案提供了足够的隐私,而其他人则显得更加持怀疑态度。.
从表面上看,CashFusion的方法似乎是误导的,因为像区块链的SharedCoin这样的早期不平等金额混合方案是 破碎的 几年前。但是Lundeberg和Fyookball现在认为,关键的区别是CashFusion交易将比SharedCoin交易包含更多的输入和输出。类似于其他非直觉的数学怪癖,例如 生日问题, 每个添加的输入和输出的潜在配置数量呈指数增长,从而解决了SharedCoin遇到的问题-尽管Lundeberg同意有必要提供更好的数学证明来正确确认这一点。.
CashFusion描述本身确实包括Lundeberg自以为是的“餐巾数学”,其中还有一个更高级的版本 已发表 由他在Reddit上发布。这些估计表明,即使只有10个参与者,每个参与者提供10项投入,将其合并为一项产出(总共100项投入和10项产出),平均可能的配置数量也将在100亿五百万个范围内。 (这是一个带有20个零的数字,即10 ^ 20。)即使仅计算所有这些可能性也将花费相当多的时间-没关系正确地重建原始交易.
在撰写本文时,正在进行更多研究。 Fyookball最近在 此博客文章. 目前,Lundeberg,Fyookball和其他公司至少已经对CashFusion协议深信不疑,希望部署它。 CashFusion软件的Alpha客户端可用于测试;预计在几个月内发布完整版本.
但是其他人并不那么相信。对该建议的批评是,即使10(20)个数字(大致)成立了,也不是CashFusion CoinJoin的每个输出都同样有可能来自每个输入。换句话说,尽管一些参与者可能会获得显着的隐私权,但其他参与者可能会从相同的组合中获得更少的隐私权。对于任何个人用户而言,很难说出他们是否获得了很多隐私。 (此评论和其他评论可以在 这个最近的bitcoin-dev电子邮件线程.)
相比之下,等量混合可为所有参与者提供相似的隐私,并导致最大数量的可能配置。从某种意义上说,等额混合会产生“完美的” CashFusion CoinJoin,因此,如果忽略了不平等的变更问题,它的质量会更好。.
尽管如此,即使CashFusion永远不会完全取代等量混合,它也可能会按照原先的意图帮助解决不平等变化的问题……
作者注意:CashFusion提案还有更多内容,例如CoinJoin交易的构造方式。当涉及到隐私时,还有其他一些微妙的风险和折衷办法,例如用户在混合前后如何处理自己的硬币。为了简化和可读性,本文仅关注CashFusion背后的核心且可能是最有趣的想法:不等量混合.
感谢Mark Lundeberg的信息和反馈.
本文的第二部分将介绍另一种称为等量混合的技术 背包.