一文看懂以太坊的隐私方案现状

一文看懂以太坊的隐私方案现状

对以太坊网络上实现隐私的折中方案的评估

在一个联系日益紧密的世界中,我们的信息被越来越多地进行分类、复制、共享和出售,维持我们预期的隐私水平将成为一个挑战。

跟绝大多数事情一样,隐私不是二元对立的,而是从完全公开到完全私有的一个范围。因此,在谈及隐私时,有以下 3 个问题需要进一步讨论。

1. 消费者和企业希望保持怎样的隐私性?
2. 人们愿意为隐私花费金钱以及努力吗?
3. 在公链上实现隐私交易的折中方案是什么?

本文的目的,是简要地概述公链上对隐私的实际需求,并在更高的层次上讨论实现隐私的权衡解决方案。

第一个问题:什么程度的隐私才是重要的?

隐私的一个例子是匿名性,或身份的隐私性。在公链的背景下,匿名指的是各方在交易的时候 (比如,金钱、代币或数据) 时,不需要透露关于他们身份的相关信息,或者他们的历史交易信息。虽然这只是隐私的一个方面,但随着区块链技术的发展,它将变得越来越重要。

像比特币和以太坊这样的加密货币,会更多地被追踪,以关联到交易中的公共地址,以及分析和对应加密货币和法定货币之间转换的链下身份。这种做法的净效应是,使得交易双方的身份更加公开。由于公链必须从根本上提供关于所有交易的日志,因此对使用加密算法和协议的消费者和企业来说,隐私已经变得越来越重要。

在隐私问题上,企业和消费者有着截然不同的需求。企业通常要求的隐私是针对交易数据形式的,如产品名称、数量、价格、地址、个人可识别的财务信息等。

网络参与者通常是已知的,但根据他们的不同角色,可能需要保留或公开给其他参与者。例如,一个货运代理商,可能不需要知道某个海运集装箱里面装载的东西是什么,只需要知道集装箱已经到达即可。银行监管也对谁可以访问交易数据做了限制。安永利用 zk-snarks 在以太坊上开发了用于隐私交易的「夜幕协议(Nightfall protocol)」,摩根大通使用 Quorum 开发的 Anonymous-Zether,这些都是企业基于以太坊开发隐私解决方案的主要案例。

