Введение

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

Однако присущая Биткойну публичная природа диктует, что ситуация иная. История данного токена (выходы неизрасходованных транзакций или, если быть точным, UTXO) доступна для просмотра каждому. Это очень похоже на запись суммы транзакции и имен участников на счете.

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


Что такое смешивание токенов?

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

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

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


Что такое CoinJoin?

Торговля CoinJion появилась в 2013 году и была впервые предложена разработчиком биткойнов Грегори Максвеллом. В своем посте он кратко представил структуру таких транзакций и способы получения высокой частной прибыли без изменения протокола.

По сути, транзакции CoinJoin включают данные от нескольких пользователей. Прежде чем объяснять, как работает эта технология, давайте сначала поймем структуру базовой транзакции.

Биткойн-транзакции состоят из входов и выходов. Когда пользователь желает совершить транзакцию, он принимает UTXO в качестве входных данных, указывает выходные данные и подписывает входные данные. Обратите внимание, что каждый вход имеет независимую подпись, но пользователь может настроить несколько выходов (с разными адресами).


image of an example transaction with four inputs and two outputs


Взяв в качестве примера данную транзакцию, состоящую из четырех входов (0,2 BTC каждый) и двух выходов (0,7 BTC и 0,09 BTC), мы можем сделать ряд предположений о ней. Сначала наблюдайте, как происходит платеж: отправитель отправляет кому-то один из выводов и впоследствии получает сдачу. Эта транзакция использует четыре входа, поэтому больший выход должен быть направлен получателю. Обратите внимание, что нам нужно заплатить майнеру комиссию, и на выходе потеряется 0,01 BTC.

Отправитель также может захотеть создать большой UTXO, объединив таким образом небольшие входные данные для достижения целевого вывода в 0,7 BTC.

Мы также можем предположить, что каждый вход имеет независимую подпись. В этой транзакции входные данные подписывают не более четырех сторон. Именно так работает CoinJoin.


Как работает CoinJoin?

Основная идея заключается в том, что несколько сторон сотрудничают для создания транзакций, при этом каждая сторона предоставляет входные данные и ожидаемые результаты. Когда все входные данные смешаны, другие не могут определить соответствие между выходными данными и пользователем. Давайте посмотрим на следующую диаграмму:


image of an example coinjoin


Как показано на рисунке, четыре участника хотят разорвать корреляцию между транзакциями. Они координируют свои действия друг с другом (или через специального координатора), чтобы объявить входные и выходные данные, которые они хотят учитывать.​

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

Эта транзакция действует как черный ящик для смешивания монет. Не забывайте, что мы уничтожаем исходный UTXO, чтобы создать новый UTXO. Единственная связь между старым и новым UTXO — это сама транзакция, и мы, конечно, не можем различить участников. В идеальной ситуации нужно просто знать, что есть участники, которые вносят вклад и могут быть владельцами выходных результатов.

Даже в этом случае мы не можем быть уверены на 100 процентов. Видя описанную выше транзакцию, кто может быть уверен, что участников четыре? Или только один человек отправляет средства на свои четыре адреса? Или два человека купили дважды каждый, и на их адреса поступило 0,2 BTC? Также возможно, что четыре человека отправили средства новым участникам или что средства вернулись обратно этому человеку. Мы не можем определить конкретные обстоятельства.


Защита конфиденциальности посредством «отрицания»

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

В приведенном выше примере мы предполагаем, что анонимный набор транзакций имеет 4 владельца ввода, а владельцем вывода может быть любой из этих 4 человек. Чем больше набор анонимности, тем ниже вероятность найти соответствие между транзакцией и первоначальным владельцем. К счастью, недавняя схема CoinJoin позволяет десяткам пользователей объединять входные данные без доверия, что значительно повышает «отрицание». Недавно CoinJoin успешно совершил сотни сделок.


Подведем итог

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

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