• 元宇宙:本站分享元宇宙相关资讯,资讯仅代表作者观点与平台立场无关,仅供参考.

Ethereum中的隐私——隐秘地址(Stealth Address)

  • 2025年1月09日 19:12

来源:登链社区介绍

Web3加密用户面临的一个主要痛点是缺乏隐私。所有交易在公共账本上都是可见的,并且越来越多地与一个清晰可见的ENS名称相关联,这使得用户在进行某些活动时缺乏动力,或者导致他们以增加用户体验摩擦的方式进行这些活动。一个例子是简单地将资金从热钱包转移到冷钱包或反之亦然。用户可能不希望一个钱包与另一个钱包相连,因为他们可能不希望自己的冷钱包余额被看到。目前,Ethereum地址并不像私人银行账户那样运作,因为每个人都可以看到你的钱包,越来越多地,你的社交活动(SBT、证明、在各种dapp上的活动等)也会被看到。正因如此,Vitalik将隐私称为Ethereum需要经历的三大技术转型之一,以便对普通用户有用。

使用现有的隐私解决方案,如TornadoCash,出于几个原因,体验并不理想。首先:用户会合理地担心自己的地址在CEX或其他平台上被列入黑名单。其次,与TornadoCash等服务的交互用户体验并不友好,实际上只适合高度熟练的用户。

隐秘地址为用户提供了一种隐私,类似于他们在私人银行账户中所理所当然的隐私,并且以易于理解的方式实现。此外,围绕隐秘地址的创新意味着我们可以以符合多个司法管辖区的反*洗*钱法规的方式来实现这一点。用户对隐私的需求

虽然关于网络和Web3用户对隐私态度的研究并不广泛,但通过网络搜索发现了以下研究,结果大致一致,表明对交易隐私有明确的需求。

2022年进行的一项调查,由SiminGhesmati等人发表在题为User-perceivedprivacyinblockchain的论文中,指出“一半的受访者表示交易隐私对他们非常重要”。虽然这项研究与Bitcoin的关系更大,但Ethereum用户可能也有类似的态度。然而,这项研究的样本量相对较小(14名参与者)。

另一项有趣的研究来自2022年,发表在Frontiers上,题为Political,economic,andgovernanceattitudesofblockchainusers,这项研究更为全面,共调查了3,710名加密用户。结果显示,大约四分之一的受访者表示隐私是“Blockchain和Crypto中最重要的特性”。

TVL(美元)Railgun在Ethereum主网—来源:Railgun—DefiLlama

Umbra的使用人数也稳步增加(注册隐秘地址到他们的ENS的人数),截至2024年11月接近77,000人:

TVL(美元)TornadoCash在Ethereum主网—来源:TornadoCash—DefiLlama隐秘地址的现状

本研究确定了目前在EVM链上生产的4个主要解决方案,它们是:

Fluidkey

Umbra

Labyrinth

Railgun

Fluidkey和Umbra基于Ethereum标准,这些标准是:

ERC-5564:隐秘地址协议

ERC-6538:隐秘元地址注册

Labyrinth和Railgun基于zerocash协议(zcash也基于此),该协议使用一个用户存入资金的保护池。Zerocash使用“票据”的概念,这基本上是价值的加密表示,能够实现私密交易。每个票据包括一个隐藏的价值、所有者密钥和一个唯一编号(一个无效化器),使用zk-SNARKs验证所有权而不透露细节,从而转移票据中的价值。当票据被花费时,其无效化器会被揭示以防止双重花费,同时为接收者创建新的票据,形成一个保护池内的UTXO系统。

在高层次上,隐秘地址的基本原理是第三方可以向一个从未存在过的地址发送资金,而预期的接收者可以找到并控制该地址(即可以随后支出这些资金)。

erc-5564标准指定了一种机制,接收者可以发布一个隐秘元地址,从中可以派生出新的Ethereum地址。任何希望向接收者发送资金的人,都可以从隐秘元地址生成新地址,并允许接收者在没有任何直接通信的情况下得知这些资金。所有隐秘地址的实现都基于这一基本前提。隐秘地址的工作原理

