Confidential Transfers & Data Consent

Confidential transfers and data-consent management on EmpoorioChain are both handled by a single pallet: pallet-privacy, compiled into the runtime at index 17.

Maturity status — read this before building on it. pallet-privacy is implemented and exercised by benchmarks, and at least one real hardening fix has landed following a testnet security incident. No third-party security audit of this pallet has been confirmed. Do not treat it as audited or production-complete. A previously-found issue allowed the caller of a confidential transfer to choose which verifying key was used to check their own zero-knowledge proof; that has been fixed so the circuit's verifying key is now fixed by the runtime rather than caller-supplied. This is mentioned here as a maturity signal, not as reason for alarm — treat it the same way you'd treat any pallet with real fixes and no external audit yet.

Confidential transfers

The transfer-privacy side of the pallet lets you move tokens between accounts without revealing the transfer amount on-chain, using zero-knowledge proofs:

  • register_verifying_key registers a verifying key for a ZK circuit.
  • submit_zk_proof submits a proof against a registered verifying key.
  • shielded_transfer performs the actual value-hidden transfer, checked against a proof.

Treat these as capability names, not a full call-signature reference — check live chain metadata (api.tx.privacy) before writing production code.

Separately, the same pallet also implements on-chain consent management and GDPR-style data-subject rights:

  • set_data_consent and update_consent_with_tracking toggle and track consent for how your data is used.
  • request_data_minimization requests that only the minimum necessary data be retained.
  • request_data_portability requests an export of your data.
  • request_data_erasure and execute_data_erasure implement a "right to be forgotten" style erasure flow — a request step and a separate execution step.

pallet-privacy's scope is data consent, ZK proofs, and shielded transfers — it does not implement mixing vaults. If you're looking for a Tornado-Cash-style pooled/mixing privacy mechanism, that's not what this pallet provides.

Is this page helpful?

Tabla de Contenidos

Editar Página