livy-example Model
Conceptual view of how livy-tee attestation works, using livy-example artifacts.
livy-example is a demo of the livy-tee verification model.
It is not important as a deployment pattern; it is useful because it exposes the exact artifacts a third party needs to recompute and verify claims independently.
Core Idea
livy-tee binds computation to attestation in two layers:
- Input/output commitment:
payload_hash = SHA-256(SHA-256(input) || SHA-256(output)) - Quote binding:
quote_report_data = SHA-512(nonce_val || nonce_iat || runtime_report_data)
The first layer proves what was computed.
The second layer proves that this commitment was carried inside a real TDX quote appraised by ITA.
What runtime_report_data Contains
runtime_report_data is always 64 bytes and includes:
payload_hash(32 bytes)build_id(8 bytes)version_code(4 bytes)build_number(4 bytes)nonce(8 bytes)- reserved bytes (8 bytes)
This 64-byte structure is the portable commitment that verifiers can recompute.
What the Demo Outputs
From livy-example, the minimal verifier package is user_attestation.json.
It includes enough material to validate bindings without Livy-hosted state:
- input/output-related commitment data
runtime_report_data- raw quote
- ITA token (when available)
- ITA verifier nonce parts (
val,iat)
The demo also emits richer files (full_attestations.json, per-attestation files), but the key point is that minimal verification remains possible from public artifacts.
How Verification Works (Conceptually)
Verification is a recomputation, not a trust decision:
- Recompute
payload_hashfrom input/output and compare withruntime_report_data[0..32]. - Recompute
SHA-512(nonce_val || nonce_iat || runtime_report_data). - Compare that value to quote
REPORTDATAbytes. - If ITA token is present, check its signature and confirm token
tdx_report_datamatches quoteREPORTDATA.
When these checks match, the verifier has cryptographic evidence that the claimed output is bound to the attested execution.
Why This Matters
The model keeps verification open:
- Any party can rerun checks with the same formulas.
- No private Livy database is required for basic proof validation.
- The same artifact format can be consumed by other systems later without changing attestation semantics.