隐秘元地址本质上是两个压缩公钥的连接,分别称为“支出密钥”和“查看密钥”。隐秘元地址使用EIP-3770链特定地址格式,并添加“st:”前缀。以下是一个隐秘地址的示例:

st:eth:0x036ffa94a70a5b9608aca693e12da815fe0295f3739c7b22b0284c6d85c464ba4a02c0521b6fe31714b2ca0efa159402574355b754e0b50406b0b5fb33128eec3507

为了简化,这个隐秘地址可以与一个普通的Ethereum地址(因此也包括ENS)关联,使得向隐秘地址所有者发送资金变得更容易。为了发送资金,发送者会解析上述地址,并使用EIP-5564标准创建一个临时公钥,从中派生出隐秘地址。发送者将资金发送到新的隐秘地址,通常通过一个所有隐秘地址接收者监听事件的单例合约。该合约会发出一个“公告”事件,接收者可以订阅该事件。每当公告事件被发出时,接收者会检查公告中的临时公钥,将其与他们的查看私钥结合,确定他们是否有能力支出发送到隐秘地址的资金。如果有,他们所使用的钱包/客户端将记住隐秘地址及相应的资金,并将其添加到用户的显示余额中。要实际支出这些资金,他们可以使用私有支出密钥签署交易。

以下图表更清晰地概述了整个过程:t5u9vYiEaGRw1MKRH5lDDLBQLJZdcoQeHguQFRsm.jpeg

以下部分更详细地捕捉了一些其他细微差别和区别。每种实现都有有趣的细微差别,这可能对你的用例产生影响或不产生影响。

例如:在Fluidkey中:所有交易直接转到链上的隐匿地址,而Umbra**:**只有ETH转到链上的隐匿地址,而Tokens转到中央合约,与Railgun和Labyrinth一样,所有交易都转到核心合约,而不是直接转到链上的隐匿地址。深入探讨隐匿地址的实现Fluidkey

Fluidkey是一种erc-5564的实现,允许用户发送、接收、交换和桥接ETH和erc-20Tokens。在撰写本文时,Fluidkey已在Base、Optimism、Arbitrum、Polygon、Gnosis和Ethereum主网上部署。

用户通过其网页用户界面与Fluidkey互动。当他们首次使用钱包登录时,他们会签署一条密钥生成信息,从中推导出他们的查看和支出密钥。每次用户进入应用时,这些相同的密钥以相同方式重新生成。

Fluidkey有几种不同于其他实现的方式。其中一种不同之处在于,用户与Fluidkey共享他们的私有查看密钥(实际上是一个BIP-32派生节点)。这使Fluidkey能够为用户生成隐匿地址,并在他们收到这些地址的付款时通知用户。然而,这也意味着Fluidkey有能力查看用户的进账交易和余额,这是一个权衡。然而,Fluidkey仍然保持完全自我保管。

Fluidkey设计中的另一个有趣方面是,它为每个新的隐匿地址部署一个智能合约账户。只有在资助自隐匿地址的资金被使用时,才会发生这种情况。智能账户是一个1/1的安全账户,允许进行例如gas赞助等操作,使得更容易管理各种隐匿地址。有关此方面的详细信息,可以查看他们的技术讲解。

虽然Fluidkey确实保留了对用户账户的可见性,这在合规性方面可能潜在地成为一种优势,尽管Fluidkey将如何处理未来潜在的执法请求的确切框架尚未公开。他们位于瑞士,尽管须遵守当地法律,但数据保护法律非常清晰且强大——必须有非常明确的理由才能分享数据,并且此事还需经过法院审查(参见这篇文章了解瑞士隐私法的优秀概述)。

用户也完全可以导出他们的交易,或者与第三方(如会计师)共享他们的查看密钥,这对企业尤其有用。值得注意的是,根据erc-5564规范,公共密钥的共享是“全或无”,这意味着它无法单独透露孤立的单笔交易。此外,与所有erc-5564实现一样,可追溯性并未被打破——只是与用户的关联性被打破——这意味着每个隐匿地址的交易历史对于拥有查看密钥的人是公开的。Fluidkey一个不太为人知的功能是能够旋转查看密钥,这将允许用户每月使用一个新的查看密钥,并且只与第三方共享特定月份的查看访问权限。

