比特币

隐私

虽然比特币可以支持强隐私,但许多使用它的方式通常不是很私密。通过对技术的正确理解,比特币确实可以以非常私密和匿名的方式使用。

截至 2019 年,大多数比特币爱好者认为它是完全可追溯的;这是完全错误的。2011 年左右,大多数休闲爱好者认为它是完全私人的。这也是错误的。有一些细微差别——在某些情况下,比特币可能非常私密。但理解起来并不简单,需要一些时间和阅读。

本文写于 2019 年 2 月。阅读本文的一个好方法是跳到示例,然后再回来阅读核心概念。

内容

  • 1概括

  • 2介绍

  • 2.1示例 - 对手控制硬币的来源和目的地

  • 2.2示例 - 非匿名中文报纸购买
  • 2.3示例 - 完全私人的捐赠
  • 2.4区块链交易的多种解释
  • 2.5威胁模型
  • 2.6数据融合方法
  • 2.7为什么要隐私

  • 3区块链对隐私的攻击

  • 3.1公共输入所有权启发式

  • 3.2更改地址检测
    • 3.2.1地址重用
    • 3.2.2钱包指纹
    • 3.2.3整数
    • 3.2.4收费暴涨
    • 3.2.5不必要的输入启发式
    • 3.2.6发送到不同的脚本类型
    • 3.2.7钱包错误
    • 3.2.8等量输出CoinJoin
    • 3.2.9集群增长
  • 3.3交易图启发式
    • 3.3.1污点分析
  • 3.4数量
    • 3.4.1显示发送者财富的输入金额
    • 3.4.2确切的付款金额(无变化)
  • 3.6不寻常的脚本
  • 3.7神秘顾客付款
  • 3.8强制地址重用
  • 3.9金额相关性
  • 3.10时序相关4对隐私的非区块链攻击

  • 4.1流量分析

  • 4.2保管钱包
  • 4.3第三方钱包历史检索
    • 4.3.1区块链浏览器网站
    • 4.3.2BIP 37
    • 4.3.3公共 Electrum 服务器
  • 4.4通讯窃听
  • 4.5交易比特币时泄露数据
  • 4.6数字取证

  • 5改善隐私的方法(非区块链)

  • 5.1匿名获取比特币

    • 5.1.1现金交易
    • 5.1.2现金替代品
    • 5.1.3就业
    • 5.1.4矿业
    • 5.1.5偷窃
  • 5.2匿名消费比特币
  • 5.3钱包历史同步
    • 5.3.1全节点
    • 5.3.2私人信息检索
    • 5.3.3客户端块过滤
    • 5.3.4通过洋葱路由查询地址
  • 5.4流量分析对策

    • 5.4.1Tor 和 Tor 广播
    • 5.4.2蒲公英
    • 5.4.3交互式对等广播
    • 5.4.4通过卫星接收比特币数据
  • 6改善隐私的方法(区块链)

  • 6.1避免地址重用

    • 6.1.1避免强制地址重用
  • 6.2硬币控制
  • 6.3多笔交易
  • 6.4变更规避
  • 6.5多个变更输出
  • 6.6脚本隐私改进
  • 6.7ECDH 地址
  • 6.8集中式搅拌机
  • 6.9硬币加入
    • 6.9.1等量输出CoinJoin
    • 6.9.2付费加入
  • 6.10换币
  • 6.11CoinJoinXT
  • 6.12翻滚比特
  • 6.13链下交易
    • 6.13.1盲人证书
    • 6.13.2侧链
  • 6.14机密交易
  • 6.15讨论

    • 6.15.1隐私与可扩展性
    • 6.15.2隐写术
  • 7闪电网络

  • 7.1洋葱路由

    • 7.1.1洋葱路由覆盖网络拓扑
    • 7.1.2集合路由
  • 7.2原子多路径支付
  • 7.3常用哈希锁值
  • 7.4保管钱包
  • 7.5私有脚本类型
  • 7.6探测支付以揭示渠道状态

  • 8现有的隐私解决方案

  • 8.1闪电网络

  • 8.2手工硬币加入
  • 8.3加入市场
  • 8.4芥末钱包
  • 8.5Samourai 钱包
  • 8.6液体侧链
  • 8.7水星钱包

  • 9示例和案例研究

  • 9.1糟糕的隐私示例 - Exchange 前端运行

  • 9.2糟糕的隐私示例 - 通过地址重用揭示的节省
  • 9.3糟糕的隐私示例 - 通过数据收集显示的节省
  • 9.4示例 - 逃避制裁
  • 9.5示例 - 在不透露您的真实姓名的情况下与您的在线扑克伙伴进行交易
  • 9.6示例 - 在您的雇主不知情的情况下进行捐赠
  • 9.7示例 - 无人知晓的捐赠
  • 9.8示例 - 私下接受捐款
  • 9.9示例 - 私下存储储蓄
  • 9.10示例 - 阻止来自不同来源的收款链接在一起
  • 9.11示例 - 在任何实体都不知道资金来源或目的地的情况下将赌场奖金提取到比特币交易所
  • 9.12糟糕的隐私示例 - 使用区块链浏览器
  • 9.13糟糕的隐私示例 - 由于数量相关性,隐私山寨币混合失败
  • 9.14示例 - 隐私山寨币混合
  • 9.15示例 - 使用闪电网络的日常商务
  • 9.16糟糕的隐私示例 - 在没有预防措施的情况下发送到静态捐赠地址
  • 9.17糟糕的隐私示例 - 接受神秘购物者付款监视的捐款
  • 9.18现实生活中的例子 - 使用静态地址窃取比特币的恶意软件
  • 9.19糟糕的隐私示例 - 窃取比特币的恶意软件通过神秘购物者付款进行监视
  • 9.20示例 - Tor 上的一次性轻量级钱包
  • 9.21糟糕的隐私示例 - Tor 上的轻量级钱包多次使用
  • 9.22现实生活中的例子——公共捐赠地址与共同输入所有权启发式相结合
  • 9.23现实生活中的例子 - 数字取证有助于调查 MtGox 交易所
  • 9.24现实生活中的例子——共同投入所有权启发式的错误使用夸大了捐赠收入
  • 9.25现实生活中的例子——共同输入所有权启发式发现的不正确的集群
  • 9.26现实生活中的例子 - 手工投币误导比特币分析师
  • 9.27现实生活中的例子——QuadrigaCX 交易所钱包分析
  • 9.28现实生活中的例子 - 阻止 Bustabit 赌场客户被 Coinbase.com 禁止
  • 9.29现实生活中的例子 - 罕见的多重签名脚本
  • 9.30现实生活中的例子 - 自由 IT 承包商让他的同事算出他的薪水
  • 9.31现实生活中的例子 - 黑客使用 CoinJoin 隐藏 445 btc 的目的地
  • 9.32糟糕的隐私示例 - 使用比特币在线购物时区块链数据和网络 cookie 的数据融合
  • 9.33糟糕的隐私示例 - 集中式混合器很容易与数量相关性分离
  • 9.34不良隐私示例 - 区块链数据和 IP 地址交易广播数据的数据融合
  • 9.35现实生活中的例子 - 2018 年关于比特币勒索软件交易分析的论文

  • 10也可以看看

  • 11参考

概括

为了节省您阅读本文其余部分的时间,以下是普通比特币用户如何改善其隐私的快速摘要:

  • 想想你在躲什么,你的威胁模型是什么,你的对手是什么。请注意,存在对比特币生态系统进行大规模监控的交易监控公司。
  • 不要重复使用地址。地址应该显示给一个实体以接收资金,并且在从他们那里花掉钱后不再使用。
  • 交易时尽量少透露有关您自己的信息,例如避免 AML/KYC 检查,并在提供您真实生活中的邮件地址时要小心。
  • 使用由您自己的完整节点或客户端块过滤支持的钱包,绝对不是网络钱包。
  • 通过Tor广播链上交易,如果您的钱包不支持它,则通过 Tor 浏览器将交易十六进制数据复制粘贴到网络广播表单中。
  • 尽可能使用闪电网络。
  • 如果闪电不可用,请使用正确实现CoinJoin的钱包。
  • 尽量避免创建找零地址,例如,当为闪电通道提供资金时,无需任何找零就将整个UTXO投入其中(假设金额不会太大而无法安全)。
  • 如果数字取证是一个问题,那么使用像Tails 操作系统这样的解决方案。

另请参阅现实案例研究 的隐私示例。

介绍

用户通过软件与比特币交互,这些软件可能会以各种方式泄露有关他们的信息,从而损害他们的匿名性。

比特币在区块链上记录交易,所有人都可以看到,因此对隐私造成了最严重的损害。比特币在地址之间移动;发送者地址已知,接收者地址已知,金额已知。只有每个地址的身份是未知的(见第一张图片)。

交易产生的地址之间的联系通常称为交易图。单独而言,这些信息无法识别任何人,因为地址和交易 ID 只是随机数。但是,如果交易过去或未来中的任何地址可以与实际身份相关联,则可以从该点开始工作并推断谁可能拥有所有其他地址。这种地址识别可能来自网络分析、监视、网络搜索或各种其他方法。鼓励为每笔交易使用新地址的做法旨在使这种攻击更加困难。

比特币的流动是高度公开的。

示例 - 对手控制硬币的来源和目的地

第二张图片显示了一个简单的示例。对手运行货币兑换商和蜜罐网站,旨在诱骗人们。如果有人使用他们的交换器购买比特币,然后将硬币交易到陷阱网站,则区块链将显示:

找到一个地址的身份可以让您攻击交易的匿名性。

  • 地址 A 到地址 B 的硬币交易。由 <地址 A 的签名> 授权。
  • 地址 B 上的硬币到地址 C 的交易。由 <地址 B 的签名>授权。

假设攻击者知道 Doe 先生的银行账户发送了用于购买硬币的政府货币,然后将其转移到地址 B。攻击者还知道陷阱网站在地址 C 上收到了从地址 B 花费的硬币。总之,这是一个非常强烈的迹象,表明地址 B 由 Doe 先生拥有,并且他向陷阱网站汇款。这个假设并不总是正确的,因为地址 B 可能是第三方代表 Doe 先生持有的地址,而与 C 的交易可能不相关,或者这两个交易实际上可能涉及智能合约(参见链下交易)有效地将硬币从链下传送到区块链上某个完全不同的地址。

示例 - 非匿名中文报纸购买

在此示例中,攻击者控制目标并从元数据中查找源。

  1. 你住在中国,想用比特币购买一份“真正的”在线报纸。
  2. 您加入比特币论坛并使用您的地址作为签名。由于您非常乐于助人,因此几个月后您设法获得了一笔不小的捐款。
  3. 不幸的是,您选择从谁购买报纸的选择很糟糕:您选择了政府代理人!
  4. 政府代理人查看区块链上用于购买报纸的交易,并在网络上搜索其中的每个相关地址。他在比特币论坛上的签名中找到了你的地址。您在帖子中留下了足够的个人信息以供识别,因此您现在计划接受“再教育”。
  5. 发生这种情况的一个主要原因是地址重用。您的论坛签名有一个从未更改过的比特币地址,因此通过网络搜索很容易找到。

您需要保护自己免受正向攻击(使用必须保密的方法获得的硬币来识别您的身份,例如诈骗者示例)和反向攻击(使用可以识别您的硬币获得必须保密的东西,例如报纸例子)。

示例 - 完全私人的捐赠

另一方面,这是一个使用比特币进行完全匿名捐赠的示例。

  1. 目的是向一些接受比特币的组织捐款。
  2. 你完全通过Tor运行比特币核心钱包。
  3. 通过Tor下载一些额外的几百 GB 数据,这样总下载带宽就不是区块链大小的。
  4. 单独开采一个区块,并将新开采的硬币发送到您的钱包。
  5. 将全部余额发送到该组织的捐赠地址。
  6. 最后,您销毁使用的计算机硬件。

由于您的全节点钱包完全在Tor上运行,因此您的 IP 地址被很好地隐藏了。Tor还隐藏了你使用比特币的事实。由于硬币是通过采矿获得的,因此它们与您的任何其他信息完全无关。由于交易是捐赠,没有商品或服务发送给您,因此您无需透露任何收货地址。由于发送了整个余额,因此没有返回的更改地址可能会在以后泄漏信息。由于硬件已被破坏,因此以后可以找到任何丢弃的硬盘驱动器上没有任何记录。我能想到的唯一攻击这个计划的方法就是成为一个全球对手可以利用 Tor 的已知弱点。

区块链交易的多种解释

比特币交易由输入和输出组成,其中可以有一个或多个。先前创建的输出可以用作以后交易的输入。这些输出在使用时会被销毁,并且通常会创建新的未使用输出来替换它们。

考虑这个示例交易:

1个比特币---->1个比特币
3 比特币 3 比特币

该交易有两个输入,价值 1 btc 和 3 btc,并创建两个输出,也价值 1 btc 和 3 btc。

如果你在区块链上看这个,你会假设这个交易的意义是什么?(例如,我们通常假设比特币交易是一种支付,但并非必须如此)。

至少有九种可能的[1]解释:

  1. Alice提供两个输入并向Bob支付 3 btc 。Alice 拥有 1 个 btc 输出(即它是零钱输出)。
  2. Alice 提供两个输入并向 Bob 支付 1 比特币,其中 3 比特币作为零钱返还给 Alice。
  3. Alice 提供 1 个 btc 输入,Bob 提供 3 个 btc 输入,Alice 获得 1 个 btc 输出,Bob 获得 3 个 btc 输出。这是一种CoinJoin交易。
  4. Alice 向 Bob 支付了 2 个比特币。Alice提供3个btc输入,得到1个btc输出;Bob 提供 1 btc 输入并获得 3 btc。这将是一个PayJoin交易类型。
  5. Alice 向 Bob 支付了 4 个比特币(但出于某种原因使用了两个输出)。
  6. 虚假交易 - Alice 拥有所有输入和输出,并且只是在她自己的地址之间移动硬币。
  7. Alice 支付 Bob 3 BTC 和 Carol 1 BTC。这是一个没有更改地址的批量付款。
  8. Alice 支付 3,Bob 支付 1;Carol 获得 3 BTC,David 获得 1 BTC。这是某种CoinJoined 批量支付,没有更改地址。
  9. Alice 和 Bob 向 Carol 支付 4 btc(但使用两个输出)。

仅仅从这样一个简单的交易中,就有许多解释是可能的。因此,说比特币交易总是完全可追溯是完全错误的,现实要复杂得多。

分析区块链的与隐私相关的对手通常依赖于启发式(或使用习惯用法),其中对什么是合理的做出某些假设。然后分析师会忽略或排除其中一些可能性。但这些只是可能是错误的假设。想要更好隐私的人可以故意打破那些完全愚弄分析师的假设。

比特币货币单位在交易中没有水印(换句话说,它们没有很少的序列号)。例如,该交易中的 1 btc 输入可能最终成为 1 btc 输出或 3 btc 输出的一部分,或两者的混合。交易是多对多的映射,因此在一个非常重要的意义上,不可能回答 1 btc 最终在哪里的问题。比特币在一笔交易中的这种可替代性是对上述交易的不同可能性解释的重要原因。

威胁模型

在考虑隐私时,您需要确切地考虑您在躲避谁。您必须检查假设的对手如何监视您,哪种信息对您最重要,以及您需要使用哪种技术来保护您的隐私。因此,保护您的隐私所需的行为类型取决于您的威胁模型。

隐私方面的新手通常认为他们只需下载一些软件,他们的所有隐私问题都会得到解决。事实并非如此。隐私需要改变行为,无论多么轻微。例如,想象一下,如果您有一个完全私密的互联网,您正在与谁交流以及您所说的话是完全私密的。您仍然可以使用它与社交媒体网站交流,写下您的真实姓名,上传自拍并谈论您现在正在做的事情。互联网上的任何人都可以查看该信息,因此即使您使用的是完全私密的技术,您的隐私也会被破坏。

有关详细信息,请阅读grugq 为黑客提供的 Opsec 演讲。该演讲主要针对需要政府隐私的政治活动家,但该建议通常适用于我们所有人。

很多时候看似合理的推诿还不够好,因为许多间谍方法只需要在统计级别上工作(例如定向广告)。

数据融合方法

数据融合图显示了两种不同的隐私泄漏如何结合起来对隐私造成更大的损害。

多个隐私泄露组合在一起时对隐私的破坏可能比任何单一泄露都大得多。想象一下,如果交易的接收者试图对发送者进行去匿名化。每次隐私泄漏都会消除许多发送者是谁的候选者,两个不同的隐私泄漏会消除不同的候选者,留下的候选者要少得多。有关此图表,请参见图表。

与报纸买家的数据融合图示例。

这就是为什么即使是少量信息的泄露也应该避免的原因,因为当与其他泄露相结合时,它们通常会完全破坏隐私。回到非匿名中文报纸买家的例子,由于可见的交易信息和他的论坛签名捐赠地址的结合,他被去匿名化了。区块链上有很多交易,它们本身并没有透露任何关于交易者身份或消费习惯的信息。论坛签名中放置了许多捐赠地址,这些地址也没有透露太多关于所有者身份或消费习惯的信息,因为它们只是随机的加密信息。但是这两次隐私泄露一起导致了再教育营的旅行。

为什么要隐私

