区块链:如何在以太坊上实现隐私交易?_ruff币区块链最新消息

本文为ConsenSys出品,作者为:DeanPierce、RobertDrost(ConsenSys研发部)、MasonNystrom(ConsenSys),由加密谷独家编译。

在这个联系日益紧密的世界中,我们的信息被越来越多地分类、复制、共享和出售,维护一定程度的隐私成为重要挑战。

隐私并非二元结构,而是从完全公开到完全私有之间波动的一个范畴。因此,在谈到隐私时,首先有三个问题需要讨论:

消费者和企业希望保护哪些隐私?

人们愿意为隐私付出代价吗?

在公共区块链上实现私有交易的权衡是什么?

本文的目的是简要地研究公共区块链上的实际隐私需求,并讨论隐私解决方案的现实路径。

隐私的一个方面是匿名,或保持身份的私有权。放在公链背景下,匿名指的是各方交换某物而不需要透露其身份或他们进行其他交易相关信息的能力。虽然这只是隐私的一个方面,但随着区块链的发展,其重要性日益突出。

像BTC和ETH这样的加密资产越来越多地被追踪,通过关联交易中的公共地址,可以在加密资产和法定货币转换时分析和链接到该地址真实的身份。这样做的最终结果是:交易双方的身份变得公开化。由于公共区块链必须从根本上提供所有交易的日志,因此使用加密算法和协议保护用户及企业的隐私变得越来越重要。

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

网络参与者身份通常是已知的,但根据角色身份的不同,可能需要选择保留或提供给其他参与者。

例如,货运代理可能不需要知道某个海运集装箱的内容,只需要知道集装箱已经到达。银行规定还限制了谁可以访问交易数据。安永使用zk-snarks以便在以太坊上进行私人交易的Nightfallprotocol,以及摩根大通为Quorum开发的anonymousi-zether等,都是企业为以太坊开发的隐私解决方案的典型例子。

企业往往有很强的商业动机或隐私方面的规定,相比之下,消费者的隐私意识往往不强,关注也普遍较少。消费者可能仅仅希望保护他们的身份、信用卡信息或其他敏感数据,以防止欺诈或身份盗窃。有时,消费者希望匿名交易,这就要求交易的发送方和接收方都能保持隐匿状态。然而,在日常生活中,隐私又常常被用户所忽视,大多数人为了方便或免费访问而愿意牺牲自己的隐私权益。

在消息传递的过程中,隐私机制通常被用于保护各方之间发送的内容。此外,它还被用于更广泛的通信通道和底层网络层的构造中。从公钥密码术的演变及其采用,再到其他密钥交换机制,我们已经看到了多种旨在实现端到端安全的互联网协议套件。这也确保了安全的DNS查询以及采用基于Tor的中继器的安全性。

通过学术研究和企业采用,许多成果从开放标准中衍生出来,其中许多技术已在个人用户技术堆栈中找到了自己的应用方式,最终使得终端用户受益。

就区块链而言,尽管Zcash已经有将近3年的历史,但是在现有的ZEC中,只有大约5%是使用SNARKs存储的。大约95%的ZEC存储在几乎没有隐私的透明地址中。根据这种低采用率,我们可以推断,也许大多数用户还没有为隐私付出成本和努力的需求。

回顾过往,内置的隐私层的成功使互联网成为可信的商业媒介,区块链技术最终被主流采用也仍然绕不开隐私这个重要议题。

隐私的权衡

这个问题更具技术性。我们需要更深入地研究如何在以太坊上实现隐私。区块链网络以可扩展性为代价换取了去中心化,而隐私机制和技术之间也需要权衡。我们将从研究其他关注隐私的区块链已经达到了何种目标入手,然后讨论以太坊网络隐私解决方案。

其他专注于隐私的典型区块链项目

在详细介绍以太坊之前,先介绍隐私币领域的两个主要参与者Monero和Zcash。

在早期的竞争币时代,Monero很特别,因为它的代码完全不基于BTC,而是一个完全无关的名为Bytecoin的加密资产项目。

