Как концептуально работает Tornado Cash, который попал под санкции США?

HabrОпубликовано 2022-08-24Обновлено 2022-08-24

Введение

8 августа 2022 года Управление по контролю за иностранными активами Министерства финансов США (OFAC) наложило санкции на Tornado Cash, миксер криптовалюты, что вызвало шквал обсуждений в криптосреде. В этой статье разберем как концептуально работает криптомиксер Tornado Cash, что было понять, что есть в этой технологии, что против нее вводят санкции.

Что такое Tornado Cash?

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

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

Tornado Cash — является децентрализованным криптомиксером, это значит, что он использует смарт-контракты, которые принимают криптовалюту, а затем позволяют выводить их на другие адреса. Поскольку вывод средств производится из пулов ликвидности смарт-контрактов проекта, невозможно узнать, кто является первоначальным отправителем. Это скрывает поток средств и затрудняет их отслеживание.

Анонимная связка адреса отправителя и адреса получателя возможна благодаря технологии доказательства с нулевым разглашением (Zero-knowledge proof). Доказательство с нулевым разглашением позволяет вам доказать истинность утверждения, не раскрывая содержание утверждения и не раскрывая, как вы обнаружили истину. Конкретно Tornado Cash использует протокол zk-SNARK.

Важно отметить, что, используя zk-SNARK, Tornado Cash позволяет вам вносить в контракт фиксированные суммы ETH, DAI, USDC или USDT. Когда вы вносите деньги (Deposit), вы получите резервный код, который вам понадобится для вывода (Withdrawal) средств позже.

Почему фиксированные суммы? Например, вы внесли 0,1 ETH, а также помимо вас это сделали еще 303 человека. А поскольку процес передачи средств в смарт-контракт являтся общедоступной информацией, когда вы вносите 0,1 ETH, эти 0,1 ETH позже можно будет отследить до этой группы из 303 человек, но не до вас напрямую.

Алгоритм работы

Размещение (Deposit)

Прежде чем Алиса вложит деньги в Tornado Cash, ей нужно будет выбрать два случайных числа: secret и nulifier, а затем она вычислит хэш этих двух случайных чисел.

Чтобы внести(разместить) депозит в Tornado Cash, Алиса отправит 1 ETH и хэш чисел secret и nulifier. Пускай в нашем примере это будет 0x404.

⠀⠀

Отправленный эфериум хранится в смарт-контракте, как и хэши, которые необходимы для определения обязательств, хэш позже будет использоваться для вывода этого 1 ETH из Tornado Cash.

⠀⠀

Вывод средств

⠀⠀

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

⠀⠀

Итак, неправильный путь это когда выводящий средства, передаст в смарт контракт числа secret и nulifier, а смарт-контракт проверит, что хэш есть в хранилище смарт-контракта и отдаст нужное кол-во ETH. Подобный процесс раскрывает личность выводящего деньги из смарт-контракта. Например, мы знаем, что Алиса разместила в смарт-контракте хэш 0x404,а позже появляется анонимный пользователь передающий secret и nulifier, так что хеш secret и nulifier равен 0x404, но поскольку хеш-функция является односторонней функцией, это означает, что единственный человек, который знает secret и nulifier, который хэширует в 0x404 - это Алиса. Именно так личность пользователя раскрывается при снятии средств. Итак, как мы можем решить эту проблему.

⠀⠀

Если каким-то образом есть возможность доказать, что я знаю secret и nulifier, так что hash (secret,nulifier) есть в смарт-контракте, но без раскрытия secret и nulifier. Тогда анонимный пользователь мог бы отсылать в смарт-контракт некое доказательство что он знает secret и nulifier без фактической отправки этих чисел или хэша, а смарт-контракт проверял бы, действительно ли доказательство, при этом смарт-контракт не знал бы, предназначено ли доказательство для 0x404 или для 0x403 или 0x505, которые также записаны в смарт-контракт, другими словами, доказательство не раскрывало бы личность анонимного пользователя.

⠀⠀

⠀⠀

Подобный механизм называется доказательством с нулевым разглашением, то есть, когда вы можете доказать, что вам известна какая-то информация, не раскрывая ничего о фактической информации. Конкретно Tornado Cash использует криптографический протокол zk-SNARK.

⠀⠀

Что за nulifier?

⠀⠀

Узнав, что смарт-контракт проверят действительно ли доказательство, но не знает для какого конкретно хэша, какой-нибудь хакер захотел бы много раз отправить одно и тоже доказательство, чтобы получить много ETH. Поэтому, чтобы предотвратить подобное двойное использование, когда вы отправляете доказательство для вывода, вам также нужно будет отправить хэш nulifier внутри доказательства.

