Pytanie:
Jak mogę sprawić, by wyniki głosowania na tak / nie były niedostępne, jeśli nie jest to jednomyślne, bez zaufanej strony trzeciej?
TheHansinator
2020-08-03 09:00:24 UTC
view on stackexchange narkive permalink

Rodzina N osób (gdzie N > = 3) jest członkami kultu. Pomiędzy nimi pojawia się anonimowa sugestia, by opuścić kult. Jeśli w rzeczywistości każda osoba potajemnie żywi chęć wyjazdu, najlepiej byłoby, gdyby rodzina wiedziała o tym, aby mogli być ze sobą otwarci i zaplanować wyjście. Jeśli jednak tak nie jest, rodzina nie chciałaby znać rzeczywistych wyników, aby zapobiec walkom wewnętrznym i polowaniu na czarownice.

W związku z tym istnieje jakiś schemat, według którego jeśli wszyscy w rodzinie zagłosują tak , rodzina wie, ale wszystkie inne wyniki (wszystkie nie , dowolna kombinacja tak i nie ) są nie do odróżnienia od siebie dla wszystkich członków rodziny?

Kilka uwag:

  • N musi wynosić co najmniej 3 - N = 1 jest trywialne, a N = 2 niemożliwe, ponieważ wyborca ​​ tak może znać głos drugiej osoby w zależności od wyniku.
  • Anonimowy sugestor nie jest ważny - może równie dobrze być kimś spoza rodziny, na przykład kimś, kto rozpowszechnia propagandę.
  • Ważne jest, aby wszystko nie było nie do odróżnienia od mieszanych tak i nie - nie chcemy, aby rodzina odkryła, że ​​istnieje jakaś schizma. Jeśli jednak ten wynik jest niemożliwy, zgadzam się z wynikiem, w którym można znaleźć dowolny jednomyślny wynik, ale każdy głos mieszany jest nie do odróżnienia.

Kilka rzeczy, których już próbowałem: p>

  • Oczywiście można to zrobić z zaufaną osobą trzecią - wszyscy przekazują jednej osobie swoje głosy, a ta osoba trzecia ogłasza, czy wszystkie głosy są tak . Jednak nie jest to dla mnie satysfakcjonująca odpowiedź, ponieważ osoba trzecia może zostać skompromitowana przez gorliwego wyborcę nie (lub innego członka kultu), aby dowiedzieć się, kto jest tak głosy są. Ponadto ta osoba zna liczbę głosów i może, w sytuacji głosowania mieszanego, spotkać się na osobności z wyborcami tak , aby pomóc im uciec, czego wyborcy nie nie uprzejmie.
  • Można użyć drugiej strony trzeciej do anonimizacji głosów - jedna strona (która może być po prostu potrząsanym kapeluszem) zbiera głosy bez ich czytania i wysyła je anonimowo do drugiej strony, który je czyta i ogłasza wynik. To najlepsze rozwiązanie, jakie przyszło mi do głowy, ale nadal uważam, że chcę zrobić coś lepszego - w końcu w kulcie osiedli z mieszkańcami prawdopodobnie nie można znaleźć żadnej godnej zaufania osoby trzeciej. Chciałbym znaleźć rozwiązanie wykorzystujące stronę trzecią, która niekoniecznie jest zaufana.
  • Rozumiem jednak, że potrzebujesz przynajmniej czegoś do przechowywania tajnych informacji, ponieważ jeśli pracujesz z całkowicie publiczną księgę, wówczas uczestnicy mogliby wykonać tajne kopie informacji i symulować efekt, jaki miałyby ich głosy, przed oddaniem rzeczywistego głosu. W szczególności, jeśli wszyscy uczestnicy głosują tak , ale ostatni jeszcze nie głosowali, mogą symulować głosowanie tak i dowiedzieć się, że wszyscy inni zagłosowali na tak, ale potem sami głosuj nie - teraz są jedynymi, którzy znają głosy tak wszystkich innych, czyli władzę, której nie chciałbyś, aby pozostali wyborcy nie mieli.

EDYTUJ: Po komentarzach BlueRaja zdaję sobie sprawę, że pojęcie „zaufanej strony trzeciej” nie jest dobrze zdefiniowane i na pewnym poziomie prawdopodobnie potrzebuję zaufanej strony trzeciej przynajmniej dla pewnego stanu. Kluczem jest to, co zrobiłabym osobie trzeciej - na przykład w przykładach pierwszego i drugiego podpunktu mogę nie ufać osobie trzeciej, która wie, kto głosował, ale mogę powierzyć jej treść głosów. Idealnie, oczywiście, nadal chciałbym móc działać bez zaufanej strony trzeciej, ale w przeciwnym razie chciałbym zminimalizować to, co muszę powierzyć stronie trzeciej. (Co więcej, tak, strona trzecia może dołączyć nieożywiony przedmiot lub maszynę, o ile może ukryć jakąkolwiek ilość informacji przed uczestnikami).