(# 区块律动 BlockBeats 注:2019 年 5 月,四大会计师事务所之一安永在 GitHub 上公开了 Nightfall 协议的源代码,Nightfall 结合了一套智能合约和微服务,以及以太坊 zk-snarks 工具箱 ZoKrates,让 ERC-20 和 ERC-721 代币能在以太坊区块链上进行「彻底隐私」的交易。Quorum,是由摩根大通 J.P.Morgan 从 2016 年开始推出的企业级区块链平台,是基于以太坊的联盟链。)

企业在隐私方面,通常有很强的商业动机或相关监管措施,但迄今为止,与企业相比,消费者对于隐私的意识和关注普遍较少。然而,消费者希望保护他们的身份信息、信用卡信息或其他敏感数据,以防止欺诈或身份遭到盗窃。有时候,消费者希望进行匿名交易,这就对交易的发送方和接收方都有隐私的需求。然而,隐私并不是消费者日常生活中就存在的意识,大多数人都会愿意牺牲自己的隐私,从而换取方便或免费访问(比如,接受 cookie、使用免费 wifi、网上冲浪等)。

第二个问题:人们需要隐私吗?

隐私通常被使用在信息传递的文本中,以保护各方之间发送的内容。它还被应用于构建更广泛的通信渠道和基础网络层。我们已经看到了在从公钥密码学的演化到其他密钥交换机制等多个结构中,生成端到端的安全网络/传输层协议(IPSec v2、SSL)。此外,还有进一步的操作,以确保安全的 DNS 查询、以及基于 Tor 的中继器的应用。很多学术界的研究和企业,都通过开放标准促进了这方面大量的进展,以确保他们在数据传输中的保留的隐私性和保密性。许多这方面的技术已经在零售用户技术堆栈中进行应用,并使最终用户获益。

尤其是对于区块链技术来说,尽管 Zcash 已经有将近 3 年的历史,但现有的 ZEC 中,只有大约 5% 是使用 SNARKs 存储的(其中大约一半使用的是历史版本的 SNARKs)。大约 95% 的 ZEC 存储在几乎没有隐私的透明地址中。从这种缺乏应用的现状,我们可以推断,也许大多数用户还没有意识到,他们需要为隐私付出(成本和努力)。

然而,如果区块链技术想要最终获得主流社会的应用,还是需要隐私的。内置的隐私层(如 SSL)如果成功,会使互联网成为可信的商业中介载体,这也说明消费者和企业希望将隐私内置到系统和应用程序中。

第三个问题:关于隐私的权衡

第三个问题更具技术性,需要更深入地研究如何能在以太坊上实现隐私,以及如何在涉及的各种机制之间进行权衡。区块链网络用扩展性换取去中心化,而隐私机制和技术之间也存在权衡。我们将研究其他以隐私为核心的区块链网络为实现隐私做了什么,然后对一些以太坊网络的隐私解决方案进行讨论。

其他以隐私为核心的区块链网络带来的经验教训(门罗币 Monero 和 Zcash)

在对以太坊进行详细介绍之前,隐私币领域的两个主要参与者是门罗币和 Zcash。在早期的山寨币时代,门罗币很特殊,因为它的代码库完全不是基于比特币的代码,而是基于一个完全无关的加密货币项目,Bytecoin(参考 CryptoNote 协议进行开发的)。在原始的 CryptoNote 设计中,将交易发送方的签名与许多其他诱饵签名(mixin)进行混合,从而对交易的发送方进行混淆。这个设计与隐地址输出相结合,从而保证了非常强的隐私性。「环签名」方案,这个高级的内置混合器,很早就出名了,并不是什么新鲜事物。

(# 区块律动 BlockBeats 注:环签名,ring signature,是一种数字签名方案,最初由 Rivest 等人提出,环签名是一种简化的群签名,环签名中只有环成员没有管理者,不需要环成员间的合作,Bytecoin,BCN,字节币,2012 年发布的,第一个基于 CryptoNoto 技术、致力于匿名反机枪池的超前的一种加密货币)

2017 年,随着引入环签交易(RingCT),使得环签名隐藏交易数据的能力得到了极大的提高。环签交易使用零知识证明,以增加其可以批量处理的签名种类。环签交易的引入,还强制执行最低的 mixin 要求,以减轻对早期版本的门罗币造成困扰的链接性攻击。目前,使用环签名的主要问题之一,是存储门罗币区块链网络占用了大量的磁盘空间。此外,环形签名不能扩展到大型群体,目前仅限于 10-15 个参与者。

2018 年末,门罗币网络引入了「防弹(Bulletproofs)」功能,这是一种令人激动的全新的零知识结构,它将环形中签名的数量进行了对数扩展,从而减少了交易所需的大小。这项改进使得门罗币网络与其他区块链项目一致。

(# 区块律动 BlockBeats 注:防弹,Bulletproofs,由密码学家 Benedict Bunz 和 Jonathan Bootle 发明,该技术承诺能够大幅度减少机密交易的重量。2018 年 10 月 18 日,门罗币将进行硬分叉升级,该技术也将被包含在这次升级中)

Zcash 是第一个实现 zkSNARKs 的加密货币。通过使用这种技术,用户可以发送只对接收者可见的完全隐私交易。对于外部观察者来说,ZEC 被发送到了一个私人地址后,似乎消失在了一个巨大的加密黑盒中,当接收者想把加密货币发回到一个非私人地址的时候(完全类似于一个标准的比特币地址),ZEC 似乎是从稀薄的空气中重新出现一样,完全观察不到发送者和接收者之间的连接。关于零知识证明的一个重要注意事项是,它需要更多的计算能力来运行,因此又使得交易变得更加昂贵。

(# 区块律动 BlockBeats 注:zk-SNARK,「Zero-Knowledge Succinct Non-Interactive Argument ofKnowledge」简称,指一种可以证明某人拥有某些信息的证明结构)

对可替代性的威胁

以太坊网络提供了伪匿名性 (例如,交易被链接对应的是,由用户持有的私钥进行签名的公钥地址,而不是由用户名/密码签名的公钥地址),其分布式的特性和透明性使许多全新的技术功能成为可能。

然而,与比特币一样,以太坊也会在不知情的情况下暴露用户,用户在使用这些技术,比如转移可替代的数字资产时,并没有意识到他们共享的信息的广度。

一个会对隐私造成的威胁是,与知道公钥和私钥对应的身份有关。考虑到比特币和以太坊等区块链的公共性,人们单纯地使用它们内置的交易框架,但就像面包屑会留下踪迹一样,很容易追踪到任何资产(甚至可替代资产)的所有交易。

通过地址产生的私隐

随着隐私技术的不断发展,更多更复杂的威胁模型可以考虑在内。2012 年,BIP32 引入了分层确定性密钥(Hierarchical Deterministic keys),单个种子短语可以生成永不停止的「新」比特币地址流。这使得用户每次在接受交易时都可以生成新的地址,而且所有这些地址都可以轻松被导出和导入到新的钱包中,不需要分别导入几个随机生成的密钥。

以太坊也有相同的功能,但新生成的密钥在获得能够支付其 gas 成本的 ETH 之前,不能与智能合约进行交互。许多建立在以太坊上的系统,将用户现实世界身份的许多方面,与他们的地址联系起来,这也使问题变得复杂。连接到以太坊地址的额外元数据量,会使以太坊特别容易受到去匿名化攻击。幸运的是,给以太坊带来这些威胁的智能合约功能,也可以被前沿的新加密系统应用,从而支持安全无缝的匿名交易。

ZK 结构和可信设置

许多零知识结构需要所谓的「可信设置(Trusted Setup)」。这意味着整个结构都依赖于特殊随机数的生成,任何知道这些随机数的人,都能够窥视运行的内部过程。为了减轻这些顾虑,设计复杂的过程来生成这些随机参数,以确保结构是可信的。这通常涉及到社区中几个受信任的成员,每个成员都生成私有的随机数据,并以这样的方式将它们组合在一起:即如果「任何」参与方删除了它们的关键数据,则秘密值是安全的。因此,如果需要对结构造成威胁,需要所有参与方都串通一气。

值得注意的是,门罗币使用的「防弹」技术是不需要可信设置的,但是 Zcash 中的 zkSNARKs 需要。Zcash 的可信设置过程被记录在了著名的 RadioLab 中。相反地,STARKs 不需要可信设置,因为他们使用对哈希函数的选择作为他们的「设置」,而不是任何类型的特殊数字。

零知识证明笔记(ZK-Notes)

作为以太坊隐私领域的先行者,AZTEC 协议使用「零知识笔记(zero-knowledge notes)」系统,来追踪隐藏的财务信息。这些笔记在以太坊网络上是可见的,包括每个笔记的所有者,但是每个笔记上存储的金额,其他人都是无法看见的,除了笔记的所有者之外。

(# 区块律动 BlockBeats 注:AZTEC 协议,由数学家 Tom Pocock 和核物理学家 Zachary Williamson 使用零知识证明(ZK-SNARKs)来增强共享账本的隐私性,旨在让以太坊的交易更加隐私,因此可以让金融机构能够更好地使用以太坊平台;2018 年 ConsenSys Labs 对 AZTEC 协议领投 210 万美金的种子轮融资,其它投资者还包括 Entrepreneur First, Samos Investments, Jeffrey Tarrant (Mov37) 和 Charlie Songhurst 等)

当一个笔记所有者决定执行一个「joinSplit」操作时,零知识证明的神奇功能就出现了,这意味着他们可以获取他们控制的任意数量的笔记,并创建一组可能属于其他人、也可能不属于其他人的输出笔记。这个功能与隐形地址技术相结合,可以使每一个新创建的笔记都属于一个完全干净的以太坊地址,即以前从未在网络上使用过的地址。在一个通用用例中,一个「ZK-Asset」合约可以与任何 ERC20 兼容的代币进行连接,允许用户通过存储代币以生成 ZK-Notes,并允许用户通过销毁 ZK-Notes 来提取代币。这种机制使得以太坊网络上现有的任何资产,都能够以保护隐私的方式进行交易。AZTEC 协议使用的证明机制比 ZK-Snarks 更容易使用,但是仍然需要一个可信设置。

Aztec 也在使用其他新颖的解决方案来建立可信设置。PLONK 是一个新的、高效的 ZK-SNARK 结构,它需要一个可信设置,所有程序都可以重复使用这个单独的设置。由于对 gas 的要求不高,PLONK 在以太坊的实际应用中是足够高效的。AZTEC 协议的 CEO Tom Pocock 相信,基于其交易能力,PLONK 能够以一种保持完美隐私性的方式,来编写复杂的逻辑语句。

使用安全 MPC 的 ZK

已经在 ZKBoo 获得实现,以及最近在 Ligero 中获得实现,这种方法将安全多方计算协议「编译」进了 ZK-PCP 系统(最早使用概率证明的 ZK 系统之一)。这种方法要求验证方提交安全 MPC 协议的副本(「头部」),然后验证者可以随机地评估一方的观点。这基本上意味着,拥有相关数据的实体,可以模拟多方之间的分布式计算,然后在随机的评估点上展示该计算的副本。更重要的是,通过使用 MPC,使得创建隐私智能合约成为可能。

像 ZK-STARKs 一样,基于 MPC 的证明是:

• 透明的,即随机数的产生是公开信息
• 后量子安全的,即依赖于公共随机性和哈希函数的可用性,仍然是量子系统无法进行大规模攻击的
• 可扩展的,即基于 MPC 的证明有一个 (准线性) 证明时间、和一个验证时间,可以高效地平摊和分批计算

关于如何使用这些技术的一些权衡,即涉及对于中小型「电路」/问题来说,如何使用这些技术才是最优的问题,可能会导致验证器的可扩展性问题。

也就是说,在区块链领域,基于 MPC 的技术还没有得到充分的开发,但这些技术将比现有的 ZK 技术更加通用,尤其是在需要各方保护与实际计算本身相关的秘密信息的情况下。例如,MPC 技术对于运行一个信用评估算法来评估客户的信誉的时候非常有用,但对于客户还是银行,想要放弃属于他们的交易历史或 ML 信用评分模型中的权重的时候,是没有用的。

硬件的局限性

当 Zcash 第一次引入使用 zk-SNARKs 发送交易的想法时,对于隐藏交易所需的计算能力方面存在一些严重的担忧,通常生成一个交易需要几个小时或更长时间。但从那时起,我们已经取得了巨大的进步,在目前的实现中,已经能达到在浏览器甚至是移动设备上,只需要在几秒钟内就能完成类似的任务。

用于隐私的混合器

最近广受关注的一个话题是混合器。今年 5 月,Vitalik 在以太坊网络上发布了新一代混合器的设计动机和大致框架。

以太坊混合器有助于实现钱包或个人的本地隐私交易。以太坊的可跟踪性,意味着特定的交易可以被跟踪并链接到其他钱包和账户等。使用混合器来交易以太坊,可以进一步使以太坊交易匿名化。

从那以后,许多团队都在为使混合器能够更加适用于以太坊网络而不断努力。下面是关于储存和提取混合以太坊所需的 gas 费用的最新计算结果。

(以太坊混合器及其所需的 gas,并根据 GitHub 中混合器的状态来计算成本)

应用层的单个混合器,永远不会为用户提供绝对的隐私,而只提供概率的保证。然而,这也许足够满足大多数个人和企业的需求。

谁支付 Gas?中继器的上升

这些方法的一个致命缺点是,到最后,需要有人为获得的输出支付 gas。以太坊从何而来?如果支付最终支付的 ETH 可以追溯到某个用户,那么该用户就失去匿名性了,这也就违背了整个目的。

这就产生了关于隐私的「先有鸡还是先有蛋」的问题,在这种情况下,接受匿名以太坊的唯一方法是,先存在已经匿名的以太坊。在 Vitalik 最早关于混合器博客文章中,他用一个简单的中继器注册合约解决了这个问题,其中承诺发布任意交易的中继操作人员,可以注册一个 HTTP 端点,这样交易可以被匿名发布。

最后,必须考虑到钱包多样性和操作安全性。需要找到安全的默认设置来保护用户,同时又不会给他们带来太繁琐的用户体验,但这个问题还在讨论中。所有的这些混合器解决方案,都需要大量参与者对隐私有着合理的预期,因此工具需要容易被大众使用,但是这其中的任何捷径,都可能导致一些非常严重的隐私侵犯问题。例如,一个用户混合了一些以太坊,将其中的一部分花在一些本来应该是隐私的方面,但之后可能会忘记他们将哪个钱包用于隐私交易,然后将剩余的以太坊发送回一个与他们公开关联的地址。

这些技术,以及该领域正在开发的其他很多技术,都很好地表明了以太坊网络上的隐私问题已经得到越来越多的关注,技术进步可能很快就会产生巨大的推动作用。虽然在公链上实现隐私看似是矛盾的,但零知识和其他隐私技术将使各种新的前沿的用例成为可能。与此同时,这些解决方案将提高用户的能力,使他们对自己的财务隐私感到更加放心。

展望未来

虽然本文不是对以太坊上所有隐私功能的完整概述,但研究了实现企业和消费者隐私需求的各种方法。加密生态系统中的许多个体都受到了为他们提供自由的抗审查技术的启发。为了构建一个加密原生世界,匿名交易或保护个人信息的能力至关重要。当谈及隐私时,并不存在什么灵丹妙药,而只有许多为特定用例提供隐私的方法和机制。

因此,我们将继续研究和评估以太坊的隐私解决方案,以帮助教育和推动这项技术的发展。这将包括未来关于具体隐私解决方案和解释各种隐私技术的报告,以及对目前正在开发的隐私解决方案的项目和公司进行更深入的分析。

披露:ConsenSys 对隐私和扩展性技术仍然非常感兴趣,ConsenSys Labs 已经投资了 Aztec 协议、Ligero 和 Starkware,并继续寻找能够突破这一领域限制的伟大项目。
感谢 Min Teo、Joseph Chow 和 Zac Williamson 对最初大纲的协调,以及 Amira Bouguera、Praneeth Srikanti 和 Steve Marx 的反馈。

来源:区块律动,文章为原文作者独立观点,不代表CoinVoice立场。

0

扫一扫,分享到微信

猜你喜欢

文章评论

请先 后评论

微信公众号

微信公众号