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

52 lines
7.7 KiB
Markdown
Raw Normal View History

2021-10-28 16:03:39 +02:00
# Как работает Tornado.cash?
2022-03-12 10:35:32 +01:00
Прежде чем погрузиться в изучение мануалов, объясняющих и упрощающих использование Tornado.Cash, вот общий обзор глобального функционирования протокола.
2021-09-10 19:53:20 +02:00
### **Общий обзор функционала Tornado.Cash**
2021-10-28 16:03:39 +02:00
Для достижения конфиденциальности транзакций Tornado.Cash использует смарт-контракты, которые принимают токены на депозит с одного адреса и позволяют выводить их на другой. Эти смарт-контракты работают как пулы, которые объединяют все депонированные активы. 
2021-10-28 16:03:39 +02:00
Как только средства выводятся из пула с нового адреса, связь между источником и получателем в сети блокчейн разрывается. Таким образом, выведенные криптоактивы анонимизируются. 
2021-09-10 19:53:20 +02:00
2021-10-28 16:03:39 +02:00
Когда пользователь помещает средства в пул (то есть - осуществляет депозит), генерируется приватная заметка Tornado Cash Note. Эта приватная заметка служит для пользователя закрытым ключом для последующего доступа к своим средствам. Чтобы снять средства, пользователь может использовать свой старый кошелек либо совершенно новый - с помощью заметки Tornado Cash Note средства будут выведены в считанные минуты.
2021-09-10 19:53:20 +02:00
2022-03-12 10:35:32 +01:00
**Для традиционного пула Tornado Cash с фиксированными суммами**:
* Когда пользователь вкладывает средства в пул (депозит), создается private note. Эта private note работает как закрытый ключ для доступа пользователя к этим средствам. Для их вывода один и тот же пользователь может использовать другой адрес — старый или новый — и вернуть свои средства благодаря этой private note.
**Для Tornado Cash Nova, с новыми пулами ETH с настраиваемыми суммами и защищенными переводами**:
* Средства напрямую связаны с заданным адресом кошелька. Нет private note или ключа. Пользователи могут получить доступ к своим средствам, подключившись к пулу использую соответствующий адрес.
* Хранение осуществляется либо путем внесения токенов в пул, либо путем регистрации в пуле и получения защищенных переводов с другого адреса.
2021-09-10 19:53:20 +02:00
Защита данных, обеспеченная данным протоколом, естественным образом зависит от количества пользователей и размера пула. Чем больше пользователей вносят средства в пул, тем лучше. Однако, чтобы сохранить анонимность, пользователь должен помнить об основных правилах сохранения конфиденциальности:
2021-10-28 16:03:39 +02:00
*  Выжидать определенное время между внесением депозита и снятием средств.
*  Смешивать свои средства со средствами других пользователей - подождите пока после вашего депозита будут внесены новые, прежде чем выводить свои активы.
2022-03-12 10:35:32 +01:00
ольше советов вы найдете здесь:_ [Советы по сохранению анонимности_._](tips-to-remain-anonymous.md)__
2021-09-10 19:53:20 +02:00
Дополнительные рекомендации приведены в разделе: Советы по сохранению анонимности.
### Какой вклад в проект внесли доказательство zk-SNARK и процесс хэширования
2021-10-28 16:03:39 +02:00
Tornado.Cash использует доказательство Zero-Knowledge Succinct Non-Interactive Argument of Knowledge (также называемый zk-SNARK) для проверки и разрешения транзакций.
2021-10-28 16:03:39 +02:00
Чтобы обработать депозит, Tornado.Cash генерирует случайную область байтов, вычисляет ее через [хэш Педерсона](https://iden3-docs.readthedocs.io/en/latest/iden3\_repos/research/publications/zkproof-standards-workshop-2/pedersen-hash/pedersen.html) (так как он более совместим с zk-SNARK), затем отправляет токен и хэш 20 mimc смарт-контракту. Контракт затем вставляет его в дерево Меркла.
2021-09-10 19:53:20 +02:00
Для обработки вывода средств та же область байтов разбивается на две отдельные части: секрет с одной стороны и нуллификатор с другой.
2021-09-10 19:53:20 +02:00
Нуллификатор хэшируется. Этот нуллификатор является публичным вводом информации, который передается по цепочке для сверки с данными смарт-контракта и деревом Меркла. Это позволяет, например, избежать задвоенных транзакций.
2021-09-10 19:53:20 +02:00
Благодаря zk-SNARK можно доказать 20 mimc хэш исходного обязательства и нуллификатора, не раскрывая никакой конкретной информации. Даже если нуллификатор является публичной информацией, конфиденциальность сохраняется, так как нет возможности связать хэшированный нуллификатор с первоначальным платежным обязательством. Кроме того, информация о том, что транзакция присутствует в корне Меркла, информация о точном пути транзакции и о местонахождении транзакции является приватной.
2021-09-10 19:53:20 +02:00
Депозиты просты с технологической точки зрения, но сложны с точки зрения трудозатрат, поскольку необходимо вычислить 20 mimc хэш и обновить дерево Меркла. В то время как процесс снятия средств является более сложным, но более дешевым в плане трудозатрат, поскольку они требуются только для хэша нуллификатора и доказательства с нулевым разглашением.
2021-09-10 19:19:41 +02:00
2022-03-12 10:35:32 +01:00
_Автор:_ [_**@ayefda**_](https://torn.community/u/ayefda)_****_
ереведено и адаптировано:_ [**@Ghost**](https://torn.community/u/ghost)