Solana 上的一笔 USDC 转账,和一笔 SOL 转账一样公开——金额、两个地址、时间戳,都被永久写进一个谁都能读的账本。 稳定币用起来像现金,但在链上它的表现却像一张钉着你名字的银行流水。如果你付款用的那个钱包碰过交易所、收过工资,或公开过捐款地址,那么收款方在收到你转来的资金那一刻,就能读到你的 USDC 余额和你的全部付款历史。
这是一篇实操指南:如何挪动 USDC,让收款这一端不留下任何能通往你出发钱包的痕迹。这是一篇操作教程。如果你想要背后的推理,/blog/what-the-blockchain-reveals-about-you讲了链为什么这么暴露。
为什么一笔直接的 USDC 转账藏不住
标准的 SPL 代币转账里没有任何隐私模式。这笔交易本身就是发送方和接收方之间的那条关联——先把 USDC 经过两三个中间钱包转一圈也没用,因为每一跳都公开,整条保管链依然可以被完整重建。要真正打破这条关联,你需要一个让你的资金与许多其他人的资金变得无法区分的步骤:一个屏蔽池。你在一个加密承诺背后存入 USDC,之后用一份零知识证明提款,那份证明说"我拥有这里面的某一笔存款",却不透露是哪一笔。/learn/what-is-a-shielded-pool是通俗易懂的讲解。
SolMask 运行一个专门的 USDC 池,所以你存入 USDC,收款方收到的也是 USDC——不兑换、不换资产,金额相同,只扣掉提款手续费。
流程,一步一步来
1. 从你的主钱包存入 USDC。 打开/swap,连接你的钱包,选好 USDC 和金额,存进去。存款是免费的——全额进入池子,手续费在之后提款时收取(/blog/fee-model-explained)。你的浏览器在本地生成 note,只把它的承诺——一个哈希——写到链上。盯着你看的人无法判断你最终会提取多少、提到哪里。
2. 设一个隐私延迟,让它沉淀一下。 存款时你会选一个解锁延迟(最低 10 分钟,最长一周)。你的 USDC 在池子里待得越久、周围越有别的存款流进来,你融入的人群就越大。一解锁就立刻提款,等于把大部分好处都扔掉——参见/blog/the-privacy-delay-explained。
3. 准备一个全新的收款地址。 目标地址应当毫无先前历史:从未被主钱包注资,从未用来交易或领取。这正是大多数人泄密的地方——你干干净净地提款到一个上个月就收到过你转账的地址,那你已经亲手把两端重新连上了。/learn/choosing-a-recipient-address是仅次于存款的、杠杆最高的一步。
4. 提款 USDC 到这个全新地址。 在浏览器里生成证明,并通过 relayer 提交。Relayer 广播交易并支付 SOL 网络手续费,所以这个全新钱包无需任何 SOL 就能收到 USDC——这很关键,因为为了凑 gas 而从主钱包给它注资,会把它们重新连起来。Relayer 看得到证明,却永远不知道哪一笔存款是你的(/glossary/relayer)。
链上的结果是:一笔来自你主钱包的 USDC 存款,以及——几分钟或几天后——一笔毫不相关、付给全新地址的 USDC 提款。没有任何边把它们连起来。
那些会毁掉一切的错误
- 从主钱包给全新钱包注资。 一个全新的 USDC 钱包往往没有 SOL 来付租金或未来的手续费——但从一个相连的钱包来一笔"补 gas",就会把两者重新连上。Relayer 已经替你出了提款的 gas;如有需要,之后再从另一个不相连的来源给钱包注资。
- 存款之后立刻提款。 一笔存款和一笔同等金额的提款挤在同样的几分钟里,单凭时间就能被关联。在时间上去相关。
- 复用一个"全新"地址。 一个地址,只用一次。它上面任何先前的活动都会让目的落空。
- 整数金额和链下的破绽。 提出你存入的那个不寻常的精确金额,或付款给一个全新钱包后又拿它去做绑定你身份的事,都会通过推断泄露。/learn/what-solmask-cannot-protect-you-from是一份诚实的清单,列出哪些仍要靠你自己。
如果你手里是 SOL,而不是 USDC?
你可以存入 SOL,而让收款方收到 USDC——提款会路由经过一次兑换,让目标地址拿到稳定币,同时关联依旧打破。这是另一篇单独的教程:/blog/swapping-sol-to-usdc-privately。
想要上面所有规则的一页纸版本,参见/blog/solana-wallet-privacy-checklist。
FAQ
问:收款方收到的,是不是我存入的那个精确的 USDC 金额? 答: 几乎是——他们收到的是存入金额减去提款手续费(一小笔以 USDC 计的百分比,外加一笔从提款中扣除的固定 SOL 部分)。存款本身免费。参见/docs/fees。
问:我能给一个完全没有 SOL 的人转 USDC 吗? 答: 能。Relayer 替你支付网络手续费并广播,所以一个 SOL 余额为零的全新钱包依然能收到 USDC。
问:先把 USDC 经过几个钱包转一圈,是不是一样好? 答: 不是。每一跳都公开,所以整条路径依然可追溯。只有屏蔽池才能让你的资金与所有其他人的资金变得无法区分。
问:我的主钱包还会显示我存入了 USDC 吗? 答: 会——你的钱包公开显示它向池子存了款。被藏住的是它与 USDC 从哪出来之间的连接。任何人都能看到你用了这个池子;但没人能看出哪一笔提款是你的。
问:存款和提款之间我该等多久? 答: 比最低限度更久。10 分钟是下限;对于任何你真正在意的事,让数小时乃至数天过去,中间有池子活动穿插。代价是日历时间,而非精力。