Newton Protocol privacy architecture — HPKE encryption, secure envelopes, and confidential policy evaluation. Private transactions with verifiable compliance for institutional and enterprise use cases.
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.