Wymuszanie uczciwego zachowania

9

Jak zmusić drużynę do uczciwości (przestrzegać zasad protokołu)?

Widziałem pewne mechanizmy, takie jak zobowiązania, dowody itp., Ale wydaje się, że nie rozwiązują one całego problemu. Wydaje mi się, że struktura projektu protokołu i takie mechanizmy muszą działać. Czy ktoś ma dobrą klasyfikację tego.
Edytuj
Podczas projektowania bezpiecznych protokołów, jeśli zmusisz stronę do uczciwości, projekt byłby o wiele łatwiejszy, chociaż wymuszenie ma swoją własną korzyść. Widziałem, projektując bezpieczne protokoły, projektanci zakładają coś, co nie wydaje mi się realistyczne, na przykład zakładają, że wszystkie strony są uczciwe w najgorszym przypadku lub zakładają uczciwość serwera, który utrzymuje dane użytkownika. Ale patrząc na projektowanie protokołów w bardziej rygorystycznych modelach rzadko widzi się takie założenia (przynajmniej tego nie widziałem - przeważnie studiuję protokoły nadRamy UC Canetti, które moim zdaniem nie są jeszcze całkowicie sformalizowane). Zastanawiałem się, czy istnieje jakaś dobra klasyfikacja sposobów, w jaki można zmusić imprezę do uczciwości, czy też istnieje jakiś kompilator, który może przekonwertować protokół wejściowy na taki, który ma uczciwe strony?
Teraz wyjaśnię, dlaczego uważam, że to po prostu nie działa, choć może się to wydawać nieistotne. Podczas projektowania protokołów w ramach UC, które korzystają z idealnego / rzeczywistego paradygmatu, każde łącze komunikacyjne w modelu idealnym jest uwierzytelniane, co nie jest prawdą w modelu rzeczywistym. Dlatego projektanci protokołów poszukują alternatywnych metod implementacji tego kanału za pomocą założenia PKI lub CRS (Common Reference String). Ale podczas projektowania protokołów uwierzytelniania błędne jest zakładanie uwierzytelnionych kanałów. Załóżmy, że projektujemy protokół uwierzytelniania w ramach UC, istnieje atak, w którym przeciwnik fałszuje tożsamość strony, ale z powodu założenia uwierzytelnionych łączy w idealnym modelu tego ataku nie zakłada się w tej strukturze! Możesz się odnieść doModelowanie ataków wewnętrznych na protokoły wymiany kluczy grupowych . Można zauważyć, że Canetti w swojej przełomowej pracy Uniwersalne pojęcia wymiany kluczy i bezpiecznych kanałów wspominają wcześniejsze pojęcie bezpieczeństwa o nazwie SK-Security, które jest po prostu wystarczające do zapewnienia bezpieczeństwa protokołów uwierzytelniania. Jakoś wyznaje (stwierdzając, że jest to kwestia techniczna), że definicja UC w tym kontekście jest zbyt restrykcyjna i zapewnia zrelaksowany wariant zwany wyrocznią nieinformacyjną (która mnie pomyliła, ponieważ nigdzie nie widziałem tego modelu bezpieczeństwa , Nie mogę dopasować tego wzorca bezpieczeństwa do żadnego innego wzorca bezpieczeństwa, prawdopodobnie mój brak wiedzy: D).

[Na marginesie, możesz prawie przekonwertować dowolny protokół Sk-bezpieczny na bezpieczny UC, niezależnie od czasu symulatora. Na przykład możesz po prostu usunąć podpisy wiadomości i poprosić symulator o symulację wszystkich interakcji w sposób pozorny. Zobacz dowód wymiany uniwersalnej grupy kontrybucyjnej grupy kontrybucyjnej ! Załóżmy teraz, że jest to protokół wymiany kluczy grupowych z wielomianowo wieloma stronami, jaka byłaby wydajność symulatora? To jest pochodzenie mojego drugiego pytania na tym forum .]

W każdym razie, z powodu braku zaangażowania w zwykły model (nad UC), szukałem innych środków, aby zabezpieczyć protokół, po prostu omijając potrzebę tego rozluźnienia. Pomysł ten jest tak bardzo podstawowy w mojej głowie i przyszedł mi do głowy, po prostu przestudiowałem najnowszy schemat zobowiązań canetti w prostym modelu: twardość adaptacyjna i bezpieczeństwo kompozycyjne w modelu prostym ze standardowych założeń .
BTW, nie szukam dowodów zerowej wiedzy, ponieważ z przyczyn, których nie znam, ilekroć ktoś używał jednego z nich w równoległym protokole (w ramach UC), inni wspominali o protokole jako nieefektywnym (może być z powodu przewinięcia symulatora).

