Elektroninis balsavimas

Naujas temas kurkite čia
User avatar
Svetimas
administratorius
Posts: 2733
Joined: 2004-05-25 19:04
Location: Vilnius

2020-05-02 20:20

Šiais koronoviruso laikais kai kuriose šalyse darosi aktualus rinkimų karantino sąlygomis klausimas, dėl ko dažniau pasigirsta įvairios optimistinės šnekos apie elektroninį balsavimą.

Dažnai girdžiu žmones kalbant (net ir iš IT srities), kad saugaus elektroninio balsavimo įgyvendinimas yra paprastas.
Pavyzdžiui, jog elektroniniam balsavimui galima kaip nors labai gudriai pasinaudoti kokia nors "blockchain" technologija ar pan.

Labai skeptiškai žiūriu į tokias "įgyvendinti paprasta" kalbas be konkrečių siūlomų ir išanalizuotų sprendimų.
Todėl pagalvojau, kad galbūt pavyktų šį klausimą pakvestionuoti giliau su "tobulai saugus elektroninis balsavimas yra paprastas" optimistais.

Tam, kad pramuštų skepticizmą elektroninio balsavimo klausimu, jo optimistai galėtų bent jau pradžioje labai konkrečiai pademonstruoti, kaip jie užtikrintų bent jau šias kol kas preliminarias elektroninio balsavimo sąlygas:

1. Anonimiškumas. Sąlyga, kad jokia trečia šalis negali identifikuoti už ką konkretus rinkėjas atidavė savo balsą.

2. Rinkėjų balsai teisingai įskaičiuojami. Kiekvieno rinkėjo balas teisingai (be dublių ir pan.) pasiekia galutinę rinkimų balsų suvestinę.

3. Balsų nesuklastojamumas, patikrinamumas. Pvz., jokia trečia šalis (net ir pats rinkimų organizatorius, valstybė ar pan.) negali niekaip suklastoti (pridėti iš nebalsavusių rinkėjų aibės ar pan., pakeisti ir t.t.) balsų, jų pasiskirstymo galutinėje rinkimų balsų suvestinėje.

4. Apribota balsų pirkimo galimybė. Pvz., jokia potenciali balsus pirkti galinti trečia šalis neturi jokios garantijos, kad konkretus rinkėjas tikrai nubalsavo taip, kaip norėjo potencialus balso pirkėjas.
User avatar
Seianus
senbuvis
Posts: 1428
Joined: 2018-11-16 23:57

2020-05-02 21:45

5. Balsus galima bet kada iš naujo „perskaičiuoti“ (verifikuoti), ir nėra realistiškų galimybių kažkam tiesiog pakeisti skaičiukus duombazėje.
User avatar
Vilius
emeritas
Posts: 5914
Joined: 2004-04-19 12:28

2020-05-02 23:49

Svetimas wrote:
2020-05-02 20:20
1. Anonimiškumas. Sąlyga, kad jokia trečia šalis negali identifikuoti už ką konkretus rinkėjas atidavė savo balsą.
Blockchaine yra išsaugomi tik adresai. Jei tie adresai rinkėjams bus išduodami randomiškai ir anonimiškai, tada atsekti nebus įmanoma.
Svetimas wrote:
2020-05-02 20:20
2. Rinkėjų balsai teisingai įskaičiuojami. Kiekvieno rinkėjo balas teisingai (be dublių ir pan.) pasiekia galutinę rinkimų balsų suvestinę.
Kadangi pats blockchainas yra viešai prieinamas, rinkėjas pats galės pasitikrinti, ar ten yra balsas su jo raktu, ir ar jis įskaičiuotas tik vieną kartą.
Svetimas wrote:
2020-05-02 20:20
3. Balsų nesuklastojamumas, patikrinamumas. Pvz., jokia trečia šalis (net ir pats rinkimų organizatorius, valstybė ar pan.) negali niekaip suklastoti (pridėti iš nebalsavusių rinkėjų aibės ar pan., pakeisti ir t.t.) balsų, jų pasiskirstymo galutinėje rinkimų balsų suvestinėje.
Jei bus pakankamai didelis decentralizuotas tinklas, tada suklastoti įrašų praktiškai nebus įmanoma.
Svetimas wrote:
2020-05-02 20:20
4. Apribota balsų pirkimo galimybė. Pvz., jokia potenciali balsus pirkti galinti trečia šalis neturi jokios garantijos, kad konkretus rinkėjas tikrai nubalsavo taip, kaip norėjo potencialus balso pirkėjas.
Dėl šitos dalies nesu tikras. Gal galima sugalvoti būdą, kad blockchaine matytųsi tik pats faktas, kad tas adresas balsavo, tačiau informacija už ką būtent buvo balsuota būtų užkoduota papildomai ir pasiekiama tik VRK?
User avatar
fizikanas
nenugalimas
Posts: 4826
Joined: 2004-05-27 19:45

