Privacy Pools:Vitalik新论文与Tornado Cash后,隐私池将走向何处?
原文作者:Kaori,BlockBeats
原文编辑:Jaleel,0x 26 ,BlockBeats
谈及隐私关涉到人性,尽管区块链数据公开透明可追溯,我们仿佛找到了自由平等的乌托邦;但另一方面,如何保护交易或是个人隐私也成为了一个无法回避的问题。尽管有隐私保护需求,但棘手的是我们仍生活在中心化监管的数字社会之中。如何使隐私和监管可以在公共区块链上共存将是一场漫长的征途。
上周 ,Vitalik 和其他四位作者发布了一篇论文——《区块链隐私和监管合规:迈向实际平衡》(Blockchain Privacy and Regulatory Compliance: Towards a Practical Equilibrium),引发了广泛的讨论。
几位作者表示这篇论文避开了谁对谁错的法律辩论,而是旨在解决 Tornado Cash 无法区分非法用户和正常用户行为的这个问题,在已有的隐私协议技术基础上提出了一个新的技术解决方案——Privacy Pools。
Privacy Pools 想解决的问题是——隐私和监管真的可以在公共区块链上共存吗?
Privacy Pools 如何证明钱是「干净」的
作为中立的基础设施,Privacy Pools 的核心思想是允许用户发布 zkSNARK 证明,证明他们的资金来自已知的合法来源或是不来自于非法来源,而无需公开透露整个交易环节。
也就是说使用 Privacy Pools 你可以以任何人都能验证的方式进行证明,说我的存款是合法的而不是来自于那些非法的资金。然后提供这个证明,就不用再公开你的确切存款信息,从而保护交易隐私。
有了 zkSNARK 证明这个模型支撑,Privacy Pools 的具体实现就需要另一个核心配置——关联集(Association Set)。
所谓关联集是由关联集提供者(ASP)遵循某些规则生成的,比如这个关联集的规则是「包含」——「来自受信任交易平台的所有存款」,另一些关联集的规则是「排除」——「除标记为有风险的存款外的所有存款」。然后用户只需要证明自己的关联集成员资格,无需公开透露选择的是哪一个关联集,只需要做出承诺,就可以在不完全披露其交易的情况下表明合规性。
用户向 Privacy Pools 存款,每笔存款都会分配一个唯一的 secret/coin ID 对,在提款时,用户指定一个与其存款存在关联的关联集,通过提供一个 nullifier,证明确实有这笔存款,并且存款要位于用户选择的关联集中,如此就可以在不暴露具体是哪笔存款的情况下显示。特殊情况下用户也可以向交易对手方提供更直接的证明来说明具体的存款。
Privacy Pools 的关联集还有一个值得一提的是,普通用户为了「自证清白」会被激励去证明自己属于合法关联集,但那些非法用户无法提供这种证明,从而达到了「分离均衡」。
Vitalik 在论文中将其中的一个用例进行了生动形象的阐释,在此进行摘录供读者理解。
假设有五个用户:Alice、Bob、Carl、David 和 Eve。前四者是诚实的,Eve 是已知的小偷。虽然 Eve 的真实身份可能未知,但公众知道标记为「Eve」的地址接收的资金是被盗过的钱。
每个用户提款时可以选择关联集,这个关联集必须包括他们自己的存款。这意味着,每个用户在选择关联集时,都不能排除自己的存款。
对于 Alice、Bob、Carl 和 David 这四个用户来说,为了避免与已知的不良行为者 Eve 关联,他们可以选择一个不包括 Eve 的关联集。这样,他们可以证明自己与 Eve 没有关联。
但是,Eve 面临一个问题,他不能选择一个只包括他自己的关联集,因为这样会立即揭示他是不良行为者。为了尝试隐藏他的不良行为,Eve 可能会选择一个包括所有五个用户的关联集,希望混淆视听。
由于其他四个用户都选择了不包括 Eve 的关联集,这使得 Eve 的尝试变得徒劳,因为人们可以通过排除法确定 Eve 是不良行为者。
结果就是通过关联集的选择,Alice、Bob、Carl 和 David 可以证明他们与已知的不良行为者 Eve 没有关联。Eve 无法隐藏他的不良行为,因为他的关联集包括了所有人。
论文中的这张图进一步说明了这两种证明的差异。Membership proof 包括一个特定的存款集合,而 exclusion proof 的关联集则包括除了一个特定存款集合之外的所有存款。
理论上来说,Privacy Pools「仍然允许」朝鲜黑客或任何非法用户使用该协议,但他们就像 Eve 一样无法生成高质量的白名单证明,尽管他们仍然可能生成低质量或过时的证明从而短暂的混淆视听,但由此监管机构相比之前更容易对非法用户进行定位。
关联集的是与非
关联集(Association Set)的出现使得用户不需要证明提款和存款之间的直接联系,而是证明自己的的关联集成员资格。但关于关联集是否真的可以保护用户的隐私,社区有很多质疑和争论。
前文提到,关联集是由链下 Set 提供者遵循某些规则生成的,那谁负责生成这些关联集?凭什么用户要相信这些关联集的提供商?又如何保证这些关联池中在未来不会出现非法地址?
有推特用户表示这与在 Coinbase 中进行混币交易获得合规隐私有什么不同?尽管 Privacy Pools 是非托管隐私,只是用于证明你和非法交易没有关联,而 Coinbase 完全控制和保管资金,并且完全了解用户身份。但我们又如何知道,关联集提供商对选择关联集的用户的了解比 Coinbase 对其用户的了解多还是少呢?
论文的联合作者之一、加密行业研究机构 Chainalysis 的研究员 Jacob Illum 在播客中称,提供关联集对普通用户来说是不可能的,这需要某种区块链取证或区块链分析的背景和能力才能做到这一点。所以只有拥有这种能力的人或者机构才能成为关联集提供者(ASP),比如一些分析机构或者大的金融机构等组织。
与此同时,用户需要选择规模足够大的关联集才能尽可能的保护交易隐私,因为集合越小,一旦集合内容泄漏用户暴露的风险就越大。
AX 1 主编 VL(@VladislavLiu)表示非法「用户仍然可以用低质量的白名单证明来欺骗系统,论文建议使用第三方白名单提供商(也就是关联集提供者),但这又带来了另一堆蠕虫。如果这些提供商不够好怎么办?或者如果他们受到损害怎么办?」
究竟谁有资格来提供这些关联集,论文给出了几种解决方法,但现实中也还未有机构或者组织站出来说我可以。这是 Privacy Pools 即将要面临的问题,也是所有想要获得区块链隐私权的人面临的挑战,信任或是不信任,妥协或是不退让,又或是漠然处之,视隐私如无物。
「Tornado Cash」 VS 「Privacy Pools」
链上隐私保护我们不得不提到 Tornado Cash,既然 Privacy Pools 是在 Tornado Cash 的基础之上进行了改进,那我们来看看两者到底有什么区别。
Tornado Cash 的主要思路是把大量的存取款行为混杂在一起,存款者在 Tornado 存入 Token 后,出示 ZK Proof 证明自己存过款,再用一个新地址提款,以此切断存取款地址之间的关联性。由此,在链上只能看到存和取,而不能看到二者的对应关系,所以具有匿名性。
相关阅读:《最精妙的 ZK 应用:回看 Tornado Cash 的原理与业务逻辑》
Tornado Cash 的关键问题是,合法用户很难与协议吸引来的犯罪活动脱钩,如果证明无关就需要依赖 Tornado Cash 的中心化服务器。用户需要向服务器提供提款的具体信息,服务器利用自己持有的数据库,检查这个提款确实对应的是哪个存款,然后生成这个证明。但前文我们提到,Privacy Pools 通过关联集的设置将合法用户的交易放进一个白名单,非法用户无法证明自己的交易属于这个关联集,从而区分合法用户与非法用户。
也就是说,Tornado Cash 使用通用匿名集——所有存款和取款都混合在一个池中。Privacy Pools 使用可定制的匿名集——用户可以根据自己的喜好和需求选择他们想要混合的存款和取款方式。
推特用户@0x Arhat制作了一张表格将两者从灵活性、披露情况、隐私级别等多角度进行了对比。
Privacy Pools 由于可以自定义关联集的内容,这样一来就可以根据不同的司法管辖或者实体不断变化的规则和要求来对关联集进行定制和更新。并且每个关联集都有自己的资金池和证明规则,从而避免了资金污染。但 Tornado Cash 的所有存款都放在一个资金池中,这样就很容易造成匿名违规行为的发生。
Privacy Pools 还通过在合规性以及声誉等方面来激励用户做出诚实的行为,而 Tornado Cash 运行在无信任和无许可的基础上,这样天然会吸引非法者的「青睐」。
这些正是论文作者们设想的可以使 Privacy Pools 免于 Tornado Cash 命运的一些设定,让监管与隐私共同实现,就得在完全具有隐私无许可的基础上,舍弃一点隐私,添加一点「灵活性」。
KOL Eva Beylin(@evabeylin)表示 Privacy Pools 除了在交易隐私方面可以发力,甚至在 DAO 治理(成员资格)、节点声誉、kyc 合规性等多方面都可以做出贡献。Privacy Pools 的无心插柳,也许会拥有比 Tornado Cash 更好的未来。
如何使用 Privacy Pools
目前 Privacy Pools 还在测试阶段,用户可以使用 Optimism Goerli 测试网对协议进行测试。
1、创建 Note?item_id=888 target=_blank rel=noopener noreferrer>查看更多 Wallet
2、生成助记词并进行安全保存
3、设置密码
4、下载 Secrets 文件,登录时将该.json 文件上传
5、注册步骤已经结束,登录时,点击「选择文件」,上传刚才下载的 json 文件即可,随后输入密码
隐私无罪,隐私有罪
Tornado Cash 创始人的遭遇让「代码即言论」的信仰受到了打击,Privacy Pools 的出现也让区块链的去中心化又一次遭到了质疑。比如使用 Privacy Pools 就证明资金来源是否已经违背了最开始的保护隐私的目的?可是为了合规似乎就得做出让步,让两者处于某种平衡状态,因为越来越多的人意识到彻底的匿名性在如今的世界已无法成立。
说到底,彻底完全的隐私和监管合规有天然的冲突,我们无法忽视这个问题,但可以自己选择,寻找其中的平衡点。Privacy Pools 可能不是每个人的解决方案,但这对很多人来说确实是一个解决方案。
那个平衡点在哪里,不仅仅需要行业建设者去思考,立法者执法者同样需要思考,因为如果当你把隐私定为犯罪时,那么只有罪犯有隐私。
参考内容:
1.https://papers.ssrn.com/sol3/papers.cfm? abstract_id= 4563364
3.https://www.techflowpost.com/article/detail_13920.html