以太坊网络隐私保护实用指南

转载
1692 天前
5211
链闻ChainNews

来源:链闻ChainNews     作者:潘致雄


是时候为你的以太坊账户增加一些隐私了。

很多人以为,区块链或数字货币会增强用户的匿名性,其实,这是个广泛的误解。(链闻之前曾发表过文章全面介绍过这个误解:中本村没穿衣服!该全面评估区块链隐私保护了)在没有利用合适的方法和工具之前,区块链这种开放式的账本,用户信息反而更容易被追踪,再加上大多数交易所必须集成中心化身份验证机制,用户的个人信息和区块链的匿名地址之间的映射关系已经被交易所记录了下来,再加上成熟的数据分析方法,用户的交易行为很容易被识别。

在所有项目中,最值得注意的就是比特币和以太坊,前者是加密货币领域的入门投资品,而后者具有最广泛的用户群体、应用生态和开发者社区。应该没有什么人愿意把家里的银行账户的余额和转账记录公开,银行也没有权利这么做,加密货币本身自带金融属性,但是在大多数的区块链项目中,用户的每一笔交易都是公开的。

因为如果不注意保护隐私,用户可能会泄漏资产信息或导致其他更可怕的后果。而随着整个区块链网络的整体价值逐渐增加,越来越多的专业数据挖掘公司和黑色产业会进入。有人做过简单的试验,通过以太坊域名系统(ENS)就可以找到部分业内著名人士的以太坊地址,查看到他们资产的情况。如果有更专业团队进行更深入的数据分析,很难想象他们会挖掘出其他什么更多的信息。

幸好,也多亏了区块链和密码学技术。我们有一些工具可以解决这样的问题,增强用户的隐私保护能力和匿名性。

基于比特币网络的匿名技术在过去几年里一直在发展,除了一些改进提案如 SNICKER (带有加密密钥的简单非交互式混币重用机制)等技术可以增强隐私之外,用户还可以利用混币服务增强 BTC 的可互换性,如 Samourai Wallet (武士钱包)的混币功能 Whirlpool (旋涡)或 Wasabi Wallet (山葵钱包)。


Wasabi Wallet 特性

相比之下,以太坊有着更为庞大和复杂的应用生态,许多项目都在探索匿名和隐私技术,如 Tornado Cash、AZTEC Protocol、ZeroPool 等。

在这里,我们为你精选了其中简单易用的工具,再配上合适的策略,可立即为你的以太坊账户提供更难追踪的隐私保护能力。在展开详细的介绍之前,让我们先提供一些基本的建议:

对于其他传统的互联网服务,使用 VPN 或 Tor 等工具提升网络传输层的匿名性就已足够,但是基于区块链账本的特殊性,网络层的匿名性虽说重要,但更重要的显然是账本层面的隐私性。对很多普通用户,如果采用如下的这些策略,就可以显著提高账户资金无法被追踪的可能性:

  1. 使用非托管的加密货币钱包,不要对钱包工具提供任何身份认证信息;
  2. 使用混币服务,如利用 Tornado Cash 这类服务将部分资产转移至全新的以太坊地址以实现匿名效果;
  3. 不要将中心化交易所,特别是完成过 KYC 的账户与实现了匿名效果的以太坊地址产生任何直接的转账关联;
  4. 不要将曾经使用过的以太坊地址与实现了匿名效果的以太坊地址产生任何直接的转账关联;
  5. 不使用以太坊域名服务(ENS),或使用 ENS 时不要注册与自己身份有任何关联的名称;
  6. 如需交易,可尝试去中心化且无需 KYC 的交易平台,如 Uniswap、Kyber、1inch 等。

同时,我们应该保持对以下技术的关注,等普及至消费级产品时,就可以采用了:

  1. 已上线以太坊主网,但尚未出现消费级产品的 AZTEC;
  2. 已上线以太坊主网,但尚未进行安全审计 ZeroPool;
  3. 已上线测试网的混币工具 MicroMix。

还不关注隐私,那些行业大佬的以太坊地址都被翻得底朝天了

让我们还是从为什么需要考虑隐私保护技术说起吧。