Fluidkey方法的一个好处是,隐匿地址本身不是由发送者生成的,而是由Fluidkey在每次查询ENS时伪随机生成的。这更快,因为用户不必通过公告事件扫描以识别自己是收件人的交易。这也意味着发送者不需要隐匿地址钱包来为接收者生成隐匿地址——他们只需像其他地址一样发送资金即可。这也意味着没有涉及注册合约,这是Fluidkey设计的独特之处,也是一个主要优势。

值得一提的是,Fluidkey致力于完全自我保管,并且他们已开源了其隐匿账户工具包库,并且在不太可能的情况下Fluidkey一夜之间消失的情况下,还有几个独立开发的恢复接口可用,这意味着资金永远不会被锁定或卡住。

地址抽象

通过使用智能合约账户,Fluidkey可以自动抽象管理各个隐匿地址。这意味着,如果你想从你在各个隐匿地址中的余额中向特定接收者转移特定金额,Fluidkey可以自动计算出用于转移资金的地址组合,处理所有的gas费用和合约部署,所有这些都在后台进行。Fluidkey还允许用户通过一个称为标签的酷功能,对要组合的地址进行一些控制,允许用户将地址标记为不同的类别。

ENS解析

Fluidkey要求用户创建专属于Fluidkey的ENS名称。这些静态名称有两种形式:username.fkey.id和username.fkey.eth,一个是指向发送资金给某人的网页界面的URL,另一个是可以与钱包一起使用的标准ENS名称。

ENS设置使用ENSoffchainresolver(也称为erc-3668:CCIPRead)来返回隐匿地址。每次查询离线解析器时,它会为相应的ENS名称生成并返回一个新的隐匿地址。这是一个很好的功能,因为它允许用户拥有一个单一的人类可读的ENS名称,同时仍然保留隐匿地址的隐私,因为生成的隐匿地址无法追溯到ENS名称。

费用

Fluidkey是免费使用的,不收取费用。当你想要支出资金时,每个有资金的地址都需要部署一个Safe合约的费用。然而,尽管在主网相对昂贵,但在L2上这实际上是微不足道的,通常低于1美分,即使将多个隐匿地址合并为一次转账。

他们还可以通过Safe部署进行gas赞助——他们计算gas的费用,并从用户的余额中扣除,即使它是一个Tokens——在这种情况下,转发者部署Safe并代表用户转移Tokens。UmbraCash

Umbra是Scopelift实现的eip-5564+eip6538。当用户登录Umbra应用时,他们会经历一个设置阶段,在此阶段他们签署一条消息,从中派生出支出和查看密钥及相应的隐匿元地址。然后,他们将此隐匿元地址注册到他们的主钱包地址的链上注册表中。这是实现与Fluidkey的不同之处。

Umbra对erc-5564的实现最接近规范,因为他们无法访问用户的密钥。虽然这意味着Umbra(或其他任何人)无法看到用户的资金,但这确实意味着为了接收资金,发送者必须拥有一个与erc-5564兼容的钱包(或Umbra应用)以生成他们的隐匿元地址。

当有人想要发送资金给用户时,他们通常会使用Umbra应用来完成。基本上,Umbra应用会查找注册到ENS名称/钱包地址的隐匿元地址并生成一个隐匿地址。收件人可以登录Umbra应用并扫描自上次登录以来发送到属于他们的隐匿地址的任何资金。得益于一些巧妙的缓存,这似乎只需10-15秒进行每周扫描,尽管用户也可以选择指定一个区块范围以缩小扫描范围。Umbrav2将包括使用视图标签,这将进一步加快该过程。

转发者

我们之前提到的隐匿地址的一个问题是,为了让收件人支出发送到隐匿地址的资金,该地址需要有ETH或其他必要的gasTokens来支付交易费用。在大多数网络上,如果隐匿地址最初收到了ETH,这通常不是问题。然而,如果隐匿地址收到了erc-20Tokens或NFT,那么用ETH为地址提供gas的行为可能会将该地址与用户的其他地址关联,从而失去隐私。