Yasser Sobhdel
źródło
2
Możesz na to spojrzeć: wisdom.weizmann.ac.il/~oded/gmw2.html . W tym artykule nieuczciwe partie są zmuszone do działania uczciwie poprzez udowodnienie (przy zerowej wiedzy), że przestrzegały protokołu z poprzedniego kroku.
MS Dousti,
4
Myślę, że „wymuszanie uczciwego zachowania” jest możliwą definicją współczesnej kryptografii (która jest czymś więcej niż tylko ukrywaniem informacji). W takim przypadku każdy podobszar kryptografii można uznać za podejście do tego pytania.
Marc
Już miałem napisać to samo, co Marc. (Nawiasem mówiąc, interaktywne dowody, a nawet definicję NP można również postrzegać jako „wymuszanie uczciwego zachowania” u przysłowia, chociaż zwykle nie są one uważane za protokoły kryptograficzne.) Pytanie jest naprawdę szerokie i wydaje się, że istnieje nie ma jednego uniwersalnego sposobu na wymuszenie uczciwego zachowania w różnych sytuacjach.
Tsuyoshi Ito,
1
Co dokładnie rozumiesz przez „ale wydaje się, że po prostu nie rozwiązują całego problemu?” Możesz być bardziej dokładny?
Alon Rosen,
@Sadeq: Zobacz ostatni akapit! @Marc & Tsuyoshi lto: Zobacz sekcję Edycja. to może pomóc.
Yasser Sobhdel,

Odpowiedzi:

6

Niestety, nie możesz zmusić ludzi do zrobienia tego, co protokół mówi, że powinni zrobić.

Nawet ludzie mający dobre intencje, którzy zamierzali przestrzegać protokołu, czasami popełniają błędy.

Wydaje się, że istnieją co najmniej 3 podejścia:

  • teoria kryptografii: zakładaj, że „dobrzy” agenci zawsze przestrzegają protokołu, podczas gdy „złośliwi” agenci próbują obalić protokół. Zaprojektuj protokół kryptograficzny tak, aby dobrzy agenci dostali to, czego potrzebują, a szkodliwi agenci nic nie dostaną.
  • teoria gry: załóż, że każdy agent dba tylko o swoje indywidualne zainteresowania. Użyj mechanizmu projektowania, aby zmaksymalizować całkowitą korzyść dla wszystkich.
  • rozproszona sieć odporna na uszkodzenia: załóżmy, że każdy agent popełnił sporadyczny błąd, a kilku „bot-botów” wyrzuca wiele złośliwie spreparowanych wiadomości. Wykryj i izoluj węzły botów, dopóki nie zostaną naprawione; użyj wykrywania i korekcji błędów (EDAC), aby naprawić sporadyczny błąd; użyj zbieżnych protokołów, które ostatecznie staną się przydatne, bez względu na to, jakie początkowe błędne informacje są przechowywane w tablicach routingu.

projektowanie mechanizmów W teorii gier projektowanie sytuacji (np. ustalanie reguł aukcji), tak aby ludzie, którzy samolubnie dbają tylko o swoje własne interesy, w końcu robili to, co chce od projektanta, nazywa się „projektowaniem mechanizmu” . W szczególności, wykorzystując teorię implementacji , sytuacje można zaprojektować w taki sposób, aby końcowy wynik maksymalizował całkowitą korzyść dla wszystkich, unikając źle zaprojektowanych sytuacji, takich jak „tragedia wspólnoty” lub „dylemat więźnia”, w którym zdarzają się rzeczy, których nie ma niczyje odsetki długoterminowe.

Niektóre z najbardziej niezawodnych takich procesów zaprojektowano tak, aby były zgodne z zachętami .

Teoria gier zazwyczaj zakłada uproszczenie, że wszystkie odpowiednie czynniki są „racjonalne”. W teorii gier „racjonalny” oznacza, że ​​agent woli niektóre wyniki od innych, jest skłonny i zdolny do zmiany swoich działań w sposób, który, jak się spodziewa (biorąc pod uwagę dostępne mu informacje), da wynik bardziej preferowany (jego własny) wąski interes własny) i jest wystarczająco inteligentny, aby zdać sobie sprawę, że inni racjonalni agenci będą działać podobnie, aby spróbować uzyskać wynik, który jest najbardziej preferowany spośród wszystkich możliwych rezultatów, które mogą wynikać z tego wyboru działania.

