Несмотря на распространенное заблуждение, далеко не все криптовалюты обеспечивают полную анонимность транзакций. Большинство блокчейнов, вроде Биткоина и Эфириума, и вовсе прозрачны, публично доступны для изучения. Технологией, обеспечивающей повышенную конфиденциальность, выступают так называемые «скрытые адреса».

Что такое скрытые адреса

Скрытые адреса (stealth addresses) — это технология, благодаря которой у пользователя появляется возможность анонимно получать криптовалюту, не раскрывая основной адрес. В результате использования скрытых адресов мы скрываем историю транзакций пользователя от других и обеспечиваем конфиденциальность каждой отдельной операции.

«Скрытность» основного адреса достигается следующим образом: при каждой новой входящей транзакции в системе создается «подменный адрес» — уникальный одноразовый публичный (открытый) ключ. При этом подменный адрес никак не позволяет отследить его до реального получателя криптовалюты.

В качестве своеобразной аналогии можно привести абонентский почтовый ящик, который позволяет получателю писем или посылок не раскрывать отправителям свою личность или домашний адрес, принимая всю корреспонденцию по реквизитам ящика, который физически находится в почтовом отделении.

Идея скрытых адресов зародилась в сообществе Биткоина — ее впервые предложил в 2011 году участник форума Bitcointalk под псевдонимом ByteCoin. Позже она получила развитие в «Белой книге» протокола CryptoNote, авторы которой использовали псевдоним Николас ван Саберхаген (Nicolas van Saberhagen). На базе протокола возник ряд анонимных монет, куда вошли Bytecoin, Zano, MobileCoin и Monero. В 2014 году Петер Тодд (Peter Todd) адаптировал и усовершенствовал эту концепцию применительно к Биткоину.

Как устроены скрытые адреса

Представьте, что Боб хочет получить от Алисы перевод на свой скрытый адрес. Для этого он создает пару ключей: один — публичный (A), другой — приватный (B). Эти ключи используются для создания скрытого адреса, который позволяет Бобу получать средства анонимно. Публичный ключ A используется для того, чтобы генерировать уникальные одноразовые адреса для каждой транзакции, и именно на эти адреса отправляются средства. Боб делится только публичным ключом (A), который выглядит как случайный набор символов и не позволяет по нему определить, кто владелец и какие средства поступали на скрытый адрес.

Теперь очередь Алисы. Получив от Боба публичный ключ A, она генерирует случайное число. С помощью случайного числа и публичного ключа А, она вычисляет уникальный одноразовый адрес P, предназначенный только для этой транзакции. Именно на него она отправляет деньги. Чтобы Боб смог получить средства, Алиса также публикует в блокчейне дополнительную информацию — эфемерный публичный ключ (ephemeral pubkey), который не связан с ее постоянным адресом.

Боб, отслеживая блокчейн, находит нужный ephemeral pubkey, использует свой приватный ключ и криптографический алгоритм, чтобы восстановить тот самый одноразовый адрес P — и получить средства. Благодаря протоколу Диффи-Хеллмана, который позволяет безопасно обмениваться секретами даже через открытую сеть, все действия между Алисой и Бобом происходят без прямого взаимодействия и без утечек информации.

В результате каждая новая транзакция выглядит как совершенно независимая и уникальная: наблюдатель не сможет связать ее с предыдущими переводами на тот же скрытый адрес.

Псевдонимность Биткоина

Блокчейн Биткоина хранит данные открыто в виде публичного реестра, где буквально каждый может отследить переводы BTC. Если адрес будет связан с конечным пользователем, все входящие и исходящие переводы, таким образом, будут впоследствии связаны с этим человеком: либо в роли отправителя, либо в роли получателя. Также использование одного публичного ключа гипотетически может позволить сопоставить финансовую деятельность владельца, то есть поставить его конфиденциальность под угрозу.

Таким образом, анонимность Биткоина возможна лишь до тех пор, пока личность не будет сопоставлена с конкретным адресом в блокчейне. Вот почему анонимность BTC часто называют «псевдонимной». Более того, прозрачный блокчейн Биткоина полностью открыт для анализа. Через него можно не только отследить конкретную транзакцию, но и в целом собрать огромные данные о пользователе, если адрес был связан с конкретной личностью. «Утечка» может возникнуть, к примеру, в процессе KYC-верификации (принцип «знай своего клиента») на централизованных криптобиржах (CEX).