Komentarze nie służą do rozszerzonej dyskusji;ta rozmowa została [przeniesiona do czatu] (https://chat.stackexchange.com/rooms/111602/discussion-on-question-by-thehansinator-how-could-i-make-the-results-of-a-tak nie).
24 odpowiedzi:
reed
2020-08-03 16:20:39 UTC
view on stackexchange narkive permalink

Teoria

Można to wdrożyć na kilka sposobów, stosując zasadę idempotencji .

Chcesz, aby system dawał tylko wynik (binarne 1), jeśli wszystkie wejścia są aktywne, to znaczy, że mówi ci, że każdy chce opuścić kult tylko wtedy, gdy wszyscy głosowali na tak, w przeciwnym razie system nie może zwracać żadnych informacji (binarne 0). Jest to w zasadzie relacja AND między danymi wejściowymi, jak widać w poniższej tabeli (0 = nie / fałsz, 1 = tak / prawda):

  Dane wejściowe: Chcesz opuścić kult. : Każdy chce opuścić kult 0 0 0 | 0 0 0 1 | 00 1 0 | 00 1 1 | 01 0 0 | 01 0 1 | 01 1 0 | 01 1 1 | 1 --- > hura, wszyscy chcą odejść, możemy o tym porozmawiać!  

To może nie być proste do bezpiecznego wdrożenia, ponieważ potrzebujesz czegoś, co można liczyć (N- 1 nie wystarczy, aby wywołać wynik, ale N to zrobi), a coś, co jest w stanie policzyć, może również wyciekać informacje o liczbie głosów. Więc zapomnijmy o tym i uświadommy sobie, że skoro tak naprawdę masz do czynienia z pojedynczymi bitami informacji (tak lub nie, 0 lub 1), to będziesz w stanie uzyskać cenne informacje, jeśli po prostu zaznaczysz coś przeciwnego (nie zamiast tak , 0 zamiast 1 itd.). Więc jeśli sprawdzisz, czy chcą pozostać w kulcie zamiast odejść, i jeśli sprawdzisz, czy przynajmniej jedna osoba chce zostać, zamiast sprawdzić, czy wszyscy chcą odejść, otrzymasz następującą tabelę prawdy, w której wszystkie 1 zostały zastąpione z zerami i na odwrót:

  Wejście: Chcesz pozostać w kulcie. Wyjście: Ktoś chce zostać.1 1 1 | 11 1 0 | 11 0 1 | 11 0 0 | 10 1 1 | 10 1 0 | 10 0 1 | 10 0 0 | 0 --- > hura, nikt nie chce zostać, możemy o tym porozmawiać!  

Zauważ, że teraz mamy relację OR między danymi wejściowymi, która moim zdaniem jest łatwiejsza do bezpiecznego wdrożenia, ponieważ potrzebujesz tylko systemu, który reaguje na dowolne dane wejściowe w dokładnie ten sam sposób. Taki system byłby idempotentny: jeden głos wystarczy, aby wywołać wynik, a wszelkie kolejne głosy nie przyniosą skutku. Czego możemy teraz użyć do wdrożenia takiego systemu? System wymagałby następujących funkcji:

  • Każdy musi mu ufać. Nie może go zbudować ani kupić ani jeden członek rodziny, ani ktoś inny. Więc przypuszczam, że musi to być coś bardzo prostego, co każdy może zrozumieć i zaufać. Aby uniknąć złośliwej manipulacji systemem, należy go również obsługiwać pod nadzorem wszystkich członków.
  • Wyborcy nie mogą mieć możliwości sprawdzenia wyników przed zakończeniem eksperymentu. Oznacza to, że głosowanie nie może zwracać żadnej informacji zwrotnej o aktualnym stanie systemu. Na przykład zdmuchnięcie świecy nie jest bezpieczne, jeśli możesz ją zobaczyć, poczuć ciepło lub poczuć cokolwiek.

System

Najprostsze rozwiązanie, jakie mogę myślę o czymś związanym z urządzeniem elektronicznym z idempotentnym przyciskiem, takim jak pilot do zmiany kanału w telewizorze. Oto przykład konfiguracji systemu:

  • Zdobądź urządzenie z przyciskiem idempotentnym. Może to być telewizor z pilotem, pod warunkiem, że kanał N zawsze ma ten sam efekt, bez względu na to, ile razy to zrobisz (idempotencja). Lub cokolwiek innego, co masz w domu, na przykład przycisk do otwierania bramy (jeśli otwarcie otwartej bramy powoduje jej otwarcie) itp. Ważne jest jednak to, że systemowi każdy musi ufać, więc jeśli naprawdę chcesz wszystko bezpiecznie, rodzina może rozważyć zakup nowego urządzenia (razem do centrum handlowego i zakup zaufanego urządzenia).
  • Bezpiecznie skonfiguruj system. Cała rodzina musi być obecna podczas konfigurowania systemu, w przeciwnym razie system może zostać uszkodzony przez osobę, która go konfiguruje. Ogólnie rzecz biorąc, cała rodzina musi być obecna i sprawdzać wszystkie czynności od początku do końca eksperymentu (np. Od zakupu sprzętu po jego bezpieczne wyrzucenie).
  • Unikaj wszelkiego rodzaju informacje zwrotne z systemu podczas głosowania. Na przykład, aby zmienić kanał telewizyjny, telewizor i pilot mogą znajdować się pod wielkim grubym kocem, a aby głosować, należy wsunąć rękę pod koc. Ale głośność powinna być wyciszona i może lepiej włączyć jakąś muzykę w tle, na tyle głośną, aby nie było słychać żadnego możliwego brzęczenia lub hałasu z telewizora. Możesz nawet chcieć zdefiniować opóźnienie między jednym a drugim głosowaniem, aby uniknąć reakcji na ewentualne ciepło pilota spowodowane ręką poprzedniego wyborcy.
  • Proces głosowania powinien być taki sam dla wszystkich. Podczas eksperymentu pozostali członkowie muszą upewnić się, że wyborca ​​nie oszukuje (np. podglądanie pod koc, dziwne zachowanie itp.), aby wszyscy byli obecni podczas eksperymentu. Istnieje stosunkowo ustalony okres czasu, w którym wyborca ​​powinien móc pozostać z ręką pod kocem. Wsunięcie go pod koc i natychmiastowe wyciągnięcie nie jest uważane za ważne, ponieważ byłoby to oczywiste i publicznie rozróżnialne głosowanie NIE. Z zewnątrz każdy głos musi wyglądać mniej więcej tak samo.
  • Przetestuj system przed użyciem go w prawdziwym eksperymencie . Musisz upewnić się, że wszyscy rozumieją proces, głosują poprawnie, a system odpowiednio reaguje. Cała rodzina bierze udział w kilku symulowanych głosowaniach na testowanie systemu (symulowane głosy są fałszywe i znane publicznie, a nie tajne).
  • Na koniec system należy bezpiecznie rozmontować. Być może dotknięte przyciski lub części wymagają starannego czyszczenia w celu usunięcia odcisków palców. Jeśli członkowie rodziny nie ufają systemowi po głosowaniu, obawiając się, że ktoś mógłby wydobyć z niego informacje, może być konieczne wyrzucenie wszystkich części systemu.

Głosowanie

Przypuśćmy, że zdecydowali się wdrożyć system zdalnego sterowania TV, co się dzieje. „Ok wszystkim, telewizor jest włączony, aktualny kanał to 123. Jeśli chcesz pozostać w kulcie, zmień go na kanał 0”. Każdy członek z kolei wsuwa rękę pod koc i albo zmienia kanał (jeśli chce pozostać w kulcie), albo udaje, że go zmienia (jeśli chce odejść). Na koniec koc się zdejmuje i ... Kanał 123! Wtedy nikt nie chce pozostać w kulcie, hura! ... lub ... Kanał 0! Wtedy przynajmniej jeden członek chce pozostać w kulcie! A może wszystkie, nie ma sposobu, aby wiedzieć.

Uwagi końcowe

Fajnie było wymyślić rozwiązanie tego problemu, ale uważam to za bardziej eksperyment myślowy niż prawdziwe pytanie zabezpieczające. Problem w tym, że model zagrożenia jest niekompletny, ponieważ nie sądzę, aby ten scenariusz miał sens w rodzinie, w której wszyscy członkowie są częścią kultu. Członkowie kultu są z definicji poddawani praniu mózgu i paranoikom. Mogą nawet nie ufać sklepowi, że kupi nowy telewizor lub pilota, myśląc, że każdy , którego jeszcze nie znają (w tym sprzedawcy), może być „wrogiem”. Zdecydowanie możliwe jest skonfigurowanie systemu bez żadnych urządzeń elektronicznych, używając tylko prostych przedmiotów, takich jak świece, garnki, woda, liny itp. Tym rzeczom może być łatwiej zaufać w porównaniu z urządzeniem elektronicznym z czarną skrzynką, ale może też trudniej jest sprawić, by takie systemy działały niezawodnie. Zastanawiam się też: jeśli członek rodziny sugeruje, że głosowanie jest potrzebne, czy nie jest to podejrzane? Dlaczego członek sekty miałby chcieć wiedzieć, czy wszyscy w rodzinie chcą odejść? Są szanse, że ten, który proponuje ten system, jest tym, który chce odejść. Albo to wszystko może być pułapką, aby dowiedzieć się, kto chce odejść.

Jeśli chodzi o system telewizyjny, możesz również usunąć / wyłączyć wszystkie przyciski inne niż 0, aby dokonać prawdziwego wyboru binarnego (naciśnij lub nie naciskaj). W przeciwnym razie wyborcy mają również dodatkową opcję „resetowania” poprzez zmianę kanału na 123.
_ „jeśli członek rodziny sugeruje, że głosowanie jest potrzebne, czy nie jest to podejrzane?” _ To jest wada w założeniu, z którym cały czas się kłóciłem.
Być może sugestia „głosujmy” jest * również * anonimowa (np. Wpisana notatka pojawia się na kuchennej lodówce w nocy).Tylko osoby opuszczające notatki będą wiedzieć, czy obie notatki („Myślałem o odejściu” i „przeprowadźmy anonimowe głosowanie”) były napisane przez tę samą osobę ...
Idempotencja jest naprawdę kluczem.Możesz uprościć operację do czegoś tak prostego, jak wlanie wody do zamkniętego wiadra za pomocą lejka.Jeśli każda osoba może samodzielnie wybrać, ile wody wlać do wiadra, nie ma informacji o tym, jak pełne jest wiadro, poza faktem, że dno jest mokre (zakładając, że wiadro nie może być manipulowane podczas głosowania i nieemitować hałas itp.).
Można też ustawić dwie miski ryżu, jedną zabarwioną na czerwono po prawej i jedną białą po lewej, a następnie włożyć je pod koc.Wyborcy muszą wziąć kilka ziaren z miski po prawej stronie i włożyć je do miski po lewej stronie, jeśli chcą zostać.Jeśli biały ryż nie zawiera czerwonych ziaren, wszyscy chcą odejść.
-1 Ta odpowiedź zależy od zaufanej strony trzeciej - telewizora, który, jak mamy nadzieję, nie śledzi, z którego pilota pochodzi sygnał.Tylko dlatego, że zaufana strona trzecia jest powszechnie dostępna i łatwo można jej ufać, nie oznacza, że nie jest już zaufaną stroną trzecią ...
Wyciągnij pustą kartkę papieru i obok niej stempel atramentowy.Jeśli po 3 dniach nadal nie ma pieczątki na papierze, wszyscy wychodzimy.
@usul To jednak wycieka informacji.Jeśli podejdziesz do niego i zobaczysz, że jest już znaczek, to wiesz, że ktoś inny chce odejść.Może mógłbyś założyć jedno z tych kombinacji stempli / podkładek atramentowych, aby móc oznaczyć tylko jedno miejsce, ale wtedy musiałbyś zasłonić to widok i prawdopodobnie mógłbyś stwierdzić, jak ciemny jest znaczek.
Odrzuciłem to, ponieważ „po prostu zdobądź urządzenie, które jest zaprogramowane tak, aby nie ujawniać tajemnic i upewnić się, że nikt go nie rozbiera” nie jest poważną odpowiedzią na pytanie kryptograficzne.Myślę, że rozwiązałeś wydajną kryptografię klucza publicznego - po prostu wysyłamy pendrive w pudełku, które każdy może zamknąć, ale które się nie otworzy, dopóki Alice nie wprowadzi swojego hasła!
@Michael: nie musi to być sugestia jednej osoby.Może to być coś, co dzieje się spontanicznie i nikt się na to nie zdecydował.Mam tego dużo, gdy ze znajomymi i gdy jesteśmy głodni - jakoś każdy idzie do restauracji X ale nikt nie jest postrzegany jako ten, który "zdecydował" (dotyczy to również tych, którzy chcieli iść do Y, ale nie wypowiedzieli się ze sprzeciwem)
@CaptainMan, papier i pieczęć wskazywałyby, że ktoś chce zostać.Więc bez znaczków po 3 dniach wszyscy wyjeżdżacie.Jeśli w którymś momencie ktoś chce zostać, robi pieczęć i wszyscy zostają, nie wiedząc, kto zrobił stempel (z wyjątkiem stempla).
@JPhi1618 Powiedz, że jesteś drugą osobą i jest tam pieczęć… Cóż, wiesz, kto podbił.Musisz ukryć, że jest stempel, czy nie.
@CaptainMan, Och, po prostu wyobraziłem sobie to w części wspólnej przez kilka dni, jak ludzie przychodzą i odchodzą, więc nie byłoby porządku na wizyty.Możesz przychodzić i wychodzić 30 razy, a potem w końcu go stemplować.Wydaje mi się, że inni mogliby obserwować okolicę i cię widzieć, więc nie jest to idealne, ale może pracować w mgnieniu oka.
@JPhi1618 nie o to chodzi.Chodzi o to, że jeśli masz trzy osoby Stayven, Stayuart i Goregory, to jeśli Stayven stempluje papier, Stayuart będzie wiedział, że przynajmniej jedna inna osoba chce zostać, więc wiedzą, że pozostanie 2/3, a nie 1/3.Tylko oni mają te informacje, ale nadal jest to przeciek.
Szukasz bramy XNOR
Głosowanie odbywa się klasycznie, wkładając kawałek papieru do pudełka przez cienki otwór.Można to również zrobić tutaj: włóż papier = chcesz zostać, w przeciwnym razie nie.Aby zapobiec liczeniu głosów nawet na końcu, możesz zastąpić pojedynczą kartkę papieru konfetti.Wszystkie te rozwiązania TV / woda /… są dość skomplikowane.Ale żadne z tych, ani moje rozwiązanie nie rozwiązuje jeszcze jednej kwestii: ktoś, kto chce zostać, nadal może po prostu tego nie zrobić i zagłosować za odejściem, a następnie szpiegować innych przygotowujących się do tego i ujawnić to kultowi.To jest problem w pytaniu, a nie w odpowiedziach.
SEJPM
2020-08-04 00:18:10 UTC
view on stackexchange narkive permalink

Brzmi to jak klasyczny przypadek kryptograficznie bezpiecznych obliczeń wielostronnych .

Funkcjonalnością do zrealizowania przy użyciu SMPC byłaby redukcja drzewa AND, która wymaga N-1 AND i ma głębokość około log_2 (N) AND, przy czym każde głosowanie „tak” jest prawdziwym (1) wejściem do obwodu, a każde „nie” jest a falsey (0).

Najprostszym rozwiązaniem tego problemu byłoby prawdopodobnie użycie protokołu GMW SMPC, który pozwala stronom N-1 współpracować bez ujawniania jakichkolwiek tajnych informacji. Istnieje również wariant, który pozwala co najwyżej N / 2 osobom na odejście od protokołu.

Podstawowy przepływ protokołu jest następujący:

  1. Każda ze stron ma 1-bitowe wejście i wybiera losowe bity N-1 i oblicza XOR losowych bitów z bitem wejściowym. Następnie jeden losowy bit jest rozdzielany do jednej drugiej strony, a właściciel przechowuje XOR losowych bitów i danych wejściowych.
  2. Następnie obwód jest oceniany bramka po bramce, co daje każdemu losowy udział XOR wartości wyjściowej tej bramki. Bramki XOR można obliczyć lokalnie, po prostu XORując udziały wartości wejściowych. Bramy AND wymagają interaktywnego protokołu, który jest nieco skomplikowany, więc odesłam cię do (sformatowanego) artykułu: „How to Play any Mental Game” autorstwa Goldreich, Micali i Wigderson ( STOCS'87; PDF).
  3. Na koniec (po ocenie wszystkich bramek) każdy transmituje swój udział w bitach wyjściowych, aby każdy mógł lokalnie XOR je razem.

Ogólnie powyższy protokół GMW będzie wymagał N * (N-1) / 2 1-z-4 Oblivious Transfers od każdej strony, co powinno być nieco wydajnie obliczalny dla dowolnej „rodziny” o rozsądnej wielkości i może nawet nie wymagać wymyślnych technik, takich jak rozszerzenie OT dla tej małej liczby uczestników.

Jeśli chodzi o oprogramowanie, MP-SPDZ wydaje się być dobrym punktem wyjścia do poszukiwania implementacji (jak również lista awesome-mpc). Chociaż zauważ, że znajdziesz tam głównie bardziej zaawansowane schematy.

Prawdopodobnie wygląda to na poprawne, ale trudno mi wykonać te czynności.Czy AND w kroku 2 nie zepsuje XOR w kroku 3 _ (który, jeśli rozumiem, ma na celu usunięcie losowych bitów z obliczeń) _?
@BlueRaja-DannyPflughoeft Podstawową ideą obliczeń końcowych w kroku 2 jest to, że dla każdej bramki każda strona ma jeden udział XOR każdego wejścia, a na końcu (nietrywialnego) protokołu podrzędnego każda strona ma jeden udział XOR funkcji ANDz dwóch wcześniej współdzielonych wejść XOR.Aby to wyjaśnić, wyobraź sobie przypadek dwóch stron: A ma L_A, R_A i B ma L_B, R_B s.t.L_A XOR L_B = L i R_A XOR R_B = R. Protokół pozwala teraz A na uzyskanie O_A i B na uzyskanie O_B s.t.O_A XOR O_B = L AND R. (brak LaTeXa na tej stronie jest do bani :()
user240587
2020-08-04 00:35:12 UTC
view on stackexchange narkive permalink

Metoda bardzo mało zaawansowana technicznie: daj każdemu wyborcy kartę z dziurką na jednym końcu, przesuniętą od środka. Zrób pojemnik, w którym znajdują się karty, i ma w nim dziurkę, która pokrywa się z miejscem, w którym znajdowałaby się dziura w karcie, gdyby została wprowadzona odkryta. Każdy głosuje, umieszczając swoją kartę w pojemniku odkrytą na tak, zakrytą na nie (z pudełkiem odpowiednio zakrytym, aby nikt nie widział samych głosów). Następnie przez otwór w pojemniku wprowadza się pręt. Jeśli wszyscy głosowali na tak, wędka wypadnie. Jeśli przynajmniej jedna osoba zagłosowała na „nie”, wędka zostanie zatrzymana.

To fajne rozwiązanie (+1).Ważne jest, aby znaleźć sposób na bezpieczne odrzucenie kart do głosowania, tak aby same głosy (i kolejność ich ułożenia) nie były znane.
Użyłbym tubki ze szklaną nakrętką na końcu.Każda osoba otrzymuje przezroczystą (pozostawioną) i czarną (pozostającą) kulkę. Każda z nich wrzuca jedną kulkę do tuby, nie zaglądając do niej, drugą kulkę wkłada się do torby. Następnie wrzuca się do niej jeszcze jedną przezroczystą kulkę.Wreszcie przez rurkę świeci się światło.Jeśli wyjdzie z drugiej strony, wszyscy głosowali za opuszczeniem.Rurka, torba i kulki są następnie niszczone.
Jak zapobiec inspekcji pudełka?Na przykład mogłem zauważyć, że Joe włożył pierwszą kartę do pudełka i sprawdził dolną kartę, aby zobaczyć, jak głosował Joe ...
@meriton pudełko może być wykonane z kartonu i spalone po głosowaniu.Możesz również wypełnić pole kilkoma kartami zorientowanymi na „tak” po obu stronach, aby utrudnić ustalenie, kto w kolejności głosowania zagłosował jako pierwszy głos na „nie”.
https://en.wikipedia.org/wiki/Blackballing polegający na dostarczeniu każdemu wyborcy dwóch kulek w różnych kolorach, umieszczonych w urządzeniu do głosowania lub jednej kuli i urządzenia do głosowania z oddzielnymi szufladami itp.
jez
2020-08-03 22:24:22 UTC
view on stackexchange narkive permalink

W pudełku jest kot z fiolką z trującym gazem. Fiolka jest przymocowana do przycisku (oznaczonego „Nie”), który uwolni gaz. Tuż obok tego przycisku znajduje się również fikcyjny przycisk, który wydaje identyczny dźwięk kliknięcia (oznaczony jako „Tak”). Pudełko jest dźwiękoszczelne i nie można do niego zajrzeć. Rodzina siedzi z przodu. Guziki znajdują się z tyłu. Każda osoba może po kolei przejść za pudłem i nacisnąć przycisk. Kiedy każdy miał swoją kolej, kot - a co za tym idzie kult - znajduje się w superpozycji stanów. Zwiń to, otwierając pudełko - lub, aby uzyskać jeszcze lepsze wyniki: załóż maski przeciwgazowe, następnie otwórz pudełko. Na koniec albo pochowaj kota, albo rozwiąż kult, jeśli to konieczne. W tym drugim przypadku użyj procedury głosowania wtórnego, aby zdecydować, kto zatrzyma kota.

Powinniśmy używać szczura zamiast kota, aby uniknąć wpływu na wyniki miłośników kotów lub ASPCA.
LOL - Uwielbiam to, jak próbujemy zdecydować, które zwierzę zabić, kiedy można to po prostu zmienić na „rozlewa farbę” lub coś takiego.Zdecydowane +1 w odpowiedzi - jest to zdecydowanie właściwy sposób rozwiązania problemu.
@Kevin Napisałem całą gadkę, w której każda osoba wkładała dowolną liczbę kropli atramentu do słoika z wodą i już miałem uderzyć, gdy zdałem sobie sprawę, do czego to jest izomorficzne.
To urządzenie jest z definicji zaufaną stroną trzecią
@BlueRaja-DannyPflughoeft nie w tym sensie, że OP jest zaniepokojony: (1) nie jest zagrożony, jeśli pozwolimy wszystkim członkom rodziny zbadać mechanizm i procedurę, aby upewnić się, że działa zgodnie z przeznaczeniem (analogia: szyfrowanie open source);i (2) maszyna nie zachowuje żadnych informacji o tym, kto / ilu nacisnął przycisk „Nie”, więc nie może zostać wykorzystany do celów polowania na czarownice.
Jeśli zamierzamy pozwolić, aby „urządzenia open source” nie były uważane za „zaufane strony trzecie”, to odpowiedź jest banalna i nie wymaga zabijania żadnych kotów: użyj dosłownie dowolnej automatycznej maszyny do głosowania typu open source.Ale zgodnie z normalną definicją wszystkie te urządzenia (w tym Twoje) są zaufanymi stronami trzecimi.
I trzeciorzędny system głosowania decydujący o tym, kto musi otworzyć pudełko, najlepiej z maską gazową * i * kamizelką kuloodporną.Cytując Terry'ego Pratchetta, kot w pudełku ma trzy możliwe stany: żywy, martwy i wściekły.
Ile kotów ma rodzina?Proces powinien być powtarzalny
@bradbury9 Znają faceta, który zna faceta.Chcesz kota?Może załatwić ci kota.
Kot głosuje za opuszczeniem tego kultu!
Kevin
2020-08-04 00:29:29 UTC
view on stackexchange narkive permalink

To naprawdę trudny problem! Oto moje rozwiązanie papier-ołówek, starając się, aby było tak proste, jak to tylko możliwe.

  1. Każda osoba otrzymuje 3 kartki papieru. Potajemnie zapisują na każdym z nich inny 2-cyfrowy numer i kładą je zakryte przed sobą.

  2. Każda osoba bierze 3 kartki od innych osób, najlepiej nie dwa od tej samej osoby.

  3. Każda osoba zapisuje, do czego sumują się te 3 kartki. Jeśli chcą zagłosować na „nie”, mogą wpisać liczbę wyższą niż liczba rzeczywista. Śmiało i wyświetl te informacje.

  4. Powtórz krok 2, aby każda osoba miała 3 nowe kartki papieru.

  5. Każdy osoba pisze, do czego sumują się te 3 wpadki, ale tym razem zakrywa swoją sumę. Jeśli chcą zagłosować na „nie”, powinni wpisać liczbę niższą niż liczba rzeczywista. (Jest to opcjonalne, jeśli błędnie przypisali już numery w kroku 3).

  6. Każda osoba niszczy oryginalne kartki przed sobą. Po tym pozostaje tylko suma, którą zrobili w kroku 3 i suma, którą zrobili w kroku 5.

  7. Wszyscy wyświetlają swoje sumy w tym samym czasie.

Czy wszystkie sumy z kroku 3 sumują się do wszystkich sum z kroku 7? Jeśli nie, jest co najmniej jeden głos na „Nie”.

Dlaczego to działa?

Nie ma tajemnicy wygenerowanej przez stronę trzecią. Aka, nic nie generuje dużej liczby pierwszej ani nic takiego. Jeśli „coś” generuje informacje, musi mu zaufać wszystkie zaangażowane strony. To omija to, ponieważ tajemnica (jaka jest w sumie) jest generowana przez wszystkie zaangażowane strony, a nie jest czymś, co żadna z nich nie wie.

Nie ma łańcuchów informacji. Praca osoby B nie zależy od nikogo innego. Nie mogą wykorzystać swojego wkładu, aby dowiedzieć się, czy osoba A kłamie.

Nie ma sposobu na ustalenie, czy czyjaś suma jest prawdziwa. Jeśli powiedzą „218”, jedynym sposobem sprawdzenia, czy to możliwa liczba, jest sprawdzenie, co mówią wszystkie kartki papieru. Ale nikt nie widział wszystkich skrawków papieru.

Uroczy.To tak, jakby zaprojektować grę planszową „dezerterów”, której nie da się wygrać.
Jak zależne jest to od przypadkowości i niemożności wyśledzenia dwóch procedur „chwytania”?Gdybyś był w stanie obserwować i zapamiętywać, kto i kiedy chwycił jakie karty, czy dałoby to jakieś informacje na temat głosów ludzi?
@jez - nie jestem pewien, ale wątpię.Chodzi mi o to, że jeśli zobaczysz, że osoba A chwyciła karteczki napisane przez B, C i D - możesz zapytać B, C i D, jakie trzy wartości zapisali, a następnie użyć tego, aby określić, czy A kłamie, kiedy powiedziałcałkowita wyniosła „162”.Ale polegałbyś na tym, że B, C i D wszyscy mówią prawdę (i dokładnie pamiętają, jakie trzy oryginalne liczby napisali) .Możesz także zapytać E, F i G - z których wszyscy wzięli karty osoby A zadruga runda, ale jesteś na tej samej łodzi: ufasz, że wszyscy powiedzą ci prawdę i dokładnie zapamiętają.
Warto również zauważyć: celowo utrzymywałem proces tak prosty / łatwy, jak to tylko możliwe.Gdybym starał się uczynić to tak kuloodpornym, jak to tylko możliwe, sugerowałbym użycie N-1 kawałków papieru.Więc jeśli rodzina liczyłaby 11 członków, każdy z nich miałby 10 karteczek do wypełnienia.W ten sposób jedynym sposobem ustalenia, czy ktoś kłamał, czy nie, byłoby zaufanie, że każdy inny członek rodziny powie prawdę (zamiast po prostu zaufać 3.) Co już możesz zrobić („Czy wszyscy głosowaliście Tak? W takim razie Bob musiał głosować „nie”).
Czy to nie wyciek informacji, jeśli tylko jedna osoba zagłosuje na „Nie”?Jeśli zwiększą sumę o x w kroku 3 i zmniejszą ją o y w kroku 5, to ostateczne sumy będą się różnić o (x + y).Osoba, która zagłosowała na „nie”, od razu wiedziałaby, że była jedyną, która głosowała w ten sposób.„Mam dowód, że wszyscy w mojej rodzinie chcą zdradzić kult!”brzmi jak zła informacja do wycieku.
Jeszcze jedno ostrzeżenie: zakłada się również, że wszyscy potrafią wykonywać podstawowe obliczenia matematyczne, a także potrafią pisać na liczbach, co jest bardziej ryzykowne niż próba ucieczki.Twój brak wiary w zespół został zgłoszony./ s
@RobWatts Dodają różne liczby.Nikt nie wie, kto zmienił kwoty, tyle tylko, że zostały zmienione.
@LorenPechtel - mówi, że jeśli zagłosowałem na nie i skorygowałem pierwszą sumę o 3, a drugą o 5 ... jeśli zobaczę różnicę to 8, będę wiedział, że nikt inny nie manipulował liczbami.Co jest słuszne, ale nie jestem pewien, jaką różnicę ma to w przypadku konkretnego pytania OP (wiedźmy i tym podobne).
Jest mało prawdopodobne, ale możliwe, że dwie lub więcej osób kłamie.
Jak napisano, protokół ten podlegałby zmowie grupy ludzi w celu ustalenia, jak głosował trzeci, bez konieczności liczenia się jako głosujący na „tak”.
@Kevin Słuszna uwaga - możesz określić, czy jesteś jedynym, który nie jest wyborcą.Informacje nie wydają się jednak zbyt przydatne, w takim przypadku wiesz, że nie masz sojuszników.
@LorenPechtel niestety jedna osoba ma sojuszników - cała reszta kultu.
@RobWatts Co?Jedyny przeciek, jaki widzę, to sytuacja, gdy tylko jedna osoba decyduje się zostać.Dowiadują się, że wszyscy chcą odejść.Żadnych sojuszników.
@RobWatts - to dobra uwaga.Osoba, która wie, że „Jestem jedyną osobą, która chce tu zostać” decyduje: „Do licha z moją rodziną, zamierzam zgłosić ich wszystkich do Grand Wahoobah! Mam teraz nową rodzinę i wszyscy mnie kochają"
@supercat - dlatego dodałem ten komentarz - że jeśli się boisz, po prostu zmień „3” na „N-1”.W ten sposób jedynym sposobem, w jaki można wydedukować głos drugiej osoby, jest zebranie się wszystkich osób i zaufanie sobie nawzajem do wypowiedzi
@Kevin: Doceniam, że próbujesz podejść do tego z matematycznej / kryptograficznej perspektywy, ale myślę, że solidne rozwiązanie powinno wygenerować niezatarty dowód, że każda osoba zagłosowała za tak, zanim ktokolwiek będzie w stanie stwierdzić, że tak jest.Nawet jeśli na ostatnim etapie ktoś próbowałby zmienić zdanie, pozostali uczestnicy otrzymaliby dowód, że wcześniej głosowali na tak.
Hagen von Eitzen
2020-08-03 19:17:58 UTC
view on stackexchange narkive permalink

Wymagane przybory: długopis i papier.


Jako grupa wybierzcie dużą liczbę pierwszą p.

Każdy wybiera tajną parę liczb ai , bi z a i b i ≡ 1 (mod p ). Na przykład wybierz losowo ai z zakresu 1… p - 1 i znajdź b i przez rozszerzony algorytm euklidesowy. Jeśli ai lub bi jest podejrzanie mała (powiedzmy, że mniej niż połowa cyfr mniej niż p ), po prostu zacznij od nowa z nową losową wartością. Ci, którzy chcą odpowiedzieć „nie”, zamiast tego wybierają losowo zarówno ai , jak i bi .

Teraz liczby są zamienione: każdy przekazuje swoje ai swojemu lewemu sąsiadowi i otrzymuje a j od swojego prawego sąsiada.

Teraz każdy mnoży mod p posiadaną przez siebie parę liczb i ogłasza wynik. Teraz ogłoszone liczby są mnożone mod p . Jeśli wszyscy zagłosowali na „tak”, ostateczny wynik będzie równy 1. Jeśli jakakolwiek liczba z nich zagłosowała na „nie”, wynik będzie liczbą losową, a więc bardzo prawdopodobnie nie 1 (więc możemy chcieć powiększ p , aby zwiększyć pewność).

Czy osoba po twojej prawej stronie i osoba po twojej lewej nie byliby jednak w stanie współpracować, aby dowiedzieć się, czy głosowałeś na „tak”?Jeśli martwimy się polowaniami na czarownice, żadna osoba nie mogłaby powiedzieć „Hej, jestem trochę podejrzliwy w stosunku do Boba. Dał mi ###### - co ci dał? Sprawdźmy, czy zagłosował na tak”
Nie możesz po prostu wrzucić wszystkich liczb do kapelusza, aby nie było sposobu, aby prześledzić poszczególne numery do konkretnej osoby?
Czy zakładamy, że obecni członkowie kultu wykonują te obliczenia ręcznie?Jeśli tak, czy jest coś, co uniemożliwiłoby im po prostu fałszowanie swoich obliczeń?Sugerowałbym, że chcielibyśmy wymagać, aby udowodnili swoje odpowiedzi wszystkim pozostałym członkom.
@Kevin Bob nadaje tylko jednej osobie jeden numer, jego * a *.On * otrzymuje * numer od innej osoby
@securityOrange, wykonujący mnożenie, a następnie kłamanie i podawanie liczby losowej, nie jest tak naprawdę do odróżnienia od zwykłego mnożenia z liczbą losową na pierwszym miejscu (tj. Po prostu głosując na nie).Oczywiście mogą istnieć kanały boczne, jeśli skuteczny nie wyborca uzna, że faktyczne pomnożenie jest zbyt kłopotliwe i po prostu udziela odpowiedzi;)
@timuzhti - ach, przegapiłem, że nie ma przepustki w obu kierunkach.Ale to wciąż ten sam problem.Komu Bob daje swój numer?Jeśli Bob mówi prawdę, jest tylko jedna inna liczba, którą mogą mieć (ta, pomnożona przez drugą, czyli mod = 1 w odniesieniu do P.) Jeśli ta osoba współpracuje i pyta „Hej, jaką liczbę podałeśPion?"ustalenie, czy Bob kłamie, powinno być trywialne.
Uważam, że twój schemat mógłby zostać znacznie uproszczony (w szczególności, pracując w grupie addytywnej modulo dowolną dużą liczbę _m_ zamiast multiplikatywnej grupy modulo _p_), ale ma również fundamentalną wadę: wyborca "nie" może określić, czyczy też nie wszyscy głosowali „tak”.I nie widzę sposobu, aby to naprawić.
Straciłeś mnie w "wybierz dużą liczbę pierwszą".(w rzeczywistości odpowiedź jest w porządku, po prostu czuję, że skoro OP dostarczył faktycznego kontekstu dla pytania (rodzina, kult, ...), odpowiedź powinna być zrozumiała dla kuzyna sztuki)
Warto zauważyć: głos każdej osoby może zostać odkryty przez ich dwóch współpracujących sąsiadów;jeśli napiszę cyfry A i B, mój lewy sąsiad uczy się A bezpośrednio, a mój prawy sąsiad może obliczyć B, mnożąc to, co mówię, przez odwrotność liczby, którą mi podali.Gdyby moi sąsiedzi chcieli przełamać system i zaufać sobie nawzajem, mogliby wspólnie nauczyć się AB.
@timuzhti Nie zgodziłbym się z tym, ponieważ wariacja, że kłamstwo na temat twoich obliczeń może cofnąć głos.Na przykład, jeśli N = 3 i padł 1 głos, a 2 na 3 osoby uczciwie pomnożą, z wyjątkiem ostatniej, istnieje 50% szansy, że osoba ta powie tak i cofnie wynik głosowania.Poleganie tylko na jednym głosie negatywnym czyni go kruchym systemem, więc jedna nieuczciwa osoba - jeden bizantyjski generał, powiedzmy: D - psuje wynik.Wiesz co mam na myśli?:) Myśli?
@securityOrange Tak, użyty szyfr jest kruchy, co jest dobrą ilustracją tego, dlaczego nie powinieneś wyrzucać własnego.Tak, jak ja to widzę, ta odpowiedź * próbuje * użyć / zaprojektować homomorficzny szyfr, który, miejmy nadzieję, da się zredukować do faktoryzacji liczb całkowitych lub dziennika dyskretnego, a także przynajmniej OW-CPA, jeśli nie IND-CPA (co jest prawie niemożliwe, RSA to robi), ale nie do końca działa - ponieważ w procesie upraszczania skończyło się na użyciu niewłaściwej funkcji, co sprowadza się do łatwego problemu!Najlepsze szyfry do tego są domyślnie probabilistyczne, więc mogą być IND-CPA, pozostając homomorficznymi.
securityOrange
2020-08-03 11:04:50 UTC
view on stackexchange narkive permalink

To naprawdę fajne i interesujące pytanie. Naprawdę to lubię.

Myślę więc, że powinniśmy zacząć od rozbicia tego, co próbujesz zrobić, w najbardziej abstrakcyjny, oparty na teorii informacji sposób. Oto moje zrozumienie:

  • N > 3 węzły w grupie komunikują się ze sobą.
  • Przesyłają albo 0 lub 1 , tak lub nie.
  • Weźmiemy wszystkie dane wejściowe, a następnie ORAZ je. Innymi słowy, nie obchodzi nas wynik, chyba że wszystko jest 1 ; jeśli nie wszystko to 1 , to 0 . (Jeśli nie jesteś bardzo zaznajomiony z bramkami logicznymi, może to być interesujące.)
  • Transmisja każdego węzła musi być nieznana wszystkim innym węzłom.

Pojawia się zatem pytanie, jak techniczne powinno być rozwiązanie. Bardziej techniczne rozwiązanie, z pojedynczą techniką o niskim poziomie zaawansowania technologicznego, czyni to całkiem prostym:

  1. Wszystkie węzły osobiście potwierdzają swoją tożsamość, a każdy węzeł tworzy parę kluczy publiczny-prywatny i przekazuje swoje klucze publiczne scentralizowanemu serwerowi.
  2. Następnie przesyłają swoje głosy do centralnego serwera, który odszyfrowuje je za pomocą kluczy publicznych.
  3. Serwer wykonuje operację AND i zwraca wynik.

Gdybyśmy chcieli spróbować obniżyć poziom technologii, myślę, że chcielibyśmy skorzystać z dziwniejszych rozwiązań. Oto jeden, który przychodzi na myśl:

  • Część rozpuszczalnego materiału umieszcza się w pojemniku z niewielką ilością wody. Każda osoba na zmianę wlewa do niej substancję chemiczną z zawiązanymi oczami i wstrzymując oddech, przy znacznym hałasie w tle.
  • Wybierają albo wodę, jeśli tak, lub bezbarwny, bezwonny kwas, jeśli nie. Kwas jest wystarczająco silny, aby z czasem rozpuszczać materiały w znacznej ilości rozpuszczalnika.
  • Po oddaniu głosów konfiguracja pozostaje niezakłócona przez pewien czas. Kwota ta jest określana poprzez znalezienie czasu wymaganego do widocznego rozpuszczenia obiektu, przy wyniku głosowania wynoszącym N - 1 głosów negatywnych.
  • Po upływie określonego czasu, wszyscy członkowie widzą wyniki osobno (aby uniknąć wyrażania reakcji), a następnie zbiegają się, aby omówić wyniki.

Ostatecznie, niezależnie od tego, ile komputerów biorą udział w wyborze, odpowiedź brzmi: zachowanie poufności i integralności w środowisku transmisji, które obniża poufność, jeśli transmisje przechodzą przez bramkę AND . Roztwór wodno-kwasowy jest jedną z wielu możliwych, ale moim zdaniem nadal spełnia swoje zadanie.

Świetne pytanie! To było naprawdę zabawne. Jeśli przegapiłem jakieś ograniczenia, o których już wspomniałeś, umieść to w komentarzu, a poprawię.

Edycja: początkowo powiedziałem, że woda to „nie”, a kwas „tak”. Powinno być na odwrót. Dzięki za zwrócenie uwagi, @TripeHound.

Podoba mi się roztwór chemiczny i może istnieć prosty roztwór ze środkami chemicznymi zmieniającymi kolor na podstawie niewielkiej zmiany pH.Jeśli tak, to dodanie samej wody, a nie to dodanie roztworu, który nieznacznie zmienia pH, zarówno tak, jak i nie, mogą być bezwonne i bezbarwne.Butelkę używaną jako urnę można pomalować, więc wyniki ujawniają się dopiero po wylaniu jej z butelki.
Szkoda tylko, że naukowcy, tacy jak chemicy, są mniej skłonni do przyłączania się do kultu religijnego.:)
Czy twoje nie = woda, tak = kwas, nie jest odwrotnie?Czytam, że kwas rozpuszcza materiał (jeśli rozpuszcza się w wodzie, ponieważ zaczyna się w wodzie, zawsze się rozpuści).Dlatego, jeśli _ ktokolwiek_ powie „tak” (= kwas), nawet jeśli wszyscy inni powiedzą „nie”, materiał rozpuści się (po odpowiednim czasie).Jeśli nie = kwas, to jeśli przynajmniej jedna osoba powie „nie”, materiał rozpuszcza się: pozostanie tylko, jeśli wszyscy powiedzą „tak” (tj. Wszyscy dodadzą wodę).A może coś przegapiłem?W każdym razie genialne rozwiązanie (?)!
Oba te przykłady wykorzystują zaufane strony trzecie (w drugim przypadku „strona trzecia” to substancja chemiczna, której mamy nadzieję, że będzie się zachowywać zgodnie z naszymi oczekiwaniami)
@TripeHound Masz rację!Popełniłem błąd.Dzięki za zwrócenie uwagi!Tak, głosem negatywnym powinien być kwas, a głosem pozytywnym powinna być woda.Naprawdę kombinacja kwas / woda może być dowolna: ważna jest właściwa idempotencja, jak wspomina jez.Odpowiedź „tak” powinna być idempotentną odpowiedzią, więc domyślnie nie mamy żadnego efektu;„nie” powinno być zdecydowanie nie idempotentne.
@EsaJokinen Całkowicie się zgadzam - zamiast być kwasem, możesz też nadać mu kolor.Też o tym myślałem.Myślę, że to działa?Ale w praktyce zmierzenie ilości zabarwienia w wodzie może być trudne, chyba że spojrzeć na cząsteczki pigmentu na milion lub coś podobnego, podczas gdy jeśli rozpuszczasz obiekt, możesz zmierzyć zmianę objętości lub coś podobnego.(Po pierwszym pomiarze objętości upewnij się tylko, że jest podmokły). Co o tym myślisz?
@BlueRaja-DannyPflughoeft Nie zgadzam się.Tak długo, jak wszyscy członkowie sekty pozyskują chemikalia razem, myślę, że nie jest to wcale osoba trzecia.Jakie są Twoje myśli?
@securityOrange: Nie, nie mówiłem o zabarwieniu wody, ale o ** wskaźnikach pH **, które całkowicie zmienią kolor po pewnym progowym poziomie jonów hydroniowych (H3O +) lub wodoru (H +).Zobacz [pełne rozwiązanie jako odpowiedź] (https://security.stackexchange.com/a/236622/70406).
Zapomniałeś o ważnym kroku, jakim było wlanie równej ilości innego płynu do oddzielnego pojemnika lub do kanalizacji.W ten sposób nikt nie może spojrzeć na zmniejszone objętości płynów między odpowiedziami i określić, jak ktoś głosował.
Qmppu842
2020-08-03 18:33:00 UTC
view on stackexchange narkive permalink

Nie mogę komentować, ponieważ jestem nowicjuszem.
Aby dodać / skomentować @reeds i @securityOranges odpowiedzi:
Wygląda na to, że można to łatwo zrobić za pomocą przełączników jako opcji o niskim poziomie zaawansowania technologicznego.

Wykonaj obwód, taki jak:
Bateria, aby przełączyć, aby przełączyć się na diodę z powrotem na baterię.
Następnie można nawet zbudować i zademonstrować jego uczciwą pracę przed wszystkimi uczestnikami.
Przewody mogą być tak długie, jak potrzeba.
Światła / diody można nawet dodać obok każdego przełącznika.
Prawdopodobnie dałbym ludziom karton do trzymania za rękę, będąc w tym samym pokoju .

Przyciski mogą być używane, aby zapewnić, że nawet jeśli system zostanie fizycznie skradziony podczas głosowania, powrócą do swojego pierwotnego stanu na tyle szybko, że nie będzie można uzyskać żadnych informacji.
Wtedy tylko ludzie patrzą na zegar a wszyscy będą głosować na ~ 10 sekund, gdy zegar osiągnie określony czas.

Edytuj: Tworzę demonstrację tego:
https://imgur.com/a/kb6XQe6

W skrócie:
1. and 3. button being pressed, No blue LED

Powyżej dwa trzech przycisków jest wciśniętych, ale nie świeci się. Poniżej wszystkie trzy przyciski są wciśnięte, a więc zapaliła się kontrolka. All the buttons being pressed, blue LED

I mam nadzieję, że wyobraź sobie wyraźne połączenia między komponentami: Connections explained

1, 2 i 3: Od baterii do pierwszego przycisku
4, 5 i 6: Przyciski
7, 8, 9 i 10: podłączenie do rezystora
11: rezystor
12: dioda LED
13: połączenie z powrotem do "baterii"

Użyłem Arduino jako mojej baterii, ale mógł to być inny metoda dostarczania mocy dla led.

Jednym z ulepszeń jest połączenie tego z obwodem zatrzasku wyzwalanym przez zegar, tak aby wyniki głosowania były próbkowane dokładnie raz.W przeciwnym razie ktoś może potencjalnie sprawdzić, czy był jedynym głosem sprzeciwu, przełączając swój głos, gdy wyświetlane jest wyjście.
@DanBryant Nawet tego nie ma, bezpiecznik, który przepala się mniej więcej natychmiast po podłączeniu prądu, jest wystarczający.
Myślę, że wy nadal myślicie na zbyt wysokim poziomie. Zrobiłem fizyczną demonstrację tego działania ze wszystkimi pokazanymi kombinacjami dla zabawy. [Tutaj w tej galerii https://imgur.com/a/kb6XQe6](https://imgur.com/a/kb6XQe6), którą powinieneś móc zobaczyć, pokazałem to.
To urządzenie jest z definicji zaufaną stroną trzecią
@BlueRaja-DannyPflughoeft Czy możesz wyjaśnić? Nie potrafię zrozumieć, w jaki sposób lub która część potrzebuje zaufania strony trzeciej.
„Zaufana strona trzecia” nie musi być osobą, może to być urządzenie, któremu ufamy, aby było bezpieczne i anonimowe.W tej odpowiedzi to urządzenie jest niestandardowym obwodem zbudowanym przez Ciebie.
Chodzi jednak o to, że jest to tak proste, że można to zrobić na oczach wyborców. Wyborcy mogą to sprawdzić i zbudować tyle, ile chcą, aby dodać redundancję. Mogli nawet zbudować każdy z nich i przetestować je oddzielnie i nacisnąć wszystkie w tym samym czasie.
@Qmppu842.To znaczy w pewnym sensie.Szczerze mówiąc, gdybyś mi przekazał to urządzenie, moja pierwsza myśl brzmiałaby: „Czekaj, skąd mam wiedzieć, czy okablowanie jest takie, jak zostało mi opisane?”Bawiłbym się tym, wypróbowując wszystkie przyciski i przez chwilę byłbym szczęśliwy ... aż pomyślałem: „Czekaj, skąd mam wiedzieć, że nie ma ukrytego przycisku N-tego, który zmienia zachowanie urządzenia?”To znaczy, gdybym był wystarczająco biegły, mógłbym być w stanie zbadać urządzenie i prześledzić wszystkie jego wewnętrzne działanie i mieć do niego pełne zaufanie ... ale poza tym nie miałbym gwarancji, że efekt końcowy byłprawdziwe.
@Qmppu842: Prostota tworzenia zaufanej strony trzeciej nie ma znaczenia.To nadal zaufana strona trzecia.
Esa Jokinen
2020-08-04 11:31:58 UTC
view on stackexchange narkive permalink

Poprawia to bezpieczeństwo myśli Orange, ale w bardziej niezawodnej formie bez czekania.

Roztwór chemiczny wykorzystujący wskaźnik pH

Przyjrzyjmy się różnym wskaźnikom pH, halochromowym związkom chemicznym, czyli związkom, które reagują na kwasowość lub zasadowość roztworu poprzez zmianę koloru. To poprawione zdjęcie z bloga EduMission pokazuje kilka przykładów, a bardziej kompletna i dokładna tabela jest dostępna w Wikimedia.

enter image description here

Ponieważ nie chcemy się zranić podczas mieszania tych roztworów, lepiej wybrać związki, w których przejście jest wystarczająco ostre, aby można je było wyraźnie zauważyć, np. tymoloftaleina , która jest niebieski powyżej pH 10,5 i bezbarwny poniżej 9,3. Fenoloftaleina nie jest tak dobra, ponieważ wraca do bezbarwnej powyżej pH 10. Również zbyt dokładny pomiar pH dałby informacje o liczbie głosów.

Działa to w przypadku dość dużych grup, ponieważ Skala pH jest logarytmiczna: dodanie 1 grama wodorotlenku sodu do 60 litrów wody daje pH 10,6!

Układ głosowania:

  1. Przygotuj np roztwór wodorotlenku sodu do oddania nie głosów. Jeśli dodasz np. 0,4 grama wodorotlenku sodu na 0,4 litra wody, otrzymujemy roztwór o pH 12,4.

  2. Miej kolbę z wodą na głosy tak (pH 7). Oba płyny są bezbarwne i niemożliwe do rozróżnienia na oko. Dlatego ważne jest, aby roztwory były przygotowywane razem z innymi.

  3. Każdy z kolei bierze pełną pipetę jednego z roztworów i wlewa go do trzeciej kolby; nazwijmy to rozwiązaniem urny wyborczej . Ważne jest, aby używać pipety wystarczająco małej w porównaniu z rozmiarami kolb, aby wysokość powierzchni nie wskazywała, który roztwór został już użyty.

  4. Aby policzyć głosy , upuść tymoloftaleinę do roztworu urny wyborczej.

    Jeśli zmieni kolor na niebieski, przynajmniej ktoś oddał głos „nie”. Zobaczmy jeszcze raz, jak logarytmiczna natura pH wpływa na to, że 10 osób zagłosuje tym rozwiązaniem. Szary obszar przedstawia zakres przejścia tymoloftaleiny, w którym nie możemy z całą pewnością określić, jaki będzie kolor.

    pH as a function of casted no votes

  5. Aby sprawdzić wyniki, możesz dodać tymoloftaleinę do obu oryginalnych roztworów, aby upewnić się, że działa zgodnie z oczekiwaniami. Następnie wymieszaj wszystko razem, aby zapobiec dokładniejszemu pomiarowi pH lub objętości, ponieważ może to ujawnić dokładną liczbę głosów.

Jest to po prostu oparta na substancjach chemicznych implementacja schematu „[blackball] (https://en.wikipedia.org/wiki/Blackballing)”.
Nie, nie jest.System czarnej kulki zachowuje liczbę głosów, a ten problem polegał na ** ukryciu liczby głosów ** we wszystkich innych sytuacjach, ale kiedy wszyscy zagłosowali na tak.
Phil
2020-08-04 17:45:46 UTC
view on stackexchange narkive permalink

Artykuły gospodarstwa domowego: każdy przygotowuje szklankę wody, najlepiej destylowanej. Jeśli chcesz zagłosować na „nie”, rozpuść dowolną ilość soli w szklance. Każdy musi zamieszać w szklance, aby ruch mieszania nie był zbyteczny.

Jednocześnie połącz szklanki z wodą w garnku. Szklanki zostaną zanurzone w misce z wodą, aby zapobiec przenoszeniu kropel do wyborcy. Zagotuj wodę, jeśli są pozostałości soli, nie było to jednomyślne głosowanie za.

Problem w tym, że aktualny wyborca (im dalej w linii głosowania, tym lepiej) może sprawdzić (pobierając próbkę wody), czy ktoś już zagłosował na „sól”, czy nie.
Po napełnieniu wodą, ale przed dodaniem soli, patelnia jest widoczna publicznie.Wszyscy uczestnicy mogą obserwować patelnię i mogą atakować każdego, kto próbuje wykonać nieautoryzowane pobieranie próbek.
@Woj Zamierzałem, aby szklanki były nalewane na patelnię w tym samym czasie.Zaktualizowano w celu wyjaśnienia.
To jest po prostu oparta na soli wersja schematu „[blackball] (https://en.wikipedia.org/wiki/Blackballing)”.
@schroeder z blackballem, możesz później policzyć, ile czarnych piłek zostało rzuconych, co narusza wymagania.Dzięki temu schematowi nigdy nie można powiedzieć, ile osób włożyło sól.
Przyjmujesz stosunek piłek do wyborców 1: 1.
@schroeder nawet bez proporcji 1: 1 piłek, jeśli wrzucę x czarnych kul, mogę wywnioskować, czy ktoś inny zagłosował ze mną, jeśli jest> x czarnych kul.Potencjalnie, jeśli wyborca w moim programie dokładnie zważył sól wcześniej, a następnie dokładnie zważył pozostałość, mógłby dokonać podobnej dedukcji, ale można by temu w trywialny sposób zapobiec, myjąc patelnię, zanim ktokolwiek będzie miał szansę ją zważyć.
Nick Bonilla
2020-08-03 21:16:29 UTC
view on stackexchange narkive permalink

Używaj warstw szyfrowania, w których każdy członek rodziny ma klucz tylko do jednej z warstw.

enter image description here

Krok 1: Szyfrowanie

Na początku głosowania poproś jednego z członków rodziny o zaszyfrowanie prostej wiadomości „Tak, wszyscy chcemy odejść”. Po tym, jak pierwsza osoba zaszyfruje wiadomość kluczem prywatnym, który właśnie wygenerowała, pierwsza osoba przesyła ją e-mailem do innego członka rodziny w celu ponownego zaszyfrowania już zaszyfrowanej wiadomości własnym kluczem prywatnym, a następnie przekazuje ją dalej, aż wszyscy członkowie rodzina dodała warstwę szyfrowania. Zapewnia to „cebulę” szyfrowania, ponieważ każdy członek rodziny dodał warstwę szyfrowania do wiadomości.

Krok 2: odszyfrowanie

Podczas głosowania członkowie wysyłają e-maile swoje prawdziwy lub fałszywy klucz prywatny. Jeśli podano fałszywe wiadomości, nie można odszyfrować wiadomości.

Tylko wtedy, gdy wszyscy członkowie rodziny podadzą sobie nawzajem swój prawdziwy klucz, wszyscy będą mogli odszyfrować wszystkie warstwy zaszyfrowanej wiadomości.

Krok 3: Głosowanie w przyszłości

Jeśli rodzina zdecyduje się przeprowadzić kolejne głosowanie w przyszłym roku, będzie musiała wymyślić dla siebie nowe klucze prywatne i rozpocząć proces od początku.

Myślę, że to działa, pod warunkiem, że fałszywy klucz prywatny prowadzi do nieprawidłowego odszyfrowania, a nie do nieudanego odszyfrowania.W ten sposób grupa nie zobaczy, którego klucza nie udało się odszyfrować.
W rzeczy samej.Wygląda na to, że schemat symetryczny, podobny do jednorazowego bloku (XOR z losowymi bajtami), mógłby mieć ten sam efekt, ale byłby mniej identyfikowalny.
Nie jestem pewien, czy to działa.Osoba B ma dostęp do dwóch rodzajów danych: tego, jakie przesłała jej osoba A i jakie są jej klucze.Tak więc osoba B może dowiedzieć się, na kogo głosowała osoba A (po prostu sprawdź: czy dane, które otrzymała, są możliwe do odszyfrowania z tym, co A powiedział później, że ich klucz był?).a B powiedział, że mają klucze.Jeśli zarówno A, jak i B głosowali na tak, C powinien mieć możliwość rozszyfrowania danych.Jeśli nie, to jeden (lub obaj) z nich głosowali na nie.
Jak dotąd jest to zdecydowanie najlepsza odpowiedź _ (większość innych polega na zaufanych firmach zewnętrznych, które udawały telewizory lub chemikalia) _, ale nadal występują pewne problemy.Najbardziej rażące jest to, co @Kevin mentioned:, przedostatnia osoba, będzie wiedzieć, na co głosowała ostatnia osoba.Myślę, że można to naprawić, każąc wszystkim wykonać drugą rundę szyfrowania.Inną kwestią jest to, że jest to [godne odrzucenia] (https://en.wikipedia.org/wiki/Non-repudiation) _ (ktoś, kto zagłosował na „tak”, może udowodnić, że zagłosował na tak) _.
odszyfrowanie wiadomości za pomocą prawdziwego lub fałszywego klucza prowadzi do bełkotu, jak stwierdził @niemiro.
@NickBonilla - nie mówimy o odszyfrowaniu oryginalnej / końcowej wiadomości - ale * dane wejściowe *, które ma określona osoba.Powiedzmy, że są 4 osoby: Alice, Bob, Charlie i Diane, i szyfrują w tej kolejności.Alicja szyfruje wiadomość i przekazuje ją Bobowi.Później Alice powie wszystkim swój klucz szyfrowania - więc w tym momencie Bob wie, w jaki sposób Alice głosowała (aka, czy jego dane wejściowe można odszyfrować kluczem Alice?). Podobnie, gdy Bob wręcza Charliemu drugą warstwę cebuli, Charlie jestpóźniej dowiemy się, jakie klucze posiadali Alice i Bob i czy obaj głosowali na tak.
Ponieważ szyfrowanie / deszyfrowanie każdej z warstw jest zależne od poprzedniej, w jaki sposób można upewnić się, że zastosowano właściwy klucz?Śledzisz kolejność głosów?
bta
2020-08-04 01:31:29 UTC
view on stackexchange narkive permalink

Starając się, aby było to tak mało zaawansowane technicznie, jak to tylko możliwe.

  • Każdy otrzymuje dwa małe śruty, stalowy śrut i plastikowy śrut airsoftowy (równej wielkości, ale różny skład). >
  • W kabinie do głosowania znajdują się dwa miejsca, jeden z napisem „Głosuj”, a drugi z napisem „Odrzuć”. Każda szczelina prowadzi do nieprzezroczystej torebki. Ani torebek, ani ich zawartości nie można bezpośrednio obserwować.
  • Torba „Vote” jest wstępnie wypełniona kilkoma plastikowymi granulkami, a worek „Discard” jest wstępnie wypełniona kilkoma stalowymi kulkami.
  • Jeśli wyborca ​​chce opuścić , umieszcza plastikową kulkę w slocie „Głosuj”. Jeśli chcą zostać , umieszczają swój stalowy śrut w slocie „Głosuj”. Pozostały osad zostanie umieszczony w gnieździe „Odrzuć”.
  • Po głosowaniu przez wszystkich worki są testowane za pomocą magnesu ziem rzadkich. Jeśli worek „Vote” zostanie przyciągnięty do magnesu, oznacza to, że zawiera przynajmniej jedną stalową kulkę (co najmniej jedna osoba zagłosowała za pozostaniem). Jeśli magnes nie przyciąga go, wszyscy głosowali za opuszczeniem.
  • Worek „Odrzuć” jest grupą kontrolną. Ponieważ został wstępnie wypełniony stalowymi kulkami, magnes zawsze powinien przyciągać go, niezależnie od głosowania.
  • Po ustaleniu wyniku każdy wyborca ​​odwiedza kabinę do głosowania po raz ostatni. Podczas tej ostatniej podróży mogą umieścić dowolną liczbę kulek dowolnego typu w jednym (lub obu) szczelinach.

Dzięki temu głosowanie powinno pozostać anonimowe i niemożliwe do śledzenia. Żetony do głosowania nie zawierają żadnych identyfikowalnych informacji, takich jak pismo odręczne, a wyborca ​​używa ich obu niezależnie od swojego wyboru. Podsłuchujący nie może określić twojego głosu, nasłuchując dźwięku kulki, ponieważ nie ma sposobu, aby dowiedzieć się, której torby wybrał wyborca ​​jako pierwszy. Magnes umożliwia sprawdzenie obecności głosowania „zostań” bez bezpośredniego sprawdzania samych głosów. Ostatnia podróż przez kabinę do głosowania dodaje wystarczająco dużo przypadkowego szumu do danych, że pierwotny głos zliczony będzie całkowicie niemożliwy do odzyskania przez tego, kto zburzy kabinę do głosowania.

Jedyną informacją, która wycieka z procesu, jest siła przyciąganie między magnesem a zawartością torby. Słabsza atrakcyjność oznacza mniej głosów „pozostających”. Jest to dopuszczalny poziom wycieku z kilku powodów. Po pierwsze, siła przyciągania nie jest czymś, co ludzie mogą oszacować bez specjalnego sprzętu. Co być może ważniejsze, siła przyciągania będzie się znacznie różnić w zależności od sposobu ułożenia granulek w worku (tj. Silniejsze przyciąganie, gdy bliżej magnesu). Ta nieprzewidywalność powinna dodać wystarczająco duży margines błędu do wszelkich domysłów liczby głosów, aby były one bezwartościowe.

Wadą jest to, że ta procedura może działać dla rodziny, ale może być trudna, jeśli liczba głosujących również wzrośnie. duży. Pojedynczy metalowy granulat zmieszany z dużą liczbą plastikowych granulek może zostać pominięty, chyba że masz nieracjonalnie silny magnes.

To jest bardzo złożona odmiana schematu „[blackball] (https://en.wikipedia.org/wiki/Blackballing)”.
@schroeder - To podstawowa idea.Dodatkowa złożoność polega tylko na zapewnieniu żądanej anonimowości i maskowaniu sumy głosów.
thieupepijn
2020-08-04 03:26:48 UTC
view on stackexchange narkive permalink

Myślę, że ten problem można rozwiązać w następujący prosty, mało zaawansowany technologicznie sposób. Daj każdemu wyborcy dwa kamienie, ciężki kamień oznaczający tak i lekki kamień oznaczający nie. Głosowanie odbywa się poprzez umieszczenie jednego ze swoich kamieni w pływającym obiekcie. Obiekt tonie tylko wtedy, gdy wszyscy wyborcy wrzucą swój ciężki (tak) kamień do unoszącego się obiektu.

Musiałbyś sprawić, by skały były wizualnie identyczne (albo ktoś znałby dotychczasowy status głosowania).Następnie musisz zablokować pływający obiekt, aby zanurzenie się nie zmieniło (dając wskazówkę na temat poprzednich głosów).Wówczas wyborca nie może mieć możliwości dotknięcia zestawu, w przeciwnym razie mógłby sprawdzić wagi i mieć pojęcie o dotychczasowych głosach.
Wreszcie zanurzenie w oparciu o wszystkie ciężarki obecne w celu zanurzenia obiektu jest skomplikowane: jeśli masz niewielką różnicę między wagami, musisz być niezwykle precyzyjny z systemem (tylko niewielka różnica spowoduje zanurzenie).Jeśli różnice są duże, kilka lekkich obiektów może równać się jednemu ciężkiemu.
Lub po prostu daj każdemu identyczny pojemnik i dwa odważniki, 1 kg i 3 kg.Każdy dyskretnie umieszcza jeden z odważników w swoim kanistrze, a następnie wszyscy zbierają się i umieszczają je po jednej stronie zestawu z łuskami.Po umieszczeniu przez wszystkich kanistrów, po drugiej stronie umieść ciężarek o masie 3 n - e kg dla małego e.Określ wynik.Usuń odważnik 3n kg, a następnie pozwól każdemu uczestnikowi wyjąć swój pojemnik.
To jest po prostu odmiana schematu „[blackball] (https://en.wikipedia.org/wiki/Blackballing)”.
@Schroeder Nie sądzę, żeby to była odmiana schematu blackball.W schemacie blackball znana jest (dokładna) liczba głosów pozytywnych i negatywnych.Coś, czego OP wyraźnie nie chce.
HiddenWindshield
2020-08-04 04:43:02 UTC
view on stackexchange narkive permalink

Weź trochę sklejki, trochę małego filcu (lub innych miękkich, cichych) kulek, których nie da się odróżnić od siebie, i kilka wkrętów do drewna. Zbuduj skrzynkę z dwoma otworami z przodu, jednym oznaczonym „Wyjdź”, a drugim „Zostań”. Demontaż musi być trudny, aby zapobiec manipulowaniu, więc nie marnuj śrub. Każdy dołek prowadzi do pochylni, która będzie umieszczać kulkę na dnie pudełka, jednak otwór „Stay” ma wycięcie wielkości jednej piłki. Przymocuj skrzynkę do ściany (aby nikt jej nie przechylił). Skonfiguruj „kabinę do głosowania” z arkuszy lub czegoś dookoła, aby nikt nie widział głosu innej osoby, i ogranicz czas, jaki każda osoba spędza w kabinie, do czasu wystarczającego na umieszczenie piłki w dołku.

Jeśli ktoś włoży piłkę do dołka „Stay”, ta piłka wpadnie do rowka. Każda kolejna kula wyborcy „Zostań” potoczy się po wycięciu (podobnie jak żółta kulka w tym filmie; może być konieczne trochę dostrojenia, aby upewnić się, że inne piłki toczą się tak, jak powinny) i spadają na dno, tak samo jak głosy „Wyjdź”. Gdy wszyscy będą już mieli szansę zagłosować, zdemontuj pudełko i zobacz, czy w wycięciu jest piłka.

To jest po prostu odmiana schematu „[blackball] (https://en.wikipedia.org/wiki/Blackballing)”.
@schroeder W głosowaniu „blackball” każdy może zobaczyć, ile głosów jest negatywnych.PO wymagał, aby nikt nie wiedział, ile osób głosowało negatywnie, tylko czy przynajmniej jedna osoba głosowała negatywnie.
Zakładasz stosunek wyborców do piłek 1: 1.
@schroeder system blackball ujawnia informacje, jeśli tylko jedna osoba głosowała za pozostaniem - wiedzą, ile czarnych piłek włożyła, więc jeśli widzą, że wielu z nich wie, że są jedynymi, którzy głosowali na nie.To rozwiązanie sprytnie pozwala uniknąć tego problemu.
Dietrich Epp
2020-08-04 22:41:13 UTC
view on stackexchange narkive permalink

Można to sprowadzić do problemu z kryptografami restauracyjnymi.

Protokół jest stosunkowo prosty.

  1. Zdobądź trochę kości do generowanie jednakowych liczb z zakresu 0..M-1.

  2. Ułóż wszystkich w kółko, tak aby byli obok dwóch osób: jedna po lewej, a druga do prawo.

  3. Każdy spotyka się ze swoimi partnerami i generuje wspólny sekret, jednolitą liczbę z zakresu 0..M-1. Każda osoba ma dwa wspólne sekrety, ponieważ jest sparowana z dwiema osobami.

  4. Każdy wychodzi sam i generuje osobisty sekret, również jednolitą liczbę z zakresu 0 ..M-1.

  5. Każdy podał numer na kartce papieru.

    • Jeśli zagłosują pozostań , podają swój osobisty tajny numer.

    • Jeśli zagłosują na zostań , zgłaszają lewy tajny minus właściwy sekret, zredukowane modulo M.

  6. Wszystkie głosy są sumowane i zmniejszane modulo M. Jeśli wszyscy głosował za pozostaniem, to wynik wynosi 0, ponieważ wszystkie wspólne sekrety pojawią się raz jako pozytywne, a raz negatywne. Jeśli ktoś zagłosował za opuszczeniem, wynikiem jest jednolita liczba losowa z zakresu 0..M-1.

A więc

  • Jeśli wszyscy uczestnicy zagłosują „odejdź”, wynikiem będzie „odejdź”.

  • Jeśli którykolwiek z uczestników zagłosuje na „zostań”, wynikiem będzie „wyjdź” z prawdopodobieństwem 1 / M, a inaczej „zostań”.

„urlop”, który nie gwarantuje, że wszyscy będą chcieli wyjechać, nie jest dobrym rozwiązaniem.Byłoby to użyteczne na odwrót - gdyby „pozostanie” miało szansę zostać wygenerowane przez głosowanie na „urlop”, ale „wyjazd” zawsze oznaczał, że każdy chce odejść.
@RobWatts: To jest błędna analiza.Wszystkie systemy fizyczne mają niezerowe prawdopodobieństwo uzyskania nieprawidłowego wyniku - więc * zawsze * możliwe jest uzyskanie fałszywego wyniku „wyjścia”, niezależnie od zastosowanej techniki.To rozwiązanie nie różni się, ale zmusza cię do ilościowego określenia swojej tolerancji na błędny wynik z góry, wybierając M.
Nie zgadzam się z twoją ponurą miną.Twoja odpowiedź ma taki sam problem, że daje niepoprawny wynik (ludzie zawsze mogą popełnić błąd podczas wykonywania obliczeń), więc masz ten poziom błędu * oprócz * 1 / M prawdopodobieństwa awarii samego systemu.W rzeczywistości wraz ze wzrostem M zwiększa się ryzyko błędu ludzkiego, więc wysiłki mające na celu zmniejszenie tolerancji błędu mogą w rzeczywistości pogorszyć sytuację.
@RobWatts: Banalny problem z trywialnymi rozwiązaniami - głosowanie odbywa się wielokrotnie.Wszystkie systemy mają ten problem, wszystkie systemy mają to rozwiązanie.W tej dyskusji nie ma nic, co byłoby specyficzne dla mojej odpowiedzi.
Artimithe55
2020-08-04 00:41:48 UTC
view on stackexchange narkive permalink

Pytasz o system, który wyświetla V = v (1) AND v (2) AND ... AND v (n) gdzie v (i) to głos binarny tej samej osoby. Zgodnie z prawem DeMorgan, V = NOT W , gdzie W = w (1) OR w (2) OR ... OR w (n) i w (i ) = NIE v (i) . Dlatego możemy przeformułować pytanie, aby było prostsze. Szukamy tylko systemu, który może odpowiedzieć, czy:

Czy spośród N osób, które głosowały, przynajmniej jeden głosował na Nie?

To wynika z intuicji ; jeśli wymagasz jednomyślnej zgody, to jak tylko jedna osoba wyrazi sprzeciw, nie ma znaczenia, jakie są pozostałe głosy. Innymi słowy, prosisz o anonimowy system weta.

Można to wdrożyć na wiele sposobów.

  • Elektroniczny przełącznik przyciskowy (oznaczony jako „naciśnij, aby pozostać w kulcie ”) w zamkniętym pomieszczeniu. System uruchamia się w stanie 0, a naciśnięcie przycisku wprowadza stan 1. Po tym, jak wszyscy mieli okazję wejść do pokoju i potajemnie nacisnąć przycisk, urządzenie jest sprawdzane, aby sprawdzić, czy ktoś to zrobił.
  • A odmiana powyższego: przycisk B w pomieszczeniu, który tylko zamyka obwód i S na zewnątrz pomieszczenia, gdzie każdy może widzieć. Oba są podłączone do lampki, która zapala się tylko po naciśnięciu obu przycisków. Na początku S jest wyłączane, a B nie jest naciskane. Wszyscy obserwują S, aby upewnić się, że nie zostało przedwcześnie dotknięte, i wchodzą do pokoju, aby na zmianę, ewentualnie naciskając B. Gdy wszyscy skończyli, odwracają S razem, aby zobaczyć, czy B został naciśnięty podczas głosowania. Możesz nawet mieć wiele pokoi, każdy z własnym B podłączonym do tego samego urządzenia, dzięki czemu głosowanie może odbywać się jednocześnie - w ten sposób nie można spiskować przeciwko jednemu wyborcy i odwrócić S zaraz po tym, jak zagłosują.
  • Wersja mechaniczna w formie pudełka z oznaczeniem w środku. Mały kawałek papieru kładzie się dokładnie na markerze, a pudełko jest zamknięte. Każdy wyborca ​​ma szansę wejść do zamkniętego pokoju i potrząsnąć pudełkiem. Gdy wszyscy skończyli, pudełko jest otwierane, aby sprawdzić, czy papier się przesunął.
  • Bardziej solidna wersja powyższego, z wieloma czarno-białymi kartkami ułożonymi w dwa równe stosy (potrząśnięcie pudełkiem mogłoby je pomieszać ).
Wariant łatwy do wykonania: kup puszkę piwa.Każda osoba po kolei wchodzi do pokoju i potrząsa puszką piwa, jeśli chce zagłosować na „nie”.Na koniec otwórz puszkę piwa.Jeśli rozpyla się wszędzie, ktoś zagłosował na nie.W przeciwnym razie jest jednogłośnie tak.
@KenShirriff Haha, to jest dobre!Chociaż możesz odłączyć puszki, które zostały wstrząśnięte, aby nie przepełniły się po otwarciu, jeśli ktoś zna sztuczkę, może zawetować weto.
Podoba mi się pomysł na potrząsanie pudełkiem, ale jak powstrzymać ludzi przed (A) otwarciem pudełka, gdy jest ich kolej, i (B) usłyszeniem dźwięku trzęsącego się pudełka?
@shieldgenerator7 {A} Plomba zabezpieczająca przed naruszeniem;i / lub zamknij skrytkę i klucz jest widoczny na zewnątrz podczas głosowania.{B} Miej alternatywne pudełko do wstrząsania z jednolitą zawartością.Arti: Alternatywa dla papieru (lub piwa): Dwie warstwy różnokolorowego piasku.Nie możesz oderwać piasku.
jez
2020-08-04 09:38:36 UTC
view on stackexchange narkive permalink

Zacznij od możliwego do zidentyfikowania zwykłego tekstu: Zerwijmy. To nie ty, to my wszyscy.

Każda osoba generuje losowy wzorzec bitów (jednorazowy pad) i utrzymuje go w tajemnicy. Rozłóż wiadomość wokół stołu, a każda osoba XOR-uje ​​ją za pomocą jednorazowej podkładki. Osoba siedząca za Tobą będzie jedyną, która zobaczy Twój wynik.

Kiedy wrócisz na początek koła, obejdź go jeszcze raz w tej samej kolejności. Tym razem, jeśli chcesz zagłosować na „tak”, XORuj wiadomość tym samym wzorem, co wcześniej. Jeśli chcesz zagłosować na „nie”, użyj innego losowo wygenerowanego wzorca (ponownie zachowaj to w tajemnicy).

Pod koniec drugiego obwodu zastosuj się do otrzymanego komunikatu : albo rozpadnij się, albo sdfljhsdfhgvsladfj. W tym drugim przypadku nikt nie będzie wiedział, ilu wyborców na „nie” było odpowiedzialnych za niepowodzenie w rozszyfrowaniu wiadomości.

Jest to bardzo podobne do odpowiedzi Nicka Bonilli, z tym wyjątkiem, że klucze nie są generalnie udostępniane. Jeśli członkowie rodziny są od A do Z: Bob będzie mógł porównać pierwsze wyjście Alicji z oryginalnym tekstem jawnym, a więc będzie mógł wywnioskować pierwszy sekret Alicji, ale nie będzie wiedział, czy jest to to samo, co drugi sekret Alicji (tylko Zach zna drugie wejście Alicji). Yolanda będzie mogła porównać ostatnią publiczną wiadomość z jej własnym drugim wyjściem, a więc będzie w stanie wywnioskować drugi sekret Zacha, ale nie będzie wiedziała, czy to to samo, co pierwszy sekret Zacha (tylko Alice widziała pierwsze wyjście Zacha). W przypadku N = 3 Bob i Yolanda to ta sama osoba, ale nie jestem pewien, czy to mu pomoże.

A co, gdy Charlie pyta Alice, jaki sznur wręczyła Bobowi po raz drugi?To rozwiązanie działa tylko wtedy, gdy nie ma współpracy między stronami, co nie jest ograniczeniem, które można łatwo założyć.
@Sneftel - Tak, to jest problem z wieloma rozwiązaniami „łańcuchowymi”.Jeśli Bob otrzyma jakiekolwiek informacje od Alice, zasadniczo nie jest to prywatne - ponieważ każdy może zapytać Alice, co mu wręczyła.
Tak, kombinacje ludzi mogą łączyć się na pojedyncze osoby.Można to poprawić, czyniąc ludzi anonimowymi (wszyscy spotykają się w przedpokoju, zakładają identyczne kultowe szaty i maski, trochę się kręcą, a następnie zapisują do sali wyborczej).Ale wtedy mechanizm anonimizacji to TTP (którego nie możemy właściwie uniknąć - nawet zakryte kartki papieru są TTP).
Powiedziałbym również, że musimy gdzieś założyć * pewne * ograniczenie możliwości nadawania post-hoc.W przeciwnym razie jest to trywialnie nierozwiązywalne: wyborca „nie” może po prostu poprosić wszystkich pozostałych wyborców „nie” o przedstawienie się, co prowadzi do tego samego sprzeciwu, który OP wskazał na N = 2, ale w przypadku wszystkich N.
@Kevin, ale za każdym razem, gdy próbujesz naradzić się, nie wiesz, czy otrzymana odpowiedź jest zgodna z prawdą
David Schwartz
2020-08-04 01:04:57 UTC
view on stackexchange narkive permalink
  1. Zadzwoń do liczby osób N.
  2. Każda osoba ma przypisany numer od 1 do N.
  3. Każda osoba tworzy losowy wielomian rzędu N, którego Y- punkt przecięcia z osią wynosi zero, jeśli chcą zagłosować na TAK lub którego punkt przecięcia z osią Y jest większy od zera, jeśli chcą głosować na NIE.
  4. Każda osoba rozwiązuje równanie swojego wielomianu dla dyskretnych punktów od X = 1 do X = N.
  5. Każda osoba przekazuje rozwiązanie dla każdej wartości całkowitej X od 1 do N osobie o odpowiednim przypisanym numerze.
  6. Każda osoba sumuje wszystkie przypisane jej liczby i ujawnia suma.
  7. Wynikowe ujawnione sumy są używane jako rozwiązania wielomianu N-rzędu przechodzącego przez odpowiednie punkty.
  8. Punkt przecięcia Y tego wynikowego wielomianu jest obliczany przy użyciu interpolacji Lagrange'a . (Lub inną wygodną metodę, jeśli N jest małe.)
  9. Jeśli punkt przecięcia z osią Y wynosi zero, wynikiem jest TAK. W przeciwnym razie jest NIE.

To działa, ponieważ suma dowolnej liczby wielomianów z zerowym punktem przecięcia z osią Y jest wielomianem z zerowym punktem przecięcia z osią Y. Żadna kombinacja uczestników mniejsza od nich wszystkich nie ma wystarczającej liczby punktów na dowolnym wielomianu, aby określić jego punkt przecięcia z osią Y, ale wynikową krzywą końcową, ponieważ każdy ujawnia swój sumaryczny punkt na tym jednym.

Potrzebujesz N punktów na Wielomian rzędu N w celu określenia punktu przecięcia z osią Y. Jedynym wielomianem w dowolnej grupie mniejszej niż wszyscy uczestnicy ma N punktów jest ostateczny wynikowy wielomian sumaryczny. Więc tylko jego punkt przecięcia z osią Y może być określony przez dowolny podzbiór grupy mniej niż wszystkie.

Spróbujmy na przykładzie z trzema osobami. Użyjemy Alice, Boba i Charliego. Będziemy mieć tylko głos Boba na NIE. Każdy wybierze losowy wielomian, który wymaga trzech punktów do rozwiązania, którego punkt przecięcia z osią Y wynosi zero dla TAK i niezerowe dla NIE.

Alicja ma 1. Głosuje na TAK. Jej wielomian to Y = 3 (X ^ 2) - 2 X
Bob ma 2. Głosuje na NIE. Jego wielomian to Y = 2 (X ^ 2) + X + 1
Charlie ma 3. Głosuje na TAK. Jego wielomian to Y = 3 (X ^ 2) - X

Zauważ, że Bob ma hasło „+1”, odkąd zagłosował na NIE. Wszyscy inni nie mają takiego terminu, więc ich krzywe mają zerowy punkt przecięcia z osią Y.

Alicja rozwiązuje teraz swój wielomian w punktach 1, 2 i 3.
Daje sobie 1, Bob an 8, a Charlie 21.

Bob rozwiązuje teraz swój wielomian w punktach 1, 2 i 3.
Daje Alice 4, samemu 11, a Charliemu 22.

Charlie rozwiązuje teraz swój wielomian w punktach 1, 2 i 3.
Daje Alice 2, Bobowi 10, a sobie 24.

Każdy z nich ujawnia teraz swoje sumy .
Alicja oblicza 1 + 4 + 2 i ujawnia 7.
Bob oblicza 8 + 11 + 10 i ujawnia 29.
Charlie oblicza 21 + 22 + 24 i ujawnia 67.

Teraz muszą rozwiązać krzywą przechodzącą przez punkty (1,7), (2,29) i (3,67), aby zobaczyć, jaki jest punkt przecięcia z osią Y. Rozwiązaniem jest Y = 8 (X ^ 2) - 2 (X) + 1.

Zauważysz, że to równanie jest sumą wybranych równań. Na końcu ma „+1” z powodu głosu Roberta. Tak więc wynik jest NIE, zgodnie z wymaganiami. Ale nikt poza Bobem nie może powiedzieć, na której krzywej znajduje się to „+ 1” (chyba że wszyscy spiskują przeciwko niemu).

Jest to niewielki wariant algorytmu JZSS (Joint Zero Secret Sharing). Patrz M. Ben-Or, S. Goldwasser i A. Wigderson, Completeness Theorems for Noncryptographic Fault-Tolerant Distributed Computations, Proceedings of the 20th ACM Symposium on the Theory of Computing, strony 1-10, 1988.

W jaki sposób gracze mogą sprawdzić, czy żaden złośliwy aktor nie wybrał ujemnego punktu przecięcia z osią Y?Załóżmy, że jestem pewien, że Joe chce odejść, a jego ulubiona liczba to 13. Jeśli wpiszę -13, mogę anulować jego głos.Albo przypuśćmy, że chcę zapobiec liczeniu, wprowadzając -1000.Co zrobią gracze, jeśli suma będzie ujemna?
Ponadto ujawnienie sumy danych wejściowych pozwala każdemu obliczyć sumę danych wejściowych * innych * graczy, co może spowodować wyciek informacji.W szczególności, jeśli tylko jeden gracz zagłosował pozytywnie, dowie się, że był jedynym.
@meriton Jeśli każdy robi to, co powinien i nikt nie chce odejść, wynik będzie zerowy.Jeśli ktoś zrobi to, czego nie powinien, lub ktoś chce odejść, wyniki nie będą zerowe.Przypuszczalnie osoby, które nie chcą wychodzić, będą postępować zgodnie z instrukcjami.Masz rację, że wszyscy oprócz każdego wyborcy mogą ujawnić, jak głosował ten jeden wyborca.Ale to prawda bez względu na wszystko i żaden algorytm nie może temu zapobiec.Jeśli wszyscy oprócz ciebie zostają, a ostatecznym rezultatem jest odejście, wszyscy inni mogą, pracując razem, wiedzieć, że głosowałeś za odejściem, ponieważ tylko ty nie spiskujesz.
Myślę, że źle zrozumiałeś moją drugą troskę.Nie martwię się, że wszyscy, pracując razem, mogą dowiedzieć się, na co głosował gracz.Obawiam się, że gracz, który głosuje „pozostanie”, może określić, czy był jedynym głosującym „pozostać”, w ten sposób ujawniając informacje, których nie można było wywnioskować z podjętej łącznej decyzji (o której gracz wiedział, że „pozostaje”, niezależnie odco głosowali inni).W przypadku kultystów wyobrażam sobie, że skończyłoby się to bardzo źle, gdyby kultysta odkrył, że wszyscy inni chcą odejść ...
Gracz, który głosował, nie może określić, ilu innych graczy pozostało, czy nie.Jedyną krzywą, na której mają wystarczająco dużo punktów, jest krzywa sumy.Mogą odjąć swój własny głos, ale osoba, która głosuje, zawsze może to zrobić.Jeśli wynik pozostanie, wszyscy głosowani pozostają.Jeśli jest to urlop, ktoś inny zagłosował za opuszczeniem.Być może obawiasz się, że ktoś, kto oddał głos, może powiedzieć, czy był jedyną osobą, która głosowała za wyjściem?(Można to naprawić, ale to sprawia, że algorytm jest znacznie bardziej złożony).
Jeśli wynik pozostaje, przynajmniej jedna osoba musiała zagłosować na miejscu.To nie znaczy, że każdy ma!
@meriton Terminologia dotycząca pozostania / urlopu może być dla mnie myląca.Trzymajmy się tak / nie.Tak, musi być jednomyślne.Jedynym interesującym przypadkiem jest sytuacja, w której ostateczny wynik to nie, w przeciwnym razie wszyscy wiedzą, że i tak wszyscy głosowali na tak.Kiedy pojawia się nie, jedyną rzeczą, z której to wycieka, jest to, że ktoś, kto głosował na nie, może stwierdzić, czy był jedynym głosem nie, odejmując swoją krzywą od powstałej krzywej.Nic więcej nie przecieka.Tak, wyborcy nie potrafią powiedzieć, ile głosów nie było, tylko że był przynajmniej jeden.Żaden wyborca nie może powiedzieć, kto jeszcze zagłosował na nie, po prostu czy nie było co najmniej jednego głosującego.
Dokładnie, a ten przeciek jest sporym problemem dla naszych kultystów, ponieważ wyborca „nie” może się dowiedzieć, że nie było innego głosu „nie”, czyli wszyscy inni głosowali na tak!W kategoriach kultystów oznacza to, że kultysta, który chce pozostać, dowiaduje się, że wszyscy inni chcą odejść!
Pozwól nam [kontynuować tę dyskusję na czacie] (https://chat.stackexchange.com/rooms/111429/discussion-between-david-schwartz-and-meriton).
CSM
2020-08-04 16:38:24 UTC
view on stackexchange narkive permalink

Są dwa puste torby z tkaniny i waga. Pierwsza torba przedstawia sposób głosowania, druga jako czek.

Każda osoba otrzymuje dwa krążki z gliny lub drewna o nieco innej wadze. Cięższy dysk reprezentuje urlop. Dysk do głosowania umieszczają w jednej torbie, a drugą w drugiej. Następnie worek jest sprawdzany pod kątem ciężaru. Szalka wyważa się, jeśli wszystkie głosy są za urlopem, ale pozostanie całkowicie opuszczona, jeśli chociaż jeden jest na pozostanie.

W razie potrzeby obie torby można zważyć razem w stosunku do innego ciężaru, aby upewnić się, że nie ma żadnych skulduggerów.

Po sprawdzeniu głosowania obie torby są niszczone w pożarze.

Jest to identyczne z powyższą odpowiedzią „rock”.
Renan
2020-08-05 00:08:34 UTC
view on stackexchange narkive permalink

Zainspirowałem się odpowiedzią Qmppu852, spróbuję to uprościć:

Zdobądź generator i naprawdę długi kabel, 10 metrów (to ~ 30 stóp ) powinno wystarczyć.

Zbuduj wiele kontrolerów, po jednym dla każdego członka rodziny. Każdy kontroler będzie miał dwa przyciski: jeden jest atrapą, która nic nie robi. Drugi przycisk służy do zamykania obwodu. Oba przyciski są wyraźnie oznaczone, więc wszyscy wiedzą, który jest który.

Połącz kontrolery kablem. Ponieważ wszystkie są połączone szeregowo z generatorem, obwód jest zamknięty tylko wtedy, gdy wszystkie nie-atrapy przycisków są wciśnięte jednocześnie.

Kiedy nadchodzi czas głosowania, wszyscy siedzą w kółku. Każdy członek rodziny trzyma kontroler na plecach i naciska przycisk. W ten sposób każdy zobaczy, że wszyscy inni naciskają przycisk, ale nikt nie wie, które przyciski naciskają inni. Każdy wie tylko, który przycisk naciska.

Jeśli wszyscy naciśną nie-atrapy przycisku na swoim kontrolerze, obwód zamyka się. Możesz podłączyć żarówkę lub brzęczyk do obwodu, aby mogli zobaczyć, czy się włącza. Ale myślę, że fajniej jest, jeśli generator podaje około 50V, a sterowniki nie są izolowane. Jeśli wszyscy zagłosują na tak, wszyscy dostaną wstrząs.

Jeśli ktoś zagłosuje na nie, obwód się nie zamyka. Ale nikt nie wie, kto głosuje na nie. Aby jeszcze trudniej poznać głos wszystkich, mogli nosić rękawiczki, aby nie pozostawić odcisków palców na przyciskach. Mogą też nacisnąć oba przyciski przed głosowaniem, przed aktywacją generatora, aby zostawić odcisk palca na obu przyciskach.

Loren Pechtel
2020-08-06 00:25:48 UTC
view on stackexchange narkive permalink

Weź prosty kalkulator i wprowadź liczbę. Umieść go w sztywnym pudełku z otworem nad przezroczystym guzikiem. Umieść całość w innym pudełku z otworem z boku i kawałkiem materiału owiniętym wokół otworu.

Każdy sięga do zewnętrznego pudełka i wciska coś - przezroczysty przycisk, aby zagłosować na nie, lub na inne miejsce do głosowania tak. Obserwator może być w stanie dostrzec ruch mięśni podczas naciskania, ale z pewnością nie może stwierdzić, czy faktycznie jesteś na przycisku.

Usuń kalkulator, zbadaj go. Jeśli nadal jest liczba, jednogłośnie tak.

shieldgenerator7
2020-08-04 19:52:19 UTC
view on stackexchange narkive permalink

Zagraj w grę telefoniczną. Ale z liczbami.

Niech ludzie usiądą w kręgu i niech jedna osoba zacznie. Wybierają losową liczbę od 1 do 1000 i trzymają ją w tajemnicy. Następnie szepczą ten numer do ucha osoby po swojej lewej stronie. Następnie ta osoba dodaje 1 do tej liczby, jeśli „nie”, i 100, jeśli „tak”. Ta osoba następnie szepcze nowy numer osobie po jej lewej stronie. Trwa to w kółko, wykonując 2-3 „okrążenia” wokół grupy. Ostatnia osoba, która otrzymała numer, zachowuje go w tajemnicy.

Nikt nie zna numeru startowego poza pierwszą osobą, ale wie, jaki numer powiedział osobie po swojej lewej stronie. Jeśli cyfra 1 i cyfra dziesiątki liczby, którą powiedzieli, i liczba, którą otrzymali, gdy pojawiła się ponownie, są takie same, to wiedzą, że wszyscy głosowali na tak. Jeśli to nie to samo, to wiedzą, że przynajmniej jedna osoba zagłosowała na nie.

Ważne jest to, że ponieważ nie znają numeru początkowego i nie ma określonego końca pętli, nie Nie wiem, kto głosował z jakim numerem. Teraz wszyscy wiedzą, czy głosowanie jest jednomyślne, ale nikt nie wie, kto głosował na co.

EDYCJA: Zamiast dodawać 100 za tak i 1 za nie, wybierz losową liczbę od 1 do 5. Jeśli głosujesz tak , pomnóż go przez 100. Jeśli głosujesz „nie”, pomnóż go przez 1. Następnie dodaj tę liczbę do sumy bieżącej i przekaż tę sumę kolejnej osobie. To rozwiązuje problem wycieku liczby osób głosujących na tak lub nie.

To przecieka liczba głosów, na przykład jeśli liczba wróci o 501 większa niż na pierwszym okrążeniu, co oznacza, że 1 osoba zagłosowała na nie.
@BlakeWalsh Wiedziałem, że coś jest nie tak z moją odpowiedzią.dzięki za wskazanie mi tego.Wymyślę sposób, aby to poprawić.
@BlakeWalsh Myślę, że rozwiązałem problem
Toby Smith
2020-08-06 15:48:01 UTC
view on stackexchange narkive permalink

Skonstruuj pojemnik, do którego można wlać płyn, ale którego nie da się łatwo zaobserwować bez widocznych manipulacji. Coś w rodzaju nieprzezroczystego kanistra na paliwo, do którego przymocowana jest dysza.

Każdy ma szansę dodać klarowny płyn do pojemnika.

Każdy głosuje, będąc w stanie dodać trochę czerwony barwnik lub wlej trochę czerwonego do ścieku.

Na koniec pojemnik jest rozbijany i zawartość zostaje odkryta. Jeśli zawiera jakąkolwiek ilość czerwonego barwnika, głosowanie nie było jednomyślne.

jest to dokładnie to samo, co odpowiedź „sól” powyżej
Terry Maurel
2020-08-03 21:59:50 UTC
view on stackexchange narkive permalink

Ciekawy problem. Niska technika: osoba trzecia daje każdemu wyborcy dwie identyczne kartki papieru: jedną z napisem „tak”, a drugą z napisem „nie” (lub jakimś innym symbolem, 1/0, t / n itd.). to koniec zaangażowania strony trzeciej. Przechodzą do prywatnego obszaru, gdzie mogą potajemnie wybrać jedną kartkę papieru z żądaną odpowiedzią. Wszyscy wracają i jednocześnie oddają swój głos w urnie wyborczej, którą potrząsa się w celu losowania.

Chociaż teoretycznie może być możliwe określenie źródła głosów mniejszości, nawet do momentu pobrania próbki DNA z papieru, w prawdziwym świecie nawet najbardziej paranoicy mają pewne praktyczne ograniczenia i metody kontroli - np spalić karty do głosowania po zliczeniu.

Średnio zaawansowany technicznie: podłącz na stałe szeregowo przekaźnik / przerzutnik z przełącznikiem „tally”, który zamknie obwód, aby włączyć światło lub podobny wskaźnik. Jest tylko jeden przycisk głosowania, ukryty przed przyciskiem rejestrującym (np. W innym pokoju, pudełku itp.), Przycisk Tally jest publiczny, więc nie można go dotknąć bez świadków.

Gdy każdy będzie miał prywatną możliwość naciśnij (lub nie) przycisk głosowania, a następnie razem przełączają przełącznik, który zamknie obwód, jeśli przekaźnik / przerzutnik został wyzwolony. Innymi słowy, przestawienie przełącznika tally zamyka obwód tylko wtedy, gdy ktoś naciśnie przycisk głosowania. Ponieważ głosowanie jest prywatne, jest tylko jeden przycisk i działa w jednym punkcie w obwodzie (tj. Przekaźniku lub przerzutniku, który może być wyzwolony tylko raz), nie ma możliwości śledzenia kto wyzwolił głos.

Twoja sugestia dotycząca niskiego poziomu technologii to po prostu papierowa wersja schematu „[blackball] (https://en.wikipedia.org/wiki/Blackballing)”.Nie ma potrzeby korzystania z innej firmy.Twoja wersja Medium jest taka sama.


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 4.0, w ramach której jest rozpowszechniana.
Loading...