Projektant może chwilowo uprościć założenie, że wszyscy ludzie postępują zgodnie z własnym wąskim interesem własnym. To założenie ułatwia zaprojektowanie sytuacji z wykorzystaniem teorii implementacji. Jednak po zakończeniu projektu nie ma znaczenia, czy ludzie działają zgodnie z własnym wąskim interesem własnym („ Homo economus ”), czy też są altruistami i chcą zmaksymalizować całkowitą korzyść netto dla wszystkich - w odpowiednio zaprojektowana sytuacja, oba rodzaje ludzi dokonują dokładnie takich samych wyborów, a końcowy wynik maksymalizuje całkowitą korzyść dla wszystkich.

zbieżne protokoły

Podczas projektowania protokołu routingu każdy węzeł w sieci wysyła wiadomości do swoich sąsiadów, przekazując informacje o tym, jakie inne węzły są osiągalne z tego węzła.

Niestety, czasami te wiadomości zawierają błędy. Co gorsza, czasami węzeł jest źle skonfigurowany i wyrzuca wiele mylących, a może nawet złośliwie spreparowanych wiadomości.

Chociaż my, ludzie, wiemy, że wiadomość może być niepoprawna, zazwyczaj projektujemy protokół tak, aby prawidłowo działający węzeł ufał każdej wiadomości i przechowywał informacje w tabeli routingu i podejmował decyzje, jakby wierzył, że informacje te są całkowicie prawdziwe.

Gdy jakiś człowiek wyłączy zły węzeł (lub odłączy go od sieci), zwykle projektujemy protokół tak, aby szybko przekazywał dobre informacje w celu wypłukania uszkodzonych informacji i tak szybko zbiegał się w przydatny stan.

podejścia łączone

Wygląda na to, że mechanizm algorytmiczny próbuje łączyć podejście sieciowe odporne na uszkodzenia i podejście oparte na teorii gier.

@Yoichi Hirai i Aaron, dziękuję za wskazanie kilku interesujących prób połączenia teorii gier i kryptografii.

David Cary
źródło
4

Joe Halpern ma slajd na ten temat. http://games2009.dimi.uniud.it/Halpern.pdf

Chodzi o zachęcanie stron, aby postępowały zgodnie z protokołem. Mechanizmy te wymagają racjonalności stron, a argumenty opierają się na teorii gier.

yhirai
źródło
1
Oto pokrewny artykuł, do którego można dołączyć slajdy: teorii.stanford.edu/~vteague/STOC04.pdf - To podejście nie „zmusza” ludzi do przestrzegania protokołu, ale próbuje zaprojektować protokół, aby zachęcić osoby do chęci aby to zrobić. Oczywiście, aby to zrobić, musisz poczynić pewne założenia dotyczące tego, co dokładnie chcą ludzie postępujący zgodnie z protokołem ...
Aaron Roth
jeśli to możliwe, czy mógłbyś wyjaśnić, co w tym kontekście oznacza „racjonalny”? na przykład czy oznacza to przestrzeganie podstawowego globalnego zestawu aksjomatów? czy to oznacza, że ​​zaangażowane strony mają ten sam zestaw podstawowych aksjomatów? poprzednie wyjaśnienie wydaje mi się absurdalne w każdym scenariuszu w świecie rzeczywistym, ponieważ jednostki często mają bardzo różne motywacje, dlatego można oczekiwać, że będą traktować „zachęty” na bardzo różne sposoby.
s8soj3o289,
@blackkettle: racjonalny gracz maksymalizuje (oczekuje) funkcji użytecznej. z tego powodu, na który zwracasz uwagę, zawsze jest trudność wymyślenie odpowiednich aksjomatów, które narzędzia muszą spełnić. ale zawsze staramy się uzyskać minimalny zestaw aksjomatów. wszelkie dobre książki dotyczące mikroekonomii zostałyby szczegółowo omówione na ten temat
Sasho Nikolov,
@blackkettle: o pracy Halpern: zakłada, że ​​strony w protokole (tajne udostępnianie) wolą znać sekret niż go nie znać i wolą, aby mniej niż więcej innych stron znało ten sekret. pojęcie równowagi, którego używa, to równowaga Nasha w stosunku do niedominowanych strategii (tj. gracz nie zagrałby w strategię, jeśli inna jest zawsze co najmniej tak dobra; tak długo, jak inni gracze nie zmienią swoich strategii, a jej obecna strategia nie jest gorzej niż jakikolwiek inny, ona też tego nie zmieni).
Sasho Nikolov