Kwantowe porozumienie bizantyjskie
Bizantyjskie protokoły odporne na błędy to algorytmy odporne na dowolne typy błędów w algorytmach rozproszonych . Bizantyjski protokół porozumienia stanowi zasadniczą część tego zadania. Poniżej opisano kwantową wersję protokołu bizantyjskiego o stałym czasie .
Wstęp
Protokół Porozumienia Bizantyjskiego jest protokołem w przetwarzaniu rozproszonym . Swoją nazwę wzięła od problemu sformułowanego przez Lamporta, Szostaka i Pease’a w 1982 roku, który sam w sobie jest nawiązaniem do problemu historycznego. Armia bizantyjska została podzielona na dywizje, a każdą dywizją dowodził generał posiadający następujące właściwości:
- Każdy generał jest albo lojalny, albo zdrajcą państwa bizantyjskiego .
- Wszyscy generałowie komunikują się poprzez wysyłanie i odbieranie wiadomości.
- Są tylko dwie komendy: atak i odwrót.
- Wszyscy lojalni Generałowie powinni zgodzić się na ten sam plan działania: atak lub odwrót.
- Mały liniowy ułamek złych generałów nie powinien powodować niepowodzenia protokołu (mniej niż
(Zobacz dowód wyniku niemożliwości). Problem jest zwykle równoważnie przedstawiany w postaci dowódcy generała i lojalnych poruczników, przy czym generał jest albo lojalny, albo zdrajcą, i to samo w przypadku poruczników o następujących właściwościach.
- Wszyscy lojalni porucznicy wykonują ten sam rozkaz.
- Jeśli dowodzący generał jest lojalny, wszyscy lojalni porucznicy wykonują rozkazy, które wysyła.
- Dokładnie mniej niż tym dowodzący generałem, to zdrajcy.
Bizantyjska porażka i odporność
Błędy w algorytmie lub protokole można podzielić na trzy główne typy:
- Niepowodzenie wykonania kolejnego kroku wykonania w algorytmie: Jest to zwykle określane jako błąd „zatrzymania awaryjnego”.
- Przypadkowa awaria prawidłowego wykonania: Nazywa się to „błędem losowym” lub „przypadkowym błędem bizantyjskim”.
- Arbitralna awaria, w przypadku której algorytm nie wykonuje poprawnie kroków (zwykle w sprytny sposób przez jakiegoś przeciwnika, aby cały algorytm zawiódł), która obejmuje również dwa poprzednie typy błędów; nazywa się to „błędem bizantyjskim”.
Bizantyjski odporny lub bizantyjski protokół lub algorytm odporny na błędy to algorytm odporny na wszelkiego rodzaju awarie wymienione powyżej. Na przykład, biorąc pod uwagę prom kosmiczny z wieloma nadmiarowymi procesorami, jeśli procesory podają sprzeczne dane, któremu procesorowi lub zestawowi procesorów należy wierzyć? Rozwiązanie można sformułować jako bizantyjski protokół odporny na błędy .
Szkic algorytmu
Naszkicujemy tutaj algorytm asynchroniczny. Algorytm działa w dwóch fazach:
- Faza 1 (faza komunikacji):
- W tej rundzie wszystkie wiadomości są wysyłane i odbierane.
- Protokół rzucania monetą to procedura, która pozwala dwóm stronom A i B, które sobie nie ufają, rzucić monetą, aby wygrać określony przedmiot.
Istnieją dwa rodzaje protokołów rzucania monetą
- słabe protokoły rzucania monetą: dwaj gracze A i B początkowo zaczynają bez danych wejściowych i mają obliczyć pewną wartość i móc oskarżyć kogokolwiek o oszustwo. Protokół kończy się sukcesem, jeśli A i B zgadzają się co do wyniku. Wynik 0 jest zdefiniowany jako wygrana A, a 1 jako wygrana B. Protokół ma następujące właściwości:
- zgadzają się co do wyniku protokołu z dla za .
- Jeśli jeden z graczy jest uczciwy (tj. drugi gracz może dowolnie odstąpić od protokołu w swoich lokalnych obliczeniach), wówczas druga strona wygrywa z największym prawdopodobieństwem. 1 2 + . Innymi słowy, jeśli B jest nieuczciwy, to , a jeśli A jest nieuczciwy, to .
- Silny protokół rzucania monetą: w silnym protokole rzucania monetą celem jest zamiast tego wygenerowanie losowego bitu, który jest odchylony od dowolnej konkretnej wartości 0 lub 1. Jest oczywiste, że każdy mocny protokół rzucania monetą ma stronniczość ϵ {\ displaystyle \ prowadzi do słabego rzutu monetą z tym samym nastawieniem.
Sprawdzalne udostępnianie sekretów
- Weryfikowalny protokół udostępniania sekretów : Protokół udostępniania sekretów (n,k) umożliwia zbiorowi n graczy dzielenie się sekretem w taki sposób, że tylko kworum składające się z k lub więcej graczy może odkryć sekret. Gracz dzielący się sekretem (rozdający części sekretu) jest zwykle nazywany krupierem. Sprawdzalny protokół udostępniania sekretów różni się od podstawowego protokołu udostępniania sekretów tym, że gracze mogą sprawdzić, czy ich udziały są spójne nawet w obecności złośliwego dealera.
Protokół zatrzymania awaryjnego
Protokół kwantowy rzut monetą dla gracza.
- Runda 1 generuje stan GHZ na kubitach i wyślij th kubit do gracza zachowującego jedną
- Wygeneruj stan na kwantowych spójne z wieloma kubitami), równa superpozycja liczb od . Rozdziel wszystkich graczy
- Otrzymuj wiadomości kwantowe od wszystkich graczy i czekaj na następną rundę komunikacji, zmuszając w ten sposób przeciwnika do wyboru, które wiadomości zostaną przekazane.
- Runda 2: Zmierz (w standardowej bazie) wszystkie kubity Wybierz gracza z najwyższą wartością lidera (remisy rozwiązane arbitralnie) jako „lider” rundy. Zmierz monetę lidera w standardowej podstawie.
- Ustaw wyjście protokołu QuantumCoinFlip: pomiaru monety lidera
Protokół bizantyjski
z zakresu [0, n-1], a każdy gracz nie może wybrać własnego losowego identyfikatora, ponieważ każdy gracz wybiera losową liczbę dla każdego innego gracza to przy użyciu weryfikowalnego schematu tajnego udostępniania.
które sekrety zostały prawidłowo udostępnione, sekrety są następnie otwierane i każdemu graczowi się wartość
Wymaga to prywatnych kanałów informacyjnych, więc losowe tajemnice zastępujemy superpozycją . W którym stan jest kodowany przy użyciu protokołu udostępniania sekretów weryfikowalnego kwantowo (QVSS). Nie możemy rozpowszechniać stanu ponieważ źli gracze mogą zawalić stan. Aby uniemożliwić złym graczom robienie tego, kodujemy stan za pomocą kwantowego weryfikowalnego udostępniania sekretów (QVSS) i wysyłamy każdemu graczowi jego część sekretu. Tutaj ponownie weryfikacja wymaga Porozumienia Bizantyjskiego, ale wystarczy zastąpienie porozumienia protokołem oceny.
Protokół oceny stopnia
Protokół gradacyjny ma następujące właściwości, korzystając z definicji zawartych w artykule Nieformalnie, protokół transmisji stopniowanej to protokół z wyznaczonym graczem zwanym „dealerem” (tym, który nadaje), w taki sposób, że:
- Jeśli krupier jest dobry, wszyscy gracze otrzymają ten sam komunikat.
- Nawet jeśli krupier jest zły, jeśli jakiś dobry gracz zaakceptuje wiadomość, wszyscy dobrzy gracze otrzymają tę samą wiadomość (ale mogą ją zaakceptować lub nie).
Mówi się, że protokół P zapewnia stopniowaną transmisję, jeśli na początku protokołu wyznaczony gracz D (zwany krupierem) posiada wartość v, a na końcu protokołu każdy gracz P ja {\ wyprowadza parę w taki sposób, że zachodzą następujące właściwości:
- Jeśli D jest uczciwy, to = v i dla każdego .
- Dla dowolnych dwóch uczciwych graczy , .
- (Spójność) Dla dowolnych dwóch uczciwych graczy i , jeśli do i następnie }
Dla protokołu QVSS gwarantuje, że dla dobrego dealera zostanie zakodowany prawidłowy stan, a dla każdego, ewentualnie określony stan zostanie przywrócony na etapie odzyskiwania. Zauważamy, że dla celów naszego bizantyjskiego protokołu kwantowego rzucania monetą etap odzyskiwania jest znacznie prostszy. Każdy gracz mierzy swój udział w QVSS i wysyła klasyczną wartość do wszystkich pozostałych graczy. Etap weryfikacji gwarantuje z dużym prawdopodobieństwem, że w obecności aż do gracze, wszyscy dobrzy gracze odzyskają tę samą klasyczną wartość (która jest tą samą wartością, która wynikałaby z bezpośredniego pomiaru zakodowanego stanu)
Uwagi
W 2007 roku zademonstrowano eksperymentalnie protokół kwantowy Porozumienia Bizantyjskiego, stosując czterofotonowy stan splątania polaryzacyjnego. To pokazuje, że kwantowa implementacja klasycznych protokołów Porozumienia Bizantyjskiego jest rzeczywiście wykonalna.