Tornado Cash - RU
  • Введение в Tornado Cash
  • ЯЗЫК
    • 🇺🇸English
    • 🇨🇳中文
  • ГЕНЕРАЛЫ
    • Как работает Tornado Cash?
    • Советы по сохранению анонимности
    • Как использовать Tornado Cash с помощью TOR
    • TORN
    • Управление
    • Стейкинг
    • Как добавить или удалить ликвидность на Uniswap v2
    • Как стать ретранслятором?
    • Служба ретрансляции
    • 🔗Tornado Cash RPC
      • Мев Блокер
      • Как настроить MetaMask
    • Смарт-контракты Tornado Cash
    • Минифицированный пользовательский интерфейс, размещенный локально
  • TORNADO CASH CLASSIC
    • Как подключить кошелек
    • Депозит и вывод средств
    • Анонимный майнинг
    • Инструмент обеспечения соответствия
    • Схемы
      • Контур отложения керна
  • TORNADO CASH NOVA
    • Вход в Tornado Cash Nova
    • Пополнение и снятие средств на Nova
    • Экранированные передачи на Nova
    • Другие советы по анонимности
Powered by GitBook
On this page
  • Как работают схемы ZK
  • SNARK и GROTH16
  • Цирком и снаркджс
  • Схемы
  • Схема основного депозита
  • Анонимный майнинг
  1. TORNADO CASH CLASSIC

Схемы

PreviousИнструмент обеспечения соответствияNextКонтур отложения керна

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

Как работают схемы ZK

SNARK и GROTH16

Прежде чем пытаться понять, как Tornado.cash работает под капотом, вам сначала необходимо понять схемы с нулевым разглашением, как они устроены и как доказательства генерируются на стороне клиента, а затем проверяются в цепочке. Хотя есть Из систем ZK Tornado.cash использует вариант, известный как «краткие неинтерактивные аргументы знаний» (SNARK), в частности вариант под названием GROTH16.

Цирком и снаркджс

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

Circom проще всего рассматривать как компилятор языка схем, который действует очень похоже на который инженеры-электрики использовали бы для описания электрической цепи. За исключением того, что вместо электрической цепи мы описываем арифметическую схему , которая содержит компоненты и способ их соединения друг с другом.Когда вы компилируете схему Circom, на выходе получается иисполняемый файл, который будет использоваться для создания.R1CSЧтобы понять R1CS (систему ограничений ранга 1), конечно, нужно больше математики. А где есть важная криптосистемная математика, есть .

R1CS — это последовательность групп из трех векторов (a, b, c)(a,b,c), а решением R1CS является вектор ss, где ss должен удовлетворять уравнениям . как . б-с. c = 0s.a∗sb−sc=0, где... представляет собой скалярное произведение - проще говоря, если мы «соединим» aaandss, умножив два значения в одних и тех же позициях, а затем возьмем сумму этих произведений, затем выполните те же самые tobbandss и thenccandss, затем третий результат будет равен произведению первых двух результатов. Следующий шаг — взять этот R1CS и преобразовать его в форму QAP, которая реализует ту же самую логику, за исключением использования полиномов вместо скалярных произведений... вместо проверки ограничений в R1CS по отдельности мы теперь можем проверять все ограничения одновременно, выполняя проверку скалярного произведения полиномов. Если мы попытаемся фальсифицировать любую из переменных в решении R1CS, которое мы получаем, это Решение QAP из — скажем, установим для последнего значение 31 вместо 30, тогда мы получим полином att, который не проходит одну из проверок.

Короче говоря, R1CS — это набор полиномиальных ограничений, которым должно удовлетворять любое доказательство, сгенерированное схемой. Эти ограничения основанный на взаимосвязи между различными «сигналами» и операциями в вашей схеме. Свидетели Теперь, в зависимости от того, для чего вы используете Tornado.cash, вам могут не понадобиться свидетели. Однако не волнуйтесь: если все работает правильно, все свидетели вашего взаимодействия с Tornado.cash будут агрессивно сжаты, а их тела удалены по вашему усмотрению.

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

ДоказательствоКогда вы думаете о «доказательстве», вы, вероятно, представляете, что это неопровержимая гарантия того, что что-то истинно. Однако в контексте SNARK «доказательство» на самом деле представляет собой аргумент в пользу того, что что-то почти наверняка верно. Если бы мы попытались передать решение каждому отдельному полиномиальному ограничению, наложенному схемой, мы бы получили доказательства, которые были бы на порядки больше, чем если бы мы просто показали, что между значениями промежуточных состояний внутри схемы сохраняются определенные виды отношений. схема.Вполне возможно, что для любой данной схемы кто-то, обладающий достаточной вычислительной мощностью, сможет сгенерировать доказательство, которое некорректно удовлетворяет ограничениям схемы, но это будет примерно эквивалентно по сложности .

Итак, при создании доказательства для схемы SNARK вы рассчитываете промежуточные состояния вашей схемы для данного входного сигнала (генерация свидетелей), а затем рассчитываете взаимосвязи между вашими входными данными, промежуточными состояниями и выходными данными схемы.Как только у вас будет доказательство того, что вы удовлетворяете необходимому набору ограничений, вы сможете опубликовать это доказательство и некоторое подмножество ваших входных и выходных данных (так называемых общедоступных сигналов). Зная R1CS, ваши общедоступные сигналы, ваше доказательство и ключ доказательства схемы, любой может затем убедиться, что ваше доказательство удовлетворяет R1CS и что ваши общедоступные сигналы соответствуют вашему доказательству.

Схемы

Имея хорошее представление о схемах проверки ZK, давайте углубимся в то, как Tornado.cash использует некоторые относительно простые схемы, позволяющие вам конфиденциально и без разрешения скрывать взаимосвязь между вашими транзакциями пополнения и вывода средств в общедоступной сети блокчейн, а затем позже докажите информацию о взаимосвязи между вашим депозитом и снятием средств (например, как долго вы ждали перед снятием средств). ​ лучше всего понимать как наличие двух отдельных основных компонентов.

Схема основного депозита

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

Анонимный майнинг

Схемы анонимного майнинга составляют основу программы Anonymity Mining, которая стимулирует пользователей оставлять свои депозиты в контракте на более длительные периоды времени, чтобы гарантировать, что пулы депозитов Tornado.cash поддерживают большое количество активных депозитов (таким образом увеличивая для других пользователей).

Протокол Circom
с нулевым разглашением
несколько разных типов
Цирком
снаркджс
язык описания оборудования
Система ограничений R1CS
Wasm
-свидетель
сообщение от Виталик
создано Circom
факторизация больших простых чисел
Tornado.cash
k-анонимность