Trusted Execution Environment
Track Turbine updates
Verify Turbine
Verify with Trust Center
Verify manually
Read more
Last updated
Was this helpful?
The Turbine backend runs inside a Trusted Execution Environment (TEE).
Nobody, including PropellerHeads or anyone with physical access to the node, can read Turbine's data or alter the program.
PropellerHeads can update the application. Each update is visible on-chain for full transparency.
Turbine runs in a secure Intel TDX enclave, powered by the open-source TEE framework DStack, provided by Phala.
Each update of Turbine backend must be allowed by an onchain transaction.
Allowing an update means calling addComposeHash function on Turbine DstackApp smart contract. PropellerHeads cannot update Turbine without making a public transaction.
The Trust Center lets you verify all components forming the chain of trust:
The App Source Code block contains the docker-compose file the TEE runs, which references the Turbine Docker image. Confirm that an image with the same sha256 digest was built on GitHub.
This guide describes how to verify that the Turbine API you are interacting with runs genuine Turbine code inside a Trusted Execution Environment.
Validate the quote by pasting it (the value of the quote field, without quotation marks) at TEE Attestation Explorer by Phala. You can also use other Intel TDX attestation verification tools, but the one linked above is specialised for DStack and takes more data into account.
Quote validation extracts several values from the quote, including RTMR3. This value reflects the docker-compose file used to run containers inside the TEE.
Obtain the expected docker-compose file and TEE event log from the Turbine API. Both values are available at the https://api.turbine.exchange/api/info endpoint. To avoid formatting errors, use the following commands to save them as text files:
In app_compose.json, you can find the Docker image hash of the container running Turbine.
Now calculate the expected RTMR3 value. The easiest way is to use https://rtmr3-calculator.vercel.app (source code here). Paste the contents of app_compose.json and event_log.json into the calculator. It verifies that the compose file matches the event log and calculates the expected RTMR3 value.
Calculation of RTMR3 value is explained in Phala documentation.
Compare the RTMR3 value you calculated with the RTMR3 value extracted from the quote during verification. They must match exactly. This proves that the quote was generated by a DStack deployment running Turbine in a confidential virtual machine.
Last updated
Was this helpful?
Was this helpful?
curl https://api.turbine.exchange/api/info | jq .tcb_info.app_compose -j > app_compose.json
curl https://api.turbine.exchange/api/info | jq .tcb_info.event_log -j > event_log.json