Blind Quantum Computing
- 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 and for these rotations are specified by the client).
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 .
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 and ) 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 and . The angles and for the Z-rotations executed by the server are calculated by the client as follows:
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:
- and : 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 and . The server does not find out the values of these two angles.
- and : Randomly chosen angles to ensure that the computation is blind.
- and : Randomly chosen one-time pad bits. Similarly to and , 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 .
You can also see the angles ( and ) 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 and are obtained from measurements performed by the client and are used in calculations of the angles and that are sent to the server. Upon choosing random angles and , and should be uniformly random. Values and are the measurement outcomes obtained by the server, in which is uniformly random and is the outcome of the effective computation. The statistics of depend on and , i.e. the actual computation that is being delegated to the server.