为了绕过这个问题,Umbra使用了一个涉及转发者的构造。当任何非ETH的资产发送给Umbra用户时,它实际上是发送到一个特殊合约,而不是直接发送到隐匿地址。用户可以通过向Umbra的转发者发送元交易(来自Umbra应用)来支出发送到他们隐匿地址的资金,转发者将代表用户从智能合约中转移资金。转发者将扣除一些Tokens以覆盖gas费用的成本,并且最初仅支持一定数量的Tokens。

费用

Umbra合约在低交易费用的网络上转移资金时也会收取少量费用,以抑制垃圾邮件。其理由是,垃圾邮件会增加扫描交易以识别相关交易的成本,因此这被视为一个可接受的权衡。

支持的网络

Umbra目前已部署在Ethereum主网,以及Optimism、Polygon、GnosisChain和Arbitrum。

Umbra注册合约具有有趣的设计。部署方法使用create2和标准create2部署器,智能合约地址在任何网络上都是相同的。这意味着如果合约在给定网络上存在,则客户端可以确保这是正确的合约。客户端可以配置以添加网络,任何人都可以部署到任何网络。他们已经规范化了字节码,合约没有所有者,这允许任何人在任何链上无权限地部署注册和公告合约。

Umbrav2

Scopelift目前正在开发Umbra的第2版,该版本引入了一种新的模块化架构,允许核心合约扩展以支持新的Tokens标准或非支付用例。使用这种新架构,第三方开发者可以为任何类型的Tokens标准构建模块,例如erc-1155、erc-7621、支持erc-4337付款方,或你能想到的任何其他内容。目前,Umbra核心合约支持两种场景,一种用于ETH,另一种用于erc-20。V2将支持许多不同的场景。Labyrinth

Labyrinth是一个不基于eip-5564+eip6538的协议,而是使用零知识证明为交易增加匿名性和隐私。Labyrinth的白皮书将其描述为“zkFi”中间件:“zkFi提供了一种打包解决方案,充当具有内置合规性的隐私中间件”。内置合规性指的是Labyrinth的“选择性去匿名化”,这是一种复杂的解决方案,允许某些交易对特定授权方(即法律机构如国际刑警等)去匿名,同时保持透明和开放。

Labyrinth使用的核心智能合约包括一个多交易和多资产池,允许用户在单个交易中交易多种资产。为了支出资产,用户扫描网络并获取加密的票据数据,解密票据,并过滤出他们想要支出的资产。随后,用户创建一个ZKP,其中包括交易和与他们想要支出的交易相关的票据的签名密钥。

Labyrinth核心合约的一部分包括一个转换合约,它与模块化代理合约接口,这些合约基本上是外部合约的代理。因此,例如:如果用户想使用Labyrinth与Uniswap交互,用户将构建一个交易,该交易将使用转换合约通过Uniswap的代理合约调用Uniswap池上的交换操作。

Labyrinth的zkFi协议使用“票据”来跟踪余额和转移。票据本质上是描述某种资产的某个数量及其所属地址的数据结构。客户端存储重建票据所需的信息,并使用此信息支出资产。对票据的承诺(资产ID、所有者和价值的哈希)存储在链上的默克尔树中。实际上,Labyrinth使用两个默克尔树,一个用于票据,一个用于根地址。

笔记数据结构包含以下内容:

assetId:此笔记代表的资产的标识符(ETH、WBTC、MATIC等)。

value:笔记所代表的价值或金额。

leafIndex:此笔记将被插入的承诺默克尔树的叶节点索引。

blinding:一个随机的保护因子。

rootAddress:拥有支出权限的用户的根地址。

revoker:所选撤销者的公钥点。

你会注意到,上述数据结构并未包含资产的所有者的任何引用,这很奇怪,因为在笔记默克尔树中记录的承诺是资产ID、价值和所有者的哈希。实际上,所有者是从根地址、撤销者和随机保护因子计算得出的,因此对于外部观察者而言,所有者实际上是每个新交易生成的一个新地址。

保护池