Метод использования скрытых адресов позволяет добиться большей анонимности и конфиденциальности при транзакциях. То есть скрытые адреса решают проблему «псевдонимности», обеспечивая сетевую анонимность на качественно ином уровне.

Возможная реализация скрытых адресов в Биткоине

Еще в 2014 году Петер Тодд предложил для Биткоина механизм скрытых адресов, позволяющий получателю публиковать один единственный «публичный адрес», через который можно принимать неограниченное количество платежей, при этом каждая входящая транзакция будет выглядеть как отдельная и никак не связанная с другими. Это достигается с помощью криптографии на основе эллиптических кривых, позволяющих создавать уникальные адреса для каждой транзакции без участия получателя.

Ключевая идея заключается в том, что отправитель использует временный ключ и вычисляет совместный секрет с постоянным публичным ключом получателя. Этот секрет применяется для генерации уникального адреса, к которому у отправителя нет доступа, а получатель может его «вычислить», сканируя блокчейн. Таким образом, третьи стороны не могут определить, кто получил средства, а отправитель не видит других транзакций, адресованных получателю. Кроме того, такое решение не требует изменений в самой структуре биткоин-транзакций и может быть реализовано поверх существующего протокола.

По сути, предложение Тодда позволяет добавить в Биткоин мощный слой приватности — без необходимости жертвовать надежностью или прибегать к внешним каналам передачи данных.

Скрытые адреса в Monero

Одной из самых известных анонимных криптовалют выступает Monero (XRM), где, помимо прочих методов достижения анонимности, используются скрытые адреса. Фактически, при создании и публикации одного адреса, все входящие переводы будут направляться на уникальные адреса в блокчейне. Для внешнего наблюдателя адреса не будут связаны с первоначальным опубликованным адресом, и только отправитель + получатель смогут определить, куда был направлен платеж.

Достигается это за счет использования (помимо публичного ключа) приватного ключа просмотра и приватного ключа траты, которые создаются вместе со счетом пользователя. Если ключ траты по своей функции напоминает приватный ключ в сети Биткоина и позволяет тратить полученные средства, то ключ просмотра позволяет отслеживать входящие переводы в блокчейне.

Помимо stealth addresses в Monero реализована технология кольцевых подписей, за счет которой значительно усложняется процесс отслеживания выхода транзакций. Monero использует протокол CryptoNote.

Скрытые адреса в Ethereum: стандарт ERC-5564

Для реализации скрытых переводов в сети Эфириума был предложен стандарт ERC-5564. В его основе лежит концепция stealth meta-address — специального публичного адреса, с помощью которого можно принимать незаметные транзакции.

Stealth meta-address (скрытый мета-адрес) — это набор из одного или двух публичных ключей, которые можно использовать для создания скрытого адреса получателя. Этот мета-адрес можно безопасно публиковать — он не раскрывает информацию о будущих скрытых адресах, которые будут созданы на его основе.

Чтобы отправить средства через ERC-5564, отправителю, соответственно, нужен только этот скрытый мета-адрес получателя. 

Если, например, Алиса хочет перевести монеты Бобу, она вводит его мета-адрес в совместимый с ERC-5564 интерфейс. Интерфейс генерирует случайное число и выполняет вычисления на эллиптической кривой. В результате получается уникальный одноразовый скрытый адрес и объявление (announcement) с эфемерным публичным ключом. Далее Алиса отправляет средства на этот адрес и публикует объявление. Благодаря объявлению Bob сможет найти транзакцию и, используя свой приватный ключ и опубликованное объявление, получить доступ к средствам.

Вывод

Технология скрытых адресов — это одно из возможных решений, направленное на повышение конфиденциальности транзакций и устранение проблемы «псевдонимности», свойственной многим блокчейнам вроде Биткоина. Stealth address — это одноразовые адреса, которые позволяют пользователю получать криптовалюту без раскрытия истории транзакций и раскрытия личности получателя. Помимо скрытых адресов, такие криптовалюты как Monero используют и другие технологии вроде кольцевых подписей, которые значительно усложняют процесс отслеживания выходов транзакций.