Web3隐私,99%的人都理解错了

作者:Yash Chandak

原标题:Stop Saying ‘We Need Privacy

编译及整理:BitpushNews


1770942858912.jpg

如果你的钱包是公开的,你的生活就是公开的。人们可以盯着你的余额、你的交易、你的仓位以及你的入场时机,然后轻飘飘地说这“仅仅是数据”。这就是为什么“隐私”总能作为一个经久不衰的叙事反复回归。

问题在于,“隐私”并不是单一的功能。它其实是五个截然不同的问题。

写这篇文章是为了帮助你理解,下一次当你在推特上发“我们需要隐私”时,你到底在要求什么。

image.png

当人们提到隐私时,他们往往指代的是完全不同的东西:

  • 意图隐私(Intent privacy):观察者不应该在你的交易成交前看到它。

  • 价值隐私(Value privacy):你的薪水、净资产或交易规模不应被轻易观察到。

  • 状态隐私(State privacy):仓位、清算阈值、金库状态和库存默认不应公开。

  • 执行隐私(Execution privacy):不应通过你触发了哪些路径以及如何触发,来推断出你的策略。

  • 图谱隐私(Graph privacy):观察者不应能够绘制出你付钱给谁、捐款给谁或与谁协作的地图。

许多“隐私协议”只解决了其中一两个问题,却泄露了其余部分。大多数泄露发生在边缘地带:钱包、远程过程调用(RPC,即钱包与区块链之间的桥梁)、中继器、跨链桥、交易所,以及人类行为的可预测性。

这是一个让行业图景变得清晰的框架:先确定你想要保护的表面,然后再寻找保护该表面的工具。

意图隐私

在许多链上,交易并不是直接从你的钱包进入区块的。相反,它首先会待在一个被称为“内存池(mempool)”的公开等待室里,待处理交易在被打包之前在这里是可见的。如果你能看到待处理的兑换(swap),你就能针对它们做出反应。这为最大可提取价值(MEV)机器人创造了机会。这些机器人是高速运行的自动化系统,监控区块链内存池,以寻找并利用获利的交易机会,如套利、清算和三明治攻击。

例如,一个机器人可以发现你的兑换请求,抢在之前买入,导致价格向不利于你的方向波动,然后紧接着在你之后卖出,以赚取差价。你虽然完成了交易,但成交价格变差了。

意图隐私解决的就是这特定的约 12 秒窗口期的问题。其目标是隐藏交易细节,直到观察者来不及做出反应。

私人交易交付

确保交易交付隐私最实用的方法是改变其路径。你的钱包仍然创建一个正常的签名交易。区别在于它被发送到了哪里。交易不再被广播到公开内存池,而是提交给一个私人端点,由该端点转发给区块构建者(Block Builders)。这些构建者通过排序交易来组建候选区块,最后由验证者发布其中一个区块。

这就是像 Flashbots Protect 这样的系统所提供的方案:一条让你的交易在进入区块之前远离公开内存池的路线。

Flashbots 还在研究一个名为 SUAVE(价值表达单一统一拍卖)的概念,它将问题界定为“订单流本身就是一个系统”。其想法是在私人环境中收集用户意图,运行拍卖以确定谁来执行,然后在以太坊和其他链上结算结果。

虽然仍在进化中,但这种方法设定了一个明确的方向:隐私应该在交易接触公开内存池之前就应用。

这种方法奏效的原因也是其权衡所在。它奏效是因为公开机器人永远无法提前看到。而权衡在于,私人管道和构建者确实能提前看到。你只是缩小了观众范围,而不是完全消除了提前可见性。

加密内存池

加密内存池旨在提供更强的隐私,确保在交易被纳入区块之前,任何人(包括构建者)都无法看到它。

网络看到的不是一段可读的交易,而是一个加密的二进制大对象(blob)。观察者可以看出有东西被提交了,但无法得知具体内容。

解密只有在订单被锁定之后才会发生。一种常见的设计是使用阈值解密,其中解密权限被拆分给一个委员会(Shutter Network 称之为 Keypers)。每个委员会成员持有一个碎片。当需要揭示内容时,只要发布足够数量的碎片就能重建解密密钥,从而允许交易执行。

这种方法消除了“私人管道能提前读取一切”的问题,但它引入了新的假设:委员会必须在线,且不得合谋。

意图隐私在区块发布时就结束了。 除非你将其与链上的价值、状态或执行隐私相结合,否则包含在区块内的信息依然会像往常一样暴露。

价值隐私

价值隐私回答一个简单的问题:我能不能在不让全世界看到我汇了多少钱的情况下转账?

在正常的公共链上,答案是否定的。每笔交易都会直接发布金额,这也是每个人验证余额的方式。

“屏蔽系统(Shielded systems)”通过分离两件事来改变这一点:

  1. 金额(保持私密)

  2. 遵守规则的证明(保持公开)

在底层,系统将你的资金存储为私人记录。你可以把它们想象成加密收据。每张收据代表一定的金额,但只有所有者知道里面是多少。

当你消费时:

  • 你证明你拥有一张有效的收据。

  • 你证明你以前没有花过它。

  • 你为接收者创建新收据(并给自己找零)。

  • 你发布一个证明,证明转出的总额等于转入的总额。

链负责检查这个证明。如果证明有效,交易就被接受,但隐藏的金额对外界依然未知。这是 Zcash 屏蔽转账背后的核心设计,也是价值隐私在生产环境中的经典案例。Penumbra 在多资产屏蔽池中也使用了相同的通用概念,所有价值都驻留在私人池内,转账通过证明而非可见的金额进行。

但这种隐私也有局限性。即使数学完美,隐私仍可能失效。泄露通常源于用户行为:

  • 如果你存入一个非常特殊的金额,稍后又取出完全相同的金额,观察者可以猜测这是同一个人。

  • 如果你在几分钟内进出私人池,时间点就成了线索。

  • 如果只有少数人在使用私人池,匿名集(Anonymity set)就很小。

  • 如果你立即将资金转移到已知的交易所账户,你就重新连接了身份。

所以,价值隐私隐藏了系统内部的数字,但它并不会自动隐藏围绕该系统的行为模式。

图谱隐私

图谱隐私关注的是关系。即使你隐藏了金额,公共账本仍能揭示模式:你发给谁、你从谁那里接收、频率如何以及金额大小。随着时间的推移,这张网络地图可能比余额更能揭露信息。

大多数图谱隐私方法分为两类:

第一种是资金池不可链接性(Pooled unlinkability)。这就是“混币”的想法。大量用户将资金发送到同一个池中,随后以一种在公开层面无法将取款与特定存款联系起来的方式将其取出。链上依然显示存款和取款。

隐私来自于模糊性。观察者可以看到存款和取款,但无法可靠地匹配。每笔取款在逻辑上可能属于许多参与者。这是像 Tornado Cash 这种混币器系统的核心机制。资金池越大,观察者对任何单一链接的确定性就越低。

如果池子很繁忙,且很多人存入相同的金额,你就会消失在人群中。如果池子很小,人群就会崩塌,图谱就会通过时间和金额重新显现。

另一种破坏图谱的方法是停止重复使用同一个收款地址。

如果每笔付款都发到一个公开地址,你的收款历史就成了一个永久的公开订阅源。任何人都可以聚类这些付款并认为它们属于同一个人。

隐身地址(Stealth addresses)可以改变这种模式。每笔付款不再发送到单一可见的目的地,而是落在一个看起来与上一笔毫无关联的新地址上。发送者为该笔付款生成一个一次性地址,只有预期的接收者可以访问。对外部观察者来说,这看起来像是资金流向了互不相关的地址。

这并没有隐藏金额或发送者。它通过防止外人将所有收款链接到同一个身份,解决了一个更窄范围内的问题。ERC-5564 为以太坊标准化的就是这种模式。它不隐藏发送者或金额,但它让“所有付给 Alice 的钱”变得不再显而易见。

图谱隐私依然会通过行为泄露。如果你从池中取款后每次都立即桥接到同一个地方,你就创造了一个新的链接点。如果你退出并立即接触需要实名认证(KYC)的交易所,身份会瞬间找回。如果你保持相同的时间习惯,图谱就会变得可以被猜到。这些系统打破了直接链接,但并未抹去你的脚印。

状态隐私

状态隐私旨在解决 DeFi 特有的问题。你的余额、仓位、清算阈值、金库构成和库存不应该能被任何拥有区块浏览器的人读取。

这很重要,因为“公开状态”会变成策略泄露。如果你的仓位可见,其他参与者就可以预测你的行为、你何时会被清算以及你下一步可能做什么。更糟糕的是,他们可以针对你。一个带有可见清算线的钱包基本上就是一个公开的计分板。

那么状态隐私在底层改变了什么?

在正常的链中,状态是大家达成共识并能读取的东西。借贷协议将地址映射到仓位详情。金库将地址映射到份额和债务。这就是索引器和机器人抓取的内容。

