Astrea Tech / Privacy
Confidentiality in the manifold

Astrea makes privacy
inspectable

Confidentiality is one of the three things the proof manifold collapses into verifiable proofs. Every private action states what stays with the prover, what appears in its receipt, and which traffic signals its network policy is designed to blur — a privacy story a user can read and a verifier can check.

01 · name the mechanisms

One mechanism for every leak

A private action can leak through its computation, its receipt, its traffic, its broadcast origin, or a recording kept for a future quantum computer. Astrea assigns one mechanism to each. The sections below use their names constantly, so the definitions come first.

Zero-knowledge receiptshides what you compute

Every registered computation is proved by PixelVM, and the proof shows the rules were followed while private inputs stay with the prover. There is no non-private proof mode to fall back to. The PixelVM page covers how it works; on this page it is the first mechanism.

Declared disclosurecontrols what you reveal

Every action type declares, in its schema, exactly which fields its receipt makes public — identities, roots, commitments, outputs. Anything not declared public stays out of the public record, so nothing leaks by accident or by relabeling.

PRISMhides traffic patterns

Astrea's mix-style routing layer for privacy-sensitive edge traffic. Sphinx-style onion envelopes mean no relay learns both ends of a route; cover traffic makes silence and activity look alike; standard size classes stop any packet from being a fingerprint; release jitter and route rotation break timing and long-term observation.

Dandelion#hides where you broadcast from

For actions that are meant to become public, the remaining secret is where they entered the network. Astrea’s answer is Dandelion#, read “sharp”, a hardened version of the public Dandelion++ design: a fresh action first moves down a quiet, onion-encrypted stem, one relay at a time, and a distant relay makes the first broad broadcast, far from the author. Section 08 covers what the # changes.

Hybrid post-quantum envelopekeeps it private tomorrow

All of the above runs inside Astrea's paired cryptography — X25519 with ML-KEM-768 for secrets, secp256k1 with ML-DSA-65 for signatures — so recorded traffic cannot be unwrapped later by breaking the classical half alone.

An observer trying to reconstruct a private action has to beat all five at once: read a zero-knowledge computation, widen a fixed schema, match shaped traffic, locate a diffused origin, and break both halves of the cryptography. Weaken one mechanism and the others still hold their own boundaries. The rest of the page takes the mechanisms one at a time, then looks at the crossings where contexts meet.

The route is also how Astrea extends privacy to economies that were never private. The bridge carries an agent's Zcash traffic and its Ethereum traffic through the same PRISM lanes, so a venue sees the bridge's proxy and a network observer sees a shaped mix. Section 10 follows a settlement crossing and names what each chain still shows.

02 · the complete picture

One action has three privacy surfaces

Computation secrecy, deliberate disclosure, and network metadata answer different questions. Astrea keeps them separate so a strong guarantee in one layer never silently stands in for another. A cross-chain action adds a fourth surface, the settlement crossing, covered in section 10.

LAYER 01

Computation

A private witness stays with the prover while PixelVM proves the result described by a public contract.

LAYER 02

Disclosure

The action schema names the identities, roots, commitments, outputs, and structural facts its receipt reveals.

LAYER 03

Network metadata

Encryption protects bytes in transit. PRISM and Dandelion# address route, timing, size, and origin linkage.

PRIVACY BOUNDARY MAP
one action · three distinct views
PRIVATE WITNESS stays with the prover REGISTERED COMPUTE runs once proves itself DECLARED OUTPUT Receipt public claim + result APPLICATION declared result VALIDATORS public context authorization · root NETWORK OBSERVER timing · size · endpoints may remain visible
The computation proof, action disclosure, and route each expose a different surface. Astrea gives every one an explicit policy.
A useful analogy

A sealed envelope can hide the letter. Its form still shows the fields the recipient needs, and the courier still handles an envelope of some size at some time. Astrea treats the letter, the form, and the delivery pattern as three separate privacy problems.

03 · follow one action

A private wallet action becomes certified state

Consider a registered wallet transfer whose note contents stay private. Before approval, the wallet can show the action's public contract: its program or action identity, declared bounds, authorization context, input and output commitments, versioned roots, and the padded access-shape summary required by its profile. The note openings and private memory contents form the witness and never become raw verifier input.

ACCESS SHAPE

An access shape is the profile-defined footprint of declared memory and state use: which bounded regions are touched and in what visible pattern. It is like seeing the number and order of sealed boxes without seeing their contents. Padding can make that footprint less distinctive, but Astrea does not claim arbitrary oblivious memory or universally hidden access patterns.

