Вопрос анонимности и конфиденциальности при работе с крипто-активами в 2020 году встал особо остро. Так, например вы можете даже не знать, что приобретенные вами монеты ETH были кем-то украдены в далеком 2015. При этом торговые площадки активно следят за такими средствами, помечая их как «серые» и «грязные» криптовалюты. Более того, с начала 2020 года участились случаи, когда криптовалютные биржи блокируют средства пользователей по причине наличия таких активов на счету. В связи с этим Андрей Бугаевский, директор по развитию криптопроекта Incognito, решил провести эксперимент и узнать, какие существуют способы скрыть баланс кошелька и историю транзакций для таких цифровых активов, как ETH и USDT.

Предисловие

В первые несколько месяцев 2020 года почти все лидеры крипто-индустрии активно обсуждали вопросы приватности в криптовалютах и публичных блокчейн-протоколах.

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

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

В 2019 году рынок криптовалют в целом переживал своего рода застойный период, а все криптокомьюнити было в поисках новых прорывных идей для массовой адаптации отрасли. Так возникло и погасло пламя IEO, но вместо этого загорелся факел DeFi — протоколов для децентрализованных финансов. Почти все DeFi-процессы построены на блокчейне Ethereum, который тоже является публичным и «прослушиваемым».

Все эти инновации двигали крипторынок вперед, но было ощущение, что этого всего недостаточно для повседневного использования и мирового доминирования криптовалют. Первые ласточки о грядущем тренде крипторынка появились в начале 2020 года, когда основатель биржи Coinbase Брайан Армстронг опубликовал статью, в которой указал, что режим конфиденциальности при работе с цифровыми активами является критически важным аспектом, который позволит использовать криптовалюты в повседневной жизни.

В последние месяцы лидеры многих блокчейн-проектов начали говорить о необходимости режима приватности для своих протоколов, среди них: Litecoin, Ethereum и Zcash, Bitcoin Cash, Tezos, Cardano, Binance и zilliqa. К счастью, блокчейн Ethereum обладает наиболее совершенной экосистемой, способной создавать и развивать продукты на основе своего протокола.

Эксперимент

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

 Выбрать самые известные криптопроекты, в том числе, рекомендованные Виталиком Бутериным.

 Попробовать с их помощью конфиденциально отправить $50 в ETH или USDT.

Результаты эксперимента оказались довольно неожиданными для меня лично. Но обо всем по порядку.

Так как мы говорим о повседневном использовании криптовалют, а взял за основу случай из жизни. В нем Илья работает в криптосфере и получает оплату в стейблкоинах USDT. Его друг Макс тестировал DeFi-продукты, и ему не хватало немного средств для погашения долга. Макс попросил Илью одолжить 50 USDT. Илья готов это сделать, но он не хотел бы, чтобы Макс знал адрес его кошелька, так как там хранится множество других активов и сбережений.

«Без проблем», — сказал Илья. И начал искать способ отправить 50 в USDT или эфире, но конфиденциально. В нашем случае «конфиденциально» значит, что Макс не сможет узнать, с какого кошелька пришел платеж и не сможет проверить его баланс.

Илья зашел на ethhub.io (ресурс с документацией для Ethereum-протокола), чтобы выяснить, какие самые популярные средства обеспечения приватности транзакций существуют на рынке.

В теории есть три таких способа при работе с криптовалютами:

 Onchain — интегрированные решения в основной код сети

 Layer2 — решения второго уровня

 Mixers — криптовалютные миксеры

Имплементации первого решения еще пока на практике не существует, поэтому попробуем изучить подробно второй и третий варианты. Для этого рассмотрим возможности обеспечения приватности, построенные на основе Zero Knowledge proof (zkp) технологии:

 Aztec — строит эффективный протокол конфиденциальности на основе zkp и децентрализованного обмена.

 Starkware Industries — используют технологию STARK для увеличения пропускной способности и приватности в Ethereum.

 Enigma — протокол создает «секретные контракты», которые позволяют делать вычисления на основе блокчейн-технологий вместе с шифрованием данных.

 Zether — технология для конфиденциальных транзакций и механизм платежей на основе блокчейн-технологий.

Средства приватности на основе «Миксеров»:

 Tornado cash — миксер, использующий zk-SNARKS технологию.

 Heiswap — миксер, имплементирующий технологию похожую на ту, что использует сеть Monero.

Вызов принят. Начинаем с решений на основе ZKP-технологии

Держим в уме цель — нам нужно отправить 50 USDT или ETH конфиденциально, без «засвечивания» адреса своего кошелька.

Aztec-протокол

Для начала Илье нужно подключить свой кошелек к Aztec-протоколу.

Пользовательский интерфейс сайта Aztec-протокола. Источник.

