全部说明

2026-05-26

SolMask 无法为您防御什么

任何隐私协议的诚实版本宣传里,都会包含一份它无法防御的攻击清单。我们宁愿您现在读到它,也不要您日后以惨痛的方式发现。

SolMask 使用零知识证明在屏蔽池上切断存款与提款之间的链上关联。这是一个真实的、有数学依据的属性。下面是这个属性包含的内容。

提款过快带来的时间相关性

隐私延迟是下限,不是建议。如果您存入一个有辨识度的金额,然后在协议允许的最低值后 —— 恰好一小时再加一个 slot —— 提取相同的金额,一位手里有秒表和区块浏览器的观察者很可能会猜对这两笔是关联的。数学说链上不知道;时间说您知道。

被动的时间相关性攻击运行成本为零。任何能访问 Solana RPC 的人都可以在几天甚至几个月后追溯进行:把公开的存款列表和公开的提款列表对齐即可。防御就是您选择的延迟,以及您所等待窗口内匿名集合的大小。协议无法替您选择。

如果您的存款金额异常(比如 7.3219 SOL),时间问题会更尖锐,因为合理匹配的提款宇宙比整数金额时窄得多。请使用整数金额,使用您能忍受的最长延迟,并避免在解锁 slot 一到就立即提款的诱惑。

RPC 层面的 IP 追踪

当您的浏览器与某个 Solana RPC 端点通信以构建您的存款或提款交易时,您的 IP 地址对该 RPC 运营方是可见的。任何被您钱包请求的 indexer、您提款经过的 relayer,以及您钱包悄悄回拨的任何第三方分析服务也是如此。

区块链不记录 IP,但把您的交易输送到链上的基础设施会记录。如果一位坚定的对手能把存款钱包和提款新钱包的 RPC 日志对齐,他可能将两者关联起来,即便链上本身并没有这种关联。

这里的防御不是加密学层面的,而存在于网络层:通过 Tor 或不记录日志的 VPN 路由您的流量,理想情况下让存款会话和提款会话使用不同的出口节点;避免从同一 IP 接连进行两次会话;考虑使用自建 RPC 或有明确日志留存政策的 RPC。我们提供数学;网络卫生由您带来。

接收地址的可关联性

这一点在如何选择接收地址中有详述,但在此值得重复:如果您提款的钱包有任何链上历史把它和您的真实身份绑在一起 —— 您的交易所充值地址、您的主钱包、您在 DAO 中的投票地址 —— SolMask 提款的隐私就会坍塌。

链上不知道您是谁。但它知道每一个地址曾做过的所有事。如果某个目标地址因任何原因公开属于"您",那么提款到该地址实际上就是提款到您的名下。

一个全新、从未使用过的钱包,且未触及您来源钱包就被干净注资,是加密学能为您兑现承诺的唯一配置。

v1 中的管理员被入侵

SolMask 拥有一个管理员账户。管理员可以在紧急情况下暂停协议、添加或移除支持的资产、在存款层禁用特定钱包(作为高风险地址控制的一部分),以及清扫累积的费用。管理员无法解密您的 note、改动您的提款、冻结特定存款,或绕过每个用户都要走的带证明验证的提款指令从池子中提取资金。

但"暂停"是真实的杠杆。如果管理员密钥被入侵 —— 或持有者被胁迫 —— 整个协议的提款都可能被停止,直到管理员再次行动。在这种情形下您的资金没有丢失;它们留在池子里,待暂停解除后即可恢复。但在那之前它们是缺乏流动性的。

管理员权限由多签持有,治理随时间逐步收紧。请根据您对管理员暂停权力的接受程度来调整使用规模。

v2 仪式之前的可信设置被攻陷

Groth16 —— SolMask 使用的证明系统 —— 需要一次性的可信设置来生成每个证明都要引用的公共参数。如果参与设置的任何人保留了仪式中使用的秘密随机性("有毒废料"),原则上他就能伪造证明并榨干池子。

仪式的可靠性取决于参与者销毁各自的熵。一个公开的 Bitcoin 区块信标作为随机性锚点,并使仪式不可重放。

随着协议成熟,计划进行一场公开的多方仪式 —— 由众多独立参与者参与。多方仪式将信任分散到众多独立贡献者之间,因此没有任何单一方能够破坏该设置。验证流程与路线图见 Trusted setup

我们没有想到的旁路

隐私系统会以富有创意的方式失败。我们已经做了能做的事,去测试标准陷阱 —— 金额指纹、时间泄漏、匿名集合退化、重放攻击 —— 但加密学这一角落的历史,主要就是意料之外的泄漏史。我们邀请任何人查看我们的电路、我们的验证器和我们的 relayer 代码,告诉我们漏掉了什么。如果您发现了什么,请在公开之前先报告。

加密学是强的。您应该担心的是加密学周围的系统。请将 SolMask 用于它所针对的威胁,不要假设它涵盖的比本页所承认的更多。

SolMask 无法为您防御什么 · SolMask