金融隐私是比特币可替代性的一个基本要素:如果你能有意义地将一种硬币与另一种硬币区分开来,那么它们的可替代性就很弱。如果我们在实践中的可替代性太弱,那么我们就不能去中心化:如果某个重要人物宣布了一份他们不会接受衍生的硬币的被盗硬币清单,你必须仔细检查你接受的硬币与该清单并归还失败的硬币。每个人都被各种当局发布的黑名单卡住了,因为在那个世界里,我们都不想被坏硬币卡住。这增加了摩擦和交易成本,并允许黑名单提供者进行审查,从而降低了比特币作为货币的价值。

财务隐私是自由市场有效运作的基本标准:如果您经营一家企业,如果您的供应商和客户可以违背您的意愿看到您的所有交易,您就无法有效地定价。如果您的竞争对手正在跟踪您的销售,您将无法有效竞争。如果您对自己的帐户没有隐私权,那么您的个人信息杠杆就会在您的私人交易中丢失:如果您在没有足够隐私的情况下用比特币向房东付款,您的房东会看到您何时收到加薪并可能会打击您更多的租金。

财务隐私对人身安全至关重要:如果窃贼可以看到您的支出、收入和财产,他们就可以利用这些信息来瞄准和利用您。如果没有隐私,恶意方更有能力窃取您的身份,从您家门口抢走您的大笔购买,或冒充您与您进行交易的企业......他们可以准确地告诉您试图欺骗您的金额。

财务隐私对于人的尊严至关重要:没有人希望咖啡店里的流氓咖啡师或他们爱管闲事的邻居评论他们的收入或消费习惯。没有人希望他们的孩子疯狂的姻亲问他们为什么要购买避孕药具(或性玩具)。你的雇主不知道你捐给了哪个教堂。只有在一个完全开明的无歧视世界中,没有人对其他任何人拥有不当权力,如果我们没有隐私,我们才能保持我们的尊严并在没有自我审查的情况下自由地进行合法交易。

最重要的是,财务隐私与执法或透明度等内容并不矛盾。您可以随时保留记录,被命令(或自愿)将它们提供给任何人,当您无法制作记录时(就像今天的情况一样),让法官不顾您的利益。这些都不需要globally可见的公共记录。

全球可见的金融公共记录是完全闻所未闻的。它们是不可取的,并且可以说是无法容忍的。比特币白皮书承诺我们如何通过假名地址绕过分类帐的可见性,但生态系统在很多地方都违背了这一承诺,我们应该修复它。比特币本可以将您的姓名或 IP 地址编码到每笔交易中。它没有。白皮书甚至有一个关于隐私的部分。说比特币不关注隐私是不正确的。足够的隐私是可行的数字货币的必要先决条件[2]。

区块链对隐私的攻击

比特币使用区块链。用户可以下载并验证区块链,以检查比特币的所有规则在其整个历史中是否得到遵守。例如,用户可以检查没有人打印出无限的比特币,并且每个硬币都只在其私钥创建的有效签名下使用。这就是导致比特币作为一种只需要少量信任的电子现金形式的独特价值主张的原因。但是相同的区块链结构会导致隐私问题,因为每笔交易都必须永远可供所有人查看。本节讨论对手可能用于分析公共区块链的已知方法。

比特币使用UTXO 模型。交易有输入和输出,它们可以有一个或多个。以前的输出可以用作以后交易的输入。尚未花费的输出称为未花费的交易输出(UTXO)。UXTO 通常被称为“硬币”。UTXO 与比特币地址相关联,可以通过创建与地址的 scriptPubKey 对应的有效签名来使用。

地址是加密信息,本质上是随机数。就他们自己而言,他们并没有透露太多关于他们身上任何比特币的真正所有者的信息。通常,攻击者会尝试将他们认为属于同一个钱包的多个地址链接在一起。这样的地址集合称为“集群”、“闭包”或“钱包集群”,创建它们的活动称为“钱包集群”。一旦获得集群,攻击者就可以尝试将它们链接到它想要监视的实体的真实身份。例如,它可能会找到属于 Alice 的钱包集群 A 和属于 Bob 的另一个钱包集群 B。如果看到比特币交易从集群 A 支付到集群 B,那么攻击者就知道 Alice 已经向 Bob 发送了硬币。

微调钱包聚类的启发式方法可能非常困难,从而获得实际正确的信息[3]。

公共输入所有权启发式

这是一种启发式或假设,如果交易有多个输入,那么所有这些输入都归同一个实体所有。

例如,考虑这个具有输入 A、B 和 C 的交易;并输出 X 和 Y。

A (1 btc) --> X (4 btc)
B (2 btc) Y (2 btc)
C (3 比特币)

该交易表明地址B 和 C 由拥有地址A 的同一个人所有。

CoinJoin的目的之一就是打破这种启发式。尽管如此,这种启发式方法非常普遍,并且截至 2019 年它被交易监控公司和其他对手广泛使用。启发式方法通常与地址重用推理相结合,这与 2018 年有点中心化的比特币经济一起是为什么这种启发式方法可以不合理有效[4]。启发式的成功还取决于钱包的行为:例如,如果钱包通常接收少量并发送大量,那么它将创建许多多输入交易。

更改地址检测

许多比特币交易都有找零输出。如果能以某种方式找到更改地址,那将是严重的隐私泄露,因为它会将(现在已使用的)输入的所有权与新的输出联系起来。当与其他隐私泄漏(如公共输入所有权启发式或地址重用)结合使用时,更改输出可能非常有效。更改地址检测允许攻击者将新创建的地址聚集在一起,共同输入所有权启发式和地址重用允许将过去的地址聚集在一起。

更改地址导致了一种常见的使用模式,称为剥离链。在交易所、市场、矿池和工资支付的大笔交易之后可以看到。在剥离链中,单个地址以相对大量的比特币开始。然后从这个较大的金额中剥离较小的金额,创建一笔交易,其中少量金额转移到一个地址,其余部分转移到一次性更改地址。重复此过程 - 可能有数百或数千跳 - 直到减少较大的数量,此时(在一次使用中)地址中剩余的数量可能与其他此类地址聚合以再次产生大量单个地址,剥皮过程再次开始[5].

现在列出了推断交易的哪些输出是零钱输出的可能方法:

地址重用

如果一个输出地址已经被重用,它很可能是一个支付输出,而不是一个找零输出。这是因为零钱地址是由钱包软件自动创建的,而支付地址是在人与人之间手动发送的。地址重用之所以会发生,是因为人类用户出于无知或冷漠而重用了一个地址。这种启发式方法可能是最准确的,因为很难想象会出现误报(除非是有意设计的钱包)。这种启发式也称为“影子启发式”。

一些非常老的软件(从 2010 年到 2011 年没有确定性钱包)没有使用新的地址更改,而是将更改发送回输入地址。这准确地显示了更改地址。

避免地址重用是一个明显的补救措施。另一个想法是,这些钱包可以自动检测之前何时使用过支付地址(可能通过询问用户),然后使用重复使用的地址作为他们的找零地址;所以两个输出都将被重用地址。

此外,互联网、论坛、Facebook、Reddit、Stackoverflow 等社交网络上都提到了大多数重复使用的地址。您可以在https://checkbitcoinaddress.com/网站上找到并查看这些地址。这有点像伪匿名区块链的去匿名化。

钱包指纹

细心的分析师有时会推断出是哪个软件创建了某个交易,因为许多不同的钱包软件并不总是以完全相同的方式创建交易。钱包指纹可用于检测零钱输出,因为零钱输出是使用相同钱包指纹花费的钱。

例如,考虑五个典型的事务,每个事务消耗一个输入并产生两个输出。A、B、C、D、E 指的是交易。A1、A2 等是指这些交易的输出地址

           --> C1
A1 --> B2 --> C2
   --> B2 --> D1
           --> D2 --> E1
                  --> E2

如果钱包指纹发现交易A、B、D和E是由同一个钱包软件创建的,而其他交易是由其他软件创建的,那么找零地址就很明显了。显示了用 X 替换的不匹配地址的相同交易。剥离链可见,很明显B2、D2、E1是找零地址,与A1属于同一个钱包。

           --> X
A1 --> X --> X
   --> B2 --> X
           --> D2 --> E1
                  --> X

有多种方法可以获取用于识别钱包软件的证据:

  • 地址格式。钱包通常只使用一种地址类型。如果交易具有相同地址类型(例如 p2pkh)的所有输入和一个输出,以及不同类型(p2sh)的剩余输出,那么合理的假设是相同地址格式的输出(p2pkh)是变化的并且不同地址格式的输出(p2sh)是属于其他人的付款。

  • 脚本类型。每个钱包一般只使用一个脚本。例如,发送钱包可能是一个P2SH 2-of-3多重签名钱包,它对两个输出进行交易:一个 2-of-3 多重签名地址和另一个 2-of-2 多重签名地址。不同的脚本强烈表明输出是付款,而另一个输出是零钱。

  • BIP69交易输入和输出的字典索引。该 BIP 描述了一种标准的钱包排序输入和输出以保护隐私的方式。目前,钱包生态系统混合了执行和不执行标准的钱包,这有助于指纹识别。请注意,具有随机顺序的常见一输入二输出交易将在 50% 的时间内偶然遵循 BIP69。

  • 输入和输出的数量。不同的用户经常以不同的方式构建交易。例如,个人通常只使用两个输出进行交易;支付和更改,而像赌场或交易所这样的大容量机构使用合并和批处理[6] [7]。稍后用于创建批处理事务的输出可能不是更改。这种启发式也称为“消费者启发式”。

  • 交易字段。交易格式中的值可能因钱包软件而异:nLockTime是一些钱包在交易中设置的一个字段,用于降低费用狙击的利润。生态系统中的钱包混合实现或不实现此功能。nLockTime 也可用于某些隐私协议,如CoinSwap。nSequence是另一个例子。还有版本号。

  • 低 R 值签名。用于编码比特币签名的 DER 格式需要在签名中添加一个完整的额外字节,以指示签名的 R 值何时位于用于比特币的椭圆曲线的上半部分。R 值是随机派生的,因此一半的签名都有这个额外的字节。截至 2018 年 7 月[8]比特币核心仅生成具有低 R 值的签名,不需要这个额外的字节。通过这样做,比特币核心交易将每两个签名(平均)节省一个字节。截至 2019 年,没有其他钱包这样做,因此高 R 签名是比特币核心未被使用的证据[9]。

  • 未压缩和压缩的公钥。较旧的钱包软件使用未压缩的公钥[10]。压缩和未压缩密钥的混合可用于指纹识别。

  • 矿工费。各种钱包软件可能以不同的方式响应区块空间压力,这可能导致支付不同类型的矿工费用。这也可能是指纹钱包的一种方式。

  • 硬币选择。各种钱包软件可以使用可用于指纹识别的不同算法来选择花费哪些 UTXO。

如果多个用户使用同一个钱包软件,则钱包指纹无法检测到找零地址。也有可能一个用户拥有两个使用不同软件的不同钱包(例如热钱包和冷钱包),然后不同软件之间的交易不会表明所有权发生变化。钱包指纹本身永远不是决定性的证据,但与所有其他隐私泄漏一样,当多个隐私泄漏结合在一起时,它最适合数据融合。

整数

许多付款金额都是整数,例如 1 BTC 或 0.1 BTC。剩余的找零金额将是一个非整数(例如 1.78213974 BTC)。这对于查找更改地址可能很有用。金额可以是另一种货币的整数。2.24159873 BTC 的金额不是比特币的整数,但当转换为美元时,它可能接近 100 美元。

收费暴涨

BIP 0125定义了一种机制,用于将未确认的交易替换为另一笔支付更高费用的交易。在区块空间市场的背景下,用户可能会发现他们的交易确认速度不够快,因此他们选择“收费”或支付更高的矿工费。然而,通常新的更高的矿工费将通过减少找零来实现。因此,如果攻击者正在观察所有未确认的交易,他们可以同时看到早期的低费用交易和后来的高费用交易,并且数量减少的输出将是零钱输出。

有时可以通过减少两个输出的数量、减少支付金额而不是更改(在接收者付费模型中)或在每个 RBF 交易中替换两个地址(这将需要获得多个收款人的付款地址)。

不必要的输入启发式

也称为“最优变化启发式”。考虑一下这个比特币交易。它有两个价值 2 BTC 和 3 BTC 的输入和两个价值 4 BTC 和 1 BTC 的输出。

2 比特币 --> 4 比特币
3个比特币 1个比特币

假设其中一个输出是零钱,另一个输出是付款。有两种解释:支付输出是 4 BTC 输出或 1 BTC 输出。但是,如果 1 BTC 输出是支付金额,那么 3 BTC 输入是不必要的,因为钱包本可以只花费 2 BTC 输入并为此支付较低的矿工费用。这表明实际支付输出是 4 BTC,而 1 BTC 是找零输出。

对于具有多个输入的事务来说,这是一个问题。解决此泄漏的一种方法是添加更多输入,直到更改输出高于任何输入,例如:

2 比特币 --> 4 比特币
3 比特币 6 比特币
5比特币

现在两种解释都暗示一些输入是不必要的。不幸的是,这会花费更多的矿工费用,并且只有在钱包实际拥有其他 UTXO 时才能完成。

一些钱包的硬币选择算法违反了这种启发式。一个例子可能是因为钱包想在矿工费用便宜的时候整合输入。所以这个启发式不是决定性的证据。

发送到不同的脚本类型

将资金发送到与您支出的脚本类型不同的脚本类型可以更容易地判断哪个输出是更改。

例如,对于具有 1 个输入的交易,花费一个 p2pkh 硬币并创建 2 个输出,一个 p2pkh 和一个 p2sh,很可能 p2pkh 输出是找零,而 p2sh 输出是支付。

如果输入是混合类型(由支持多种脚本类型以实现向后兼容性的钱包创建),这也是可能的。如果已知一种输出脚本类型被钱包使用(因为相同的脚本类型被至少一个输入使用)而另一种不是,那么另一种可能是付款。

这对 p2sh 或 segwit 等新钱包技术的早期采用者影响最大。支付给与您使用相同脚本类型的人越少,您泄露更改输出的身份就越多。随着新技术获得更广泛的采用,这将随着时间的推移而改善。

钱包错误

一些钱包软件以非常不私密的方式处理变化。例如,某些旧钱包总是将零钱输出放在交易的最后。旧版本的比特币核心会在交易中添加输入的 UTXO,直到变化量约为 0.1 BTC,因此略高于 0.1 BTC 的数量将始终是变化的。

等量输出CoinJoin

Equal-output- CoinJoin交易可以简单地揭示找零地址,因为它是不等值的输出。例如考虑这个等输出硬币连接:

              一个 (1btc)
X (5btc) ---> B (1btc)
Y (3btc) C (4btc)
              D (2btc)

有一个非常强烈的迹象表明,输出 D 是属于输入 Y 的所有者的零钱,而输出 C 是属于输入 X 的零钱。然而,CoinJoin打破了公共输入所有权启发式并有效地隐藏了支付输出的所有权(A和 B),因此权衡仍然非常支持使用 coinjoin。

集群增长

使用公共输入所有权启发式创建的钱包集群通常会缓慢且递增地增长(地址数量)[11]。两个大型集群合并的情况很少见,这可能表明启发式方法存在缺陷。所以另一种推断更改地址的方法是找出哪个输出导致集群增长缓慢。允许集群增长“多慢”的确切值是一个悬而未决的问题。

交易图启发式

如引言所述,地址通过区块链上的交易连接在一起。图的数学概念可用于描述地址与交易相关的结构。地址是顶点,而事务是此事务图中的边。

这被称为启发式,因为区块链上的交易不一定对应于真实的经济交易。例如,交易可能代表某人向自己发送比特币。此外,实体经济交易可能不在区块链上出现,而是在链下;通过像交易所这样的托管实体,或者像闪电网络这样的非托管链下。

污点分析

污点分析是一种有时用于研究比特币流动和提取隐私相关信息的技术。如果地址 A 与隐私相关信息(例如真实姓名)相关联,并且它进行了向地址 B 发送硬币的交易,则称地址 B 被来自地址 A 的硬币污染。通过这种方式,污染通过通过交易“触摸” [12]. 目前还不清楚污点分析对间谍活动有多大用处,因为它没有考虑所有权的转移。例如,受污染硬币的所有者可能会将其中一些捐赠给某个慈善机构,捐赠的硬币可以说是受污染的,但慈善机构并不关心,也无法提供有关这些硬币来源的任何信息。污点分析可能只对破坏有人试图通过多次向自己发送数十笔虚假交易来隐藏硬币来源的计划有用。

数量

区块链交易包含交易输入和输出的金额信息,以及隐含的矿工费金额。这是所有人都可以看到的。

交易的付款金额通常是整数,可能在转换为另一种货币时。比特币交易中的整数分析已被用于衡量发生支付的国家或地区[13]。

显示发送者财富的输入金额

可用输入的大小与所需输入的大小不匹配可能导致发送者总财富的隐私泄露。例如,当打算向某人发送 1 个比特币时,用户可能只有一个价值 10 个比特币的输入。他们创建了一笔交易,其中 1 个比特币流向收件人,9 个比特币流向更改地址。接收者可以查看区块链上的交易并推断发送者拥有至少 10 个比特币。

以纸币为例,如果您交出一张 100 美元的钞票来支付仅 5 美元的饮料,酒保就会知道您的余额至少为 95 美元。当然,它可能会更高,但至少不会更低[14]。

确切的付款金额(无变化)

发送准确金额且未更改的付款可能表明比特币没有移动。

这通常意味着用户使用“发送最大金额”钱包功能将资金转移到她的新钱包、交易所账户、为闪电通道提供资金,或其他类似情况下比特币仍属于同一所有权。