Now the mechanisms from the introduction take their turns. PixelVM executes the typed action and produces the zero-knowledge proof package tied to that contract — the first two mechanisms working together. The encrypted content travels the network through PRISM's protected route, so the transfer's traffic shape gives nothing away. If the action body is meant to become public, Dandelion# carries it down the narrow stem before the wide broadcast, hiding which node it came from. And at the end, validators still apply every normal rule — authentication, decoding, proof verification, consensus — before the effect enters authoritative state. Delivery never grants authority by itself.

Encrypted bodies can remain outside the consensus hot path under authenticated manifests, which bind the stored bytes to certified state. A storage host can carry ciphertext without receiving plaintext, while an authorized endpoint can decrypt it. Endpoint logging, copying, or disclosure remains an application and device boundary.

ONE PRIVATE ACTION
prepare → prove → route → verify → order
01 · WALLET private action user reviews disclosure 02 · TYPED PUBLIC CONTRACT identity · bounds · context · roots commitments · declared access shape PRIVATE WITNESS note openings · private content never leaves the prover 03 · PIXELVM prove package out 04 · PRIVATE EDGE PRISM route Dandelion# for public bodies 05 · ACCEPTANCE verify · order all normal rules still apply 06 · CERTIFIED STATE receipt + root declared result is checkable the witness never touches the network — the proof travels instead
The witness never supplies network authority. A proof package becomes an authoritative state effect only after the normal acceptance and consensus path.
04 · prove without publishing

The public contract fixes the proof

A typed contract gives the verifier one stable question. It identifies the registered action, canonical public inputs, public context, declared result, commitments, and profile. The private witness supplies the secret facts needed to satisfy that contract. PixelVM uses it during proving without handing its raw bytes to the verifier. This is where the first two mechanisms of the introduction lock together: declared disclosure decides the question, and the zero-knowledge receipt answers it without the witness.

Verifier receives

Public contract

The receipt binds what was requested, which public snapshot it used, and which result the verifier is allowed to accept.

  • Program or action identity and declared bounds
  • Public context, versions, roots, and commitments
  • Declared outputs and access-shape information
Prover retains

Private witness

Private note contents, openings, object payloads, and private memory contents stay on the proving side of the interface.

  • No raw private witness enters the public input
  • Private content is classified before it reaches the proof surface
  • The action cannot hide a required public field by relabeling it
SIMULATOR AND VERIFIER
privacy evidence ≠ correctness acceptance
REAL PROVING PATH PRIVACY TEST PATH public contract statement-determined private witness prover only PIXELVM prover VERIFIER-VISIBLE proof surface public fields + commitments VERIFIER accepts or rejects public contract only no private witness witness absent PUBLIC-INPUT simulator RECREATED VISIBLE same surface built without the witness EVIDENCE cannot accept not a verifier SAME VIEW
The simulator recreates the verifier-visible surface from public inputs alone. That is evidence for the declared zero-knowledge boundary. Only the verifier can establish correctness and accept a proof.

These are three different tools. Zero knowledge lets a verifier check a completed computation without receiving the declared witness. Transport encryption hides bytes while they move between endpoints. Fully homomorphic encryption computes on ciphertext; it is a separate technique and does not by itself make a proof transcript simulatable.

Computation boundary

PixelVM protects declared private content. Program identity, bounds, public context, roots, commitments, and padded access shape may remain visible. The current public profile does not claim hidden access patterns for arbitrary memory, and the simulator is privacy evidence rather than a substitute receipt. Broader program-structure obfuscation remains experimental and is not the source of PixelVM's zero-knowledge guarantee.

05 · disclose by rule

The receipt carries the action's declared public fields

Each registered action defines the fields that cross its privacy boundary. A wallet can display that contract before the user approves it.

What an Astrea action may reveal and why
Receipt surfaceWhy it may be publicWhat remains private
Action identity and boundsThe verifier must know which registered rules and resource envelope apply.Witness-dependent values not declared by that action.
Authorization contextValidators need enough public context to decide whether the action is admissible.Private credentials or note contents represented by commitments.
Commitments and digestsLater proofs and updates need stable references to hidden material.The canonical bytes bound behind those references.
Declared resultApplications need the state effect or output they are authorized to observe.Intermediate private trace values and undeclared outputs.
Roots, versions, and access shapeThe proof must bind one state snapshot and its declared execution structure.Private memory contents; the access pattern itself may remain visible.

