В 2024 году разработчики Cake Wallet, Blue Wallet и аппаратного кошелька BitBox02 добавили поддержку тихих платежей (Silent Payments) ― протокола для статических платежных адресов, сохраняющих конфиденциальность в сети первой криптовалюты.
Вместе с командой биткоин-миксера Mixer.Money разбираемся, как работают тихие платежи, в чем их преимущества и недостатки.
Что такое тихие платежи
Концепцию тихих платежей описал разработчик Рубен Сомсен в марте 2022 года. Через год он стандартизировал ее в предложении об обновлении биткоина BIP-352 совместно с Джози Бейком.
Основная цель тихих платежей ― избежать повторного использования адресов. Протокол позволяет генерировать новые открытые ключи для каждой транзакции, что улучшает UX при сохранении высокого уровня приватности.
«Генерация нового адреса ― важнейший аспект сохранения конфиденциальности. Однако для этого требуется безопасная коммуникация между отправителем и получателем, чтобы последний мог передать неиспользованный адрес, несколько адресов или метод, позволяющий отправителю генерировать адреса, например xpub», ― говорится в BIP-352.
Тихие платежи решают эту проблему — предоставляют статические адреса, которые можно использовать повторно. Транзакции идентифицируют только отправители и получатели.
Если организация будет собирать средства на сайте, никто не определит, кто и сколько биткоинов пожертвовал. Поддержка протокола также улучшит приватность клиентов криптобирж: платформы, как правило, назначают один адрес для депозитов.
«Если вам приходилось получать биткоин несколько раз от одного и того же человека, то перед вами стоит простой выбор: генерировать каждый раз новый адрес (и каким-то образом сообщать его) или попросить отправителя повторно использовать тот же адрес? Если каждый раз генерировать новый адрес, вам придется передавать его отправителю и надеяться, что он скопирует его правильно. Если же вы решите, что он повторно использует один адрес, вы нарушите конфиденциальность обоих участников транзакции», ― говорится на сайте Silent Payments.
Как они работают
Для реализации BIP-352 не нужно вносить изменения на уровне консенсуса, поэтому его может имплементировать любой биткоин-кошелек. Адреса тихих платежей имеют префикс sp1 и выглядят так:
sp1qqvvnsd3xnjpmx8hnn2ua0e9sllm34t9jydf8qfesgc7nhdxgzksjwqlrxx37nfzsg6rure5vwa92fksd6f5a6rk05kr07twhd55u3ahquy2v7t6s
Получатель публикует подобный адрес без взаимодействия с отправителем,
а тот выбирает один или несколько UTXO. В этот момент протокол генерирует новый Taproot-адрес, на который поступят средства. Для этого он использует приватный ключ отправителя, sp1-адрес получателя и общий секрет, созданный на базе ECDH (Elliptic curve Diffie–Hellman, протокол Диффи — Хеллмана).
У получателя две пары ключей:
для сканирования (scan) — обнаруживают платеж посредством мониторинга транзакций в блокчейне и выполнения вычислений ECDH;
для траты (spend) — позволяют отправлять монеты с Taproot-адреса.
Основной недостаток концепции — в необходимости постоянного сканирования сети. Оно требует больше вычислений и пропускной способности по сравнению, например, с Electrum Server.
«Вы можете иметь полную ноду дома, в этом случае UХ тихих платежей ничем не будет отличаться, здесь нет никаких компромиссов, так как на вычисления ECDH будет потрачено примерно столько же ресурсов, что и на верификацию подписи. Ваша нода уже отслеживает все транзакции, и теперь протокол потребует еще одну верификацию подписи, чтобы проверить наличие тихого платежа», ― заявил Джози Бейк.
Пользователь мобильного кошелька Blue Wallet (или любого клиента, позволяющего подключиться к собственному узлу) может предоставить ноде ключ для сканирования транзакций.
«Это идеальный вариант. Если вы не можете поддерживать полную ноду, то, по моему мнению, вы все же не можете использовать мобильные кошельки приватно, хотя есть предложения вроде BIP-158, но они не находят массового принятия. Тем не менее разработчики Cake Wallet предложили интересное решение, которое по сути представляет форк electrs и сканирует блокчейн на наличие тихих платежей. Когда мобильный кошелек подключается к серверу, он просто передает все непотраченные SP в блоках с момента последнего сканирования. В этом случае сервер знает только о запросе данных», ― заключил он.
Безусловное преимущество Silent Payments в том, что такие транзакции никак не выделяются в блокчейне. Сторонний наблюдатель не сможет связать их с конкретным sp1-адресом или узнать об использовании протокола тихих платежей.
Тестовая транзакция с использованием протокола тихих платежей в обозревателе mempool.space. Данные: Silent Payments.
Сравнение с другими решениями
По состоянию на октябрь 2024 года разработчики Silent Payments выделяют два конкурирующих решения:
BIP-47 ― многоразовые платежные коды, также известные как PayNyms. Были предложены в 2015 году разработчиком Питером Тоддом как реализация скрытых адресов (stealth addresses). Они создают транзакцию, которая уведомляет получателя о переводе на определенный открытый ключ (и, соответственно, набор адресов) вместо того, чтобы включать сигнал в каждый платеж;
BIP-351 ― приватные платежи. Относительно новая концепция, предложенная в июле 2022 года Альфредом Ходлером и Кларком Муди. Представляет собой нечто среднее между BIP-47 и BIP-352.
Пример для BIP-47. Боб передает Алисе многоразовый платежный код, а та отправляет ему биткоины. Кошелек Алисы генерирует уникальный общий секрет, объединяя:
закрытый ключ;
открытый ключ в платежном коде Боба;
ослепляющее сообщение, позволяющее ему интерпретировать секрет.
Кошелек зашифровывает эти данные и вставляет их в поле OP_RETURN транзакции-уведомления. Код виден в блокчейне, но только Боб может вычислить использованные для генерации адреса. Все последующие платежи Алисы будут известны только ему.
Такой подход облегчает сканирование, но также раскрывает факт использования PayNym.
Пример для BIP-351. Каждый раз, когда Алиса отправляет средства Бобу, ее кошелек объединяет открытый ключ из платежного кода Боба с общим секретом. Протокол генерирует уникальный код уведомления для OP_RETURN, который используется один раз.
Сторонний наблюдатель не увидит связи между транзакциями, но зафиксирует факт использования протокола.
Выводы
Тихие платежи улучшают UX и конфиденциальность в сети биткоина, избавляя от необходимости передавать новые адреса при совершении транзакций.
По мнению команды Mixer.Money, они могут повысить анонимность пользователей первой криптовалюты, но потребуют более существенного принятия в сообществе:
«BIP-47 было представлено девять лет назад, но до сих пор реализовано всего несколькими кошельками вроде Sparrow Wallet и Samourai Wallet. Последний, правда, уже не работает в связи с обвинениями основателей в содействии отмыванию денег. BIP-352 значительно улучшает пользовательский опыт, однако его будущее зависит от поддержки со стороны разработчиков приложений и крупных криптобирж. Без взаимодействия с популярными сервисами mass adoption не произойдет: универсальным и более понятным решением для анонимизации транзакций останутся биткоин-миксеры».
Опыт с внедрением SegWit-адресов показал, что массовое принятие подобных обновлений может занять годы. Скорее всего, до тех пор участники сети продолжат анонимизировать транзакции более привычными методами вроде биткоин-миксеров.