作者:洒脱喜
在开始阅读这篇文章之前,先请读者来答一道选择题:
问:关于比特币的隐私性,以下哪个答案是正确的?
A:比特币交易是匿名的;
B:比特币交易是半匿名(假名)的;
C: 绝大多数比特币交易是公开透明的;
D:虽然当前多数比特币交易是公开透明的(无隐私可言),但通过运用各种技巧,比特币交易可以做到极强的匿名性;
-------------------------------------------------------
如果你的答案是A, 说明你对比特币基本不怎么了解,如果你的答案是B,说明你多少知道一些比特币的概念,如果你的答案是C,说明你是行业人士,了解了很多的相关知识。而如果你的答案是D,恭喜你,这说明你已登堂入室,正朝着中本聪的知识水平在发展。(开个玩笑)
可以说,在比特币以及更广泛的区块链世界,隐私与反隐私的攻与防之争激烈异常。这些攻守技巧五花八门,掌握其中一二,便可在币圈混得有声有色,若是掌握其中的全部,便能和中本聪那般神龙见首不见尾。
而这篇译自bitcoin.it关于比特币隐私话题的文章,涉及到了各种比特币隐私技术、反隐私技术以及数十个具体的案例讲解,可谓是极为全面了。全文字数超过4万,但内容都非常实用,推荐大家耐心看完。
Privacy
(图片来自:pexels.com)
以下为译文:
虽然比特币可以支持强大的隐私性,但很多使用比特币的方法通常都不是很隐私的。有了对这项技术的正确理解,比特币确实可以非常私密和匿名的方式被使用。
截至2019年初,大多数比特币的业余爱好者认为,比特币是完全可追踪的,这是完全错误的理解。而在2011年左右,人们认为比特币是完全私密的,这也是完全错误的。这里有一些细微的差别,在某些情况下,比特币可以是非常私密的。但这并不容易理解,希望你在看完这篇文章后能够明白其中的原因。
本文写于2019年2月。
目录
1、摘要
2、引言
2.1示例:对手控制币的来源和目的地
2.2示例:非匿名报纸购买
2.3示例:完全私密的捐赠
2.4 一笔区块链交易的多重解释
2.5 威胁模型
2.6 数据融合方法
2.7 为什么要隐私?
3 针对隐私的区块链攻击
3.1 共同输入所有权启发式(Common-input-ownership heuristic)
3.2 找零地址检测
3.2.1 地址重用
3.2.2 钱包指纹
3.2.3 整数
3.2.4 费用增加
3.2.5 不必要的输入启发式
3.2.6 钱包错误
3.2.7 等输出CoinJoin(Equal-output CoinJoin)
3.2.8 集群增长
3.3 交易图
3.4 数量
3.4.1 透露发送方财富的输入金额
3.5 批处理
3.6 异常脚本
3.7 神秘购物者付款(Mystery shopper payment)
3.8 强制地址重用
3.9 金额相关性
3.10 时间相关性
4 针对隐私的非区块链攻击
4.1 流量分析
4.2 托管钱包
4.3 从第三方检索钱包历史记录
4.3.1 区块链浏览器网站
4.3.2 BIP 37
4.3.3 公共Electrum服务器
4.4 通信窃听
4.5 交易比特币时会揭露数据
4.6 数字取证
5 提高隐私的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.1 Tor和Tor广播
5.4.2 Dandelion
5.4.3 交互式对等广播
5.4.4 通过卫星接收比特币数据
6 提高隐私的方法(区块链)
6.1 避免地址重用
6.1.1 避免强制地址重用
6.2 币控制
6.3 多重交易
6.4 避免找零输出
6.5 脚本隐私改进
6.6 ECDH地址
6.7 中心化混合器
6.8 CoinJoin
6.8.1 等输出CoinJoin
6.8.2 PayJoin
6.9 CoinSwap
6.10 CoinJoinXT
6.11 TumbleBit
6.12 链外交易
6.12.1 Blinded bearer certificates
6.12.2 侧链
6.13 保密交易
6.14 讨论
6.14.1 隐私与可扩展性
6.14.2 隐写术
7 闪电网络
7.1 洋葱路由
7.1.1 覆盖网络拓扑的洋葱路由
7.1.2 Rendez-vous路由
7.2 原子多径支付
7.3 常用哈希锁(hashlock)值
7.4 托管钱包
7.5 专用脚本类型
7.6 探测支付,以揭示通道状态
8 现有隐私解决方案
8.1 闪电网络
8.2 手工CoinJoin
8.3 JoinMarket
8.4 Wasabi钱包
8.5 Samourai钱包
8.6 Liquid侧链
9 例子和案例研究
9.1 糟糕的隐私案例:交易所预先交易(Exchange front running)
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 现实生活中的示例:手工coinjoin误导了一位比特币分析专家
9.27 现实生活中的示例:Quadrigacx交易所钱包分析
9.28 现实生活中的例子:Coinbase禁止Bustabit赌场用户进入交易所
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检查,而在提供现实邮件地址时尤其要小心。
使用自己运行的全节点或客户端支持的钱包,绝不使用一个web钱包;
通过Tor在链上广播交易,如果你的钱包不支持它,那么通过Tor浏览器将交易十六进制数据复制到Web广播表单 中。
小额尽可能使用闪电网络;
如果闪电网络不方便使用,请使用正确实现CoinJoin的钱包;
尽量避免创建找零地址,例如,当为一个闪电网络通道提供资金时,花费掉一个完整的UTXO,而不做任何找零。
如果数字取证是一个问题,那么使用像Tails操作系统这样的解决方案;
二、引言
用户通过软件与比特币进行交互,软件可能会以各种方式泄露有关比特币的信息,从而损害其匿名性。
比特币在其区块链上记录了所有人都能看到的交易信息,从而对隐私造成了最严重的损害。比特币在地址之间移动,发送方地址、接受方地址以及交易金额都是已知的。而只有每个地址的身份是未知的(见第一张图)。
由交易产生的地址之间的联系,通常被称为交易图。我们仅通过这一项信息,是无法识别任何人的,因为地址和交易ID只是随机数。但是,如果一笔交易的过去和将来的任何地址,可以与一个实际的身份联系在一起,那么就可以从这一点开始工作,并推断出谁可能拥有所有其他地址。这种地址识别可能来自网络分析、监视、搜索Web或其他各种方法。鼓励对每笔交易使用新地址的做法,这可以使这种攻击变得更加困难。
p1
2、1 示例: 对手控制币的来源和目的地
第二张图显示了一个简单的例子。一名对手经营了一个货币兑换服务,以及一个用来诱捕人的蜜罐网站。如果有人使用他们的兑换服务购买比特币,然后将币在这个陷阱网站上进行交易,那么区块链将会显示:
地址A到地址B的币交易,其由地址A的签名授权;
地址B到地址A的币交易,其由地址B的签名授权;
假设对手知道Doe先生的银行账户发送了用于购买币的法币,然后将其转移到地址B。对手还知道该陷阱网站收到了地址C上的币,这些币是从地址B所花费的。总之,这是一个非常强烈的迹象,表明地址B就是Doe先生所有,并且他把钱寄到了陷阱网站。这种假设并不总是正确的,因为地址B可能是第三方代表DOE先生持有的地址,而与C的交易可能是无关的,或者这两笔交易实际上可能涉及一个智能合约(参见链外交易),该合约有效地将币通过链外的方式传送到区块链上某个完全不同的地址。
p2
2、2 示例:非匿名报纸购买
在本示例中,对手控制目标并从元数据中查找来源。
你居住在某个国家,你想要用比特币购买一份“真正”的在线报纸;
你加入比特币论坛,用你的地址作为签名,由于你非常乐于助人,几个月后你设法得到一笔金额不多的捐款。
不幸的是,你选择了一个糟糕的报纸购买来源:政府特工!
这名特工通过区块链查看了用于这笔报纸交易的购买信息,并搜索了网络中的每个相关地址。他在比特币论坛的签名上找到了你的地址。你在你的帖子里留下了足够的个人信息,所以你现在会被安排“再教育”。
发生这种情况的一个主要原因是地址重用。你的论坛签名有一个从未改变过的比特币地址,所以通过搜索网络就很容易找到。
你需要保护自己不受正向攻击和反向攻击,比如说报纸的例子。
2、3 示例:完美的隐私捐赠
另一方面,这里有一个使用比特币进行完全匿名捐赠的例子。
目的是向接受比特币的组织捐款。
通过Tor来运行你的比特币Core钱包;
通过Tor下载一些额外的几百GB数据,这样总的下载带宽就不是区块链的大小了。
Solo挖一个区块,把新挖到的币发送到你的钱包(可能性极低)。
将全部资金发送到该组织的捐赠地址;
最后销毁你所用的计算机地址;
由于你的全节点钱包完全是通过Tor运行的,所以你的IP地址被很好地隐藏了起来。Tor还隐瞒了你使用比特币的事实。因为这些币是通过挖矿获得的,所以它们与其他任何关于你的信息是完全没有联系的。由于交易是一笔捐赠,因此没有商品或服务交易发送给你,因此你必透露任何送货地址。当整个余额被发送时,没有返回的找零地址会泄露相关信息。由于硬件已损坏,因此在以后可以找到的任何已丢弃硬盘驱动器上都没有剩余记录。我唯一能想到的,攻击这个计划的方法,就是从Tor已知弱点入手。
2、4 区块链交易的多重解释
比特币交易由输入和输出组成,其中可以有一个或多个输入和输出。以前创建的输出,可用作以后交易的输入。这样的输出,在消耗以及新的未花费输入被创建以替代它们的时候,就会被消灭。
考虑下面这笔示例交易:
p1
这笔交易有两个输入值,分别是1 BTC和3 BTC,并创建了两个输出值,分别是1 BTC和3 BTC。
如果你想在区块链上看到这一点,你会假设这一交易的含义是什么?(例如,我们通常假设比特币交易是一种支付,但实际上不一定是)。
至少有九种[1]可能的解释:
Alice提供了两笔输入,并向Bob支付3个BTC。Alice拥有1个BTC输出(即它是一个找零输出);
Alice提供了两笔输入,并向Bob支付了1个BTC,其中3个BTC作为找零支付给Alice;
Alice提供1个BTC的输入,Bob提供3个BTC的输入,Alice获得1个BTC的输出,Bob获得3个BTC的输出。这是一种CoinJoin交易。
Alice向Bob支付2 BTC,Alice提供3 BTC的输入,获取1个BTC的输出;Bob提供1个BTC输入,获取3个BTC的输出。这将是PayJoin交易类型;
Alice向Bob支付4 BTC(但出于某种原因使用了两个输出);
假CoinJoin:Alice拥有所有的输入和输出,并且只是在自己的地址之间移动比特币;
Alice向Bob支付3 BTC,向Carol支付1 BTC。而这是一笔批量支付,不会有找零地址;
Alice支付3 BTC,Bob支付1 BTC,而Carol得到3 BTC,David得到3 BTC,这是一种没有找零地址CoinJoin批量支付;
Alice和Bob共同向Carol支付4 BTC(但使用2个输出);
仅仅从这样一笔简单的交易中,就可以做出许多种解释。因此,说比特币交易总是完全可追踪的,这是完全错误的,现实情况要复杂得多。
那些分析区块链的人通常会依靠启发式方法(或使用习惯用法),在这些启发式方法中,对可能发生的事情做出某些假设。然后,分析师会忽略或排除其中一些可能性。但这些所谓的假设可能会是错误的。有些人想要更好的隐私,他们可以故意愚弄那些按照假设进行推测的分析师。
比特币的货币单位在交易中没有水印。例如,上面这笔交易中的1个BTC输入,可能以1个BTC输出或3个BTC输出的一部分或两者的混合而结束。交易是多对多的映射,因此很重要的一点是,不可能回答1BTC 在哪里结束的问题。比特币在一笔交易中的可互换性,是上述交易不同可能性解释的重要原因。
2、5 威胁模型
在考虑隐私的时候,你需要准确地考虑你在躲避谁。你必须检查一个假设的对手是如何监视你的,什么样的信息对你而言最重要,以及你需要使用什么技术来保护你的隐私。因此,保护你的隐私所需的行为类型,取决于你的威胁模型。
新进入隐私领域的人,通常认为他们可简单地下载一些软件,然后就可以解决所有的隐私问题。情况并非如此。隐私需要行为上的改变,不管多轻微。例如,想象一下,如果你有一个完全私有的互联网,在那里你与谁交流,你说的话完全是私人的。你仍然可以用它与社交媒体网站交流,写下你的真实姓名,上传自拍,然后谈论你现在在做什么。而在公开的互联网上,任何人都可以查看这些信息,这样即使你使用完全私密的技术,你的隐私也会被破坏。
有关详细信息,请阅读Grugq为黑客提供的talk Opsec。
2、6 数据融合方法
如果将多个隐私泄露合并到一起,则其对隐私的损害,可能比任何单一泄露都要大得多(想象一下,如果一笔交易的接收者试图揭露发送者)。请参阅图表。
p3
p4
这就是为什么即使是少量信息的泄漏,也应该去避免的原因,因为当其与其他泄漏结合在一起时,它们通常会完全破坏隐私。回到非匿名买报的例子,他因为一个可见的交易信息和他的论坛签名捐赠地址的组合,而泄露了他的身份。区块链上有很多交易本身并不揭示交易人的身份或消费习惯。在论坛签名中有很多捐赠地址,它们也没有透露多少关于所有者身份或消费习惯的信息,因为它们只是随机的密码信息。但这两起隐私泄露事件组合在一起之后,会透露出更多的信息。在理解比特币(以及其他情况)的隐私时,数据融合方法是非常重要的。
2、7 为什么要隐私?
金融隐私是比特币可互换性的一个基本要素:如果你能有意义地区分一种货币和另一种货币,那么它们的可互换性就很弱。如果我们的可互换性在实践中太弱,那么我们就不能去中心化:如果有重要人物宣布一份被盗币的清单,他们不会接受从中衍生出来的币,你必须仔细核对你所接受的币不在清单当中(这非常困难)。每个人都会被各种当局发布的黑名单困住,因为在那个世界,我们都不想被坏的币困住。这增加了摩擦和交易成本,使得比特币作为货币的价值降低。
金融隐私是自由市场有效运作的一个重要标准:如果你经营一家企业,如果你的供应商和客户能看到你的所有交易违背你的意愿,你就不能有效地设定价格。如果你的竞争对手在跟踪你的销售情况,你就不能有效地竞争。如果你对自己的账户没有隐私权,那么你在私人交易中的信息优势就会丧失:如果你用比特币支付给房东,而没有足够的隐私权,那么你的房东会在你加薪后了解到你的情况,并且可能因此会向你索要更多的租金。
金融隐私对人身安全至关重要:如果窃贼能看到你的支出、收入和财产,他们就可以利用这些信息来攻击和利用你。如果没有隐私,恶意的团体就有更多的能力窃取你的身份,从你家门口抢走属于你的东西,或者冒充你与之交易的企业……他们能准确地知道要骗你多少钱。
金融隐私对于人的尊严而言是至关重要的:没有人希望咖啡店里那些势利的咖啡师或他们爱管闲事的邻居评论他们的收入或消费习惯。没有人想让他们的女婿发疯,问他们为什么要买避孕药(或性玩具)。你的雇主不知道你捐给什么教会。只有在一个完全开明的、没有歧视的世界里,没有人对其他人拥有不应有的权力,如果我们没有隐私,我们才能保持尊严,在没有自我审查的情况下自由地进行合法交易。
最重要的是,金融隐私与执法或透明度等事项并不矛盾。你可以随时保持记录,被命令(或自愿)提供给任何人,当你不能提供记录时,让法官来进行判定(就像今天的情况一样)。所有这些都不需要全球可见的公开记录。
全球可见的金融公共记录完全是闻所未闻的。它们不受欢迎,而且可以说是无法容忍的。比特币白皮书承诺,我们将如何绕过带有假名地址账本的可见性,但生态系统已经在许多地方违背了这个承诺,我们应该修复它。比特币可以把你的名字或IP地址编码到每一笔交易中。它没有,白皮书甚至还有一个关于隐私的部分。说比特币不注重隐私是不正确的。充分的隐私,是一种可行数字货币的必要前提[2]。
三、针对隐私的区块链攻击
比特币使用了区块链,用户可下载和验证区块链,以检查比特币的所有规则是否在其历史中得到遵守。例如,用户可检查确保没有人制造出无限的比特币,并且每个币只使用其私钥创建的有效签名。这就是比特币独特的价值主张的原因,它是一种电子现金形式,只需要少量的信任。但同样的区块链结构会导致隐私问题,因为每一笔交易都必须永远供所有人查看。本节讨论对手可能用于分析公链的已知方法。
比特币使用的是UTXO模型。交易有输入和输出,它们可以有一个或多个输入和输出。以前的输出可以用作以后交易的输入。而尚未使用的输出,便被称为UTXO,UXTO通常被称为“币”。UXTO与比特币地址相关联,可以通过创建与地址的scriptPubKey相对应的有效签名来使用。
地址是密码信息,本质上是随机数。就其本身而言,它们并没有透露其背后持有者的真实身份。通常,对手会试图将他们认为属于同一钱包的多个地址链接在一起。这种地址集合称为“集群”或“钱包集群”;一旦集群被获得,对手就可尝试将它们联系起来,然后和其监视实体的真实身份联系起来。例如,它可能发现属于Alice的钱包集群A和属于Bob的另一个钱包集群B,如果看到比特币交易从集群A支付到集群B,则对手知道Alice已向Bob发送了币。
很难对钱包聚类的启发式方法进行微调,从而获得真正正确的信息[3]。
3、1 共同输入所有权启发式
这是一种启发式或假设,即如果一笔交易有多个输入,那么所有这些输入都属于同一个实体。
例如,考虑这笔带有输入A、B和C以及输出X和Y的交易。
p2
这笔交易将表明,地址B和C属于拥有地址A的同一个人。
CoinJoin的一个目的,就是打破这种启发式。尽管如此,这种启发式方法通常是正确的,并且到2019年,它被交易监控公司和其他对手广泛使用。启发式算法通常与地址重用推理相结合,这与2018年比特币经济的某种集中化相结合,是这种启发式法不合理有效的原因[4]。启发式的成功还取决于钱包的行为,例如,如果钱包通常接收少量信息并发送大量信息,那么它将创建很多多输入交易。
3、2 找零地址检测
很多比特币交易都会有找零输出。如果可以找到找零地址,这将是一个严重的隐私泄露事件,因为它将(现在已用完的)输入的所有权与新的输出相链接。当与其他隐私泄漏(如公共输入所有权启发式或地址重用)结合使用时,找零输出可能是非常有效的。找零地址检测,允许对手将新创建的地址集群在一起,公共输入所有权启发式和地址重用允许将以前的地址集群在一起。
找零地址会导致一种常见的使用模式,我们称之为剥离链(the peeling chain)。在交易所、市场、矿池和工资支付等大型交易之后,人们看到了这一点。在剥离链中,单个地址以相对大数量的比特币开始。然后将较小的金额从这个较大的金额中剥离,从而创建一笔交易,其中较小的金额被转移到一个地址,其余的金额被转移到一个一次性找零地址。这个过程会重复(可能有数百或数千个跃点),直到更大的数量被减少,在这一点上(在一次使用中),地址中剩余的数量可与其他此类地址聚合,以便在单个地址中再次产生大量的数量,然后剥离过程再次开始[5]。
下面列出了推断交易输出中哪些是找零输出等可能方法:
3、2、1 地址重用
如果输出地址被重用,则很可能是支付输出,而不是找零输出。这是因为找零地址是由钱包软件自动创建的,但付款地址是人与人之间手动发送的。地址重用会发生,因为人类用户出于无知或冷漠而重用了一个地址。这种启发式可能是最准确的,因为它很难想象会出现怎样的误报(除了钱包的故意设计)。这种启发式也被称为“影子启发式”。一些非常老的软件(从2010-2011年代开始,当时还没有确定性钱包)没有使用新的地址更改,而是将找零发送回输入地址。这准确地显示了找零地址。
避免地址重用是一个明显的补救措施。另一个想法是,钱包可以自动检测以前使用过支付地址的时间(可能通过询问用户),然后使用重用地址作为其找零地址,因此两个输出都会成为重用地址。
3、2、2 钱包指纹
一个细心的分析师有时会推断出哪个软件创建了一笔特定交易,因为很多不同的钱包软件并不总是以完全相同的方式创建交易。钱包指纹可以用来检测找零输出,因为找零输出是使用相同钱包指纹的输出。
例如,考虑五笔典型的交易,每笔交易消耗一个输入并产生两个输出。A、B、C、D、E指交易,A1、A2等是指这些交易的输出地址。
p3
如果钱包指纹发现交易A、B、D和E是由同一钱包软件创建的,而其他交易是由其他软件创建的,则找零地址会变得明显。显示相同的交易,其中不匹配的地址替换为X。剥离链是可见的,很明显,B2, D2, E1是与A1属于同一钱包的找零地址。
p4
有很多方法可以获得用于识别钱包软件的证据:
1、地址格式:钱包通常只使用一种地址类型,如果一笔交易具有相同地址类型(例如p2pkh)的所有输入和一个输出,而其余输出为不同类型(p2sh),那么一个合理的假设是相同地址格式输出(p2pkh)是找零,而不同地址格式输出(p2sh)是属于其他人的付款。
2、脚本类型:每个钱包通常只使用一个脚本。例如,发送钱包可能是一个p2sh 2-of-3多重签名钱包,它将一笔交易发送到两个输出:一个2-of-3 多重签名地址,另一个是2-of-2多重签名地址。不同的脚本强烈地表明:这个输出是支付,而另一个输出则是找零。
3、BIP69:这个BIP描述了一种钱包的标准方式,可以为了隐私而整理它们的输入和输出。目前,钱包生态系统混合了各种类型的钱包,它们当中有些实施了这一标准,有些则没有,这有助于指纹识别。请注意,随机排序的普通单输入双输出交易,只会在50%的时间内遵循bip69。
4、输入和输出的数量:不同的用户通常构造不同的交易。例如,个人通常只进行两种产出的交易:支付和找零,而像赌场或交易所这样高交易额的机构,则会使用合并和批处理[6][7]。稍后用于创建批处理交易的输出,可能不是找零。这种启发式也被称为“消费者启发式”。
5、交易字段:交易格式中的值可能因钱包软件而异:nLockTime是一些钱包设置的交易中的一个字段,用于降低费用狙击的利润。生态系统中的钱包,可实现也可不实现这一功能。nLockTime也可用于某些隐私协议,如coinswap。nSequence是另一个例子,此外还有版本号。
6、低R值签名:用于编码比特币签名的DER格式需要向签名添加一个完整的额外字节,以指示签名的r值何时位于比特币所用椭圆曲线的上半部分。R值是随机派生的,所以一半的签名都有这个额外的字节。截至2018年7月[8],Bitcoin Core仅生成带有低R值的签名,而不需要额外的字节。通过这样做,Bitcoin Core交易,可实现平均每两个签名节省一个字节。截至2019年,没有其他钱包是这样做的,因此,高R值签名是Bitcoin Core未被使用的有效证据[9]。
7、未压缩和压缩公钥。旧版钱包软件使用未压缩的公共密钥[10]。压缩密钥和未压缩密钥的混合可以用于指纹识别。
8、挖矿费用:不同的钱包软件可能以不同的方式响应区块空间压力,从而导致支付不同种类的挖矿费用。这也可能是一种识别所用钱包的方式。
9、币选择(Coin Selection):不同的钱包软件可使用不同的算法,来选择哪个UTXO被使用,这也可用于识别钱包。
如果多个用户使用同一个钱包软件,则钱包指纹无法检测找零地址。也有可能一个用户拥有两个不同的钱包,它们使用不同的软件(例如热钱包和冷钱包),然后不同软件之间的交易不会表明所有权的变化。钱包指纹本身从来不是决定性的证据,但和所有其他隐私泄露一样,当多个隐私泄露合并在一起时,数据融合的方法会造成更多的隐私泄露。
3、2、3 整数
很多付款金额都是整数,例如1 BTC或0.1 BTC。而剩余的找零数额将是一个非整数(例如1.78213974 BTC)。这对于查找找零地址可能很有用。金额可以是另一种货币的整数。2.24159873 BTC的金额不是以比特币为单位的整数,但换算成美元后,可能接近一个美元整数。
3、2、4 费用增加
BIP 0125定义了将未确认的交易替换为另一个支付更高费用交易的机制。在区块空间市场的背景下,用户可能会发现他们的交易没有足够快的确认,因此他们选择“加价”或支付更高的挖矿费用。但是,一般来说,新的更高的挖矿费用,将通过减少找零金额来实现。因此,如果一个对手正在观察所有未确认的交易,他们可以看到较早的低费用交易和随后的高费用交易,并且减少金额的输出将是找零输出。
这可以通过减少两个输出的数量或只减少付款金额(在发送方付费模式中)来缓解。
3、2、5 不必要的输入启发式
也称为“最佳变化启发式”。考虑下面这笔比特币交易,它有两个输入值2 BTC和3 BTC,两个输出值为4 BTC和1 BTC。
p5
假设其中一个输出是找零,另一个输出是支付。有两种解释:支付输出要么是4 BTC输出,要么是1 BTC输出。但是,如果1 BTC输出是支付金额,那么3 BTC输入是不必要的,因为钱包可能只花了2 BTC输入,并为此支付了较低的矿工费用。这表示实际支付输出为4 BTC,1 BTC为找零输出。
对于具有多个输入的交易,这是一个问题。解决此泄漏的一种方法是添加更多的输入,直到找零输出高于任何输入,例如:
p6
现在这两种解释都意味着一些输入是不必要的。不幸的是,这要花费更多的挖矿费用,而且只有当钱包实际拥有其他UTXO时才能做到。
一些钱包有一个币选择(coin selection)算法,这违反了这种启发式。一个例子可能是因为钱包希望在挖矿费用低廉的时候整合输入。所以这种启发式不是决定性的证据。
3、2、6 钱包错误
一些钱包软件以非常非私密的方式处理找零。例如,某些旧钱包总是将找零输出放在交易的最后位置。旧版本的Bitcoin Core会向交易添加输入UTXO,直到找零数量大约为0.1 BTC,所以超过0.1 BTC的金额总是会被找零处理。
3、2、7 等输出CoinJoin
相等输出CoinJoin交易通常会显示找零地址,因为它是不相等值的输出。例如,考虑这个等输出coinjoin:
p7
有一个很强的迹象表明,输出D找零属于输入Y的所有者,而输出C找零属于输入X的所有者。然而,coinjoin打破了常见的输入所有权启发式方法,有效地隐藏了支付输出(A和B)的所有权,因此权衡仍然非常有利于coinjoin的使用。
3、2、8 集群增长
通过使用共同输入所有权启发式方法创建的钱包集群,通常会缓慢且递增地增长(地址数量)。两个大的集群合并是罕见的,可能表明启发式方法有缺陷。因此,推断找零地址的另一种方法,是找出哪个输出导致集群增长缓慢。允许集群增长“多慢”的确切值,是一个悬而未决的问题。
3、3 交易图
如简介中所述,地址通过区块链上的交易连接在一起。来自所有交易和地址的信息,通常被称为交易图。
交易通常被假定与真实的经济交易相对应,但有时交易实际上只是代表某人向自己发送了比特币。
污染分析(Taint analysis)是一种有时用来研究比特币流通和提取隐私相关信息的技术。如果地址A与隐私相关信息(如某个实名)相连,并且它进行了一笔交易,将币发送到地址B,则地址B被地址A的币污染了。这样,通过交易“触摸”传播污染[12]。目前还不清楚污染分析对间谍活动有多大的帮助,因为它没有考虑所有权的转移。例如,受污染币的所有者可能会将其中的一部分捐赠给某个慈善机构,捐赠的币可以说是受污染的,但慈善机构并不关心,也不能提供任何关于这些币来源的信息。污染分析可能只对破坏某些企图,通过多次向自己发送几十笔伪造交易来隐藏币来源的计划有用。
3、4 数量
区块链交易包含交易输入和输出的金额信息,以及隐含的矿工费用金额。这对所有人都是可见的。
通常,一笔交易的支付金额是一个整数(也可能转换成另一种货币)。比特币交易中的整数分析,被用于衡量支付发生的国家或地区[13]。
3、4、1 输入数量显示发送者的财富
可用输入的大小与所需输入的大小不匹配,可能导致发送者总财富的隐私泄露。例如,当打算向某人发送1 比特币时,用户可能只有一个价值10 比特币的输入。他们创建了一笔交易,其中1 比特币将发送给接收者,剩余的9比特币则会发送到找零地址。接收者可查看区块链上的交易,并推断发送者至少拥有10 比特币。
与纸币类似,如果你交出一张100美元的钞票来支付一杯仅5美元的饮料,酒保就会知道你的余额至少还有95美元,当然,你的余额可能会更高,但绝不会是低于这个数字[14]。
3、5 批处理
批处理支付是一种减少支付给矿工费用的技术,它的工作原理是将多笔付款批处理成一笔区块链交易。这种技术通常会被交易所、赌场和其他高消费群体所使用。
*隐私意味着接收者可以看到接收者的数量和地址[15]*
“当你收到从Kraken交易所的提款时,你可以在区块链浏览器上查找你的交易,并查看在同一交易中收到付款的其他所有人的地址。你不知道那些接收者是谁,但你知道他们和你一样从Kraken那里收到的比特币。 这不利于隐私,但也可能不是最糟糕的事。如果Kraken单独支付每一笔款项,它们可能仍然通过找零输出联系在一起,也可能通过某些其他的识别特征联系在一起,这些特征阻碍了区块链分析公司和个人对特定的消费者进行指纹识别。
然而,如果你正在考虑批支付的话,这是需要记住的,在这种情况下,隐私可能特别重要,或者说已经有点弱了,比如在一家小公司里发工资,你不希望每个员工都知道其他员工的工资。
”
3、6 非寻常脚本
大多数(但并非所有)比特币脚本都是单一签名的 。其他脚本也是可能的,其中最常见的就是多重签名。一个特别不寻常的脚本,可以通过如此独特的方式泄露信息。
2-of-3多重签名是到2019年为止最常见的非单签名脚本。
3、7 神秘购物者付款(Mystery shopper payment)
所谓一笔神秘购物者付款,是指对手向目标支付比特币,以获取隐私相关信息。即使用户避免了地址重用,这种方式也能工作。例如,如果目标是一个在线商家,那么对手可以购买一个小商品。在支付界面上,它们将显示商家的一个比特币地址。对手现在知道这个地址是属于商家的,通过观察区块链进行后续交易,其他信息会被显示出来,当与其他技术结合时,这些信息会显示出很多关于商家的数据。通用输入所有权启发式和找零地址检测,可显示属于商家的其他地址(假设商家没有使用CoinJoin等对策),并可以给出销售量的下限值。这是因为在整个互联网上的任何人,都可以请求一个商家地址。
3、8 强制地址重用
所谓强制地址重用,是指对手向已经在区块链上使用的地址支付少量比特币。对手希望用户或他们的钱包软件将使用这笔支付作为一个更大交易的输入,这将通过共同输入所有权启发式揭示其他地址。这些付款,可以被理解为一种有意解决地址重用问题的方法[16][17]。
钱包的正确行为,是不花掉已在用过地址上的币。
3、9 数量相关性
数量相关性是指指搜索整个区块链中的输出数量。
例如,假设我们正在使用任何破坏交易图的黑盒隐私技术。
p8
这项隐私技术被用于混合V数量的比特币,并把剩余比特币(V-最小交易费)归还给用户。数量相关性可通过搜索区块链中输出接近V的交易而反过来破解这种混合技术。
一种抵抗数据相关性的方法,是将发送回用户的比特币分成带有输出量为(w0, w1, w2)的很多交易,而它们相加的总和,等于V-最小交易费。
p9
使用数量相关性的另一种方式,是使用它来找到一个起始点。例如,如果Bob希望跟踪Alice,假设说Alice恰巧提到她会和自己的男友花5000美元去度假,Bob可以在相应的时间段在区块链上搜索所有的交易,并找到输出数量接近5000美元的交易。即使Bob找到了多个匹配的交易,这也可以为Bob找到属于Alice的比特币地址提供一个好的思路。
3、10 时间相关性
所谓时间相关性,顾名思义就是指利用区块链上交易发生的时间信息,类似于数量相关性,如果一个对手不知何故发现有趣的交易发生时间,他们可以在该时间段内搜索区块链,以缩小候选范围。
这可通过均匀随机选择一个时间(从现在到适当的时间段)来打破,在这个时间段内广播比特币交易。这迫使对手搜索更多的现有交易;他们必须相等地考虑从现在到时间段之间的整个匿名集。
四、对隐私的非区块链攻击
4、1 流量分析
比特币节点通过对等网络相互通信,以传输交易和数据块。
节点将这些数据包中继到它们的所有连接,这具有良好的隐私属性,因为一个连接的节点不知道传输的数据是来自它的对等节点,还是仅仅是中继了这些数据。
能够窥探你的互联网连接的对手(如你的ISP、WiFi提供商或VPN提供商)可看到你的节点发送和接收的数据。这将显示你是比特币用户。如果对手看到一笔交易或区块从你的节点中出来,而你之前没有进入该节点,则可以近乎确定地知道该交易是由你完成的,或者该区块是由你挖到的。当涉及到互联网连接时,对手将能够将IP地址与发现的比特币信息链接起来。
在没有对手完全控制受害者互联网连接的情况下,可以使用某种Sybil攻击来发现交易或区块的来源。它的工作原理是,对手在不同的IP地址上创建很多自己的假节点,这些假节点会主动地宣布自己,以吸引更多的节点来连接到它们,他们也会尽可能多地连接到其他侦听节点。这种高连通性有助于敌方在新广播的交易和区块在通过网络传播时,对它们进行跟踪,从而找到它们的位置。
有些钱包不是全节点,而是以不同方式工作的轻量级节点。它们的隐私属性通常要差得多,但其严重程度取决于每个钱包的详细信息。一些轻量级钱包只能连接到你自己的全节点上,如果这样做了,那么它们在流量分析方面的隐私程度,将提高到全节点的级别。
4、2 托管钱包
有些比特币钱包,只是连接到某个公司运行的后端服务器的前端。这种钱包完全没有隐私可言,运营公司可以看到所有用户的地址和所有交易,大多数时候他们也会看到用户的IP地址。不太建议用户使用web端钱包。
相关文章:基于浏览器的钱包
4、3 从第三方检索钱包历史记录
所有比特币钱包必须以某种方式获得有关其余额和历史记录的信息,这可能会泄露有关哪些地址和交易属于它们的信息。
4、3、1 区块链浏览器网站
区块链浏览器网站是常用的。一些用户甚至在这些网站上搜索他们的交易,并刷新它,直到它达到3个确认。这对隐私而言非常不利,因为网站可以很容易地将用户的IP地址与他们的比特币交易链接起来(除非使用tor)。
要获得有关自己交易的信息,最好使用钱包软件,而不是某些网站。
4、3、2 BIP 37
很多轻钱包使用了BIP37 标准,这有严重的设计缺陷,其会导致隐私泄露。任何使用bip37的钱包,都无法提高隐私保障,这相当于将所有钱包地址发送到随机服务器。而该服务器可以很容易地监视钱包。在设计和理解其他隐私解决方案时,从BIP37都失败中吸取教训是有用的,尤其是在结合BIP37 Bloom过滤器泄漏与区块链交易信息泄漏的数据融合方面。
相关文章:BIP37 隐私问题 https://en.bitcoin.it/wiki/BIP37_privacy_problems
4、3、3 公用Electrum服务器
Electrum是一种流行的软件钱包,其通过连接到专用服务器来工作。这些服务器接收钱包中比特币地址的哈希,并用交易信息回复。Electrum钱包速度快,资源少,但默认情况下,它连接到这些服务器,可以轻松监视用户。除了Electrum之外,其他一些软件也使用了公共Electrum服务器。截至2019年,它是比BIP37更快更好的轻钱包替代品。
服务器只掌握地址的哈希,而不是地址本身,实际上,如果在区块链上至少使用过一次,它们只知道实际地址和关联交易。
运行自己的Electrum服务器,并将钱包指向只使用它并不难。这将使Electrum恢复到与全节点具有相同隐私和安全属性的程度,在该节点上没有其他人可以看到钱包感兴趣的地址或交易。然后,Electrum就变成了一个全节点钱包。
4、4 通信窃听
一种简单但有效的隐私泄露。Alice给Bob一个她的地址,让其给她付款,但Eve窃听了她的通信并看到了地址,现在Eve就知道这个地址是属于Alice的了。解决方案是在适当的情况下加密地址,或者根据威胁模型,使用另一种方法以某种方式将地址不对敌手公开。
有时窃听可能是非常琐碎的,例如一些论坛用户在他们的网站上发布比特币捐赠地址、论坛签名、个人资料、Twitter页面等,搜索引擎可以在这些地方获取到这些信息。在简介部分提到的非匿名买报的例子中,他在自己的论坛签名中公开自己的地址,是使得他无法保持隐私的一个重要原因。这里的解决方案是向每个潜在的捐赠者显示一个新的地址,例如通过设置一个Web服务器向每个访问者分发唯一的地址。
4、5 当交易比特币时披露的数据
有时,用户可能自愿透露自己的数据,或者被与之交互的实体要求透露。例如,很多交易所要求用户进行反洗钱和了解您的客户(AML/KYC)检查,这要求用户披露各种侵入性的个人信息,如真实姓名、住所、职业和收入等。然后,所有这些信息都与比特币地址和稍后使用的交易联系到了一起。
用比特币在线购买商品时,需要提供送货地址。这将比特币交易与交货地址链接起来。这同样适用于用户的IP地址(除非使用像Tor这样的隐私技术)。
4、6 数字取证
钱包软件通常把它需要操作的信息,存储在运行它的计算机的磁盘上。如果对手可以访问该磁盘,则可以提取已知与该磁盘所有者链接的比特币地址和交易。同一张磁盘可能包含其他个人信息(如身份证扫描)。数字取证是所有好的钱包软件加密钱包文件的一个原因,尽管如果使用弱加密密码,这可能会被破解。
例如,如果你的电脑上安装了比特币钱包,并将电脑交给维修店进行维修,那么维修店操作员可以找到钱包文件和所有交易记录。其他的例子可能是,如果一个旧硬盘被扔掉。安装在同一台计算机上的其他软件(如恶意软件)也可以从磁盘或RAM中读取以监视用户进行的比特币交易。
为了隐私考虑,不要将你计算机上的数据留给其他人使用。具体取决于你的威胁模型。加密和物理保护是可选的,就像使用特殊的操作系统(如Tails OS)一样,Tails OS不从硬盘上读或写,但只使用RAM,然后在关机时删除所有数据。
五、提高隐私的方法(非区块链)
5、1 匿名获取比特币
如果对手没有把你的比特币地址和你的身份联系起来,那么隐私就容易多了。区块链间谍方法,如公共输入所有权启发式、检测找零地址以及金额相关性,如果没有起点可链接回,则它们本身并不十分有效。
很多交易所要求用户进行反洗钱和了解客户(AML/KYC)检查,这要求用户披露各种侵入性个人信息,如真实姓名、住所、职业和收入等。然后,所有这些信息都与比特币地址和稍后使用的交易相链接。
避免AML/KYC的隐私侵犯,可能是个人改善隐私的唯一最重要事情。它比任何实际的技术(如Coinjoin)都要好得多。事实上,如果所有用户只在AML/KYC机构之间进行交易,那么所有的密码技术和隐私技巧都是无关的[20]。
5、1、1 现金交易
实物现金是一种匿名的交换媒介,因此使用它是一种匿名获取比特币的方法,除了交易伙伴外,没有其他方可识别交易数据。
关于这部分,文章不会过多关注。
5、1、2 现金替代品
现金替代品,如礼品卡、手机信用卡或预付借记卡,通常可以从正规商店用现金购买,然后在网上交易比特币。
5、1、3 就业
如果雇主没有要求更多的个人信息,作为已完成工作的付款接受的比特币,是可匿名的。在自由职业或承包环境中,这可能会很好地工作。虽然如果你的对手是你自己的雇主,那么显然这也不是一个好的隐私选择。
5、1、4 挖矿
采矿是获取比特币最佳的匿名方式。这适用于solo挖矿(然而现实情况已经不太可能)。因为矿池通常知道矿机的IP地址。根据作业规模,挖矿可能会使用大量的电力,这可能会引起怀疑。此外,专用挖矿硬件可能很难匿名获取(尽管它们不会连接到最终挖取的比特币)。
5、1、5 偷窃比特币
另一个匿名获得比特币的方式,就是偷取别人的比特币[21]。
这样的情况已经不止一次的发生了。在2015年,一个名叫Phineas Fisher[22] 的黑客入侵了一家向独裁者出售监控产品的间谍软件公司[23]。黑客利用从其他人那里偷来的比特币,以匿名方式租用基础设施,以备日后的攻击。
5、2 匿名使用比特币
如果你放弃了你的送货地址(如果你在网上购买实物商品,你必须要用到送货地址),那么这将是一个数据泄露。显然,这在许多情况下是不可避免的。
5、3 钱包历史记录同步
比特币钱包必须以某种方式获得有关其余额和历史的信息。
截至2018年底,最实用和最私密的现有解决方案,是使用全节点钱包(隐私性最强)和客户端区块过滤(隐私性非常好)。
这些技术的一个问题是,它们总是比web钱包和中心化式Electrum服务器等非隐私解决方案要花费更多的资源(时间、带宽、存储等)。有一些测量表明,很少有人真正使用bip37,因为它的速度太慢了[24],所以即使是客户端区块过滤也可能不会使用太多。
5、3、1 全节点
全节点会下载整个区块链,其中包含比特币区块链中曾经发生的每一笔链上交易。因此,观察用户互联网连接的对手,将无法了解用户感兴趣的交易或地址。这是钱包历史与隐私同步的最佳解决方案,但不幸的是,它需要大量的时间和带宽。
5、3、2 隐私信息检索
在密码学中,隐私信息检索(PIR)协议是一种允许用户从拥有数据库的服务器上检索项目,而不必透露检索项目的协议。这已被提议作为一种隐私同步钱包历史的方法,但由于PIR协议是资源密集型的,那些不介意花费带宽和时间的用户,可以只运行一个全节点来代替这种方案。
5、3、3 客户端区块筛选
客户端区块筛选通过创建包含区块中每笔交易的所有地址的筛选器来工作。过滤器可以测试一个元素是否在集合中;一个轻量级钱包将下载区块链中每个区块的所有过滤器,并检查是否与自己的地址匹配。包含匹配项的区块,将从对等网络中完全下载,这些区块将被用于获取钱包的历史记录和当前余额。
5、3、4 通过洋葱路由的地址查询
钱包历史记录可以从中央服务器(如Electrum服务器)获得,但每个地址使用一个新的Tor circuit。一个密切相关的想法,是将洋葱路由网络中的Electrum服务器连接在一起[25]。在创建这样一个方案时,应注意避免将地址链接在一起的时间相关性,否则服务器可能会使用这样一个事实:即请求的地址在时间上是相互靠近的。
5、4 针对流量分析的对策
Bitcoin Core及其分支,具有抵抗女巫攻击(sybil attack)和日食攻击(eclipse attack)的对策。实际上,日食攻击(eclipse attack)也属于女巫攻击,这种攻击下,对手试图控制目标的所有对等点,并阻止或控制对网络其余部分的访问。这种攻击在2015年的一篇论文《针对比特币点对点网络的日食攻击》中得到了广泛的研究,该论文为Bitcoin Core编写了新的代码,用于缓解这类攻击。[26][27][28][29][30]
Bitcoin Core及其分支在中继未确认的交易时,使用了一种称为“trickling”的算法,其目的是使女巫攻击者尽可能难地找到交易的源IP地址。对于每一个对等节点,节点都保存一个它将要向其输入的交易的列表。它定期发送交易的inv,每个inv之间会有随机延迟。根据一些涉及费率的指标,选择交易以随机方式进入inv消息。它选择有限数量的交易到inv。该算法使得对等节点可能听到来自创建者邻居而不是创建者节点本身的未确认交易[31][32][33][34]。然而,对手有时仍然可以获得与隐私相关的信息。
对对等节点之间消息进行加密(如BIP 151)会使被动攻击者(如ISP或WiFi提供商)更难看到比特币节点发送和接收的确切消息。
5、4、1 Tor和Tor广播
如果对潜在的对手感到担心,那么比特币完全可通过tor来运行。Tor加密并隐藏端点,因此ISP或WiFi提供商甚至不会知道您使用的是比特币。其他连接的比特币节点将无法看到你的IP地址,因为Tor将其隐藏掉了。Bitcoin Core和其分支有一些功能,可以使设置和使用tor变得更容易。一些轻钱包也完全可通过Tor来运行。
完全在Tor上运行的缺点是,在同步节点时需要在Tor上下载整个区块链,这将非常缓慢。可以通过clearnet下载区块和未确认交易,但通过tor广播你自己的交易,这允许快速的clearnet 连接,同时仍为广播提供隐私。
5、4、2 Dandelion(蒲公英)
Dandelion(蒲公英)是另一种隐私交易广播技术。主要思想是交易广播分两个阶段进行:首先是“stem”阶段,然后是“fluff”阶段。在“stem”阶段,每个节点将交易中继到一个对等节点。在沿着stem随机跳数之后,交易进入“fluff”阶段,其行为与普通交易扩散类似。即使攻击者能够识别出“fluff”阶段的位置,也很难识别stem的来源。[36][37][38][39]
5、4、3 交互式对等广播
一些隐私技术,如coinjoin和coinswap,需要很多比特币实体之间的交互。它们还可以用于广播具有更多隐私的交易,因为隐私协议中的对等方可以使用彼此交互使用的现有协议,互相发送未确认的交易。
例如,在JoinMarket当中,市场接受者可以将交易发送给做市商,由做市商进行广播,从而提高接受者的隐私。这对接受者来说比设置Tor更方便。
5、4、4 通过卫星接收比特币数据
至少有一家比特币公司提供了卫星比特币服务[40]。这是一项免费服务,卫星将比特币区块链广播到世界上几乎任何地方。
如果用户在太空中设置了一个指向卫星的碟形天线,那么他们就可以接收运行全节点所需的比特币区块。由于卫星设置只能接收,因此没有人能检测到用户甚至在运行比特币,当然也不能检测出哪些地址或交易属于他们。
截至2019年,该公司提供付费API,允许通过卫星向世界任何地方广播任何数据,这似乎是他们赚钱的方式。但似乎广播区块链的基础服务,永远都应该是免费的。
相关文章:https://blockstream.com/satellite/
六、提高隐私的方法(区块链)
本节内容描述了改善区块链交易隐私的不同技术。有些技术是微不足道的,并且包含在所有优秀的比特币钱包中。其他的已经在一些开源项目或服务中实现,这些项目或服务可能使用了多个技术。也有一些技术尚未被实施。这些技术当中的很多,侧重于打破关于区块链的不同启发式和假设,因此当它们结合在一起被使用时,效果会是最好的。
6、1 避免地址重用
多次使用的地址对隐私非常有害,因为这将更多的区块链交易联系在一起,证明它们是由同一实体创建的。使用比特币最私密和安全的方法,是给每个付钱的人发送一个全新的地址。收到的币用完后,地址就不能再使用了。此外,发送比特币时,应要求提供全新的比特币地址。所有好的比特币钱包都有一个用户界面,其不鼓励地址重用。
有人认为,“比特币地址”这个词对这个对象而言是一个坏名字,因为它意味着它可以像电子邮件地址一样被重用。更好的名字应该是“比特币invoice”。 (题外话,这也是为什么闪电网络使用了invoice这个词,而不是地址)
比特币不是匿名的,而是假名的,而所谓的假名就是指的比特币地址。避免地址重用,就像在使用后扔掉一个假名一样。
Bitcoin Core 0.17包含了一个更新,以改善地址重用的隐私情况[41]。当一个地址被多次支付时,这些单独支付的币可以分开使用,这会因为链接其他单独的地址而损害隐私。一个-avoidpartialspends flag已经被添加到Bitcoin Core 0.17(默认值为false),如果启用,钱包将始终将花费现有UTXO到同一地址,但副作用在于它会导致更高的费用。如果有人在币使用后把它寄到某个地址,这些币仍将包含在未来的币选择当中。
6、1、1 避免强制地址重用
避免因强制地址重用而导致隐私损失的最简单方法,是不使用已使用过的空地址上的币。通常情况下,别人给你打的币会很少,因此不去花这些钱,就不会对你造成更大的损失。
Dust-b-gone是一个老项目[42],其旨在安全地花费强制地址重用付款。其通过和其他人一起签署所有的UTXO,并将其花在挖矿费用上。这些交易使用罕见的OP_CHECKSIG签名哈希标志,这样就可以很容易地从对手的分析中消除它们,但至少强制地址重用支付不会导致进一步的隐私损失。
6、2 币控制
币控制是一些比特币钱包提供的一种功能,它允许用户选择哪些币作为输出交易的输入。币控制旨在尽可能避免隐私泄露是由数量、找零地址、交易图和共同输入所有启发式引起的[43][44]。
用币控制避免交易图隐私泄露的一个例子是:一名用户的工作报酬是比特币,但有时他也会使用现金来购买比特币。这名用户想捐出一些钱给其感兴趣的慈善事业,但不想让他的雇主知道。该慈善机构还有一个公众可见的捐赠地址,可以通过网络搜索引擎找到。如果用户在没有币控制的情况下支付给慈善机构,他的钱包会导致他的币是来自于他的雇主,那么这就允许雇主找到这名用户把钱捐给了哪个慈善机构。而通过使用币控制技术,用户可确保只有以匿名现金的方式获得的比特币才会被捐给慈善机构。这避免了雇主知道这名用户在经济上支持这个慈善机构的事实。
6、3 多重交易(Multiple transactions)
向拥有多笔链上交易的人付款,可以大大降低基于数量的隐私攻击(如数量相关性和整数)的威胁。例如,如果用户希望向某人支付5个BTC,但他不希望被轻松搜索到5 BTC的值,那么他可以发送2 BTC和3 BTC这两个值的两笔交易。
有隐私意识的商家和服务商,应向客户提供可支付的多个比特币地址。
6、4 避免找零输出
避免找零输出是指交易输入和输出被仔细选择,使得交易根本不需要找零输出。没有找零输出对于隐私而言是很好的。
避免找零输出对于高交易量的比特币服务而言是可行的,这些服务通常具有大量可供消费的输入和大量所需的输出,这些输出是为他们向其发送资金的每个客户提供的。这种避免找零输出的方法也降低了矿工费,因为钱包整体使用了较少的区块空间。
相关文章:减少交易费用的技术,避免找零输出:
https://en.bitcoin.it/wiki/Techniques_to_reduce_transaction_fees#Change_avoidance
另一种避免创建找零输出的方法是,在精确的数量不重要,并且完全可使用整个 UTXO或一组UTXO的情况下(例如,当打开闪电网络支付通道时)。另一个例子是,当把资金转移到一个冷钱包时,精确的金额可能并不重要。
6、5 编写隐私改进脚本
每个比特币输出的脚本,都会泄漏隐私相关信息。例如,截至2018年底,约70%的比特币地址为单签名,30%为多重签名[45]。很多研究已经进入到改善脚本隐私的方法,使几个不同的脚本类型看起来相同。除了提高隐私,这些想法还通过减少存储和带宽需求来提高系统的可扩展性。
ECDSA-2P是一种密码学方案,其允许创建2-of-2多重签名方案,但当包含在区块链时,会产生常规的单个签名的ECDSA签名[46];因为比特币已经使用了ECDSA,所以不需要进行任何共识更改。
Schnorr签名是一种数字签名方案,它比现有的ECDSA有很多好处[47][48]。其存在的一个副作用是,任何N-of-N[49]和M-of-N多重签名在包含在区块链中时,都可以很容易地使其看起来像单个签名。将Schnorr签名应用到比特币,需要一个软分叉共识更改。截至2019年,已有人提出适合比特币的Schnorr签名设计方案[50]。截至2019年初,其所需的软分叉共识更改仍处于设计阶段。
无脚本脚本(Scriptless scripts)本是一组加密协议,它提供了一种复制脚本逻辑的方法,而实际上没有脚本条件可见,这通过从区块链中删除信息来增加隐私和可扩展性[51][52][53][54]。这通常是针对涉及哈希时间锁合约的协议,如闪电网络和CoinSwap。
对于无脚本脚本,几乎唯一可见的就是公钥和签名。更重要的是,在多方设置中,所有参与者都有一个公钥和一个签名。一切看起来都是一样的——闪电网络支付通道看起来就像单签名支付、托管、原子交换或侧链联合锚定。人们在2019年对比特币所做的任何思考,都可归结为让不同类型的交易看起来变得相同[55]。
MAST是默克尔化抽象语法树(Merkelized Abstract Syntax Tree)的缩写,这是一种隐藏脚本合约未执行分支的方案。它通过从区块链中删除信息来提高隐私和可扩展性[56][57]。
TapRoot是一种将Schnorr签名与MAST结合的方法[58]。 Schnorr签名可用于花币,但如果用户想要使用它时,也可揭示一棵MAST树。Schnorr签名可以是任意的N-of-N多签,或使用任何无脚本脚本合约。TapRoot的成果是为有趣的智能合约设置了一个更大的匿名集,因为任何合约(如闪电网络、Coinswap、多重签名等)都与常规的链上单签名交易不可区分。
TapRoot方案是非常有用的,因为通常情况下,有趣的脚本都有一个逻辑顶层分支,除各方签名外,其不允许任何其他方式满足合约要求。其他分支,只能在某些参与者不合作的情况下使用。
Graftroot是一种类似于taproot的智能合约方案。它允许用户使用其他可能的脚本来支付币,但其使用的资源甚至比taproot还要少。权衡之处在于参与者之间需要互动[59][60][61]。
nLockTime是序列化交易格式的字段,它可以在某些情况下用于创建一个更私密的时间锁,从而避免使用脚本操作码。
6、6 ECDH地址
ECDH地址可通过帮助避免地址重用来提高隐私。例如,用户可将ECDH地址发布为捐赠地址,供想要捐赠的人使用。对手可看到ECDH捐赠地址,但不容易找到与之相关的任何交易。
然而,ECDH地址并不能解决所有隐私问题,因为它们仍然容易受到神秘购物者付款的影响。对手可以捐赠一些比特币并在区块链上观察它们的去向,使用类似“共同输入所有权”启发式的方法获取更多信息,如捐赠资金量和最终目的地。
ECDH地址有一些实用性问题,非常接近于运行一个HTTP网站,向任何想捐赠的人分发比特币地址,除非没有添加交互步骤。因此,不清楚ECDH是否在非交互式捐赠的使用案例之外有用,或是一个将资金发送到一个目的地而没有任何交互作用的独立应用。
6、7 中心化混币服务
这是一种打破交易图的旧方法,也被称为“洗币”服务。用户将比特币发送到混币服务方,服务方扣除费用,然后将不同的比特币发送给用户。理论上,观察区块链的对手将无法链接这些传入和传出交易。
这种方式有几个缺点。用户需要信任混币方来保密传入和传出交易之间的链接,此外其还需要信任混币方不会偷币,这种偷窃的风险会产生声誉效应。服务时间越长,越成熟的混币方将拥有更要的声誉,并且能够收取远高于市场平均水平的服务费用。此外,由于没有办法出售声誉,混币生态也常常伴随着跑路骗局。
有一个更好的混币选择,其具有本质上相同的隐私和监护风险。用户可在任何有热钱包的比特币网站存款,然后提取币。只要这个网站不需要来自用户的任何其他信息(然而现实情况下,绝大多数交易所都需要KYC/AML认证),存在的例子包括比特币赌场、小费网站、小型竞争币交易所等[62]。
通过将多个服务级联在一起,可以解决服务完全了解交易的问题。想要避免被区块链的被动观察者跟踪的用户,可先将币发送到比特币赌场,然后从中提取并直接发送到竞争币交易所等,直到用户对获得的隐私感到满意为止。
6、8 CoinJoin
CoinJoin是一种特殊类型的比特币交易,多个人或实体合作创建一笔涉及所有输入到单一交易。它具有打破共同输入所有权启发式的效果,并利用交易中比特币固有的可互换性。自比特币诞生之日起,这种CoinJoin技术就已经成为了可能,除非通过阻止任何其他比特币交易的方式,否则这种方式就无法被阻止。仅仅通过查看一笔交易,是不可能确定它是否属于CoinJoin交易。CoinJoin是非托管的,因为它们可以在没有任何参与Coinjoin的一方能够窃取任何其他人的比特币的情况下完成[63]。
6、8、1 等输出CoinJoin
假设此交易是一笔CoinJoin交易,这就意味着2 BTC和3 BTC输入实际上是由不同的实体所拥有的。
p11
这笔交易破坏了共同输入所有权启发式方法,因为它的输入并非全部由同一个人所有,但是仍然很容易知道每个输入的比特币会在哪里结束。通过查看金额(假设两个实体不相互支付),很明显,2个BTC输入以2个BTC输出结束,3BTC输入也是相同的。要真正提高隐私,你需要具有一个以上大小相等的输出CoinJoin交易:
p12
在此交易中,值为2 BTC的两个输出,不能链接到输入。它们可能来自任何一个输入。这就是coinjoin如何用于改善隐私的关键所在,它不是破坏交易图,而是将其融合在一起。请注意,1BTC输出没有获得多少隐私,因为它很容易与3BTC输入链接到一起。当重复执行几次时,这些 CoinJoin交易就会实现复合,使得隐私性得到更好的保障。
截至2018年底,CoinJoin是唯一已被部署的去中心化比特币隐私方法。(可能的)CoinJoin交易 ID例子有402d3e1df685d1fdf82f36b220079c1bf44db227df2d676625ebcbee3f6cb22a以及85378815f6ee170aa8c26694ee2df42b99cff7fa9357f073c1192fff1f540238。请注意,这些coinjoin交易涉及两个以上的人,因此涉及的每个用户,都不知道输入和输出之间的真正联系(除非他们相互勾结)。
6、8、2 PayJoin
通过检查具有相同值的多个输出,可以很容易地识别上一节讨论的CoinJoin类型交易。重要的是要注意,这种标识总是可否认的,因为有人可制造与coinjoin交易具有相同结构但由一个人制造的假CoinJoin交易。
PayJoin(也称为pay-to-end-point 或者P2EP)[64][65][66] 是双方之间的一种特殊类型的CoinJoin,其中一方支付给另一方。然后交易就没有具有相同值的多个独特输出,,因此作为一个等输出CoinJoin就是不明显的,请看下面这笔交易:
p13
它可被解释为一笔简单的交易,支付到某个地方的剩余找零(现在忽略哪个输出是支付和哪个是找零的问题)。另一种解释此交易的方法是,2个BTC输入归商户所有,5个BTC归其客户所有,并且此交易涉及向商户支付1个BTC的客户。无法分辨这两种解释中哪一种是正确的。其结果是,一笔coinjoin 交易打破了常见的输入所有权启发式方法,其提高了交易的隐私性,但也不可检测和区分任何常规的比特币交易。
如果PayJoin交易被适度地使用,那么它将使公共输入所有权启发式在实践中变得完全有缺陷。因为它们是无法检测到的,我们甚至不知道它们今天是否被使用。由于交易监控公司大多依赖这种启发式方法,截至2019年,PayJoin的想法依然是非常令人兴奋的[67]。
6、9 CoinSwap
Coinswap是一种基于原子互换思想的比特币非托管隐私技术[68]。如果Alice和Bob想进行货币互换,那么可以理解为Alice将她的比特币兑换成与Bob的比特币相同的金额(减去费用),但通过比特币智能合约来消除双方作弊的可能性。
Coinswap打破了发送和接收比特币之间的交易图。在区块链上,它看起来像两组完全断开连接的交易:
p14
显然,Alice和Bob会分别生成新地址,以避免由于地址重用而造成的隐私损失。
有可能拥有与区块链上任何其他交易完全不可区分的CoinSwap。可以说,它们允许比特币传送到区块链上的任何其他地方,而无法被检测到。非CoinSwap交易会因此而受益,因为像交易监督公司这样的区块链分析师,永远无法确定普通交易实际上不是CoinSwap交易。难能可贵的是,这类交易除了提供很好的隐私性外,其也不会占据太多的区块空间。
Coinswap存在的问题是,其需要参与方之间进行大量的交互,这使得这种这种系统在避免拒绝服务攻击的同时很难进行设计。它们还具有活跃性要求和非审查要求,这意味着参与的实体必须始终能够自由访问比特币网络;如果互联网中断几天或几周,那么完成一半的CoinSwap交易,可能会因为一方的钱被偷而告终。
截至2018年,市场上还没有部署Coinswap方案的存在。
6、10 CoinJoinXT
CoinJoinXT是一种非托管隐私技术,它与CoinJoin密切相关[69]。它允许任意数量的实体在它们之间创建一个所谓的提议交易图(PTG) ,它是一个关联交易的列表。在PTG中,属于实体的比特币在所有交易中来回发送,但在PTG结束时,所有比特币都返回给其合法所有者。该系统的建立,使得正在进行的PTG过程是原子的,所以要么整个PTG在区块链上被确认,要么没有一个被确认,这意味着没有任何参与实体可以相互窃取资金。
提议的交易图可以自由地成为使交易图混淆的任何交易列表。为了获得最佳结果,由于比特币的正常经济活动,PTG将完全模拟自然交易图,因此对手不知道PTG的起点或终点,从而获得巨大的隐私收益。
和CoinJoin一样,CoinJoinXT很容易抵抗DOS攻击,并且不需要太多的交互步骤。与Coinswap不同的是,它没有活跃性或非审查性要求,因此即使比特币受到临时审查,资金也是安全的。然而,CoinJoinXT交易会使用大量的区块空间,其需要一个解决可延展性问题,所以PTG中的所有交易都必须是隔离见证交易。截至2019年,只有大约40%的比特币交易是隔离见证交易,因此区块链的观察员可以通过检查非PTG交易是否是传统交易还是隔离见证交易,从而轻松地排除非PTG交易。
6、11 TumbleBit
TumbleBit是一种非托管的隐私技术,其中协调服务器无法判断输入和输出之间的真正联系。这是通过一个加密结构实现的,在这个结构中,服务器促进了数字签名的私有交换。这个协议对任何隐私和比特币爱好者而言都是很有意思的。
从区块链观察员的角度来看,TumbleBit交易表现为两笔具有多个输出(作者示例中为800个)输出的交易,有交易输出必须具有相同的数量。
6、12 链外交易
链外交易是指允许比特币交易在区块链之上的一层的任何技术。非链下支付的比特币不会广播到网络中的每个节点,也不会永远在公共区块链上挖掘和存储,这会自动提高隐私,因为大多数对手可以看到的信息要少得多。对于链外交易,没有公共地址、地址集群、公共交易、交易金额或链内交易中发生的任何其他隐私相关的攻击。
其中闪电网络是比特币隐私中的一个大话题,因此我们会在下面的章节进行详细讨论。
6、12、1 Blinded bearer certificates
这是执行基于盲签名的链外交易的另一种方法。通过这样一个系统支付的付款,将是非常私密的。自1983年以来,人们就知道这一点。但该系统是托管的,因为发行服务器是一个中心故障点,它可以窃取所有的钱。但是,在某些情况下,这个概念可能仍然有用,例如,在没有闪电网络的情况下。
6、12、2 侧链
这里的侧链,是指创建另一个区块链时使用比特币作为其货币单位。比特币可以从主比特币区块链转移到侧链上,从而允许它们按照不同的共识规则进行交易。与常规比特币区块链相比,侧链具有不同且更好的隐私属性。
6、13 保密交易(CT)
保密交易(CT)是一种加密协议,它会导致对交易的金额值进行加密。加密是特殊的,因为仍然可以验证交易中是否可以创建或销毁比特币,但不能透露确切的交易金额。保密交易需要在比特币上添加软分叉共识更改,尽管它们也可以添加到侧链。
相关文章:保密交易:https://en.bitcoin.it/wiki/Confidential_transactions
6、14 讨论
6、14、1 隐私与可扩展性
上面提到的很多隐私技术,通过向比特币区块链添加额外数据来工作,以此隐藏隐私相关信息。这有一个副作用,就是通过增加更多必须由系统处理的数据,会降低比特币的可扩展性。这会损害隐私,因为全节点的运行成本更高,而且它们是用户掌握自己的交易历史和余额的最私密的方式。向数据块中添加数据,也会降低系统的安全性,如果安全性差导致比特币被成功攻击和销毁,那么拥有一个隐私版的比特币就没有多大的意义。而使用更多的区块空间资源成本,意味着会向用户收取更高的矿工交易费用。因此,如果用户觉得费用太高,使用过多区块空间的隐私技术,甚至不太可能会被使用。在2017年后期,区块空间需求达到阶段性顶峰的时候,低价值的JoinMarket CoinJoin 交易大部分都消失了(大多数低价值的比特币交易也是如此)。
链外交易是避免在隐私和可扩展性之间进行这种权衡的一种方法。这些解决方案通过完全从区块链中删除数据来改善隐私,而不是通过添加更多欺诈数据。避免找零输出和脚本隐私改进还可以在提高隐私的同时,降低系统成本。CoinJoinXT、等输出 CoinJoin、TumbleBit在提供高隐私性的同时,使用了大量的区块空间。PayJoin在进行普通交易时不使用太多额外的区块空间。相对于隐私,Coinswap使用很少的区块空间,因为它可被理解为一个离线的交易系统,它可以进行单笔交易,然后返回到链上。保密交易(CT)需要大量的区块空间以及相关的带宽和CPU成本,但它的隐私获得是巨大的,因此关于这一主题的辩论,也会变得更多。
从长远来看,随着比特币挖矿费用的上涨,资源成本高昂的隐私技术将被淘汰,取而代之的是资源效率高的隐私技术。
6、14、2 隐写术
密码学中的隐写术,是指隐藏某种事物正在被隐藏事实的行为。例如,加密消息的内容不能被窃听者读取,但它仍然显示某些内容正在被隐藏。信息的隐写加密可以通过将加密的信息嵌入到音频文件或图像中来完成,而音频文件或图像将信息隐藏在噪声当中。
一笔等输出CoinJoin交易隐藏了某个币的来源和目的地,但是交易的结构揭示了隐藏的东西。因此,即使coinjoin打破了共同输入所有权启发式方法,事实上,等输出coinjoin可以被检测到(即使检测是不完美的),允许它们被排除在对手的分析之外。此外,这些币的可辨别性也可能引起怀疑,并促使更多的调查。
隐写术的想法是一个很好的目标[70]。它大大增加了隐私,因为这种技术所做的交易无法与常规交易区分开来。此外,它还提高了甚至不使用该技术用户的隐私,因为他们的交易总是与实际的私人交易相混淆。无脚本脚本是隐私技术的一个很好的例子,其中隐私相关信息隐藏在数字签名的随机数中。PayJoin、coinswap和CoinJoinXT是很好的隐写隐私技术,因为它们可以与常规的比特币交易区分开来。等输出coinjoin和TumbleBit不是隐写术。此外,当中心化的混币服务和共同输入所有权启发式分析一起使用时,通常很容易看到,但如果是从赌场或者竞争币交易所进行存款提款操作则会更好,因为这些用户可能只是想要参与gamble游戏。
七、 闪电网络
闪电网络是一种基于支付通道的链外交易技术,它的安全模式几乎与比特币链上交易相同。可以毫不夸张地说,闪电网络是比特币的一场革命。请参阅上一节“链外交易”。
除了极大地提高隐私,闪电网络交易也比链上交易更快(通常是即时的)和更便宜。闪电节点在它们之间创建双向支付通道,闪电网络交易从一个节点路由到另一个节点。源节点和目标节点不需要直接在它们之间建立支付通道,因为交易可以通过许多中间节点进行路由。
当闪电网络交易发生在链外时,它们不会广播到网络中的每个节点,也不会永久存储在公开可见的区块链中。对手无法查看所有交易的公开永久记录,因为没有一个记录。相反,对手可能必须运行中间节点,并可能以这种方式提取信息。链上的隐私攻击,如共同输入所有权启发式、地址重用、找零地址检测、显示发送者财富或神秘购物者付款的输入量等检测方式,基本上是无效的,因为没有以相同方式工作的地址或交易输入/输出。
然而,闪电网络可能会引入其他隐私问题,主要是由于网络是如何由节点组成的,这些节点之间有连接[71]。这个网络中可以作为中间路由节点的部分通常是公共的,并且这个网络信息可以覆盖关于路由数据包的信息,比如它们的数量。
闪电网络节点也会显示其IP地址,除非经过Tor,并且支付通道由链上交易组成,可以使用常规的区块链分析技术进行分析。支付通道看起来像是区块链上的2-of-2多重签名,双侧结算交易看起来像2-of-2 输出被花费了,但是单边结算交易有一个复杂的HTLC脚本,其在区块链上是可见的。
截至2019年,闪电网络已进入实际测试阶段,开发还在继续当中,开发社区仍在研究其所有隐私属性。当然,它的隐私比链上交易的隐私要好很多。
7、1 洋葱路由
闪电网络协议使用洋葱路由[72][73]来提高中间路由说明的隐私性。该协议的目的是防止沿支付路由的中间节点了解除了其前节点或后继节点之外,哪些其他节点是包路由的一部分;它还旨在隐藏路由的长度和节点在其中的位置。
7、1、1 覆盖网络拓扑的洋葱路由
闪电网络的洋葱路由通常与Tor洋葱路由进行比较。但是,Tor的网络是完全连接的;Tor上的每个节点都直接连接(或有可能直接连接)到每个其他节点,这意味着洋葱路由的数据包可以从任何其他节点中继到任何其他节点。在闪电网络中,情况并非如此,因为支付通道无法完全连接整个网络,并且网络拓扑结构对于路由节点是公开的。网络拓扑的数据融合和洋葱路由包中的少量信息,可能仍然足以揭示某些情况下的信息[74][75]。例如,如果一个闪电节点钱包只有一个到一个中间节点的支付通道连接,那么发送到节点钱包和从节点钱包发送的任何付款都必须通过中间节点,这将能够获得关于钱包节点付款的大量信息,而不管使用的洋葱路由是什么。
这个拓扑问题的一个缓解办法,可能是闪电网络的整个拓扑结构都不知道。只有打算路由交易的节点需要公开宣布。
这并不意味着闪电网络使用的洋葱路由是无用的,但其隐私性并没有Tor强。
7、1、2 Rendez-vous路由
来自发送方的洋葱路由仍然要求发送方知道目标闪电节点(以及所有相关信息,如通道UTXO)。这意味着用户在没有显示与其支付通道相关的一个或多个utxo的情况下无法收到闪电支付。解决方案是rendez vous routing[76][77],也被称为隐藏目的地,它允许闪电付款从源节点发送到目标节点,而不需要源节点或目标节点显示其节点和相关信息。
一个很好的类比是,源洋葱路由就像一个经过Tor出口节点到达目的地的Tor连接,而rendez-vous洋葱路由就像一个通向Tor隐藏服务的Tor连接。
7、2 原子多径支付
原子多路径支付(AMP)是闪电网络中的一种协议,它允许单个支付通过多个闪电网络交易进行路由[79]。例如,如果一个用户有五个通道,每个通道的余额为2个BTC,那么他们可以在多个闪电网络路径上使用AMP协议发送一次7BTC的付款。在隐私方面,AMP将导致中间节点不遵守7 BTC的全额支付金额,而只遵守2 BTC或1 BTC(或任何其他组合)的部分支付金额。这对隐私是有利的,因为路由支付不会再泄露确切的支付金额,而只会泄露一个下限。
7、3 常用哈希锁值
对于非AMP付款,付款哈希对于付款路线上的所有节点都是相同的。如果多个节点合作知道它们基于这个公共哈希值路由了相同的付款,那么这将允许多个节点。尽管这也可以使用每个路由支付的时间戳来完成。
无脚本脚本作为显式哈希时间锁合约的替换,可用于解决常见的哈希锁问题。可以在每个步骤向提交的随机值添加不同的随机调整值,因此,通过付款通道可能会有一个多跳路径,路径中的单个参与者将无法知道他们在同一路径中,除非他们直接直接联系在一起,因为这让人眼花缭乱[80]。
2017年,一篇名为“与支付通道网络的并发性和隐私”的论文[81][82]描述了一个使用零知识证明的方案,该方案允许支付路径中的每个哈希值都不同。该方案在计算上要昂贵得多,但它可能仍然是可行的。
7、4 托管钱包
支持闪电网络的钱包可以是托管式的,钱包只是一个前端,连接到某个公司运行的后端服务器。这与链上比特币生态系统中的web钱包情况相同。
这种设置将导致所有用户的闪电网络交易对该公司可见,因此他们将没有隐私,就像使用web钱包对链上比特币空间没有隐私一样。从2019年起,Zap钱包和 Lightning Peach就开始使用这种模式。Peach钱包在其图形用户界面中有一个复选框,上面写着“我同意隐私政策”,通过查看隐私政策,可以发现钱包跟踪各种隐私相关的信息。毫无疑问,有隐私意识的用户不应该使用这种闪电网络钱包,而应该使用非托管闪电网络钱包[83]。
7、5 专用脚本类型
Schnorr、无脚本脚本、TapRoot和ECDSA-2P等脚本类型隐私的进步,通过使其支付通道区块链交易与常规的单签名区块链交易不可区分,从而使闪电网络隐私受益。
7、6 探索支付以揭示通道状态
每个通道的余额状态对公众是隐藏的,并且只有组成支付通道的两个实体知道。这提供了大量的隐私,因为金额的数量和更改对所有人都不可见。击败这种隐私的理论化方法是,主动对手发送探测性付款,金额逐渐增加,直到发送回路由失败消息。路由故障会显示通道状态。如果对手对整个闪电网络中的每个支付通道重复此过程,并继续非常频繁地进行探测,那么通过观察通道状态的变化,他们可以观察到在网络周围路由的支付。而这种攻击的路由费会非常昂贵,到2019年初,人们对它的研究还很少。解决这种攻击的一种可能方法是,将节点随机(例如20次中的1次)返回路由错误,即使通道余额状态实际上足够。这可能不会大大降低闪电网络的用户体验,但会给攻击者带来严重的损失。
八、 现有隐私解决方案
本节介绍比特币软件,这些软件以实现隐私功能为主要目标,尤其是避免区块链导致的隐私泄露。
隐私不能轻易与比特币的任何其他方面分开。只为隐私提供完全独立的解决方案是不寻常的,梦想是有一天所有比特币钱包都将包含内置的隐私技术。但截至2018年底,许多隐私实施都是单独的应用程序。
8、1 闪电网络
截至2019年初,闪电网络有几种实现方式,例如 LND、c-lightning、elcair等。
该网络本身可以在比特币主网上使用,一些商家和其他项目也可以采用这种方案。然而,至今该网络的使用人群依然属于极客小众群体,普通大众仍无法去使用它,预计有一天,每个比特币钱包将能够发送和接收闪电网络交易,因此,大量的隐私利益,将惠及使用闪电网络的用户。
闪电网络钱包通常是标准的隐私技术,如确定性钱包和防止地址重用的警告。
一些LN钱包,例如Zap钱包和Lightning Peach,实际上是托管型钱包,它们由一个中央服务器支持,该服务器可监视用户所做的一切,因此应避免使用这些钱包。
8、2 手工 CoinJoin
Coinjoin交易理论上是可以手工制作的,不需要专门的钱包,而仅仅使用原始交易。这是非常灵活的,因为coinjoin可以采取任何形式。比特币商人之间或许可采用这种交易,他们中的一些人可能决定将他们的一些交易合并在一起,这样,共同输入所有权启发式会表明他们都是相同的钱包集群。
8、3 JoinMarket
JoinMarket是CoinJoin的一种实现,其在市场中支付所需的流动性。在JoinMarket术语中,流动性接受者用户可以在任何时候创建一笔不论数量的coinjoin交易,另外他们也需要支付一笔小的coinjoin交易费。流动性制造商每天24小时在线,随时准备以任何数量创建一笔coinjoin交易,作为回报,他们从流动性接受者那里赚取coinjoin交易费用。由于coinjoin市场的存在,JoinMarket用户可以在任何时间,创建任何金额(根据可用流动性的限制)创建coinjoin。
其他人总是可加入coinjoin交易的,因为他们可赚取费用,coinjoin可以是任何数量和在任何时间发生的。对于流动性制造商运营商来说,JoinMarket也是一个小的收入来源,他们通过允许其他人用他们的比特币创建coinjoin交易来赚取coinjoin费用。
通过多次重复使用coinjoin交易,隐私得到了极大的改善,因此JoinMarket项目包括了混合脚本,其中coinjoin是在随机时间和随机数量自动创建的。比特币可以存入JoinMarket HD钱包,而混合脚本将通过很多CoinJoin交易将币发送到3个或者更多的目的地地址。使用多个目标地址的这一特性,需要克服数量相关性。例如,希望将币存入交易所的用户可以使用“生成新的存款地址”按钮来获取多个目的地地址,然后交易所可以将这些币与其他客户的存款结合起来,而这应该能够抵抗任何基于数量的相关性追踪。
JoinMarket可以与一个Bitcoin Core全节点进行交互,以隐私的方式获取自己钱包的历史记录。也可以选择使用Electrum服务器的方式,但不鼓励普通用户去使用它。也有人计划将Electrum接口替换为使用客户端区块过滤的接口。
该软件是一个社区开源项目。不幸的是,对于不习惯Linux或命令行界面的人来说,JoinMarket可能很难安装。人们希望有一天能做些工作使其变得更容易,但由于所有的发展都是由志愿者完成的,所以不可能有相关的路线图。
8、4 Wasabi钱包
Wasabi钱包是一个实现了CoinJoin的钱包,它是用C#语言编写的开源钱包。其包裹还纳入了Tor,所有的流量都会通过Tor,所以IP地址是隐藏的。其很容易安装和使用,该钱包包括了所有标准的隐私技术,包括确定性钱包和防止地址重用的警告,此外,它还提供了一个好的界面,用于选择哪些UTXO要花费,而通过币控制还可以得到改善。钱包使用客户端区块过滤,以私密的方式获取自己的交易历史记录。
CoinJoin交易会在用户之间发生,而不会有任何流动性提供者中间人。出于这个原因, coinjoin交易只能是固定数量的0.1 BTC左右。当一轮coinjoin活动发生时,coinjoin会在固定的时间发生,大约每半小时一次。这些数字在2018年的时候是正确的。
用户的钱包会连接到一个中心化的服务器,该服务器负责协调CoinJoin交易。该钱包使用了chaumian盲签名,因此该服务器或任何人都无法了解交易输入和输出之间的真正联系,其是由zkSnacks公司负责运营的,对于钱包上发生的每笔coinjoin交易,该公司都会收取少量的费用(截至2018年,每次交易收取0.03%)来赚取收入。
8、5 Samourai钱包
Samourai钱包是一款实现了一些隐私功能的智能手机钱包,它是PayJoin方案的一种实现。其创建的交易看起来像是CoinJoin,但实际上只涉及一个人的交易。这些虚假的coinjoin交易可以迷惑那些交易监控公司。PayNyms是ECDH地址的一种实现。该钱包还具有一种称为类似型找零输出的功能,其会生成一个与支付地址相同类型的找零地址,这避免了使用地址类型进行钱包指纹识别,而导致的找零地址检测。
但是,Samourai钱包会通过查询第三方服务器来获取有关用户历史记录和余额的信息。这个服务器知道所有用户的地址和交易,并且可以监视它们。因此,Samourai钱包仅在对手可分析区块链但无法访问该第三方服务器的威胁模型中有用。
8、6 Liquid侧链
在2018年, Liquid侧链实施了保密交易(CT)技术,允许比特币在该侧链上进行转移,同时隐藏交易金额。该产品由Blockstream公司开发,其面向交易所和交易商。其允许以非常私密的方式快速转移比特币。
由于Liquid是一个同盟侧链,用户通常需要通过AML检查并放弃他们的个人数据才能使用它。它的安全模式非常接近于一家比特币交易所。因为如果有足够多的工作人员被黑客入侵,那么侧链上的所有比特币都可能会被窃取。然而,在这种安全模式中,你会获得极好的隐私性,而侧链本身,则是面向那些想保持其交易活动隐私,以阻止其他交易者抢先进行交易的交易者和对冲者的。
九、 示例和案例研究
隐私是一个非常多方面的话题,而了解一些真实的例子,有助于更好地理解所有概念是如何相关的。
9、1 错误的隐私示例:交易所预先交易
你是一名交易员,你在一家交易所开了一个账户;
你想把一笔比特币存入交易所,然后卖掉它;
你把比特币发送到自己过去所使用过相同的交易所存款地址;
由于地址重用,观察者很容易在区块链上看到一些比特币被发送到了这家交易所;
交易所要求在贷记你的账户前,进行3次交易确认,但到确认的时候,由于其他交易员了解到你的存款交易,此时的交易价格对你来说很可能是不利了;
你卖的比特币价格比你本来预期的要低;
而通过点击交易所网站上的“生成新存款地址”按钮,并向其存款,可以轻松避免这种情况;
教训:地址重用对于隐私而言是非常糟糕的;
9、2 糟糕的隐私案例:重复使用相同的地址来存款
你使用一个单地址的纸钱包来保存比特币,这会导致地址重用;
你所有的比特币都存入了这个地址,假设它包含价值100万美元的比特币;
你买了少量的比特币,来增加你的比特币储蓄,并把它们存入了这个纸钱包;
卖给你比特币的人,可以通过区块链跟踪交易,然后发现你的纸钱包里有100万美元的比特币;
他在咖啡馆或酒吧里向某人提起了这件事;
消息传开了,一个窃贼袭击了你家,并将你作为人质,直到100万美元的比特币被移交[84];
教训:地址重用对于隐私而言是很糟糕的。
9、3 糟糕的隐私案例:数据收集来存储
你用比特币存钱,然后在一家交易所进行交易,你把所有的数据都透露给了这家交易所;
你大多数时候是在买币,但有时也会卖币。你只使用过这一家交易所;
不管你使用什么区块链隐私技术,这家交易所仍然会知道你所有的交易,并且可以随时准确地找到你持有多少比特币;
9、4 示例:躲避制裁
你生活在一个受其他国家国际贸易制裁的国家;
因此,你不能购买你想要的在线报纸;
你可以通过Tor导航到这家报社网站,这样他们就无法从你的IP地址来分辨你所在的地方;
你用现金购买比特币,然后把它们发送到你的电脑端钱包软件,然后用比特币购买报纸;
比特币交易没有地理信息,因此你的付款不会被视为来自受制裁的国家;
9、5 示例:在不透露真实姓名的情况下,与在线扑克好友进行交易
你和一些人玩网上扑克(为了真钱);
你赢了,很多钱都落入了你的口袋,你的对手很生气;
你赢得的是比特币,你以现金或通过兑换的方式出售掉这些币,或者直接使用它们购买商品和服务;
那些生气的扑克玩家找不到你的真名;
这个例子有一个非常温和的威胁模型,对手不能访问交易所的AML/KYC记录(如果你不使用现金交易),而且他们不是你的ISP,因此不能轻易地将你的比特币地址与你的IP地址链接(如果你使用轻节点而不是全节点)。
9、6 示例:在雇主不知情的情况下进行捐赠
你的薪水是以比特币计算的,你的雇主把比特币发送给你;
你想以0.1 BTC的捐款支持X慈善组织或政治团体,但出于某种原因,你并不想让你的雇主知道;
你可以将0.3 BTC存入比特币赌场、竞争币交易所或其他允许匿名比特币存款和提款的服务网站。
提出0.1 BTC,并将所需的捐赠地址设为提款地址;
把剩下的0.2 BTC提到自己的钱包(放回一个全新的地址,避免地址重复使用);
如果你的雇主随意分析区块链,他们会认为你是一个赌徒,而不是X组织的支持者。比特币赌场不在乎你向谁捐款。雇主也不能关联这些金额,因为他们看到你存入了0.3 BTC,但只有0.1 BTC被发送到了该组织。隐私来自于你的币和其他人的币的混合。
9、7 示例:无人知情的捐款
你想在无人知情的情况下支持X慈善组织或政治团体。
下载并安装由全节点(例如Bitcoin Core)支持的钱包;
以现金的形式购买确切数量的比特币(由于交易费用和波动性而略有增加),把币发送到你的钱包里;
把币发送给X组织进行捐赠,交易应通过Tor广播;
相比直接用现金交易,用户也可以购买现金替代品,如礼品卡,然后在不泄露自己身份的前提下在线兑换成比特币。
在这个威胁模型中,需要用到全节点,因为否则你的ISP或其他对手可能会监视轻量级节点通信,并发现用户的比特币地址。通过Tor广播交易是需要的,这样可以阻止你的ISP或交易监控公司了解你广播这笔交易的IP地址。
9、8 示例:私密接受捐赠
你的团队或项目只有一个捐赠地址,任何人都可以通过将你的捐赠地址放入区块链浏览器来查看所有捐赠及其金额;
你想在没有人知道的情况下花掉捐款;
捐赠地址是钱包的一部分,由一个全节点(如 Armory)支持;
通过Tor广播交易,将捐款存入一个允许你匿名存取款的比特币网站;
把钱直接提到另一个类似的比特币服务网站;
注意使用不同的交易,以阻止关联金额;
确保稍等片刻,以停止用于将交易链接在一起的计时;
对很多不同的比特币网站重复此操作[85],最后将币发送回自己的钱包;
以1个BTC为例。每个箭头->都是一笔新的提款交易。
p15
和以前一样,全节点钱包允许你的钱包私密地掌握自己的交易历史,而Tor广播隐藏了你发送交易时使用的IP地址。使用很多不同的数量,会阻止数量相关性检测带来的隐私性破坏。而使用多个比特币网站,意味着与对手合作的单一网站,不足以完全破坏你的隐私。但这也存在这托管风险,因为每个网站都有权窃取你的资金,但在本示例中,比特币金额相对较低,因此风险是可以接受的。
9、9 示例:私密地存储资金
你想用比特币来存储价值,而没有其他人知道你用它们来做什么,甚至没有人知道你拥有多少比特币;
以某种方式购买币,并将它们发送到自己的JoinMarket钱包,你已经将其配置为使用自己的全节点,所有的操作都通过Tor运行;
运行JoinMarket的混合脚本,它创建了很多CoinJoin交易,目的是断开地址之间的链接;
把币发送到另一个用于长期存放比特币的钱包。钱包背后应该有一个全节点,如指向你自己的Electrum服务器的Electrum节点。
请注意,比特币隐私技术(如JoinMarket)可以从你的交易中隐藏私人相关信息,但不能在其他地方增加隐私;例如,如果你以非匿名方式(如使用AML/KYC交易所)购买的比特币,那么该交易所将会知道你的真实身份信息。
使用JoinMarket是非托管的,与以前通过很多比特币服务网站发送比特币的方法不同,因此在托管风险不可接受的情况下,它是非常有用的。在本示例中,所有钱包都由全节点支持,以阻止第三方服务能够将你的地址链接在一起,或将它们与你的IP地址链接在一起。全节点应该完全在Tor上运行,以阻止互联网服务提供商或任何网络层的对手看到你运行的是比特币节点。
9、10 示例:阻止来自不同来源的传入付款链接在一起
如果某人在同一个钱包中有两笔付款,它们可能会与共同输入所有权启发式链接在一起。
某人有一份护士工作,她还兼职做脱衣舞女以赚取额外收入。两份工作都是用比特币支付的,因此,此人不希望这两笔付款联系到一起;
她将护士工作的收入发送到一个JoinMarket进行混合,而把脱衣舞女部分的收入发送到另一个混合服务。
她会运行JoinMarket混合脚本,然后合并这两笔钱,而不会将它们链接到一起。
另一种方法(但存在托管风险)是将护士收入存入比特币服务网站(如赌场),然后将脱衣舞女部分收入存入另一个存款地址。在你取款后,两者都要与赌场其他用户的所有存款相结合。而当前最好的方法,可能是通过闪电网络接收其中一个或两个收入流。
9、11 示例:在不知道资金来源或目的地的情况下,将赌场赢款提取到比特币交易所
你在比特币赌场赢得了10 BTC,你想在任何一方都不知道的情况下,将它们提到到一家交易所并出售;
安装JoinMarket,并将其指向自己的全节点;
将赌场赢款以三笔不同的交易(5btc + 2btc + 3btc)发送到你的JoinMarket钱包中,然后分别进入mixdepth;
运行JoinMarket混合脚本,然后将它们发送到交易所的三个不同存款地址,(例如)金额为1btc + 2btc + 7btc;
然后,无论是赌场还是交易所,都不能使用数量相关性来确定来源或目的地。coinjoin交易使得交易所和赌场无法使用公共输入所有权启发式方法来阻止这些交易,其他JoinMarket特性是阻止地址重用和交易图分析[86];
9、12 糟糕的隐私案例:直接使用区块链浏览器
你的其中一个地址收到了一笔比特币付款;
你将地址复制并粘贴到区块链浏览器网站中,然后进行刷新操作,直至传入交易达到3个确认;
现在,这个区块链浏览器网站知道了你的IP地址对特定的比特币地址非常感兴趣;
最好不要使用你自己的比特币钱包(由全节点支持)来告诉你付款何时到达以及它们有多少确认,没有任何其他实体知道;
通过Tor导航到区块链浏览器网站,几乎可以完全修复这种隐私泄露。它仍然显示有人对该比特币地址感兴趣,但没有显示其IP地址,也没有显示由同一用户控制的任何其他比特币地址。
9、13 糟糕的隐私案例:由于数量相关性,隐私竞争币混合失败
你拥有1.456225 BTC,其中一些隐私相关信息已被泄露(可能原因在于你是从AML/KYC交易所购买的币),然后你希望将其发送到另一个地址,同时断开两者之间的链接;
你把比特币交易成了实施了区块链隐私技术的竞争币,即所谓的“隐私币”,然后再把它们交换回比特币(然后进行反复操作几次)
你通过一笔提款交易,将新得到的比特币发送回自己的钱包;
因为交易金额非常接近初始的1.456225 BTC,所以对手搜索整个区块链,并将进入和退出你使用的竞争币交易所的两笔类似金额的交易链接起来并不困难;
教训:交易金额对所有人都是可见的,因此金额信息对于隐私而言是不利的。
9、14 示例:隐私竞争币混合
与前一个例子类似,你有要混合的比特币,你可以通过来回交易隐私竞争币进行混合来实现这一点;
当交易回比特币时,你将隐私竞争币存入交易所进行出售,你使用多笔交易,那么交易所和区块链的任何观察者就不能简单地通过金额将前后地址链接在一起;
这种方法可能仍会失败,因为隐私竞争币的交易量要比BTC少几百倍,所以匿名集可能更低。使用交易所也存在托管风险,因此这种方法可能不适用于大量的币。由于隐私竞争币通常比比特币的可扩展性要差得多,因此其全节点钱包的运行成本可能比比特币高。此外,隐私竞争币的价格可能比比特币更具波动性,这会增加因价格变动而损失部分资金的风险。
9、15 示例:闪电网络日常商业交易
你有一些比特币,你想把它花在普通商品和服务上(咖啡、电话费、主机、酒店和公寓租赁、航班、食物、饮料、衣服等),你希望尽可能地保持私密;
你可以下载并安装闪电网络钱包,并将其用于所有购买服务;
像公共输入所有权启发式、地址重用和找零地址检测这样的隐私攻击,基本上不适用于任何链外交易技术;
9、16 糟糕的隐私案例:发送到静态捐赠地址而不采取预防措施
你拥有比特币,然后把它存放在了托管钱包里;
你想捐钱给慈善机构或政治团体X。
你可以在托管钱包的网站上创建一笔交易,将一些钱发送到该组织的捐赠地址;
托管钱包服务器可以看到你将其发送到哪里(特别是如果组使用静态捐赠地址时);
他们不同意你的立场,然后选择关闭你的账户;
教训:使用托管钱包不利于隐私,因为保管人可以看到你所做的一切。地址重用对隐私是有害的(对于捐赠地址而言也同样如此);
9、17 糟糕的隐私案例:接受神秘购物者付款的捐赠
你想接受比特币捐赠,但不想将捐赠总额公布于众;
你设置了一个Web服务器来为每个访问者提供唯一的地址;
一个想知道你捐款总收入的对手,会向你捐赠少量的比特币;
你将所有捐赠组合起来用作一笔交易的输入,从而对手将它们与公共输入所有权启发式链接在一起。
对手现在对你的总捐赠收入,有了一个很好的了解;
教训:神秘购物者付款可以用来监视那些避免地址重用的人。注意公共输入所有权启发式揭示的内容。
9、18 现实生活中的例子:使用静态地址的比特币恶意窃取软件
你是一个恶意窃取软件的创建者;
你将一些比特币地址硬编码到你的恶意软件中,然后分散出去;
任何恶意软件研究人员,现在都可以通过将地址放入区块链浏览器来查看你偷了多少比特币;
现实当中,发生了很多这样的例子,包括Wannacry恶意软件[87][88]和Electrum Stealware[89][90]。
9、19 糟糕的隐私案例:比特币窃取恶意软件与神秘购物者支付间谍
你是研究比特币窃取恶意软件的信息安全研究员;
恶意软件作者已将ECDH地址方案编码到他们的恶意软件中;
你对恶意软件的分析只显示ECDH公钥,而不是比特币地址,因此恶意软件作者认为他是私密的;
你将少量比特币作为神秘购物者付款发送到从ECDH公钥派生的地址;
恶意软件作者通过一笔交易,把偷得的所有笔发送到一家交易所,其中包括你的付款;
现在,你可以查看区块链,并使用共同输入所有权启发式方法来了解恶意软件窃取的比特币总数;
另外,你现在可以联系交易所,他们会告诉你恶意软件作者的真实身份,他现在可以被关进监狱!
教训:神秘购物者付款加上共同输入所有权启发式这两大神技,可以用于解除交易匿名,即使是那些避免地址重用的人;
9、20 示例:通过Tor运行的一次性轻钱包
你想匿名购买物品或在线捐赠物品;
安装Electrum钱包并将其配置为使用Tor或使用Tails OS操作系统;
你用现金匿名购买比特币,然后把它们发送到你的Electrum钱包里;
你把所有的比特币余额都用来购买或捐赠你想要的东西;
完成操作后,删除钱包,以后不再去使用它;
你的Electrum钱包使用了第三方服务器,它可以看到你的所有比特币地址和交易。而当你通过Tor连接到它时,服务器不会知道您的真实IP地址。由于您只使用一个比特币地址一次,此后永远也不去使用它,服务器无法将其与任何其他地址群联系在一起。当你花费整个余额时,没有可以泄露信息的找零地址。即使使用了第三方服务器,这种设置实际上也会产生很强的隐私性。
9、21 糟糕的隐私示例:通过Tor多次使用轻钱包
与上面的示例非常相似,但使用了多个地址和交易。
你希望将比特币用于多个用例,例如购买一顶新颖的帽子并支付其他服务;
安装Electrum钱包,并将其配置为使用Tor;
你付钱买这顶新帽子,并把它寄到你的邮寄地址;
你可以通过科学上网来提高你的网络浏览隐私;
当Electrum钱包查询第三方Electrum服务器时,该服务器可以将两笔交易链接在一起,并知道哪个地址是找零地址;
因此,服务器可以很容易地看到购买帽子的同一个人也为科学上网付费。由于购买帽子需要显示你的邮寄地址,你的邮寄地址现在可以与科学上网账户链接到一起;
教训1:第三方Electrum服务器能够将你的两笔交易链接到一起。而通过运行自己的Electrum服务器(由自己的全节点支持)可避免这种情况; 教训2:请注意,TailsOS自2018年起将此隐私模式用于Electrum(!)
9、23 现实生活中的例子:公共捐赠地址与共同输入所有权启发式结合
去一个接受比特币捐赠的网站,比如Tails OS捐赠页面;
获取他们的捐赠地址(在本例子中为1bvbmsystwitqtfn5au4m4gfg7xjanvn2),并在www.walletexplorer.com网站上搜索。
该站点使用共同输入所有权启发式、地址重用和可能的其他技术,将地址集群在一起;
我们可以看到Tails OS项目的捐款金额和数额: https://www.walletexplorer.com/wallet/04d3d17f766c4e53?from_address=1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2,这个数字看起来很现实,所以我们可能是在正确的线上;
9、24 现实生活中的例子:数字取证帮助MTGOX交易所调查
Mt. Gox在2014年因一场轰动世界的比特币盗窃案而宣布破产;
它的内部数据库于2014年3月泄漏,从中可以建立一个近乎完整的钱包存款和提款图片;
地址重用也是一个重要因素。公共输入所有权启发式不是一个因素,因为该启发式被mtgox的导入私钥功能破坏了;
分析信息也通过在网络上搜索所有论坛帖子进行交叉检查,其中一位客户写了一些类似的内容:求助!我向MTGOX存款了0.12345 BTC。在我写这封信的时候,我的交易有了20个确认,但存款并没有出现在交易所。论坛帖子包括日期和时间。这些帖子包含了足够的信息来搜索相应的区块链交易。分析表明,mtgox多次遭遇盗窃,这家交易所在大部分时间处于破产状态;
分析全文:Cracking MtGox(Kim Nilsson):https://www.youtube.com/watch?v=l70iRcSxqzo
9、25 现实生活中的例子:错误使用共同输入所有权启发式,夸大捐赠收入
去一个接受比特币捐赠的网站,比如ThePirateBay;
获取他们的捐赠地址(本例子中为1Z8TEP4BNS79W3KYH8Cha8TWJ6Nuhyccm),并在www.walletexplorer.com网站上搜索。
该站点使用共同输入所有权启发式、地址重用和可能的其他技术将地址集群在一起。
我们可以看到大部分给ThePirateBay捐赠的金额和数量: https://www.walletexplorer.com/wallet/00005c945dba011c?from_address=1z8Tep4BNS79W3kYH8CHA8tWj6nuHYcCM
研究结果表明,ThePirateBay每天通过捐款可以获得数亿美元,而这是不可信的;
对实际情况的一个可能解释是,ThePirateBay直接在比特币交易所接受捐款,这将导致基于共同输入所有权启发式的分析给出高度夸大的数字,因为它实际上找到了整个交易所的所有存款。这也意味着ThePirateBay其实面临着被阻止或审查输入捐款的风险。
而另一种可能则是,ThePirateBay正在使用CoinJoin;
9、26 现实生活中的例子:由公共输入所有权启发式发现的不正确集群
walletexplorer.com网站使用共同输入所有权启发式、地址重用和可能的其他技术,将地址聚集在一起;
其拥有一个名为MtGoxAndOthers的大型集群,截至2019年1月,该集群拥有860万笔交易和360万个相关地址;
旧的Mt.Gox交易所有一个功能,用户可以从他们的个人钱包中直接将比特币私钥导入网站[91]。在那里,它将与Mtgox自己钱包里的UTXO合并;
似乎一些coinjoin交易也结束于该集群[92]。
例如,交易5ac0210febf7ce07a737bae8c32f84c54d131c21a16ca6b02b6f1edcad15c3,这可能是一笔属于MtGoxAndOthers集群的JoinMarket 交易[93];
另一个例子是52757ed33a235ce8e48aeaabab7f6dd9cd3445c3642630123103b154ee59f3f5这笔交易,它是由旧的SharedCoin中心化服务创建的coinjoin交易[94],根据WalletExplorer,它也位于mtgoxandothers集群中;
9、27 现实生活中的例子:手工制造的coinjoin交易误导了一位比特币分析专家
CoinJoin的发明者Greg Maxwell发布了一个题为《I taint rich!》的帖子,它的目的是演示coinjoin以及公共输入所有权启发式方法并不总是正确的;
该帖子邀请论坛读者用Greg Maxwell的虚荣地址(又称靓号地址)手动创建CoinJoin交易,他希望这能有力地证明公共输入所有权启发式方法的缺陷;
很多年后,一笔价值40000 BTC的比特币交易被广播了,这也一时引起了比特币论坛用户的一些猜测。这个手工制造的coinjoin交易,使得一些人得出了错误的结论,以为Greg Maxwell就是这40000 BTC的所有者;
来看这位分析师的原话:
“最初看,这像是被一个拥有GMaxwell虚荣地址的人拥有:14947302EAB0608FB2650A05F13F6F30B27A0A314C41250000 F77ED904475DBB; 如果你追踪这40000 BTC(单击输出),你将得到链接到的交易。这是一系列简短的交易; 基本上,拥有该地址的人能够从该地址解锁这些币,以及在同一笔交易中持有这40000 BTC的另一个地址。所以,他们必然掌握着这两个地址(至少是在4年前)。”
教训:公共输入所有权启发式方法,并不总是正确的;
9、28 现实生活中的例子:Quadrigacx交易所钱包分析
2019年初,交易所Quadrigacx关闭,很多该交易所的客户无法访问他们的比特币存款,很可能永远都无法访问;
一位客户想分析区块链以找到有关Quadrigacx钱包的信息;
他们在网上论坛上要求其他客户透露他们的存款地址和交易,很多客户这样做了;
通过www.walletexplorer.com,分析师能够找到一个包含所有这些地址的大钱包集群,很可能这就是Quadrigacx的热钱包。热钱包做了很多交易,经常涉及重复使用的地址,并且没有使用coinjoin,所以这个分析很可能就是正确的;
被称为mtgoxandothers的walletexplorer集群,误导了这名分析师,使得其相信Quadrigacx与mtgox有关,而实际上,集群是因为coinjoin而产生的;
分析师找不到一个拥有大量比特币的集群,这可能就是冷钱包。然而,冷钱包可能会创建很少的交易,并且永远不会重用地址;因此,这样的集群可能永远不会出现在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/
9、29 现实生活中的例子:Coinbase阻止Bustabit赌场用户进入该交易所
Coinbase是一家美国的比特币交易所,而Bustabit是一家使用比特币的在线赌场;
在美国,网上赌博是非法的(尽管州政府经常经营自己的彩票,而且像在拉斯维加斯这样的地方赌博是合法的);
Coinbase通过警告并最终禁止使用在线比特币赌博服务的客户来实施这一政策;
Coinbase警告和禁止了Bustabit的一些客户;
Bustabit实现了找零避免[95] ,因此他们的很多提币交易并不会有找零输出;
Bustabit还将数千个重复使用的地址导入JoinMarket,并使它们在很多CoinJoin交易中用作输入;
不再有Bustabit客户受到警告或禁止;
这两种方法的结合,似乎打破了共同输入所有权方法,减少了由找零输出泄漏的隐私相关信息,足以使coinbase的交易监控公司合作伙伴无法再识别bustabit的钱包地址;
9、30 现实生活中的例子:罕见的多重签名脚本
截至2019年1月,任何区块链观察者都可以看到多重签名合约;
这包括它们的m-of-n值,目前最常见的是2-of-3多重签名[96];
一些非常不寻常的脚本,例如12-of-14多重签名,已经在区块链上被使用了多次。这些很容易被看到,就像某人的钱包收到一些钱,然后花掉了;
Xapo公司的比特币金库采用了一种3-of-5多重签名方案,有一次,当他们移动它时,导致3-of-5多重签名地址中90%的币在区块链上移动了。这揭示了Xapo钱包里的比特币数量[97]。
2016年,交易所Bitfinex遭到黑客入侵,部分钱包被偷。Bitfinex使用2-of-3多重签名地址来存储自己的币。当窃贼将黑得的币转移到一个常规的非多重签名地址时,区块链上可以看到2-of-3多重签名中的120,000个比特币的移动,并且显示了盗窃的规模[98];
9、31 现实生活中的例子:自由职业IT承包商让他的同事计算出他的工资
一位用户在比特币Reddit论坛[99]上发布了关于他因地址重用而被同事计算出其工资的经历;
“作为一个自由职业的IT承包商,有一次发生了事故,一位现场专家发现了我的每日工资。当然,他有点心烦意乱,并向他的经理抱怨自己的报酬不足。我的代理机构对我处以每月50%的罚款。不用说,我现在为每一个invoice创建一个唯一的接收地址,并使用另一组地址用于日常个人使用支出。”
教训:地址重用对于隐私来说是很糟糕的。
9、32现实生活中的例子:黑客用coinjoin隐藏了445 BTC的目的地
2017年夏天,一位Reddit用户发布了一条消息,称他们在blockchain.info的web钱包存了445 BTC,不幸的是,他们的币被偷了[100];
他们对任何帮助他们或提供信息的人提供50%的赏金,以便再次找回他们的比特币;
被偷的币后来被混入了JoinMarket,黑客似乎把这些币放入了一个JoinMarket 生成器脚本中,并允许它们经过多次的coinjoin交易。一个coinjoin剥离链操作可被观察到;
所有的痕迹,都从任何人能分辨出来的地方消失了;
有关如何在不被黑客窃取的情况下存储比特币的好建议,请参阅此wiki上的存储比特币文章:https://en.bitcoin.it/wiki/Storing_bitcoins
9、33糟糕的隐私案例:使用比特币在线购物时,将区块链数据和网络cookie的数据融合
网上购物有几个潜在的隐私泄露。例如,第三方跟踪cookie(如来自DoubleClick、Google Analytics或Facebook网站的cookie)或有意提供给商家的数据(如姓名、交付地址或电子邮件地址);
比特币的区块链泄露了大量隐私相关信息;
这两类泄密的数据融合可以揭示大量关于人们使用比特币进行网上购物的信息。这是一篇发布于2018年的主题论文,其题为当cookie遇到区块链时[101]。
例如,如果一个比特币用户购买了一顶新颖的帽子,并把它运到了家中,然后同一个比特币钱包捐给了维基解密,那么帽子商人和第三方追踪器(他们知道用户的真实姓名和邮件地址),就可以知道同一个用户捐给了维基解密。
这就是数据融合的例子,其中有两个或更多的隐私泄露,当将它们结合起来时,泄露的信息要比原本的更多;
第三方网络跟踪cookies的隐私问题已经存在近10年,但情况并没有改善太多。在这种情况下,可通过以下方法恢复隐私:1)使用浏览器扩展(如ublock origin、adblock plus或ghostery)阻止第三方跟踪cookie;或2)使用链外交易方法,在隐私相关信息泄露少得多的情况下进行支付。到2019年,最实际的情况,是使用闪电网络进行网上购物。
9、34 糟糕的隐私案例:中心化混币很容易因为数量相关而被识别出来
BitcoinFog是一种中心化的比特币混币服务,它会对每笔混币收取1-3%的手续费;
Reddit上的某个人,使用数量相关性,很容易地将很多BitcoinFog处理的混合交易辨认了出来[102];
9、35 糟糕的隐私案例:区块链数据与IP地址交易广播数据的数据融合
2018年的一篇论文[103]使用区块链分析和跟踪交易广播,来去匿名化比特币用户;
研究人员使用了地址重用和公共输入所有权启发式(论文作者没有提到coinjoin的可能性);
研究人员连接到每一个监听比特币节点,并试图跟踪他们广播的交易。这使他们了解了起始IP地址。
该论文作者通过链接比特币地址和IP地址来识别大约22000个比特币用户。其中约2万名用户来自一个IP地址,这可能是一个流行的web钱包;
该论文收集了2013年底的数据,但Bitcoin Core交易中继算法在提高隐私性的同时发生了重大变化。因此,今天使用该方案来检测的话,效果应该不会太好;
教训:私密交易广播(例如通过Tor)对于隐私而言是必要的。
9、36 现实生活中的例子:2018年比特币勒索交易分析论文
2018年的一篇论文,使用跟踪技术研究比特币勒索软件[104];
有些勒索软件使用静态地址(这意味着地址重用),而其他勒索软件要求受害者连接到一个HTTP服务器,该服务器提供新的比特币地址;
为了找到勒索软件的地址,研究人员发现了受害者的在线报告,并对勒索软件二进制文件进行了反向工程,以找到其地址;
他们还使用神秘购物者支付方法,向勒索软件地址发送了0.001 BTC,并观察币被发送到了哪里。两个勒索软件运营者(cerber和locky)上钩了,但另一个运营者(sage)没有上钩,因此他的集群从未被发现;
研究人员使用公共输入所有权启发式方法来查找地址集群。他们知道coinjoin打破了这个假设,因此在集群中搜索可检测到的coinjoin交易,这将指示一个破坏。这是在payjoin被发明或实现之前,因此假设是所有的coinjoin交易都是可被检测到的。
研究人员试图通过谷歌搜索勒索软件的峰值,来匹配勒索软件集群的收入,并将勒索软件二进制文件上传到恶意软件跟踪网站。如果google搜索或二进制上传中出现峰值,而输入的比特币支付没有相应增加,那么这表明研究人员遗漏了一些属于勒索软件钱包的集群。这是使用中的时间相关性。研究人员得出的结论是,事实上,他们遗漏了密码防御(CryptoDefense)、密码锁(CryptoLocker)和密码墙(CryptoWall)的大多数集群,但可能拥有他们研究的其他勒索软件的所有集群。
一家称为Chainalysis的交易监控公司被用于寻找某些地址的所有权。对于与Chainalysis分析共享数据的交易所而言,它尤其有效。这样就可以跟踪勒索软件资金的目的地。已知最大的目的地是BTC-E,这是一个现已关闭的俄罗斯比特币交易所(它也是被罪犯广泛使用的交易所)。然而,绝大多数资金都被送到了未知的目的地。一个名为cryptoxxx的勒索软件把大约95%的资金发送了未知目的地,WannaCry勒索软件则达到了100%的比例。研究人员将BTC-E写在论文的摘要和结论中,因为这是他们能找到的最大目的地,但实际上大多数勒索软件的钱都无法被追踪。
本文是交易跟踪的一个很好的例子。研究人员会非常注意他们的结论,这如同在区块链分析中一样,而这有时很容易欺骗自己,让自己误认为自己所知要比别人更多。对比特币隐私感兴趣的人,都值得一读这篇文章。
勒索软件是一种威胁,注意备份好重要的数据,这是一个所有人都要养成的习惯。
十、请参阅:
共同输入所有权启发式:https://en.bitcoin.it/wiki/Common-input-ownership_heuristic 地址重用:https://en.bitcoin.it/wiki/Address_reuse CoinJoin:https://en.bitcoin.it/wiki/CoinJoin PayJoin:https://en.bitcoin.it/wiki/PayJoin 交易监视公司:https://en.bitcoin.it/wiki/Transaction_surveillance_company 客户端区块筛选:https://en.bitcoin.it/wiki/Client-side_block_filtering 全节点与隐私:https://en.bitcoin.it/wiki/Full_node#Privacy 闪电网络:https://en.bitcoin.it/wiki/Lightning_Network
十一、引用:
1、Bitcoin Milan Meetup 46 - Talk by Adam Gibson https://www.youtube.com/watch?v=IKSSWUBqMCM&t=2448
2、https://bitcointalk[dot]org/index.php?topic=334316.msg3588908#msg3588908
3、Neudecker, Till & Hartenstein, Hannes. (2018). Network Layer Aspects of Permissionless Blockchains. IEEE Communications Surveys & Tutorials. PP. 1-1. 10.1109/COMST.2018.2852480.
4、Harrigan, Martin & Fretter, Christoph. (2016). The Unreasonable Effectiveness of Address Clustering.
5、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、Bitcoin Privacy: Theory and Practice - Jonas Nick (Blockstream) - Zürich, March 2016 https://www.youtube.com/watch?v=HScK4pkDNds
7、Nick, Jonas David. “Data-Driven De-Anonymization in Bitcoin.” (2015).
8、https://github.com/bitcoin/bitcoin/pull/13666
9、https://bitcoinops.org/en/newsletters/2018/08/14/
10、https://bitcoin.stackexchange.com/questions/3059/what-is-a-compressed-bitcoin-key
11、Harrigan, Martin & Fretter, Christoph. (2016). The Unreasonable Effectiveness of Address Clustering.
12、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、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、https://medium.com/@octskyward/merge-avoidance-7f95a386692f
15、https://bitcointechtalk.com/saving-up-to-80-on-bitcoin-transaction-fees-by-batching-payments-4147ab7009fb
16、https://www.reddit.com/r/Bitcoin/comments/3a1hte/psa_dust_being_sent_to_your_addresses_might_help/
17、https://www.reddit.com/r/Bitcoin/comments/9r9qud/if_you_have_recently_received_a_very_small_amount/
18、https://www.reddit.com/r/Bitcoin/comments/2yvy6b/a_regulatory_compliance_service_is_sybil/
19、https://bitcoin.stackexchange.com/questions/61151/eclipse-attack-vs-sybil-attack
20、https://twitter.com/waxwing__/status/983258474040774657
21、https://twitter.com/thegrugq/status/1062194678089404421
22、https://motherboard.vice.com/en_us/article/3k9zzk/hacking-team-hacker-phineas-fisher-has-gotten-away-with-it
23、https://motherboard.vice.com/en_us/article/nzeg5x/here-are-all-the-sketchy-government-agencies-buying-hacking-teams-spy-tech
24、https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-June/016062.html
25、https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-July/009510.html
26、https://github.com/bitcoin/bitcoin/pull/8282
27、https://github.com/bitcoin/bitcoin/pull/5941
28、https://github.com/bitcoin/bitcoin/pull/9037
29、https://github.com/bitcoin/bitcoin/pull/8594
30、https://github.com/bitcoin/bitcoin/pull/12626
31、https://bitcoin.stackexchange.com/questions/83018/transaction-relay-and-trickling-in-bitcoin
32、https://github.com/bitcoin/bitcoin/issues/13298
33、https://github.com/bitcoin/bitcoin/pull/7125
34、https://github.com/bitcoin/bitcoin/pull/7840
35、https://bitcointalk[dot]org/index.php?topic=7.msg264#msg264
36、https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-June/014571.html
37、https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-September/015030.html
38、https://bitcoinmagazine.com/articles/anatomy-anonymity-how-dandelion-could-make-bitcoin-more-private/
39、https://www.youtube.com/watch?v=XORDEX-RrAI&t=7h34m35s
40、https://blockstream.com/satellite/
41、https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.17.0.md#partial-spend-avoidance
42、https://github.com/petertodd/dust-b-gone
43、https://medium.com/@octskyward/merge-avoidance-7f95a386692f
44、https://medium.com/@nopara73/coin-control-is-must-learn-if-you-care-about-your-privacy-in-bitcoin-33b9a5f224a2
45、https://p2sh.info/
46、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/
47、https://medium.com/cryptoadvance/how-schnorr-signatures-may-improve-bitcoin-91655bcb4744
48、https://bitcoincore.org/en/2017/03/23/schnorr-signature-aggregation/
49、https://blockstream.com/2018/01/23/musig-key-aggregation-schnorr-signatures/
50、https://github.com/sipa/bips/blob/bip-schnorr/bip-schnorr.mediawiki
51、https://bitcoinmagazine.com/articles/scriptless-scripts-how-bitcoin-can-support-smart-contracts-without-smart-contracts/
52、https://download.wpsoftware.net/bitcoin/wizardry/mw-slides/2017-03-mit-bitcoin-expo/slides.pdf
53、https://joinmarket.me/blog/blog/flipping-the-scriptless-script-on-schnorr/
54、https://lists.linuxfoundation.org/pipermail/lightning-dev/2018-April/001221.html
55、http://diyhpl.us/wiki/transcripts/layer2-summit/2018/scriptless-scripts/
56、https://bitcointechtalk.com/what-is-a-bitcoin-merklized-abstract-syntax-tree-mast-33fdf2da5e2f
57、https://bitcoinmagazine.com/articles/the-next-step-to-improve-bitcoin-s-flexibility-scalability-and-privacy-is-called-mast-1476388597/
58、https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-January/015614.html
59、https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-February/015700.html
60、https://www.reddit.com/r/Bitcoin/comments/7vcyip/graftroot_private_and_efficient_surrogate_scripts/
61、https://bitcoinmagazine.com/articles/graftroot-how-delegating-signatures-allows-near-infinite-spending-variations/
62、https://gist.github.com/chris-belcher/00255ecfe1bc4984fcf7c65e25aa8b4b#worked-example-for-tumbler-replacement
63、https://www.reddit.com/r/joinmarket/comments/3c7hnm/joinmarket_is_smart_contracts/
64、https://blockstream.com/2018/08/08/improving-privacy-using-pay-to-endpoint/
65、https://medium.com/@nopara73/pay-to-endpoint-56eb05d3cac6
66、https://gist.github.com/AdamISZ/4551b947789d3216bacfcb7af25e029e
67、https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-August/016340.html
68、https://joinmarket.me/blog/blog/coinswaps/
69、https://joinmarket.me/blog/blog/coinjoinxt/
70、https://joinmarket.me/blog/blog/the-steganographic-principle/
71、https://www.reddit.com/r/Bitcoin/comments/7t1q5x/deanonymization_risks_on_lightning_network/
72、https://github.com/lightningnetwork/lightning-rfc/blob/master/04-onion-routing.md
73、https://diyhpl.us/wiki/transcripts/scalingbitcoin/milan/onion-routing-in-lightning/
74、https://www.reddit.com/r/Bitcoin/comments/7rrjp3/is_onion_routing_appropriate_for_lightning_network/
75、https://www.reddit.com/r/Bitcoin/comments/8hwzbh/chainalysis_on_the_ln/
76、https://github.com/lightningnetwork/lightning-rfc/wiki/Rendez-vous-mechanism-on-top-of-Sphinx
77、https://lists.linuxfoundation.org/pipermail/lightning-dev/2018-November/001498.html
78、https://bitcoinops.org/en/newsletters/2018/11/20/
79、https://lists.linuxfoundation.org/pipermail/lightning-dev/2018-February/000993.html
80、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/
81、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
82、https://diyhpl.us/wiki/transcripts/scalingbitcoin/stanford-2017/concurrency-and-privacy-with-payment-channel-networks/
83、See first 20 minutes of this: https://www.youtube.com/watch?v=H1yPkPXLDVc
84、https://github.com/jlopp/physical-bitcoin-attacks
85、https://gist.github.com/chris-belcher/00255ecfe1bc4984fcf7c65e25aa8b4b#worked-example-for-tumbler-replacement
86、https://www.reddit.com/r/joinmarket/comments/7614ea/how_to_properly_spend_tumbled_coins/
87、https://twitter.com/msuiche/status/863082346014224385
88、https://bitcointalk[dot]org/index.php?topic=1916199.0
89、https://www.reddit.com/r/Bitcoin/comments/anycg2/electrum_targeted_phishing_malware_warning/
90、https://twitter.com/GossiTheDog/status/1078308649158664194
91、https://twitter.com/LaurentMT/status/1078638385256902656
92、https://www.reddit.com/r/Bitcoin/comments/2ww4eb/how_does_wallet_explorer_know_which_wallets/
93、https://www.walletexplorer.com/txid/5ac0210febf7ce07a737bae8c32f84c1c54d131c21a16ca6b02b6f1edcad15c3
94、https://www.coinjoinsudoku.com/
95、https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-January/015606.html
96、https://p2sh.info/dashboard/db/p2sh-repartition-by-type?orgId=1
97、https://www.youtube.com/watch?v=Tiyvrh53Yp8
98、https://www.youtube.com/watch?v=Tiyvrh53Yp8
99、https://web.archive.org/web/20170309231819/https://www.reddit.com/r/Bitcoin/comments/4v28jl/ how_have_fungiblity_problems_affected_you_in/
100、https://www.reddit.com/r/Bitcoin/comments/69duq9/50_bounty_for_anybody_recovering_445_btc_stolen/
101、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
102、https://web.archive.org/web/20150607131623/http://www.reddit.com/r/DarkNetMarkets/comments/2rhaqc/deanonimyzing_bitcoinfog_and_other_tumblers/
103、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
104、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
声明:本内容为作者独立观点,不代表 CoinVoice 立场,且不构成投资建议,请谨慎对待,如需报道或加入交流群,请联系微信:VOICE-V。
简介:服务于区块链创新者
评论0条