发送准确金额而不找零的其他可能原因是硬币选择算法很聪明,并且足够幸运,可以为不需要找零的预期付款金额找到一组合适的输入(或需要足够可忽略不计的找零金额)放弃),或高级用户使用手动硬币选择来明确避免找零。

配料

支付批处理是一种降低支付矿工费用的技术。它通过将多笔付款批量处理成一个区块链 交易来工作。它通常被交易所、赌场和其他高消费量的消费者使用。

隐私含义在于收件人可以看到收件人的数量和地址[15]

当您从 Kraken 收到提款时,您可以在区块链浏览器上查找您的交易,并查看在同一交易中收到付款的其他所有人的地址。你不知道这些收件人是谁,但你知道他们从 Kraken 收到的比特币和你一样。

这对隐私不利,但也可能不是最糟糕的事情。如果 Kraken 分别支付这些款项,它们可能仍然通过变化输出连接在一起,也可能通过区块链分析公司和个人用来识别特定消费者的某些其他识别特征连接在一起。

但是,如果您正在考虑在隐私可能特别重要或已经有些薄弱的情况下分批付款,例如在您不希望每个员工了解其他员工工资的小公司制作工资单,请记住这一点.

不寻常的脚本

大多数但不是所有比特币脚本都是单一签名的。其他脚本也是可能的,最常见的是multisignature。一个特别不寻常的脚本可能会因为如此独特而泄露信息。

截至 2019 年,2-of-3 多重签名是迄今为止最常见的非单一签名脚本。

神秘顾客付款

神秘购物者付款是指对手向目标支付比特币以获得与隐私相关的信息。即使避免地址重用,它也会起作用。例如,如果目标是在线商家,那么攻击者可以购买小商品。在支付界面上,他们将显示商家的比特币地址之一。攻击者现在知道该地址属于商家,并且通过观察区块链以进行后续交易,其他信息将被泄露,当与其他技术结合使用时,可能会泄露有关商家的大量数据。公共输入所有权启发式更改地址检测可以揭示属于商家的其他地址(假设不使用CoinJoin等对策),并可以给出销售额的下限。这是有效的,因为整个互联网上的任何人都可以请求商家的地址之一。

强制地址重用

强制地址重用是指攻击者向区块链上已使用的地址支付(通常是少量)比特币。攻击者希望用户或他们的钱包软件将这些强制支付用作更大交易的输入,该交易将通过共同输入所有权启发式揭示其他地址,从而泄露更多与隐私相关的信息。这些付款可以理解为一种强制地址所有者进行无意地址重用的方式[16] [17]。

这种攻击有时被错误地称为灰尘攻击[18]。

如果强制支付的硬币落在了已经使用的空地址上,那么钱包的正确行为是永远不要花费这些硬币。如果硬币落在了非空地址上,那么钱包的正确行为是在同一笔交易中将所有硬币都花在该地址上。

金额相关性

金额相关性是指在整个区块链中搜索输出金额。

例如,假设我们正在使用任何破坏交易图的黑盒隐私技术。

V --> [黑盒隐私技术] --> V - 费用

隐私技术用于混合V数量的比特币,并将V比特币减去费用返还给用户。通过在区块链中搜索输出金额接近 V 的交易,可以使用金额相关性来分解这项技术。

抵制金额相关性的一种方法是将比特币发送回用户分成许多输出金额(w0、w1、w2)的交易,这些交易加起来等于 V 减去费用。

V --> [隐私技术] --> w0
            --> w1
            --> w2

使用数量相关性的另一种方法是使用它来找到一个起点。例如,如果 Bob 想监视 Alice。假设 Alice 顺便提到她和男朋友去度假花费 5000 美元,Bob 可以在适当的时间段搜索区块链上的所有交易,并找到输出金额接近 5000 美元的交易。即使找到多个匹配项,Bob 仍然可以很好地了解哪些比特币地址属于 Alice。

时序相关

时间关联是指使用区块链上交易的时间信息。与金额相关性类似,如果对手以某种方式发现了有趣的交易发生的时间,他们可以在该时间段内搜索区块链以缩小他们的候选范围。

这可以通过统一随机选择从现在到广播比特币交易的适当时间段之间的时间来解决。这迫使对手搜索更多现有交易;他们必须同样考虑从现在到 time_period 之间的整个匿名集。

对隐私的非区块链攻击

流量分析

比特币节点通过点对点网络相互通信以传输交易和区块。节点将这些数据包中继到它们的所有连接,这具有良好的隐私属性,因为连接的节点不知道传输的数据是否来自其对等方或对等方是否只是中继它。

能够窥探您的 Internet 连接的对手(例如您的政府、ISP、Wifi 提供商或 VPN 提供商)可以看到您的节点发送和接收的数据。这将表明您是比特币用户。即使连接被加密,攻击者仍然可以看到数据包的时间和大小。正在开采的区块会导致每个比特币节点大量同步爆发相同大小的流量,因为这种比特币节点非常容易受到流量分析的影响,从而揭示了比特币正在被使用的事实。

如果对手看到从您的节点传出的交易或区块之前没有进入,那么它几乎可以肯定地知道该交易是由您进行的,或者该区块是由您开采的。由于涉及互联网连接,攻击者将能够将 IP 地址与发现的比特币信息联系起来。

可以使用某种女巫攻击来发现交易或阻止的来源,而无需对手完全控制受害者的互联网连接。它的工作原理是攻击者在不同的 IP 地址上创建许多自己的假节点,这些节点积极地宣布自己以吸引更多节点连接到它们,他们还尝试连接到尽可能多的其他侦听节点。这种高连接性有助于对手在新广播的交易和区块通过网络传播时对其进行跟踪,从而定位它们的源头。[19] [20] [21] [22]. 一些钱包会定期重播其未经确认的交易,以便它们更有可能通过网络广泛传播并被挖掘。

一些钱包不是完整节点,而是以不同方式运行的轻量级节点。它们通常具有更差的隐私属性,但严重程度取决于每个钱包的详细信息。一些轻量级钱包只能连接到你自己的全节点,如果这样做,他们在流量分析方面的隐私将提高到全节点的水平。

保管钱包

一些比特币钱包只是连接到某个公司运行的后端服务器的前端。这种钱包完全没有隐私,运营公司可以看到所有用户的地址和他们的所有交易,大多数时候他们也会看到用户的IP地址。用户不应使用网络钱包。

主条目:基于浏览器的钱包

第三方钱包历史检索

所有比特币钱包都必须以某种方式获取有关其余额和历史记录的信息,这可能会泄露有关哪些地址和交易属于它们的信息。

区块链浏览器网站

区块链浏览器网站是常用的。一些用户甚至在这些网站上搜索他们的交易并刷新,直到达到 3次确认。这对隐私非常不利,因为该网站可以轻松地将用户的 IP 地址链接到他们的比特币交易(除非使用了tor),并且对其网站的查询显示该交易或地址对具有某些行为模式的人感兴趣。

要获取有关您的交易的信息,最好使用您的钱包软件,而不是某些网站。

BIP 37

许多轻量级钱包使用BIP37标准,该标准存在严重的设计缺陷,导致隐私泄露。任何使用BIP37的钱包根本不提供隐私,相当于将所有钱包地址发送到随机服务器。该服务器可以轻松监视钱包。在设计和理解其他隐私解决方案时,从 BIP37 的失败中吸取的教训可能很有用,尤其是在将 BIP37 布隆过滤器泄漏与区块链交易信息泄漏相结合的数据融合方面。

主条目:BIP37 隐私问题

公共 Electrum 服务器

Electrum是一种流行的软件钱包,它通过连接到专用服务器来工作。这些服务器接收钱包中比特币地址的哈希值并回复交易信息。Electrum 钱包速度快且资源少,但默认情况下它连接到可以轻松监视用户的这些服务器。除Electrum之外的其他一些软件使用公共 Electrum 服务器。截至 2019 年,它是比 BIP37 更快、更好的轻量级钱包替代方案。

服务器只学习地址的哈希值而不是地址本身,实际上他们只知道实际地址和相关交易,如果它至少在区块链上使用过一次。

运行你自己的 Electrum 服务器并让你的钱包只使用它并不是很困难。这使Electrum恢复了与完整节点相同的隐私和安全属性,没有其他人可以看到钱包对哪些地址或交易感兴趣。然后Electrum成为一个完整节点钱包。

通讯窃听

一个简单但有效的隐私泄露。爱丽丝给鲍勃一个她的地址来接收付款,但通信被夏娃窃听,她看到了这个地址,现在知道它属于爱丽丝。解决方案是在适当的地方加密地址,或者根据威胁模型使用另一种方式以某种方式将它们隐藏在对手面前。

有时窃听可能非常微不足道,例如一些论坛用户在他们的网站上发布比特币捐赠地址、论坛签名、个人资料、推特页面等,搜索引擎可以将其获取。在介绍中的非匿名中国报纸买家的例子中,他的地址在他的论坛签名上公开可见是他去匿名化的关键部分。这里的解决方案是向每个潜在的捐赠者显示一个新地址,例如通过设置一个 Web 服务器来向每个访问者分发唯一的地址。

交易比特币时泄露数据

有时用户可能会自愿透露有关他们自己的数据,或者被他们与之交互的实体要求。例如,许多交易所要求用户进行反洗钱和了解你的客户(AML/KYC)检查,这要求用户披露其真实姓名、住所、职业和收入等各种侵入性个人信息。然后,所有这些信息都与稍后使用 的比特币地址和交易相关联。

使用比特币在线购买商品时,需要提供邮寄地址。这将比特币交易与送货地址联系起来。这同样适用于用户的 IP 地址(除非使用了Tor等隐私技术)。

数字取证

钱包软件通常将操作所需的信息存储在运行它的计算机的磁盘上。如果攻击者可以访问该磁盘,它可以提取已知与该磁盘所有者相关联的比特币地址和交易。同一张磁盘可能包含其他个人信息(例如身份证扫描件)。数字取证是所有优秀钱包软件加密钱包文件的原因之一,尽管如果使用弱加密密码,这可能会被打败。

例如,如果您在 PC 上安装了比特币钱包并将计算机交给维修店进行维修,那么维修店操作员可以找到您所有交易的钱包文件和记录。其他示例可能是旧硬盘被丢弃。安装在同一台计算机上的其他软件(例如恶意软件)也可以从磁盘或 RAM 中读取,以监视用户进行的比特币交易。

出于隐私考虑,请勿将您计算机上的数据留给他人使用。具体如何取决于您的威胁模型。加密和物理保护是可选的,使用像Tails OS这样的特殊操作系统,它不会从硬盘驱动器读取或写入,而只使用 RAM,然后在关机时删除所有数据。

改善隐私的方法(非区块链)

匿名获取比特币

如果对手没有将你的比特币地址与你的身份相关联,那么隐私就会容易得多。如果没有可链接回的起点, 区块链间谍方法(如公共输入所有权启发式、检测更改地址和金额相关性)本身就不是很有效。

许多交易所要求用户进行反洗钱和了解你的客户(AML/KYC)检查,这要求用户披露其真实姓名、住所、职业和收入等各种侵入性个人信息。然后,所有这些信息都与稍后使用 的比特币地址和交易相关联。

避免 AML/KYC 的隐私侵犯可能是个人可以做的最重要的事情来改善他们的隐私。它比CoinJoin等任何实际技术都要好得多。事实上,如果所有用户都只在 AML/KYC 机构之间进行交易,那么所有的密码学和隐私技巧都是无关紧要的[23]。

现金交易

实物现金是一种匿名的交换媒介,因此使用它是一种匿名获取比特币的方式,除了贸易伙伴之外,没有人交换识别数据。

本部分不会列出查找此类聚会的网站,因为信息可能会过时,但请尝试使用“buy bitcoin for cash ”搜索网络。请注意,某些服务仍然需要 ID,因此值得检查。某些服务仅需要为投放广告的交易者提供 ID。截至 2018 年底,至少有一个去中心化交易所开源项目正在开发中,旨在促进这种交易,而不需要中心化的第三方,而是使用点对点网络。

现金交易是一种古老而流行的方法。两名交易员安排在某个地方见面,买方交出现金,而卖方则向买方进行比特币交易。这类似于组织交流会的其他互联网现象,如 Craigslist。托管可用于提高安全性或避免在聚会 上等待确认。

邮寄现金的工作原理是让买方通过邮件发送实物现金。托管始终用于防止诈骗。比特币的买家可以非常匿名,但卖家必须向买家透露一个邮件地址。邮寄现金可以远距离工作,但确实取决于邮政服务基础设施。如果有任何关于通过邮件发送现金的指南,用户应咨询当地的邮政服务。通常现金也可以投保。

现金存款是买方将现金直接存入卖方银行账户的一种方式。再次使用托管,并且比特币的买家也可以是近乎匿名的,但卖家必须与银行或金融机构签约,并与他们分享有关个人身份和财务历史的相当侵入性的细节。这种方法依赖于个人银行基础设施,因此可以长距离工作。

现金死投是一种很少使用的方法。它类似于现金交易,但交易者从不见面。买家选择一个位置将现金藏在公共位置,然后买家向卖家发送消息告诉他们该位置,最后卖家从隐藏的位置提取现金。托管是避免诈骗的必要条件。这种方法对于买家来说是非常匿名的,因为卖家甚至不会知道他们的外貌,对于卖家来说,它的匿名性略低,因为买家可以跟踪该位置以观看卖家收取现金。

现金替代品

礼品卡、手机信用卡或预付借记卡等现金替代品通常可以用现金从正规商店购买,然后在网上交易比特币。

就业

如果雇主不要求提供太多个人信息,则接受作为工作报酬的比特币可以是匿名的。这可能在自由职业者或承包环境中运作良好。虽然如果你的对手是你自己的雇主,那么显然这不是很好的隐私。

矿业

挖矿是获取比特币的最匿名方式。这适用于单人挖矿,因为矿池通常知道哈希器的 IP 地址。根据操作的规模,采矿可能会使用大量电力,这可能会引起怀疑。此外,专门的采矿硬件可能难以匿名获取(尽管它们不会与由此产生的开采比特币相关联)。

偷窃

理论上,获取匿名比特币的另一种方法是窃取它们。[24]

至少有一种情况发生了这种情况。2015 年 5 月,名为 Phineas Fisher [25]的黑客入侵了一家向独裁者出售监控产品的间谍软件公司[26]。黑客使用从其他人那里窃取的比特币匿名租用基础设施以进行后续攻击。

匿名消费比特币

如果您放弃您的送货地址(如果您在网上购买实物商品,则必须这样做),那么这将是数据泄露。显然,这在很多情况下是不可避免的。

钱包历史同步

比特币钱包必须以某种方式获取有关其余额和历史的信息。截至 2018 年底,最实用和最私密的现有解决方案是使用全节点钱包(最大限度地保密)和客户端块过滤(非常好)。

这些技术的一个问题是,它们总是比网络钱包和集中式Electrum服务器等非私有解决方案花费更多的资源(时间、带宽、存储等) 。有测量表明很少有人真正使用BIP37,因为它太慢了[27],所以即使是客户端块过滤也可能不会被太多使用。

全节点

全节点下载整个区块链,其中包含比特币中发生的每笔链上交易。因此,监视用户互联网连接的对手将无法了解用户感兴趣的交易或地址。这是钱包历史同步与隐私的最佳解决方案,但不幸的是,它会花费大量时间和带宽。

私人信息检索

在密码学中,私有信息检索 (PIR) 协议是一种协议,它允许用户从拥有数据库的服务器中检索项目,而无需透露检索到的项目。这已被提议作为私人同步钱包历史的一种方式,但由于 PIR 非常耗费资源,不介意花费带宽和时间的用户可以只运行一个完整的节点。

客户端块过滤

客户端块过滤通过创建包含块中每个事务的所有地址的过滤器来工作。过滤器可以测试一个元素是否在集合中;假阳性是可能的,但不是假阴性。轻量级钱包会下载区块链中每个区块的所有过滤器,并检查是否与自己的地址匹配。包含匹配的区块将从对等网络完整下载,这些区块将用于获取钱包的历史记录和当前余额。

通过洋葱路由查询地址

钱包历史可以从集中式服务器(例如Electrum服务器)获得,但对每个地址使用新的 Tor 电路。一个密切相关的想法是在洋葱路由网络中将Electrum服务器连接在一起[28]。在创建这样的方案时,应注意避免将地址链接在一起的时间相关性,否则服务器可能会利用地址被及时彼此靠近的事实。

流量分析对策

比特币核心及其分叉具有针对女巫攻击和日食攻击的对策。Eclipse 攻击是女巫攻击,攻击者试图控制其目标的所有对等方并阻止或控制对网络其余部分的访问[29]。此类攻击已在 2015 年的一篇论文Eclipse Attacks on Bitcoin's Peer-to-Peer Network中得到广泛研究,该论文导致为Bitcoin Core编写新代码以进行缓解。[30] [31] [32] [33] [34]

Bitcoin Core及其分叉在中继未经确认的交易时使用一种称为涓流的算法,目的是使女巫攻击者尽可能难以找到交易的源 IP 地址。对于每个对等点,该节点都保存了一个它要向它发起的交易列表。它定期发送交易的inv,每个inv之间有一个随机延迟。根据一些涉及费率的指标,选择交易以稍微随机地进入inv消息。它选择有限数量的交易来投资. [该算法创造了一种可能性,即对等节点可能会从创建者的邻居而不是创建者节点本身35] [36] [37] [38]那里听到未经确认的交易。然而,攻击者有时仍然可以获得与隐私相关的信息。

