热门话题
#
Bonk 生态迷因币展现强韧势头
#
有消息称 Pump.fun 计划 40 亿估值发币,引发市场猜测
#
Solana 新代币发射平台 Boop.Fun 风头正劲
我喜欢更多关于 RPC 级隐私的研究。
这是以太坊隐私中研究不足、未被充分重视的部分,值得解决方案。
不幸的是,轮换 RPC 不是那个解决方案,至少在此处描述的形式中是这样。原因如下 🧵

7月24日 23:44
简单的想法:在钱包和RPC提供者之间设置一个服务器。该服务器为每个请求随机使用不同的RPC。
在TEE中运行这个🔒!云端看不到你的请求(小心,它们仍然有元数据!)- 而RPC看不到你的IP(他们看到的是云端的IP)

问题 1: 任何服务提供商都不应能够将您的以太坊地址与您的 IP 地址关联。
问题 2: 任何服务提供商都不应能够将您的两个以太坊地址相互关联。
在隐秘地址的背景下尤其重要。
第一个提议的解决方案并没有解决任何问题。
事实上,它使问题1变得更糟:现在不仅有一个提供者知道你的IP和以太坊地址,而是多个这样的提供者都知道这两者。

7月24日 23:44
我看到实现轮换RPC的两种方法:
➡️ 1. 直接在钱包中实现此功能。
优点 👍
• 快速
• 缺点 👎
• 这无法适应任何钱包,因为每次都需要实现。
• **更重要的是** RPC仍然可以看到用户的IP
第二个解决方案通过在可信执行环境(TEE)中引入中间件来解决问题1。它本质上是一个盲代理,盲性由TEE提供。
但问题2仍然没有解决:提供者仍然可以将您的以太坊地址相互关联。

7月24日 23:44
简单的想法:在钱包和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的工作持批评态度,我想强调这并不是为了贬低他。
我非常尊重任何真正愿意解决这个问题的人。这是一个研究不足的问题,需要更多关注,因此看到有人在努力解决它让我感到欣慰。
4.89K
热门
排行
收藏