введение
Биткойн часто называют цифровыми деньгами, но это сравнение сомнительно. Если Алиса заплатит десять долларов наличными, Боб никогда не узнает, откуда взялись деньги. Если бы он затем отдал эти деньги Кэрол, Кэрол не знала бы, что деньги до этого находились во владении Алисы.
Биткойн отличается своей публичной природой. Любой может легко отслеживать историю конкретной монеты (точнее, ее неизрасходованный вывод транзакций (UTXO). Это все равно что писать сумму сделки и имена ее участников на бумажных деньгах каждый раз, когда они используются.
Однако псевдонимы общедоступных адресов гарантируют, что личности пользователей не будут легко раскрыты. Но Биткойн не является полностью частной валютой. Методы анализа сетей блокчейнов становятся все более изощренными и позволяют отслеживать адреса и идентифицировать личности с возрастающей эффективностью. Наряду с другими методами мониторинга организация или орган может раскрывать личности пользователей цифровой валюты. Чтобы решить эту проблему, за последние годы появились методы, позволяющие скрыть связи между транзакциями.
Что такое смешение валют?
В целом, смешивание валют может относиться к любой деятельности, которая включает в себя запутывание денег путем их обмена на другие деньги. Но в сфере криптовалюты микширование монет – это услуга, предоставляемая третьей стороной. Поставщики услуг обычно берут валюты пользователей (в дополнение к небольшой комиссии) и предоставляют им валюты, которые не имеют никакой связи с отправляемыми валютами. Эти услуги также известны как услуги рассеяния или услуги микширования.
Безопасность и анонимность этих централизованных сервисов, конечно, ставят их под сомнение. Пользователям не гарантируется, что их средства будут возвращены им из службы микширования или что возвращенные монеты не будут каким-либо образом повреждены. Еще один аспект, который следует учитывать при использовании гибридных сервисов, заключается в том, что ваш IP-адрес и адреса биткойн-кошелька могут быть зарегистрированы третьими лицами. В конечном итоге пользователи отказываются от контроля над монетами в надежде, что им вернут неотслеживаемые монеты.
Еще один метод, который некоторые считают более интересным, — это транзакции CoinJoin, которые создают высокую степень разумных сомнений относительно источника монет. Другими словами, после совершения транзакции CoinJoin пользователь не может быть окончательно связан с его предыдущими транзакциями. Многие решения CoinJoin предоставляют децентрализованную альтернативу сервисам микширования. Хотя в процессе может участвовать координатор, пользователям не нужно жертвовать хранением своих монет.
Что такое CoinJoin?
Транзакции CoinJoin — это предложение, впервые представленное разработчиком биткойнов Грегори Максвеллом в 2013 году. В сборнике написанных им сообщений Максвелл предоставляет краткий обзор конструкции этих транзакций и того, как их можно использовать для достижения огромного повышения конфиденциальности без изменения протокола. .
По своей сути транзакция CoinJoin предполагает объединение входных данных от нескольких пользователей в одну транзакцию. Прежде чем объяснить, как (и почему) это происходит, давайте посмотрим на структуру обычной транзакции.
Биткойн-транзакции состоят из входов и выходов. Когда пользователь хочет совершить транзакцию, он принимает неизрасходованные выходные данные транзакции в качестве входных данных, определяет выходные данные и ставит свою подпись на входных данных. Важно отметить, что каждый вход подписывается независимо от других входов, и пользователи могут размещать несколько выходов (т. е. отправлять монеты на разные адреса).

Если мы посмотрим на транзакцию с четырьмя входами (каждый стоимостью 0,2 BTC) и двумя выходами (0,7 BTC и 0,09 BTC), мы можем предположить несколько вещей. Сначала мы видим, как осуществляется какой-то платеж — отправитель отправляет кому-то один из этих выходов, а остальная часть возвращается отправителю. Поскольку использовалось четыре входа, больший выход, вероятно, предназначен для получателя. Обратите внимание, что в выводе отсутствует 0,01 BTC — это комиссия, выплачиваемая майнеру.
Также возможно, что отправитель хотел получить большой неизрасходованный вывод из небольшого вывода, поэтому он ввел небольшой ввод, чтобы в итоге получить 0,7 BTC, которые он хотел отправить.
Мы можем сделать предположение, основываясь на том факте, что каждый вход подписан изолированно от других входов. В этой сделке могут участвовать и подписывать сделки четыре стороны. В этом заключается принцип, который делает транзакции CoinJoin эффективными.
Как работают транзакции CoinJoin?
Идея состоит в том, что несколько сторон будут координировать свои действия для создания транзакции, при этом каждая сторона предоставляет желаемые входные и выходные данные. Когда все входы объединены, невозможно подтвердить, какой выход следует за каким пользователем. См. следующий рисунок:

Здесь у нас есть четыре участника, которые хотят скрыть связи между своими транзакциями. Эти участники координируют свои действия между собой (или через координатора) и объявляют желаемые входные и выходные данные.
Координатор возьмет всю информацию и осуществит из нее транзакцию, которую каждый участник подпишет перед отправкой в сеть. После того как участники подпишут, транзакция не может быть изменена без признания ее недействительной. Таким образом, нет никакой возможности, что координатор сбежит с деньгами.
Эта транзакция похожа на черный ящик для смешивания транзакций. Помните, что вы можете фактически уничтожить неизрасходованные выходные данные транзакций и создать новые. Связью между старыми и новыми исходами является одно и то же лечение, но различить участников невозможно. Максимум, что мы можем сделать, это сказать, что участник внес входные данные в эту транзакцию и может стать новым владельцем одного из результирующих выходных данных.
Но даже это не гарантировано. Кто может сказать, что в упомянутой ранее сделке участвуют четыре участника? Один человек отправляет монеты на четыре принадлежащих ему адреса? Или два человека, совершающие отдельные покупки, и 0,2 BTC вернутся на свои адреса? Или это четыре человека, отправляющие монеты другим участникам или возвращающие монеты себе? Не могу быть уверен.
Конфиденциальность через отрицание
Тот факт, что транзакции CoinJoin существуют, сам по себе достаточен, чтобы поставить под сомнение методы, используемые для анализа транзакций. Мы можем сделать вывод, что транзакции CoinJoin совершались во многих случаях, но мы не можем знать, кто является владельцами выходных данных. Поскольку их популярность растет, нельзя предполагать, что все входные данные обязательно принадлежат одному и тому же пользователю – огромный скачок в обеспечении конфиденциальности в экосистеме криптовалют.
В предыдущем примере мы говорили, что владельцем одного из его выходов может быть любой из четырех участников транзакции, и это число известно как слепой набор. Чем больше людей в группе шифрования, тем меньше вероятность того, что их транзакции будут связаны с первоначальным владельцем. К счастью, недавние реализации транзакций CoinJoin упрощают пользователям возможность безопасного объединения входных данных с десятками других пользователей, обеспечивая высокую степень отрицания. Недавно была успешно проведена сделка с участием 100 человек.
Заключительные мысли
Инструменты смешивания транзакций — важное дополнение к арсеналу любого пользователя, который серьезно относится к своей конфиденциальности. В отличие от предлагаемых обновлений конфиденциальности (например, конфиденциальных транзакций), он совместим с протоколом в его нынешнем виде.
Для тех, кто доверяет честности и поведению третьих лиц, комбинированные услуги являются простым решением. Но для тех, кто предпочитает поддающиеся проверке альтернативы, не связанные с хранением, альтернативы CoinJoin лучше. Эти транзакции могут выполняться вручную для опытных в технологиях пользователей или с использованием программного обеспечения, которое упрощает более сложные механизмы. Уже существует ряд таких инструментов, популярность которых постоянно растет, поскольку пользователи стремятся повысить уровень конфиденциальности.
