Polynomial Commitment Protocol for MPC Encryption
A formal specification of Umbra's hybrid protocol leveraging Non-Interactive Zero-Knowledge Proofs with efficient polynomial commitments to enable lightweight encryption verification to MPC networks
Abstract
This document formally specifies Umbra's Polynomial Commitment Protocol, a hybrid cryptographic system that bridges Solana (Ed25519), Zero-Knowledge Proofs (BN254), and Multi-Party Computation (Curve25519). The protocol enables users to prove valid encryption to the MPC network with significantly fewer communication rounds while maintaining lightweight ZKPs with minimal non-linear constraints, resulting in dramatically faster proof generation and verification.
The key innovation is the use of polynomial commitments combined with Strong Fiat-Shamir transformation and 85-bit limb-based Non-Native Arithmetic to efficiently bridge field mismatches. This eliminates interactive challenge-response rounds and reduces circuit complexity by orders of magnitude compared to naive approaches.
1. System Overview and Actors
The protocol coordinates four distinct parties:
1.1 User A (The Prover)
Identity:
The user holds two keypairs:
- Ownership Keypair: Ed25519 keypair for Solana transaction signing and ownership control
- Decryption Keypair: Curve25519 keypair for encryption and decryption operations
Goal: Deposit funds and claim them into a Private Token Account without revealing the amount or source note, while proving correct encryption to MPC.
1.2 User B (The Adversary)
Role: Passive observer monitoring the blockchain
Goal: Compromise anonymity (link nullifier to leaf) or confidentiality (decrypt amount)
1.3 Smart Contract C (The Verifier)
Role: Solana program that maintains the Incremental Merkle Tree, verifies Zero-Knowledge Proofs on-chain, and orchestrates data passing to MPC
Constraint: Transparent execution; everything is stored on-chain; cannot hold private keys
1.4 MPC Network D (The Authority)
Role: Can be thought of as a virtual user that holds a Curve25519 keypair
Constraints:
- Operates over where
- Cannot perform BN254 pairings or Poseidon hashes
- Output capability limited to values
2. Cryptographic Foundations
2.1 Mathematical Fields and the Mismatch Problem
The protocol navigates two distinct prime fields, each serving a specific purpose:
Encryption/MPC Field: - The prime field of Curve25519
Used for Rescue Cipher encryption, MPC secret sharing, and polynomial arithmetic.
Zero-Knowledge Field: - The scalar field of BN254
Used for Merkle Trees (Poseidon) and Groth16 circuit logic.
The Arithmetic Mismatch: Since , an element cannot be naively represented as a signal in an circuit because it may overflow the modulus . This necessitates Non-Native Arithmetic.
2.2 Non-Native Arithmetic: 85-bit Limb Basis
To verify operations in the field inside an circuit, we employ a limb-based representation. Every element is decomposed into 3 limbs of 85 bits each:
where each limb satisfies for
Why 85 bits?
Coverage:
- bits, which strictly covers the 255-bit prime
Overflow Safety:
- Native capacity of is bits
- Addition of two limbs: max value
- Multiplication of two limbs: max value
This ensures intermediate calculations never overflow the native modulus .
Constraint Logic
To enforce inside the circuit:
- Decomposition: Prover supplies limbs for , , and a quotient
- Range Check: Circuit asserts for all limbs via binary decomposition constraints
- Polynomial Equality: Circuit enforces the relation over the integers:
Efficiency Gain: This limb-based approach requires significantly fewer constraints compared to bit-by-bit verification, directly translating to faster proof generation.
3. Data Structures
3.1 The Incremental Merkle Tree
The mixer pool uses a Merkle Tree of depth . Leaves are constructed to hide both usage constraints and secret values using the Poseidon hash function over public context (AssetID, PoolID) and secret context (random blinding factor, nullifier, amount).
Components:
- Random blinding factor: 250-bit value
- Private nullifier: 250-bit value
- Amount: 64-bit value
4. The Interactive Protocol (Σ-Protocol)
We first define the theoretical Interactive Protocol to establish Completeness, Soundness, and Zero-Knowledge properties.
4.1 Phase 1: Commitment (P → V)
User A (Prover) locks secret values into a commitment:
Step 1 - Shared Secret:
Step 2 - Keystream:
Generate nonce and compute keystream using Rescue cipher:
Step 3 - Encryption (One-Time Pad):
Encrypt the amount using one-time pad over the field:
Encrypt the polynomial blinder:
where is the amount, is a random blinder, and are keystream elements.
Step 4 - Commitment:
Select random blinder and compute commitment hash using Poseidon hash function :
Step 5 - Send to Verifier:
Send commitment to the Verifier (Smart Contract)
4.2 Phase 2: Challenge (V → P)
- Verifier generates uniform random challenge
- Verifier sends to Prover
4.3 Phase 3: Response (P → V)
- Polynomial Evaluation:
-
ZKP Generation: Prover generates proof for the relation:
- Membership: Leaf is in Merkle Tree
- Encryption: (Non-Native)
- Polynomial: (Non-Native)
- Nullifier: Correctly formed
-
Send to Verifier
4.4 Phase 4: Verification
- Verifier checks using public inputs
- Verifier checks nullifier set for duplicates
- MPC nodes decrypt amount and blinder, then verify polynomial evaluation matches
4.5 Security Analysis
The protocol's security relies on standard cryptographic assumptions (ROM, CDH, DLP, Groth16 security, PRF security of Rescue). We focus here on the novel security properties introduced by our polynomial commitment mechanism with non-native arithmetic.
Polynomial Commitment Soundness
Key Property: The polynomial commitment binds the prover to a specific amount value through the Schwartz-Zippel Lemma. An adversary who commits to amount via polynomial cannot later claim a different amount (via polynomial ) without the MPC detecting the mismatch.
Soundness Guarantee: Since is a non-zero polynomial of degree , the probability that a random challenge is a root is at most by the Schwartz-Zippel Lemma.
This polynomial commitment mechanism provides cryptographic binding between the encrypted amount and the ZK proof, preventing amount manipulation attacks.
5. The Non-Interactive Protocol (Strong Fiat-Shamir)
To eliminate interaction and prevent front-running attacks on the challenge, we apply the Strong Fiat-Shamir Transformation.
5.1 The Transformation Logic
Instead of receiving from the Verifier, the Prover derives from the transcript of the commitment. This binds the challenge to the specific secrets committed:
Key Advantage: This transformation eliminates the need for multiple communication rounds. The prover can generate the entire proof in a single pass, reducing latency from multiple round-trips to a single on-chain transaction.
5.2 Protocol Execution Flow
Step 1: Setup & Encryption (Off-Chain)
Identical to Interactive Phase 1. User derives keys, encrypts , , and computes .
Step 2: Challenge Derivation
- Transcript Assembly:
- Random Oracle Evaluation:
Security Note: Because depends on (which contains ), the Prover cannot manipulate to satisfy a polynomial relation without changing . This circular dependency makes spoofing computationally infeasible.
Step 3: ZKP Generation (85-bit Limb Circuit)
The circuit takes as a public input:
Inputs: Witnesses , , , , provided as 3-limb arrays
Constraints:
-
Non-Native Check 1:
-
Non-Native Check 2:
-
Commitment Check:
Step 4: On-Chain Settlement
The Smart Contract:
- Reconstructs from transaction data
- Computes
- Verifies
- Emits event for MPC network
6. Adversarial Analysis
We now provide comprehensive game-based security proofs against active and passive adversaries.
6.1 Scenario A: User A (The Drainer)
Goal: Claim more funds than deposited ()
We analyze three sophisticated attack strategies and provide rigorous game-based security proofs.
Attack 1: Modulus Mismatch Exploitation
Attack Strategy: Adversary attempts to exploit the field mismatch by finding ciphertext that decrypts to different values modulo vs. modulo .
Formal Game: Modulus Mismatch Game
- Setup: Challenger generates system parameters
- Adversary Goal: Find such that:
- (passes circuit check)
- (MPC decrypts to fake amount)
Theorem 8 (Modulus Mismatch Resistance):
For any PPT adversary, the probability of successfully exploiting modulus mismatch is negligible.
Proof:
Non-Native Arithmetic Enforcement: The circuit verifies addition via 85-bit limb decomposition.
The circuit enforces integer equality of the limb representations:
where , , are the integer values represented by their respective limbs, and is an integer quotient.
Key Observation: This is an integer equality, not modular arithmetic. Therefore the ciphertext equals the plaintext plus keystream plus some multiple of the modulus, all as integers.
Contradiction: Suppose succeeds with where .
From circuit verification:
From MPC decryption (modulo ):
Subtracting:
This implies:
But we assumed . Contradiction!
Conclusion: The 85-bit limb arithmetic enforces integer equality, making modulus mismatch attacks impossible.
Attack 2: Challenge Prediction and Adaptive Polynomial Construction
Attack Strategy: Adversary attempts to predict challenge before committing, then construct polynomial with fake amount that evaluates correctly at predicted challenge.
Formal Game: Challenge Prediction Game
- Adversary chooses: with
- Adversary predicts: Challenge
- Adversary computes:
- Adversary creates: Commitment
- Challenger derives: Actual challenge
- Adversary wins if: and verification passes
Theorem 9 (Challenge Unpredictability):
For any PPT adversary making at most random oracle queries, the success probability is negligible: at most .
Proof:
Challenge Binding: The challenge depends on commitment:
Case 1: Adversary queries on correct transcript before outputting proof
makes queries to and receives responses .
For to predict correctly, one query must equal the actual transcript:
since each is uniformly random in .
Case 2: Adversary does not query on correct transcript
must guess without querying. In ROM, is information-theoretically hidden:
Case 3: Adversary creates collision
finds such that:
Collision probability: (Poseidon collision resistance)
Total probability: The adversary's success probability is bounded by the sum of these cases, which is negligible. Therefore, challenge prediction is infeasible.
Attack 3: Keystream Divergence Attack
Attack Strategy: Adversary uses different keystreams in ZKP vs. MPC decryption to claim incorrect amount.
Formal Game: Keystream Divergence Game
- Adversary computes: Keystream for ZKP
- MPC decrypts with: Real keystream derived from shared secret
- Adversary Goal: Successful attack with divergent keystreams
Theorem 10 (Keystream Binding):
For any PPT adversary, the success probability is negligible: at most .
Proof:
Keystream Determination: Both ZKP and MPC use same keystream derivation:
The nonce is public (included in transcript). The shared secret is uniquely determined by and .
Case 1: Adversary uses correct shared secret
Then by determinism of Rescue cipher. Attack fails.
Case 2: Adversary uses different shared secret in ZKP
The commitment includes keystream components:
For MPC to decrypt differently, the keystream used in the ZKP must differ from the keystream derived from the shared secret.
Constraint from polynomial check: Both the ZKP verification and MPC verification must agree on the polynomial evaluation . However, if different keystreams are used, the MPC will decrypt to different values than what the ZKP claims. This creates a constraint that the adversary must satisfy, which requires predicting the challenge.
Equation: Setting both polynomial evaluations equal:
Simplifying:
If or , then:
Since is the output of a random oracle, the challenge takes a specific required value with probability only .
Challenge Unpredictability: The challenge is derived from the random oracle applied to the commitment. For the adversary to satisfy the constraint, they must predict the random oracle output to match a specific value, which happens with probability .
Case 3: Adversary breaks PRF security of Rescue
To use different keystreams without detection, the adversary must break the PRF security of Rescue cipher, which has security level .
Conclusion:
Keystream divergence attacks are infeasible.
6.2 Scenario B: Passive Observer with Complete Plaintext Knowledge
Adversary Model: We consider a strong passive adversary with the following capabilities:
- Complete blockchain visibility: Monitors all on-chain data (Merkle root, nullifier hash, nonce, ciphertexts, polynomial evaluation, challenge, ZKP)
- Plaintext space knowledge: Knows all possible amount values (the complete set of 64-bit unsigned integers)
- Computational bounds: Cannot break underlying cryptographic primitives (DLP, CDH, PRF, ROM)
Adversary Goal: Determine which specific amount was encrypted in a given transaction.
This is a stronger model than typical IND-CPA security, as the adversary has perfect knowledge of the plaintext distribution and all possible values.
Novel Security Property: Polynomial Blinding Against Plaintext-Aware Adversaries
Theorem (Information-Theoretic Polynomial Blinding):
Even when the adversary knows all possible plaintext amounts , the polynomial evaluation provides perfect information-theoretic hiding of .
Formal Security Game:
- Setup: Adversary receives complete plaintext space and all on-chain data:
- Challenge: Challenger encrypts actual amount
- Adversary Task: Determine from observation of
- Adversary Wins: If correct identification
Theorem: For any adversary (even computationally unbounded), the probability of correctly identifying the actual amount is exactly , which is no better than random guessing despite knowing all possible amounts.
Proof:
Key Observation: For any candidate amount , we can write:
where is uniquely determined by the equation and lies in (assuming , which holds except with negligible probability).
Consistency Analysis: The adversary observes polynomial evaluation and knows:
- Challenge (public)
- All possible amounts
- Ciphertexts , (but without keystream, these are information-theoretically hidden)
For each candidate , there exists a unique blinding factor that would produce the observed . This can be solved directly from the polynomial equation.
Distribution Analysis: Since the actual blinding factor is chosen uniformly at random from , and (specifically, while ), every candidate amount is equally consistent with the observed transcript.
Information-Theoretic Argument:
From the adversary's perspective:
- is a single field element
- is known
- For each , there exists a valid pair
Since is uniformly distributed in and provides perfect one-time pad blinding for the term, the observed is information-theoretically independent of which specific was chosen.
Conclusion: Even with complete knowledge of the plaintext space, the polynomial blinding mechanism provides perfect secrecy - the adversary gains zero information about the actual amount from observing .
Practical Implication: This property is novel and critical for our protocol. Traditional IND-CPA security assumes the adversary doesn't know the plaintext distribution. Our polynomial commitment provides security even when the adversary:
- Knows all possible amounts (full plaintext space)
- Has unlimited computational power (information-theoretic security)
- Can observe the polynomial evaluation (which is publicly visible on-chain)
7. Protocol Advantages
7.1 Communication Efficiency
Traditional Interactive Approach:
- Round 1: Prover → Verifier (commitment)
- Round 2: Verifier → Prover (challenge)
- Round 3: Prover → Verifier (response)
Non-Interactive Approach:
- Single transaction: Prover → Blockchain
The Non-Interactive transformation eliminates two-thirds of the communication rounds, significantly reducing latency and enabling seamless integration with blockchain transactions.
7.2 Circuit Efficiency
The 85-bit limb-based approach provides substantial efficiency improvements over naive bit-by-bit verification:
Key Advantages:
- Dramatically reduced constraint count for field operations
- More efficient Merkle path verification
- Significantly faster proof generation
- Lower memory requirements during proving
The limb-based Non-Native Arithmetic enables practical ZK proofs for cross-field operations that would otherwise be computationally prohibitive.
7.3 Security Properties
✅ Computational Soundness: security under DLP and PRF assumptions
✅ Perfect Zero-Knowledge: Information-theoretic hiding of witness data
✅ Information-Theoretic Confidentiality: One-Time Pad encryption
✅ Anonymity Set: possible sources per claim
✅ Front-Running Resistance: Challenge derived from commitment
8. Integration with Umbra Architecture
8.1 Relationship to Individual Transaction Keys
The polynomial commitment protocol is used in conjunction with the Transaction Viewing Key (TVK) derivation system:
- ITK Derivation: User derives ITK from MVK and timestamp
- Linker Encryption: User encrypts metadata using Poseidon Cipher with ITK
- MPC Encryption: User encrypts amount using Rescue Cipher with ECDH shared secret
- Polynomial Commitment: User proves correctness of MPC encryption via this protocol
8.2 Relationship to MPC Network
The protocol enables the MPC Network to:
- Verify Encryption: Confirm that ciphertext was correctly formed
- Decrypt Amount: Use threshold decryption to reveal amount
- Validate Polynomial: Check polynomial evaluation without learning blinding factor
- Prevent Draining: Reject claims where amount exceeds deposited amount
9. Formal Security Parameters
| Parameter | Value | Security Property |
|---|---|---|
| Field Size () | DLP hardness | |
| Scalar Field () | Pairing security | |
| Limb Size | 85 bits | Overflow prevention |
| Number of Limbs | 3 | Field coverage |
| Merkle Depth | 32 | Anonymity set |
| Challenge Space | Soundness | |
| PRF Security | 128 bits | Rescue cipher |
| Hash Security | 128 bits | Poseidon collision resistance |
10. References
- Schwartz-Zippel Lemma: J. Schwartz (1980), R. Zippel (1979) - Polynomial identity testing
- Fiat-Shamir Transform: A. Fiat, A. Shamir (1986) - How to prove yourself
- Strong Fiat-Shamir: D. Bernhard et al. (2012) - Non-malleable Fiat-Shamir
- Groth16: J. Groth (2016) - On the size of pairing-based non-interactive arguments
- Rescue Cipher: Grassi et al. (2020) - Rescue: A family of efficient permutations
- Poseidon Hash: Grassi et al. (2019) - Poseidon: A new hash function for zero-knowledge proof systems
For implementation details of specific components: