zkAddress System
Manta Atlantic augments traditional Substrate accounts with shielded zkAddresses so users can transact privately while retaining compatibility with Polkadot tooling.
Dual-Address Model
- Public account – Handles staking, governance, and XCMP interactions using standard Polkadot keys.
- Private zkAddress – Holds UTXO-style notes that represent balances, credentials, or proofs, enabling confidential transfers and credential issuance.
Key Concepts
Component | Purpose |
---|---|
Viewing Key | Lets holders inspect their private note set locally without revealing it to the network. |
Prove Key | Grants third parties the ability to verify specific proofs, supporting selective disclosure in compliance workflows. |
Note Commitment | Binds balances or credentials to zkAddresses using commitments stored in Atlantic’s runtime. |
Private Transaction Flow
- Note creation – Sender generates a new commitment and encrypts the payload with the recipient’s viewing key.
- Proof generation – Sender calls
zk_generateProof
to produce a zero-knowledge proof of validity without revealing note contents. - Submission – The proof and ciphertext are broadcast via extrinsic or RPC, updating the UTXO set while keeping balances hidden.
- Consumption – Recipient scans encrypted updates, decrypts matching notes, and updates their local wallet state.
Interoperability
- zkAddresses can export proofs to partner chains (e.g., Bifrost, Moonbeam) to unlock wrapped liquidity without disclosing identities.
- Polkadot asynchronous backing keeps private transfers within expected latency bounds even during high throughput periods.
Operational Tips
- Rotate Prove Keys regularly and record distribution logs to maintain auditability.
- Cache circuit parameters locally to avoid latency spikes in proof generation services.
- Monitor
state_getStorage
for note commitment merkle roots to keep client state synchronized.
Continue to the RPC reference for invocation details.