主页 > imtoken钱包国际版下载 > 6.4 分布式混合

6.4 分布式混合

imtoken钱包国际版下载 2023-05-30 06:09:44

去中心化混币不同于一般的混币交易,是指用户之间以点对点的方式实现混币交易的协议。可以想象,这种方法在哲学上更适合比特币。

分布式模式具有更高的可操作性。首先,分布式分发不存在自举问题,用户无需等待可信的中心化混币提供商出现。其次,在分布式混币模式下,盗币几乎是不可能发生的,这种协议可以保证你可以拿回与你的混币交易等值的比特币,正因为如此,即使需要一些中心化的协作,对分布式混合很有用,使任何人都可以更轻松地设置和提供此类服务,而无需说服其他人他们是值得信赖的。最后,在某些方面,分布式硬币混合模型可以提供更好的匿名性。

联合加入

分布式混合货币模型的主要方案称为Coinjoin。在这个协议中,不同的用户一起工作来创建一个包含所有用户输入的单一比特币交易。使硬币能够有效运行的核心技术原理是:当一笔交易有多个来自不同地址的输入时,来自每个输入的签名是分开的,相互独立的,因此这些不同的地址可以被不同的人使用。无需任何一方提取所有私钥即可进行控制(见图6.9).

image.png

比特币混币钱包

图6.9 组合币交易

这允许一组用户使用单一交易进行混合货币交易。每个用户提供一个输入和输出地址,然后将它们组合起来形成一个交易。由于输入输出地址的顺序是随机的,所以攻击者无法在输入和输出之间建立匹配。参与者可以查询他们的输出地址是否已包含在交易中,并将收到与输入相同数量的比特币(减去所有交易费用)。一旦他们确认这一点,他们就可以签署交易以进行确认。

当其他人在区块链网络上查找交易时,即使知道是组合币交易,也无法确定输入地址和输出地址的匹配。在外人看来,这些比特币已经完全混合了,这就是组合货币的本质。

到目前为止,我们已经描述了一轮混合交易,但是我们在第 6.3 节中讨论的原则仍然适用,您希望(并且可能会)对不同的用户组重复此过程,并且您想要确保这些交易是标准比特币块大小,所以你不会无意中引入可能泄露信息的绕过。

现在让我们来探索一下硬币池的细节,我们可以将这个过程分解为 5 个步骤:

比特币混币钱包

1.找到想要混币的交易对手作为节点。

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

3.创建一个事务。

4.将此交易发送给其他人,各节点确认自己的输出地址后进行签名。

5.广播此交易。

比特币混币钱包

一组想要混币的节点首先需要互相发现。这个动作需要一个服务器来完成,它的角色有点像“饮水坑”(watering hole)[1],让这组用户可以互相连接,并组合在一起。与中心化的混币服务不同,这些服务器既没有机会窃取用户的资金,也没有危害用户的匿名性

一旦形成了一组节点,这些节点必须相互交换它们的输入和输出地址。地址交换确保即使是组中的其他节点也无法知道这些输入和输出地址之间的匹配关系。这一点很重要,否则即使你与一组看似随机的节点进行了组合货币交易,攻击者仍然有可能将自己伪装成这组节点,并由此得到输入输出的对应匹配。为了实现不相关的地址交换,我们需要一个匿名通信协议。我们可以使用前面讨论过的 Tor 网络,或者称为加密混合网络的专用匿名路由协议。

一旦输入输出地址信息通信完毕,其中一个用户——不管是谁——都会根据这些对应的输入输出地址构造一个交易,这个未签名的交易会被转发传递,每个节点都会验证输入输出地址正确,签名确认。

如果所有节点都遵循此协议,系统将正常工作。任何节点都可以组装一笔交易,任何节点都可以将这笔交易广播到网络上,甚至其中两个节点都可以独立广播,当然,这笔交易在区块链网络中只会公布一次。但是,如果一个或多个节点想要妥协,发起拒绝服务攻击并阻止协议完成是微不足道的。

特别是,节点可以参与协议的第一阶段,提供输入和输出地址,但拒绝在第二阶段签名。或者,可能是在签署交易后,想要破坏交易的节点可以尝试使用它提供给其他节点的输入地址进行其他交易,如果另一笔交易在网络中被抢先确认,则合并货币交易将作为双花交易被拒绝。

比特币混币钱包

有多种方案可以防止组合货币交易中的拒绝服务攻击。其中之一是通过工作量证明机制(类似于挖矿)或燃烧证明机制(一种可证明销毁微量你拥有的比特币)。技术,我们在第 3 章中探讨过)。替代方法包括使用一些加密手段来识别不合规的参与者并将他们从节点组中删除。在本章的最后,我们会看到一些相关的细节。

高级流程

我们之前谈到了侧信道攻击。现在让我们仔细看看旁路背后的奥秘。让我们假设 Alice 通过一个特定的地址(可能是她的工资)每周收到固定数量的比特币,比如 43.12312 个比特币。进一步假设她习惯于在收到资金时自动将 5% 的资金存入另一个比特币地址,这是她的退休基金账户。我们将这种转移模型称为高风险交易流。在这种情况下,不存在隐藏两个地址之间关系的洗牌模型,考虑到这种行为模型将在区块链网络中透明可见 - 从而指定行为的数量和时间,几乎不可能偶然发生。

有一种技术可以帮助用户在高风险交易流的情况下重新获得不相关性。这种技术被称为避免合并,由比特币创始人 Mike Hearn 开发。 (迈克·赫恩)。通常,为了完成支付,用户会结合尽可能多的比特币,以便有足够的金额支付到单个收款地址以完成交易。他们能否规避会导致所有输入地址链接在一起的合并行为?这种合并避免协议通过允许接收器提供多个输出地址(尽可能多),使关联成为可能。发送方和接收方可以达成协议比特币混币钱包,将一笔较大的支付拆分成一组小面额的支付方式,从而通过多笔交易完成支付,如图6.10。

image.png

比特币混币钱包

图6.10 避免合并

注意:Alice 想用 8 个比特币买一个茶壶,商店给她提供了两个地址,她可以向一个地址支付 5 个比特币,向另一个地址支付 3 个比特币,匹配她可用的输入资金,以避免暴露两个地址都是爱丽丝的事实。

假设商店最终将这两笔付款与收到的其他付款结合在一起,则这两个地址不再明确关联。商店应避免在收到付款后立即重新组合两个输入,否则两个输入来自同一个人的事实仍然很明显。当然,Alice 也希望避免同时发送两个支付交易比特币混币钱包,这同样会暴露信息。

一般来说,避免合并有助于缓解高风险交易流的问题:如果一个交易流被拆分为许多不相关的小流,攻击者可能无法识别该交易。这样做还会使依赖于识别单个交易中同时花费的多个比特币的地址聚类技术失效。

[1] 这个比喻来自非洲草原上的一个饮水坑。需要水的动物会去坑。掠食者也经常在坑边伏击和狩猎。在网络安全方面,像“水坑”这样的网站往往是黑客选择攻击的地方,这种攻击也被称为“水坑攻击”。