2020-05-03 03:17

Vilius wrote:
2020-05-02 23:49
Gal galima sugalvoti būdą, kad blockchaine matytųsi tik pats faktas, kad tas adresas balsavo, tačiau informacija už ką būtent buvo balsuota būtų užkoduota papildomai ir pasiekiama tik VRK?
Jei prienama VRK, bus prieinama ir hakeriam. Jiems uztektu isilauzti i kurio nors VRK darbuotojo kompiuteri ar tiesiog ji papirkti. Balsu skaiciavimas turi buti atliekamas agreguotai, ty zinoma kiek is viso buvo balsuota uz kuri kandidata, taciau nezinoma, kas tokie uz ji balsavo.
Reikes visokiu gudriu kriptografijos triuku, kaip https://en.wikipedia.org/wiki/Zero-knowledge_proof
User avatar
Vilius
emeritas
Posts: 5914
Joined: 2004-04-19 12:28

2020-05-03 11:01

fizikanas wrote:
2020-05-03 03:17
Reikes visokiu gudriu kriptografijos triuku, kaip https://en.wikipedia.org/wiki/Zero-knowledge_proof
Lyg ir supratau, kaip veikia tas Zero-knowledge reikalas, bet nesupratau, kaip jį panaudoti rinkimams.. Gal gali pabandyt sudėlioti bendrą idėją, kaip tai turėtų veikti?

Aš tai galvojau apie tokį variantą. Kartu su balsavimo raktais žmogus gauna du hashus (čia paprasto taip/ne referendumo arba balsavimo tarp dviejų kandidatų atveju), ir tada priklausomai nuo rinkėjo pasirinkimo, į blockchainą įrašomas vienas arba kitas hashas. O tada jau balsų skaičiuotojai su savo raktais ar whatever iš tų hashu išskaičiuoja už ką buvo balsuota - viešai to neįmanoma sužinoti vien iš blockchaino. Ir plius balsų skaičiuotojai irgi nežino, kas už ką balsavo, nes prie adreso neparašyta, kuris konkrečiai čia yra rinkėjas. Čia aišku vis dar lieka pasitikėjimo balsų skaičiuotojais problema.. Bet anonimiškumas kaip ir užtikrinamas.
User avatar
Vilius
emeritas
Posts: 5914
Joined: 2004-04-19 12:28

2020-05-03 11:06

Manau, sunkiausia dalis yra apsisaugoti nuo to, kad nebūtų iš lempos prigeneruota adresų neegzistuojantiems rinkėjams. Nes po fakto, šito jau nebus galima tatikrinti. Tačiau ta pati problema yra ir su popieriniais biuleteniais - kai kuriose šalyse jie yra užpildomi iš anksto (už teisingą kandidatą), ir paskui sumetami urmu į balsadėžes.. Manau, čia vis tiek teks pasitikėti rinkimų organizatoriais.
User avatar
fizikanas
nenugalimas
Posts: 4826
Joined: 2004-05-27 19:45

2020-05-03 11:45

Vilius wrote:
2020-05-03 11:01
Lyg ir supratau, kaip veikia tas Zero-knowledge reikalas, bet nesupratau, kaip jį panaudoti rinkimams.. Gal gali pabandyt sudėlioti bendrą idėją, kaip tai turėtų veikti?
Bendros idejos neturiu, tik intucija sako, kad kazkas is sitos klases triuku galetu buti panaudota:

"Blockchains