媒体 Decrypt 最近分析了 13 万个以太坊域名和他们的余额,通过一些简单的方式,就可以识别出部分以太坊社区的著名人士,而且仅通过区块链,可以获得到商业运作的数据和用户的交易行为。


该分析方法仅使用了姓名、所在机构、社交网络账号、谷歌搜索等公开信息,其中最典型的例子是加密货币数据平台 CoinGecko 联合创始人 Bobby Ong 的以太坊域名「bobbyong.eth」。通过该账户的交易记录,可以提前 17 天得知他将参与的一场在大阪市的 DAIsucki 聚会,因为参与该场活动需要提前将价值 10 美元的 DAI 存入该活动的以太坊地址中。

在活动结束后两天,他收到了 19 美元的 DAI,这表明他不仅出席了该活动,也因此获得了回报。

后来 Bobby Ong 表示,「在这种情况下,我应该更加谨慎地考虑自己以太坊地址的私密性,应该将自己想公开的和自己想保护隐私的交易隔离开来。ENS 为用户提供方便,但用户应该自己选择是否需要保护个人隐私。我希望在以太坊上构建更多的隐私功能,可以提高用户隐私和安全性。」

另外,以下的这些著名人士也因为 ENS 而泄漏了他们自己的资产以及相关的交易记录,如果再进一步分析,也许可以挖掘出更多信息,他们分别是 SpankChain 的 CEO Ameen Soleimani拥有两个域名「ameen.eth」和「ameensol.eth」;Frame 的创建者 Jordan Muir 拥有多个以太坊域名,「jordan.eth」、「framehq.eth」以及「smartaccounts.eth」等;Breaker (前 SingularityDTV)的「首席宣传官」Jack Cheng 拥有「jackcheng.eth」和「ethoutlet.eth」。


ENS 是一个上线于 2017 年的功能,该工具就像是一把双刃剑,如果没有很好的进行匿名化处理,就容易被别有用心的专业分析人员利用。不过,如果采用得当,ENS 将大大提升以太坊的用户体验,在用户转账行为中就不需要交换一长串类似于乱码的公钥地址,而是具有可读性的地址。你可以把它想象成是「以太坊网络的电子邮箱地址」,比如说以太坊创始人 Vitalik Buterin 可以注册一个名为 Vitalik.eth 的「以太坊域名」,然后大家在转账时只需要记住 Vitalik.eth 就可以将资产转账给他。

在 ENS 之外,用户的资产和交易记录也早就被用在精准的广告投放中了。在 2018 年 ICO 和空投概念盛行的时候,有不少做空投解决方案的机构就可以根据用户的以太坊资产余额,活跃程度进行筛选然后空投代币,目的是为了投放给更精准的用户群体。毕竟在以太坊网络进行空投有成本,账户数量也很多。

就连业内著名投资机构都无法避免被密切追踪和被精准投放的风险。去年有人发现 a16z 的以太坊账户收到了 SNX 代币,被认为 a16z 可能私下已投资了 Synthetix 的代币,也导致了 SNX 代币价格大涨。后来双方都没有正面回答该问题,不了了之。

对于普通用户来说,如果没有采取合适的隐私策略,也可能会像这些著名人士一样,交易记录的一举一动都被人密切追踪。

试想一下,如果你注册过一个和社交网络相同昵称的 ENS 账户、如果你曾在 Linkedin 上公开了职业历史、如果你和交易所进行过提现和充值交易、如果你使用了一款绑定手机号的中心化托管钱包,以上这些情况都会暴露用户的隐私,让真实生活中的你与虚拟世界中的身份(以太坊地址)产生关联,并泄漏你在虚拟世界中的所有资产和交易历史。

隐私可以分为两类:网络层隐私和账本层隐私

让我们从最基本的知识开始,说清楚隐私保护的各种可能性。

虽说现在有很多提供隐私解决方案的工具,但其实可以分为两类,在两个维度提升用户的匿名性,分别是:提升网络连接时的匿名性,和提升账本无法被追踪的匿名性,也可以简称为「网络层隐私」和「账本层隐私」。

「网络层隐私」的工具,解决的是用户在接入互联网时可能泄漏的元数据,如用户 IP、访问历史、访问时间等。比如用户的 IP 信息被记录在互联网服务提供商(ISP),而且用户 IP 在访问了网站或服务后都会被对方记录下来,这些信息可能会被加工或利用。