原始的CryptoNote设计将交易发送方的签名与许多其他诱饵签名混合,从而混淆了交易的发送方。这与隐身地址输出相结合,提供了非常强的隐私保证。“环签名”方案很早就被认为是一种高级的内置混合器,这已经不是什么新鲜事了。

在2017年,随着RingCT的引入,环签名隐藏交易数据的能力得到了极大的提高。RingCT使用零知识范围证明,增加了可以批量处理的签名种类。

RingCT的引入还强制了最低的mixin要求,以减轻困扰Monero早期版本的连接性攻击。目前,使用环签名的主要挑战之一是其占用了大量磁盘空间来存储Monero区块链。此外,环签名不能扩展到大群体,目前仅限于10-15个参与者。

在2018年底,我们在Monero网络上看到了“Bulletproofs”的引入,这是一种激动人心的全新零知识结构,它与环中签名的数量成对数扩展,从而减少了所需的交易规模。这项改进使Monero功能与其他区块链项目保持一致。

Zcash是第一个使用zksnark的加密资产。使用这种技术,用户可以发送只对接收者可见的完全私有的交易。对于外部观察者来说,被发送到私人地址的ZEC似乎消失在一个大型的加密黑匣子中,当接收者想要将其代币移回非私人地址时,这些代币似乎是凭空冒出来的,发件人和收件人之间没有可观察到的联系。

关于零知识证明的一个重要注意事项是,它需要更多的计算能力来运行,这反过来又使交易更昂贵。

可替代性的威胁

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

然而,与BTC类似,以太坊也会在不知情的情况下暴露部分用户,这些用户在使用可替代数字资产转移时,可能没有意识到他们共享信息的传播广度。

一种对隐私的威胁在于用户知道与公钥和私钥相关联的身份。考虑到BTC和以太坊等区块链的公共性,天真地使用它们的内置交易框架就像留下了面包屑,给别人追踪资产转移痕迹提供了便利。

通过生成地址保证隐私

随着隐私技术的不断发展,可以考虑许多更复杂的威胁模型。2012年,BIP32引入了分层确定性密钥,它允许单个种子短语生成永不停止的“新”BTC地址流。这使得用户每次接受交易时都可以生成新的地址,而且所有这些地址都可以轻松导出并导入到新的钱包中,而不必分别导入多个随机生成的密钥。

以太坊也有相同的功能,但新生成的密钥在获得所需的ETH资金之前不能与智能合约进行交互。许多建立在以太坊上的系统将用户的现实身份与地址进行关联,这也使问题变得复杂化。链接到以太坊地址的这种额外的元数据会使以太坊特别容易受到去匿名化攻击。幸运的是,将以太坊暴露给这些威胁的智能合约功能也可以使用前沿的密码系统,从而支持安全、无缝的私密交易。

ZK结构和可信任初始设置

许多零知识结构需要所谓的“可信任初始设置”。这意味着整个构造依赖于特殊随机数的生成,任何知道这些随机数的人都能够窥视操作的内部。

为了降低这种顾虑,开发者设计了复杂的模式来生成随机参数,以确保构造可被信任。这通常涉及到社区中几个受信任的成员,每个成员都获得自己的私有随机数据,并以某种方式将它们彼此组合,如果“任何”参与方删除了它们的关键数据,secret值就是安全的。因此,只有所有参与方都串通起来才能使结构面临风险。

值得注意的是,Monero使用的Bulletproofs不需要可信任初始设置,但是Zcash中的zksnark需要。Zcash的可信任初始设置记录在RadioLab中。相反,STARKs不需要可信任初始设置,因为他们选择使用哈希函数作为“设置”,而不是任何类型的特殊数字。

Zero-KnowledgeNotes(ZK-Notes)

作为以太坊隐私领域的先行者,AZTECProtocol使用“zero-knowledgenotes”系统来追踪隐藏的财务信息。这些note在以太坊网络上是可见的,包括每个note的所有者,但是每个note上存储的金额对每个人都是隐藏的,除了note的所有者。

当一个note所有者决定执行一个“joinSplit”操作时,零知识的魔力就出现了,这意味着他们可以获取他们控制的任意数量的note,并创建一组输出note,这些note可能属于也可能不属于其他人。这一点与隐形地址技术相结合,可以使每一个新创建的note都属于一个从未在网络上使用过的以太坊地址。