关于Labyrinth,特别有趣的是,它与传统的基于隐秘地址的协议略有不同,资产池实际上是一个保护池,它利用笔记的概念创建了一种屏蔽的UTXO池,从而为交易提供了前向保密性。回想一下,在eip-5564实现中,用户转账的对象将能够查看这些资金的来源。换句话说,Alice用隐秘地址支付给Bob,Bob再支付给查理,因此查理现在可以看到Bob最初从Alice那里收到这些资金,等等。Labyrinth的保护池并非如此。

要理解这个保护池是如何工作的,我们需要看看在协议内部资金是如何转移的:

用户在保护池中的余额是相应资产的笔记之和。为了花费这些笔记,用户需要揭示那些笔记的“无效标识”。无效标识是唯一与笔记相关的,一旦该笔记被花费,该无效标识就被标记以防止双重消费,并根据该已花费的笔记创建一个新笔记。相同资产的多个笔记可以合并,还可以创建多个新笔记。无效标识就是(?,?,?)的哈希,其中?是在笔记默克尔树中笔记承诺的索引,?是承诺,?是一个随机元素,也称为保护因子。

隐秘交易转账的接收者通过与eip-5564相同的方式识别转账,因为他们监听从核心合约发出的事件,并确定他们将能够从中发送资金的隐秘地址,并在本地记录这些地址。通过利用视图标签和在应用程序生命周期内异步本地缓存和同步笔记,识别来款资金的速度也得到了提升。

目前正在进行研究,以加快发现接收资金的过程,看看Aztec的这个提案:RequestforProposals:NoteDiscoveryProtocol—Aztec。

在花费资金方面,用户还必须生成一个zk证明,这与基本上是普通Ethereum地址的erc-6654实现不同。生成证明需要一个兼容的钱包,性能相对较好,在中档Android设备上大约需要20秒左右。

打包商和转换器

Labyrinth提供了一些不错的功能,可以解决隐秘交易中的一些痛点。发送到Labyrinth核心合约的交易作为用户操作通过erc-4337打包商发送。此设置允许在不需要ETH或交易的gasTokens的情况下花费笔记,因为用户可以利用erc-4337支付者为他们支付gas,从而增加了一个额外的隐私层。唯一的例外是初始存款,它不会作为用户操作提交。使用erc-4337支付者的另一个好处是能够通过被转移的资产支付gas,即使它们是erc-20Tokens,因此Labyrinth公开了一个gas价格预言机API。

Labyrinth的另一个非常好的功能是其模块化架构,允许转换器合约作为第三方去中心化应用的代理。这不仅允许用户使用隐秘交易转移资金,还可以与第三方去中心化应用(例如DEX,如Uniswap、Aave、Lido等)进行交互。这些代理“转换器”合约本质上实现了一个函数,接收入量某种资产,并输出一些资产,基础逻辑存在于某个第三方合约中。

合规解决方案

Labyrinth通过一个名为选择性去匿名化(SeDe)的框架确保合规和监管的遵循。

回想一下,笔记的数据结构包含一个名为“撤销者”的字段。撤销者是可以启动去匿名化过程的特定实体的地址。用户必须从预定义列表中选择至少一个撤销者。撤销者并不单独负责识别潜在的*非*法或不当活动,但可以响应执法机构的请求。

撤销者没有单独的能力直接去匿名化交易,但他们负责发起去匿名化请求。这些请求公开发布给监护人,监护人是一个监督隐私和合规性的实体委员会。监护人必须通过投票决定是否允许去匿名化交易。如果监护人可以达到法定人数并投票支持,则撤销者可以解密交易数据,从而将相关交易与先前的交易联系起来,直到交易链被完全去匿名化为止。

这个系统创建了一系列制衡机制,因为监护人不能单独决定揭示交易数据,即使他们勾结,也无法在没有撤销者的情况下做任何事情,而仅凭撤销者也无法在监护人多数投票的情况下做任何事情。Railgun

RAILGUN是一个在Ethereum、币安智能链、Polygon和Arbitrum上部署的隐秘交易隐私系统。该协议在某些方面类似于Labyrinth,因为它是基于笔记,这些笔记作为承诺存储在默克尔树中,形成一个UTXO集,即通过创建新的笔记供其他接收者支出。这意味着只有笔记的所有者可以计算其无效标识,而无效标识往往是根据支出密钥和笔记在默克尔树中的索引的哈希来生成的。

