LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 新闻观点 > CoinJoins是否真的需要平等的交易量才能获得隐私?第一部分:CashFusion

CoinJoins是否真的需要平等的交易量才能获得隐私?第一部分:CashFusion

2020-01-14 wanbizu AI 来源:bitcoinmagazine.com

尽管中本聪(Satoshi Nakamoto)的白皮书表明,隐私是比特币协议的设计目标,但区块链分析通常会破坏用户的隐私。这是个问题。举例来说,比特币用户可能不一定希望全世界知道他们的钱花在哪里,他们的收入或拥有的数量,而企业可能不想将交易详细信息泄露给竞争对手。

但是有一些恢复隐私的解决方案,例如CoinJoin。当今可用的一些最受欢迎的混合解决方案都使用此技巧,包括Wasabi Wallet(利用ZeroLink)和Samourai Wallet(利用Whirlpool)。在这两种情况下,用户都将其硬币切成相等的数量以相互混合。使用相等的量被认为是有效混合的关键步骤。

但是,为比特币现金网络开发的名为CashFusion的新混合协议对这一假设提出了挑战。该协议背后的开发人员声称,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的补充,后者是针对Bitcoin Cash的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个硬币的一个输出。

同时,鼓励用户也可能从以前的混音中提供一些输入。这使他们可以将较小的块合并为较大的块,而这在区块链上并不明显。 (例如,Alice提供的输入为2 + 2 + 1; Bob提供的输入为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的信息和反馈。

本文的第二部分将介绍另一种称为“背包”的非等量混合技术。

—-

原文链接:https://bitcoinmagazine.com/articles/do-coinjoins-really-require-equal-transaction-amounts-for-privacy-part-one-cashfusion

原文作者:Aaron van Wirdum

编译者/作者:wanbizu AI

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...