在常见的用例中,一个“ZK-Asset”合约可以连接到任何ERC-20兼容的代币,并允许用户存储代币以生成ZK-Notes,或者,燃烧ZK-Notes以提取。这种机制使得以太坊网络上的任何现有资产能以保护隐私的方式进行交易。AZTECProtocol使用的证明比zk-snark更容易使用,但是仍然需要一个可信任初始设置。

Aztec也在用其他新奇的解决方案来建立可信任设置。PLONK是一个新的、高效的ZK-SNARK结构,它需要一个可信任设置,所有程序都可以重用这个单独的设置。由于对gas的要求不高,PLONK在以太坊的实际应用中是足够有效的。

AZTECProtocol首席执行官TomPocock相信,PLONK可以被用来编写复杂的逻辑语句,同时保持完美的隐私。

ZK与安全多方计算结合

这种方法在ZKBoo和Ligero中实施,通过要求证明者提交安全多方计算协议的副本,将安全协议“编译”到ZK-PCP系统中,使验证者能够随机评估其中一方的观点。这意味着,拥有相关数据知识的实体可以任意模拟多方之间的分布式计算,然后在随机的评估点显示计算副本。更重要的是,使用MPC使创建私有智能合约成为可能。

像ZK-STARK一样,基于MPC的证明具有如下特征:

透明:随机数的生成是公共信息;

后量子安全:公共随机性和哈希函数仍然是量子系统无法大规模解决的问题;

可扩展:基于MPC的证明具有准线性的证明时间和验证者时间,可以高效进行分批计算;

围绕使用此类技术的一些权衡取舍涉及如何针对中小型“电路”问题将其最佳化,这可能会导致验证者出现可扩展性问题。

也就是说,基于MPC的技术在区块链领域还没有得到充分的开发,这些技术将比现有的ZK技术更加通用,特别是在需要各方保护与实际计算本身相关的机密信息的情况下。例如,MPC技术对于运行信用评分算法来评估客户的信用度很有用,但是无论客户还是银行都不想放弃其交易历史等机密信息,以及在ML信用评分模型中的权重。

硬件限制

当Zcash第一次引入使用zk-snark发送交易的想法时,人们对使用隐蔽交易所需的计算能力存在严重担忧,因为生成一个交易需要几个小时甚至更长时间。但之后,我们已经取得了长足进步,现在已经能够在浏览器甚至移动设备上完成类似的任务,只需要几秒钟。

混合器

混合器的话题也引起了很多人的关注。今年5月,Vitalik在以太坊网站上发布了新一代混合机的设计和大致框架。

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

许多团体致力于使以太坊混合器更加实用。下面是储存和提取混合ETH的计算和gas费用的最新图表。

应用层的单个混合器也许目前还不能为用户提供绝对隐私,而只提供概率保证。然而,这已经可以满足大多数个人和企业的需求。

谁为Gas费买单?

这些方法的一个致命缺陷是,到最后,需要有人为获得产出而支付gas费。这些ETH从何而来?如果最终支付的ETH可以追溯到某个用户,那么该用户就可以去匿名化,这就违背了目的本身。

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

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

这些技术进展表明了,以太坊网络上的隐私问题已经得到越来越多的关注。虽然在公共区块链上实现隐私看似矛盾,但零知识证明等技术将使各种新的前沿用例成为可能。与此同时,这些解决方案将增强用户的能力,让他们对自己的财务隐私放心。

事关隐私时,并没有什么灵丹妙药。为了创建一个加密的原生世界,匿名交易或其他保护个人信息的能力至关重要。虽然本文并非对以太坊上所有隐私功能的完整概述,但已经涉及到了实现企业和消费者隐私需求的各种方法。整个加密资产生态系统都受到了提供自由的抗审查技术的启发。

我们将继续研究和评估以太坊的隐私解决方案,以帮助教育和推动这项技术的发展。

DeanPierce、RobertDrost、Mason?

作者:Nystrom?

翻译:FlashChan?

编辑:SonnySun?

排版:Roy?

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

区块博客

[0:15ms0-6:406ms