1
0
mirror of https://github.com/tornadocash/docs synced 2024-02-02 15:04:08 +01:00
docs/how-does-tornado.cash-work.md
2021-09-10 17:53:20 +00:00

6.3 KiB
Raw Blame History

Как работает Tornado.cash? EDIT

Информационный раздел постоянно пополняется

Прежде чем погрузиться в мануалы, объясняющие и облегчающие пользование сервисом Tornado.Cash, мы представляем вам общий обзор функционала протокола.

Общий обзор функционала Tornado.Cash

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

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

Когда пользователь помещает средства в пул то есть - осуществляет депозит, генерируется приватная заметка Tornado Cash Note. Эта приватная заметка служит для пользователя закрытым ключом для последующего доступа к своим средствам. Чтобы снять средства, пользователь может использовать свой старый кошелек либо совершенно новый - с помощью заметки Tornado Cash Note средства будут выведены в считанные минуты.

.

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

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

More recommendations are provided on: Tips to remain anonymous.

Дополнительные рекомендации приведены в разделе: Советы по сохранению анонимности.

Какой вклад в проект внесли доказательство zk-SNARK и процесс хэширования

Tornado.Cash использует доказательство Zero-Knowledge Succinct Non-Interactive Argument of Knowledge также называемый zk-SNARK для проверки и разрешения транзакций.

Чтобы обработать депозит, Tornado.Cash генерирует случайную область байтов, вычисляет ее через хэш Педерсона так как он более совместим с zk-SNARK, затем отправляет токен и хэш 20 mimc смарт-контракту. Контракт затем вставляет его в дерево Меркла.

Для обработки вывода средств та же область байтов разбивается на две отдельные части: секрет с одной стороны и нуллификатор с другой.

Нуллификатор хэшируется. Этот нуллификатор является публичным вводом информации, который передается по цепочке для сверки с данными смарт-контракта и деревом Меркла. Это позволяет, например, избежать задвоенных транзакций.

Благодаря zk-SNARK можно доказать 20 mimc хэш исходного обязательства и нуллификатора, не раскрывая никакой конкретной информации. Даже если нуллификатор является публичной информацией, конфиденциальность сохраняется, так как нет возможности связать хэшированный нуллификатор с первоначальным платежным обязательством. Кроме того, информация о том, что транзакция присутствует в корне Меркла, информация о точном пути транзакции и о местонахождении транзакции является приватной.

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

автор __@ayefda__