⠀⠀

⠀⠀

И тогда "внутри" zk-SNARK будет проверятся:

⠀⠀

— что hash(secret,nulifier) есть в смарт-контракте;

— корректность, что хэш от nulifier == hash(nulifier).

⠀⠀

После этих проверок, смарт-контракт отдаст ETH и "запишет", что вывод средств был произведен.

⠀⠀

Хранение данных

⠀⠀

Для того, чтобы осуществлять большое количество проверок хэшей в Tornado Cash данные хранится в Merkle tree.

⠀⠀

Использование хеш-деревьев позволяет "малыми" затратами проверять принадлежности определённого блока данных к множеству.

⠀⠀

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

⠀⠀

Зеленым отмечены хэши которые понадобятся нам для проверки, что синий элемент принадлежит к множеству средств внутри Tornado Cash

⠀⠀

Доказательства с нулевым разглашением ZKPs

⠀⠀

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

⠀⠀

⠀⠀

Концептуальный пример для интуитивного понимания данных доказательства в условиях нулевого разглашения это представить себе пещеру с одним входом, но двумя путями (путь A и B), которые соединяются через общую дверь, запертую кодовой фразой. Алиса хочет доказать Бобу, что она знает код доступа к двери, но не раскрывая код Бобу. Для этого Боб стоит снаружи пещеры, а Алиса идет внутрь пещеры, выбирая один из двух путей (при этом Боб не знает, какой путь был выбран). Затем Боб просит Алису вернуться к входу в пещеру по одному из двух путей (выбранных случайным образом). Если Алиса изначально выбрала путь А к двери, но затем Боб просит ее вернуться по пути Б, единственный способ решить головоломку для Алисы — это знать код доступа к запертой двери. Этот процесс может быть повторен несколько раз, чтобы доказать, что Алиса знает код доступа к двери и не выбрала правильный путь изначально с высокой степенью вероятности.

⠀⠀

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

⠀⠀

Итог

⠀⠀

Теперь у нас есть все, чтобы понять, как работает Tornado Cash (TC). Когда вы вносите 1 ETH по контракту Tornado Cash , вы представляете хэш доказательство. Этот хэш будет храниться в Merkle. Когда вы снимаете этот 1 ETH с другой учетной записи, вы должны предоставить 2 доказательства с нулевым разглашением. Первый доказывает, что дерево Меркель содержит ваши хэши. Это доказательство является доказательством с нулевым разглашением. Но этого недостаточно, потому что вам должно быть разрешено снять этот 1 ETH только один раз. Из-за этого вы должны предоставить nulifier, уникальный для доказательства. Контракт хранит этот nulifier,и это гарантирует, что вы не сможете снять внесенные деньги более одного раза.

⠀⠀

Заключение

⠀⠀

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

IvanRomanovich для Habr.com.

Похожее

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

Коалиция католических лидеров, правоохранительных и правозащитных групп предупреждает, что законопроект CLARITY Act может ослабить механизмы противодействия преступлениям с использованием криптовалют. Основная критика направлена на положения, которые защищают разработчиков некстодиального программного обеспечения от регулирования как денежных операторов. Это затрагивает один из самых сложных вопросов в регулировании криптоиндустрии: как отличить нейтральное программное обеспечение от финансового посредничества. Сторонники криптовалют утверждают, что разработчики, публикующие некстодиальный код, не должны регулироваться как биржи или платёжные системы. Критики опасаются, что широкие исключения затруднят отслеживание нелегальных финансовых потоков. Некстодиальное программное обеспечение является основой DeFi. Кошельки, смарт-контракты и децентрализованные протоколы позволяют пользователям совершать операции без передачи контроля над средствами компании. Эта архитектура является ключевой ценностью криптовалют, но также создаёт проблемы для правоохранительных органов, когда те же инструменты используют злоумышленники. Законопроект CLARITY Act направлен на создание чётких правил структуры рынка, но возникшая оппозиция показывает, что не все законодательные дебаты касаются только защиты инвесторов. При определении степени защиты разработчиков некоторые законодатели также будут учитывать вопросы борьбы с торговлей людьми, уклонением от санкций, мошенничеством и необходимость обеспечения прозрачности для правоохранительных органов. Несмотря на критику, законопроект не отклонён. Однако его сторонникам, возможно, придётся ответить на озабоченности относительно потенциальных лазеек для нелегального финансирования, что может привести к поправкам, более узким сферам применения или дополнительным требованиям к отчётности. Для криптокомпаний ставки высоки: более ясные правила могут стимулировать инвестиции и разработку продуктов в США, но если законопроект будет воспринят как ослабляющий борьбу с преступностью, его политические перспективы значительно усложнятся.

