Skip to content

fix(key-store): reject accounts sharing master privacy keys - #24845

Closed
nchamo wants to merge 2 commits into
merge-train/fairies-v5from
nchamo/shared-pks
Closed

nchamo wants to merge 2 commits into
merge-train/fairies-v5from
nchamo/shared-pks

Conversation

@nchamo

@nchamo nchamo commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Stopgap for PrivateMutable initialization nullifier shared between two accounts with same keys but different addresses (notes not shared) #24821: aztec-nr derives PrivateMutable/PrivateImmutable initialization nullifiers from the nullifier-hiding key and the storage slot, without the owner address, so two accounts sharing privacy keys silently corrupt each other's state variables.
  • KeyStore.addAccount now throws when a different address is already registered with any of the four master privacy keys, since only the key holder can trigger the collision, making PXE registration the right choke point. Re-registering the same account stays idempotent.
  • E2e suites that reused one secret across addresses out of convenience (crowdfunding decoy escrow, account-contract guide, bot bridge-resume) now use distinct secrets. The multiple_accounts_1_enc_key suite tests the now-rejected scenario itself, so it is skipped until the restriction is lifted (tracked in F-835).
  • To be removed once the Noir fix lands. Note a user registering the two accounts in separate PXEs can still hit the issue.

@nchamo nchamo self-assigned this Jul 21, 2026
@nchamo nchamo added ci-draft Run CI on draft PRs. ci-no-fail-fast Sets NO_FAIL_FAST in the CI so the run is not aborted on the first failure labels Jul 21, 2026
@nchamo
nchamo marked this pull request as ready for review July 21, 2026 16:53
@nchamo
nchamo requested a review from nventuro July 21, 2026 16:53
@nchamo

nchamo commented Jul 21, 2026

Copy link
Copy Markdown
Contributor Author

Decided against this

@nchamo nchamo closed this Jul 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-draft Run CI on draft PRs. ci-no-fail-fast Sets NO_FAIL_FAST in the CI so the run is not aborted on the first failure

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant