Вопрос конфиденциальности при осуществлении деятельности с крипто-активами в текущем году стал важным. К примеру, вы можете даже не предполагать, что ваши монеты ETH украли уже очень давно, в каком-нибудь 2014 году. Такие средства для торговых площадок являются «серыми» и «грязными» криптовалютами. Очень часто начала происходить блокировка средств определенных пользователей из-за того, что у них имелись подобные активы на балансе. Поэтому Андрей Бугаевский, директор по развитию криптопроекта Incognito,принял решение заняться исследованием и узнать, какие существуют методы скрыть баланс кошелька и историю транзакций для таких цифровых активов, как ETH и USDT.
Вступление
В первые несколько месяцев 2020 года практически все лидеры крипто-индустрии начали с энтузиазмом рассматривать вопросы приватности в криптовалютах и публичных блокчейн-протоколах.
Стоить обозначить, что все транзакции в Bitcoin и Ethereum являются публичными. Что это значит? Например, вы как-то раз отправили крипто-активы вашему другу, у него будет возможность узнать счёт вашего кошелька, он даже сможет увидеть всю историю ваших прошлых транзакций и в дальнейшем также он сможет наблюдать за этим.
Приватность является очень важной технической проблемой криптовалют. Но в 2017-2018 годах, например, когда криптовалюты начали становиться популярными, никто не думал о сохранение конфиденциальности личных данных и средств.
В прошлом году рынок криптовалют нуждался очень сильно в новых идеях для массовой адаптации данной сферы. Таким образом, появились DeFi — протоколы для децентрализованных финансов, которые основаны на таком блокчейне, как Ethereum (он публичный).
Несомненно, эти новшества делали лучше ситуацию, но этого было недостаточно. Тогда в начале текущего года основатель биржи Coinbase Брайан Армстронг опубликовал статью, в которой утверждал, что режим конфиденциальности при работе с цифровыми активами является чрезвычайно важным аспектом, который позволит применять криптовалюты в повседневной жизни.
В последние месяцы лидеры многих блокчейн-проектов начали обсуждать необходимость режима приватности для своих таких протоколов, как: Litecoin, Ethereum и Zcash, Bitcoin Cash, Tezos, Cardano, Binance и zilliqa.
Эксперимент
Так как в настоящее время есть множество проектов, которые активно осуществляют деятельность по конфиденциальности для хранения и перевода активов, существующих на базе 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-протокол очень крутой, но будем честны с собой, у нас с ним не заладилось.
Идём дальше.
Starkware
Starkware — это технологическая компания, которая изучает проблемы приватности в публичных блокчейн-протоколах. Фото Виталика Бутерина на главной странице сайта даёт нам понять то, что темой приватности занимаются в данный момент очень тщательно. Но продуктов, которые можно было бы применять здесь и сейчас, у них нет.

Поиск функционала приватности в Startware. Источник.
Вперёд и только вперёд!
Enigma
Enigma, как и Startware, занимается исследованиями и не производит решений.
В доступе находится много документации, SDK и корпоративных особенностей. Точно не наш случай.

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

Ознакомление с работой команды Zether по исследованию приватности для смарт-контрактов. Источник.
Не отчаиваемся!
Миксеры
Саша видел очень много твитов от Виталика Бутерина с упоминанием миксеров на эфире.
Tornado Cash
В tornado cash в доступе находятся транзакции только с фиксированными суммами в 100 и 1000 USDT. Опять неудача.

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

Депозит 100 USDT на Tornado cash. Источник.
Депозит прошел успешно!

Подтверждение депозита на Tornado cash. Источник.
Но тут что-то пошло не так. Видимо, после депозита необходимо ждать еще как минимум 24 часа до того момента, когда мы сможем отправить транзакцию Вове. Но это не беда.

Уведомление о том, что для дальнейшей отправки средств необходимо ждать как минимум 24 часа. Источник.
Промежуточный подсчет итогов
Итак, целый день потрачен. 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%)
Уровень приватности: низкий (Макс сумел вычислить адрес, с которого были переведены средства)
Криптовалюты придут в нашу повседневную жизнь тогда, когда решится вопрос с приватностью, но радует то, что это должно произойти совсем скоро, так как многие проекты заинтересовались этим.