这类的解决方案在区块链诞生之前就已经成熟了,如 VPN、Tor 或 I2P。通过这类工具,用户可以隐藏自己原本的 IP,更安全地访问互联网服务或发起区块链交易申请。也有基于区块链的项目试图提供更现代化的隐私基础设施,比如 Nym,但目前仍处于开发阶段。

Nym 是一个新的隐私增强基础设施项目,最早获得链闻关注是因为该项目在 2018 年 12 月入选了币安孵化器推出的为期 10 周的孵化营。该项目以 Mixnet 通讯协议为基础,提供全栈型隐私,任何应用、服务或区块链在无需从头构建隐私系统的情况下,保护其网络中流量的隐私性。并且,Nym 推出了一个旨在增强隐私性能的激励系统 Proof Of Mixing,激励 Nym 的节点运营商混合网络中的流量,从而增强隐私和安全性开发高隐私保护特性的基础平台,推动强调隐私保护特性的应用产品开发。目前 Nym 尚在 Mixnet Alpha 测试网阶段。

而对于加密货币和以太坊的用户而言,账本层的隐私更为重要,因为账本是公开给全网络的数据,而网络层面的隐私只会暴露给一小部分人。

账本层隐私保护核心:交易混淆,即「混币」

在账本层面的隐私中,一个最核心的概念可以称为「混币」,很多隐私项目都是基于这个概念而引申出来的。

基于账户模式的以太坊网络,其区块链中储存的是一笔笔的交易记录,每笔交易记录可以简单理解为:地址 A 将 X 个 ETH 转给地址 B。这种 1 对 1 的交易很容易将两个地址产生直接关联。

尽管这篇文章是讲以太坊上的隐私保护,但是我还是想多说几句比特币网络相关的问题,毕竟混币的概念起源于比特币。

基于 UTXO 模式的比特币,在账户结构的设计上更鼓励每个地址仅使用一次,这会增加追踪交易记录追踪的难度。比如在上述的案例中,地址 A 可能由 5 个地址组成,地址 B 可能由 2 个地址组成。



一笔随机的比特币交易,由 5 个输入地址和 5 个输出地址组成

对于这类情况,Bitfury 团队在 2017 年发表的论文「比特币地址自动聚类法」中提出,基于几个假设和推演,就可以对比特币地址进行聚类并判断关联关系。该论文表示,「此方法可以让用户避免不安全的比特币使用模式,调查人员也可以通过该方法进行更高级的『去匿名化』分析。」


比特币地址自动聚类法论文

然而,「混币」则是一个彻底打破交易关联关系的方法,通过将不同人的交易打包到同一笔交易中,每个人的交易目的就很难被追踪了。

试想一下,如果交易输入有 100 个地址,每个地址均发送 1 个 BTC,交易输出也有 100 个地址,每个地址均收到 1 个 BTC,对于一个分析链上数据的公司,如何判断这 200 个地址的相互关系呢?非常困难。而且,如果定期或者经常执行这类混币交易,将进一步提升地址的隐私级别。

就连大名鼎鼎的区块链数据分析公司 Chanalysis 也表示,混币工具将显著提高追踪资金的难度,「混币工具让用户存入资金和提取资金无法产生关联,这使得追踪资金流变得更加困难」,「一些混币工具通过让用户接受不同大小的资金而使资金追踪难度进一步提升」。


Samourai Wallet 的混币交易演示

比特币平台中著名的混币工具有 Samourai Wallet (武士钱包)和 Wasabi Wallet (山葵钱包),都可以为用户创建混币交易。Wasabi Wallet 使用的 CoinJoin 协议将会为用户提供一种无需信任的钱包服务,允许多个用户将其交易与多个接收者合并成一笔交易。根据工具不同,用户可能还6555要付出 1% 左右的手续费。


Wasabi Wallet 的混币功能界面

由于以太坊不是 UTXO 的结构,而且一笔普通的交易无法合并多个发送者,所以和比特币中实现的「混币」不完全一样。不过,以太坊的优势是支持图灵完备的智能合约,将逻辑植入智能合约就可以实现与「混币」概念相同的功能。

