Skip to content

[guardian] anchor on-chain trust on the enclave build (PCR0), not the ephemeral key#690

Draft
0xsiddharthks wants to merge 1 commit into
mainfrom
siddharth/guardian-onchain-pcr0-anchor
Draft

[guardian] anchor on-chain trust on the enclave build (PCR0), not the ephemeral key#690
0xsiddharthks wants to merge 1 commit into
mainfrom
siddharth/guardian-onchain-pcr0-anchor

Conversation

@0xsiddharthks

Copy link
Copy Markdown
Contributor

The committee node pins the guardian's ephemeral ed25519 key on-chain, so a guardian reboot (fresh key) breaks verification and stalls withdrawals. Anchor on the expected enclave build instead, so Nitro attestation can vouch for a fresh key each boot (the mainnet model).

  • config.move: store guardian_pcr0 + guardian_git_revision in place of guardian_public_key; finish_publish and the update_guardian governance action set/rotate the build.
  • publish CLI: --guardian-pcr0 / --guardian-git-revision, optional with all-zero defaults for non-Nitro dev. BTC key unchanged (required, immutable).
  • onchain getters for the build; e2e publishes the all-zero placeholder.

Node-side attestation verification against this anchor is a follow-up (stacks on #666/#675). Supersedes the ephemeral-key-PVC approach in #668.

… ephemeral key

The committee node pinned the guardian's ephemeral ed25519 key on-chain, so a
guardian reboot (which mints a fresh key) broke verification and stalled
withdrawals. Replace that anchor with the expected enclave build:

- config.move stores guardian_pcr0 + guardian_git_revision instead of
  guardian_public_key; set_guardian / finish_publish set the build.
- update_guardian governance now rotates the build (+ url), enabling
  committee-governed enclave upgrades.
- publish CLI takes --guardian-pcr0 / --guardian-git-revision (optional,
  all-zero default for non-Nitro dev); the immutable BTC key is unchanged.

The node verifies the live ephemeral key against this build via Nitro
attestation (a no-op in non-Nitro dev) in a follow-up PR.
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.

1 participant