Приватность и конвертацию актива обычно рассматривают как два отдельных шага — и сшивание их вместе — это ровно то место, где большинство людей допускает утечку. Наивный процесс таков: переместить средства приватно, затем обменять их на DEX. Но своп — это публичная транзакция с кошелька назначения, и если Вы обмениваете всю выведенную сумму за один раз сразу после получения, Вы выдали наблюдателю яркий сигнал корреляции. Более чистый подход — сделать конвертацию внутри приватного вывода, чтобы получатель просто получил нужный ему актив и не было отдельного свопа для корреляции.
Эта статья — о межактивных выводах: вносите SOL, получатель получает USDC, связь по-прежнему разорвана.
Почему «вывести, потом обменять» утекает
Предположим, Вы приватно выводите 50 SOL на свежий кошелёк, затем немедленно обмениваете все 50 SOL на USDC на DEX. Ончейн теперь есть свежий кошелёк, который получил ровно 50 SOL и, секундами позже, обменял ровно 50 SOL. Суммы совпадают, время плотное, а своп полностью публичен. Наблюдатель, следящий за выводами из пула на ~50 SOL и за свопами на DEX на ~50 SOL, может их сопоставить. Вы не сломали приватность в пуле — Вы заново ввели поддающееся корреляции событие сразу после него.
Две вещи делают это хуже: своп раскрывает точную сумму (сводя на нет гигиену «сливайся в круглых суммах» из /blog/anonymity-sets-on-solana), а у свежего кошелька теперь есть история транзакций, так что он больше не свеж для любого будущего использования.
Как вместо этого работает межактивный вывод
SolMask может маршрутизировать своп как часть самой транзакции вывода. Вы вносите SOL в пул SOL. Когда Вы выводите, доказательство высвобождает Ваши SOL внутри той же транзакции, которая обменивает их через Jupiter и доставляет USDC получателю. С точки зрения блокчейна есть один приватный вывод, в результате которого у получателя оказывается USDC, — а не вывод, за которым следует отдельный, связываемый своп.
Свойство приватности не меняется конвертацией. Доказательство с нулевым разглашением по-прежнему утверждает только «я владею одним из депозитов в этом пуле»; оно не раскрывает, каким именно, а этап свопа едет внутри той же атомарной транзакции. Депозит (SOL с Вашего кошелька) и итог (USDC на свежий кошелёк) остаются двумя выглядящими несвязанными событиями. /learn/what-is-a-shielded-pool описывает базовый механизм; своп — это дополнение к выводу, а не отдельный прыжок.
Когда межактивный вывод — правильный инструмент
- Получателю нужен стейблкоин. Оплата подрядчика или поставщика, выставляющего счёт в USDC, при том что Вы держите SOL. Вносите SOL, доставляете USDC, без публичной конвертации между. Это естественно сочетается с /blog/dao-treasury-privacy-on-solana и /blog/private-payroll-on-solana.
- Вы хотите, чтобы актив назначения отличался от исходного сам по себе. Смена актива через приватную границу полностью убирает паттерн «то же количество того же токена вошло и вышло».
- Расчёт в конкретной валюте. OTC- и казначейские потоки, которые должны рассчитываться в USDC, а не в SOL, — см. /blog/private-otc-trades-on-solana.
О чём помнить
Проскальзывание и маршрутизация публичны на выходе, а не на входе. Своп исполняется по рынку через Jupiter, так что получатель получает то, что вернул маршрут на момент исполнения. Курс конвертации — это обычный рыночный курс; скрыта связь с Вашим депозитом, а не существование этапа свопа. Выбирайте суммы и время разумно, чтобы доставленная цифра по-прежнему напоминала обычную активность.
Гигиена сумм всё равно применима. Межактивный вывод меняет актив, но не оправдывает аномальную сумму. Если Вы вносите очень особенное количество SOL, конвертация не стирает эту особенность. Соответствуйте толпе на стороне депозита и держите доставляемые суммы непримечательными.
Задержка всё равно важна. Конвертация на выходе не заменяет задержку приватности — дайте депозиту вызреть в пуле перед выводом, ровно как при выводе того же актива. /blog/the-privacy-delay-explained объясняет почему.
Адрес получателя всё равно должен быть свежим. Доставка USDC на кошелёк с прежней историей, связанной с Вами, заново соединяет оба конца независимо от смены актива. /learn/choosing-a-recipient-address — здесь та же неизменная рекомендация.
Коротко
Межактивный вывод сворачивает конвертацию в приватный шаг, так что нет отдельного, поддающегося корреляции свопа после. Вносите SOL, получатель получает USDC, связь остаётся разорванной. Всё остальное — задержка, гигиена сумм, свежий получатель — это та же дисциплина, что и при выводе того же актива, изложенная в /blog/solana-wallet-privacy-checklist. Попробуйте на /swap.
FAQ
В. Раскрывает ли своп, какой депозит был моим? О. Нет. Доказательство утверждает владение одним неуказанным депозитом в пуле; этап свопа исполняется внутри той же транзакции без ссылки на Вашу конкретную ноту. Конвертация не ослабляет несвязываемость.
В. Могу ли я внести USDC и сделать так, чтобы получатель получил SOL? О. Межактивные выводы работают между поддерживаемыми активами, так что направление можно развернуть в зависимости от поддержки пула. Принцип идентичен: конвертируйте внутри вывода, а не отдельной транзакцией после него.
В. Дешевле ли вывести тот же актив и обменять самому? О. В сырых комиссиях это может выглядеть чуть дешевле, но самостоятельный своп после создаёт публичную, поддающуюся корреляции транзакцию со свежего кошелька — а это и есть та плата приватностью, которой Вы пытались избежать. Своп внутри вывода существует именно для того, чтобы её избежать.
В. Какой курс я получу на конвертации? О. Обычный рыночный курс через маршрутизацию Jupiter на момент исполнения, включая обычное проскальзывание. Приватность скрывает связь, а не сам факт того, что произошёл рыночный своп.
В. Заменяет ли конвертация на выходе задержку приватности? О. Нет. Используйте настоящую задержку и дайте депозиту вызреть в пуле перед выводом — конвертация независима от защит по времени.