像在BIP 151中那样加密对等点之间的消息将使被动攻击者(例如 ISP 或 Wifi 提供商)更难看到比特币节点发送和接收的确切消息。

Tor 和 Tor 广播

如果一个连接控制对手是一个问题,那么比特币可以完全运行在tor上。Tor已加密并隐藏了端点,因此 ISP 或 Wifi 提供商甚至不会知道您正在使用比特币。其他连接的比特币节点将无法看到您的 IP 地址,因为Tor隐藏了它。比特币核心及其分叉具有使设置和使用tor更容易的功能。一些轻量级的钱包也完全运行在tor上。

完全通过tor运行的缺点是同步节点需要通过 tor 下载整个区块链,这将非常慢。通过 Tor下载块仅在您想要隐藏比特币甚至被互联网服务提供商使用的事实的情况下有所帮助[39]。可以通过 clearnet 下载块和未确认的交易,但通过tor广播您自己的交易,允许使用快速的 clearnet 连接,同时在广播时仍然提供隐私。

配置了该选项的比特币核心walletbroadcast=0将阻止属于用户的交易被广播和重新广播,从而允许它们通过tor或其他隐私保护方法进行广播[40]。

蒲公英

蒲公英是另一种私人交易广播技术。主要思想是事务传播分两个阶段进行:首先是“stem”阶段,然后是“fluff”阶段。在主干阶段,每个节点将事务中继到单个对等点。在沿着茎的随机数跳之后,交易进入绒毛阶段,其行为就像普通的交易泛滥/扩散一样。即使攻击者可以识别绒毛阶段的位置,要识别茎的来源也要困难得多。[41] [42] [43] [44]

交互式对等广播

CoinJoin和CoinSwap等一些隐私技术需要许多比特币实体之间的交互性。它们还可以用于广播具有更多隐私的交易,因为隐私协议中的对等方可以使用他们用来相互交互的现有协议相互发送未经确认的交易。

例如,在JoinMarket中,做市商可以将交易发送给做市商,做市商将进行广播,从而提高接受者的隐私。这比设置Tor与Tor 广播一起使用对 Taker 来说更方便。

通过卫星接收比特币数据

至少有一家比特币公司提供卫星比特币服务[45]。这是一项免费服务,卫星将比特币区块链广播到世界上几乎任何地方。如果用户在太空中设置一个指向卫星的碟形天线,那么他们可以接收运行完整节点所需的比特币块。由于卫星设置是只接收的,没有人可以检测到用户甚至在运行比特币,当然也不能检测到哪些地址或交易属于他们。

截至 2019 年,该公司提供付费 API,允许通过卫星将任何数据广播到世界任何地方,这似乎是他们赚钱的方式。但似乎广播区块链的基本服务将永远是免费的。

主条目:https ://blockstream.com/satellite/

改善隐私的方法(区块链)

本节介绍了用于改善与区块链上交易的永久记录相关的交易隐私的不同技术。有些技术是微不足道的,并且包含在所有好的比特币钱包中。其他一些已经在一些开源项目或服务中实现,它们一次可能使用一种以上的技术。其他技术尚未实施。其中许多技术专注于打破关于区块链的不同启发式和假设,因此它们结合在一起时效果最佳。

避免地址重用

多次使用的地址对隐私非常有害,因为这将更多的区块链交易链接在一起,并证明它们是由同一实体创建的。使用比特币最私密和最安全的方式是向每个付款人发送一个全新的地址。收到的硬币用完后,该地址不得再次使用。此外,发送比特币时应该要求一个全新的比特币地址。所有好的比特币钱包都有一个不鼓励地址重复使用的用户界面。

有人认为,“比特币地址”这个词对该对象来说是一个坏名字,因为它暗示它可以像电子邮件地址一样被重复使用。更好的名称是“比特币发票”。

比特币不是匿名的,而是假名的,假名是比特币地址。避免地址重用就像在使用后扔掉一个假名。

比特币核心0.17 包含一个更新,以通过地址重用来改善隐私状况[46]。当一个地址被多次支付时,来自这些单独支付的硬币可以单独使用,这会由于链接其他单独的地址而损害隐私。添加了 -avoidpartialspends 标志(默认=false),如果启用,钱包将始终将现有的 UTXO 一起花费到同一个地址,即使这会导致更高的费用。如果有人在使用后将硬币发送到某个地址,这些硬币仍将包含在未来的硬币选择中。

避免强制地址重用

避免因强制地址重用而导致隐私损失的最简单方法是不要花费已落在已使用和空地址上的硬币。通常付款的价值非常低,因此不会因为不花费硬币而损失相关资金。

另一种选择是将硬币个人直接用于矿工费用。以下是如何使用 Electrum 或 Bitcoin Core 执行此操作的说明:https ://gist.github.com/ncstdc/90fe6209a0b3ae815a6eaa2aef53524c

Dust-b-gone 是一个旧项目[47],旨在安全地使用强制地址重用付款。它与其他人一起签署所有 UTXO,并将其用于支付矿工费用。这些交易使用罕见的OP_CHECKSIG sighash 标志,因此可以轻松地从对手的分析中消除,但至少强制地址重用支付不会导致进一步的隐私损失。

硬币控制

硬币控制是一些比特币钱包的一个功能,它允许用户选择哪些硬币将被用作输出交易的输入。硬币控制旨在尽可能避免由金额、更改地址、交易图和公共输入所有权启发式 [48] [49] 引起隐私泄露的交易。

使用硬币控制避免交易图隐私泄露的示例:用户因工作而获得比特币,但有时也用现金购买比特币。用户想向他们热衷的慈善事业捐款,但不想让他们的雇主知道。该慈善机构还有一个公开可见的捐赠地址,可以通过网络搜索引擎找到。如果用户在没有硬币控制的情况下向慈善机构付款,他的钱包可能会使用来自雇主的硬币,这将允许雇主弄清楚用户捐赠给了哪个慈善机构。通过使用硬币控制,用户可以确保只有硬币用现金匿名获得的那些被送到了慈善机构。这避免了雇主知道用户在经济上支持这个慈善机构。

多笔交易

通过不止一次的链上交易向某人付款可以大大降低基于金额的隐私攻击的威力,例如金额相关性和整数。例如,如果用户想向某人支付 5 BTC,并且他们不希望 5 BTC 的价值被轻易搜索,那么他们可以发送两笔交易,价值 2 BTC 和 3 BTC,加起来等于 5比特币。

注重隐私的商家和服务应为客户提供多个可以支付的 比特币地址。

变更规避

避免变更是仔细选择交易输入和输出以根本不需要变更输出的地方。没有更改输出非常适合隐私,因为它破坏了更改检测启发式。

对于大容量比特币服务来说,避免变更是切实可行的,这些服务通常有大量可用于花费的输入,以及他们向其汇款的每个客户所需的大量输出。这种避免变更也降低了矿工费用,因为交易总体上使用的区块空间更少。

主条目:Techniques_to_reduce_transaction_fees#Change_avoidance

避免创建更改输出的另一种方法是在确切数量不重要并且整个 UTXO 或一组 UTXO 可以完全使用的情况下。一个例子是打开闪电网络 支付通道时。另一个例子是将资金转入冷藏钱包时,确切的金额可能并不重要。

多个变更输出

如果避免更改不是一种选择,那么创建多个更改输出可以提高隐私性。这也打破了通常假设只有一个变化输出的变化检测启发式。由于此方法比通常使用更多的块空间,因此避免更改是可取的。

脚本隐私改进

每个比特币输出的脚本都会泄露隐私相关信息。例如,截至 2018 年底,大约 70% 的比特币地址是单签名的,30% 是多签名的[ 50]。许多研究已经通过寻找使几种不同的脚本类型看起来相同的方法来改善脚本的隐私性。除了改善隐私之外,这些想法还通过减少存储和带宽需求来提高系统的可扩展性。

ECDSA-2P是一种加密方案,它允许创建 2-of-2多重签名方案,但当包含在区块链中时会产生常规的单签名ECDSA签名[51]。它不需要任何共识更改,因为比特币已经使用ECDSA。

Schnorr是一种数字签名方案,与现状的ECDSA [52] [53]相比有很多好处。一个副作用是,当包含在区块链中时,任何 N-of-N[ 54]和 M-of-N多重签名都可以很容易地看起来像一个单签名。将Schnorr添加到比特币需要软分叉共识更改。截至 2019 年,已经提出了签名方案的设计[55]。截至 2019 年初,所需的软分叉共识变更仍处于设计阶段。

无脚本脚本是一组加密协议,它提供了一种复制脚本逻辑的方法,而实际上脚本条件不可见,通过从区块链中删除信息来增加隐私和可扩展性[56] [57] [58] [59]。这通常针对涉及哈希时间锁定合约的协议,例如闪电网络和CoinSwap。

对于无脚本脚本,几乎唯一可见的是公钥和签名。不仅如此,在多方设置中,所有参与者都会有一个公钥和一个签名。一切看起来都一样——闪电 支付通道看起来与单签名支付、托管、原子交换或侧链联合挂钩相同。你认为人们在 2019 年对比特币所做的几乎所有事情,都可以看起来基本相同[60]。

MAST是 Merkelized Abstract Syntax Tree 的缩写,它是一种隐藏脚本合约未执行分支的方案。[它通过从区块链中删除信息61] [62]来提高隐私性和可扩展性。

Taproot是一种将 Schnorr 签名与 MAST [63]相结合的方法。Schnorr 签名可用于花费硬币,但只有当用户想要使用它时才能显示 MAST 树。schnorr 签名可以是任何 N-of-N 或使用任何无脚本脚本合约。Taproot的结果是为有趣的智能合约设置了更大的匿名性,因为任何合约,如闪电网络、CoinSwap、多重签名等,都与常规的单签名链上交易没有区别。

主根方案非常有用,因为有趣的脚本几乎总是有一个逻辑顶级分支,它允许只需要各方签名就可以满足合同。其他分支只会在某些参与者未能合作的情况下使用。

Graftroot是一种类似于 Taproot 的智能合约方案。它允许用户包含其他可能的脚本来花费硬币,但使用的资源甚至比主根还要少。权衡是参与者之间需要交互[64] [65] [66]。

nLockTime是序列化交易格式中的一个字段。它可以在某些情况下用于创建更私密的时间锁,从而避免使用脚本操作码。

ECDH 地址

ECDH 地址可用于通过帮助避免地址重用来改善隐私。例如,用户可以将ECDH 地址发布为捐赠地址,供想要捐赠的人使用。攻击者可以看到 ECDH 捐赠地址,但无法轻松找到进出该地址的任何交易。

然而, ECDH 地址并不能解决所有隐私问题,因为它们仍然容易受到神秘顾客付款的影响;攻击者可以捐赠一些比特币并在区块链上观察它们之后的去向,使用诸如共同输入所有权启发式之类的启发式来获取更多信息,例如捐赠量和资金的最终目的地。

ECDH 地址有一些实用性问题,非常类似于运行一个 http 网站,该网站将比特币地址分发给任何想要捐赠的人,除非没有额外的交互步骤。因此,目前尚不清楚 ECDH 在非交互式捐赠的用例之外是否有用,或者在没有任何交互性的情况下将钱发送到一个目的地的自包含应用程序。

集中式搅拌机

这是破坏事务图的旧方法。也称为“不倒翁”或“垫圈”。用户将比特币发送到混合服务,该服务会将不同的比特币发送回用户,减去费用。理论上,观察区块链的对手将无法链接传入和传出交易。

这有几个缺点。必须信任混合器来保密传入和传出交易之间的联系。此外,必须信任混音器不会偷硬币。这种盗窃风险会产生声誉效应;较老和更成熟的混币器将拥有更好的声誉,并且能够收取远高于混币边际成本的费用。此外,由于无法出售声誉,混音器的生态系统将充满偶尔的退出骗局。

混合器有一个更好的替代方案,它具有基本相同的隐私和托管风险。用户可以在任何具有热钱包的常规比特币网站上存入和取出硬币。只要比特币服务不需要用户提供任何其他信息,它就具有与集中式混合器相同的隐私和托管方面,而且价格也便宜得多。合适的比特币服务的例子是比特币赌场、比特币扑克网站、小费网站、山寨币交易所或在线市场[67]。

可以通过将多个服务级联在一起来解决服务完全了解事务的问题。想要避免被区块链的被动观察者跟踪的用户可以首先将硬币发送到比特币赌场,从中提取并直接发送到山寨币交易所,依此类推,直到用户对获得的隐私感到满意。

主条目:混合服务

硬币加入

CoinJoin是一种特殊的比特币交易,多个人或实体合作创建一个涉及他们所有输入的交易。它具有打破共同输入所有权启发式的效果,并利用了比特币在交易中固有的可替代性。CoinJoin技术从比特币诞生之初就已经成为可能,并且除了可以阻止任何其他比特币交易的方式外,不能被阻止。仅通过查看交易,无法确定它是否是coinjoin。CoinJoins 是非托管的,因为它们可以在没有参与coinjoin 的任何一方窃取任何其他人的比特币的情况下完成[68]。

等量输出CoinJoin

假设此交易是CoinJoin,这意味着 2 BTC 和 3 BTC 输入实际上由不同的实体拥有。

2 btc --> 3 btc
3个比特币 2个比特币

该交易打破了共同输入所有权启发式,因为它的输入并非全部归同一个人所有,但仍然很容易判断每个输入的比特币在哪里结束。通过查看金额(并假设两个实体不相互支付),很明显 2 BTC 输入最终成为 2 BTC 输出,3 BTC 也是如此。要真正提高隐私,您需要具有多个相等输出的 CoinJoin交易:

2 btc --> 2 btc
3个比特币 2个比特币
          1比特币

在此交易中,价值 2 BTC 的两个输出不能与输入相关联。它们可能来自任一输入。这是如何使用CoinJoin来改善隐私的关键,与其说是破坏交易图,不如说是把它融合在一起。请注意,1 BTC 输出并没有获得太多隐私,因为很容易将其与 3 BTC 输入链接。当这些 CoinJoin 重复多次时,它们的隐私收益会更加复杂。

截至 2018 年底,CoinJoin是唯一已部署的去中心化比特币隐私方法。比特币区块链上(可能)CoinJoin交易 ID 的示例是402d3e1df685d1fdf82f36b220079c1bf44db227df2d676625ebcbee3f6cb22a和85378815f6ee170aa8c26694ee2df42b99cff7fa9357f073c1192fff1f540238。请注意,这些 coinjoins 涉及两个以上的人,因此所涉及的每个用户都无法知道输入和输出之间的真正联系(除非他们共谋)。

付费加入

通过检查具有相同值的多个输出,可以很容易地识别上一节中讨论的CoinJoin类型。重要的是要注意,这种识别总是可以否认的,因为有人可以制作与投币交易具有相同结构但由一个人 制作的假CoinJoin 。

PayJoin(也称为支付到端点或 P2EP)[69] [70] [71]是两方之间的一种特殊类型的CoinJoin,其中一方支付另一方。然后,该交易没有具有相同值的独特的多个输出,因此作为等输出的CoinJoin不明显可见。考虑这个交易:

2 btc --> 3 btc
5个比特币 4个比特币

它可以被解释为一个简单的交易,用剩余的零钱支付给某个地方(暂时忽略哪个输出是支付,哪个是零钱的问题)。另一种解释此交易的方式是,2 BTC 输入归商家所有,5 BTC 归其客户所有,并且此交易涉及客户向商家支付 1 BTC。无法判断这两种解释中哪一种是正确的。结果是一个硬币连接交易,它打破了共同输入所有权启发式并提高了隐私,但也无法检测到并且与任何常规比特币交易无法区分。

如果 PayJoin交易被适度使用,那么它将使公共输入所有权启发式在实践中完全有缺陷。由于它们无法检测到,我们甚至不知道它们今天是否正在使用。由于交易监控公司主要依赖于这种启发式方法,截至 2019 年,PayJoin 的想法令人兴奋[72]。

换币

CoinSwap是一种基于原子交换思想的比特币非托管隐私技术[73]。如果 Alice 和 Bob 想要进行硬币交换;那么可以理解为 Alice 用她的比特币换取 Bob 的比特币等量(减去费用),但使用比特币智能合约来消除双方作弊的可能性。

CoinSwaps打破了发送和接收比特币之间的交易图。在区块链上,它看起来像两组完全断开的交易:

Alice 的地址 ---> 托管地址 1 ---> Bob 的地址
Bob 的地址 ---> 托管地址 2 ---> Alice 的地址

显然,Alice 和 Bob 各自生成新地址,以避免地址重用造成的隐私损失。

有可能拥有与区块链上的任何其他交易完全无法区分的 CoinSwaps。可以说它们允许比特币以不可察觉的方式传送到区块链上的任何其他地方。非 CoinSwap 交易将受益,因为像交易监控公司这样的大规模区块链分析师永远无法确定普通交易实际上不是CoinSwap。与它们提供的隐私量相比,它们也不需要太多的块空间。

CoinSwaps 需要参与方之间的大量交互,这可能会使这种系统的设计变得棘手,同时避免拒绝服务攻击。它们还具有活性要求和非审查要求,这意味着参与的实体必须始终能够自由访问比特币网络;如果互联网中断了几天或几周,那么完成一半的 CoinSwaps 可能会以一方的钱被盗而告终。

