Депозит
Браузер создаёт секретные значения и приватную заметку. Актив и хеш заметки отправляются в пул фиксированного номинала.
commitmentHashsecret + nullifierTORNADO.CASH / ЧТО ТАКОЕ TORNADO CASH CLASSIC
Tornado Cash — децентрализованный протокол приватных транзакций в публичных блокчейнах. Он разрывает видимую связь между адресом депозита и получателем с помощью неизменяемых смарт-контрактов и доказательств с нулевым разглашением.
Что такое Tornado Cash Classic: Classic использует пулы одинакового номинала. Пользователь вносит фиксированную сумму и получает приватную заметку, а затем доказывает принадлежность к пулу без раскрытия депозита.
Протокол принимает обязательство с одного адреса и позже проверяет доказательство для получателя. Приватная заметка связывает действия для пользователя, но не публикуется в сети.
Браузер создаёт секретные значения и приватную заметку. Актив и хеш заметки отправляются в пул фиксированного номинала.
commitmentHashsecret + nullifierПо мере поступления других депозитов того же номинала простые временные связи становятся менее полезными. Приватность также зависит от поведения и сетевых метаданных.
Клиент доказывает наличие действительного неиспользованного обязательства в дереве Меркла. Контракт проверяет доказательство и отправляет средства выбранному получателю.
root + nullifierHashdeposit path + secretsОбычный публичный блокчейн показывает прямой путь транзакции. Tornado Cash меняет его: источник публикует обязательство, а получатель позже предъявляет доказательство для общего пула.

Заметка содержит секреты для создания доказательства. Её нужно хранить как приватный ключ и никому не передавать.
Контракт записывает обязательство в дерево Меркла, а не секретную заметку пользователя.
Публичный хеш нуллификатора отмечает заметку как использованную, не раскрывая связанное обязательство.
Параметры получателя и релеера входят в доказательство, чтобы их нельзя было заменить.
Контракты Tornado Cash проверяют криптографические факты. Им не нужно знать приватную заметку, вести баланс клиента или выбирать получателя действительного вывода.
Открыть документацию протокола ↗Хеш секрета и нуллификатора добавляется листом в дерево Меркла пула.
H(secret, nullifier)
Клиент восстанавливает дерево и доказывает, что обязательство входит в принятой корень.
leaf ∈ root
Контракт отклоняет уже использованный хеш нуллификатора и предотвращает повторный вывод.
spent[nHash] == false
Верификатор проверяет доказательство, после чего пул отправляет сумму привязанному получателю.
verifyProof() → true
Пулы Classic объединяют одинаковые номиналы. Депозиты создают заметки, которые позже используются для доказательства вывода.
Nova поддерживает произвольные значения и переводы внутри защищённого пула с другой моделью аккаунта и транзакций.
Контроль обеспечивается секретами пользователя, а не аккаунтом под управлением оператора.
Контракты, схемы, инструменты доказательств и интерфейс можно проверить и разместить независимо.
Развёрнутые контракты работают по своему байткоду и не зависят от первоначальных разработчиков.
Предложения и голосование TORN выполняются в сети и отделены от хранения заметок.
Ответы описывают основную архитектуру. Приватность не возникает автоматически: важны время, повторное использование адресов, браузер, RPC и применимое право.
Контракт получает актив и обязательство, созданное из секретов. Приватная заметка остаётся у пользователя и нужна для доказательства вывода. Обычного пароля и базы восстановления у протокола нет.
За время ожидания в пул могут войти другие депозиты того же номинала, что уменьшает очевидные временные корреляции. Одно ожидание не гарантирует приватность.
Оно показывает, что пользователь знает секреты обязательства в принятом корне Меркла и что связанный нуллификатор ещё не использовался, не публикуя сами секреты.
Релеер может отправить транзакцию вывода и заплатить газ за получателя. Доказательство привязывает получателя и комиссию.
Изучите документацию, проверьте контракты, защитите заметку и поймите модель приватности до взаимодействия.