Что такое CoinJoin?
Кто и когда создал CoinJoin?
Какую задачу решает CoinJoin?
Вопреки часто повторяемому тезису, биткоин не предлагает полной анонимности. При помощи анализа публичного блокчейна транзакции можно связать с конкретным человеком.
Биткоин-транзакции состоят из входов (отправляющих адресов) и выходов (получающих адресов). Когда пользователь хочет осуществить транзакцию, он выбирает неизрасходованные входящие остатки транзакций (UTXO) в качестве входов, обозначает выходы и подписывает входы. Каждый вход подписывается независимо, и пользователи могут устанавливать множество выходов.
Пример транзакции с четырьмя входами и двумя выходами:
Данная транзакция состоит из четырех входов (0,2 BTC каждый) и двух выходов (0,7 BTC и 0,09 BTC). Наблюдателю очевидно, что происходит платеж – отправитель посылает кому-то один из выходов и возвращает себе сдачу. Поскольку были использованы четыре входа, выход большего размера, скорее всего, предназначен получателю. Из выходов вычитается 0,01 BTC – это комиссия, которая достается майнеру.
Также наблюдатель может предположить, что отправитель хочет создать большой UTXO из меньших, поэтому объединяет меньшие входы с целью получения желаемого выхода (0,7 BTC).
Еще одно допущение, которое можно сделать, видя транзакцию, – что каждый вход подписывается независимо.
CoinJoin призван решить проблему отсутствия подлинной анонимности в биткоине.
Как работает CoinJoin?
Аналогией модели CoinJoin служит ситуация, когда группа людей объединяет свои наличные в единую сумму, кладет ее в кошелек, и отправляется в магазин. Все участники группы могут следить за тем, чтобы никто не тратил больше, чем следует, однако в процессе совершения покупок они не обязательно используют те самые банкноты, которые сами положили в общий кошелек.
В случае CoinJoin, несколько сторон совместно создают транзакцию; каждая сторона предоставляет входы и желаемые выходы. Когда все входы объединены, становится невозможно с уверенностью сказать, какому пользователю принадлежит тот или иной выход.
Пример:
Четыре участника хотят разорвать связь между транзакциями. Они договариваются между собой (или через специально выделенного координатора) и оглашают, какие входы и выходы хотят включить.
Координатор встраивает информацию в транзакцию, и каждый участник ставит подпись, после транзакция передается в сеть. После того, как участники подписались, транзакцию невозможно видоизменить; в противном случае, она становится недействительной. Таким образом, отсутствует риск кражи средств координатором.
Транзакция служит своего рода черным ящиком, в котором смешиваются монеты. Старые UTXO были уничтожены, и созданы новые. Единственная связь между старыми и новыми UTXO – сама транзакция, но идентифицировать ее участников невозможно. Самое большее, можно знать, что участник предоставил один из входов и, возможно, является новым владельцем конечного выхода.
Есть ли у CoinJoin слабые стороны?
- CoinJoin не обеспечивает полную анонимность: отправители и получатели отображаются в блокчейне. Кроме того, транзакции можно идентифицировать благодаря инструменту анализа CoinJoin Sudoku. С данной проблемой можно бороться, используя для выходных значений транзакций только определенные суммы (0,1 ВТС, 1 ВТС, 10 ВТС и т. п.), но это создает дополнительные сложности и ограничения.
- Для формирования транзакции необходимо создавать группы и налаживать взаимодействие участников.
Как развивается CoinJoin?
Где и как применяется CoinJoin?
По состоянию на апрель 2020 года технологию CoinJoin поддерживают два кошелька – мобильный Samourai Wallet с его связанной технологией Whirlpool и десктопный Wasabi Wallet.
5 апреля 2020 года, в предполагаемый день рождения Сатоши Накамото, биткоин-сообщество впервые отметило CoinJoin Day – день микширования транзакций. В честь этого дня разработчики Wasabi представили новый релиз.
Также CoinJoin применяется в MimbleWimble, PoW-протоколе с возможностями широкого масштабирования и повышенной приватности.
Что такое ZeroLink?
Кто и когда создал ZeroLink?
Как работает ZeroLink?
ZeroLink решает ключевую проблему, возникающую в процесс микширования по модели CoinJoin.Она состоит в том, что третьей стороне (индивидууму, серверу, кошельку) известны источник и назначение каждого биткоина. Таким образом, возникает единая точка отказа.
ZeroLink функционирует на основе кошельков двух типов: для пре-миксинга и для пост-миксинга. В кошельке первого типа хранятся начальные средства; пользователь посылает их в переключатель (tumbler), который распределяет микшированные биткоины по кошелькам с последующим микшированием.
Пользователи ZeroLink предоставляют входы и выходы (адреса «от» и «кому») из кошелька для пре-миксинга; выходы зашифровываются, благодаря чему переключателю неизвестны конечные получатели монет, которые ему поступают. Шифрование также известно как «ослепление».
Далее, переключатель криптографически подписывает «ослепленный» выход посредством криптографической «слепой подписи». Таким образом, данные транзакции можно верифицировать на каждом этапе, подтверждая соответствие «ослепленных» данных тем, что были посланы изначально.
Затем пользователи соединяются с переключателем ZeroLink посредством Tor или аналогичной сети, и предоставляют переключателю не «ослепленные» выходы. Их подписывают посредством все той же подписи «слепой» подписи и сравнивают с начальными ослепленными выходами, подтверждая их легитимность.
После подтверждения легитимности переключатель добавляет выходы в большую транзакцию CoinJoin и отсылает пользователям, которые посредством своих персональных ключей подтверждают транзакцию.
После подтверждения переключатель публикует транзакцию, которую майнеры добавляют в блок. Таким образом, все биткоины «очищаются» и снова становятся взаимозаменяемыми.
Где применяется протокол ZeroLink?
Что такое Stonewall?
Кто и когда разработал Stonewall?
Каковы особенности Stonewall?
Stonewall не использует технологию CoinJoin, однако создает видимость такого использования. По своей сути Stonewall-транзакции являются обычными транзакциями: при их помощи один пользователь отправляет биткоины другому. Хитрость состоит в том, что пользователи объединяют свои транзакции в одну, добавляя произвольное число выходов и выходов в стандартную транзакцию биткоина. Для стороннего наблюдателя транзакция выглядит как транзакция CoinJoin, что делает стандартный анализ блокчейна менее эффективным.
Транзакции с использованием Stonewall отличает большая, по сравнению со стандартными транзакциями биткоина, энтропия, что повышает стоимость автоматизированного анализа цепи и затрудняет анализ графа транзакций. Stonewall-транзакции осуществляются таким образом, что получают оценку Больцмана, превышающую ноль (Больцман – это скрипт, который возвращает транзакции энтропию, обеспечивая систему показателей связываемости входов и выходов посредством технологий отображения блокчейн-анализа).
Stonewall не настолько эффективна, как другие технологии, такие как Confidential Transactions (CTs), но позволяет уменьшить объем информации, доступной аналитикам блокчейна.
Где применяется Stonewall?
Источник: forklog.com