「力场 lichang.io」公链挖矿第一社区!
我们之前谈到过旁路攻击。现在我们来仔细看一下产生旁路的玄机。我们假设,通过一个特定的地址,刘夫人每周都固定地收到一定数量的比特币,比如43.12312个比特币,有可能这是她的薪水。进一步假设她有一个习惯,每当收到这笔资金的时候就把其中的5%立刻自动存入另外一个比特币地址,那是她的退休基金账号。我们将这种转账模式称为高风险交易流。在这种情况下,没有一种混币模式可以隐藏这两个地址之间的关系,考虑到这种行为模式会在区块链网络中是透明可见的——这样特定了金额和时间的行为,几乎不可能是偶然发生的。
有一种技术,可以帮助用户在高风险交易流的情形下重获无关联性,这种技术叫作合并规避(merge avoidance),是由比特币创始人迈克·赫恩(Mike Hearn)提出的。一般来说,为了完成一笔支付,用户会尽可能地组合所拥有的比特币,以便有足够多的数额可以支付到单一接收地址来完成交易。他们是否可以规避会导致所有输入地址被关联在一起的合并行为呢?这种合并规避协议通过允许接收方提供多个输出地址的方式(尽可能多的),使得无关联性成为可能。发送方和接收方可以达成一致,通过把一个数额较大的支付分拆为一组小面值的支付方式,使得这个支付使用多个交易来完成,如下图所示。
![](https://img.haomeiwen.com/i4279446/e93a9ced880f779e.png)
比如刘夫人想要用8个比特币去购买一只茶壶,店铺提供了两个地址给她,她可以支付5个比特币到其中一个地址而支付3个比特币到另外一个地址,与她的可用输入资金匹配了,这样就可以避免暴露两个地址都是属于刘夫人的事实。
假设,店铺最终将这两笔支付和收到的其他支付合并在了一起,这两个地址就不再是很明显互相关联的了。店铺应该避免在收款的同时,马上重新把这两个输入合并在一起,否则这两个输入来自同一个个体的事实还是会很明显。当然,刘夫人也要避免在同一时间发送这两笔支付交易,这也有可能类似地暴露信息。
总的来说,合并规避可以帮助缓解高风险交易流的问题:如果某一个交易流水被拆分成许多互相无法关联的小额流水,攻击者可能就不会辨别这个交易。这样做也可以使依赖于识别单一交易中共时花费的多个比特币的地址簇技术失效。
网友评论