Что не так с блокировкой Tornado Cash
8 Августа 2022 года Министерство Финансов США внесло крипто-миксер Tornado Cash в санкционный список на том основании, что через него было отмыто более 7 миллиардов долларов за 3 года, в том числе хакерами из Северной Кореи. Через смарт-контракт действительно было проведено более 7 миллиардов долларов — но всё не так просто.
Tornado Cash был внесён в санкционные списки из-за отказа вводить меры контроля, позволяющие остановить отмывание средств киберпреступников. Министерство Финансов будет агрессивно преследовать миксеры, отмывающие виртуальные средства для преступников и тех, кто им помогает — заявил заместитель секретаря Министерства Финансов по вопросам терроризма и финансовой разведки Брайан Нельсон.
10 Августа Голландской службой фискальной информации и расследований был задержан один из создателей Tornado Cash — Алексей Перцев. Причина для задержания — подозрение в причастности к сокрытию преступных финансовых потоков и содействии при отмывании денег через компанию Tornado Cash, позволяющую пользователям анонимизировать транзакции на основе блокчейна.
12 Августа были заблокированы:
- Организация Tornado Cash на сайте GitHub.com. Она содержала в себе открытый код самого смарт-контракта, веб-приложение и остальной сопутствующий код. Сейчас организацию и репозиторий самого смарт-контракта можно посмотреть только через Wayback Machine;
- Сервер, управляемый сообществом, в discord.com;
- Все средства в стейблкоине USDC, ожидающие вывода, — заблокированы компанией эмитентом Circle;
- Домен tornado.cash;
- Доступы к децентрализованным платформам — opensea.io, dydx.exchange, aave.com — для людей, которые хоть раз получали перевод от смарт-контракта Tornado Cash.
Инфраструктурные провайдеры infura.io и alchemy.com также перестали предоставлять свои услуги Tornado Cash.
Сотни людей были шокированы задержанием Алексея Перцева:
Виталик Бутерин — создатель блокчейна Ethereum — заявил, что использовал Tornado Cash для пожертвований.
Также после внесения Tornado Cash в санкционные списки неизвестный пользователь начал рассылать всем известным людям минимальную сумму через Tornado Cash. И некоторые сервисы заблокировали кошельки, на которые были сделаны эти переводы. Пострадал, например, создатель блокчейна Tron Джастин Сан — его заблокировал протокол быстрых займов Aave.
Что такое Tornado Cash
Tornado Cash — это смарт-контракт (программа, которая хранится не на одном сервере, а на всех компьютерах, подключенных к блокчейну) для анонимизации переводов, работающая почти во всех самых популярных блокчейнах — Ethereum, BSC, Polygon и т.д. Эта программа основана на доказательстве с нулевым разглашением — криптографическом протоколе, позволяющем одной стороне убедиться в достоверности какого-либо утверждения, не имея информации о второй стороне.
Смарт-контракт Tornado Cash был запущен в Августе 2019 года, а затем весь его исходный код был выложен в публичный доступ на GitHub. Это значит, что любой опытный пользователь мог запустить свою версию Tornado Cash.
Как он работает:
-
Перед отправкой пользователь генерирует секретную фразу;
-
Хэш от этой секретной фразы отправляется смарт-контракту вместе с суммой в ETH;
-
Для вывода отправленных средств пользователь отправляет смарт-контракту с нового кошелька секретную фразу, смарт-контракт проверяет, что для этой секретной фразы есть средства, и переводит их на новый кошелёк.
В блокчейне все видят всё: сколько и кому вы перевели средств, а также какое сообщение вы к нему приложили. И в таких сложных условиях анонимность достигается благодаря двум вещам:
- Всего 4 опциям для перевода — 0.1, 1, 10 и 100 ETH за раз (такие же 4 опции есть для токенов — DAI, USDC, USDT...). Это создает тысячи одинаковых переводов в блокчейне. Если тысяча разных человек перевела на один аккаунт тысячу одинаковых сумм, а потом этот аккаунт перевел тысяче других людей такие же одинаковые суммы — то вы не сможете сказать, кто кому перевёл средства.
- Доказательству с нулевым разглашением. Говоря простым языком, математика позволяет доказать, что тебе что-то принадлежит, так, чтобы никто этого не понял. Более подробно это выглядит так: у смарт-контракта есть набор хэшей в Merkle Tree и пользователь доказывает ему, что он знает ключ к одному из них, не раскрывая секретную фразу, а также не раскрывая, к какому хэшу он имеет доступ. Также это доказательство сохраняется, чтобы смарт-контракт мог убедиться, что хэш уже был использован.
Почему это важно
Финансовая анонимность была утеряна, когда мы начали пользоваться банками и картами. Государство сразу обязало банки отчитываться о всех клиентах и переводах. Сейчас, имея доступ к вашему банковскому аккаунту, можно понять, где вы работаете, где обедаете и как проводите свободное время.
Если вы думаете, что финансовая анонимность не важна, то представьте, что сейчас 2022 год, вы живете в России, и у вас есть родственник в Украине, которому российские войска взорвали дом. Как только вы решите помочь ему и сделаете денежный перевод — вероятность того, что к вам приедет полиция (а то и ФСБ) станет невероятно высокой — ведь вдруг вы перевели эти деньги ВСУ или ЗСУ.
Алексей Перцев, Роман Семенов и Роман Шторм создали инструмент, который помогает людям сохранять приватность их финансовой жизни. Алексей уже задержан, и, учитывая агрессивность заявлений Брайана Нельсона, это задержание может закончиться не только допросом, но и экстрадицией в США со всеми вытекающими из этого последствиями.
Но разве должны быть посажены в тюрьму строители дорог, если по этим дорогам ездят преступники?