Содержание

  • Вход

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

  • CoinJoin недир?

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

  • Конфиденциальность через отрицание

  • последние идеи


Вход

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

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

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


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

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

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

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


CoinJoin недир?

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

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

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


dört girdi ve iki çıktıya sahip örnek bir işlemin görseli


Когда мы исследуем транзакцию с четырьмя входами (0,2 BTC каждый) и двумя выходами (0,7 BTC и 0,09 BTC), мы можем сделать некоторые предположения. Первый заключается в том, что происходит оплата — отправитель отправляет одну из распечаток человеку, а сдачу себе. Поскольку он использует четыре входа, наиболее стабильный выходной сигнал, вероятно, поступает на приемник. Недостающие 0,01 BTC в выводе — это комиссия за транзакцию, уплаченная майнеру.

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

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


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

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


örnek bir coinjoin'in görseli


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

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

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

Но даже это не является полной гарантией. Глядя на вышеуказанную сделку, можно ли сделать вывод, что в ней участвуют четыре участника? Один человек отправляет средства на четыре разных адреса? Два человека совершают две разные покупки и отправляют 0,2 BTC обратно на свои адреса? Четверо человек отправляют средства новым людям или себе? На эти вопросы мы не можем дать однозначных ответов.


Конфиденциальность через отрицание

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

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


последние идеи

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

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