The receipt is therefore compact and meaningful rather than blank. It exposes enough to authorize, verify, and bind the action to state while keeping the registered private witness out of public input. The boundary is set by the action’s published schema rather than by whoever happens to run the software.

06 · read the envelope

Encrypted content still has a traffic shape

An authenticated encrypted session protects the payload on that connection. An observer can still measure the connection: which endpoints are active, when packets move, their size class, and how traffic changes after an event. Those signals require their own policy.

PROTECTED SESSION
payload hidden · traffic shape observable
ENDPOINT A sender AUTHENTICATED ENCRYPTED SESSION payload protected in transit ENDPOINT B receiver NETWORK OBSERVER sees: endpoint pair · timing · size class
Encryption protects content on the session. It does not erase the session from the network.

Timing

Delays, bursts, and response patterns can link events even when every payload is encrypted.

Size

A distinctive packet or batch shape can reveal an action class and connect two observation points.

Endpoints

A direct connection reveals both peers to each other, and a wider observer may see the same path.

Relay compromise

Each relay sees its local handoff. A well-positioned or colluding relay set can reduce unlinkability.

These signals defeat real systems, not hypothetical ones. Tramèr, Boneh, and Paterson identified the recipients of shielded Zcash transactions from node response timing in "Remote Side-Channel Attacks on Anonymous Transactions" (USENIX Security 2020), a flaw fixed after disclosure. At the ledger level, Kappos, Yousaf, Maller, and Meiklejohn matched deposits into Zcash's shielded pool with later withdrawals of the same value in "An Empirical Analysis of Anonymity in Zcash" (USENIX Security 2018), shrinking the Sprout-era anonymity set by 69.1 percent without touching a shielded-to-shielded transaction. Möser et al. traced a large share of early Monero spends through decoy-selection patterns in "An Empirical Analysis of Traceability in the Monero Blockchain" (PoPETs 2018). Encrypting the ledger while leaving timing, size, and the crossing exposed is how careful users still get identified. PRISM is built for the first two; the bridge, on the Zcash page, removes the third by taking deposits as shielded transfers.

07 · shape the route

PRISM reduces distinctive network signals

Astrea's answer borrows the strongest defense family the field has: the mixnet playbook, applied inside the protocol instead of bolted on beside it. Astrea first chooses an ordered relay path with declared role, operator, and network diversity, then gives each relay a Sphinx-style onion envelope containing only the local handoff it needs — no relay learns both the origin and the destination. Real traffic shares the schedule with cover packets, so silence and activity look alike; messages enter declared size classes, so no packet is a fingerprint; release jitter loosens timing correlation; and routes rotate so one fixed neighbor set never accumulates a long-lived view.

This policy layer is called PRISM. It carries privacy-sensitive edge traffic on a route separate from the direct authenticated validator and core lanes. The separation matters: consensus traffic keeps its direct authority path, while PRISM reduces what an observer can link about an edge request. In the combination, this is the mechanism receipts cannot supply: a proof hides content, and only the route can hide traffic.

Where

Path separation

Role, operator, and network diversity reduce repeated shared observation points between edge and destination.

What size

Padding and size classes

Messages enter declared classes so one unusual body length is less useful as an end-to-end fingerprint.

When

Cover and release jitter

Cover packets occupy otherwise revealing gaps, while release jitter loosens the direct timing relationship.

Over time

Route diversity and rotation

Route policy changes the relay view across epochs instead of exposing one permanent neighborhood.

CORE LANE AND PRIVATE EDGE
authority path stays separate from privacy route
AUTHORITY PATH PRIVACY ROUTE VALIDATOR / CORE authenticated peer VALIDATOR / CORE authenticated peer DIRECT CORE LANE authority traffic never detours through PRISM PRIVATE EDGE wallet PRISM INGRESS size class + schedule real and cover share a shape RELAY MIX local handoff only routes rotate each epoch PRIVATE EGRESS handoff to its destination — or the Dandelion# stem SEES A SHAPED MIX cover · jitter · size classes · route rotation
PRISM reduces specific linkability signals for privacy-sensitive edge traffic. The direct authenticated core lane remains a separate path with a different job.
The hybrid boundaries

Key establishment. X25519 and ML-KEM-768 establish the classical and post-quantum halves of validator-session secrets and PRISM onion-hop secrets, including Dandelion# stem layers.