Railgun中的隐秘元地址使用“0zk”的前缀,类似于eip-5564,这是公共查看密钥和公共支出密钥的组合。然而,Railgun在BabyJubJub曲线上使用Ed25519密钥,而不是ECDSA和secp256k1。就像eip-5564一样,用户在Railgun合约中扫描所有发出的事件,并使用他们的查看密钥确定哪些事件代表转账到他们的钱包。

Railgun使用一个广播者网络,这些广播者实际上是接收用户的元交易并将实际交易广播到相应Blockchain的中继者,以代表用户支付gas费用。用户到广播者的交易是加密的,并使用Waku协议进行通信,保护最终用户的匿名性。

Railgun采用模块化架构,允许它与外部智能合约进行交互,从而提供超越简单转账的功能。它通过AdaptRelay合约实现这一点,该合约在与外部合约进行交互之前和之后对Tokens进行保护和解除保护,例如,解除保护TokensA,在某个AMM上交换TokensB,将TokensB保护回来给原所有者。

在版本3中,Railgun计划利用eip-4337,并支持传统的元交易。他们希望通过为Railgun维护一个专用的eip-4337userop内存池,使独立解决者能够作为广播者参与其中。他们目前正与Umbra合作研究此问题,并识别边缘案例及如何解决它们,更多细节请参见下面的Railgunv3部分。

费用

Railgun协议对存款和提款收取0.25%的费用。这些费用将发送到DAO库房,这些费用会随着时间推移支付给RAIL治理Tokens的质押者。除了0.25%的存款和提款费用外,广播者通常还会收取自己的费用,而这些费用通常约为实际链上交易的gas费用的10%。

治理

Railgun具有治理系统,允许提交任何形式的提案,任何核心合约(包括财政和治理合约)的更改都必须经过DAO提案才能进行。不寻常的是,Railgun的不同实例有各自的治理。例如,Railgun在Ethereum、Polygon和币安链上有各自独立的治理系统和Tokens。

SDK和Cookbook

Railgun提供了一套全面且文档完备的SDK,钱包或DApp开发者可以使用它通过对Railgun的支持来构建隐匿地址功能。Railgun还有一个由社区维护的cookbook,提供“配方”,允许DApp开发者为Railgun提供模块,使用户能够使用Railgun与他们的DApp进行交互。例如,开发者可以为DEX编写一个配方,使得在Railgun中拥有Tokens余额的用户可以私密地交换Tokens。

RailGunv3

Railgun的下一次迭代将使交易成本下降50%至60%。版本3中的其他更改是支持eip-4337userops,通过专用内存池来实现。此外,v3将支持基于意图的架构,允许解决者竞争最佳执行,尽管截至撰写时,细节仍非常高层次。他们目前正在与CowSwap合作,计划使用前置和后置钩子来允许解决者访问资金。

RailgunConnect

可以说,提议中最有趣的变化是名为RailgunConnect的工具,它类似于WalletConnect,允许0zk地址连接到大多数前端进行私有使用,无需这些DApp通过自定义模块显式提供与Railgun的集成。

RailgunConnect是一个浏览器扩展,它的实际操作是使用HardHat本地复制链的状态,并将其自己的web3提供者注入到DApp中,具有本地HardHat版本链的RPC端点。这使得你可以像往常一样与DApp合约进行交互,记录交易,然后将其批处理并创建snark证明,并将其发送到实际链上的Railgun合约。虽然这个描述稍显简单,但它传达了总体思路。这使你能够基本上与几乎任何DApp进行交互(对于需要额外链下处理的DApp可能有一些边缘情况)。需要注意的是,本地保存链的状态是一项耗费资源的操作,但一旦完成,你就可以使用Railgun的隐匿地址与DApp进行交互,而没有和使用普通钱包的任何不同。结论

