Newton Protocol privacy architecture — HPKE encryption, secure envelopes, and confidential policy evaluation
Newton’s privacy layer enables end users to submit encrypted sensitive data (PII, credentials, financial records) that operators threshold-decrypt during policy evaluation. The data never appears on-chain.
Many policies require access to sensitive data — identity documents, API keys, compliance records, or proprietary parameters. Newton’s privacy layer provides:
End-to-end encryption of sensitive inputs using HPKE (X25519/ChaCha20-Poly1305)
Threshold decryption — operators collectively decrypt data using t-of-n key shares; no single party ever holds the full decryption key
Zero on-chain exposure — only hashes and commitments go on-chain, never plaintext data
Dual-signature authorization — both the end user and the dApp must sign off before operators will decrypt anything
Newton uses the HPKE standard (RFC 9180) with the following cipher suite:
Component
Algorithm
KEM
DHKEM(X25519, HKDF-SHA256)
KDF
HKDF-SHA256
AEAD
ChaCha20-Poly1305
Signing
Ed25519
HPKE Base mode encrypts data to the system’s threshold X25519 public key. This key is produced via interactive DKG (distributed key generation) across the operator set — no single operator holds the full private key. Sender authentication is handled separately via Ed25519 signatures on the serialized envelope.
32-byte X25519 ephemeral public key for HPKE decapsulation (hex)
ciphertext
HPKE ciphertext including the ChaCha20-Poly1305 authentication tag (hex)
policy_client
0x-prefixed EVM address of the target PolicyClient
chain_id
Chain ID for context binding
recipient_pubkey
System’s Ed25519 public key (hex)
AAD construction: The additional authenticated data is keccak256(abi.encodePacked(policy_client_bytes, chain_id_be_bytes)). This binds the ciphertext to a specific PolicyClient and chain — tampering with either field causes decryption to fail.
Newton distributes the HPKE private key across operators using interactive DKG (FROST DKG / Pedersen VSS). During task evaluation:
Each operator computes a partial decryption share from its DKG key share
Operators exchange shares via encrypted NATS messages
Each operator reconstructs the plaintext locally from t-of-n shares
The reconstructed plaintext is used for policy evaluation and BLS signing
The threshold keypair is cryptographically independent from operators’ ECDSA and BLS keys — a compromised signing key does not yield a decryption share. The combined public key is stored on-chain and readable via a single contract call (getThresholdPublicKey()), or via the newt_getPrivacyPublicKey RPC method.DKG ceremonies run only during operator set changes, not per-task.
The Gateway validates both signatures and distributes the encrypted envelopes to operators, who threshold-decrypt the data and merge plaintext into policyTaskData for evaluation.For stored secrets (API keys for PolicyData oracles), see Encrypting Secrets.