bitcoinist3 ч. назад

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

bitcoinist3 ч. назад

История серьезного мошенничества, в котором погряз криптоединорог Blockstream

В статье рассматриваются обвинения против компании Blockstream и её основателя Адама Бэка, связанные с выпуском горнодобывающих нот (BMN). Расследование аккаунта NatInfoSec указывает на возможные несоответствия между заявленной мощностью майнинга Blockstream (15 EH/s) и мощностью, необходимой для выполнения обязательств по BMN (20-45 EH/s). Вызывают вопросы источники выплат инвесторам, особенно учитывая пункт контракта, позволяющий Blockstream использовать биткоины из любого источника. Также обращается внимание на высокую фиксированную доходность нот (до ~20%) в волатильной отрасли. Особое внимание уделяется криминальному прошлению Кристофера Кука, ключевой фигуры в майнинговом подразделении Blockstream (Exacore), осужденного за мошенничество, что не было раскрыто инвесторам. Поднимаются вопросы о потенциальных рисках для связанной компании BSTR, готовящейся к выходу на биржу через SPAC. Хотя BitMEX Research отмечает, что некоторые обвинения могут быть преувеличены, а Samson Mow защищает BSTR, основные вопросы остаются: прозрачность и проверяемость реальных мощностей майнинга, источников выплат, полного объёма обязательств по BMN и раскрытия информации. Blockstream на момент публикации не дала развёрнутого ответа на эти обвинения.

marsbit7 ч. назад

История серьезного мошенничества, в котором погряз криптоединорог Blockstream

marsbit7 ч. назад

Reddit-сообщество, которое в свое время устроило шорт-сквиз на Уолл-Стрит, нашло новую GME?

24 июня акции сети быстрого питания Wendy’s (WEN) резко выросли после публикации в сообществе Reddit r/wallstreetbets поста «We need to save Wendy’s», что спровоцировало обсуждения о новом «мем-сквизе» по аналогии с GME. Хотя акции демонстрируют некоторые признаки «мем-акций» — низкая цена, высокая доля коротких позиций (31,83%) и всплеск розничных покупок — структура ситуации отличается от исторического сжатия GME 2021 года. Текущий рост больше похож на краткосрочный всплеск, вызванный вниманием розничных трейдеров, а не на системный сквиз, подпитываемый экстремальным уровнем коротких позиций или гамма-сжатием из-за массовых опционных покупок. Успех дальнейшего движения будет зависеть от того, сможет ли первоначальная волна интереса превратиться в устойчивый объем торгов, сохраняющуюся активность в сообществах и давление через опционный рынок, что вынудит маркет-мейкеров и коротких продавцов присоединиться к движению.

marsbit7 ч. назад

Reddit-сообщество, которое в свое время устроило шорт-сквиз на Уолл-Стрит, нашло новую GME?

marsbit7 ч. назад

Южная Корея нацелилась на 40 незарегистрированных операторов криптовалют в рамках усиления регулирования

Финансовая разведывательная служба Южной Кореи (FIU) передала в полицию данные о примерно 40 незарегистрированных поставщиках услуг виртуальных активов. В соответствии с законодательством страны все криптобиржи должны получить сертификат ISMS и регистрацию в FIU. В настоящее время зарегистрированы только 28 компаний. Расследование выявило, что нелегальные зарубежные платформы привлекают местных клиентов через мессенджеры, а также используют частных обменщиков и платных авторов контента для продвижения. Эти платформы не находятся под защитой корейских законов. Этот шаг является частью более широкой кампании Южной Кореи по усилению глобальных стандартов соответствия в криптосфере через меры FATF. Директор FIU Ли Хён Джу призвал страны-члены FATF отменить пороговые суммы для применения «Правила поездок» (Travel Rule) к криптовалютам. С августа Южная Корея намерена ввести проверку личности для всех криптовалютных транзакций. Власти также активизировали уголовное преследование за схемы «памп и дамп» и усилили сотрудничество с финансовыми организациями для предотвращения незаконных трансграничных операций.

TheNewsCrypto8 ч. назад

Южная Корея нацелилась на 40 незарегистрированных операторов криптовалют в рамках усиления регулирования

TheNewsCrypto8 ч. назад

Торговля

Спот
Фьючерсы
活动图片