2022 年 2 月,MercuryWallet是第一个部署的实施方案[74] [75]。2020 年 6 月,人权基金会(总部位于纽约的一家在全球促进和保护人权的非营利组织)向Chris Belcher(本页的主要贡献者之一)拨款 50,000 美元用于该项目的工作。[76]

CoinJoinXT

CoinJoinXT 是与CoinJoin [77]密切相关的非托管隐私技术。它允许任意数量的实体在它们之间创建一个所谓的提议交易图(PTG),这是一个关联交易的列表。在 PTG 中,属于实体的比特币在所有交易中来回发送,但在 PTG 结束时,它们全部归还给其合法所有者。该系统的设置使得 PTG 被挖掘的过程是原子的,因此整个 PTG 要么在区块链上得到确认,要么没有,这意味着参与的实体都不能互相窃取。

提议的交易图可以自由地成为任何混淆交易图的交易列表。为了获得最佳结果,由于比特币的正常经济活动,PTG 将完美地模仿自然交易图,因此对手将不知道 PTG 从哪里开始或结束,从而获得巨大的隐私收益。

与CoinJoin一样,CoinJoinXT 很容易实现 DOS 抗性,并且不需要过多的交互步骤。与CoinSwap不同,它没有活性或非审查要求,因此即使比特币处于临时审查之下,资金也是安全的。然而,与隐私增益相比,CoinJoinXT 使用了大量的区块空间。并且 CoinJoinXT 需要延展性修复,因此 PTG 中的所有交易都必须是segwit-only。截至 2019 年,只有大约 40% 的交易是隔离见证,因此区块链的观察者可以通过检查它们是遗留交易还是隔离见证来轻松消除非 PTG 交易。

翻滚比特

TumbleBit是一种非托管的隐私技术,协调服务器无法分辨输入和输出之间的真实联系。这是通过加密结构实现的,其中服务器促进数字签名的私人交换。该协议对于任何隐私和比特币爱好者来说都非常有趣。

从区块链观察者的角度来看,TumbleBit 交易表现为两个交易,有很多(作者的例子中是 800 个)输出,并且所有交易输出必须是相同的数量。

链下交易

链下交易是指允许在区块链之上的一层进行比特币交易的任何技术。链下完成的比特币支付不会广播到网络中的每个节点,也不会被挖掘并永远存储在公共区块链上,这会自动提高隐私性,因为大多数对手可以看到的信息要少得多。链下交易没有公共地址、地址集群、公共交易、交易金额或任何其他与链上交易相关的隐私相关攻击 。

主条目:链下交易

闪电网络是比特币隐私中的一个巨大话题,因此在其自己的部分中进行了讨论。

盲人证书

这是另一种基于盲签名的链下交易方式。通过这样一个系统进行的支付将是非常私密的。自 1983 年以来就已为人所知。但是该系统是托管的,因此发行服务器是故障的中心点,可以窃取所有资金。然而,在某些闪电网络不支持的情况下,该概念可能仍然有用,例如不记名的不记名证书支持接收方离线的支付。

主条目:盲人证书

侧链

侧链是指创建另一个使用比特币作为其货币单位的区块链。比特币可以从主要的比特币区块链转移到侧链上,这允许它们按照不同的共识规则进行交易。与常规比特币区块链相比,侧链可以具有不同且更好的隐私属性。

主条目:侧链

机密交易

机密交易(CT) 是一种加密协议,可对交易的金额值进行加密。加密是特殊的,因为它仍然可以验证在交易中没有比特币可以创建或销毁,但不透露确切的交易金额。机密交易需要将软分叉共识更改添加到比特币中,尽管它们也可以添加到侧链中。

讨论

隐私与可扩展性

前面提到的许多隐私技术都是通过向比特币区块链添加额外数据来工作的,这些数据用于隐藏与隐私相关的信息。通过添加更多必须由系统处理的数据,这具有降低比特币可扩展性的副作用。这会损害隐私,因为完整节点的运行成本更高,而且它们是用户了解其历史和平衡的最私密方式。向区块添加数据也会降低系统的安全性,如果安全性差导致比特币被成功攻击和破坏,那么拥有私有比特币就没有多大意义。使用更多块空间的资源成本向用户显示为更高的矿工费; 因此,如果用户发现费用太贵,使用过多区块空间的隐私技术甚至可能不会被使用。在2017 年末的高区块空间需求期间,低价值的JoinMarket CoinJoin 交易大多消失了(大多数低价值的比特币交易也是如此)。

链下交易是避免在隐私和可扩展性之间进行权衡的一种方法。这些解决方案通过完全从区块链中删除数据而不是通过添加更多诱饵数据来改善隐私。更改避免和脚本隐私改进还降低了系统成本,同时提高了隐私。CoinJoinXT,等输出CoinJoin,TumbleBit相对于隐私增益使用了大量的块空间。与进行普通交易相比, PayJoin不会使用太多额外的区块空间;相对于打破公共输入所有权启发式的增益,它非常节省空间。换币相对于隐私而言,它使用的区块空间非常少,因为它可以被理解为一个离线交易系统,它进行一次交易,然后返回链上。机密交易需要大量的区块空间以及相关的带宽和 CPU 成本,但它的隐私收益是巨大的,因此关于该主题的辩论可能会以任何一种方式进行。

从长远来看,随着比特币矿工费用的上涨,资源昂贵的隐私技术将被定价并被资源高效的技术所取代。

隐写术

隐写术在密码学中用于表示隐藏某物被隐藏的事实的行为。例如,加密消息的内容不能被窃听者读取,但它仍然表明某些东西被隐藏了。可以通过将加密的消息嵌入到音频文件或图像中来完成消息的隐写加密,从而将消息隐藏在噪音中。

等输出的CoinJoin隐藏了某个硬币的来源和目的地,但交易的结构表明某些东西被隐藏了。因此,即使 coinjoin 打破了common-input-ownership heuristic,但可以检测到相等输出的 coinjoin(即使检测不完善)这一事实允许它们被对手的分析排除在外。此外,硬币连接的可区分性可能会引起怀疑并促使进行更多调查。

隐写术的想法是一件好事[78]。它极大地增加了隐私,因为这种技术进行的交易无法与常规交易区分开来。它还改善了甚至不使用该技术的用户的隐私,因为他们的交易总是与实际的私人交易相混淆。无脚本脚本是隐写隐私技术的一个很好的例子,其中与隐私相关的信息隐藏在数字签名的随机数中。PayJoin、CoinSwap和CoinJoinXT是很好的隐写隐私技术,因为它们可以与常规比特币交易无异。等输出coinjoins和TumbleBit不是隐写的。此外,当集中式混合服务与公共输入所有权启发式分析一起使用时,通常很容易看出,但在赌场或山寨币交易所等大容量比特币网站存入然后取款更好,因为它可能让用户只是想赌博。

闪电网络

闪电网络是一种基于支付渠道的链下交易技术。它具有与比特币链上交易几乎相同的安全模型。毫不夸张地说,闪电网络是比特币的一场革命。请参阅#Off-chain 交易的上一部分。

除了极大地改善隐私之外,闪电网络交易也比链上交易更快(通常是即时的)和更便宜。闪电节点在它们之间创建双向支付通道,闪电交易从一个节点路由到另一个节点。源节点和目标节点不需要直接在它们之间建立支付通道,因为交易可以通过许多中间节点进行路由。

由于闪电网络交易发生在链外,它们不会广播到网络中的每个节点,也不会永远存储在公开可见的区块链中。攻击者无法查看所有交易的公开永久记录,因为没有。相反,对手可能不得不运行中间节点并可能以这种方式提取信息。链上隐私攻击,如公共输入所有权启发式、地址重用、更改地址检测、显示发送者财富或神秘购物者付款的输入金额从根本上不起作用,因为没有地址或交易输入/输出在同一工作大大地。

然而,闪电网络可能会引入其他隐私问题,主要是由于网络是如何由节点组成的,它们之间存在连接[79]。该网络中可以作为中间路由节点的部分通常是公共的,并且该网络信息可以与有关路由数据包的信息(例如它们的数量)重叠。除非通过 Tor 运行,否则闪电节点还会显示其 IP 地址,并且支付渠道由链上交易组成,可以使用常规区块链分析技术进行分析。支付渠道看起来像区块链上的 2-of-2多重签名。双边关闭交易看起来像 2-of-2 的输出已经用完,但单边关闭交易有一个复杂的 在区块链上可见的 HTLC脚本。

截至 2019 年,Lightning 处于测试阶段,开发仍在继续;开发社区仍在研究其所有隐私属性。当然,它的隐私性优于链上交易的隐私性。

洋葱路由

闪电协议使用洋葱路由[80] [81]来提高中间路由注释的隐私性。该协议旨在防止支付路径上的中间节点了解除了其前任或继任者之外的其他节点是数据包路径的一部分;它还旨在隐藏路线的长度和节点在其中的位置。

洋葱路由覆盖网络拓扑

闪电网络的洋葱路由通常与Tor洋葱路由进行比较。然而,Tor 的网络是全连接的;Tor 上的每个节点都与每个其他节点直接连接(或有可能直接连接),这意味着洋葱路由的数据包可以从任何其他节点转发到潜在的任何其他节点。在闪电网络中情况并非如此,支付通道并未完全连接整个网络,并且网络拓扑对于路由节点是公知的。网络拓扑的数据融合和洋葱路由数据包中的少量信息可能仍然足以揭示某些情况下的信息[82] [83]。例如,如果一个闪电节点钱包只有一个支付通道连接到一个中间节点,然后从节点钱包发送和从节点钱包发送的任何付款都必须通过中间节点,无论使用哪种洋葱路由,中间节点都能够获得有关钱包节点付款的大量信息。

这种拓扑问题的缓解可能是闪电网络的整个拓扑是未知的。只有打算路由交易的节点才需要公开宣布。有可能存在“私人渠道”,即存在的支付渠道,但其存在未被公布。

这并不意味着闪电网络使用的洋葱路由没有用,远非如此,只是隐私性不如Tor强。

集合路由

来自发送者的洋葱路由仍然需要发送者知道目标闪电节点(以及所有相关信息,如通道 UTXO)。这意味着用户无法在不透露与其支付渠道相关的一个或多个 UTXO 的情况下接收闪电支付。一种解决方案是会合路由[84] [85],也称为隐藏目的地[86],它允许将闪电支付从源节点发送到目标节点,而源或目的地都不需要透露其节点和相关信息.

一个很好的类比是源洋葱路由就像一个Tor连接,通过一个 Tor 出口节点到达它的目的地,而会合洋葱路由就像一个 Tor 连接到一个 Tor 隐藏服务。

原子多路径支付

原子多路径支付 (AMP) 是闪电网络中的一种协议,它允许通过多个闪电网络交易路由单个支付[87]。例如,如果用户有五个通道,每个通道的余额为 2 BTC,他们可以使用 AMP 协议通过多个闪电网络路径发送一次 7 BTC 的付款。在隐私方面,AMP 将导致中间节点不观察 7 btc 的全部支付金额,而只观察 2 btc 或 1 btc(或任何其他组合)的部分支付金额。这对隐私有利,因为路由支付不会再泄露确切的支付金额,而只会泄露一个下限。

常用哈希锁值

对于非 AMP 支付,支付哈希对于支付路径上的所有节点都是相同的。如果他们合作知道他们基于这个公共哈希值路由相同的支付,这可能允许多个节点。尽管这也可以使用每个路由支付的时间戳来完成。

用作替代显式哈希时间锁定合约的无脚本脚本可用于解决常见的哈希锁问题。可以在每一步向提交的随机值添加不同的随机调整值,因此可能存在通过支付渠道的多跳路径,在该路径中,路径中的各个参与者将无法分辨出他们除非由于这种重新致盲[88] [89]而直接连接,否则它们将位于同一路径中。

2017 年的一篇名为 Concurrency and Privacy with Payment-Channel Networks [90] [91]的论文描述了一种使用零知识证明的方案,该方案将允许支付路径中的每个哈希值不同。该方案在计算方面要昂贵得多,但它可能仍然实用。

保管钱包

支持闪电网络的钱包可以是托管类型的,其中钱包只是连接到某个公司运行的后端服务器的前端。这与链上比特币生态系统中的网络钱包相同。

这种设置将导致该公司可以看到所有用户的闪电网络交易,因此他们没有隐私,就像使用网络钱包对链上比特币空间没有隐私一样。截至 2019 年,Zap Wallet 和 Lightning Peach 在此模型上工作。Peach 钱包实际上在其 GUI 中有一个复选框,上面写着“我同意隐私政策”,查看隐私政策会发现钱包会跟踪各种与隐私相关的内容。不用说,有隐私意识的用户不应该使用这种闪电钱包,而是使用非托管闪电钱包[92]。

支持闪电网络的钱包仍然需要与底层比特币网络连接,如果操作不当,可能会泄露与隐私相关的信息。例如,如果钱包从中央服务器获取区块链交易信息,那么该服务器可以监视所有通道打开和关闭交易。具有隐私意识的轻量级钱包通常使用客户端块过滤,这非常适合支持闪电网络的钱包。

私有脚本类型

Schnorr、无脚本脚本、taproot 和 ECDSA-2P等脚本类型隐私的进步通过使其支付通道区块链交易看起来与常规的单签名区块链交易没有区别 ,从而有利于闪电网络的隐私。

探测支付以揭示渠道状态

每个通道的余额状态对公众是隐藏的,只有组成支付通道的两个实体知道。这提供了很多隐私,因为金额和金额的变化并不是所有人都可以看到的。破坏这种隐私的一种可能方法是让活跃的对手发送探测付款,直到获得余额。正如 2019 年初的一篇论文所述,这种攻击已被证明是可能的[93],由于闪电实现提供的有关路由错误的详细程度。虽然看起来这种攻击需要为探测支付支付路由费用,但攻击者可能会提供假发票,所以即使支付通过所有路由,最后一个节点也会发回错误消息,并且不会能够执行付款。因此,此类攻击的成本降低到打开和关闭用于攻击的通道所需的费用。

这种攻击可用于公开网络中单个或选定的一组节点的余额,甚至可以大规模获取网络中每个通道的余额。如果攻击者对整个闪电网络中的每个支付通道重复此过程并继续非常频繁地进行探测,那么通过观察通道状态的变化,他们可以观察到支付在网络中的路由。补救这种攻击的一种可能方法是让路由节点随机(例如 20 次中的 1 次)返回路由错误,即使通道平衡状态实际上是足够的。这可能不会大大降低闪电网络的用户体验,但会给攻击者带来严重的成本。

现有的隐私解决方案

本节是关于以实现隐私功能为主要目标的比特币软件,特别是避免因区块链而导致的隐私泄露。

隐私不能轻易地与比特币的任何其他方面分开。仅针对隐私拥有完全独立的解决方案是不寻常的,梦想是有一天所有比特币钱包都将包含已经内置的隐私技术。但截至 2018 年底,许多隐私实施都是独立的应用程序。

闪电网络

截至 2019 年初,闪电网络有多种实现方式;如LND、c-lightning、eclair等。

该网络本身可以在比特币主网上使用,并且有几个商家和其他项目接受它。它仍然不能被公众使用。预计有一天每个比特币钱包都将能够发送和接收闪电网络交易,因此普通用户一直使用比特币的方式将包含巨大的隐私优势。

闪电网络钱包通常是标准的隐私技术,如确定性钱包和地址重用警告。

一些 LN 钱包(例如 Zap Wallet 和 Lightning Peach)实际上是托管的,它们由可以监视用户所做的一切的中心化服务器支持,因此应该避免使用它们。

手工硬币加入

CoinJoin交易可以手工制作,无需特殊钱包,只需使用Raw Transactions即可。这可以非常灵活,因为硬币连接可以采用任意数量的形式。这在比特币商户之间可能是实用的,其中一些商户可能决定将他们的一些交易联合起来,以便共同输入所有权启发式暗示他们都是同一个钱包集群。

加入市场

JoinMarket是 CoinJoin 的一种实现,其中所需的流动性在市场中支付。在 JoinMarket 术语中,有流动性接受者用户可以在任何时候以他们想要的任何数量创建一个 coinjoin,他们还需要支付少量的 coinjoin 费用。流动性制造者全天 24 小时在线,随时准备以任何数量创建一个硬币加入,作为回报,他们从流动性接受者那里赚取硬币加入费用。由于这个投币市场,JoinMarket 用户可以在任何时间以任何数量创建投币(根据可用流动性限制)。

其他人总是可以加入投币,因为他们赚取费用,投币可以是任何数量并且随时发生。JoinMarket也可以成为流动性制造商机器人运营商的一个小收入来源,他们通过允许其他人用他们的比特币创建硬币加入来赚取硬币加入费用。

通过多次重复投币连接大大提高了隐私性,因此,JoinMarket项目包含了 tumbler 脚本,其中投币连接是在随机时间和随机数量自动创建的。比特币可以存入 JoinMarket HD 钱包,并且不倒翁脚本将通过许多 coinjoin 将它们发送到三个或更多目标地址。需要使用多个目标地址的这一特性来击败数量相关性。例如,想要将硬币存入交易所的用户将使用生成新的存款地址按钮来获取多个目标地址,然后交易所可能会将这些硬币与其他客户的存款结合起来,这些客户应该抵制任何基于金额的跟踪。

JoinMarket 可以与比特币核心全节点交互,以私下获取自己钱包的历史记录。还有一个使用Electrum服务器的选项,但不鼓励用户使用它。有计划将 Electrum 接口替换为使用客户端块过滤的接口。

