Как они это делают? Обзор технологий анонимизации криптовалют
Наверняка вы, как пользователь биткоина, эфира или любой другой криптовалюты, были обеспокоены тем, что любой желающий может видеть, сколько монет у вас в кошельке, кому вы их переводили и от кого получали. Вокруг анонимных криптовалют ходит много споров, но кое с чем нельзя не согласиться — как сказал управляющий проектом Monero Рикардо Спаньи (Riccardo Spagni) в своем Twitter-аккаунте: «Что если я просто не хочу, чтобы кассир в супермаркете знал, сколько денег у меня на балансе и на что я их трачу?»
В этой статье мы рассмотрим технологический аспект анонимности — как они это делают, и приведем краткий обзор наиболее популярных методов, их плюсы и минусы.
Сегодня существует около десятка блокчейнов, позволяющих осуществлять анонимные транзакции. При этом для одних анонимность переводов обязательна, для других опциональна, одни скрывают только адресатов и получателей, другие не позволяют третьим сторонам видеть даже суммы переводов. Практически все рассматриваемые нами технологии дают полную анонимность — ни балансы, ни получателей, ни историю транзакций сторонний наблюдатель анализировать не может. Но начнем наш обзор с одного из первопроходцев в этой области, чтобы проследить эволюцию подходов к анонимности.
Существующие на данный момент технологии анонимизации условно можно разделить на две группы: основанные на замешивании — где используемые монеты замешиваются с другими монетами из блокчейна, — и технологии, которые используют доказательства, основанные на полиномах. Далее мы остановимся на каждой из этих групп и рассмотрим их плюсы и минусы.
Основанные на замешивании
CoinJoin
CoinJoin не анонимизирует переводы пользователей, а лишь усложняет их отслеживание. Но мы решили включить эту технологию в наш обзор, так как она была одной из первых попыток повысить уровень конфиденциальности транзакций в сети Bitcoin. Эта технология подкупает своей простотой и не требует изменения правил сети, поэтому может быть легко использована во многих блокчейнах.
В ее основе лежит простая идея — что если пользователи будут скидываться и проводить свои платежи единой транзакцией? Получается, что если Арнольд Шварценеггер и Барак Обама скинулись и совершили два платежа Чарли Шину и Дональду Трампу в одной транзакции, то становится сложнее понять, кто профинансировал предвыборную кампанию Трампа — Арнольд или Барак.
Но из главного плюса CoinJoin вытекает его главный минус — слабая защищенность. На сегодняшний день уже есть способы выявить CoinJoin-транзакции в сети и сопоставить наборы входов наборам выходов путем сравнения сумм потраченных и сгенерированных монет. Пример инструмента для такого анализа — CoinJoin Sudoku.
Плюсы:
• Простота
Минусы:
• Продемонстрирована возможность взлома
Monero
Первая ассоциация, которая возникает при словах «анонимная криптовалюта», — Monero. Эта монета доказала свою устойчивость и приватность под микроскопом спецслужб:
В одной из своих недавних статей мы очень детально описали протокол Monero, и сегодня суммируем сказанное.
В протоколе Monero каждый потраченный в транзакции выход замешивается с не менее чем 11 (на момент написания статьи) произвольными выходами из блокчейна, тем самым усложняя граф переводов в сети и делая задачу отслеживания транзакций вычислительно сложной. Замешанные входы подписываются кольцевой подписью, которая гарантирует, что подпись поставил владелец одной из замешанных монет, но не дает возможности определить, кто именно.
Для сокрытия получателей каждая вновь сгенерированная монета использует одноразовый адрес, что лишает наблюдателя возможности (настолько, насколько сложной является задача взлома ключей шифрования, разумеется) связать какой-либо выход с публичным адресом. А с сентября 2017 года Monero стала поддерживать протокол Confidential Transactions (CT) с некоторыми дополнениями, таким образом еще и скрывая суммы переводов. Чуть позже разработчики криптовалюты заменили кольцевые подписи Борромео (Borromean signatures) на Bulletproofs, тем самым значительно уменьшив размер транзакции.
Плюсы:
• Проверена временем
• Относительная простота
Минусы:
• Генерация и верификация доказательства медленнее, чем у ZK-SNARKs и ZK-STARKs
• Не устойчива ко взлому с использованием квантовых компьютеров
Mimblewimble
Mimblewimble (MW) был придуман как масштабируемая технология анонимизации переводов в сети Bitcoin, но нашел свою реализацию как самостоятельный блокчейн. Используется в криптовалютах Grin и BEAM.
MW примечателен тем, что не имеет публичных адресов, а для того чтобы отправить транзакцию, пользователи обмениваются выходами напрямую, таким образом исключая возможность стороннему наблюдателю проанализировать переводы от адресата к адресату.
Для сокрытия сумм входов и выходов используется довольно распространенный протокол, предложенный Грегом Максвеллом (Greg Maxwell) в 2015 году, — Confidential Transactions (CT). То есть суммы шифруются (а точнее, используется схема обязательств), и вместо них сеть оперирует так называемыми commitment-ами. Чтобы транзакция считалась валидной, необходимо равенство сумм потраченных монет и сгенерированных плюс комиссия. Так как цифрами напрямую сеть не оперирует, равенство обеспечивается при помощи уравнения этих самых commitment-ов, что называется commitment to zero.
В оригинале CT для гарантии неотрицательности значений (так называемый range proof) используют Borromean Signatures (кольцевые подписи Борромео), которые занимали очень много места в блокчейне (порядка 6 килобайт на один выход). В связи с этим к минусам анонимных валют, использующих данную технологию, относили большой размер транзакции, однако сейчас решили отказаться от этих подписей в пользу более компактной технологии — Bulletproofs.
В самом блоке MW нет понятия транзакции, есть только выходы, потраченные и сгенерированные в нем. Нет транзакции — нет проблемы!
Чтобы предотвратить деанонимизацию участника перевода на этапе отправки транзакции в сеть используется протокол Dandelion, который использует цепочку proxy-нод сети произвольной длины, передающих транзакцию друг другу перед фактическим распространением ее по всем участникам, таким образом запутывая траекторию попадания транзакции в сеть.
Плюсы:
• Малый размер блокчейна
• Относительная простота
Минусы:
• Генерация и верификация доказательства медленнее, чем у ZK-SNARKs и ZK-STARKs
• Поддержку таких возможностей, как скрипты и мульти-подписи, сложно реализовать
• Не устойчива ко взлому с использованием квантовых компьютеров
Доказательства на полиномах
ZK-SNARKs
Замысловатое название этой технологии расшифровывается как «Zero-Knowledge Succinct Non-Interactive Argument of Knowledge», что можно перевести как «Сжатое неинтерактивное доказательство с нулевым разглашением». Она стала продолжением протокола zerocoin, который далее эволюционировал в zerocash и впервые был реализован в криптовалюте Zcash.
В общем случае zero-knowledge proof позволяет одной стороне доказать второй истинность некоторого математического утверждения, не раскрывая никаких сведений о нем. Относительно криптовалют такие методы используют для доказательства того, что, например, транзакция не производит монет больше, чем тратит, не раскрывая при этом сумм переводов.
ZK-SNARKs очень сложна для понимания, а для описания принципов ее работы потребуется не одна статья. На официальной странице Zcash, первой валюты, реализующей этот протокол, описанию его работы посвящено 7 статей. Поэтому в этой главе мы ограничимся лишь поверхностным описанием.
С помощью алгебраических полиномов ZK-SNARKs доказывает, что отправитель платежа владеет монетами, которые тратит, и что сумма потраченных монет не превосходит суммы сгенерированных.
Этот протокол создавался с целью уменьшения размера доказательства валидности утверждения и при этом быстрой его верификации. Так, согласно презентации Зуко Вилкокса (Zooko Wilcox), CEO Zcash, размер доказательства занимает всего 200 байт, а проверить его корректность можно за 10 миллисекунд. Причем в последней версии Zcash разработчикам удалось снизить и время генерации доказательства до примерно двух секунд.
Однако перед началом использования этой технологии требуется процедура сложной настройки доверенными лицами (trusted setup) «общественных параметров», которая называется «церемонией» (The Ceremony). Вся сложность заключается в том, чтобы в ходе установки этих параметров ни у одной из сторон не осталось приватных ключей от них, называемых «токсичными отходами», иначе она получит возможность генерировать новые монеты. О том, как происходит эта процедура, можно узнать из видео на YouTube.
Плюсы:
• Малый размер доказательства
• Быстрая верификация
• Относительно быстрая генерация доказательства
Минусы:
• Сложная процедура установки публичных параметров
• Токсичные отходы
• Относительная сложность технологии
• Не устойчива ко взлому с использованием квантовых компьютеров
ZK-STARKs
У авторов последних двух технологий хорошо получается играть с акронимами, и очередной акроним расшифровывается как «Прозрачное масштабируемое доказательство с нулевым разглашением» («Zero-Knowledge Scalable Transparent ARguments of Knowledge»). Этот метод был призван решить имеющиеся на тот момент недостатки ZK-SNARKs: необходимость в доверенной установке публичных параметров, наличие токсичных отходов, неустойчивость криптографии к взлому с помощью квантовых алгоритмов и недостаточно быструю генерацию доказательства. Однако с последним недостатком разработчики ZK-SNARK справились.
ZK-STARKs также используют доказательства, основанные на полиномах. Технология не подразумевает использование криптографии на публичных ключах, вместо этого полагаясь на хэширование и теорию передачи информации. Отказ от этих криптографических средств делает технологию стойкой к квантовым алгоритмам. Но это имеет свою цену — доказательство может достигать в размере нескольких сотен килобайт.
Сейчас ZK-STARK не имеют реализации в какой-либо из криптовалют, а существуют только в виде библиотеки libSTARK. Однако разработчики имеют на нее планы, далеко идущие за пределы блокчейнов (в своем White Paper авторы приводят пример с доказательством наличия ДНК в базе данных полиции). Для этой цели была создана StarkWare Industries, которая на конец 2018 года собрала 36 млн долларов инвестиций от крупнейших компаний отрасли.
О том, как устроены ZK-STARK, подробнее можно прочитать в постах Виталика Бутерина (часть 1, часть 2, часть 3).
Плюсы:
• Устойчивость ко взлому квантовыми компьютерами
• Относительно быстрая генерация доказательства
• Относительно быстрая проверка доказательства
• Отсутствие токсичных отходов
Минусы:
• Сложность технологии
• Большой размер доказательства
Заключение
Блокчейн и растущий спрос на анонимность ставят перед криптографией новые требования. Так, зарожденный в середине 1980-х раздел криптографии — доказательства с нулевым разглашением — всего за несколько лет пополнился новыми динамично развивающимися методами.
Таким образом, полет научной мысли сделал CoinJoin устаревшим, а MimbleWimble — перспективным новичком с довольно свежими идеями. Monero неизменно остается непоколебимым гигантом на страже нашей конфиденциальности. А SNARKs и STARKs, хоть и имеют недостатки, могут стать лидерами области. Возможно, в ближайшие годы указанные нами пункты в графе «Минусы» каждой из технологий станут неактуальными.