Elektroninis balsavimas
Š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.
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.
Blockchaine yra išsaugomi tik adresai. Jei tie adresai rinkėjams bus išduodami randomiškai ir anonimiškai, tada atsekti nebus įmanoma.
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ą.
Jei bus pakankamai didelis decentralizuotas tinklas, tada suklastoti įrašų praktiškai nebus įmanoma.Svetimas wrote: ↑2020-05-02 20:203. 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.
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?
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
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?fizikanas wrote: ↑2020-05-03 03:17Reikes visokiu gudriu kriptografijos triuku, kaip https://en.wikipedia.org/wiki/Zero-knowledge_proof
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.
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.
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]"
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:01Aš 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.

Galima risti prie asmens kodo. Taip pat tie kas nebalsavo turetu galimybe pasitikrinti blockchaine ar ju balso tikrai nera.Vilius wrote: ↑2020-05-03 11:01Manau, 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?Vilius wrote: ↑2020-05-03 11:06Manau, 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.
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).
Bet tada tie, kas žino tavo asmens kodą galės surasti ir tavo adresą, ar ne?
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.
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.
Nelabai suprantu, kaip tada vyktu adresu dalinamas? Iprasti biuleteniai atsiunciami pastu, kiek pamenu.Vilius wrote: ↑2020-05-03 12:07VRK ž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).
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.
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.
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.
Nežinau.. Daug čia tų "triukų" prirašei..fizikanas wrote: ↑2020-05-03 12:31Nebutinai, 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
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.
Neskamba gerai, juk kazkas tuos vokus sudejo.. i vokus. Tai teoriskai galejo ir zinoti kokiu adresu issiunte.. koki adresa.
Niekas nesake, kad bus paprasta. Nejau manei, kad nezinodamas kriptografiniu triuku galesi isspresti sita problema?

Pareguliuok jei gali man kelias eilutes bitcoin blockchaine

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)
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
).