该软件是一个开源项目,社区围绕着它。不幸的是,对于不习惯 Linux 或命令行界面的人来说,可能很难安装 JoinMarket。希望有一天可以做一些工作来让这更容易,但由于所有的开发都是由志愿者完成的,所以没有路线图。

主条目:JoinMarket

芥末钱包

Wasabi Wallet是用于桌面的开源、非托管、注重隐私的比特币钱包,它实现了无需信任的CoinJoin。CoinJoin 协调员(由赞助 Wasabi 开发的公司 zkSNACKs Ltd. 运营)不能窃取参与者的隐私,也不能侵犯参与者的隐私。

该软件包包括内置的Tor,默认情况下,客户端和服务器之间的所有流量都通过它,因此 IP 地址被隐藏并尊重用户的隐私。在正常情况下,Wasabi Wallet 永远不会离开 Tor 洋葱网络,也不会使用 Tor 退出中继,从而大大降低了网络攻击面。

Wasabi 还包括所有标准隐私技术,例如分层确定性钱包和地址重复使用避免,以及强制硬币控制和标签。该钱包使用 BIP-158客户端块过滤以私有方式获取自己的交易历史记录,并且它具有一键式部分完整节点集成,因为它与 Bitcoin Knots 一起提供。如果用户已经在本地或远程设备上拥有比特币全节点,则可以指定 IP 地址和端口,或者 Tor 洋葱服务,Wasabi 将使用它来验证和执行比特币规则。

除此之外,它还具有先进的尖端功能,例如:

  • 选择加入PayJoin
  • 粉尘攻击防护
  • 自定义更改地址
  • 反钱包指纹识别

Wasabi 也有一个完整而详细的文档,其中包含对程序架构、其功能和如何使用它的教程的解释。

主条目:芥末钱包

Samourai 钱包

Samourai Wallet 是一款智能手机钱包,它实现了一些隐私功能。Stowaway 是PayJoin的一个实现。Stonewall 是一种创建看起来像CoinJoins但实际上只涉及一个人的交易的方案;这些虚假的coinjoins旨在在假设的交易监控公司使用的算法中产生误报。StonewallX2 是一种创建与 Stonewall 相同但涉及两个参与者的交易的方案,使其成为实际的CoinJoin交易。PayNyms 是ECDH 地址的一种实现。钱包还有一个称为类似类型零钱输出的功能,它会在其中生成零钱与付款地址类型相同的地址;这避免了使用地址类型进行钱包指纹识别,从而导致更改地址检测。

默认情况下,Samourai Wallet 通过查询自己的服务器来获取有关用户历史记录和余额的信息。该服务器知道所有用户的地址和交易,并且可以监视它们。因此,使用 Samourai Wallet 的默认配置仅在攻击者可以分析区块链但无法访问此服务器的威胁模型中有用。2019 年 6 月,随着 Samourai 钱包服务器 Dojo 的发布和开源,用户现在可以私下托管自己的服务器并引导他们的 Samourai 钱包连接到它。

液体侧链

自 2018 年起,Liquid侧链实施机密交易(CT),允许比特币在该侧链上转移,同时隐藏交易金额。该产品由 Blockstream 公司开发,面向交易所和交易者。它允许以非常私密的方式快速转移比特币。

由于 Liquid 是一个联合侧链,用户通常需要通过 AML 检查并放弃他们的个人数据才能使用它。它的安全模型非常接近于在交易所拥有比特币,因为如果有足够多的工作人员被黑客入侵,那么侧链上的所有比特币都可能被盗。然而,在该安全模型中,您可以获得极好的隐私,并且侧链本身面向交易者和对冲者进行营销,他们当然希望将其交易活动保密,以阻止其他交易者抢先交易。

水星钱包

Mercury是一种新的比特币 layer-2 扩展技术,基于状态链的概念,它使 BTC 存款 (UTXO) 的私钥能够在所有者之间安全地转移,而无需链上交易。

这使用户几乎可以立即将一定数量的 BTC 的全部托管权转移给任何人,同时增加了隐私性,并且无需支付矿工费用。Mercury 还支持第一个生产型 CoinSwap实施。

主条目:水星钱包

示例和案例研究

隐私是一个非常多方面且实用的话题,通过示例有助于更好地理解所有概念之间的关系。

糟糕的隐私示例 - Exchange 前端运行

  1. 您是一名交易员,并且在比特币交易所拥有一个账户。
  2. 你想存入一些比特币来出售。
  3. 您将比特币发送到您过去使用的同一个交易所存款地址。
  4. 由于地址重用,很容易在区块链上看到一些比特币被发送到交易所。
  5. 交易所需要 3 次确认才能存入您的账户,但当时价格已经对您不利,因为其他交易者知道您的存款交易。
  6. 你以比其他方式更有吸引力的价格出售比特币。
  7. 通过单击交易所网站上的生成新存款地址按钮并在那里存款,可以轻松避免这种情况。

教训:地址重用对隐私来说是可怕的。

糟糕的隐私示例 - 通过地址重用揭示的节省

  1. 您使用单地址纸质钱包存入比特币,从而实现地址重用。
  2. 你所有的比特币储蓄到同一个地址,假设它包含价值 100 万美元。
  3. 您购买少量比特币以增加您的储蓄,存入纸质钱包。
  4. 卖给你比特币的人在区块链上追踪他们的踪迹,发现你的纸钱包里有 100 万美元。
  5. 他在咖啡馆或酒吧向某人提及。
  6. 言传身教。一个窃贼袭击了你的家并将你扣为人质,直到交出 100 万美元的比特币[94]。

教训:地址重用对隐私来说是可怕的。

糟糕的隐私示例 - 通过数据收集显示的节省

  1. 你存入比特币。在您向其透露所有数据的交易所进行交易。
  2. 大多数时候你买硬币,但有时你卖。你只使用过这一次交换。
  3. 无论您使用任何区块链隐私技术,交易所仍然知道您的所有交易,并且可以随时准确地找到您持有多少比特币。

示例 - 逃避制裁

  1. 您生活在一个受到其他国家国际贸易制裁的国家。
  2. 因此,您无法购买您想要的在线报纸。
  3. 你用 Tor 导航到报纸网站,这样他们就不能从你的 IP 地址告诉你的原籍国。
  4. 你用现金购买比特币并将它们发送到计算机上的钱包软件,然后用比特币购买报纸。
  5. 比特币交易没有关于它们的地理信息,因此您的付款不会被发现来自受制裁的国家。

示例 - 在不透露您的真实姓名的情况下与您的在线扑克伙伴进行交易

  1. 你和一些人玩在线扑克(用真钱)。
  2. 你赢大了。很多钱都给了你,你的朋友很生气。
  3. 赌注是你收到的比特币。您以现金或通过交易所出售硬币,或使用它们直接购买商品和服务。
  4. 你烦躁的扑克伙伴找不到你的真实姓名。

这个例子有一个非常温和的威胁模型,对手无法访问交易所的 AML/KYC 记录(如果你没有用现金交易),而且他们不是你的 ISP,所以不能轻易地将你的比特币地址与你的 IP 地址链接(在您使用轻量级节点而不是完整节点的情况下)。

示例 - 在您的雇主不知情的情况下进行捐赠

  1. 你用比特币赚钱,你的雇主给你发了比特币作为工资。
  2. 您想通过捐赠 0.1 BTC 来支持 X 慈善机构或政治团体,但不希望您的雇主知道。
  3. 将 0.3 BTC 存入比特币赌场、山寨币交易所或其他允许公众匿名存入和取款的比特币服务网站。
  4. 提取 0.1 BTC 并将想要的捐赠地址作为提现地址。
  5. 将剩余的 0.2 BTC 提取回您自己的钱包(到一个全新的地址,避免地址重复使用)。

如果你的雇主随便分析区块链,他们会认为你是一个赌徒,而不是 X 组的支持者。比特币赌场不在乎你捐给谁。雇主也无法关联这些金额,因为他们看到您存入 0.3 BTC,但只有 0.1 BTC 被发送到该组。隐私来自将您的硬币与在您存放硬币的时间段内使用该赌场的其他人的硬币混合。

示例 - 无人知晓的捐赠

  1. 您想在无人知晓的情况下支持 X 慈善机构或政治团体。
  2. 下载并安装一个由完整节点(如Bitcoin Core )支持的钱包。
  3. 用现金购买准确数量的比特币(由于交易费用和波动性而获得更多),将硬币发送到您的钱包。
  4. 将硬币发送到小组进行捐赠。交易应该通过Tor广播。

除了直接进行现金交易外,用户还可以购买礼品卡之类的现金替代品,然后在网上用它换取与他们的身份无关的比特币。

此威胁模型需要完整节点,否则您的 ISP 或其他对手可能会监视轻量级节点通信并发现用户的比特币地址。需要通过 Tor 广播交易才能阻止您的 ISP 或交易监控公司获悉您的 IP 地址广播交易。

示例 - 私下接受捐款

  1. 您的团体或项目只有一个捐赠地址,任何人都可以通过将您的捐赠地址放入区块链浏览器来查看所有捐赠及其金额。
  2. 您想在互联网上没有任何人知道的情况下花费捐款。
  3. 捐赠地址是由诸如Armory等完整节点支持的钱包的一部分。
  4. 通过Tor广播交易,将捐款存入允许匿名存款和取款的比特币网站。
  5. 将钱直接提取到另一个类似的比特币服务网站。
  6. 注意使用不同的交易,以阻止相关的金额。
  7. 确保稍等片刻以停止用于将交易链接在一起的时间
  8. 在最终将硬币送回您自己的钱包之前,对许多不同的比特币网站[95]重复此操作。

以 1 BTC 为例。每个箭头 -> 是一个新的提款交易。

钱包 Casino1 Altcoin Exchange Casino2 期货交易所钱包
1btc -> 1addrA 1btc -> 1addrB 0.1btc -> 1addrE 0.1btc -> 1addrG 0.4btc -> 1addrH 0.25btc
                            -> 1addrC 0.2btc -> 1addrF 0.9btc -> 1addrF 0.6btc -> 1addrI 0.25btc
                            -> 1addrD 0.7btc -> 1addrJ 0.25btc
                                                                                        -> 1addrK 0.25btc

和以前一样,全节点钱包允许你的钱包私下学习自己的历史,而 Tor 广播隐藏你发送交易时使用的 IP 地址。使用许多不同的金额会阻止金额相关性提供可能破坏您隐私的线索。使用多个比特币网站意味着与对手合作的单个网站不足以完全破坏您的隐私。由于每个网站都有权窃取您的钱,因此存在保管风险,但在此示例中,比特币金额相对较低,因此风险是可以接受的。

示例 - 私下存储储蓄

  1. 你想在比特币中存储价值,而其他人不知道你如何使用该价值,甚至不知道你拥有比特币。
  2. 以某种方式购买硬币并将它们发送到您配置为使用自己的完整节点的JoinMarket钱包,所有这些都完全在Tor上运行。
  3. 运行 JoinMarket 的 tumbler 脚本,它会创建许多CoinJoin交易,目的是打破地址之间的链接。
  4. 将硬币发送到另一个钱包,该钱包将用于长期存储比特币。钱包应该由一个完整的节点支持,例如指向你自己的Electrum服务器的 Electrum 。

请注意,像JoinMarket这样的比特币隐私技术可以在您的交易中隐藏隐私相关信息,但不能在其他地方添加隐私;例如,如果您以非匿名方式购买比特币,例如使用 AML/KYC 交易所,那么该交易所将知道您的真实身份当时购买了比特币。

与之前通过许多比特币服务网站发送比特币的方法不同,使用JoinMarket是非托管的,因此在托管风险高得无法接受的情况下(例如您将所有辛苦赚来的储蓄匿名化),它很有用。在此示例中,所有钱包都由完整节点支持,以阻止第三方服务将您的地址链接在一起或将它们与您的 IP 地址链接。完整节点完全在Tor上运行,以阻止您的互联网服务提供商或任何网络级对手看到您运行比特币节点。

示例 - 阻止来自不同来源的收款链接在一起

  1. 如果您在同一个钱包中进行了两次付款,则它们可能会通过common-input-ownership heuristic链接在一起。
  2. 你有一份护士的工作,你还兼职做脱衣舞娘以获得额外收入。这两个工作都用比特币支付,你不希望它们联系在一起。
  3. 您将护士收入发送到一个JoinMarket mixdepth 并将脱衣舞娘收入发送到另一个 mixdepth。
  4. 您运行 JoinMarket tumbler 脚本,它将结合两个余额而不将它们链接在一起。

另一种方法(但存在保管风险)是将护士收入存入比特币服务网站(如赌场),然后将脱衣舞者的收入存入不同的存款地址。在您提取两者后,与赌场其他用户的所有其他存款相结合。做到这一点的最好方法可能是通过闪电网络接收一个或两个收入流。

示例 - 在任何实体都不知道资金来源或目的地的情况下将赌场奖金提取到比特币交易所

  1. 你在比特币赌场赢了 10 个比特币,你想在任何一方不知情的情况下将它们提取到比特币交易所出售(可能是因为你的管辖范围内禁止在线赌博)。
  2. 安装JoinMarket并将其指向您自己的完整节点。
  3. 将赌场奖金以 5btc + 2btc + 3btc 的三种不同付款方式发送到您的 JoinMarket 钱包,它们应该去单独的 mixdepths。
  4. 运行 JoinMarket tumbler 脚本以混合硬币并将它们发送到交易所的三个不同存款地址,金额(例如)1btc + 2btc + 7btc。
  5. 那么在线赌场和交易所都不能使用金额相关性来确定来源或目的地。coinjoin 交易使用common-input-ownership heuristic阻止它们,而 JoinMarket 的其他功能阻止地址重用和交易图的分析[96]。

糟糕的隐私示例 - 使用区块链浏览器

  1. 您在其中一个地址收到一笔比特币付款。
  2. 您将地址复制并粘贴到区块链浏览器网站中,然后按刷新,直到传入交易达到 3次确认。
  3. 区块链浏览器网站现在知道你的 IP 地址对那个特定的比特币地址非常感兴趣。
  4. 最好避免这种情况,方法是使用您自己的比特币钱包(由完整节点支持)告诉您付款何时到达以及他们有多少确认,而没有任何其他实体知道。

通过通过Tor导航到区块链浏览器网站,几乎可以完全修复这种隐私中断。它仍然显示有人对该比特币地址感兴趣,但没有透露他们的 IP 地址,也没有透露同一用户控制的任何其他比特币地址。

糟糕的隐私示例 - 由于数量相关性,隐私山寨币混合失败

  1. 您拥有 1.456225 BTC,其中一些与隐私相关的信息已被泄露(也许您是从 AML/KYC 交易所购买的),并希望在断开两者之间的链接的同时将其发送到另一个地址。
  2. 您将比特币换成实现了一些区块链隐私技术的山寨币,即所谓的“隐私币”,然后在进行几次山寨币交易后将山寨币换回比特币。
  3. 您在一次交易中将比特币发送回您的钱包。
  4. 由于交易金额非常接近最初的 1.456225 BTC,因此攻击者搜索整个区块链并将进出您使用的山寨币交易所的两笔类似金额的交易联系起来并不难。

教训:交易的金额对所有人都是可见的,必须小心对待隐私。

示例 - 隐私山寨币混合

  1. 与前面的示例类似,您有想要混合的比特币。你交易进出隐私山寨币来做到这一点。
  2. 当交易回比特币时,您将隐私山寨币存入交易所进行出售,您使用了几笔交易,因此交易所和区块链的任何观察者都无法轻易使用金额将前后地址联系在一起。

这种方法仍然可能失败,因为隐私山寨币的交易量比比特币少几百倍,因此匿名集可能会更低。使用交易所也存在保管风险,因此这种方法可能不适合大量硬币。由于隐私山寨币的可扩展性通常远低于比特币,因此它们的全节点钱包运行起来可能比比特币的资源成本更高。隐私山寨币的价格可能比比特币波动更大,这增加了由于价格变动而损失部分资金的风险。

示例 - 使用闪电网络的日常商务

  1. 你有一些比特币,想把它花在普通商品和服务上。(咖啡、电话信用、VPN、托管、酒店和公寓租赁、航班、食物、饮料、衣服等)并且您希望尽可能保持私密。
  2. 您下载并安装闪电网络钱包并将其用于所有购买。
  3. 公共输入所有权启发式、地址重用和更改地址检测等隐私攻击从根本上不适用于任何链下交易技术。

糟糕的隐私示例 - 在没有预防措施的情况下发送到静态捐赠地址

  1. 你拥有比特币并将其保存在托管钱包中。
  2. 您想向慈善机构或政治团体 X 捐款。
  3. 您在托管钱包的网站上创建了一笔交易,将一些钱发送到该组的捐赠地址。
  4. 托管钱包服务器可以看到您将其发送到哪里(如果该组使用静态捐赠地址,则尤其容易)。
  5. 他们不同意您的观点,然后关闭您的帐户。

教训:使用托管钱包不利于隐私,因为托管人可以看到你所做的一切。地址重复使用对隐私有害(但在捐赠地址中很常见)。

糟糕的隐私示例 - 接受神秘购物者付款监视的捐款

  1. 您想接受比特币捐款,但不想透露捐款总额。
  2. 您设置了一个 Web 服务器来为每个访问者提供唯一的地址。
  3. 想要了解您的总捐赠收入的对手向您捐赠了少量比特币。
  4. 您将所有捐赠结合起来用作一笔交易的输入,从而将它们与common-input-ownership heuristic链接在一起。
  5. 对手现在对您的总捐赠收入有了一个很好的了解。