试一试 Tornado Cash

对于首次关注到匿名和隐私的用户而言,针对以太坊网络,推荐你使用的第一个工具是 Tornado Cash,利用它可以创建出第一个「匿名地址」,以后所有的交易都可以基于该地址进行延伸。

Tornado Cash 是目前以太坊中较为流行的混币工具,除了使用非托管的方式实现了混币的效果,还使用了零知识证明相关技术。

对于有混币需求的用户,需要将自己的加密货币发送至 Tornado Cash 的智能合约资金池中,该合约同时会为用户生成一串零知识证明的代码,后续使用这串代码就可以将资金提现到另一个匿名的以太坊地址中。随着该资金池的用户增加,或转入和转出频率提升,就会提升匿名程度。

为了进一步增加混淆强度,Tornado Cash 的智能合约资金池按照金额数量进行了划分。比如, ETH 拥有 0.1、1、10、100 ETH 的 4 个独立资金池,所有同一个资金池中的转入和转出金额都固定为同一个大小(还可能会有额外的交易费)。

因为如果可以使用特定数量的 ETH 转入和转出,那就可以根据数额进行推理和关联。比如,转入资金池的 0.55 枚 ETH,和几天后转出的 0.55 枚 ETH 的关联度就会更高。


以 1 ETH 资金池为例,用户的使用流程为:

  1. 通过非托管的去中心化钱包访问 Tornado Cash 网站,选择数量为 1 ETH 的资金池;
  2. 点击 Deposit,网站会为你生成一个独一无二的零知识证明文本,将该代码保存至安全的地方。请注意,丢失该代码意味着丢失此次投入的资金。然后,通过网站将钱包中的 1 ETH 转入该资金池;
  3. 等待至少 24 小时,而且越久越好,因为在你等待的期间,会有更多人使用该资金池进行后续的转入和转出,随着这些交易数量的增加,匿名度将越来越高;
  4. 当用户决定要提现时,访问网站并提交之前保存的零知识证明文本,Tornado Cash 提供了中继节点服务,也就用户可以授权一个第三方替用户触发智能合约交易,将资金取回至一个全新的匿名以太坊地址,由于对方发起交易需要付出区块链的交易费,还为用户提供了隐私保护,所以用户需要付出约 1% 左右的费用。好在有很多服务商可以选择,有些费用较低;
  5. 另外还有一点值得注意,对于首次使用该流程的用户而言,建议创建一个全新的无任何交易历史的以太坊地址作为 Tornado Cash 资金的接收方,毕竟之前用过的各种地址可能都已经暴露隐私信息了。

对于外部观察者来说,该资金池的智能合约中,几百上千个地址频繁进出 1 ETH 的交易。用户转入资金时用的「原始地址 A」和转出资金时用的「匿名地址 B」之间相隔了几天甚至更久,而且其中相隔了几十甚至几百笔交易,所以外部观察者几乎无法将「原始地址 A」和「匿名地址 B」关联起来。


在几千笔相同的交易中判断某两个地址之间的关系是难度很大的

Tornado Cash 还支持了 USDC 和 DAI 等稳定币,虽然目前这些币种的匿名集不如 ETH 这么大,但随着使用者的人数增加,也将逐渐提升匿名程度。

需要指出的是,虽然 Tornado Cash 通过了安全审计,但该工具仍处于早期开发阶段,存在不可知的风险。

2020 年年初,Tornado Cash 确认了平台曾出现过漏洞,可能导致了 12 个地址的隐私被泄漏,后来漏洞被修复,并表示「该问题仅限于用户界面(UI),而且智能合约仍然是安全的」。无论如何,目前尚不建议大范围使用。


所有资产可以通过混币服务实现匿名效果

还有一些交易需要避免,不留下任何可能的关联交易

除了利用混币服务创建出一个完全匿名的账户之外,其实还有很多操作需要避免,一个简单的原则是:不要将千辛万苦创造出的实现了匿名效果的以太坊地址,与之前可能暴露过隐私信息的以太坊地址进行直接的交易,也不要和曾执行过身份验证的服务产生直接交易,以免前功尽弃。

钱包

