Privacy Perps
Privacy on Paradex is end-to-end
Orders, Positions and Trades are private on:
- Paradex Cloud
- Paradex Chain (L2) and
- Ethereum (L1) where state commitments are posted
Privacy Architecture
Paradex Cloud
Orders are only stored on the Paradex Cloud and are only known to the operators of Paradex Cloud. Users can only access their own orders through authenticated access.
Paradex Chain (L2)
Privacy on Paradex Chain is guaranteed through a custom RPC configuration. RPC nodes mask position and account fields by default, and only return private data to the owner after authenticating the request via a valid signature. Bridge partners are only granted selective access to the transaction data (account state remains private) required by their smart contracts to process deposits and withdrawals.
Ethereum (L1)
Encrypted state diffs with ZK verification are regularly posted to Ethereum as part of the zkrollup architecture. The Paradex Privacy Council holds the decryption keys needed to decrypt in the event of an emergency.
In the zkrollup architecture, state update transactions contain an aggregated (“squashed”) state diff that is used to reconstruct state from L1 DA. In the sequencer, an aggregator determines which blocks are included in a given state update, combines the squashed state difference across those blocks, serializes it into the blob payload, and forwards the commitment so that the proof system (SHARP) and Ethereum can enforce that the published diff matches the proven state transition. Encryption prevents the ability of monitoring these state update transactions and reconstructing the aggregated balances/positions of users over time.
In Paradex’s Privacy Architecture, the blob data is encrypted before posting to Ethereum and the ZK proof validates the correctness of the state transition and the correctness of the encryption/commitment to the encrypted diff. This encryption path is unique to the Paradex Chain and not part of Public Starknet defaults.
Encryption
Paradex utilizes hybrid encryption. Encryption is performed using the following steps
-
For each state update, a random symmetric key encryption
k(a felt252) -
At the beginning of the blob,
kis encrypted with all the public keys using the Stark curve (with generatorG) of the Privacy Council- For each council member
iwith public keyPubᵢ, a random variablerᵢis randomly selected - Remainder of the data encrypts
kfor each council memberiusing the function(Rᵢ= G*rᵢ , Yᵢ = blake(Pubᵢ*rᵢ) + k)
- For each council member
-
Finally, the entire blob is encrypted using
blake(i, k) + pᵢ, wherepᵢis theith element of the blob
Decryption
Decryption can only be performed by council members using their decryption keys.
kis reconstructed throughk = Yᵢ - Rᵢ * Privᵢ- Each message is individually decrypted
Privacy Council
Paradex submits state to Ethereum to preserve the possibility of an escape hatch in the event Paradex becomes inoperable. In that situation, the council can decrypt and publish the necessary state to enable recovery.
The current members of the Privacy Council are:
- Paradex Foundation
- Paradex
- Karnot
As Paradex scales, the council will be expanded for even stronger decentralization.