教训:神秘购物者付款可用于监视人们,即使这样他们也避免地址重复使用。注意common-input-ownership heuristic所揭示的内容。

现实生活中的例子 - 使用静态地址窃取比特币的恶意软件

  1. 您是窃取软件(从受害者那里窃取资金的恶意软件)的创建者。
  2. 您将一些比特币地址硬编码到您的恶意软件中,将不法之徒发送到那里。
  3. 任何恶意软件研究人员现在都可以通过将地址放入区块链浏览器来查看您窃取了多少比特币。

这已经在许多情况下完成,包括:Wannacry 恶意软件[97] [98]和 Electrum窃取软件[99] [100]

糟糕的隐私示例 - 窃取比特币的恶意软件通过神秘购物者付款进行监视

  1. 您是一名研究窃取比特币的恶意软件的信息安全研究员。
  2. 恶意软件作者已将ECDH 地址方案编码到他们的恶意软件中。
  3. 您对恶意软件的分析只显示了 ECDH 公钥而不是比特币地址,因此恶意软件作者认为他是私人的。
  4. 您向从 ECDH 公钥派生的地址发送少量比特币作为神秘购物者付款。
  5. 恶意软件作者在一次交易中将他们收到的所有被盗硬币发送到交易所,包括您的付款。
  6. 您现在可以查看区块链并使用公共输入所有权启发式算法来了解恶意软件窃取的比特币总量。
  7. 您现在还可以联系交易所,他们会告诉您恶意软件作者的真实身份,他们现在可以入狱。

教训:神秘购物者付款以及共同输入所有权启发式可用于对避免重复使用地址的人进行去匿名化。

示例 - Tor 上的一次性轻量级钱包

  1. 您想匿名购买东西或在线捐赠东西。
  2. 您安装Electrum钱包并将其配置为使用Tor,或使用Tails OS。
  3. 你用现金匿名购买比特币并将它们发送到你的 Electrum 钱包。
  4. 你将比特币的全部余额用于购买或捐赠给你想要的东西。
  5. 完成后,您将删除钱包并且不再使用它。

你的Electrum钱包使用了第三方服务器,可以看到你所有的比特币地址和交易。当您通过Tor连接到它时,服务器不会学习您的真实 IP 地址。由于您只使用一个比特币地址一次且不再使用,因此服务器无法将任何其他地址聚集在一起。当您花费了全部余额时,没有可能泄露信息的找零地址。即使使用了第三方服务器,这种设置实际上也会产生很强的隐私性。

糟糕的隐私示例 - Tor 上的轻量级钱包多次使用

与前面的示例非常相似,但使用了多个地址和交易。

  1. 您想将比特币用于多个用例,例如购买一顶新奇的帽子并支付 VPN 费用。
  2. 您安装Electrum钱包并将其配置为使用Tor。
  3. 您支付新奇帽子并将其发送到您的邮件地址。
  4. 您为 VPN 付费以改善您的网络浏览隐私。
  5. 当 Electrum 钱包查询第三方 Electrum 服务器时,该服务器可以将两个交易链接在一起,并知道哪个地址是找零地址。
  6. 因此,服务器可以很容易地看到购买帽子的同一个人也为 VPN 付费。由于购买帽子需要透露您的邮件地址,您的邮件地址现在可以与 VPN 帐户相关联。匿名网页浏览就这么多!

教训:第三方 Electrum 服务器能够将您的两个交易链接在一起。通过运行您自己的由您自己的完整节点支持的 Electrum 服务器来避免这种情况。

第 2 课:请注意,自 2018 年起, TailsOS将这种隐私模型用于 Electrum(!)

现实生活中的例子——公共捐赠地址与共同输入所有权启发式相结合

  1. 访问一个接受比特币捐赠的网站,例如Tails OS 捐赠页面。
  2. 获取他们的捐赠地址(在这种情况下1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2)并在 www.walletexplorer.com 网站中搜索。
  3. 该站点使用公共输入所有权启发式、地址重用和可能的其他技术将地址聚集在一起。
  4. 我们可以看到向 Tails OS 项目捐款的数量和数量:https ://www.walletexplorer.com/wallet/04d3d17f766c4e53?from_address=1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2金额看起来很现实,所以我们可能在正确的路线上。

现实生活中的例子 -数字取证有助于调查 MtGox 交易所

  1. Mt. Gox是一家现已解散的比特币交易所,由于资不抵债于 2013 年关闭。
  2. 其内部数据库于 2014 年 3 月泄露,从中可以建立其钱包存款和取款的近乎完整的画面。
  3. 地址重用也是一个重要因素。共同输入所有权启发式不是一个因素,因为该启发式被 mtgox 的导入私钥功能破坏了。
  4. 分析信息还通过在网络上搜索所有论坛帖子进行交叉检查,其中客户写了如下内容:救命!我向 MtGox 存入了 0.12345 比特币。在我写下我的交易有 20 次确认,但存款没有出现在交易所。论坛帖子包括日期和时间。这些帖子包含足够的信息来搜索相应的区块链交易。
  5. 分析显示,mtgox 发生多起盗窃事件,该交易所在其存在的大部分时间里都资不抵债。

完整演讲:Breaking Bitcoin 2017 会议。Kim Nilsson - 破解 MtGox 幻灯片。

现实生活中的例子——共同投入所有权启发式的错误使用夸大了捐赠收入

  1. 访问接受比特币捐赠的网站,例如 ThePirateBay。
  2. 获取他们的捐赠地址(在这种情况下1z8Tep4BNS79W3kYH8CHA8tWj6nuHYcCM)并在 www.walletexplorer.com 网站中搜索。
  3. 该站点使用公共输入所有权启发式、地址重用和可能的其他技术将地址聚集在一起。
  4. 我们可以看到大部分捐赠给 ThePirateBay 的金额和数量:https ://www.walletexplorer.com/wallet/00005c945dba011c?from_address=1z8Tep4BNS79W3kYH8CHA8tWj6nuHYcCM
  5. 结果表明,ThePirateBay 每天的捐款达数亿美元,这令人难以置信。
  6. 对实际情况的一种可能解释是,ThePirateBay 在比特币交易所直接将捐款存入其账户,这将导致基于共同输入所有权启发式的分析给出高度夸大的数字,因为它实际上找到了整个交易所的所有存款。这对 ThePirateBay 来说存在风险,即托管交易所可能会阻止或审查收到的捐款。
  7. 另一种可能性是 ThePirateBay 正在使用CoinJoin。

现实生活中的例子——共同输入所有权启发式发现的不正确的集群

  1. www.walletexplorer.com 网站使用common-input-ownership 启发式、地址重用和可能的其他技术将地址聚集在一起。
  2. 它有一个名为MtGoxAndOthers的大型集群,截至 2019 年 1 月,该集群有 860 万笔交易和 360 万个与之相关的地址。
  3. 旧的Mt. Gox交易所有一个功能,用户可以将比特币私钥从他们的个人钱包直接导入网站[101]。在那里,它将与 MtGox 自己钱包中的 UTXO 合并。
  4. 似乎一些CoinJoin交易也最终进入了集群[102]。
  5. 例如5ac0210febf7ce07a737bae8c32f84c1c54d131c21a16ca6b02b6f1edcad15c3,可能是JoinMarket交易的交易属于 MtGoxAndOthers 集群[103]。
  6. 另一个例子是52757ed33a235ce8e48aeaabab7f6dd9cd3445c3642630123103b154ee59f3f5旧的 SharedCoin 中心化服务[104]创建的投币交易,根据 walletexplorer,它也在 MtGoxAndOthers 集群中。

现实生活中的例子 - 手工投币误导比特币分析师

  1. CoinJoin的发明者Greg Maxwell 在bitcointalk论坛上发布了一个名为“I taint rich!”的帖子。其目的是演示coinjoin以及common-input-ownership启发式方法并不总是正确的。
  2. 该主题邀请论坛读者使用 Greg Maxwell 的虚名地址手动创建CoinJoins,他希望这将有力地证明common-input-ownership heuristic的缺陷。
  3. 多年后,一笔价值 40000 BTC 的比特币交易被广播和挖掘,引起了比特币论坛的一些猜测。手工制作的硬币连接导致一些人得出错误的结论,即 Greg Maxwell 是 40000 BTC 的所有者。
  4. 分析师的一句话:

最初看起来它们是由虚荣地址为 GMaxweLL 的人拥有的:14947302eab0608fb2650a05f13f6f30b27a0a314c41250000f77ed904475dbb

如果您跟踪该交易的 40k(单击输出),您将进入您链接到的交易。这是一系列简短的交易。

基本上,拥有该地址的人能够在同一笔交易中从该地址以及另一个持有 40,000 的地址解锁硬币。所以他们必须同时拥有两者(至少在 4 年前)。

教训:共同输入所有权启发式方法并不总是正确的。

现实生活中的例子——QuadrigaCX 交易所钱包分析

  1. 2019 年初,QuadrigaCX 交易所关闭,许多客户可能永远无法访问他们的比特币存款。
  2. 一位客户想要分析区块链以查找有关 QuadrigaCX 钱包的信息。
  3. 他们在互联网论坛上要求其他客户透露他们的存款地址和交易,许多客户都这样做了。
  4. 使用 www.walletexplorer.com,分析师能够找到一个包含所有这些地址的大型钱包集群,这很可能是 QuadrigaCX 热钱包。热钱包进行了很多交易,经常涉及重复使用的地址,并且没有使用CoinJoin;所以这个分析很可能是正确的。
  5. 名为 MtGoxAndOthers 的 walletexplorer 集群误导分析师认为 QuadrigaCX 与 MtGox 有关,而实际上该集群是因为CoinJoin而出现的。
  6. 分析师无法找到具有大量比特币的单个集群,这可能是冷藏钱包。然而,冷藏钱包可能会创建很少的交易并且永远不会重复使用地址;所以它可能永远不会出现在使用common-input-ownership heuristic的 walletexplorer.com 上。但是,也有可能交易所资不抵债,因此没有冷藏钱包。

主条目:https ://blog.zerononcense.com/2019/02/04/quadrigacx-chain-analysis-report-pt-1-bitcoin-wallets/

Reddit 评论:https ://www.reddit.com/r/Bitcoin/comments/amut05/investigation_proves_an_exchange_quadriga_ran_a/

现实生活中的例子 - 阻止 Bustabit 赌场客户被 Coinbase.com 禁止

  1. Coinbase.com 是一个比特币交易所。Bustabit 是一个使用比特币的在线赌场。
  2. 在美国,在线赌博是非法的(尽管州政府经常经营自己的彩票,而像拉斯维加斯这样的肉类空间赌博是合法的)。Coinbase.com 通过警告并最终禁止使用在线比特币赌场的客户来执行此政策。
  3. Coinbase.com 警告并禁止了 Bustabit 的一些客户。
  4. Bustabit 实施了避免变更[105],因此他们的许多提款交易都没有变更输出。
  5. Bustabit 还将数千个重复使用的地址导入JoinMarket,并将它们用作许多CoinJoin交易的输入。
  6. 没有更多的 Bustabit 客户被警告或禁止
  7. 似乎这两种方法的结合打破了共同输入所有权启发式并减少了零钱输出泄露的隐私相关信息,足以使 Coinbase.com 的交易监控公司合作伙伴无法再识别 Bustabit 的钱包地址。

现实生活中的例子 - 罕见的多重签名脚本

  1. 自 2019 年 1 月起,任何区块链观察者都可以看到多重签名合约。
  2. 这包括它们的 m-of-n 值,迄今为止最常见的是 2-of-3 multisig [106]。
  3. 一些非常不寻常的脚本,例如 12-of-14 多重签名已在区块链上使用过几次。这些很容易被视为某人的钱包,他收到了一些钱然后花了它。
  4. Xapo 公司的比特币保险库使用 3-of-5 多重签名方案。有一次,当他们移动它时,导致 90% 的代币在 5 个多重签名地址中的 3 个地址上移动到区块链上。这揭示了 Xapo 钱包中的比特币数量[107]。
  5. 2016 年,交易所 Bitfinex 被黑,部分钱包被盗。Bitfinex 使用 2-of-3 多重签名地址来存储其硬币。当小偷将被黑的硬币转移到常规的非多重签名地址时,在区块链上可以看到 2-of-3 多重签名中的 120,000 个比特币的移动,它揭示了盗窃的规模[108]。

现实生活中的例子 - 自由 IT 承包商让他的同事算出他的薪水

  1. 一位用户在比特币 reddit 论坛[109]上发布了关于他与同事因地址重用而计算他的薪水的经历。
  2. “作为一名自由 IT 承包商,我遇到过一个事件,一名现场专家发现了我的每日费率。当然,他有点不高兴,并向他的经理抱怨自己没有得到补偿。我的代理机构对我罚款 50% “不用说,我现在为每张发票创建一个唯一的接收地址,并使用另一组地址来处理日常个人使用支出。”

教训:地址重用对隐私来说是可怕的。

现实生活中的例子 - 黑客使用 CoinJoin 隐藏 445 btc 的目的地

  1. 2017 年 5 月,一位 reddit 用户发布了一个帖子,称他们在 blockchain.info 的网络钱包中保留了 445 比特币,并且他们的硬币被盗[110]。
  2. 他们提供了 50% 的赏金,以获取任何帮助或信息,让他们再次找到他们的比特币
  3. 被盗的硬币原来是通过JoinMarket混合的。黑客似乎将硬币放入 JoinMarket 收益生成器脚本中,并允许它们大量用于硬币连接。可以看到一条 CoinJoin 剥离链。
  4. 任何人都能够分辨出的所有痕迹都丢失了。

有关如何在不被黑客窃取的情况下存储比特币的好建议,请参阅此 wiki 上的存储比特币文章。

  1. 在线购物有几个潜在的隐私泄露。例如第三方跟踪 cookie(例如来自网站 Doubleclick、Google Analytics 或 Facebook),或故意提供给商家的数据,例如姓名、送货地址或电子邮件地址。
  2. 比特币的区块链泄露了大量与隐私相关的信息。
  3. 这两类泄漏的数据融合可以揭示很多关于人们使用比特币进行在线购物的信息。这是 2018 年一篇名为When The Cookie Meets The Blockchain [111]的论文的主题。
  4. 例如,如果比特币用户购买了一顶新奇的帽子并将其运送到他们的家中,然后同一个比特币钱包捐赠给维基解密,那么帽子商家和第三方追踪者(他们知道用户的真实姓名和邮件地址)可以找出同一用户向维基解密捐款。

这是数据融合力量的一个例子,其中两个或多个隐私泄漏在结合时揭示的信息比每个单独的泄漏要多得多。

第三方网络跟踪 cookie 的隐私问题已为人所知近十年,但情况并没有太大改善。在这种情况下,可以通过以下方式在实践中恢复隐私:1) 使用浏览器扩展程序,例如 uBlock Origin、Adblock Plus 或 Ghostery 来阻止第三方跟踪 cookie,和/或 2) 使用链下交易方法在隐私少得多的情况下进行支付- 相关信息泄露。到 2019 年,最实用的将是使用闪电网络进行在线购物。

糟糕的隐私示例 - 集中式混合器很容易与数量相关性分离

  1. BitcoinFog 是一个集中的比特币混合器,它收取 1-3% 的混合费。
  2. reddit 上的某个人使用数量相关性轻松地分解了许多 BitcoinFog 混合[112]

不良隐私示例 - 区块链数据和 IP 地址交易广播数据的数据融合

  1. 2018 年的一篇论文[113]使用区块链分析和交易广播跟踪来对比特币用户进行去匿名化。
  2. 研究人员使用地址重用和公共输入所有权启发式(论文作者没有提到CoinJoin的可能性)
  3. 研究人员连接到每一个监听比特币节点,并尝试在广播时跟踪交易。这让他们了解了原始 IP 地址。
  4. 该论文通过链接他们的 IP 地址和比特币地址来识别大约 22,000 名比特币用户。这些用户中约有 20,000 来自一个 IP 地址,该地址可能是一个流行的网络钱包。
  5. 该论文在 2013 年末收集了数据,但与此同时,比特币核心交易中继算法发生了重大变化,以提高隐私性。所以今天使用的方法应该不太好用。

教训:私人交易广播(例如通过tor)对于隐私是必要的。

现实生活中的例子 - 2018 年关于比特币勒索软件交易分析的论文

  1. 2018 年的一篇论文使用跟踪技术来研究比特币勒索软件[114]。
  2. 一些勒索软件使用静态地址(这意味着地址重用),而其他勒索软件要求受害者连接到分发新比特币地址的 http 服务器。
  3. 为了找到勒索软件地址,研究人员找到了受害者的在线报告和反向工程的勒索软件二进制文件以找到其中的地址。
  4. 他们还使用神秘购物者付款,将 0.001 BTC 发送到勒索软件地址,并查看该代币的发送地址。两名勒索软件运营商(Cerber 和 Locky)上钩,但一名运营商(Sage)没有,因此他的集群从未被发现。
  5. 研究人员使用公共输入所有权启发式来查找地址集群。他们知道CoinJoin打破了这一假设,因此在集群中搜索可检测到的CoinJoin交易,这表明存在中断。这是在PayJoin的发明或实施之前,因此假设可以检测到所有的硬币连接。
  6. 研究人员试图将收到的付款与勒索软件集群与谷歌搜索该勒索软件的峰值进行匹配,并将勒索软件二进制文件上传到恶意软件跟踪网站。如果谷歌搜索或二进制上传出现峰值,而收到的比特币付款没有相应增加,则表明研究人员错过了一些属于勒索软件钱包的集群。这是使用中的时序相关性。研究人员得出结论,他们实际上缺少 CryptoDefense、CryptoLocker 和 CryptoWall 的大多数集群,但可能拥有他们研究的其他勒索软件的所有集群。
  7. 一家名为 Chainalysis 的交易监控公司用于查找某些地址的所有权。它特别适用于与 Chainalysis 共享数据的交易所。这样就可以跟踪勒索软件资金的目的地。已知最大的目的地是 BTC-E,这是一个现已关闭的俄罗斯比特币交易所,控制松懈,众所周知,犯罪分子会使用它。然而,绝大多数资金被发送到未知目的地。一种名为 CryptoXXX 的勒索软件大约 95% 被发送到 Unknown,WannaCry 有 100% 的未知数。研究人员在论文的摘要和结论中写了 BTC-E,因为这是他们能找到的最大目的地,但实际上大多数勒索软件的钱都无法追踪