It is proposed that ZKPs could be used to guarantee that transactions are valid despite the fact that information about the sender, the recipient and other transaction details remain hidden.[11]"
Vilius wrote:
2020-05-03 11:01
Aš tai galvojau apie tokį variantą. Kartu su balsavimo raktais žmogus gauna du hashus (čia paprasto taip/ne referendumo arba balsavimo tarp dviejų kandidatų atveju), ir tada priklausomai nuo rinkėjo pasirinkimo, į blockchainą įrašomas vienas arba kitas hashas. O tada jau balsų skaičiuotojai su savo raktais ar whatever iš tų hashu išskaičiuoja už ką buvo balsuota - viešai to neįmanoma sužinoti vien iš blockchaino. Ir plius balsų skaičiuotojai irgi nežino, kas už ką balsavo, nes prie adreso neparašyta, kuris konkrečiai čia yra rinkėjas. Čia aišku vis dar lieka pasitikėjimo balsų skaičiuotojais problema.. Bet anonimiškumas kaip ir užtikrinamas.
Cia siaubingas variantas. Ne tik, VRK zino uz ka butent tu balsavai, bet dar ir tu pats nezinai. Kas garantuos, kad hashas kuri issiuntei yra uz ta kandidata, kuri galvoji? :)
Vilius wrote:
2020-05-03 11:01
Manau, sunkiausia dalis yra apsisaugoti nuo to, kad nebūtų iš lempos prigeneruota adresų neegzistuojantiems rinkėjams. Nes po fakto, šito jau nebus galima tatikrinti. Tačiau ta pati problema yra ir su popieriniais biuleteniais - kai kuriose šalyse jie yra užpildomi iš anksto (už teisingą kandidatą), ir paskui sumetami urmu į balsadėžes.. Manau, čia vis tiek teks pasitikėti rinkimų organizatoriais.
Galima risti prie asmens kodo. Taip pat tie kas nebalsavo turetu galimybe pasitikrinti blockchaine ar ju balso tikrai nera.
User avatar
Seianus
senbuvis
Posts: 1428
Joined: 2018-11-16 23:57

2020-05-03 12:02

Vilius wrote:
2020-05-03 11:06
Manau, sunkiausia dalis yra apsisaugoti nuo to, kad nebūtų iš lempos prigeneruota adresų neegzistuojantiems rinkėjams. Nes po fakto, šito jau nebus galima tatikrinti. Tačiau ta pati problema yra ir su popieriniais biuleteniais - kai kuriose šalyse jie yra užpildomi iš anksto (už teisingą kandidatą), ir paskui sumetami urmu į balsadėžes.. Manau, čia vis tiek teks pasitikėti rinkimų organizatoriais.
O dėl ko biuletenių negalima patikrinti po fakto, sudeginami?
User avatar
Vilius
emeritas
Posts: 5914
Joined: 2004-04-19 12:28

2020-05-03 12:07

fizikanas wrote:
2020-05-03 11:45
Cia siaubingas variantas. Ne tik, VRK zino uz ka butent tu balsavai, bet dar ir tu pats nezinai. Kas garantuos, kad hashas kuri issiuntei yra uz ta kandidata, kuri galvoji? :)
VRK žino tik už ką balsavo X adresas. Jei adresai dalinami anonimiškai, tada net jie patys nežinos, kuris žmogus atitinka tą adresą. O kuris hashas atitinka kurį balsą žinosi tik tu ir VRK - visi kiti matys tik viešai paskelbtą faktą, kad tavo adresas balsavo, ir balso hashą (aišku, kiekvienam rinkėjui tie hashai irgi bus skirtingi).
fizikanas wrote:
2020-05-03 11:45
Galima risti prie asmens kodo.
Bet tada tie, kas žino tavo asmens kodą galės surasti ir tavo adresą, ar ne?
fizikanas wrote:
2020-05-03 11:45
Taip pat tie kas nebalsavo turetu galimybe pasitikrinti blockchaine ar ju balso tikrai nera.
Kas nebalsavo visada gali pažiūrėti, ar blockchaine nėra balso su jo adresu. Čia ne problema.
Last edited by Vilius on 2020-05-03 12:15, edited 1 time in total.
User avatar
Vilius
emeritas
Posts: 5914
Joined: 2004-04-19 12:28

2020-05-03 12:13

Seianus wrote:
2020-05-03 12:02
O dėl ko biuletenių negalima patikrinti po fakto, sudeginami?
Ant biuletenio gi nėra tavo vardo.. Tai kaip tu žinosi, kurie biuleteniai tikrai užpildyti rinkėjų, o kurie atspausdinti papildomai, ir sumesti masiškai į balsadėžę?

Ir ta pati problema yra su blockchaino adresais - kaip mes žinosim, kad jie atitinka realius rinkėjus, o nėra tiesiog sugeneruoti dirbtinai, ir jų vardu balsai surašomi į blockchainą rinkimų dieną? Nes kriptovaliutų atveju tokios problemos nėra - čia niekas nedraudžia vienam žmogui turėti kad ir šimtus adresų. Tuo tarpu rinkimų atveju labai svarbu užtikrinti, kad 1 rinkėjas = 1 vienas balsas.
User avatar
fizikanas
nenugalimas
Posts: 4826
Joined: 2004-05-27 19:45

2020-05-03 12:31

Vilius wrote:
2020-05-03 12:07
VRK žino tik už ką balsavo X adresas. Jei adresai dalinami anonimiškai, tada net jie patys nežinos, kuris žmogus atitinka tą adresą. O kuris hashas atitinka kurį balsą žinosi tik tu ir VRK - visi kiti matys tik viešai paskelbtą faktą, kad tavo adresas balsavo, ir balso hashą (aišku, kiekvienam rinkėjui tie hashai irgi bus skirtingi).
Nelabai suprantu, kaip tada vyktu adresu dalinamas? Iprasti biuleteniai atsiunciami pastu, kiek pamenu.
Vilius wrote:
2020-05-03 12:07
Bet tada tie, kas žino tavo asmens kodą galės surasti ir tavo adresą, ar ne?
Nebutinai, juk kalbam apie kriptografinius sprendimus. Pvz as zinau savo asmens koda, ir zinau savo biuletenio koda, juos sudejes paskaiciuoju hasha ir ji irasau i blockchaina. As galiu patikrinti, kad mano asmens kodo balsas iskaitytas, taciau niekas kitas, net zinodamas mano asmens koda nezinos, kuris is hashu yra mano. Tuomet reiktu dar vieno kriptografinio triuko, kad zinant hasha (turbut tai butu jau ne be hashas) butu galima patikrinti, kad jis padarytas is egzistuojancio asmens kodo, bet nebutu galima suprasti is kokio. Dar kazkoks triukas turetu leisti patikrinti, kad nera asmens kodu dublikatu per visa blockchaina. Kaip konkreciai tie triukai veikia nepasakysiu, bet matematine intucija sako, kad nera neimanoma :)

EDIT: praleidau, kad mano asmens koda ir biuletenio numeri zinos VRK, vadinasi galima sakyti zinos visi. Tai pilnam sprendimui dar reiketu kakzokios paslapties, kuria zinau tik as - kazkoks random sugeneruotas mano privatus raktas, kurio niekur nesiunciu.
Last edited by fizikanas on 2020-05-03 12:40, edited 1 time in total.
User avatar
Vilius
emeritas
Posts: 5914
Joined: 2004-04-19 12:28

2020-05-03 12:32

Netikrų adresų problemą gal galima išspręsti prieš pradedant balsavimą į blockchainą surašant visus validžius adresus, kurie buvo kažkam išduoti. Paskui bus galima patikrinti, ar tikrai tik tie validūs adresai balsavo. Taip pat tokiu atveju net pati VRK negalėtų klastoti balsų - nes visada būtų rizika, kad tikras rinkėjas ateis balsuoti su tuo adresu, ir aptiks, kad jo balsas jau užskaitytas.
Last edited by Vilius on 2020-05-03 12:43, edited 3 times in total.
User avatar
Vilius
emeritas
Posts: 5914
Joined: 2004-04-19 12:28

2020-05-03 12:37

fizikanas wrote:
2020-05-03 12:31
Nelabai suprantu, kaip tada vyktu adresu dalinamas? Iprasti biuleteniai atsiunciami pastu, kiek pamenu.
Paštu gautum užklijuotą vidinį voka (tipo kaip banko kortelės PINą), o jame būtų kvadratinis bar-kodas, kuriame užkoduotas tavo rinkėjo adresas ir balsų hashai. VRK žinotų tik tai, kad tau išsiuntė kažkurį voką - bet ne kuris konkrečiai adresas ten paslėptas.
fizikanas wrote:
2020-05-03 12:31
Nebutinai, juk kalbam apie kriptografinius sprendimus. Pvz as zinau savo asmens koda, ir zinau savo biuletenio koda, juos sudejes paskaiciuoju hasha ir ji irasau i blockchaina. As galiu patikrinti, kad mano asmens kodo balsas iskaitytas, taciau niekas kitas, net zinodamas mano asmens koda nezinos, kuris is hashu yra mano. Tuomet reiktu dar vieno kriptografinio triuko, kad zinant hasha (turbut tai butu jau ne be hashas) butu galima patikrinti, kad jis padarytas is egzistuojancio asmens kodo, bet nebutu galima suprasti is kokio. Dar kazkoks triukas turetu leisti patikrinti, kad nera asmens kodu dublikatu per visa blockchaina. Kaip konkreciai tie triukai veikia nepasakysiu, bet matematine intucija sako, kad nera neimanoma :)
Nežinau.. Daug čia tų "triukų" prirašei..
User avatar
Seianus
senbuvis
Posts: 1428
Joined: 2018-11-16 23:57

