行业热点

破坏 CoinJoin 匿名性的方法:利用聚类技术

发布日期:2025-07-14 12:55
Chain Icon
欧易OKX
OKX是全球十大虚拟货币交易所之一,支持90多个国家地区的法币充值服务,是法币入场和提现的重要通道之一。

匿名化是研究隐私的最终目标,类比成一场游戏可以帮助我们更好地思考。

破坏 CoinJoin 匿名性的方法:利用聚类技术

我们设想一个对手拥有一些信息,它试图从一组候选者中正确猜测出系统中某个事件的责任人。为了防止对手获胜,我们需要让它不断猜测,这意味着要么限制它获取信息的渠道,要么利用随机性来增加它获胜所需的信息量。

许多读者可能都熟悉“猜猜我是谁?”游戏。这款游戏可以理解为更通用的游戏“猜猜我是谁?”的两个实例的回合制组合。在“二十个问题”游戏中,玩家需要从给定集合中秘密选择一个元素,而对手则通过向玩家提出最多 20 个是非问题来尝试猜出该元素。在“猜猜我是谁?”游戏中,双方轮流对战,最先猜对的一方获胜。“猜猜我是谁?”游戏中的元素集合是固定的,由 24 个卡通人物组成,每个人物都有各自的显著特征,例如发色或发型。每个人物都有一个独特的名称,可以明确地识别他们。

是或否问题的答案可以表示为——零 或者 一二十位二进制数可以表示 0 到 1,048,575(即 2²⁰-1)范围内的任何整数。如果一个集合可以完全排序,则集合中的每个元素都可以通过其在排序中的编号位置进行索引,从而唯一地标识它。因此,20 位可以唯一地寻址一百万个元素中的一个。

虽然仅使用 20 个是非题的答案就能唯一识别集合中元素的最大数量是 2²⁰,但在现实世界中,20 个答案通常包含的信息量小于这个数字。对于大多数集合和问题组合而言,情况几乎肯定不会完美地排列,而且并非每个问题都能独立地将候选元素一分为二。有些问题的答案可能存在偏差;有些问题的答案可能与其他问题的答案相关。

假设你不再问“你的角色戴眼镜吗?”这样的问题,而是问“按字母顺序,你的角色的名字是否出现在 [剩余角色名字的中位数] 之前?”。这是一个 ,它将最大限度地提高每个问题的答案的信息量:在每一步中,中位数名字都会分割剩余角色的集合,而这个问题会消除两半中的一个。反复将剩余的候选者减半将以“是”或“否”答案所能达到的最快速度缩小搜索范围;只需要对数级的步骤,这比线性扫描(即逐个检查:“是爱丽丝吗?不是吗?鲍勃呢?……”)要快得多。

破坏 CoinJoin 匿名性的方法:利用聚类技术
Chain Icon
欧易OKX
OKX是全球十大虚拟货币交易所之一,支持90多个国家地区的法币充值服务,是法币入场和提现的重要通道之一。
分享到: