AG Liquid Democracy/Dunkelzahns Urne
Inhaltsverzeichnis
Ein Verfahren zur Akkreditierung für online-unterstützte Abstimmungen
Dieser Text beschreibt das vorgeschlagene Verfahren im Überblick. In den Fußnoten werden Details ausgearbeitet, die teilweise bis auf die Ebene technischer Varianten hinunter gehen. Die dort unterbreiteten Vorschläge sind der aktuelle Arbeitsstand und die Leser sind herzlich dazu eingeladen, diese zu kritisieren und bessere Varianten vorzuschlagen.
Kurzbeschreibung
- Jeder Abstimmungsberechtigte erstellt sich ein asymmetrisches Schlüsselpaar [1]. Dieses Schlüsselpaar besteht aus einem privaten Schlüssel zum Verschlüsseln und einem öffentlichen Schlüssel zum Entschlüsseln.
- Er lädt den öffentlichen Schlüssel auf einen Server.
- Er legt die Prüfsumme [2] (Hash) des öffentlichen Schlüssels in einen Umschlag [3].
- Nach der Überprüfung seiner Stimmberechtigung (Akkreditierung) wird der Umschlag in eine Akkreditierungs-Urne gelegt.
- Nach Öffnung der Akkreditierungs-Urne wird eine Liste aller abgegebenen Prüfsummen erstellt und durch eine eigene Prüfsumme gesichert und veröffentlicht.
- Jeder Schlüssel in der Datenbank, dessen Prüfsumme in der Liste der abgegebenen Prüfsummen enthalten ist, gilt als verifiziert [4].
- Der private Schlüssel wird genutzt, um die abgegebenen Stimmen zu signieren [5].
- Die Überprüfung der Legitimität erfolgt mittels des zugehörigen öffentlichen Schlüssels.
Anmerkungen
- [1] http://de.wikipedia.org/wiki/Asymmetrisches_Kryptosystem
- [2] http://de.wikipedia.org/wiki/Pr%C3%BCfsumme
- [3] genauer: er druckt die Prüfsumme seines öffentlichen Schlüssels als QR-Code und als Text (0xFF) auf ein Formblatt und verpackt dieses in den Umschlag
- [4] Eine neue Datenbank aller verifzierten öffentlichen Schlüssel wird erstellt.
- [5] https://de.wikipedia.org/wiki/Digitale_Signatur
Eigenschaften
Durch dieses Verfahren wird sichergestellt, dass
- jeder akkreditierte Berechtigte an der Abstimmung teilnehmen kann, auch wenn er nicht physisch anwesend ist,
- jede verifizierte Stimme von einem Berechtigten abgegeben wurde,
- jeder Berechtigte nur einmal je Abstimmung abstimmen kann und
- die Stimmen nicht auf konkrete Personen (im Sinne eines bürgerlichen Namens) zurückgeführt werden können.
Anwendbarkeit
Wir schlagen dieses Verfahren vor, um
- mehr Piraten die Teilnahme an Parteitagen zu ermöglichen,
- Abstimmungen bei Online-Parteitagen durchzuführen und
- die Auszählung auf herkömmlichen und dezentralen Parteitagen zu verbessern und zu beschleunigen.
Detailbeschreibung (tbd)
Diskussion
Wie wird die Abstimmung selbst realisiert?
Habe hier versucht, das Verfahren mit einer Zeichnung darstellen. Mir ist es nicht gelungen, die Abstimmung selbst darzustellen, weil ich das Abstimmungsverfahren an dieser Stelle nicht verstanden habe. Kann jemand helfen? --Dromedar 15:24, 26. Jun. 2012 (CEST)
- Die Abstimmung ist auch nicht wirklich Teil des Verfahrens. Es geht lediglich darum verifizierte Pseudonyme zu schaffen. Mit diesen Pseudonymen kann dann so abgestimmt werden, wie man es von offenen Abstimmungen gewohnt ist.
- Als Nutzer schreibt man eine Nachricht "Ich stimme bei Abstimmung X für Option Y".
- Diese Nachricht signiert man dann mit dem eigenen privaten Schlüssel und schickt diese Nachricht an einen Abstimmunbgsserver, der die Abstimmnachrichten im Original öffentlich sammelt.
- Jeder kann dann alle Stimmzettel einsehen und prüfen, ob diese tatsächlich mit einem Schlüssel signiert wurden, dessen öffentlicher Schlüssel in der Liste der verifizierten Schlüssel enthalten ist. Dadurch kann jeder prüfen, dass jede Stimme zu einem stimmberechtigten Teilnehmer gehört (bzw. kann jede nicht berechtigte Stimmen selber aussortieren) ohne, dass irgendwer herausfinden kann, wem die Stimme konkret gehört.
Sichtbarkeit von Zwischenergebnissen
Der wahlleiter hat alle publickeys. Der kann vor abschluss der wahl das zwischenergebniss kennen. Das ist bei der papierurne nicht so, weil ausgezält wird erst nach ende der wahl. Übertragen aus der ML --Moonopool 15:57, 30. Mai 2012 (CEST)
Löschen nicht mehr Stimmberechtigter
Einmal eingereichte Schlüssel können keiner Person zugeordnet werden, daher ist es auch nicht möglich, Schlüssel zu entfernen, wenn die Person nicht mehr Stimmberechtigt ist. Die Online-Abstimmung muss also sehr kurz nach dem Einwurf der Schlüssel-Hashe in die Akkreditierungsurne statt finden. --Pluto/ML
- oder man muss satzungsmäßig festlegen: "stimmberechtigt ist, wer zum Zeitpukt der Akkreditierung...". Denn es könnte ganz unbeabsichtigt sein, Leute während der laufenden Abstimmperiode auszuschließen, weil dadurch praktisch die Pseudonymisierung ihres bisherigen Abstimmverhaltens nachträglich aufgehoben wird. --aus dem Mumble vom 1.6.2011
- besonders problematisch: Schiedsgerichte können Ordnungsmaßnahmen, welche das Stimmrecht entziehen, nicht mehr durchsetzen lassen, sobald die Akkreditierung gelaufen ist. Gibt es sonstige Fälle, in denen man das Stimmrecht verliert? Auch hier: kritisch. Tannador
- Die Schlüssel/Accounts gelten ja befristet; z.B. für ein Jahr. Dann entzieht man das Stimmrecht halt erst für die nächstfolgende Akkreditierung.Guru
Werden alle Stimmen auch gezählt?
Während der Wahl kann kaum kontrolliert werden, dass alle eingeschickten Stimmen auch in der Stimmen-Datenbank landen. Technische Fehler oder Absicht können den Empfang der Stimmen behindern, ohne das ein Wahlbeobachter oder auch der Stimmberechtigte selbst dies bemerken. --Pluto/ML
- 1) Dass während der Wahl nicht kontrolliert werden kann, ob meine Stimme gezählt wird, ist ähnlich wie bei einer Urnenwahl im Wahllokal. Hier muss man vertrauen haben, dass "die Wahlhelfer" das schon richtig machen. Und hier ist es halt "das System".
2) Jeder kann aber nach Abschluss der Wahl kontrollieren, ob seine Stimme ordentlich angekommen ist und, weil er die ganze Datenbank kennt, sogar die Auszählung selbst vornehmen und auf die Stimme genau auszählen. Dieser Zustand ist erheblich besser, als auf jedem physischen Parteitag. --Moonopool 08:00, 31. Mai 2012 (CEST)
Um die Kontrolle zu verbessern, könnte die Stimmen-Datenbank schon während der Wahl öffentlich einsehbar gemacht werden. Dann allerdings würde jeder sehen, wie die anonymen Anderen abgestimmt haben. Entweder die Stimmen-Datenbank oder die Schlüssel-Datenbank dürfen also erst nach dem Wahlgang veröffentlich werden.
- Sollte zur Entschärfung von (1) oben unter Aufrechterhaltung der Vorteile von (2) das Verfahren nicht lieber um ein Quittungssystem erweitert werden, damit der Abstimmende beweisen kann, dass er eine Stimme abgegeben hat, wenn er sie nach der Abstimmung nicht in der Urne findet? Das wäre wiederum besser als z.B. bei einer Wahllokal-Wahl, wo ich ja keine Chance habe, all diese Sicherheiten zu erreichen. --Moonopool 08:00, 31. Mai 2012 (CEST)
- Sehe ich genauso. Der Server, der die Wahlzettel sammelt, kann ja jede Eingegangene Stimmen signieren und wieder zurückschicken. Falls die eigene Stimme fehlt, kann man dann anhand der Signatur beweisen, dass man aber die Stimme eingeschickt hat. Ein betrügischer Wahlserver läuft somit in die Gefahr nachweisbar aufgedeckt zu werden. In so einem Fall müsste dann die Wahl wiederholt werden und der Betreiber des Wahlservers wird gehen müssen - so ein Risiko wird kein Wahlmanipulatör eingehen wollen. --Wobble 10:27, 31. Mai 2012 (CEST)
Mehrere Schlüssel
Um dennoch mehr als eine Wahl zu ermöglichen, könnten die Stimmberechtigten auch mehrere Schlüssel einreichen, für jeden Wahlgang einen Schlüssel, wobei immer erst nach dem Wahlgang die Schlüssel-Datenbank mit den Schlüsseln für diesen Wahlgang veröffentlich würde.
- Bisher war nur über Abstimmungen geredet, über eine Anwendung bei Wahlen müsste man gesondert diskutieren. Formuliert man obige Anmerkung über Abstimmungsläufe, so gilt: Derselbe Schlüssel kann für mehrere Abstimmungsläufe und auch für mehrere Abstimmungen verwendet werden. Das System ist dann "pseudonym" in dem Sinne, dass man sehen kann, dass die gleich Person in zwei Abstimmungen abgestimmt hat und wie, aber man bekommt nicht raus, wer es ist. Inwieweit das der Absicht von BDSG §3a ans Schienbein tritt, kann ich nicht beurteilen. --Moonopool 08:00, 31. Mai 2012 (CEST)
- Anregung: in die Verfahrensbeschreibung aufnehmen, dass alle Abstimmungen im vorgesehenen Zeitfenster mit demselben Schlüsselpaar durchgeführt werden. --Moonopool 08:10, 31. Mai 2012 (CEST)
Integrität der Schlüssel-Datenbank
Um die Integrität der Schlüssel-Datenbanken sicher zu stellen, sollte nach Ende der Akkreditierung, die Datenbank mit einem Hash versehen und dieser Veröffentlicht werden, so kann jeder Kontrollieren, ob die Datenbank zum Zeitpunkt der veröffentlichung die gleiche ist, wie zum Zeitpunkt des Endes der Akkreditierung. --Pluto/ML
- ist bereits Teil der Verfahrensbeschreibung, Punkt 5 --Moonopool 08:00, 31. Mai 2012 (CEST)
Spezifikation und Referenzimplementierung
Wegen Problemen mit der xmldesig Spezifikation, habe ich das Protokoll von XML zu einem einfachen selbstgestrickten Format umgestellt. Ich denke, dass neue Format ist einfacher zu verstehen als das alte. Man muss schließlich nicht mit Kanonen auf Spatzen schießen. --Wobble 09:38, 27. Jul. 2012 (CEST)
- Die Referenzimplementierung gibts hier: https://github.com/ArneMueller/DunkelzahnsUrne
- Die Referenzimplementierung deckt momentan nur die Client-Seite ab.
- Von Serverprogrammierung habe ich fast keine Ahnung - wär cool, wenn das jemand anderes macht. --Wobble 23:05, 1. Jun. 2012 (CEST)
- Dunkelzahn baut grad ne GUI https://github.com/Dunkelzahn/DunkelzahnsUrne
- Die Protokoll-Spezifikation, die diese Referenzimplementierung erfüllt, ist mittlerweile in einem Zustand, dass man darauf aufbauen kann. Kleine Änderungen können aber noch stattfinden. --Wobble 09:38, 27. Jul. 2012 (CEST)
- Momentaner Stand der Spezifikation: https://github.com/ArneMueller/DunkelzahnsUrne/tree/master/doc (in LateX geschrieben)