这篇文章详细介绍了以太坊的隐私交易解决方案——ERC-5564中隐形地址的概念和实现方法。通过理清隐形地址的原理以及使用Umbra Cash进行实操演示,读者能深入理解如何增强交易的隐私性。同时,文章还讨论了ERC-5564实施的标准和与其他隐私协议的比较,为感兴趣的开发者提供了实用的参考。整体内容结构清晰,包含了必要的链接和示例,适合有一定以太坊基础的读者。
区块链革命性地改变了交易的追踪方式;然而,它们也带来了一个潜在的问题:用户隐私的缺乏。由于每笔交易和钱包地址都对任何查看区块链的人可见,因此关注其活动公开曝光的个人和组织需要找到解决方案。这里介绍了ERC-5564,这是一个旨在引入私有地址(即隐蔽地址)标准的以太坊改进提案。本指南探讨了隐蔽地址的基本概念,重点关注 ERC-5564 提纲中的框架。此外,还将提供利用 Umbra Cash 的实践演示,展示使用隐蔽地址的实际应用。
要快速理解 ERC-5564 中的隐蔽地址的概念,让我们覆盖一个假设场景,涉及两方:Alice(Alice)和 Bob(Bob)。假设 Alice 想将资金秘密发送给 Bob,而不在链上留下直接指向 Bob 已知地址(例如 bob.eth)的证据。
要通过隐蔽地址做到这一点:
这个过程(如果处理得当)会看起来像是一次向一个随机钱包的交易,从而掩盖了与 Bob 的直接联系。请注意,虽然此方法有效地模糊了 Alice 和 Bob 的地址之间的关系(不可链接),但并未完全隐蔽交易轨迹(不可追踪)。实现不可追踪性通常需要更复杂的机制,如资金混合,这超出了隐蔽地址的范畴。同样,重要的是要记住隐蔽地址是区块链中的一个微妙概念,与其他隐私协议(如 Monero(隐私币)和 Tornado.cash(一个实现不可追踪交易的智能合约))不同,这些协议通过资金池或使用其他加密原语来匿名化交易。此外,虽然隐蔽地址可以增强隐私,但用户仍需采取标准的隐私预防措施,例如避免直接从个人地址和隐蔽地址进行交易(否则,这将违背使用隐蔽地址的目的)。
隐蔽元地址本质上是由两对密钥组合而成:一对用于 支出(控制资金),一对用于 查看。发送者使用每个相关密钥集的公钥通过隐蔽地址将资金发送给接收者。支出和查看密钥集的相应私钥应由接收者保密,因为它们可用于查找和控制隐蔽地址。
这些密钥的具体长度和结构可能会有所不同,因为 ERC-5564 旨在适应不同的加密方法,然而,这里是一个隐蔽元地址的示例:
st:eth:0x03d8aa420cb1fa5ca86397f84b2990276b8bd0b379793a0092cd664f03c28d067a03fbd90600c993cc02635eccb9d872ff100adced6144497c7548f712b8b57a2399
隐蔽元地址是两个标准以太坊地址的组合。前缀 st:eth 代表 EIP-3770 中的标准。
在 Alice 和 Bob 的示例中,上面的隐蔽元地址由 Bob 生成,可以与发送者(即 Alice)共享,后者将从中生成隐蔽地址。
相应的支出和查看密钥集可以是这样的:
支出私钥: 0x596b90994791623a08f25c2ea709ad0a35b865893e9508fb450698acd47472fa
查看私钥: 0x74a08ee7e9097ee3da4124a5c340a35b9da698654bdd5b7b0135816e995aeca6
支出公钥: 0x02f3309b76677ea657f82a93414e3a23e76c156148d6586c62c415968e4bda1008
查看公钥: 0x0237e3c2166535144583fe86737a8d652051485cee656d813ac3fad1e0f7bde8dd
在 Alice 和 Bob 的上下文中,上述密钥对集与隐蔽元地址同时生成。私钥对集应由 Bob 保密,将用于查找和控制隐蔽地址中的资金。公有的 支出 和 查看 密钥都是隐蔽元地址的一部分(这两对密钥的组合构成隐蔽元地址)。
你可以在 这里 生成自己的地址以供测试。
如前所述,隐蔽地址并不像 Monero 和 Tornado.cash 等其他复杂隐私协议那样私密,这些协议提供了不可追踪性和不可链接性,但它们仍然可以在以下用例中发挥作用,例如:
ERC-5564 为隐蔽地址的生成和交互设定了标准化。这种标准化使用户能够生成隐蔽地址,并允许接收者通过解析有效地找到他们的隐蔽地址,减少了必须导航各种加密方法以获取地址派生的需要。该标准还支持了不同加密方案的采用,例如:
ERC-5564 的完整智能合约可以在 这里 找到。
与 ERC-5564 一并提出了另一个以太坊改进提案:ERC-6538:隐蔽元地址注册处,该提案重点建立一个标准化的“注册”合约,作为用户存储和发布他们的隐蔽元地址的中心。该注册处旨在促进智能合约以编程方式访问这些元地址。ERC-5564 的目标是与 ERC-6538 协同工作,以实现对隐蔽地址的完全部构成的智能合约框架。
在开始之前,我们建议你在 QuickNode 创建一个 RPC 端点,这样你可以与区块链进行优化和安全的 RPC 通信,而不是采用可能限制速率或共享数据的公共端点。你可以在这里 创建一个免费的端点,并将 RPC URL 添加到你将用于创建隐蔽地址的钱包(例如 MetaMask)中。
为了在以太坊上演示隐蔽地址,我们将展示如何使用 Umbra Cash。请注意,Umbra 使用与 ERC-5564 中 secp256k1 实现指定的略有不同的机制来生成隐蔽地址,但这仍然是展示隐蔽地址的良好方式。
你需要在主网(或任何他们支持的链)上有一定的 Ether,以及两个钱包地址(以模拟隐蔽交易)。为了享受隐蔽地址所提供的 不可链接性,你应使用没有历史关联的钱包。
步骤 1. 设置接收地址:我们需要为接收者设置一个接收地址,这本质上就是为接收者创建一个隐蔽元地址。首先,导航到 Setup 页面。你需要连接钱包,签署一条消息(这将创建一对专属于 Umbra 的私钥),并最终提交一笔交易,将你相应的公钥上链,以便用户可以向其发送隐蔽付款。
步骤 2. 发送资金:接下来,导航到 Send 页面。由于我们正在模拟一次隐蔽转账,你需要断开用于设置隐蔽地址的钱包,并连接一个与接收者的钱包没有任何关联的不同钱包。这将是接收人的个人地址(例如,bob.eth)。然后,输入你要发送的地址、代币类型和金额。然后,点击 Send 按钮。或者,你可以复制付款链接,该链接会为用户自动加载一个发送页面,或查看你的发送历史。
步骤 3. 接收资金:你可以导航到 Receive 页面并使用你之前用于设置隐蔽地址的钱包重新登录。如果上一步中的交易得到确认,你应该会看到类似下面的可用付款:
你将能够将资金提取到任意以太坊地址。这理想情况下应该是一个新的中心化交易所钱包或另一个未与你在创建隐蔽地址时使用的地址有关联的以太坊钱包(否则,这将违背使用隐蔽地址的目的)。
其他实现隐蔽地址的 Web3 协议包括:
在下一部分,通过完成测验来测试你的知识。
🧠 知识检查
隐蔽地址在区块链交易中主要用于什么?
提高交易速度 减少交易费用 增强交易的隐私性 公开记录交易以增强透明度
就是这样!希望本指南更好地教会你以太坊上的隐私和交易!
如果你有任何问题,请查看我们的 Discord 服务器或使用下面的表单提供反馈以获取帮助。通过关注我们的 Twitter (@QuickNode) 和 Telegram 公告频道,了解最新动态。
告诉我们 如果你有任何反馈或对新主题的请求。我们很想听到你的声音。
- 原文链接: quicknode.com/guides/eth...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!