Skip to content

Client security: protect ZKP identity custody and block unsafe preview registration (TRR-19, TRR-20) #309

Description

@NeaBouli

Parent audit register: #303
Paused integration task: #300
Rollout tracker: #29

Objective

Prevent preview identities from leaking secrets or registering unusable commitments while the real browser prover remains non-submittable.

Acceptance criteria

  • Do not persist a plaintext identity secret in localStorage; use reviewed encrypted custody or keep the secret out of persistent state.
  • Define a non-destructive migration and user-visible cleanup path for existing plaintext preview records.
  • Strictly validate identity import and make secret-bearing export an explicit warned action.
  • Use the canonical BN254 MiMC identity commitment and chain-bound nullifier encoding.
  • Block MsgRegisterIdentity from the preview client unless the complete approved custody and prover activation boundary is satisfied.
  • Remove or qualify UI anonymity claims while submission is disabled.
  • Add storage, reload, lock, import/export, malformed-data, commitment-parity and transaction-registry tests.
  • Keep ZKPService.isSubmittable hard false until separate production gates pass.

Dependency

#300 may continue only in compatibility-only mode and may not claim completion of this custody/activation ticket.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingjavascriptPull requests that update javascript code

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions