以太坊联合创始人Vitalik Buterin曾明确指出,如果不进行隐私过渡的技术转变,以太坊就会失败。因为所有交易都公开可见,对许多用户来说隐私牺牲太大,大家都会转向至少在某种程度上隐藏数据的中心化解决方案。
2023年,Vitalik在隐私保护和零知识证明(zero-knowledge proofs,ZK)技术的推进上进行了一系列的研究。上半年,Vitalik在他的网站上发布了三篇专门讨论ZK和隐私保护的文章。4月,他在Reddit上也展示了一项关于钱包监护人隐私问题的研究。9月,他与其他专业人士共同撰写了一篇论文,提出了一种针对平衡隐私与合规之间的解决方案。
此外,以太坊生态也在积极推动这个话题的讨论和普及。在3月份的ETHDenver活动中,举办了一场专注于隐私的特别活动。在5月份的EDCON(Ethereum Community Conference)年度会议上,Vitalik强调了“未来 10 年,ZK-SNARK将与区块链一样重要”。
本文追踪了2023年以太坊生态在利用ZK技术推进隐私保护方面的最新动态。如果您想跻身于以太坊ZK赛道,本文能提供必要的解读和指导。
以太坊的透明性可能使用户的个人信息面临泄露风险。以太坊等区块链上没有秘密,所有信息都是公开的,这包括交易、投票等其他链上活动。这样的公开性可能导致特定的交易和地址被追踪,并与真实用户身份关联。因此,在以太坊上实现隐私保护变得至关重要。想要隐藏链上信息可以通过加密技术来实现,但挑战在于在保护隐私的同时,确保这些交易的有效性得以验证。ZK技术提供了一种解决方案,能够在不透露额外信息的情况下证明交易的真实性,兼顾了隐私和可验证性。
以太坊高度重视ZK-SNARK,特别是在某些关键的隐私保护应用场景中,其重要性尤为突出。这一点在Vitalik的研究和提议中得到了明显体现,Salus整理了Vitalik在其研究中提出的典型场景,即隐私交易和社交恢复。
关于隐私交易,Vitalik提出了两个概念:隐私地址(Stealth Addresses)和隐私池(Privacy Pools)。
1.隐私地址方案允许在隐藏交易接受者身份的前提下进行交易。这种方案既提供了隐私保护功能,同时又确保了交易的透明度和可审计性。
2.基于隐私池协议,用户可以在不披露历史交易的前提下,证明自己的交易资金属于已知合规来源。这种方案允许用户在遵守法规的前提下,进行隐私交易。
这两个方案都离不开ZK。在这两种场景下,允许用户生成零知识证明,来证明他们的交易的有效性。
2.1.1 隐私地址
假设Alice打算向Bob转移某种资产,当Bob接收该资产时,他并不希望全球公众都知道他是接收者。尽管难以掩盖资产转移行为的事实,但隐藏接收者的身份则具有可能性。正是在这样的背景下,隐私地址方案应运而生,其主要解决的问题便是如何有效隐藏交易接收方的身份。
那么,隐私地址究竟与普通的以太坊地址有什么区别?如何使用基于ZK的隐私地址进行隐私交易?Salus将逐一为您进行介绍。
(1)隐私地址与普通的以太坊地址有什么区别?
隐私地址是允许交易发送者以非交互方式生成,且只能由其接收者访问的地址。我们从隐私地址由谁生成,谁可以访问两个维度来说明其与普通的以太坊地址的区别。
由谁生成?
普通的以太坊地址由用户本人根据加密和哈希算法生成。而隐私地址可以由本人生成,也可以由交易的另一方生成。例如,Alice向Bob转账时,Bob用来进行接受转账的地址可以由Bob生成,也可以由Alice生成,但只能由Bob控制 。
谁可以访问?
普通的以太坊账户下的资金种类、数量和来源都是公开可见的。而在使用隐私地址进行的交易中,只有接收者才能访问存储在其隐形地址中的资金。观察者无法将接受者的隐私地址与他们的身份关联起来,从而保护了收件人的隐私。
(2)如何使用基于ZK的隐私地址进行隐私交易?
如果Alice想要向Bob的隐私地址发送资产,以此来隐藏交易接收方。下面是交易过程的详细说明:
1.生成隐私地址
●Bob生成并保存一个消费密钥(spending key),这是一个私钥,可以用来消费发送到Bob的隐私地址的资金。
●Bob使用消费密钥生成一个隐私元地址(stealth meta-address),这个地址可以用来为给定的接收者计算一个隐私地址,并将隐私元地址传递给Alice。Alice对隐私元地址进行计算,生成一个属于Bob的隐私地址。
2.发送资产到隐私地址
●Alice将资产发送到Bob的隐私地址。
●由于Bob此时并不知道这个隐私地址是自己的,所以Alice还需要在链上发布一些额外的加密数据(一个临时公钥,ephmeral pubkey),帮助Bob发现这个隐私地址属于他。
上述过程中的隐私地址也可以使用由哈希构造的零知识证明和公钥加密来构建。隐私地址中的智能合约代码可以与ZK集成。通过嵌入零知识证明验证逻辑,智能合约能够自动验证交易的有效性。这种构建隐私地址的方案相比其他方案,包括椭圆曲线加密技术(elliptic curve cryptography)、椭圆曲线同源(elliptic curve isogenies)、格(lattices)、通用黑盒原语(generic black-box primitives)更为简单。
2.1.2 隐私池
无论是通过隐藏交易接收者的身份还是交易的其他信息来实现隐私交易,都存在一个主要的问题:用户如何证明自己的交易资金属于已知合规来源,而不必披露他们的整个交易历史。以太坊作为一个公开的区块链平台,必须避免成为洗钱和其他违法行为的媒介。
Vitalik提出了一个名为"隐私池"的解决方案,致力于平衡区块链的隐私保护和合规需求。然而,隐私保护和合规性的挑战是什么?如何平衡隐私和合规性?对于这两个问题,Salus提供了深入且具有指导意义的讨论。
(1)隐私保护和合规性挑战
在实现隐私保护的同时,确保交易合规是一项挑战,这一点可以通过分析Tornado Cash案例得到生动的展示。
Tornado Cash是一种加密货币的混合器(mixer),将大量的存取款行为混合在一起。用户在一个地址存入 token 后,出示 ZK Proof 证明自己存过款,再用一个新地址提款。 这两种操作是公开在链上的,但二者之间的对应关系不公开,所以具有匿名性。虽然它可以用户增强隐私性,但通常被非法行为者用来洗钱。因此,美国财政部OFAC最终将Tornado Cash的智能合约地址列入了制裁名单。监管机构认为该协议为洗钱提供了方便,不利于打击金融犯罪。
Tornado Cash在隐私保护中的不足之处在于,无法验证用户的token来源是否合规。针对此问题,Tornado Cash提供了一个中心化服务器用来帮助用户证明他的token是合规的。但是,服务器必须获取用户提供提款的具体信息,确定这个提款对应的是哪一个存款,以此来生成证明。这种中心化的机制不仅存在信任假设代价,还会产生信息不对等。最终,该机制几乎没有用户使用。虽然Tornado Cash实现了隐私功能,但它并没有提供一个有效的机制来验证用户token的来源是否合规,这才让犯罪分子有机可乘。
(2)如何平衡隐私和合规性?
基于以上挑战,Vitalik提出了Privacy Pools的概念,允许用户在不泄露历史交易信息的前提下,证明自己的资金来源是合规的。以此在隐私和合规性之间寻求平衡。
Privacy Pools是基于ZK和关联集合(association set)的,允许用户生成并发布ZK-SNARK证明,证明他们的资金来自于已知的合规来源。这意味着这笔资金属于一个合规的关联集合,或者不属于一个不合规的关联集合。
关联集合由关联集合提供者根据特定的策略来构建:
1.Membership Proof:将来自所有受信任交易平台的存款放入一个关联集合,而且,有确切证据认为它们是低风险的。
2.Exclusion Proof:确定一组被标记为有风险的存款,或者有确切证据认为是不合规资金的存款。构建一个包含除这些存款以外的所有存款的关联集合。
存款时,用户通过ZK生成一个secret,并哈希计算出一个公开的coin ID,来标记自己与这笔资金的关联。提款时,用户提交一个与secret对应的nullifier(nullifier是secret中派生的唯一标识符),证明这笔资金是自己的。而且,用户通过ZK来证明两个merkle分支,以此证明自己的资金属于已知的合规来源:
1.他的coin ID属于coin ID tree,这是当前发生的所有交易的集合;
2.他的coin ID属于关联集合树(association set tree),这是用户认为的一些合规交易的集合。
(3)ZK在隐私池中的应用场景?
1.保证隐私交易的灵活性:为了在隐私交易中也能处理任意面额的转账,每笔交易中附加了额外的零知识证明。这个证明能确保创建的token的总面额不会超过被消费的token的总面额,以此来保证交易的有效性。其次,ZK通过验证每个交易对原始存款token ID 的承诺来维护交易的连续性和隐私性,使得即使在部分取款的情况下,也能保证每笔取款与其对应的原始存款相关联。
2.抵抗余额求和攻击(balance-summing attacks):通过合并token并对一组token ID进行承诺,以及对多个输入的交易进行父交易的并集承诺,可以抵抗余额求和攻击。这种方法依赖于ZK,确保所有承诺的token ID都在其关联集合中,从而增强交易的隐私性。
在现实生活中,我们可能有多个银行卡账户。丢失银行卡密码就意味着我们无法使用银行卡里面的资金。在这种情况下,我们通常会去银行寻求帮助来找回密码。
类似的,在以太坊等区块链中,我们可能有多个地址(账户)。私钥就如同银行卡密码,是控制账户资金的唯一工具。一旦你丢失了私钥,你就失去了对账户的控制权,无法再访问账户中的
用戶喜愛的交易所
已有账号登陆后会弹出下载