Validator authentication. secp256k1 Schnorr and ML-DSA-65 authenticate each side's transcript-bound, role-specific handshake message.

PRISM frame authentication. secp256k1 ECDSA and ML-DSA-65 authenticate the same canonical frame bytes.

Both applicable companions are required. A missing or invalid companion rejects the handshake message/session or PRISM frame at its boundary. Dandelion# layers receive hybrid key-establishment protection; this does not mean each onion layer carries both signature schemes.

08 · move the first broadcast

Dandelion# breaks the obvious origin link

Some actions are meant to become public. Encrypting their journey cannot make the eventual public body secret. The privacy problem is their origin: immediate broad broadcast makes the first broadcaster an obvious clue.

The countermeasure pattern comes from public research: Dandelion, refined into Dandelion++, the two-phase broadcast design Monero has run since 2020. A fresh transaction first travels a quiet stem, one relay at a time, and only the terminal relay fluffs it into normal gossip, so its first broad appearance lands far from its author. Astrea ships a hardened descendant of that design and calls it Dandelion#, read “Dandelion sharp”.

Dandelion++ leaves two gaps. The stem carries the transaction readable, so every stem relay can inspect what it forwards and knows it is holding pre-broadcast material. And the quiet phase is enforced only by good behavior: a dishonest stem relay can broadcast early, from a position near the author, which is exactly the leak the stem exists to close. The design’s own fail-safe leans the same way — a stalled stem fluffs on a timer, trading privacy for liveness.

Dandelion# closes both gaps with the tool PRISM already uses: onion layers. After PRISM carries a fresh action through the private edge to egress, the stem itself is wrapped hop by hop, each layer encrypted to one relay’s hybrid X25519 + ML-KEM keys. A stem relay peels its single layer and learns one fact: the next hop. It cannot read the action, and it cannot tell how far it sits from the origin. The same layering enforces the path, because the readable body exists only after the final layer is decrypted — no relay can cut the stem short and burst early, and the switch to fluff cannot be faked. And where Dandelion++ fluffs a stalled stem, a privacy-sensitive stem in Astrea holds and fails closed. With PRISM covering the journey and Dandelion# covering the entry point, the network stops being the easy way around the cryptography.

DANDELION# ORIGIN DIFFUSION
private edge → narrow stem → broad fluff
PRISM EGRESS fresh action body will become public ONION-WRAPPED STEM one layer peeled per hop a relay sees the next hop, never the body the body unlocks only at the final layer TERMINAL fluff switch BROAD GOSSIP seen ID → suppress copy IF THE STEM STALLS STEM CANNOT CONTINUE declared delivery class decides PRIVACY-SENSITIVE hold · fail closed no early broadcast LIVENESS-CRITICAL may fall back to fluff a declared, visible tradeoff
Dandelion# protects the origin-to-first-broadcaster relationship for material that becomes public. The relay path is schematic; its length and selection are policy-defined.

Duplicate action identifiers stop nodes from repeatedly forwarding the same gossip item, and an action class that has declared itself liveness-critical may still choose early broad diffusion as a visible tradeoff. None of this claims the public body stays confidential once it fluffs — Dandelion# protects where it entered the network, and nothing else.

09 · protect the crossings

Privacy is weakest where contexts meet

The mechanisms so far protect the middle of an action’s life: the computation, the disclosure, the route, the origin. The edges are different. A private computation may begin with a public deposit, call an outside service, or end in a public state change, and an observer who sees both sides can compare public values, identifiers, size classes, and timing. The hidden middle does not erase those boundary facts.

Astrea applies declared shaping at the edges where the application permits it: public values or action sizes can enter common classes, releases can share scheduled windows with other activity, and route policy can avoid one direct endpoint pair. These controls reduce a distinctive match. They do not make two public events impossible to correlate.

BOUNDARY CORRELATION
the protected middle cannot erase public edges
DISTINCTIVE CROSSING DECLARED EDGE POLICY PUBLIC ENTRY distinct value · time PROTECTED MIDDLE private compute · encrypted route PUBLIC EXIT matching value · time OBSERVER CAN PROPOSE A MATCH PUBLIC ENTRY declared common class POLICY-MANAGED CROSSING route split · release window mixed with other eligible activity PUBLIC EXIT one of many candidates correlation still possible
Edge policy lowers the value of a unique fingerprint. Public facts, user behavior, and external systems remain part of the threat model.

Every promise names its observer and source

Link observer

