Skip to content

docs(specs): tee-prover description mentions re-derivation step#1591

Open
memosr wants to merge 1 commit into
base:masterfrom
memosr:fix/tee-prover-description-includes-rederivation
Open

docs(specs): tee-prover description mentions re-derivation step#1591
memosr wants to merge 1 commit into
base:masterfrom
memosr:fix/tee-prover-description-includes-rederivation

Conversation

@memosr

@memosr memosr commented Jun 7, 2026

Copy link
Copy Markdown

Summary

The TEE prover spec's frontmatter description says the prover "re-executes L2 block ranges", but the spec body explicitly includes re-derivation as part of the proof. Re-derivation is the trust-critical first step — omitting it from the description weakens what the page promises about the system's security model.

The drift

docs/base-chain/specs/protocol/proofs/tee-prover.mdx:3 — frontmatter:

"... an offchain service that re-executes L2 block ranges"

Spec body, line 7:

"... re-deriving and re-executing an L2 block range"

Re-derivation and re-execution are two distinct steps:

  1. Re-derivation — reconstruct the canonical L2 state by reading posted L1 calldata and running the derivation pipeline. This is the step that anchors the L2 state to L1 data.
  2. Re-execution — replay the resulting transactions against that derived state to produce a new state root.

Without step 1, step 2 is just "the operator hands the TEE some L2 state and asks it to re-execute" — which proves nothing about whether that state was honestly derived from L1. The security guarantee comes from the combination.

Why this matters

The frontmatter description shows up wherever the page is previewed (sidebar tooltips, search results, social embeds). Describing the TEE prover as a service that "re-executes L2 block ranges" reads naturally as "the TEE runs the block again and signs the result" — which is technically true but misses the security-relevant half of the system.

A reader who only reads the description forms a weaker mental model of the trust assumption than the page itself documents. Aligning the description with the body fixes that.

The fix

- description: "... an offchain service that re-executes L2 block ranges"
+ description: "... an offchain service that re-derives and re-executes L2 block ranges"

Single-line change. Matches the spec body verbatim.

Verification

  • ✅ One file modified: docs/base-chain/specs/protocol/proofs/tee-prover.mdx
  • ✅ Spec body unchanged
  • ✅ Description now matches the wording the body already uses

The tee-prover.mdx frontmatter description says the TEE prover is "an
offchain service that re-executes L2 block ranges", but the spec body
at line 7 specifies "re-deriving and re-executing an L2 block range".

Re-derivation from L1 is the trust-critical first step in the proof:
it ensures the L2 state being re-executed was actually derived from
posted L1 data, not from arbitrary attacker-supplied input. Without
re-derivation in the security claim, a malicious operator could feed
the TEE any L2 state and the attestation would still be valid.

Omitting re-derivation from the description weakens what the description
actually promises about the system. Updated to match the body text.
@cb-heimdall

Copy link
Copy Markdown
Collaborator

🟡 Heimdall Review Status

Requirement Status More Info
Reviews 🟡 0/2
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 1
Sum 2

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.

2 participants