For the complete documentation index, see llms.txt. This page is also available as Markdown.

Trusted Execution Environment

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.

Track Turbine updates

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.

Verify Turbine

Verify with Trust Center

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.

1

Find the App Source Code block

2

Click on compose_file

3

Find docker_compose_file key

4

Find Docker image

5

Locate the image on GitHub

Turbine will be open sourced after Beta stage.

Verify manually

This guide describes how to verify that the Turbine API you are interacting with runs genuine Turbine code inside a Trusted Execution Environment.

1

Get a quote

Go to https://api.turbine.exchange/api/attestation/<report_data>, substituting <report_data> with a string (up to 64 characters), for example https://api.turbine.exchange/api/attestation/MyReportData.

The generated quote is in the quote field of the response.

2

Confirm that the quote was produced in a TEE

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.

3

Confirm that the TEE is running genuine Turbine

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.

Read more

Last updated

Was this helpful?