Хабрахабр

Как они это делают? Обзор технологий анонимизации криптовалют

Наверняка вы, как пользователь биткоина, эфира или любой другой криптовалюты, были обеспокоены тем, что любой желающий может видеть, сколько монет у вас в кошельке, кому вы их переводили и от кого получали. Вокруг анонимных криптовалют ходит много споров, но кое с чем нельзя не согласиться — как сказал управляющий проектом Monero Рикардо Спаньи (Riccardo Spagni) в своем Twitter-аккаунте: «Что если я просто не хочу, чтобы кассир в супермаркете знал, сколько денег у меня на балансе и на что я их трачу?»

image

В этой статье мы рассмотрим технологический аспект анонимности — как они это делают, и приведем краткий обзор наиболее популярных методов, их плюсы и минусы.

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

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

Основанные на замешивании

CoinJoin

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

Получается, что если Арнольд Шварценеггер и Барак Обама скинулись и совершили два платежа Чарли Шину и Дональду Трампу в одной транзакции, то становится сложнее понять, кто профинансировал предвыборную кампанию Трампа — Арнольд или Барак. В ее основе лежит простая идея — что если пользователи будут скидываться и проводить свои платежи единой транзакцией?

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

Плюсы:

• Простота

Минусы:

• Продемонстрирована возможность взлома

Monero

Первая ассоциация, которая возникает при словах «анонимная криптовалюта», — Monero. Эта монета доказала свою устойчивость и приватность под микроскопом спецслужб:

image

В одной из своих недавних статей мы очень детально описали протокол Monero, и сегодня суммируем сказанное.

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

А с сентября 2017 года Monero стала поддерживать протокол Confidential Transactions (CT) с некоторыми дополнениями, таким образом еще и скрывая суммы переводов. Для сокрытия получателей каждая вновь сгенерированная монета использует одноразовый адрес, что лишает наблюдателя возможности (настолько, насколько сложной является задача взлома ключей шифрования, разумеется) связать какой-либо выход с публичным адресом. Чуть позже разработчики криптовалюты заменили кольцевые подписи Борромео (Borromean signatures) на Bulletproofs, тем самым значительно уменьшив размер транзакции.

Плюсы:

• Проверена временем
• Относительная простота

Минусы:

• Генерация и верификация доказательства медленнее, чем у ZK-SNARKs и ZK-STARKs
• Не устойчива ко взлому с использованием квантовых компьютеров

Mimblewimble

Mimblewimble (MW) был придуман как масштабируемая технология анонимизации переводов в сети Bitcoin, но нашел свою реализацию как самостоятельный блокчейн. Используется в криптовалютах Grin и BEAM.

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

То есть суммы шифруются (а точнее, используется схема обязательств), и вместо них сеть оперирует так называемыми commitment-ами. Для сокрытия сумм входов и выходов используется довольно распространенный протокол, предложенный Грегом Максвеллом (Greg Maxwell) в 2015 году, — Confidential Transactions (CT). Так как цифрами напрямую сеть не оперирует, равенство обеспечивается при помощи уравнения этих самых commitment-ов, что называется commitment to zero. Чтобы транзакция считалась валидной, необходимо равенство сумм потраченных монет и сгенерированных плюс комиссия.

В связи с этим к минусам анонимных валют, использующих данную технологию, относили большой размер транзакции, однако сейчас решили отказаться от этих подписей в пользу более компактной технологии — Bulletproofs. В оригинале CT для гарантии неотрицательности значений (так называемый range proof) используют Borromean Signatures (кольцевые подписи Борромео), которые занимали очень много места в блокчейне (порядка 6 килобайт на один выход).

Нет транзакции — нет проблемы! В самом блоке MW нет понятия транзакции, есть только выходы, потраченные и сгенерированные в нем.

Чтобы предотвратить деанонимизацию участника перевода на этапе отправки транзакции в сеть используется протокол Dandelion, который использует цепочку proxy-нод сети произвольной длины, передающих транзакцию друг другу перед фактическим распространением ее по всем участникам, таким образом запутывая траекторию попадания транзакции в сеть.

Плюсы:

• Малый размер блокчейна
• Относительная простота

Минусы:

• Генерация и верификация доказательства медленнее, чем у ZK-SNARKs и ZK-STARKs
• Поддержку таких возможностей, как скрипты и мульти-подписи, сложно реализовать
• Не устойчива ко взлому с использованием квантовых компьютеров

Доказательства на полиномах

ZK-SNARKs

Замысловатое название этой технологии расшифровывается как «Zero-Knowledge Succinct Non-Interactive Argument of Knowledge», что можно перевести как «Сжатое неинтерактивное доказательство с нулевым разглашением». Она стала продолжением протокола zerocoin, который далее эволюционировал в zerocash и впервые был реализован в криптовалюте Zcash.

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

На официальной странице Zcash, первой валюты, реализующей этот протокол, описанию его работы посвящено 7 статей. ZK-SNARKs очень сложна для понимания, а для описания принципов ее работы потребуется не одна статья. Поэтому в этой главе мы ограничимся лишь поверхностным описанием.

С помощью алгебраических полиномов 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 также используют доказательства, основанные на полиномах. Но это имеет свою цену — доказательство может достигать в размере нескольких сотен килобайт. Отказ от этих криптографических средств делает технологию стойкой к квантовым алгоритмам.

Однако разработчики имеют на нее планы, далеко идущие за пределы блокчейнов (в своем White Paper авторы приводят пример с доказательством наличия ДНК в базе данных полиции). Сейчас ZK-STARK не имеют реализации в какой-либо из криптовалют, а существуют только в виде библиотеки libSTARK. Для этой цели была создана StarkWare Industries, которая на конец 2018 года собрала 36 млн долларов инвестиций от крупнейших компаний отрасли.

О том, как устроены ZK-STARK, подробнее можно прочитать в постах Виталика Бутерина (часть 1, часть 2, часть 3).

Плюсы:

• Устойчивость ко взлому квантовыми компьютерами
• Относительно быстрая генерация доказательства
• Относительно быстрая проверка доказательства
• Отсутствие токсичных отходов

Минусы:

• Сложность технологии
• Большой размер доказательства

Заключение

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

Monero неизменно остается непоколебимым гигантом на страже нашей конфиденциальности. Таким образом, полет научной мысли сделал CoinJoin устаревшим, а MimbleWimble — перспективным новичком с довольно свежими идеями. Возможно, в ближайшие годы указанные нами пункты в графе «Минусы» каждой из технологий станут неактуальными. А SNARKs и STARKs, хоть и имеют недостатки, могут стать лидерами области.

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»