16 января 2023

Анонимность и псевдоанонимность: учимся различать

Анонимность — одна из базовых ценностей криптомира. Однако всегда ли мы правильно употребляем это слово? В рубрике Flashback сегодня вспоминаем основы теории и практики анонимности блокчейна. Спикер: Ник Байло, блокчейн-разработчик (ex-Satoshi.Fund). 

Подлинная анонимность: три критерия

Что Сатоши Накамото подразумевал под анонимностью блокчейна и биткоина?

Одним из обязательных критериев криптомира, блокчейна и биткоина в частности, является анонимность. Анонимность — частный случай двух более глобальных понятий: приватность и конфиденциальность. В блокчейне и финансовом мире анонимность означает три базовые вещи:

1) невмешательство в данные;

2) возможность их изоляции от внешних действий;

3) право их не раскрывать.

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

Действительно ли биткоин анонимен? 

Допустим, у нас есть купюра в сто долларов. Мы не знаем, откуда она, каков был ее путь, за что ей платили, за какой товар (законный или нет)  — купюра остается с тем же номиналом и значением. 

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

Одно из решений, позволяющих деанонимизировать адреса и цепочку всех транзакций — платформа Chainalysis. Приобретая пакет услуг, вы сможете выяснить, откуда пришел биткоин. Это нарушает fungibility. Взаимозаменяемость страдает, когда фирма не хочет принимать биткоин с темной историей и с историей вообще. 

Анонимность может быть нарушена самим пользователем. Публичные адреса могут быть слинкованы в самом неожиданном месте. 

Над вопросом анонимности на базе биткоина активно работают. Предпринимаются попытки достичь приватности высокого уровня. Отсутствие таких решений в самом протоколе привело к появлению надстроек.

Первые подобные предложения сделал в 2013 году кор-разработчик Грегори Максвелл. Ему принадлежит идея CoinJoin-транзакций, когда все входы и выходы группы пользователей собираются в одну транзакцию и принадлежность становится непонятной.

CoinJoin-подход в любом случае требует центрального оператора для смешивания. Существует эволюция этого метода под названием Coin Shuffle, где нет центрального оператора и пользователи сами смешивают транзакции. 

Следующим шагом в этом направлении является метод Confidential Transactions, когда сумма скрывается (известна только отправителю и получателю). Достигается с помощью разных криптографических приемов.

Приведем пример: 8+2=10. Если каждое из этих слагаемых и результат умножить на одно и то же число, например на десять, получится 80+20=100. Равенство сохранится, а числа будут другими. 

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

Для совершения конфиденциальных или CoinJoin-транзакций в рамках сети биткоин необходима определенная инфраструктура. Офчейн-разработка не вшита в протокол биткоина и требует доработки, создания кошельков и написания софта. Это процесс довольно трудозатратный, но в перспективе реализуемый.

ZKProof: цели и виды

Что такое доказательство с нулевым разглашением (zero-knowledge proof)?

Есть некий криптографический секрет и мы должны криптографически доказать знание этого секрета, не разглашая его самого. Это и будет доказательство с нулевым разглашением. Оно делится на два типа — интерактивное и неинтерактивное.

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

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

Какую роль играет неинтерактивный протокол с нулевым разглашением в приватности сети Zcash?

Обладание приватным ключом может скомпрометировать всю систему, поэтому у Zcash, криптовалюты, построенной на основе неинтерактивного доказательства, была целая церемония генерации приватных ключей. Шести людям дали задание купить компьютеры в определенном месте, удалить ненужный софт и следовать правилам генерации. Церемония, по замыслу организаторов, была направлена на то, чтобы ни один ключ не был скомпрометирован.  

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

В работе Zcash есть два вызова:

1. Количество пользователей криптовалюты определено специфическим функционалом. 

2. Возможное появление ошибок. К примеру — выпуск поддельных монет, не предназначенных для эмиссии.

Направления и перспективы

Можно ли считать монету Monero анонимной и чем она отличается от других?

Monero — это монета со своей инфраструктурой, в которую анонимность встроена по умолчанию. Один ее из разработчиков Рикардо Спаньи, публичная личность с адекватным видением, предупреждает о возможности ошибок или хакерских атак и не советует инвестировать в монету.  

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

Эта монета объединила в себе все лучшее и недорогое для имплементации и тем самым получила продукт более защищенный, чем другие. Протокол Monero не идеален, в нем присутствуют такие вещи, как слинковка транзакций, над которой еще нужно работать.

Какие проекты решают проблему анонимности?

В список инфраструктурных проектов, которые имеют свой уровень конфиденциальности, кроме Monero, можно включить ZenCash. Они дают возможность отправлять анонимные сообщения, анонимно хранить файлы и доменные имена.

Создание инфраструктуры для анонимных монет начинается с фундаментальных вещей: разработки протокола и определения его применения. Затем уже он обрастает сервисами. 

Если Zcash сконцентрирован на разработке протокола и криптографических победах, то ZenCash — реализация этого протокола, имплементация бизнес-кейсов в жизнь с помощью технологии. 

Другим примером решения задач, связанных с анонимностью, выступает проект MimbleWimble — модифицированные конфиденциальные транзакции для сокрытия точной суммы и инвалидации. Протокол был создан анонимным пользователем с ником Tom Elvis Jedusor (отсылка к персонажу, в русскоязычном мире известному как Волан-де-Морт). Он опубликовал white-лист с описанием на базе биткоина и с учетом модификации, допускающей удаление скрипта. Скрипт — это язык транзакции в биткоине, который позволяет создавать инфраструктуру поверх блокчейна. MimbleWimble оптимизировал количество данных, хранящихся в этом блокчейне, и мигрировал в проект Green, который претендует как раз на анонимность.

Насколько актуальна на рынке разработка монет с повышенной анонимностью?*

Фокус на данном направлении определенно присутствует, но не самый первостепенный. 

Разработчики Ethereum рассматривают в будущем* возможность имплементации протокола, на котором работает Zcash. Фундаментальные проекты мыслят в сторону внедрения анонимности, но только время может показать, что монету не сломали и криптографии можно доверять. 

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

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

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

*Подкаст был записан в октябре 2018 года.

Обсудить в Discord!