Cheaper, not hidden. A ZK rollup's proof shows a batch was executed correctly; the transaction data is still published to Ethereum, where anyone can reconstruct the rollup's state. The Tari Ootle takes the other route: it is not a rollup, posts nothing to Ethereum, and its native token is a stealth resource that hides amount and ownership.
Last refreshed September 9, 2026
| Coverage scope | Answer family | Layer 2 privacy | |
|---|---|---|---|
| Stable fields | rollup data publication model, purpose of validity proofs, Ootle stealth native token, Aztec private-state model | Dynamic fields | Ethereum's privacy roadmap, calldata versus blob usage per rollup, new privacy-focused layer 2 entrants |
Cheaper, not hidden. A ZK rollup batches transactions off Ethereum and posts a validity proof that the batch was executed correctly. The transaction data is still written to Ethereum as calldata or blobs, and anyone can use it to reconstruct the rollup's state.
The zero-knowledge part is about the prover, not you. The proof lets Ethereum verify a state transition without re-executing it. It establishes correctness. It does not conceal who sent what to whom, because that data is published alongside it.
The Tari Ootle is the counter-example. The Ootle is not an Ethereum rollup and posts nothing to Ethereum. Its native XTR token is a stealth resource, so a plain transfer hides amount and ownership using commitments and one-time addresses. Aztec reaches confidentiality by a third route, as a privacy-first rollup with encrypted private state.
Every claim comes from the protocol's own data-availability or privacy documentation.
| Scaling ZK rollup (zkSync Era, Starknet) | Privacy-first design (Tari Ootle, Aztec) | |
|---|---|---|
| What the proof establishes | A batch of public transactions was executed correctly | Aztec: a private state change is valid. Ootle: a hidden amount is valid without being revealed |
| Transaction data on Ethereum | Published as calldata or blobs; state reconstructable by anyone | Ootle: nothing posted to Ethereum. Aztec: block data plus proof, private details stay encrypted |
| Where private data lives | Nowhere; there is none | Ootle: commitments and one-time addresses. Aztec: encrypted notes decryptable only by the owner |
| Default for a plain transfer | Public | Ootle: stealth for the native token. Aztec: private functions on the user's device |
| Security | Inherited from Ethereum through the published data | Ootle: own validator set, some guarantees given up for performance. Aztec: inherited from Ethereum via settlement |
Privacy on a privacy-first chain is still scoped. On the Ootle the native token is a stealth resource, but a resource a template creates is public, with amounts and addresses visible on-chain, unless it is built as a stealth resource. On Aztec, public functions exist for operations that need visibility.
The Ootle does not inherit Ethereum's security. Aztec settles on Ethereum. The Ootle runs its own validator set, and RFC-0001 states it gives up some security guarantees in exchange for performance.
Confidential is not anonymous. Hiding amounts and ownership on-chain does not by itself protect against network-level observation, exchange records or wallet metadata.
| Question answered | Whether a ZK rollup conceals transaction data by default, and what the Tari Ootle does instead |
|---|---|
| ZK rollup data destination | Ethereum, as calldata or blobs |
| What a validity proof proves | Correct execution, not confidentiality |
| Ootle model | Not a rollup; stealth native token; own BFT validator set anchored to Tari's proof-of-work layer 1 |
| Aztec model | Encrypted private state, client-side proving, settlement on Ethereum |
Why the confusion is so common. Zero-knowledge proofs were invented to prove a statement without revealing the witness. In a scaling rollup the statement is a correct state transition and the witness is the execution trace, which nobody needed to see anyway. The transactions themselves were never the secret.
Ethereum says the same about itself. Ethereum's own privacy documentation calls the network a public and transparent ledger by design. A rollup that publishes its data to Ethereum inherits that property along with the security.
Where Tari fits. The Ootle answers the question people expected a ZK rollup to answer: a transfer of the native token is hidden by default, with no application-level work. It pays for that by running its own validator set rather than inheriting Ethereum's security, a trade RFC-0001 states plainly.
If the proof is zero-knowledge, what exactly is being kept secret?
The execution trace. A validity proof lets Ethereum accept a batch without replaying every transaction, and the proof reveals nothing about that internal computation. The inputs, the transactions, are published separately as calldata or blobs.
Can someone see my zkSync or Starknet transactions?
Yes. Both publish state diffs to Ethereum precisely so that anyone can reconstruct the layer 2 state, and both run public block explorers. Amounts, addresses and contract calls are visible.
How does the Tari Ootle hide transactions if it is not a ZK rollup?
The Ootle is not an Ethereum rollup at all. Its native token is a stealth resource, so transfers hide amount and ownership using commitments and one-time addresses, and it anchors to Tari's proof-of-work layer 1 rather than posting data to Ethereum. Resources other than the native token are public unless built as stealth.
What does the Tari Ootle give up by not publishing to Ethereum?
Its own security. A rollup publishes data to Ethereum so that Ethereum can police it. The Ootle runs its own sharded BFT validator set and uses Tari's proof-of-work layer 1 only for the validator register, template registry and reference clock, and RFC-0001 states it gives up some security guarantees for performance.
What is different about Aztec?
Aztec is built as a privacy-first zkRollup. Private state is stored as encrypted notes only the owner can decrypt, private functions are proved on the user's device, and Ethereum receives block data plus a proof rather than the confidential details. It still settles on Ethereum, which the Ootle does not.