QuISP
|
In a MSM protocol, the RuleEngine recieves an EPPSTimingNotification message. Then, the QNode prepares to emit photons from the specified timing with the specified interval. In this setting, the QNode contains an internal BSA, and the emitted photons are sent into there. The BSA performs a Bell state measurement on the emitted photon and one of the entangled photons sent from the EPPS.
After performing a single tiral of Bell state measurement, the result is sent back to the rule engine. Each emission iteration from the EPPS is counted locally at the QNode, named as photon_index
. If we succeed in Bell state measurement we save the information of that qubit and photon_index
in success_list
, and for failure, we release that memory immediately. Then, we send a message to the partner QNode with the result of the BSM and the photon_index
. When a QNode receives a result from its partner, it compares the qubits with the same photon_index
, and the following operations are performed:
Local BSM: fail | Partner BSM: success/fail
Local BSM: success | Partner BSM: fail
Local BSM: success | Partner BSM: success
We will show a sequence diagram of the MSM protocol below.
After a RuleEngine recieves SingleClickResult, the following operations are performed between the QNodes, in a classical channel:
We will show a pseudocode for major functions related to the MSM protocol, which also appeard in the sequence diagram above.
photon_index
: Variable to specify the entangled photon pair. We perform post-processing among memory qubits that share the same value of this variable.success_list
: List to store the information of memory qubits that succeeded local BSM. Contains the qubit information and the correction information.Input:
interval
function: EMIT_PHOTONS_MSM(interval
)
photon_index_counter
interval
time and call EMIT_PHOTONS_MSM(interval
)Input:
success
correction
qubit
function HANDLE_CLICK_RESULT(success
, correction
, qubit
)
success
thenqubit
and correction
to success_list
qubit
success, correction, photon_index
to the partner QNodeInput:
success
correction
photon_index
function HANDLE_MSM_RESULT(success
, correction
, photon_index
)
photon_index
in success_list
thencorrection_local
$\gets$ success_list[photon_index].correction
qubit
$\gets$ success_list[photon_index].qubit
success
thencorrection = correction_local
and Addr_partner < Addr_self
) thenqubit
(The reason is explained in the section below)qubit
We prepare the following entangled state at the beginning of the protocol. $|\text{QNodeA}_\text{memory},\text{QNodeA}_\text{photon},\text{EPP}_\text{A},\text{EPP}_\text{B},\text{QNodeB}_\text{memory},\text{QNodeB}_\text{photon}\rangle=|\phi_+\rangle$
After emission, we perform a Bell state measurement at $|\text{QNodeA}_\text{photon}\text{EPP}_\text{A}\rangle$, and at $|\text{QNodeB}_\text{photon}\text{EPP}_\text{B}\rangle$.
Therefore, the quantum circuit for this operation can be described as follows.
(In this senario we perform an optical BSM, so we cannot measure state $|\phi_{+}\rangle$ or $|\phi_{-}\rangle$ since they are indistinguishable. Those cases correpsond to when EPA and EPB measure state $|0\rangle$.)
With simple calculation, we can see that this quantum circuit will give us a quantum state as follows. $$ |\text{QNodeA}_\text{memory}\text{QNodeB}_\text{memory}\rangle = \frac{1}{\sqrt{2}}(|00\rangle + (-1)^{\psi^{A}+\psi^{B}}|11\rangle)$$ Here, $\psi^{A/B}$ is the result of the BSM at QNodeA/B, with values $\psi^{A/B} = 0$ for obtaining $|\psi_{+}\rangle$ and $\psi^{A/B} = 1$ for $|\psi_{-}\rangle$.
Therefore, we need to apply a Pauli Z gate to either memory qubit if $\psi^{A}$ is not the same value as $\psi^{B}$.