You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
TEE: Add Expiration and Renewal Mechanism for Node Attestations #1056
Currently, when a node submits an attestation to the contract, that attestation remains valid indefinitely (unless the MPC Docker image hash changes).
In addition, we do not perform node-to-node attestation — instead, we rely solely on the attestation recorded on the contract side.
Proposed security enhancement:
Introduce a validity period for attestations. Nodes would then be required to submit fresh attestations at regular intervals.
Possible approach:
Node side: Include a timestamp in the report_data field of the attestation.
Contract side: When validating the attestation, record this timestamp. The attestation remains valid only for X days, after which the node must submit a new one.
User Story
As a network operator,
I want node attestations to have a defined validity period,
so that outdated or potentially compromised attestations cannot remain trusted indefinitely, and nodes are required to periodically re-attest.
Acceptance Criteria
Decide whether we want to adopt this direction (introducing attestation validity periods).
If yes, define the architecture for implementing it (including node-side timestamping, contract-side validation, and refresh intervals).
changed the title [-]Add Expiration and Renewal Mechanism for Node Attestations[/-][+]TEE:: Add Expiration and Renewal Mechanism for Node Attestations[/+]on Sep 9, 2025
changed the title [-]TEE:: Add Expiration and Renewal Mechanism for Node Attestations[/-][+]TEE: Add Expiration and Renewal Mechanism for Node Attestations[/+]on Sep 9, 2025
Currently, when a node submits an attestation to the contract, that attestation remains valid indefinitely (unless the MPC Docker image hash changes).
To be more precise: in the current implementation, if someone challenges an already saved attestation whose collateral has expired (by calling verify_tee), the attestation verification will fail, but the participant still won’t be removed. Something to revisit.
To be more precise: in the current implementation, if someone challenges an already saved attestation whose collateral has expired (by calling verify_tee), the attestation verification will fail, but the participant still won’t be removed. Something to revisit.
I don't think this is entirely correct. Any participant with an invalid state is kicked out. This happens by:
Activity
[-]Add Expiration and Renewal Mechanism for Node Attestations[/-][+]TEE:: Add Expiration and Renewal Mechanism for Node Attestations[/+][-]TEE:: Add Expiration and Renewal Mechanism for Node Attestations[/-][+]TEE: Add Expiration and Renewal Mechanism for Node Attestations[/+]netrome commentedon Sep 9, 2025
Note: Not a priority for our soft-launch but would be nice to look into this before the hard launch.
pbeza commentedon Sep 9, 2025
To be more precise: in the current implementation, if someone challenges an already saved attestation whose collateral has expired (by calling
verify_tee), the attestation verification will fail, but the participant still won’t be removed. Something to revisit.mpc/libs/chain-signatures/contract/src/lib.rs
Lines 1105 to 1111 in 9967e16
netrome commentedon Sep 9, 2025
I don't think this is entirely correct. Any participant with an invalid state is kicked out. This happens by:
barakeinav1 commentedon Feb 11, 2026
this was partially done in PR
perf(contract): contract should not store full attestation submission (#1663)
and there is a follow-up #1639 use expiration durations from the attestation certificate
netrome commentedon Apr 20, 2026
Closing this in favor of #1639 as we already have a concept of expiry and #1639 seems to be an improvement on this.