Skip to content

AZIP-10: Add message-signing and fallback public keys#37

Open
iAmMichaelConnor wants to merge 4 commits into
AztecProtocol:mainfrom
iAmMichaelConnor:mc/azip-10-mspk-fbpk
Open

AZIP-10: Add message-signing and fallback public keys#37
iAmMichaelConnor wants to merge 4 commits into
AztecProtocol:mainfrom
iAmMichaelConnor:mc/azip-10-mspk-fbpk

Conversation

@iAmMichaelConnor
Copy link
Copy Markdown
Contributor

@iAmMichaelConnor iAmMichaelConnor commented May 27, 2026

Rewrites AZIP-10 to specify adding two new master public keys (mspk, fbpk) to the address preimage, aligned with aztec-packages #23510.

Supersedes #22.

cc @IlyasRidhuan @ciaranightingale @nventuro @just-mitch

@iAmMichaelConnor iAmMichaelConnor requested a review from a team May 27, 2026 13:17
Comment thread AZIPs/azip-10.md Outdated
## Impacted Stakeholders

### App Developers
Noir contract authors who consume `get_public_keys(account)` will see two extra fields on the returned `PublicKeys` struct (`mspk_m_hash` and `fbpk_m_hash`). This breaking oracle change can therefore only be shipped as part of a new Aztec rollup version so as not to break existing private functions on the current rollup version. Before deploying apps on the new version, smart contract devs should recompile their contracts using the latest Aztec tooling.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Eh the actual reason for a breaking change is the address derivation, not so much the oracle change.

Comment thread AZIPs/azip-10.md

## Motivation

Aztec accounts currently commit to four master public keys — `npk`, `ivpk`, `ovpk`, `tpk` — none of which are appropriate for two use-cases that the protocol does not yet serve:
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't it called nhpk?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude tells me the code uses "npk".

Comment thread AZIPs/azip-10.md

Wallets MAY stamp the default hashes into a new account's `PublicKeys` or MAY implement their own deterministic derivation. In either case the resulting hashes participate in address derivation.

### Oracle Interface
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oracles are not part of the protocol are they?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep - a requirement is that any execution environment should be able to execute any private smart contract (generated by any private smart contract framework). Clearly, that's hypothetical at the moment because there's one execution environment and one framework, but one day that won't be the case (especially if people explore more tees or efficient proof outsourcing ideas), so technically oracle changes are protocol changes which need to be documented and scrutinised.

Comment thread AZIPs/azip-10.md Outdated
Comment thread AZIPs/azip-10.md Outdated
Comment thread AZIPs/azip-10.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants