> For the complete documentation index, see [llms.txt](https://docs.cyclone.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cyclone.xyz/how-it-works.md).

# How It Works

## zkSNARKs for Privacy-Preserving Transactions

![](https://github.com/tornadocash/tornado-core/raw/master/docs/diagram.png)

Cyclone is simple -- a user deposits cryptocurrency into a pool and later withdraws from the same pool, which obfuscates the deposited tokens' history. For deposits, the user sends a "secret" in the form of a hash (called a commitment) and the deposit amount to the Cyclone smart contract. The contract accepts the deposit and adds the commitment to its list of deposits.

Later, when the user decides to make a withdrawal, they provide proof via the same secret via an unspent commitment from the smart contract’s list of deposits. zkSNARKs technology allows this to happen without revealing which exact deposit corresponds to this secret. The smart contract checks the proof, and transfers the originally deposited funds to the address specified for withdrawal. An external observer will be unable to determine which deposit this withdrawal came from.

For an even deeper dive, please see the [cryptographic review](https://tornado.cash/Tornado_cryptographic_review.pdf).

## Trusted Setup

As an anonymous team, we value complete transparency and aim for a safe and smooth launch of Cyclone. Everything is open-source and verifiable -- we apply the exact zkSNARKs [implementation](https://github.com/tornadocash/tornado-core/releases/tag/v2.1) used by tornado.cash, which has been extensively audited ([circuit](https://tornado.cash/Tornado_circuit_audit.pdf), [smart contracts](https://tornado.cash/Tornado_solidity_audit.pdf)). In addition, we directly use the result from `Trusted Setup MPC` which is [successful](https://ceremony.tornado.cash/) and running [well on Ethereum](https://medium.com/@tornado.cash/the-biggest-trusted-setup-ceremony-in-the-world-3c6ab9c8fffa#43d9).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.cyclone.xyz/how-it-works.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