这篇论文是交易跟踪的一个很好的例子。研究人员在得出结论时非常小心,因为在区块链分析中,有时很容易欺骗自己,让自己认为自己知道的比自己多。任何对比特币隐私感兴趣的人都值得一读。

勒索软件是一种威胁。始终保持重要数据的良好备份。

也可以看看

  • 公共输入所有权启发式
  • 地址重用
  • 硬币加入
  • 付费加入
  • 交易监控公司
  • 客户端块过滤
  • 全节点#隐私
  • 闪电网络

参考

  1. Bitcoin Milan Meetup 46 - Talk by Adam Gibson https://www.youtube.com/watch?v=IKSSWUBqMCM&t=2448
  2. Jump up↑ https://bitcointalk.org/index.php?topic=334316.msg3588908#msg3588908
  3. Jump up↑ Neudecker, Till & Hartenstein, Hannes. (2018). Network Layer Aspects of Permissionless Blockchains. IEEE Communications Surveys & Tutorials. PP. 1-1. 10.1109/COMST.2018.2852480.
  4. Jump up↑ Harrigan, Martin & Fretter, Christoph. (2016). The Unreasonable Effectiveness of Address Clustering.
  5. Jump up↑ Sarah Meiklejohn, Marjori Pomarole, Grant Jordan, Kirill Levchenko, Damon McCoy, Geoffrey M. Voelker, and Stefan Savage. 2013. A fistful of bitcoins: characterizing payments among men with no names. In Proceedings of the 2013 conference on Internet measurement conference (IMC '13). ACM, New York, NY, USA, 127-140. DOI: https://doi.org/10.1145/2504730.2504747 https://cseweb.ucsd.edu/~smeiklejohn/files/imc13.pdf
  6. Jump up↑ Bitcoin Privacy: Theory and Practice - Jonas Nick (Blockstream) - Zürich, March 2016 https://www.youtube.com/watch?v=HScK4pkDNds
  7. Jump up↑ Nick, Jonas David. “Data-Driven De-Anonymization in Bitcoin.” (2015).
  8. Jump up↑ https://github.com/bitcoin/bitcoin/pull/13666
  9. Jump up↑ https://bitcoinops.org/en/newsletters/2018/08/14/
  10. Jump up↑ https://bitcoin.stackexchange.com/questions/3059/what-is-a-compressed-bitcoin-key
  11. Jump up↑ Harrigan, Martin & Fretter, Christoph. (2016). The Unreasonable Effectiveness of Address Clustering.
  12. Jump up↑ Meiklejohn, Sarah & Orlandi, Claudio. (2015). Privacy-Enhancing Overlays in Bitcoin. 127-141. 10.1007/978-3-662-48051-9_10. https://fc15.ifca.ai/preproceedings/bitcoin/paper_5.pdf
  13. Jump up↑ Gervais A., Ritzdorf H., Lucic M., Lenders V., Capkun S. (2016) Quantifying Location Privacy Leakage from Transaction Prices. In: Askoxylakis I., Ioannidis S., Katsikas S., Meadows C. (eds) Computer Security – ESORICS 2016. ESORICS 2016. Lecture Notes in Computer Science, vol 9879. Springer, Cham https://eprint.iacr.org/2015/496
  14. Jump up↑ https://medium.com/@octskyward/merge-avoidance-7f95a386692f
  15. Jump up↑ https://bitcointechtalk.com/saving-up-to-80-on-bitcoin-transaction-fees-by-batching-payments-4147ab7009fb
  16. Jump up↑ https://www.reddit.com/r/Bitcoin/comments/3a1hte/psa_dust_being_sent_to_your_addresses_might_help/
  17. Jump up↑ https://www.reddit.com/r/Bitcoin/comments/9r9qud/if_you_have_recently_received_a_very_small_amount/
  18. Jump up↑ https://github.com/JoinMarket-Org/joinmarket-clientserver/pull/471#issuecomment-565857814
  19. Jump up↑ https://www.reddit.com/r/Bitcoin/comments/2yvy6b/a_regulatory_compliance_service_is_sybil/
  20. Jump up↑ Alex Biryukov, Dmitry Khovratovich, and Ivan Pustogarov. 2014. Deanonymisation of Clients in Bitcoin P2P Network. In Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security (CCS '14). ACM, New York, NY, USA, 15-29. DOI: 10.1145/2660267.2660379 https://arxiv.org/abs/1405.7418
  21. Jump up↑ Koshy, Philip & Koshy, Diana & McDaniel, Patrick. (2014). An Analysis of Anonymity in Bitcoin Using P2P Network Traffic. 8437. 469-485. 10.1007/978-3-662-45472-5_30. http://ifca.ai/fc14/papers/fc14_submission_71.pdf
  22. Jump up↑ https://github.com/bitcoin/bitcoin/issues/3828
  23. Jump up↑ https://twitter.com/waxwing__/status/983258474040774657
  24. Jump up↑ https://twitter.com/thegrugq/status/1062194678089404421
  25. Jump up↑ https://motherboard.vice.com/en_us/article/3k9zzk/hacking-team-hacker-phineas-fisher-has-gotten-away-with-it
  26. Jump up↑ https://motherboard.vice.com/en_us/article/nzeg5x/here-are-all-the-sketchy-government-agencies-buying-hacking-teams-spy-tech
  27. Jump up↑ https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-June/016062.html
  28. Jump up↑ https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-July/009510.html
  29. Jump up↑ https://bitcoin.stackexchange.com/questions/61151/eclipse-attack-vs-sybil-attack
  30. Jump up↑ https://github.com/bitcoin/bitcoin/pull/8282
  31. Jump up↑ https://github.com/bitcoin/bitcoin/pull/5941
  32. Jump up↑ https://github.com/bitcoin/bitcoin/pull/9037
  33. Jump up↑ https://github.com/bitcoin/bitcoin/pull/8594
  34. Jump up↑ https://github.com/bitcoin/bitcoin/pull/12626
  35. Jump up↑ https://bitcoin.stackexchange.com/questions/83018/transaction-relay-and-trickling-in-bitcoin
  36. Jump up↑ https://github.com/bitcoin/bitcoin/issues/13298
  37. Jump up↑ https://github.com/bitcoin/bitcoin/pull/7125
  38. Jump up↑ https://github.com/bitcoin/bitcoin/pull/7840
  39. Jump up↑ https://bitcointalk.org/index.php?topic=7.msg264#msg264
  40. Jump up↑ https://github.com/bitcoin/bitcoin/pull/5951
  41. Jump up↑ https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-June/014571.html
  42. Jump up↑ https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-September/015030.html
  43. Jump up↑ https://bitcoinmagazine.com/articles/anatomy-anonymity-how-dandelion-could-make-bitcoin-more-private/
  44. Jump up↑ https://www.youtube.com/watch?v=XORDEX-RrAI&t=7h34m35s
  45. Jump up↑ https://blockstream.com/satellite/
  46. Jump up↑ https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.17.0.md#partial-spend-avoidance
  47. Jump up↑ https://github.com/petertodd/dust-b-gone
  48. Jump up↑ https://medium.com/@octskyward/merge-avoidance-7f95a386692f
  49. Jump up↑ https://medium.com/@nopara73/coin-control-is-must-learn-if-you-care-about-your-privacy-in-bitcoin-33b9a5f224a2
  50. Jump up↑ https://p2sh.info/
  51. Jump up↑ Scaling Bitcoin conference 2018 Tokyo. Conner Fromknecht (Lightning Labs) Instantiating [Scriptless] 2P-ECDSA: Fungible 2-of-2 MultiSigs for Today's Bitcoin. https://www.youtube.com/watch?v=3mJURLD2XS8&t=3623 https://diyhpl.us/wiki/transcripts/scalingbitcoin/tokyo-2018/scriptless-ecdsa/
  52. Jump up↑ https://medium.com/cryptoadvance/how-schnorr-signatures-may-improve-bitcoin-91655bcb4744
  53. Jump up↑ https://bitcoincore.org/en/2017/03/23/schnorr-signature-aggregation/
  54. Jump up↑ https://blockstream.com/2018/01/23/musig-key-aggregation-schnorr-signatures/
  55. Jump up↑ https://github.com/sipa/bips/blob/bip-schnorr/bip-schnorr.mediawiki
  56. Jump up↑ https://bitcoinmagazine.com/articles/scriptless-scripts-how-bitcoin-can-support-smart-contracts-without-smart-contracts/
  57. Jump up↑ https://download.wpsoftware.net/bitcoin/wizardry/mw-slides/2017-03-mit-bitcoin-expo/slides.pdf
  58. Jump up↑ https://joinmarket.me/blog/blog/flipping-the-scriptless-script-on-schnorr/
  59. Jump up↑ https://lists.linuxfoundation.org/pipermail/lightning-dev/2018-April/001221.html
  60. Jump up↑ http://diyhpl.us/wiki/transcripts/layer2-summit/2018/scriptless-scripts/
  61. Jump up↑ https://bitcointechtalk.com/what-is-a-bitcoin-merklized-abstract-syntax-tree-mast-33fdf2da5e2f
  62. Jump up↑ https://bitcoinmagazine.com/articles/the-next-step-to-improve-bitcoin-s-flexibility-scalability-and-privacy-is-called-mast-1476388597/
  63. Jump up↑ https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-January/015614.html
  64. Jump up↑ https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-February/015700.html
  65. Jump up↑ https://www.reddit.com/r/Bitcoin/comments/7vcyip/graftroot_private_and_efficient_surrogate_scripts/
  66. Jump up↑ https://bitcoinmagazine.com/articles/graftroot-how-delegating-signatures-allows-near-infinite-spending-variations/
  67. Jump up↑ https://gist.github.com/chris-belcher/00255ecfe1bc4984fcf7c65e25aa8b4b#worked-example-for-tumbler-replacement
  68. Jump up↑ https://www.reddit.com/r/joinmarket/comments/3c7hnm/joinmarket_is_smart_contracts/
  69. Jump up↑ https://blockstream.com/2018/08/08/improving-privacy-using-pay-to-endpoint/
  70. Jump up↑ https://medium.com/@nopara73/pay-to-endpoint-56eb05d3cac6
  71. Jump up↑ https://gist.github.com/AdamISZ/4551b947789d3216bacfcb7af25e029e
  72. Jump up↑ https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-August/016340.html
  73. Jump up↑ https://joinmarket.me/blog/blog/coinswaps/
  74. Jump up↑ Design for a CoinSwap implementation for massively improving Bitcoin privacy and fungibility
  75. Jump up↑ Coinswap design document
  76. Jump up↑ The Human Rights Foundation Is Now Funding Bitcoin Privacy Development, Starting With CoinSwap
  77. Jump up↑ https://joinmarket.me/blog/blog/coinjoinxt/
  78. Jump up↑ https://joinmarket.me/blog/blog/the-steganographic-principle/
  79. Jump up↑ https://www.reddit.com/r/Bitcoin/comments/7t1q5x/deanonymization_risks_on_lightning_network/
  80. Jump up↑ https://github.com/lightningnetwork/lightning-rfc/blob/master/04-onion-routing.md
  81. Jump up↑ https://diyhpl.us/wiki/transcripts/scalingbitcoin/milan/onion-routing-in-lightning/
  82. Jump up↑ https://www.reddit.com/r/Bitcoin/comments/7rrjp3/is_onion_routing_appropriate_for_lightning_network/
  83. Jump up↑ https://www.reddit.com/r/Bitcoin/comments/8hwzbh/chainalysis_on_the_ln/
  84. Jump up↑ https://github.com/lightningnetwork/lightning-rfc/wiki/Rendez-vous-mechanism-on-top-of-Sphinx
  85. Jump up↑ https://lists.linuxfoundation.org/pipermail/lightning-dev/2018-November/001498.html
  86. Jump up↑ https://bitcoinops.org/en/newsletters/2018/11/20/
  87. Jump up↑ https://lists.linuxfoundation.org/pipermail/lightning-dev/2018-February/000993.html
  88. Jump up↑ Lightning in Scriptless Scripts Andrew Poelstra 20 Mar 2017 https://lists.launchpad.net/mimblewimble/msg00086.html
  89. Jump up↑ L2 Summit Hosted by MIT DCI and Fidelity Labs, Boston 2018, Andrew Poelstra talk on Scriptless Scripts http://diyhpl.us/wiki/transcripts/layer2-summit/2018/scriptless-scripts/
  90. Jump up↑ Giulio Malavolta, Pedro Moreno-Sanchez, Aniket Kate, Matteo Maffei, and Srivatsan Ravi. 2017. Concurrency and Privacy with Payment-Channel Networks. In Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security (CCS '17). ACM, New York, NY, USA, 455-471. DOI: https://doi.org/10.1145/3133956.3134096 https://eprint.iacr.org/2017/820.pdf
  91. Jump up↑ https://diyhpl.us/wiki/transcripts/scalingbitcoin/stanford-2017/concurrency-and-privacy-with-payment-channel-networks/
  92. Jump up↑ See first 20 minutes of this: https://www.youtube.com/watch?v=H1yPkPXLDVc
  93. Jump up↑ Jordi Herrera-Joancomartí, Guillermo Navarro-Arribas, Alejandro Ranchal-Pedrosa, Cristina Pérez-Solà, Joaquin Garcia-Alfaro (2019), "On the Difficulty of Hiding the Balance of Lightning Network Channels" IACR Cryptology ePrint Archive: https://eprint.iacr.org/2019/328
  94. Jump up↑ https://github.com/jlopp/physical-bitcoin-attacks
  95. Jump up↑ https://gist.github.com/chris-belcher/00255ecfe1bc4984fcf7c65e25aa8b4b#worked-example-for-tumbler-replacement
  96. Jump up↑ https://www.reddit.com/r/joinmarket/comments/7614ea/how_to_properly_spend_tumbled_coins/
  97. Jump up↑ https://twitter.com/msuiche/status/863082346014224385
  98. Jump up↑ https://bitcointalk.org/index.php?topic=1916199.0
  99. Jump up↑ https://www.reddit.com/r/Bitcoin/comments/anycg2/electrum_targeted_phishing_malware_warning/
  100. Jump up↑ https://twitter.com/GossiTheDog/status/1078308649158664194
  101. Jump up↑ https://twitter.com/LaurentMT/status/1078638385256902656
  102. Jump up↑ https://www.reddit.com/r/Bitcoin/comments/2ww4eb/how_does_wallet_explorer_know_which_wallets/
  103. Jump up↑ https://www.walletexplorer.com/txid/5ac0210febf7ce07a737bae8c32f84c1c54d131c21a16ca6b02b6f1edcad15c3
  104. Jump up↑ https://www.coinjoinsudoku.com/
  105. Jump up↑ https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-January/015606.html
  106. Jump up↑ https://p2sh.info/dashboard/db/p2sh-repartition-by-type?orgId=1
  107. Jump up↑ https://www.youtube.com/watch?v=Tiyvrh53Yp8
  108. Jump up↑ https://www.reddit.com/r/Bitcoin/comments/4vupa6/p2shinfo_shows_movement_out_of_multisig_wallets/
  109. Jump up↑ https://web.archive.org/web/20170309231819/https://www.reddit.com/r/Bitcoin/comments/4v28jl/how_have_fungiblity_problems_affected_you_in/
  110. Jump up↑ https://www.reddit.com/r/Bitcoin/comments/69duq9/50_bounty_for_anybody_recovering_445_btc_stolen/
  111. Jump up↑ Goldfeder, S., Kalodner, H., Reisman, D., & Narayanan, A. (2018). When the cookie meets the blockchain: Privacy risks of web payments via cryptocurrencies, Proceedings on Privacy Enhancing Technologies, 2018(4), 179-199. doi: https://doi.org/10.1515/popets-2018-0038
  112. Jump up↑ https://web.archive.org/web/20150607131623/http://www.reddit.com/r/DarkNetMarkets/comments/2rhaqc/deanonimyzing_bitcoinfog_and_other_tumblers/
  113. Jump up↑ Juhász PL, Stéger J, Kondor D, Vattay G (2018) A Bayesian approach to identify Bitcoin users. PLOS ONE 13(12): e0207000. https://doi.org/10.1371/journal.pone.0207000
  114. Jump up↑ D. Y. Huang et al., "Tracking Ransomware End-to-end," 2018 IEEE Symposium on Security and Privacy (SP), San Francisco, CA, 2018, pp. 618-631. doi: 10.1109/SP.2018.00047 https://www.youtube.com/watch?v=H5bPmzsVLF8
全部评论(0)