互动式无选择加入隐身地址

本文为机器翻译
展示原文

为了避免混淆,请注意,这与 ERC-5564 隐身地址不同,在 ERC-5564 隐身地址中,发送方会为非交互式接收方计算隐身地址。

概括

  • 在这个想法中,接收者计算地址并与发送者共享(不涉及隐私,使用像Metamask、交易所、公共钱包这样的遗留系统)。

  • 这是一个可以在现有隐私方案基础上构建的应用程序。

  • 为了保持隐私,你的交易对象无需使用基于隐私的钱包。但你需要底层隐私方案拥有足够大的匿名集。

  • 该应用程序可以与使用 ERC-6538 的其他隐私方案互操作,使其能够与使用自己的隐私方案、无隐私方案以及可能其他隐私方案的用户一起工作。

动机

大多数隐身地址解决方案都是由双方用户共同选择加入的,也就是说,双方用户都需要遵循相同的协议或规则。协议有很多,例如 Aztec、ERC-5564、Railgun、Tornado Nova、zkBoB 等等。

因此,如果 A 想要向 B 付款,那么两个角色都必须注册相同的协议。如果我们假设如此,那么一切就都美好了,但实际情况是,大多数人不会使用任何隐私协议,即使有人使用,也可能不是你使用的那个。

目前的解决方案:

  • 用户加入多种流行的隐私协议,以便与任何人兼容。

  • 用户只需在公共以太坊上创建多个钱包地址,所有交易均公开。虽然资金被分散存放,以防止他人知晓您的真实余额,但用户可以从任何人处接收资金。但必须注意,这些地址之间不要直接连接,也不要使用 Tornado Cash 之类的工具。

  • 只需将资金存放在集中交易所即可接收任何人的存款。

在支付领域,隐私保护的一大挑战在于,要求支付参与者(付款人和收款人)都使用支持相同协议的软件。这导致用户出于隐私协议的新颖性而注册,但最终用户大多会进行公开交易,因为他们的互动对象并未注册,除非他们很幸运地遇到注册了相同系统的同伴。

抽象的

这篇文章探讨了一种潜在的解决方案,它允许用户选择加入,以保持其余额的合理隐私,同时允许他们向公共以太坊地址发送或接收资金。该解决方案是一款应用程序,可以构建在任何现有的基于UTXO的隐私​​方案之上,例如tornado nova。即使该应用程序至少集成了一个钱包,也可以。用户可以自行生成多个EVM地址。他们与发送者交互,并向其提供一个新的地址。该地址是使用CREATE2预先计算的。一旦收到资金,钱包软件就会使用中继器将资金收集到底层隐私方案中,创建一个UTXO,用户可以在未来的交易中使用。

这个解决方案是交互式的。在大多数日常用例中,例如向朋友或客户付款,都需要交互,因为人们仍然会问“你想在主网还是某些特定的二层网络?更喜欢ETH 、 Dai还是USDC?”。在这里,用户将自己生成一个新地址并将其提供给发送者,这就是交互。CREATE2 隐身地址不需要是 EIP/ERC,因为它更像是一个应用程序,其他用户无需选择遵循某些新协议。

它是如何工作的?

我可以链接到去年的 PoC 中的代码来表达一些细节。

1. 用户加入本系统

用户安装遵循所述协议的软件。它会生成一个 32 字节的密钥并将其存储以备将来使用。

2. 用户希望从客户那里收到钱

用户生成一个新的隐身地址,该地址的生成方式如下:

  1. 两个词的哈希值:32 字节的秘密和 32 字节的随机数(可以是增量的)

  2. 哈希是 32 字节盐,与 CREATE2 一起使用以获取地址https://github.com/ultralane/contracts/blob/b8e17ce7099ffb358488579927308d5f73716dc3/contracts/MixerPool。sol # SOL-L166

  3. 用户(接收者)通过向发送者发送 EVM 地址来与发送者进行交互。

  4. 发送者可以以任何他们想要的方式向该地址发送资金,通过Metamask、从交易所提款或从隐私方案提款。

3. 用户从客户处收到钱

  1. 这笔钱被发送到一个预先计算的地址,该地址是/将是一份合同。https : //github.com/ultralane/contracts/blob/b8e17ce7099ffb358488579927308d5f73716dc3/contracts/StealthAddress。sol

  2. 用户的钱包软件一旦上线并注意到隐身地址上的余额:

    1. 它根据底层隐私方案的规范生成一个秘密记录。通常,此类记录包含秘密、金额以及用于防止冲突的随机绑定。https ://github.com/ultralane/circuits/blob/42e39cd95345c6c47ee8b363854262ab03f29731/lib/src/note.nr#L3-L7

    2. 它在本地证明用户知道盐的原像。

    3. 它还添加了注释承诺,以便中继器无法篡改它(此部分在 PoC 中不存在)。

    4. 然后将该有效负载提供给中继器,该中继器调用池上的函数,从而进行公开交易,将资金转移到用户可使用的隐私池中。https ://github.com/ultralane/contracts/blob/b8e17ce7099ffb358488579927308d5f73716dc3/contracts/MixerPool.sol # L133-L160

    5. 此外,隐身地址还可以在 ERC-6538 注册表中注册。这样,将来从某些选择加入隐私保护的用户向该地址转账时,就可以使用更高效的路径。

用户想要汇款

  • 用户的钱包软件可以使用 ERC-6538 注册表检查该地址是否为隐身地址以及属于哪种类型。如果发现使用了受支持的隐私协议,则进行处理。

    • 如果使用底层隐私方案,则直接花费 UTXO 创建接收方可根据底层隐私协议的规范花费的新 UTXO。

    • 如果那是 ERC-5564:隐身地址,则根据协议和隐身地址计算接收地址。

    • 否则,该地址不使用任何隐私方案,因此只需将资金提取到该地址即可。

结论

  • 如果以非交互方式接收来自陌生人的捐款,此解决方案无法直接起作用。例如,在 GitHub 自述文件中放置任何资金的地址。因为所有到同一地址的交易都将可见。这正是 ERC-5564 的闪光点,因为发送者在这里创建一个新地址,但是它需要发送者选择加入。用于捐款。在存储库中,人们通常会列出许多地址,例如BTC、 ETH、 Monero,他们可以列出隐私方案 Railgun 的另一个 x 地址或更多,而不是ETH地址(因为用户可能不知道隐形地址或正在使用过时的钱包软件)。

  • 可以使用 ERC-6538 和其他隐私方案将 CREATE2 隐身地址与 ERC-5564 结合起来。基本上,在资金收集过程中,CREATE2 隐身地址可以在注册表中注册多个隐私方案。我意识到 ERC-6538 实际上非常强大,可以让钱包与多个隐私方案互操作。

  • CREATE2 隐身地址与其他 EOA 无法区分,直到其中的资金被收回为止(最终会被收回)。因此,有人可以通过扫描区块链轻松找到已使用的隐身地址,并追踪发送到隐私池的资金。

  • 当然存在向中继器透露 IP 的问题。


相关赛道:
来源
免责声明:以上内容仅为作者观点,不代表Followin的任何立场,不构成与Followin相关的任何投资建议。
喜欢
收藏
评论