Encryption protects payload bytes; size classes, cover, and release jitter reduce simple traffic matching.

The local endpoint pair and surrounding traffic can remain visible.

Relay cohort

Per-hop envelopes, path diversity, and rotation limit each relay to its local role and reduce repeated shared views.

Compromised or colluding positions can still correlate observations.

Broad correlator

Cover schedules and Dandelion# origin diffusion add ambiguity across several observed links.

Deployment size, traffic volume, timing, and observer reach still matter.

Validator / verifier

The public contract exposes roots, commitments, declared results, and the profile-defined access shape needed for verification.

The raw private witness stays with the prover.

Storage / service host

Authenticated manifests let a host store and serve ciphertext tied to certified state.

Object size and access requests can remain visible; an authorized endpoint controls decryption.

Endpoint

The application sees whatever the action deliberately reveals after decryption and verification.

Endpoint compromise, user disclosure, and application logging sit outside route privacy.

Source / importer

A named receipt or attestation can bind a sensor reading, delivery report, or physical event into an Astrea action.

The proof checks computation relative to that submitted input; the source path establishes who made the outside-world claim, not whether nature made it true.

Privacy boundary

Astrea's computation and routing policies are engineered and tested against declared adversaries. That evidence does not become a mathematical anonymity theorem, a deployed universal mix network, hidden metadata at every layer, or protection after an endpoint reveals plaintext.

Astrea is engineered for 160-bit post-quantum security in its primary profile, and no supported profile falls below an absolute 128-bit post-quantum floor. Both statements depend on the declared construction, parameters, assumptions, implementation, and deployment boundary. They apply to the cryptographic boundaries that name them; they do not erase traffic metadata or secure a compromised endpoint.

See the transport layer →

10 · the settlement crossing

A crossing between two chains has a fourth surface

When an agent bridges ZEC into Astrea and acts on an Ethereum venue, three records exist at once: Zcash's public ledger, the venue's public state, and Astrea's certified private state. The computation, the disclosure, and the route each keep the policies above. The crossing adds a fourth surface: what an observer who can read both public chains, or who holds the bridge's keys, can still line up.

The bridge's design answers that surface in three ways. A deposit and a withdrawal are ordinary shielded transfers, and the bridge's reserve stays in Zcash's shielded pool, so Zcash shows no transparent exit and no entry: an observer of the Zcash chain sees a shielded transaction like any other. The venue sees the bridge's proxy account and a manifest of declared fields, so its ledger shows the bridge acting, not an owner. Inside Astrea the ledger is zero-knowledge, so validators verify that a deposit was credited and an action was authorized without learning whose balance moved, and a withdrawal's timing and amount follow the owner's policy rather than the trade.

Zcash chain observer

Sees ordinary shielded activity: commitments, nullifiers, and shielded transfers with encrypted amounts. A deposit to the bridge and a withdrawal from it look like any other shielded transfer, and the bridge's own reserve is shielded too.

Transparent-address activity an owner chooses to make remains public, as it does on Zcash today.

Ethereum venue

Sees the bridge's proxy account, the manifest fields the action's schema declares, and the receipt that authorizes the action.

The venue's own state change is public on Ethereum. Sizes appear as declared classes where the venue accepts them; otherwise the exact figure is public on the venue.

Cross-chain correlator

Reads both public ledgers. Finds no transparent exit from the shield, no entry to the venue by the owner, and no amount or moment on Zcash to pair with a venue action.

Aggregate patterns across many actions, venue-side behavior, and any transparent step an owner takes remain part of the threat model.

Validators as key holders

Hold shares of the bridge's threshold spending key and its viewing keys. A share is released only for a certified withdrawal. See deposit amounts and times and the memo's commitment.

Does not see who deposited or which Astrea account claimed the deposit; the claim is a zero-knowledge proof of the commitment.

Network observer

Sees PRISM-shaped traffic for both the Zcash side and the Ethereum side of the action, and a Dandelion# stem for anything that becomes public.

The privacy boundary above applies unchanged: engineered against declared adversaries, not an anonymity theorem.

Boundary

The bridge is a design being built toward a testnet. Its Zcash spending key is a threshold key across the validators, used only for certified withdrawals, with the signing threshold equal to the consensus threshold. Post-quantum protection covers Astrea's proofs, ledger, sessions, and signatures; Zcash and Ethereum keep their own cryptography at either end, and the bridge checks it as it stands. The Zcash page states the full claim.