Псевдонимность означает использование узнаваемого обозначения вместо настоящего имени. В Bitcoin эту роль могут выполнять адреса и открытые ключи. Транзакции публичны, а возможность установить их участников зависит также от других доступных сведений.
Анна ведёт блог под псевдонимом Полярная звезда. Читатели узнают её статьи, но не обязательно знают настоящее имя. Адрес Bitcoin может работать похожим образом: люди узнают платежи, связанные с обозначением, в котором нет паспортного имени. Это и есть псевдонимность. Анна добавляет в блог адрес для пожертвований. Теперь читатель может следить за поступлениями на этот адрес. Если позднее Анна свяжет блог со своим именем, уже видимая история получит новый контекст. Никому не пришлось взламывать шифрование. Новая информация соединила две прежде отдельные вещи. Уже Bitcoin Whitepaper предупреждает: раскрытие одной связи может помочь распознать и другие транзакции. [1] [2]
Адрес Bitcoin указывает кошельку, какие условия расходования средств задать в новом выходе транзакции. Это не регистрация человека и не номер удостоверения личности. Выход содержит сумму и условия, при которых её можно потратить. Анна может использовать множество адресов, а общим кошельком могут управлять несколько людей. Закрытый ключ — это секретные данные, с помощью которых кошелёк создаёт цифровую подпись, одобряющую платёж. Public Key, то есть открытый ключ, позволяет проверять цифровые подписи, а не фамилию подписанта. Верная подпись подтверждает использование соответствующего закрытого ключа. Сама по себе она не отличает Анну от хранителя средств или вора, получившего этот ключ. Контроль над средствами и установление личности — разные вопросы. [4]
Если Анна использует адрес из блога также в рабочих счетах, она сама соединяет две стороны своей жизни. Читатели видят и другие поступления на тот же адрес, хотя могут не знать, какие из них являются пожертвованиями, а какие — оплатой клиентов. Новый адрес получения для каждого платежа ограничивает такую прямую связь. Обычный кошелёк способен создавать много адресов без открытия нового аккаунта и, как правило, охватывает их одной резервной копией. Но новый адрес не означает новую личность с гарантированной анонимностью. Другие сведения могут показать, что разными адресами пользуется один человек. [2]
Предположим, Анна покупает bitcoin на бирже, которая проверила её личность по процедуре KYC. Биржа знает её аккаунт и адрес, указанный для вывода средств. Сам вывод ещё не доказывает, что Анна контролирует адрес назначения: она могла отправить деньги другому человеку. Однако бирже известна конкретная связь, которой не знает случайный читатель блога. Продавец, в свою очередь, знает заказ и, возможно, адрес доставки. Эти данные не записываются автоматически в транзакцию Bitcoin и не становятся общедоступными. Но они могут дополнить её публичную запись. Поэтому приватность оценивают относительно конкретного наблюдателя и того, что ему действительно известно. [2]
Bitcoin не списывает и не зачисляет деньги на счета, открытые на имя людей. Платёж расходует прежние неизрасходованные выходы, называемые UTXO, и создаёт новые. Их суммы и взаимосвязи публичны. Наблюдатель видит реальные связи между транзакциями, но часто лишь предполагает, кто контролирует отдельные части. Это важное различие: публичная история движения стоимости не является готовым списком владельцев. Имя, ставшее известным позже, может пролить свет и на давние платежи. Удаление адреса из блога не стирает старые транзакции и не обязательно удаляет сохранённые копии самого блога. [1] [4]
Иногда кошелёк платит, объединяя несколько UTXO, и возвращает излишек на собственный адрес как сдачу, по-английски change. Аналитик может предположить, что объединённые входы принадлежат одному владельцу, и оценить, какой выход содержит сдачу. Так возникают группы адресов, считающихся связанными. Это эвристики: полезные выводы, а не доказательства личности. Например, CoinJoin и PayJoin позволяют нескольким участникам совместно создавать транзакцию. Поэтому даже убедительно выглядящая карта адресов не доказывает, что Анна контролирует их все. Надёжность такого вывода зависит от других свидетельств. [6]
Анна хочет просматривать кошелёк в другом приложении и экспортирует XPUB, расширенный открытый ключ. BIP 32 организует ключи в ветви, подобно дереву. По XPUB можно вычислить другие открытые ключи его ветви, но нельзя пройти шаг усиленного выведения: для него нужен закрытый ключ. Имея необходимые сведения о типе адресов, приложение может отслеживать связанные платежи. Сам XPUB не позволяет подписывать расходы, но может раскрыть прошлую и будущую активность этой ветви. Он не открывает автоматически все кошельки или счета, созданные из той же резервной копии. Тем не менее он даёт гораздо более широкий обзор, чем один адрес, переданный клиенту. [3]
Когда Анна ищет свой адрес в веб-обозревателе блокчейна, его оператор может связать запрос с её IP-адресом, то есть сведениями о сетевом подключении, либо с аккаунтом, в который она вошла. Похожие данные может получать сервер, через который кошелёк загружает историю. Эти служебные сведения отличаются от публичного блокчейна, но порой помогают связать его записи с человеком. Full Node — это компьютер с программой, которая самостоятельно проверяет транзакции и блоки Bitcoin по правилам сети. Собственный Full Node сокращает передачу таких запросов чужому серверу, если кошелёк действительно использует этот узел. Tor может ограничить раскрытие IP-адреса, но не убирает уже опубликованную связь между блогом и платежом. [2]
Платёж через Lightning Network обычно не записывается как отдельная транзакция в публичном блокчейне. Это убирает один видимый след, но не означает, что никто ничего не знает о платеже. Узел Lightning — это программа, управляющая платёжными каналами: соединениями, в которых две стороны обновляют распределение выделенных средств. Узел использует открытый ключ как свой идентификатор и может объявлять сети о своих публичных каналах. Запрос на оплату BOLT 11 позволяет определить идентификатор узла получателя; он также может содержать другие сведения о платеже и пути к получателю. Отправитель, получатель и используемый сервис располагают разной информацией. Публикация запроса может раскрыть её часть другим людям, хотя сам платёж проходит вне основной цепочки. [5] [7]
Прежде чем опубликовать адрес или открыть приложению историю, Анна может спросить себя: кто сможет связать какие сведения? Имеет смысл использовать новые адреса для отдельных платежей, знать, кому передаётся XPUB, и понимать, откуда кошелёк получает данные. Ни один из этих шагов сам по себе не обещает полной анонимности, а новая настройка не стирает старые связи. Цель — меньше раскрывать ненужных сведений и понимать, какие связи уже существуют. Это практичнее, чем надеяться, что длинная строка символов сама скроет человека. [2] [3]
Для полной картины прочитайте эту статью вместе с Приватность в Bitcoin, Биткоин-адрес, KYC, Address Clustering, Bitcoin, UTXO. На эту статью также ссылаются Приватность в Bitcoin, KYC, The Crypto Anarchist Manifesto, A Cypherpunk’s Manifesto.