Privacy

Privacy and Its Limits

What Morana protects

The contents of private transfers

For Z → Z transfers, the following details are hidden from outside observers. The sender and recipient know the details of their payment:

  • the sender's address — it is not on chain;
  • the recipient's address — it is not on chain;
  • the amount — hidden by a zero-knowledge proof;
  • the memo — a short note encrypted for the recipient.

The chain records note commitments, nullifiers and proofs. Nullifiers mark notes as spent without directly revealing which earlier notes they refer to. The net amount entering or leaving the private pool is public. For T → Z and Z → T transfers, the public side remains visible, as do general transaction data such as size and fee.

Keys stay on your device

Your recovery phrase and private keys are stored in an encrypted database on your device (SQLCipher). The phrase is also encrypted with XChaCha20-Poly1305; the database key is derived from your password using Argon2id. The apps do not send the phrase or private keys to servers. Transactions contain the required public data and signatures, but not private keys. See Wallet Architecture for the encryption parameters.

No sign-up form

Creating a wallet does not require a phone number, email address or identity documents.

You don't have to trust the gateway

The gateway provides blockchain data to the app. It does not receive the wallet’s private keys and cannot decrypt the user’s private payments. The wallet checks block headers and cryptographic proofs and rejects data that fails those checks. A gateway can withhold a response or show an outdated chain. To independently check the chain’s freshness and cumulative work, compare it with another gateway or your own node.

What Morana does NOT protect

Public transfers

Transfers between public (T) addresses are fully public, as in Bitcoin: anyone can see amounts, senders and recipients. Public addresses exist for exchanges, mining payouts and cases where anyone must be able to check the payment. Use Z-addresses for private payments.

The transaction graph in mixed flows

A T → Z transfer is visible on the chain, including the amount deposited into the private pool. Later private transfers do not expose the same details, but the initial deposit remains public.

Network-level privacy

The gateway sees your IP address. For private funds the wallet downloads compact blocks in sequence, page by page, so the gateway does not learn which notes are yours. By default, the wallet syncs using block filters without sending its transparent addresses to the gateway. If the gateway does not support filters, the wallet requests address history and shows a warning: in this mode, the gateway can see the addresses. To keep the gateway from seeing your usual IP address, the wallet’s own connection must go through a VPN or a configured Tor route. Starting Tor Browser alone does not route the wallet’s traffic through Tor.

Timing correlation

If you are the only one making a private transfer at a given moment, timing analysis may link your activity even with amounts hidden. The more private transfers occur on the network, the harder it is to single out yours by timing.

The limits of anonymity

Anonymity is not absolute. Sapling (the private-transfer scheme Morana takes from Zcash) gives strong cryptographic protection of a transfer's contents, while on-chain metadata — block time, transaction size, fee — stays visible. Privacy also depends on your choices: the addresses and connections you use and the sequence of your transfers.

In case of a flaw in the proof scheme itself, the network has three safeguards: a count of the coins in the private pool, an emergency switch and a replaceable pool. They limit the damage if a flaw is found. More on the Private Transfers page.

For the strongest privacy: send Z → Z, connect through Tor and don't reuse addresses.