Упс, и вот первая проблема. Aztec-протокол не поддерживает режим приватности для ETH и USDT, только для токенов DAI. В данной ситуации DAI — это стейблкоин, поэтому он нас также устраивает. Давайте попробуем разобраться с тем, как сделать конфиденциальный перевод.

Описание вариантов приватности на сайте аztec. Источник.

Похоже, что с Aztec-протоколом можно осуществить приватную транзакцию в DAI только через API или SDK. К сожалению, Илья 3 года в криптомире, но до сих пор не владеет достаточными знаниями для отправки криптовалют через API, прямо здесь и сейчас.

Документация по запуску приватных транзакций для Azteс-протокола. Источник.

В целом Aztec-протокол выглядит довольно круто, но мы должны честно признать, что наша миссия провалена.

Но у нас есть еще 5 потенциальных способов, поэтому двигаемся дальше.

Starkware

Этот выстрел, похоже, тоже был холостым.

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

Поиск функционала приватности в Startware. Источник.

А мы двигаемся дальше.

Enigma

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

Доступно много документации, SDK и корпоративных особенностей. Точно не наш случай.

Поиск функционала приватности от протокола Enigma. Источник.

Хочу напомнить, что Илья по-прежнему ищет способ отправки 50 USDT или ETH с полной конфиденциальностью. И за основу этой статьи взято тестирование отмеченных решений в реальном времени. На самом деле, уже не важно, что отправлять — ETH или USDT. Отправить бы уже хоть что-нибудь.

Проект Zether

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

Ознакомление с работой команды Zether по исследованию приватности для смарт-контрактов. Источник.

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

Вызов принят — 2. Миксеры

Тем не менее, осталось довольно много надежд на миксеры. Илья видел довольно много твитов от Виталика Бутерина с упоминанием миксеров на эфире.

Tornado Cash

Как только Илья открыл веб-сайт проекта, сразу возникло ощущение, что цель будет достигнута. Однако в tornado cash доступны транзакции только с фиксированными суммами в 100 и 1000 USDT. Попытка отправки средств с мобильного телефона потерпела неудачу.

Неудачная попытка отправки транзакции в Tornado Cash с мобильного телефона. Источник.

Поэтому Илья перешел на десктопную версию. У него уже было установлено расширение MetaMask (Ethereum-кошелек, интегрированный в веб-браузер). Поэтому Илья сразу перешел к депозиту 100 USDT на Tornado Cash.

Депозит 100 USDT на Tornado cash. Источник.

Депозит прошел успешно!

Подтверждение депозита на Tornado cash. Источник.

Но тут его ждал новый сюрприз. Похоже, что после депозита нам нужно ждать еще как минимум 24 часа до того момента, когда мы сможем отправить транзакцию Максу.

Уведомление о том, что для дальнейшей отправки средств необходимо ждать как минимум 24 часа. Источник.

Промежуточный подсчет итогов

К счастью, Tornado Cash работает, но Илье надо ждать следующего дня, чтобы завершить транзакцию. Он уже не доволен тем, что согласился на эту авантюру. Целый день потрачен. 100 USDT заморожены, а Макс так и не получил свой перевод.

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

Илья вернется к Tornado Cash через 24 часа. А у нас остался последний шанс отправить криптовалюты сегодня.

Heiswap

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

На первый взгляд, интерфейс очень похож на Tornado cash. Различие лишь в том, что Tornado cash поддерживает ETH и USDT, a Heiswap — только ETH c минимальной суммой транзакции в 1 ETH.

Пока Илья пытался осознать, что теперь вместо 50 USDT нужно отправить 1 ETH, выяснилось, что Heiswap работает только на Ropsten (тестнет блокчейна Ethereum) и не позволяет отправлять реальные ETH через их миксер.

Интерфейс миксера Heiswap. Источник.

На следующий день у Ильи получилось завершить конфиденциальную транзакцию.

Уведомление об успешной отправке транзакции получателю. Источник.

Мы решили спросить Макса, может ли он узнать, с какого адреса ему был отправлен платеж. Макс зашел на популярный сервис Etherscan.io, ввел адрес своего кошелька и смог выяснить, откуда конкретно пришла транзакция.

Адреса кошельков и список транзакций, осуществленных для отправки средств через Tornado cash и записанных на блокчейн. Источник.

Финальный подсчет итогов

Илье удалось отправить средства через Tornado Cash. 5 других способов оказались работающими в теории, но не на практике и не для повседневного использования.

Ниже приведены детальные параметры по отправке транзакции через Tornado Cash.

 Отправлено средств: 100 USDT

 Статус: успешно

 Задержка: 24 часа

 Уплаченная комиссия: $6.39 (6.39%)

 Уровень приватности: низкий (Макс сумел вычислить адрес, с которого были переведены средства)

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