在此之前,先挑选一款非托管的去中心化加密货币钱包作为入口,需要内置 Web3 浏览器或 WalletConnect 以支持 DApp 运行,常见的选择有 MetaMask、MyEtherWallet、imToken、Trust、MATH、AlphaWallet 等。如果其中部分钱包在后续的更新中增加用户身份认证的功能,千万不要提交出个人信息,特别是昵称、手机号、邮箱等,或许你也可以换一个钱包。


小狐狸 MetaMask

中心化交易所

第二个重要的工具就是中心化加密货币交易所,绝大多数用户要通过交易所的场外交易将法定货币换为加密货币,或使用中心化交易所进行频繁的币币兑换。中心化交易所为了满足 KYC 和反洗钱规定,需要收集用户的个人信息,所以与交易所之间的链上交易都要格外当心。

与交易所进行充值或提现操作时,不要与已经有较高隐私级别的以太坊地址产生任何关联。也就是,不要将交易所的资产提现到「匿名地址」,也不要将「匿名地址」的资金充值到加密货币交易所。如果真的有这个需求,可以通过额外的中间地址和 Tornado Cash 实现资金流。

如果嫌麻烦?不如试试去中心化交易所。

去中心化交易所(DEX)

DEX 的优势在于无需身份验证,这也就避免了隐私泄漏的可能性,所以用户也可以使用自己的「匿名地址」与 DEX 直接交互。

也有部分需要 KYC 才可以使用的 DEX,如 IDEX,为了满足合规需求。所以不建议使用需要 KYC 的 DEX。

有些用户可能会担心 DEX 的流动性,但随着去中心化金融(DeFi)生态的快速发展,DEX 的流动性正追赶中心化交易所,甚至部分 DEX 的流动性不输于中心化交易所,比如稳定币交易协议 Curve 或 Uniswap 中的 MKR/ETH 交易对。

Uniswap 流动性增长趋势

对于很多交易频率低且资金量不大的用户来说,DEX 会是不错的选择,推荐使用 Uniswap、Kyber、Oasis 、1inch、Curve 等。

以太坊域名服务(ENS)

以太坊域名一般用来创建具有可读性的地址,所以对于大多数用户来说,注册 ENS 可能会增加账号被关联的可能性。当然这也不是绝对的,如果用户需要注册一些随机的、没有意义或无法与用户自身身份产生关联的 ENS 地址,那不妨使用匿名地址进行。否则,还是建议不要使用匿名地址注册 ENS,或许可以利用之前已经存在暴露隐私风险的地址注册。

其他 DeFi 和 DApp

其他 DeFi 平台和 DApp 的种类非常多,保持之前提到的原则即可:不要将个人信息公开给这类平台,如昵称、邮箱、手机号等信息。同时最好也能注意网络层的隐私保护,不要将 IP 等信息直接暴露给这些服务。


一套适合普通用户的完整方案

值得关注的新技术

Tornado Cash 是一款即时可用的消费级产品了。但还有很多仍处于开发中的项目值得关注,因为在这些项目上线并稳定之后,用户在 Tornado Cash 之外就有更多的选择了。

AZTEC:已上线以太坊主网并提供了开发工具,但尚未出现消费级产品

隐私技术初创公司 AZTEC 已于今年初启动了基于以太坊主网的隐私网络,将允许用户在以太坊主网上实现创建、发送、交换、支付机密资产,从而允许在公共区块链上对数字资产进行代币私有化。

AZTEC 由数学家 Tom Pocock 和核物理专家 Zachary Williamson 创立,曾在 2018 年 11 月完成了 210 万美元的种子轮融资,ConsenSys Labs 领投,Entrepreneur First、Samos Investments、Jeffrey Tarrant 和 Charlie Songhurst 跟投。

2020 年 1 月,AZTEC 完成史上最大的的 MPC 设置,这次 MPC 设置提供了不相互勾结(proof of non-collusion)的终极证明,此次活动共产生 600 多次签到,产生了 2 个 MPC 软件实现,有 202 位参与者运行了软件,其中 176 位为有效,参与者来自 41 个国家的 105 个城市,其中有 30️位参与者保持匿名状态,分别有来自 6 家主流蓝筹金融 / 科技公司、两家主流区块链基础设施和 3 家区块链托管公司的领导者参与了此次活动。中国的安比实验室和分布式资本等组织也参与了这次设置。值得一提的是,AZTEC 将奉献奖颁给了以太坊创始人 Vitalik Buterin,在此次设置中,Vitalik Buterin 自行完成了 AZTEC MPC 的 Python 实现,并运行了两天。


