我喜欢更多关于 RPC 级隐私的研究。 这是以太坊隐私中研究不足、未被充分重视的部分,值得解决方案。 不幸的是,轮换 RPC 不是那个解决方案,至少在此处描述的形式中是这样。原因如下 🧵
简单的想法:在钱包和RPC提供者之间设置一个服务器。该服务器为每个请求随机使用不同的RPC。 在TEE中运行这个🔒!云端看不到你的请求(小心,它们仍然有元数据!)- 而RPC看不到你的IP(他们看到的是云端的IP)
问题 1: 任何服务提供商都不应能够将您的以太坊地址与您的 IP 地址关联。 问题 2: 任何服务提供商都不应能够将您的两个以太坊地址相互关联。 在隐秘地址的背景下尤其重要。
第一个提议的解决方案并没有解决任何问题。 事实上,它使问题1变得更糟:现在不仅有一个提供者知道你的IP和以太坊地址,而是多个这样的提供者都知道这两者。
我看到实现轮换RPC的两种方法: ➡️ 1. 直接在钱包中实现此功能。 优点 👍 • 快速 • 缺点 👎 • 这无法适应任何钱包,因为每次都需要实现。 • **更重要的是** RPC仍然可以看到用户的IP
第二个解决方案通过在可信执行环境(TEE)中引入中间件来解决问题1。它本质上是一个盲代理,盲性由TEE提供。 但问题2仍然没有解决:提供者仍然可以将您的以太坊地址相互关联。
简单的想法:在钱包和RPC提供者之间设置一个服务器。该服务器为每个请求随机使用不同的RPC。 在TEE中运行这个🔒!云端看不到你的请求(小心,它们仍然有元数据!)- 而RPC看不到你的IP(他们看到的是云端的IP)
TEE并不是万无一失的。但即使我们假设它们按预期工作,客户端仍然需要验证他们所连接的中间件是否确实在TEE中运行。否则,客户端(钱包)无法确保中间件并没有实际记录所有内容。
客户可以通过执行工作负载证明舞蹈来验证这一点。这是可能的,但实现起来很复杂。 我还没有看到这一点在实践中的真实实现,我不清楚这是否比直接集成一个实际的混合网络更容易实现。
代理应该对其传递的内容保持盲目。密码学在不需要 TEE 信任假设的情况下解决了这个问题。 像 Tor/Nym/HOPR 这样的混合网络就是这样工作的:在多层加密中加密有效载荷,每一跳去掉一层洋葱加密。
为什么今天不使用混合网络? - 用户并不要求他们的钱包开发者提供RPC级别的隐私。Walletbeat解决了这个问题。 - <100ms的RPC用户体验期望。混合网络/中间件增加了延迟。 - 在浏览器钱包中集成需要在JS中重新实现TLS以加密最后一跳。
混合网络单独也无法解决问题2。 问题在于,天真地轮换RPC(每次请求随机提供者)实际上对隐私来说是更糟糕的:这意味着多个提供者会随着时间的推移看到你多个地址的情况。
更好的解决方案:对于关于 `address` 的 RPC,总是将其发送到提供者 #`hash(address) modulo num_providers`。 换句话说,关于同一地址的查询会发送到同一个 RPC 提供者。 这确保没有提供者能够了解您完整的地址集。
拥有的提供者数量超过地址数量也是更好的选择。这样,每个提供者要么只了解你的一个地址,要么什么都不知道;绝不会知道多个地址。 但真正的解决方案是什么? - 运行你自己的节点! - 请你的钱包开发者开始关注RPC级别的隐私。
我没有涵盖但也很重要的事情: - RPC时序关联攻击。 - 钱包在单个RPC中查找多个地址的余额。 - 泄露类似数据的非以太坊请求。今天的钱包充满了这些;问我怎么知道的。 - 具有集中端点的L2。(哈哈)
即使这个讨论看起来对@jimouris的工作持批评态度,我想强调这并不是为了贬低他。 我非常尊重任何真正愿意解决这个问题的人。这是一个研究不足的问题,需要更多关注,因此看到有人在努力解决它让我感到欣慰。
查看原文
3,068
25
本页面内容由第三方提供。除非另有说明,欧易不是所引用文章的作者,也不对此类材料主张任何版权。该内容仅供参考,并不代表欧易观点,不作为任何形式的认可,也不应被视为投资建议或购买或出售数字资产的招揽。在使用生成式人工智能提供摘要或其他信息的情况下,此类人工智能生成的内容可能不准确或不一致。请阅读链接文章,了解更多详情和信息。欧易不对第三方网站上的内容负责。包含稳定币、NFTs 等在内的数字资产涉及较高程度的风险,其价值可能会产生较大波动。请根据自身财务状况,仔细考虑交易或持有数字资产是否适合您。