Attestation Verification for Delegated Proving #9
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
This PR adds Trusted Execution Environment (TEE) attestation report verification to proving service clients. With this PR, clients can verify that their delegated prover was run inside a TEE and thus preserved the input and processing privacy of their request.
Note: We tested this end-to-end on versions 0.8.1 of the miden client and the miden prover proxy. The reason behind using these versions is for compatibility with the Miden Testnet.
Implementation Details
Changes
Attestation Verification Integration
Attestation-ReportHTTP response header from TEE-enabled delegated provers.New Dependencies
Architecture
Backwards Compatibility
Attestation-ReportHTTP response header? → Verify the attestation.Attestation-Reportresponse header or no attestation report in theAttestation-Reportresponse headers? → Proceed without verification (legacy behavior).Testing Changes
To test:
Spin up a delegated prover inside a TEE (this can be provided by Lunal folks). This will have an endpoint (e.g
https://miden.lunal.dev/)Initialize a local miden client (https://github.com/0xMiden/miden-client)
In the
miden-client.toml, set theremote_rpc_endpointto the delegated prover url:Migration Strategy
Phase 1: Parallel Deployment
Phase 2: Testing & Validation
Phase 3: Transition (Optional)