Blind Quantum Computing

Blind Quantum Computing refers to a set of protocols in which a client with limited computational resources delegates a computation to a more powerful server. The server is blind to the specific quantum computation it is performing.
Runs
2
Created
December 9, 2022
Updated
July 19, 2023

Description

Blind quantum computation (BQC) refers to a protocol in which a server executes a computation on behalf of a client. This is useful when the computational resources of the client are limited. The quantum computation is called blind because the server does not know which exact computation is carried out.

We say that the server performs an effective computation on behalf of a client. The specific sequence of gates the server executes in our application can be seen in the picture below; it consists of Hadamard gates and Z-rotations (the angles α\alpha and β\beta for these rotations are specified by the client).

The effective computation carried out by the server.

In this version of the BQC protocol, the client must have the ability to perform basic quantum operations such as storing a half of an EPR-pair and making 1-qubit measurements. The server carries out all the other operations. The entire protocol of this application can be seen in the two pictures below: the first picture shows the state preparation between the client and the server, and the second picture then shows the effective computation performed on the server's qubits (red values are computed by the client and sent to the server). The final result of the effective computation is named m2\text{m2}.

State preparation between the client and the server for the BQC protocol.

Operations of the effective computation perfomed by the server. Red values are computed by the client and sent to the server.

To make sure that the server is blind to the computation being performed, the client makes use of some random angles and bits to measure qubits in the state preparation (angles θ1\theta_1 and θ2\theta_2) and to calculate the angles sent to the server for the effective computation. The server does not know which angles and bits are chosen by the client, and therefore has no way of finding out the precise values of alphaalpha and betabeta. The angles δ1\delta_1 and δ2\delta_2 for the Z-rotations executed by the server are calculated by the client as follows:

δ1=α+θ1+(p1+r1)pi\delta_1 = -\alpha + \theta_1 + (\text{p1} + \text{r1}) \cdot \text{pi} δ2=(1)(m1+r1)β+θ2+(p2+r2)π\delta_2 = (-1)^{(\text{m1} + \text{r1})} \cdot \beta + \theta_2 + (\text{p2} + \text{r2}) \cdot \pi

For more in-depth information about BQC, see for example this paper. Note that there are also BQC protocols that ensure verification (i.e. the client can be sure that the server performed the correct operations), but that is not what our application does.

Inputs

There are six applications inputs, all of them chosen by the client:

  • α\alpha and β\beta: These angles specify the effective computation carried out by the server. See the first figure in the section above to see which rotations are defined by α\alpha and β\beta. The server does not find out the values of these two angles.
  • θ1\theta_1 and θ2\theta_2: Randomly chosen angles to ensure that the computation is blind.
  • r1\text{r1} and r2\text{r2}: Randomly chosen one-time pad bits. Similarly to θ1\theta_1 and θ2\theta_2, these ensure the server is blind to the computation.

Results

In the results page of the editor, you will see several intermediate and final results of the protocol. Firstly, there is a Bloch sphere representation of the final state at the server – this corresponds to measurement outcome m2\text{m2}.

You can also see the angles (δ1\delta_1 and δ2\delta_2) sent by the client to the server. These are calculated according to the equations shown above and are used in the measurement operations performed by the server.

Lastly, you can see a list of all measurement outcomes obtained during this protocol. Values p1\text{p1} and p2\text{p2} are obtained from measurements performed by the client and are used in calculations of the angles δ1\delta_1 and δ2\delta_2 that are sent to the server. Upon choosing random angles θ1\theta_1 and θ2\theta_2, p1\text{p1} and p2\text{p2} should be uniformly random. Values m1\text{m1} and m2\text{m2} are the measurement outcomes obtained by the server, in which m1\text{m1} is uniformly random and m2\text{m2} is the outcome of the effective computation. The statistics of m2\text{m2} depend on α\alpha and β\beta, i.e. the actual computation that is being delegated to the server.

Launch application