Топ-8 новейших технологий для защиты анонимности в сети биткоина
Биткоин можно пересылать без указания личных данных, и поэтому его часто называют анонимной валютой. Однако это крайне ошибочная формулировка — приватность пользователя биткоина на практике оказывается под большим вопросом, если не сказать, что часто она просто невозможна.
Более правильным определением биткоина будет псевдонимность. Отправление биткоин-транзакций можно сравнить с написанием книги, где вместо настоящего имени автора указан его псевдоним. Если этот псевдоним окажется связан с настоящим автором, все, что он будет писать под этим именем, будет ассоциироваться только с ним.
В биткоине в роли псевдонима выступает адрес, на который пользователь получает монеты или с которого отправляет средства. Каждая транзакция с участием этого адреса навсегда сохраняется в блокчейне, и если адрес связан с каким-либо пользователем, все остальные транзакции также будут связаны с ним.
В white paper Сатоши Накамото рекомендуется каждый раз при совершении новой транзакции использовать новый адрес, что можно сравнить с написанием многих книг под разными псевдонимами. Эта рекомендация остается актуальной и сегодня, однако часто и этого оказывается недостаточно, чтобы обеспечить приватность и анонимность пользователей.
Помочь этому — с разной степенью эффективности — могут технологии, предложенные разработчиками биткоина. Ниже представлен адаптированный перевод статьи Аарона ван Вирдума в Bitcoin Magazine, посвященный наиболее обещающим последним проектам по защите приватности и анонимности в сети биткоина.
С самого момента своего появления биткоин никогда не давал настоящей приватности. И хотя white paper Сатоши Накамото и говорит о том, что приватность является целью протокола, правительственные структуры, аналитические компании и другие заинтересованные стороны (давайте называть их «шпионами») обладают возможностями анализировать публичный блокчейн и p2p-сеть, группируя биткоин-адреса и связывая их с IP-адресами или другой идентификационной информацией.
Недостаточная приватность — это проблема. Назовем лишь несколько примеров: пользователи биткоина могут не желать, чтобы кто-то знал, на что они тратят свои деньги, сколько они зарабатывают и чем владеют, а компании могут не желать, чтобы информация о транзакциях попала к конкурентам. Кроме того, недостаточная приватность может привести к утрате взаимозаменяемости — характеристики, означающей, что каждая монетарная единица имеет ту же ценность, что и любая другая. Это основополагающее требование к деньгам. Например, если можно установить, что определенные монеты в какой-то момент были использованы в политически неоднозначных целях, у кого-то может оказаться меньше желания принимать эти «запятнанные» монеты в качестве оплаты, а это наносит ущерб взаимозаменяемости всех биткоинов.
К счастью, вести слежку за пользователями биткоина становится все сложнее. В последнее время появилось несколько решений по повышению приватности, некоторые из них будут доступны до конца этого или в течение следующего года.
1. TumbleBit
Разработка TumbleBit ведется уже почти два года, и это одно из самых ожидаемых решений, направленных на защиту анонимности пользователей биткоина. TumbleBit представляет собой протокол микширования монет, который использует централизованный переключатель для создания платежных каналов между участниками сессии микширования. Используя эти каналы, все участники сессии могут отправлять монеты и получать в ответ соответствующее количество других монет. Этот процесс уничтожает следы владения монетами — ни шпионы, ни другие участники сессии не могут определить, кто и кому платил. Что еще более важно, TumbleBit использует такие криптографические приемы, которые не дают возможности даже самому переключателю установить связь между пользователями.
TumbleBit требует двух ончейн-транзакций на участника (одна для открытия канала, другая — для его закрытия). Это решение работает в не требующей доверия среде, однако связано с более высокими транзакционными комиссиями.
TumbleBit впервые был предложен в 2016 году научно-исследовательской командой Бостонского университета, Университета Джорджа Мейсона и Университета штата Северная Каролина под руководством Этана Хейлмана. Осенью того же года протокол был представлен на конференции Scaling Bitcoin Milan.
Настоящим толчком к развитию TumbleBit стала имплементация ранней версии протокола [NTumbleBit — ForkLog], автором которой является разработчик NBitcoin Николас Дориер. Позже технологию усовершенствовали специализирующийся на вопросах приватности Адам Фичор и другие разработчики, и в итоге она была интегрирована в Breeze Wallet от команды Stratis.
Официальный релиз Breeze Wallet состоялся около месяца назад, и это означает, что TumbleBit теперь доступен любому пользователю, хотя уровень использования кошелька и, соответственно, самого инструмента для обеспечения анонимности, пока еще невысок.
2. Chaumian CoinJoin и ZeroLink
Технология CoinJoin была впервые предложена разработчиком Bitcoin Core Грегори Максвеллом еще в 2013 году. Суть приема заключается в объединении нескольких транзакций в одну большую транзакцию, за счет чего скрывается, какие именно биткоины пересылаются с отправляющих адресов (входы) на получающие адреса (выходы).
Простой пример: предположим, что Элис, Боб и Кэрол хотят смикшировать монеты между собой. При помощи CoinJoin они могут создать транзакцию, которая будет отправлять деньги им самим на новые адреса, не привязанные к их идентификационным данным. При условии, что Элис, Боб и Кэрол имеют одинаковое количество монет, шпионы не могут определить, кому именно принадлежат эти новые адреса. Однако, если количество монет будет отличаться, будет легко определить, какие монеты и куда были отправлены.
CoinJoin-транзакции доступны уже много лет, однако долгое время присутствовала одна проблема: кому-то — Элис, Бобу или Кэрол — необходимо эту транзакцию создать. Этот человек должен знать, какие именно старые адреса используются для отправки монет на новые адреса, иначе создать транзакцию будет невозможно. Если этот человек окажется шпионом, что часто нельзя предугадать, все усилия становятся бессмысленными: шпион может установить принадлежность монет.
Эту проблему, впрочем, можно решить, используя прием, который в том же 2013 году упомянул Грегори Максвелл. Он называется Chaumian CoinJoin (в честь схемы слепой подписи, разработанной Дэвидом Чаумом — см. Генезис-архивы: eCash Дэвида Чаума и рождение мечты шифропанков).
При этом методе Элис, Боб и Кэрол подключаются к центральному Chaumian CoinJoin-серверу, оператором которого может выступать провайдер кошелька. Сперва они предоставляют все свои отправляющие адреса, а также получающие адреса, криптографически подписанные сервером. После этого Элис, Боб и Кэрол отключаются от сервера, чтобы переподключиться через скрытое соединение (например, Tor) и предоставить уже демаскированные адреса. Задействовав технологию слепых подписей Чаума, сервер может верифицировать, что эти демаскированные адреса соответствуют замаскированным адресам, то есть подтвердить, что адреса действительно принадлежат Элис, Бобу и Кэрол, а не атакующему. При этом сервер по-прежнему не знает, какой из адресов кому принадлежит.
После своего появления предложение Chaumian CoinJoin еще около четырех лет пылилось на полке. Однако около года назад во время работы над TumbleBit для Breeze Wallet Адам Фичор открыл это предложение заново и решил заняться его имплементацией.
В частности, этот метод был встроен в фреймворк ZeroLink, который также разработал Адам Фичор, и теперь имплементирован в ориентированный на приватность пользователей кошелек Wasabi Wallet, недавно вышедший в бета-режиме. Разработчики Samourai Wallet тем временем анонсировали мобильную имплементацию ZeroLink под названием Whirlpool. Кроме того, работу над имплементацией ZeroLink ведет команда еще одного нового кошелька под названием Bob Wallet.
3. Подписи Шнорра
Несмотря на то что технология CoinJoin, а затем и Chaumian CoinJoin, была предложена еще несколько лет назад и все это время была доступна, по-настоящему она так и не была реализована. CoinJoin-транзакции требуют определенного уровня технической подкованности и дают мало преимуществ тем, кто о приватности особенно не заботится, и ни один из популярных кошельков ее так и не предложил.
Подписи Шнорра, технология, которую разработчик Bitcoin Core и Blockstream Питер Велле недавно представил в виде официального предложения по улучшению биткоина, могут эти преимущества дать.
Названные так в честь своего изобретателя Клауса-Петера Шнорра, подписи Шнорра считаются многими криптографами лучшими из имеющихся криптографических подписей. Их практическим преимуществом для биткоина является возможность объединить множество подписей в одну. Это означает, что для транзакции требуется только одна подпись, вне зависимости от того, как много отправляющих адресов в нее включено.
CoinJoin-транзакции также включают в себя множественные отправляющие адреса, как минимум по одному для каждого участника. Подписи Шнорра таким образом предлагают дополнительное преимущество при использовании CoinJoin: они дают всем участникам не только возможность объединить свои транзакции в одну, но также объединить все подписи в этой транзакции. Это делает размер CoinJoin-транзакции меньше, чем у всех отдельных транзакций вместе взятых, и как следствие ведет к снижению транзакционных комиссий, взимаемых майнерами.
Таким образом, подписи Шнорра дают экономическую выгоду при использовании этой ориентированной на защиту анонимности опции, и это может оказаться достаточным стимулом для того, чтобы ее внедрили кошельки, сделав доступной для широкого круга пользователей.
Кроме того, математические свойства подписей Шнорра будут содействовать развитию таких решений в стиле смарт-контрактов, как scriptless scripts, Taproot и Graftroot. Примечательно, что эти решения будут отображаться в блокчейне как обычные биткоин-транзакции. Это даст возможность создавать, например, фьючерсные рынки, децентрализованные биржи или страховые контракты, где шпионы будут видеть только обычные на вид транзакции.
По оптимистичным прогнозам подписи Шнорра будут доступны в 2019 году.
4. STONEWALL
Еще одна связанная с CoinJoin и направленная на обеспечение приватности технология под названием STONEWALL была представлена разработчиками Samourai Wallet в мае 2018 года. Суть метода заключается в том, что, не используя CoinJoin, он создает впечатление, что это на самом деле происходит.
По своей сути STONEWALL-транзакции являются обычными транзакциями: при их помощи один пользователь отправляет биткоины другому. Хитрость состоит в том, что они включают в себя необязательное количество отправляющих адресов и изменяют получающие адреса. Благодаря этому создается видимость CoinJoin-транзакции, хотя в действительности это не так. (Подробная информация доступна здесь).
Идея STONEWALL-транзакций состоит в том, чтобы помешать шпионам, когда они делают какие-либо заключения при анализе блокчейна биткоина. Если шпионы не могут достоверно определить, имеют ли они дело с CoinJoin-транзакциями или нет, любое заключение, которое основывается на этих данных, оказывается бесполезным.
Samourai Wallet также готовит релиз 2-wallet STONEWALL — подлинных CoinJoin-транзакций между двумя пользователями, которые доверяют друг другу в вопросах приватности. Как ожидается, он состоится в течение ближайшего месяца или двух.
5. Dandelion
Совершенно другой метод деанонимизации пользователей биткоина заключается в анализе p2p-сети — ноды-шпионы могут мониторить сеть в попытке определить происхождение транзакций, поскольку первая нода, которая передает транзакцию, скорее всего ее и создала.
Решение под названием Dandelion было предложено командой исследователей из Университета Карнеги-Меллона, Университета Иллинойса и Массачусетского технологического института (MIT). Профессор Университета Карнеги-Меллон Джулия Фанти презентовала его на недавней конференции Building on Bitcoin в Лиссабоне.
Dandelion затрудняет анализ сети, изменяя порядок распределения транзакций. Вместо немедленной трансляции и передачи новой транзакции как можно большему числу нод, протокол отправляет новую транзакцию только одной ноде. Эта нода случайным образом решает, передает ли она дальше эту транзакцию следующей ноде или нет. Если транзакция передается только одной ноде, эта следующая нода принимает точно такое же рандомное решение и т. д.
Если транзакция не передается только одной ноде, эта нода транслирует транзакцию как можно большему числу других нод, и точно так же поступают все эти ноды. Это значительно затрудняет возможность определения происхождения транзакции.
Предложение получило положительный отклик в сообществе разработчиков биткоина, и есть вероятность, что Dandelion будет включен в Bitcoin Core. Впрочем, для новой версии 0.17.0, решение, скорее всего, готово не будет.
6. BIP-151
BIP-151 — еще одно более старое предложение по ограничению анализа сети биткоина от разработчика Bitcoin Core и Shift Йонаса Шнелли. В определенной степени оно достаточно прямолинейное: метод позволяет биткоин-нодам шифровать проходящий между ними трафик (транзакции и данные о блоках).
В своем чистом виде BIP-151, однако, не является панацеей по обеспечению приватности. Не только блокчейн биткоина является публичным, но и, что более важно, ноды могут обмениваться данными с теми самыми шпионами, от которых они предпочли бы эти данные скрывать. Тем не менее BIP-151 может быть основой для противодействия нескольким разновидностям атак на анонимность, включая атаку посредника. Также используемое при этом методе p2p-шифрование может оказаться полезным и при других сценариях — например, становится невозможным отслеживание трафика в сети биткоина через ISP или открытые wifi-сети.
После своего появления BIP-151 несколько лет оставалось в тени, однако недавно Шнелли снова вернулся к этому предложению, переписав его с целью дальнейшего обсуждения и потенциального включения в кодовую базу биткоина. Возможно, это произойдет уже в следующем году.
7. Компактная фильтрация блока на стороне клиента
Чтобы пользоваться биткоином без необходимости скачивать и верифицировать весь блокчейн, многие обращаются к легким клиентам, например, мобильным кошелькам. К сожалению, у всех этих легких клиентов очень слабый уровень защиты приватности: как правило, они делятся адресами с центральным сервером или рандомной нодой в сети, которые могут быть шпионами или сами находиться под наблюдением.
Многие легкие клиенты, которые делятся адресами с рандомной нодой, используют метод под названием «Упрощенная верификация платежей» (Simplified Payment Verification — SPV). Для запроса потенциально релевантных для них транзакций эти SPV-клиенты обычно используют фильтр Блума.
Этот фильтр может дать ложнопложительное срабатывание, означающее, что даже если пользователь и не скачивает весь блокчейн, SPV-клиент запрашивает большее число транзакций, чем ему фактически необходимо. Таким образом SPV-кошельки фактически раскрывают все свои адреса нодам, у которых они запрашивают данные.
Для решения этой проблемы разработчики Lightning Labs Олаолува Осунтокун и Алекс Аксельрод, а также разработчик Coinbase Джим Поусен предложили новое решение под названием «компактная фильтрация блока на стороне клиента».
Изначально оно было задумано для Lightning-кошелька Neutrino от Lightning Labs, но также может быть использовано и обычными биткоин-кошельками. Так, компактная фильтрация блока на стороне клиента уже интегрирована в бета-релиз Wasabi Wallet.
Суть решения заключается в фактическом нарушении порядка работы SPV-кошельков: вместо запроса релевантных транзакций посредством создания фильтра Блума, полные ноды создают другой похожий фильтр, благодаря которому эти транзакции не отображаются. Если же фильтр находит соответствие, кошелек вместо ложнопложительного срабатывания обращается к релевантному блоку чтобы увидеть, действительно ли это соответствие относится к конкретной транзакции.
Таким образом, поскольку SPV-кошельки с компактной фильтрацией блока на стороне клиента больше не запрашивают у блока какой-либо специфической информации, они также не раскрывают никаких данных об истории транзакций.
8. Liquid и Confidential Transactions
Liquid стал первым коммерческим сайдчейном, разработанным блокчейн-компанией Blockstream. Его главная задача — обеспечить каналы транзакций между биржами и другими биткоин-компаниями с высокими объемами (например, брокерами), давая им возможность пересылать друг другу биткоин и другие активы намного быстрее, чем это позволяет блокчейн биткоина. В будущем обычные пользователи (в первую очередь трейдеры) также должны получить доступ к сайдчейнам через специальные Liquid-кошельки.
Одна из имплементированных в Liquid функций — Confidential Transactions (конфиденциальные транзакции). Это криптографический метод маскировки суммы отправляемых и получаемых средств, при котором все пользователи Liquid могут верифицировать, что полученные суммы не превышают отправленные суммы. Другими словами, не зная, какие именно суммы были отправлены, они могут верифицировать, что монеты не были созданы из воздуха.
В контексте Liquid это среди прочего означает, что средства могут перемещаться между биржами и никто не будет знать, о каких именно суммах идет речь. Конкуренты не смогут знать, какие суммы хранятся на биржах, а трейдеры не смогут использовать такую информацию при торгах, что они нередко делают сегодня: публичная природа блокчейна дает возможность тем, кто располагает информацией о предстоящей крупной операции, заключить сделку для получения прибыли от изменения цен.
Кроме того, когда Liquid станет доступен обычным трейдерам, они смогут использовать протокол для сокрытия своих балансов от шпионов не только когда перемещают средства на другую биржу, но и когда выводят их с биржи на временный адрес в сайдчейне.
Дополнительно для Liquid-кошельков могут быть разработаны решения в стиле CoinJoin, что обеспечит особенно мощные комбинации технологий по защите приватности. Например, при объединении нескольких транзакций в одну и одновременном сокрытии сумм установить связи между адресами будет практически невозможно.
Более того, Confidential Transactions также могут быть имплементированы в основной протокол биткоина, и уже есть несколько идей, как это выполнить через обратно совместимый софтфорк. Впрочем, несмотря развитие технологий, такие апгрейды все еще будут оказывать негативный эффект на масштабируемость и, скорее всего, по-прежнему далеки от реальности.
Отметим, что в данный обзор не вошли более старые методы вроде stealth-адресов, где полная нода биткоина используется в качестве кошелька, CoinControl, JoinMarket и других CoinJoin-решений, Ricochet, PayNyms, Spinx в Lightning Network, Monero-swapping и централизованных сервисов микширования.
Также данный обзор не следует рассматривать в качестве рекомендации по использованию того или иного продукта или метода: перед тем как отправлять куда-либо свои монеты, пользователям необходимо провести собственный анализ.
Подписывайтесь на канал Forklog в YouTube!
Рассылки ForkLog: держите руку на пульсе биткоин-индустрии!