Wikipedista:Tompecina/Tajné hlasování

Toto je nástin možnosti, jak řešit problém tajného hlasování v prostřední MediaWiki systémověji než v CsArbComVote. Je to nezralé, takže následující text chápejte spíš jako koncepci než definitivní technické řešení.

  • Nebudou existovat žádní autorisovaní správci hlasování, založit hlasování smí kdokoli. Udělá to tak, že na stránku s hlasováním vloží pseudošablonu {{vote:init|yyyymmddhhmmss}}, yyyymmddhhmmss je čas konce hlasování v UTC. (sekundy se nezadávají --Tompecina 08:54, 5. 12. 2005 (UTC))
  • Dále zapíše před místo o hlasování pro každou variantu {{vote:mot|name}}, kde name je název návrhu např. "Kropáček správcem".
  • Tyto dvě šablony se rozvinou standardním způsobem - v jednotné, snadno odlišitelné barevné a typografické úpravě, např. v rámečku - Tajné hlasování, konec: 1. 12. 2005, 12:00 CET - a Návrh: Kropáček správcem.
  • Všechny řetězce by samozřejmě měly být vytvořeny jako položky v NS MediaWiki.
  • Hlasuje se čtyřmi vlnovkami následovanými znakem +, - nebo 0, tzn. pro, proti nebo zdržení. Ze stránky, jak se zobrazuje ve výstupu, ovšem hlas patrný nebude (a to ani hlasujícímu), pouze, kdo a kdy hlasoval. Při náhledu se hlas rozvíjet nebude, až při uložení. (to jsem při implementaci opustil, řeším elegantněji --Tompecina 17:33, 1. 12. 2005 (UTC))
  • Platný hlas se zobrazí např. Tajný hlas: Tompecina, 30. 11. 2005, 19:18 CET.
  • Před skončením hlasování by měl ten, kdo hlasování administruje, zkontrolovat, zda jsou všichni hlasující k účasti oprávněni, a hlasy neoprávněných odstranit. To lze automatisovat, ale pokládám to za zbytečné.
  • Po skončení hlasování se pseudošablona {{vote:mot|name}} rozvine do výsledku hlasování, např. Kropáček správcem - pro 17, proti 4, zdrželo se 1. Hlasy zůstanou, jak jsou, šablona init se může změnit na Tajné hlasování, skončeno: 1. 12. 2005, 12:00 CET.
  • Aby byla zajištěna bezpečnost systému, musí se hlasy ukládat do zvláštní tabulky - nejlépe šifrovaně - a každý hlas musí obsahovat kontrolní údaje, jako např. název hlasování (to se zkopíruje z názvu článku), jméno uživatele, timestamp, návrh, hlas atd. Pokud by se měl hlas vyhodnotit na jiném místě (nebo kdyby např. někdo změnil konec hlasování), zobrazí se Neplatný hlas.
  • Podobně se výsledky nebudou generovat pokaždé znovu, ale jen při prvním zobrazení stránky po skončení hlasování. Tím bude systém zajištěn proti pozdějším manipulacím, protože výsledky se spočítají jen jednou a dále budou zobrazovány z databáse.
  • Technicky to předpokládá dvě nové tabulky, tabulku hlasů a tabulku návrhů (ukládat se budou až po skončení hlasování), takže nic dramatického, a klíč pro symetrické nebo asymetrické šifrování hlasů.
  • Ty rámečky a barvy jsou jen pro příklad. Hlasy by navíc měly mít, pro další identifikaci a kontrolu, i svoje pořadové číslo: Tajný hlas č. 6714: Tompecina, 30. 11. 2005, 19:18 CET

Zpráva o postupu prací editovat

Implementace se zdá blížit zdárnému vyvrcholení. Zatím mám jen jeden problém, které neumím vyřešit:

Z důvodu bezpečnosti je nutné, aby se sčítání hlasů provádělo jen jednou a sečtené hlasy se ihned uložily do databáse. Když tento okamžik nastavím jako první zobrazení stránky s hlasováním po jeho skončení, může se stát, že vandalské zásahy (vymazání hlasů apod.) uskutečněné těsně před jeho ukončením nebude možno nijak odstranit. Budou sice viditelné v historii a vandala lze zablokovat, ale nové sčítání hlasů není z důvodu utajení, jak kdo hlasoval, přípustné, takže se musí celé takto napadené hlasování opakovat.

  1. Jedním řešením je stránku po skončení hlasování automaticky zamknout a sčítání hlasů provést až poté, co ji některý správce prohlédne, odstraní vandalské zásady (a také hlasy uživatelů, kteří nebyli k hlasování oprávněni) a odemkne ji. To se mi nezdá elegantní.
  2. Další řešení je sečíst hlasy až tehdy, když organisátor hlasování vymění šablonu vote:init za vote:tally se stejným heslem, které zadal do vote:init (a které se nezobrazovalo). To je zase poměrně těžkopádné.

Zatím tedy nevím, jak problém nejvhodněji řešit. --Tompecina 08:51, 5. 12. 2005 (UTC)


Záveěrečná zpráva editovat

Implementaci jsem po poněkud horečném úsilí dokončil (dám na web printscreeny), domnívám se, že s dostatečnou mírou bezpečnosti a transparentnosti, ale bohužel jsem dospěl k závěru, že je koncepčně chybné používat pro tajné hlasování šablony, protože pomocný aparát, který tajné hlasování vyžaduje, je nutně natolik složitý, že výsledek - jako celek - postrádá potřebnou eleganci a miru "uživatelské přátelskosti". To budete moci z printscreenů posoudit sami.

Přiznávám tedy, že jsem se mýlil, jestliže jsem toto řešení pokládal za vhodné. Myšlenky naprogramovat tajné hlasování se dlouhodobě nevzdávám, už kvůli investovanému úsilí, použiji k němu ale zcela jistě formuláře, nikoli šablony.

Pro hlasování o ArbComu doporučuji nyní proceduru veřejného hlasování, protože jiná dostatečně bezpečná methoda tajného hlasování není k disposici.

Úspěšný průkopník slepých uliček Tompecina 11:05, 9. 12. 2005 (UTC)