关于在Ethereum协议中确立隐匿地址,目前有一些有趣的提案。例如,Inco使用了一个erc-20“包装器”的概念,该包装器对普通的erc-20合约进行封装,并加密所有余额。转帐和批准均在加密状态下通过全同态加密进行。Inco依赖于目前仅存在于其自身网络上的预编译,但将来可能会转移至Ethereum。

还有另一个提案叫做EIP-7503:Zero-KnowledgeWormholes,其基于一种称为“燃烧证明”的设计,尽管这一提案似乎并未获得广泛关注,可能因为它需要对EVM进行更新,而没有此更新,它实际上只能在Tokens层面实现,使用专门支持eip-7503的erc-20设计(或者如果某个L2决定为其EVM操作码添加支持)。

Aztec可能是目前最复杂的隐私技术,但需要用户将资金桥接到Aztec才能使用,这对大多数用户来说可能并不可接受。然而,如果Ethereum用户对基本交易隐私的需求增长,那么Aztec可能会具备独特的价值主张,成为一个非常有价值的L2,因为DApp和用户迁移到一个默认提供隐私的平台。

同样,Intmax是一个以隐私为中心的EthereumL2(基于Plasma设计),它还有一个合规监管的方面,通过ZKP基于AML证明验证个人资金的合法性,并对交易金额施加限制。Intmax在为转账提供隐私方面有限制,而EVM智能合约操作则不具备隐私。然而,与Aztec不同,智能合约可以在Solidity中编写,一些开发者可能偏好这种方式(取决于用例)。

钱包支持

虽然我们看到隐匿地址协议的采用增加,这是一个积极的信号,但仍然有许多挑战。最重要的挑战是它们尚未在主流Ethereum钱包中得到全面支持(至少目前尚未)。主流钱包在提供对隐匿地址的支持时可能需要做出几个选择。这些选择包括:

他们会为单一实现提供意见性的支持,还是会建立并维护某种跨多个协议的综合聚合器?后者在开发和维护方面可能代价高昂。

是否会有监管考量,是否需要在选择性去匿名的范围和机制上采取立场(例如Labyrinth的情况)?

隐匿地址需要一个链上组件,通过注册合约(Fluidkey除外),这意味着每个EVM网络必须明确得到钱包的支持(尽管Umbra的设计便利了注册表的无许可部署)。

隐匿地址使得与区块探测器(例如Etherscan)的现有集成变得更加复杂。例如,“在探测器上查看”按钮将不适用于隐匿元地址,因为钱包显示的是汇总余额。这个问题在转账中也可能存在。这些边缘案例需要被认真考虑。

根据底层实现,用户仅能够有效地与特定的一组DApp使用隐匿地址,即那些受到底层协议支持的DApp。模块化隐匿地址架构将使这一点成为可能。然而,并非所有DApp都会被支持,并且需要以某种方式通知用户。使用eip-5506时这一点相对容易,但仍然会有复杂性和边缘案例,这可能会渗透到钱包的用户体验中。

在防止用户隐私卫生不良方面也有改进的空间,请参阅本文:“AnonymityAnalysisoftheUmbraStealthAddressSchemeonEthereum”,作者成功地对Ethereum主网上的48.5%隐形交易进行了去匿名化。他们使用的启发式方法与协议无关,而更多是关于隐私卫生,例如用户将资金发送到他们控制的隐形地址,然后将这些资金发送回最初的发送地址,错误地认为可追踪性已经被打破。总体而言,作者确定了6种不同的启发式方法可以用于去匿名化隐形地址交易,主要都是基于不遵循最佳实践。然而,这些都是需要解决的关键用户体验问题。

总体而言,我对隐形地址以及Ethereum中的隐私相当看好。我认为我们取得了相当令人印象深刻的进展,并发现了一些非常可修复的挑战。我相信主流钱包将找到提供隐形地址支持的方法,让用户可以轻松使用这些地址,享有用户所期待和应得的正常隐私水平。

感谢所有在研究和构建隐形地址基础设施方面投入时间和辛勤工作的团队,包括我在这篇文章中提到的四个协议。他们的努力和坚韧将对Ethereum产生巨大影响!

Copyright © 2021.Company 元宇宙YITB.COM All rights reserved.元宇宙YITB.COM