Attestations
Nitro-Attestation is a unique feature available to Nitro Enclaves. The enclave leverages the attestation process to prove its identity and build trust with an external service.
Components
- AttestationVerifier: A specialized enclave responsible for taking attestation requests from other enclaves and generating a Solidity-verifiable attestation.
- AttestationAuthor: A smart contract containing functions that verify the attestation produced by the AttestationVerifier.
How Enclave Attestations Are Verified On-Chain
In this process, the Enclave requests an attestation from the Operator. The Operator forwards the attestation to the AttestationVerifier for validation. Once activated, the AttestationVerifier confirms the attestation and returns a verified result back to the Operator. Finally, the Operator submits this verified attestation to the AttestationAuthor smart contract on-chain, thereby proving its identity and establishing trust.
2b. Get Verified Attestation
The verified attestation is the attestation message that has been signed by the Attestation Verifier, thereby proving the existence of the enclave on the smart contract. Let be the raw attestation message. The Attestation Verifier uses its private key to sign and produce the signature :
The verified attestation is then the tuple , which can be validated on-chain using the Attestation Verifier's public key :
3. Submit Verified Attestation and Prove Identity
To establish trust, the operator submits the verified attestation along with a proof of identity. Let represent the operator's identity information. The operator signs using its private key to generate the signature :
The operator then submits the set to the Attestation Author contract. The contract verifies the Attestation Verifier's signature with and the operator's signature with . Once both verifications succeed, trust is established on-chain.