Британский разработчик Крис Белчер (Chris Belcher), участвующий в разработке многих проектов на Биткоине, включая Electrum и JoinMarket, на этой неделе опубликовал предложение по внедрению CoinSwap. Этот созданный семь лет назад протокол конфиденциальности, по мнению Белчера, может «значительно улучшить конфиденциальность и функциональность Биткоина».
Белчер написал, что в транзакциях с использованием CoinSwap кажется, что пользователь отправляет монеты с адреса A на адрес B, но «на самом деле его монеты оказываются на адресе Z, который совершенно не связан ни с A, ни с B».
CoinSwap был изначально предложен в 2013 году Грегом Максвеллом (Greg Maxwell), соучредителем Blockstream и создателем CoinJoin. Однако идея Максвелла была технически сложной для реализации и не была использована в течение семи лет.
В своем предложении Белчер использует тот же трюк со смарт-контрактом, который применяется в Lightning Network Биткоина, облегчая реализацию технологии. Белчер сказал, что протокол может быть готов к тестированию через шесть-восемь месяцев, а Максвелл высоко оценил реализацию Белчера как «обширный и хорошо написанный дизайн высокого уровня».
Предложение Белчера может решить главную проблему анонимности Биткоина. Поскольку адреса BTC находятся в открытом доступе, аналитическим компаниям довольно легко отследить их до IP-адресов. Протоколы анонимности, такие как CoinJoin, уже существуют, но их достаточно сложно использовать, и они работают только при соблюдении строгих правил.
Как работает CoinSwap
В случае с CoinJoin группы пользователей отправляют одинаковое количество BTC одновременно. Затем протокол обрабатывает их пакетами, чтобы скрыть источник транзакций. Поскольку транзакции сгруппированы в пакеты, все они имеют общую историю и выглядят одинаково.
Одна из проблем с CoinJoin заключается в том, что каждый пользователь должен ввести равное количество BTC в пакетную транзакцию, чтобы протокол сработал правильно. Если пользователь отправит неверное количество BTC, то конфиденциальность всех участников пакетной транзакции CoinJoin будет нарушена.
CoinSwap решает эту проблему, устраняя необходимость ввода в транзакцию равных сумм всеми участниками. Вместо того, чтобы микшировать много монет вместе, CoinSwap дает пользователям возможность осуществлять свопы, сначала отправляя их в промежуточный кошелек.
Если пользователи A и B захотят использовать CoinSwap, A начнет обмен, отправив BTC на адрес с мультиподписями. В то же время B отправляет BTC на другой кошелек с мультиподписями. Поскольку у A и В есть ключи к обоим кошелькам, они могут вывести монеты на свои адреса.
Криптографическая уловка, используемая в атомарных свопах и Lightning Network — контракты с блокировкой по времени — не позволяют сторонам обмануть друг друга. Чтобы завершить обмен, B забирает BTC с первого адреса, а A выводит монеты со второго.
Эти адреса с мультиподписями используют еще одну криптографическую хитрость, чтобы транзакции выглядели «как обычные транзакции с одной, а не несколькими подписями», - сказал Крис Белчер. «Своп не виден никому, кто анализирует цепочку, поэтому конфиденциальность повышается», - пояснил он.
Защита от атак
Белчер подчеркнул, что хорошо функционирующий рынок CoinSwap будет устойчив к атакам Сивиллы - своего рода спам-атакам, которые наполняют сеть фальшивыми аккаунтами.
Для достижения этой цели, как сказал Белчер, необходимо использовать те же так называемые «доверительные гарантии», которые помогают поддерживать честность участников в JoinMarket - одном из крупнейших центров CoinJoin для Биткоина. Участники выполняют запрос CoinSwap и должны поместить BTC «под залог», прежде чем они смогут участвовать в обмене.
Таким образом, это делает возможную спам-атаку слишком дорогостоящей, чтобы попытаться выяснить, кто использует CoinSwap. По словам Белчера, для того, чтобы злоумышленник смог добиться успеха, ему потребуется примерно 55 000 BTC, которые будут заблокированы в течение шести месяцев. Разработчик предполагает, что если CoinSwap масштабируется, потенциальные клиенты JoinMarket смогут микшировать крупные суммы, вплоть до 200 BTC.
Конфиденциальность по-новому
Соучредитель Wasabi Wallet Адам Фиксор (Adam Ficsor) сказал, что предложение «очень захватывающее», но он все еще «пытается выяснить, не устранит ли его практическая реализация магию самой идеи».
Wasabi обеспечивает ликвидность для плавной и конфиденциальной работы пулов CoinJoin. Вложение собственных денег в технологию помогает Wasabi сохранить анонимность участников транзакций и обеспечить осуществление транзакций, даже если пользователей недостаточно. Однако для реализации CoinSwap нужно заблокировать гораздо больше BTC, сказал Фиксор.
Для осуществления транзакций CoinSwap через свою платформу, Wasabi необходимо будет вносить дополнительные BTC в «доверительные гарантии» каждый раз, когда пользователи вступают в сделку. Фиксор пошутил, что ему придется сократить половину штата Wasabi, чтобы реализовать эту концепцию. Однако он все еще оценивает предложение, поэтому его опасения могут быть «полностью ошибочными».
Белчер надеется, что CoinSwap будет развиваться так же, как JoinMarket, где различные участники свободного рынка будут поддерживать оборот. Пока существует широкий круг пользователей и большой пул ликвидности, новый протокол сможет сдерживать атаки Сивиллы. Если это произойдет, CoinSwap может стать серьезной победой пользователей биткоина в битве за конфиденциальность.