Wahlverfahren mit "Bitcoin-Technik"?

Während des Schreibens des letzten Beitrags kam mir die Idee, wie mittels der zugrundeliegenden "Bitcoin-Technologie", der sogenannten Blockchain (Blockkette) Wahlen digital durchgeführt werden könnten. Mensch müsste noch nicht mal zur Wahlkabine gehen, sondern könnte bequem von Zuhause aus wählen.

Hintergrund

Die Blockchain ist bei Kryptowährungen wie Bitcoin die Zusammenfassung von Transaktionen zu einem Block. In regelmäßigen Abständen wird ein neuer Block der Blockkette hinzugefügt. Geprüft werden die Blöcke durch das sogenannte Mining, bei dem zur Validierung entweder viel Rechenleistung aufgewendet wird (proof-of-work) oder alle Teilnehmer_innen des Netzes ihre sogenannte Münzzeit (Guthaben mal Zeit seit Besitz) verbrauchen und dadurch einen Block bestätigen (proof-of-stake). Mit beiden Ansätzen entsteht eine Blockkette, wobei die längste Blockkette immer die gültige ist.

Ein Blockchain-Wahlverfahren?

Ein Wahlverfahren, welches auf der Blockchain basiert, kann die Probleme der Wahlcomputer beseitigen (nicht-vertrauenswürdige Software, Prüfbarkeit) und Wählen bequemer machen, da theoretisch jede_r Bürger_in seinen_ihren eigenen Computer benutzen kann, also ganz bequem vom Wohnzimmer aus wählen kann.

Die folgende Beschreibung bezieht sich auf das Wahlsystem zu Bundestagswahlen/Landtagswahlen in der Bundesrepublik Deutschland. Prinzipiell ist das Verfahren jedoch nicht an ein Wahlsystem gebunden und könnte auch in anderen Staaten mit anderen Wahlverfahren verwendet werden.

Wie funktioniert's?

Vor der Wahl lädt sich jede_r Wahlberechtigte die Wählsoftware herunter, welche als freie Software aus einem Kryptowährungs-Client heraus erstellt werden sollte.  Damit ist die Software schonmal von unabhängigen dritten prüfbar und auch selbst aus dem Quellcode erstellbar.

Mit der Wahlsoftware erstellt jede_r Wahlberechtigte eine Empfangsadresse, die dem Bürgerbüro mitgeteilt wird. Sofern alle Voraussetzungen zur Wahl erfüllt sind (selbe Voraussetzungen wie bei Papierwahl) wird vom Bürgerbüro eine "Wahlbenachrichtigung" als ein oder mehrere Tokens an die Empfangsadresse geschickt. Jedes Token ist eine Stimme. Erst- und Zweitstimme können als unterschiedliche Token implementiert werden, sodass mit der Erststimme keine Partei und mit der Zweitstimme keine Person gewählt werden kann.

Um das Problem zu umgehen, dass ein_e Wahlberechtigte_r selber aktiv werden muss, um eine Stimme zu erhalten, kann alternativ die Wahlbenachrichtigung in Papierform in einem sicheren Brief verschickt werden. Damit meine ich Briefe, die von außen nicht lesbar sind, wie die Briefe, in denen die PIN einer neuen Bankkarte enthalten ist. In solchen Briefen können die Tokens (Stimmen), welche private Schlüssel darstellen, als QR-Code enthalten sein. In beiden Fällen muss dafür gesorgt werden, dass Tokens nicht mit Personen verknüpft werden können, da ansonsten Rückschlüsse auf das Wahlverhalten gemacht werden können.

Personen (Erststimme) und Parteien (Zweitstimme) veröffentlichen rechtzeitig vor der Wahl ihre registrierten Empfangsadressen, an die Stimmen gegeben werden können. Die Empfangsadressen werden zusätzlich von dem_der Bundeswahlleiter_in oder Landeswahlleiter_in veröffentlicht. Ungültige Stimmen sind alle Stimmen, die nicht an eine registrierte Adresse abgegeben wurden.

Eine Stimme ist nur am Tag der Wahl im Zeitraum zwischen Öffnen und Schließen der Wahllokale, welche für herkömmliche Papierwahl gedacht sind, möglich. Alle zu früh oder zu spät abgegebenen Stimmen sind ungültig. Dies wird bei der "Kryptowahl" über Zeitstempel im Netzwerk geregelt.

Anhand der Transaktionen und der Zieladresse kann zentral automatisch ausgewertet werden, welche Partei oder welche Person wie viele Stimmen bekommen hat. Die Prüfung der abgegebenen Stimmen erfolgt durch Mining in jedem einzelnen Wahlkreis.

Proof-of-work mit einem hohem Schwierigkeitsgrad scheint auf den ersten Blick eine Lösung zu sein, um einen "double-voting" Angriff (analog zu double-spending bei Kryptowährungen) zu vermeiden. Der Angreifer müsste mehr als 51% der Rechenleistung haben um seine Stimme doppelt abgeben zu können. Bei proof-of-stake könnte es ausreichen, wenn eine Partei oder eine Person sehr früh am Wahltag 51% der Stimmen bekommt, um die Wahl zu manipulieren.

Um den 51%-Angriff zu umgehen kann alternativ für jede Stimme nur eine Transaktion (eine Stimmabgabe) als gültig erklärt werden, womit der 51%-Angriff wohl unmöglich werden dürfte (?).

Die Prüfung der Wahlergebnisse kann von allen Bürger_innen selbst durchgeführt werden, indem die offizielle Blockkette nach der Wahl öffentlich zugänglich gemacht wird und jede_r Bürger_in selbst alle Stimmabgaben durch Mining neu prüft.

Schlussbemerkungen

Dies ist nur eine Idee für ein digitales Wahlverfahren. Problematisch dürfte die Verfolgbarkeit der Tokens (Wahlentscheidungen) sein. Können die Tokens mit Personen verknüpft werden, sind Rückschlüsse auf die getroffene Wahl möglich. Dies muss unbedingt verhindert werden.