Quantum teleportation is a fundamental concept in quantum computing. It introduces a lot of key quantum computing concepts. Here, I’ll cover what quantum teleportation is, the steps to teleport quantum information, and show you how to write this in OpenQASM. I also made a YouTube video with the walkthrough, so remember to subscribe if you'd like more video on quantum computing and coding.

## What is quantum teleportation?

Quantum teleportation is a critical concept to take advantage of the powers of quantum information. It's the key behind quantum key distribution and long distance quantum communication, and also used in quantum computing. It allows you to "teleport" - or move the quantum state - to another qubit. Quantum teleportation has been successful over 4 miles in multiple locations over fiber optics, and 870 mi in space at the Quantum Experiments at Space Scale (QUESS) project.

But why do we need to do something special to copy quantum information? For classical information, we simply read the bits, and copy them to another place. We can’t do that in a quantum system. If we read out a quantum state, the superposition and entanglement is destroyed. And the no-cloning theorem says we cannot copy an unknown quantum state exactly

So, we have to do something a little different. Quantum teleportation is not copying information. It means we "move" the quantum state to another qubit. This requires destroying the state of the qubit we teleported, so we do not violate no-cloning.

And of course, there’s always a relevant XKCD for everything - even quantum teleportation.

## Steps to quantum teleportation

Quantum teleportation requires three qubits and two classical bits to teleport an unknown quantum state. Alice wants to teleport the state of a qubit to Bob at some distance away.

### Step 1: Prepare the quantum state Q_Message

We prepare the quantum state of the qubits. Now, these can be any quantum state. You can apply X, Y, Z gates to prepare this gate, or any arbitrary gate. Let’s call this qubit the message qubit, the one with the data we want to send, and this will be the first qubit in our Quantum register. Q_message has some unknown quantum state - that’s the state we want to teleport.

### Step 2: entangle the other two qubits Q_Alice Q_Bob

Alice also has two more qubits. Let's call them Q_Alice and Q_Bob. Now we entangle the other two qubits.

Q_Alice will remain with her, and she will later send the other qubit to Bob. She takes these two qubits and entangles them.

When we say particles are entangled, it means that quantum states are linked to each other - the state of one cannot be described without another (so they are not “separable”). This is a purely quantum phenomena and doesn’t exist in the classical world. Information is almost like it’s spread across the particles.

Alice entangles these qubits by applying

1. A Hadamard gate to Q_Alice
2. CNOT on Q_Alice and Q_Bob, with Q_Alice being the Control, and Q_Bob being the target

The Hadamard and CNOT sequence is how we entangle a pair of qubits.

The Hadamard gate is a single qubit gate. It puts the qubit into an equal superposition (1/2 probability of 0, 1/2 probability of 1). A CNOT gate, or Controlled-NOT gate is a two-qubit gate. There is a target qubit, and a control qubit. This performs a NOT on the target qubit only if the control qubit is in the 1 state.

A NOT gate is a bit-flip - meaning that if the state of the target qubit is a 1, then it flips it 0 zero, and vice versa. So you see here how the states of these qubits depend on each other. This is what the circuit looks like.

### Step 3: send the entangled Qubit to Bob

You can now send the entangled qubit (Q_Bob) to Bob.

### Step 4: Bell measurement

Alice now has two qubits: Q_message, and Q_Alice.

We perform a Bell measurement, which quantum-mechanical measurement of twothat determines which of the four Bell states the two qubits are in.

We apply a CNOT gate is applied to qubits Q_message and Q_Alice, then a Hadamard gate on Q_Message. This CNOT gate “un-entangles” the qubits. So this takes the quantum information and translates it back to classical information.

So when Alice measures her qubits, there are 4 potential combinations we can receive: 00, 01, 10, 11. These are the Bell States.

Alice sends this information to Bob as well. The result of Q_message is the first bit, and the result of Q_Alice the second bit. This is why quantum communication is not faster than the speed of light. we need the information from Alice to actually have communication, because we need the classical information, which is limited by the physical channel and the speed of light even in the best case.

### Step 5: Recreate the Quantum State

After the measurement, depending on what Bob receives, he does an operation on his qubit —

If Alice transmits 00: then Bob does nothing to his qubit

If Alice transmits 01: then Bob applies the X gate

If Alice transmits 10: then Bob applies the Z gate

If Alice transmits 11: then Bob applies ZX gate.

and Bob now has a qubit with the state that Alice's original message qubit had.

# Congratulations!

You have teleported an unknown quantum state.

But why does this work?

This works because the states of Alice's qubit and Bob's qubit depend on each other. Let's look at the full circuit.

q is Q_message with an unknown quantum state, q is Q_Alice, and q is Q_Bob.

The classical information we receive from Alice tells us how Bob's state differs from Alice's original state, and what gates we need to apply to it to get Bob's qubit back to the initialu unknown quantum state.

The key to understanding this is to understand EPR pairs

This EPR state is a key concept in quantum computing, and it tells us how measurements are correlated. The correlation means that the results will always be equal - so if you measure the first qubit as 0, the second will also be 0, and if you measure the first qubit as 1, the second will be 1.

However, that’s only true if you measure the qubit in the same basis A basis state is just the “components” of how we can measure any state in this system using these two components. So you can create any combination of these two to get to any point in the vector space.

What Alice’s classical data she sends tells us what measurement basis change there is between the qubits, and we need to make sure that Q_message and Q_Bob are the same basis  state. We can then transform Bob’s qubit from the basis back to same basis as Q_message is in, and therefore now the qubits are perfectly correlated - equal - like the EPR pair says they should be.

The first two qubits, Q_message and Q_Alice, are discarded. So, this doesn’t violate no cloning because the Q_message state has now collapsed, and the unknown quantum state is now in Q_Bob.