Privacy & Attestation
TL;DROn the programmatic path, Darknyx keeps order intent inside the measured matcher
and balances inside on-chain commitments. The engine terminates TLS with a
boot-random key inside its confidential VM; the deployment gateway passes that
encrypted stream through. The SDK and daemon verify that live certificate,
hardware quote, image measurement, boot session, and complete on-chain
settlement-signer set before sending credentials or orders.
Who can see your orders?
The difference from “encrypted on-chain orders” is that on Darknyx your order is
never a transaction at all (see Trade Flow). What lands on
Solana is the settled result, with a zero-knowledge proof, never the order.
The three privacy properties
Deposits reveal the signer, mint, and gross amount. Withdrawals reveal the
destination, mint, and amount. Network timing and aggregate activity are also
observable. The privacy claim covers the book, note ownership, and settled
trade plaintext; it is not a claim that all protocol activity is invisible.
How note lineage stays private
A note commitment is public only when the note is created as a Merkle leaf. Later locking and consumption publish a different handle—the note-use tag—whose derivation also needs the note’s private inner hash. That prevents an observer from following a note through deposit, trade, merge, and withdrawal by matching one repeated identifier. The same rule extends to newly created notes. Trade and change outputs inherit private entropy from the consumed note, merge outputs combine private input inners, and protocol fee outputs incorporate a protocol-held epoch secret whose binding and epoch are governed on-chain. As a result, descendant relationships are not reconstructible from public commitments and other chain data. The user’s seed plus finalized chain data still recovers user-owned notes; the protocol separately retains the historical epoch keys needed to recover protocol-owned fee notes. This is an unlinkability guarantee about cryptographic identifiers. Public deposit and withdrawal amounts, recipients, and transaction timing can still provide statistical clues, especially when values are distinctive.Privacy is a guarantee, not a promise
The point of attestation is that a client can check which code receives its order. Confidentiality comes from hardware isolation of a measured image; settlement integrity comes from a narrower proof the chain verifies. Neither substitutes for the other.Verifying the engine
Verification is a client-side step (the SDK ships a helper). In order, you confirm:- Step 1 observes the self-signed certificate on the connection that will carry the request and verifies a fresh transport quote binding its SPKI. A probe to a different socket is not a substitute. After bootstrap, the connector accepts a replacement only when it presents the same quote-bound, boot-random SPKI; a mismatch is destroyed before request bytes can leave.
- Step 2 performs DCAP verification, rejects malformed or ambiguous event
logs, requires exactly one
runtime-typed compose event, derives the trusted compose hash from the
DCAP-verified RTMR3 log, and compares it with a release measurement obtained
independently.
/infoand/transparencyare useful displays, not the root of trust. - Step 3 checks the boot session and every shard signer, in order. The
transport quote commits to both;
tee_pubkeyis simply the first signer exposed for convenience. The client compares the complete set with a finalized on-chainVaultConfigread.
What attestation does not cover
- Your own keys. Custody of your trading and spending keys is yours; losing them is on you, not the protocol.
- Liveness and censorship. Attestation does not force the operator to keep the venue running, include a particular order, or provide timely service.
- Matching fairness beyond the measured code. Limit prices, FIFO, execution attributes, and oracle circuit-breaker policy are enforced by the attested matcher, not re-proven by the settlement circuit.
- Your client’s correctness. Attestation verifies the server. That you submitted the order you intended is your client’s responsibility.