Блокчейн/Уровень IV · Глубины протокола/4.3 Хранение и приватность/Урок 7
Silent Payments и грядущие улучшения приватности
Статический ключ, который никогда не повторяется в блокчейне
МатериалыКошелёк с поддержкой тихих платежей (Silent Payments, BIP352)Bitcoin Core версии 27 или новееБлок-эксплорер с возможностью декодирования транзакцийКошелёк с полной нодой или SPV-кошелёк с поддержкой тихих платежей (например, Sparrow или Cake)
Любопытство
- Как один публичный адрес может принимать неограниченное количество платежей, не выдавая того, что они принадлежат одному и тому же субъекту?
- Почему добавление одного входа от получателя разрушает предположение об общем владении, на которое опираются аналитики блокчейна?
- Какой криптографический приём позволяет двум сторонам получить уникальный, не связываемый с другими ключ выхода из статической пары ключей?
Исследование
- Биткоин-адреса можно использовать повторно, и это создаёт связи в блокчейне. Если продавец публикует один адрес для всех покупателей, все платежи на этот адрес видимо связаны в реестре. Такая связываемость подрывает приватность, поскольку позволяет кому угодно отслеживать движение средств во времени. Тихие платежи (Silent Payments, BIP352) решают эту проблему с помощью протокола Диффи — Хеллмана на эллиптических кривых (ECDH). Получатель хранит статическую пару ключей: ключ сканирования и ключ траты. Каждый отправитель комбинирует ключи своих входов с ключом сканирования получателя, вычисляя уникальную поправку (tweak), и создаёт одноразовый адрес Taproot, неотличимый от любого другого выхода в блокчейне.
- Поскольку производный адрес меняется в каждой транзакции, никакие два платежа одному и тому же продавцу не выглядят связанными в данных блокчейна. Получатель сканирует блокчейн с помощью своих приватных ключей и находит эти уникальные выходы без какого-либо предварительного взаимодействия с отправителем. Это избавляет от необходимости в стороннем сервере или связи в реальном времени для генерации новых адресов. Для сканирующей стороны процесс требует значительных вычислений, но обеспечивает надёжную несвязываемость для обеих сторон, так что пассивные наблюдатели не смогут легко свести воедино поток доходов продавца.
- Payjoin (BIP78) подходит к приватности с другой стороны — со стороны структуры транзакции. Аналитики блокчейна опираются на эвристику общего владения входами (common-input-ownership), чтобы группировать входы, принадлежащие одному владельцу. В стандартной транзакции все входы контролирует отправитель. Payjoin позволяет получателю добавить в транзакцию свой вход до её подписания. В результате монеты получателя смешиваются с монетами отправителя в одной транзакции, что разрушает предположение о принадлежности всех входов одной стороне. Итог выглядит как обычный платёж, поэтому аналитик, считающий, что все входы принадлежат отправителю, приходит к неверному выводу.
- Версия 2 (BIP77) избавляет получателя от необходимости держать публичный сервер: стороны асинхронно обмениваются зашифрованными PSBT через сервер-каталог (directory), к которому обращаются через ретрансляторы Oblivious HTTP, поэтому каталог не может ни прочитать сообщения, ни привязать их к IP-адресам. Хотя это не скрывает сам факт транзакции, кластеризация адресов существенно усложняется, ведь входы двух разных владельцев оказываются в одной транзакции, которая выглядит так, будто у неё один владелец.
- Приватность на сетевом уровне требует сокрытия паттернов трафика. Шифрованный P2P-транспорт (BIP324) стал вариантом по умолчанию в Bitcoin Core версии 27 в 2024 году. Он скрывает от пассивных наблюдателей содержимое сообщений — то, какие транзакции и адреса ретранслирует нода; при этом по-прежнему видно, какие IP-адреса с какими соединяются, а шифрование не аутентифицировано, поэтому не защищает от активной атаки «человек посередине». BIP324 использует обмен ключами на эллиптических кривых, где ключи закодированы так, чтобы выглядеть как случайные байты, а затем шифрование ChaCha20-Poly1305, что значительно затрудняет привязку конкретных транзакций к конкретным нодам путём наблюдения за трафиком.
- Продолжаются исследования межвходовой агрегации подписей (cross-input signature aggregation, CISA), которая позволила бы всем входам транзакции использовать одну общую подпись. Совместные транзакции, такие как coinjoin, у которых много входов, стали бы дешевле, чем трата тех же монет по отдельности, — приватность превратилась бы в экономию на комиссиях. В отличие от CoinJoin, который рассматривается в разделе о механизмах хранения, эти улучшения сосредоточены на криптографической структуре и сетевом транспорте, а не на социальной координации или смешивании через сервер.
- BIP-352, принятый в репозиторий BIP в мае 2024 года, вводит тихие платежи. Получатель публикует единый статический код, состоящий из двух публичных ключей: ключа сканирования (scan key) и ключа траты (spend key). В отличие от обычных адресов, этот код остаётся неизменным на протяжении всего срока жизни кошелька. Кошелёк отправителя использует приватные ключи своих входов, чтобы получить новый уникальный Taproot-адрес для каждого платежа, что исключает повторное использование адресов между разными отправителями и транзакциями.
- Механизм основан на протоколе Диффи — Хеллмана на эллиптических кривых (ECDH). Когда Алиса отправляет платёж на тихий код Боба, её кошелёк комбинирует приватный ключ её входа с публичным ключом сканирования Боба. Так получается общий секрет, который служит твиком (tweak). Добавленный к публичному ключу траты Боба, этот твик даёт выход назначения P. Поскольку вывод зависит от ключей и outpoint'ов её входов («хеш входов»), а также от счётчика для каждого выхода, каждый платёж приходит на отдельный адрес, неотличимый от любого другого Taproot-выхода.
- Компромисс — вычислительная асимметрия. Отправители выполняют стандартные операции подписи, а получатели должны активно сканировать блокчейн, чтобы обнаружить входящие платежи. Боб не может просто проверить, есть ли средства на конкретном адресе: для каждой транзакции с подходящими входами он комбинирует свой приватный ключ сканирования с суммой публичных ключей её входов и проверяет, совпадает ли какой-либо выход. Такое сканирование ресурсоёмко и исторически было сложной задачей для лёгких SPV-клиентов.
- Получающиеся транзакции ничем не выделяются среди обычных переводов Bitcoin. Нет дополнительных полей данных, размер транзакции не растёт, и для координации не нужны сторонние серверы. Внешний наблюдатель видит только стандартные Taproot-входы и выходы. Связь между ключами входов отправителя и статическим кодом получателя криптографически скрыта, поэтому наблюдатели не могут привязать платёж к опубликованному коду получателя.
- С момента выхода спецификации поддержка в кошельках стабильно расширяется. Cake Wallet реализовал её в 2024 году. Sparrow Wallet добавил отправку в октябре 2025 года, а получение — в мае 2026 года. Nunchuk добавил отправку в 2026 году. Bitcoin Core принял основную логику BIP-352 (PR #35301) в 2026 году, тогда как отправка и получение в кошельке всё ещё проходили ревью и не вошли ни в один релиз.
- Тихие платежи решают проблему повторного использования адресов, не требуя взаимодействия отправителя и получателя или координационных серверов, подобных тем, что используются в протоколах CoinJoin. Получатель использует один статический идентификатор для всех целей — зарплаты, счетов, пожертвований, — а каждый входящий UTXO попадает на уникальный адрес, который невозможно связать с другими. Это повышает взаимозаменяемость, не позволяя анализу графа связать несколько платежей с одним и тем же субъектом, — при условии, что процесс сканирования у получателя надёжен и безопасен.
Часть IГрядущие улучшения приватности
Часть IIТихие платежи (silent payments)
Ключевые факты
- Тихие платежи (Silent Payments, BIP352) используют ECDH для получения уникальных адресов Taproot из статической пары ключей.
- Payjoin (BIP78/BIP77) ломает эвристику общего владения входами за счёт того, что получатель добавляет свой вход.
- Шифрованный P2P-транспорт (BIP324) стал вариантом по умолчанию в Bitcoin Core версии 27 (2024).
- Адреса тихих платежей (sp1…) отличаются от обычных, но создаваемые ими выходы выглядят как обычные выходы Taproot.
- Payjoin v2 (BIP77) обменивается зашифрованными PSBT через сервер-каталог, поэтому получателю не нужен публичный сервер.
- Межвходовая агрегация подписей, пока находящаяся на стадии исследований, дала бы всей транзакции одну подпись и удешевила бы coinjoin-транзакции.
- BIP-352 был принят в мае 2024 года; версия спецификации 1.1.0 вышла в марте 2026 года.
- Тихие платежи используют ECDH, чтобы для каждой транзакции получить уникальный Taproot-адрес из ключей входов отправителя и статического ключа сканирования получателя.
- Получатели должны выполнять вычисление ECDH для каждой подходящей транзакции (ключ сканирования, умноженный на сумму публичных ключей входов) и проверять её Taproot-выходы.
- Cake Wallet (2024), Sparrow Wallet (отправка — октябрь 2025 г., получение — май 2026 г.) и Nunchuk (отправка, 2026 г.) поддерживают тихие платежи; Bitcoin Core принял основную логику в 2026 году.
- Транзакции тихих платежей неотличимы от стандартных Taproot-транзакций по размеру, стоимости и структуре.
- Протокол не требует взаимодействия между отправителем и получателем и не зависит от сторонних координационных серверов.
Упражнение девять, шесть, три, один
9СобратьПеречислите 9 механизмов или протоколов приватности, как активных (запускаемых пользователем), так и пассивных (на уровне протокола). Укажите, на каком уровне они работают: приложения, сети или консенсуса.
6СгруппироватьСгруппируйте 9 пунктов в 6 категорий по основной модели угроз: какое именно наблюдение они предотвращают? (например, кластеризацию адресов, анализ трафика, связывание входов с общим владельцем).
3Выделить главноеСведите 6 групп к 3 фундаментальным категориям утраты приватности, которые устраняют эти механизмы.
1КристаллизоватьНапишите одно предложение о том, почему статические адреса служат инструментом слежки и как криптографическая деривация устраняет эту угрозу.
Проверка фактов
Даты, цифры и утверждения были проверены по приведенным ниже опубликованным источникам.