私有状态系统停止以明文形式写入这些细节。它们将“由你的地址索引的公开状态”替换为“由隐藏记录代表的私有状态”,并强制状态更新必须附带证明,证明该更新遵循了规则。

这里有最简单的理解方式:

  • 你仍然执行诸如“存入抵押品”、“借款”、“再平衡”或“兑换”的操作。

  • 链仍然必须执行约束,例如“你的借款不能超过抵押品允许的范围”、“你不能凭空创造价值”以及“你不能双花同一个私人余额”。

  • 但链是通过验证证明来执行这些约束的,而不是通过读取你的仓位。

这就是为什么状态隐私和 零知识证明(ZK proofs) 经常形影不离。你需要某种东西在保持底层数字私密的同时,宣告“这次更新是有效的”。

一个具体的例子是 Aztec。其设计中心是客户端的私有执行,网络负责验证证明和承诺。这让仓位得以存在,而无需作为可读表格存储在链上。你可以进行类似 DeFi 的操作,而公共链只看到证明验证过的状态转换,而不是你的原始仓位。

状态隐私在哪里泄露?依然主要在边缘。

如果你拥有一个私人仓位,但定期退出到公开的去中心化交易所(DEX),这些退出的规模和时机可以重构出你的行为。如果你以可预测的模式进出跨链桥,你就会创造链接。如果你依赖公开的守护者(keepers)进行清算,你的“私人”仓位仍需要与外界建立某种接口,而该接口可能会泄露信息。

此外,状态隐私很难实现可组合性。公开 DeFi 像乐高一样,是因为每个人都能读取一切。私有 DeFi 必须回答:“当两个合约都看不见对方的内部情况时,它们如何交互?”组合越复杂,设计就越需要小心翼翼。

状态隐私是隐私从“隐藏一次转账”升级为“隐藏持续的财务姿态”的地方,这也是为什么它更难实现、更有用,但也更容易在边界处瓦解。

执行隐私

这类隐私更深入一个层次。它不仅隐藏余额或仓位,还隐藏计算是如何发生的。这对于拍卖、撮合、求解器(solver)逻辑、清算策略、私人订单类型以及任何一旦可见策略就会被剥削的场景都至关重要。

有两种常见的方法:

  1. 一种使用可信执行环境(TEEs)。合约在硬件飞地(enclave)内执行,输入在飞地内解密,输出被加密,并通过证明(attestation)验证运行的是正确的代码。Secret Network 和 Oasis Sapphire 是使用这种方法以较低证明开销获取私有执行的例子。权衡点在于对硬件的信任和侧信道攻击风险。

  2. 另一种方法是将 ZK 证明 用于私有执行。系统产生证据证明程序正确运行,但不透露驱动执行的私人输入。这种方法在概念上很纯粹,但通常对工具和性能要求极高,且在普及前往往先在有限范围内推出。

执行隐私在与其他隐私类型相同的领域表现薄弱:时机、边界交互和访问层。

RPC:解决隐私发生的地方

即便你的链上隐私完美无缺,如果你的钱包使用的是 Infura 或 Alchemy,那么该 RPC 提供商 就能看到你的 IP 地址、你控制的地址(因为你查询了它们的余额)、你与哪些合约交互以及你的时间模式。

2022 年,ConsenSys 公开承认 MetaMask 的默认 RPC (Infura) 会收集 IP 地址和钱包地址。这就是为什么协议隐私在实践中经常失败的原因:访问层在加密技术有机会发挥作用之前就泄露了一切。

所以,隐私是由语境塑造的。不同的语境以不同的方式塑造隐私设计。

交易主要需要意图隐私。支付需要价值隐私和收款方侧的图谱隐私。DeFi 渴求状态隐私。跨链桥则会增加关联点。机构希望在拥有验证和问责路径的同时保持机密性。

因此,“哪种隐私模型会赢?”这个问题通常是错误的。

更准确的问题是:你正在保护哪个表面?你做了哪些假设?以及当用户接触真实世界时,信息还会在哪里泄露?


Twitter:https://twitter.com/BitpushNewsCN

比推 TG 交流群:https://t.me/BitPushCommunity

比推 TG 订阅: https://t.me/bitpush

Nguồn
Tuyên bố từ chối trách nhiệm: Nội dung trên chỉ là ý kiến của tác giả, không đại diện cho bất kỳ lập trường nào của Followin, không nhằm mục đích và sẽ không được hiểu hay hiểu là lời khuyên đầu tư từ Followin.
Thích
Thêm vào Yêu thích
Bình luận