2020-05-03 12:40

Vilius wrote:
2020-05-03 12:13
Seianus wrote:
2020-05-03 12:02
O dėl ko biuletenių negalima patikrinti po fakto, sudeginami?
Ant biuletenio gi nėra tavo vardo.. Tai kaip tu žinosi, kurie biuleteniai tikrai užpildyti rinkėjų, o kurie atspausdinti papildomai, ir sumesti masiškai į balsadėžę?
O neregistruojama kas (ir therefore kiek) žmonių buvo atėję balsuoti kiekvienoje apygardoje? Jei ir galima papirkti visus kas ten dalyvauja ir taip pat stebėtojus ir t.t., vis tiek tai yra žymiai sunkiau, nei pareguliuoti kelias eilutes kompe.
User avatar
fizikanas
nenugalimas
Posts: 4826
Joined: 2004-05-27 19:45

2020-05-03 12:42

Vilius wrote:
2020-05-03 12:37
Paštu gautum užklijuotą vidinį voka (tipo kaip banko kortelės PINą), o jame būtų kvadratinis bar-kodas, kuriame užkoduotas tavo rinkėjo adresas ir balsų hashai. VRK žinotų tik tai, kad tau išsiuntė kažkurį voką - bet ne kuris konkrečiai adresas ten paslėptas.
Neskamba gerai, juk kazkas tuos vokus sudejo.. i vokus. Tai teoriskai galejo ir zinoti kokiu adresu issiunte.. koki adresa.
fizikanas wrote:
2020-05-03 12:31
Nežinau.. Daug čia tų "triukų" prirašei..
Niekas nesake, kad bus paprasta. Nejau manei, kad nezinodamas kriptografiniu triuku galesi isspresti sita problema? :)
User avatar
fizikanas
nenugalimas
Posts: 4826
Joined: 2004-05-27 19:45

2020-05-03 12:45

Seianus wrote:
2020-05-03 12:40
O neregistruojama kas (ir therefore kiek) žmonių buvo atėję balsuoti kiekvienoje apygardoje? Jei ir galima papirkti visus kas ten dalyvauja ir taip pat stebėtojus ir t.t., vis tiek tai yra žymiai sunkiau, nei pareguliuoti kelias eilutes kompe.
Pareguliuok jei gali man kelias eilutes bitcoin blockchaine ;)
User avatar
Vilius
emeritas
Posts: 5914
Joined: 2004-04-19 12:28

2020-05-03 12:45

Seianus wrote:
2020-05-03 12:40
O neregistruojama kas (ir therefore kiek) žmonių buvo atėję balsuoti kiekvienoje apygardoje? Jei ir galima papirkti visus kas ten dalyvauja ir taip pat stebėtojus ir t.t., vis tiek tai yra žymiai sunkiau, nei pareguliuoti kelias eilutes kompe.
Decentralizuotame blockchaine paredaguoti eilutes irgi nėra lengvą, nes visi iš karto pamatys, kad tavo blockchaino versija nesutampa su kitomis (su sąlyga, kad virtualių stebėtojų tinklas bus pakankamai didelis)
User avatar
Vilius
emeritas
Posts: 5914
Joined: 2004-04-19 12:28

2020-05-03 12:47

Aš irgi manau, kad jei per tiek metų niekas nesuklastojo bitkoino transakcijų (nors neabejoju, kad bandė - ir ne kartą), tai pati sistema turbūt yra pakankamai patikima. Tereikia ją adaptuoti rinkimamams, ir užtikrinti, kad tinklas būtų pakankamai decentralizuotas (pageidautina - be serverių su rusiškais IP adresais :)).
Post Reply