最近几天,AZTEC 刚刚公开了名为 ZK² Rollup 的技术,有望显著减少以太坊网络中隐私交易的成本。ZK² Rollup 也就是 ZK ZK Rollup,第一个「ZK」是利用 SNARKs 技术中的「简洁性」(succinctness)提升网络的可扩展性,将多笔交易合并为一笔以减少交易成本,第二个「ZK」是利用 SNARKs 作为隐私技术,将合并前的每一笔普通交易升级为隐私交易。

AZTEC 使用的零知识证明基于 PLONK 技术,这是由 AZTEC  首席技术官 Zac Williamson 和首席科学家 Ariel Gabizon(Filecoin 母公司 Protocol Labs 的前研究员)等人共同创造的新技术,支持通用或可更新的「可信初始化」(trusted setup),而且相比 Sonic 有显著的性能提升。

当前 AZTEC 仍待被开发者集成,不过应该也用等待太久。AZTEC 将在 12 个月内提供有限数量用于免费私人主网交易的 API ,并欢迎基于以太坊的应用程序使用。

目前,AZTEC 支持开发人员使用隐私 SDK 来存入、发送和兑换 DAI 的隐私版 zkDAI,未来 AZTEC 将发布 DApp,允许用户存入、发送和撤回 zkDAI 等多种隐私代币。

ZeroPool:Beta 版本已上线以太坊主网,但尚未进行安全审计

以太坊匿名解决方案 ZeroPool 起源于 ETH Boston 的黑客松活动,曾获得 ConsenSys 的 2.5 万美元资助。

据团队介绍, ZeroPool 是一个高级的隐私解决方案,比其他混币工具更好,用户可以使用它对任何外部的观察者隐藏数量、资金来源和目标地址,储存或执行 ETH 和其他任何 ERC-20 代币的兑换。ZeroPool 将包含两部分,集合了零知识证明(ZKP)和未花费的交易输出(UTXO)的智能合约,以及使用 BabyJubJub 椭圆曲线生成的公私钥对的 Chrome 浏览器插件钱包。

ZeroPool 还集成了以太坊可扩展性解决方案 Optimstic Rollup,这可以减少用户的链上交易成本。在 3 月 12 日的极端行情中,ZeroPool 表示因采用了 Optimstic Rollup 技术,所以隐私交易也能实现非常低的链上交易费,接近于一笔普通交易。


ZeroPool 由区块链独立研究者 Igor Gulamo 和 Kirill Kuznetcov 共同创立,该项目一直比较低调,以社区资助的形式运作,通过 Gitcoin 平台获得捐助,他们也未公开过融资信息。

ZeroPool 的论文被发表在以太坊研究论坛中,以太坊创始人 Vitalik Buterin 对于该论文的评价为「出色的工作!期待看到它可以使用。」

官网显示,ZeroPool 已上线主网,但处于 Beta 阶段,而且也尚未进行安全审计,不建议使用。

MicroMix:已上线测试网

新加坡的以太坊全栈开发者 Koh Wei Jie 在去年推出基于以太坊的非托管混币工具 MicroMix,它基于零知识证明工具 Semaphore 实现,目前在以太坊 Kovan 测试网上实现了原型部署,允许用户匿名地将他们的代币与其他人交换,同时可隐藏交易历史。看起来 MicroMix 应该是个个人开发的独立产品,也未公开过融资信息。


Koh Wei Jie 同时进行着多个跨学科项目,涵盖智能合约和 DApp 开发、全栈开发、隐私和网络安全研究等。据 GitHub 显示,MicroMix 的开发有搁置的迹象,他更频繁参与另一个项目「Minimum Anti-Collusion Infrastructure」(最小化反「共谋」基础设施),这是一个在以太坊上使用零知识证明构建的抗贿赂投票系统的实现。