E-Voting System auf Grundlage der Blockchain Technologie

Kurzinfo

Themenbereich/r

Blockchain

Kryptografie

Softwareentwicklung

Studierende/r

Gerlach Jan

Dozent

Denzler Alexander

Experte

Schmidlin Diego

Wirtschaftspartner

Stadtverwaltung Zug

Aufgabenstellung

Die Schweiz ist eines der wenigen Länder, in dem das Volk direkten Einfluss auf die Politik nehmen kann. Mehrmals im Jahr finden Volksabstimmungen und Wahlen statt, bei denen jeder stimmberechtigte Bürger seine Stimme abgeben kann. Die bisherigen Systeme zur elektronischen Stimmabgabe sind oftmals komplex aufgebaut und für den Anwender kaum nachvollziehbar. Wer sich etwas mit der Blockchain beschäftigt vernimmt des Öfteren, dass sich mit dieser neuartigen Technologie fälschungssichere e-Voting Systeme umsetzen lassen, bei denen der Anwender verifizieren kann, ob die abgegebene Stimme auch tatsächlich richtig gezählt wurde.

Das Ziel der vorliegenden Arbeit besteht darin zu ermitteln, wie ein e-Voting System auf Grundlage der Blockchain Technologie umgesetzt werden kann. Dabei soll abgeklärt werden, welche Anforderungen das schweizerische Gesetz an die elektronische Stimmabgabe definiert und wie diese im erwähnten System umgesetzt werden können. Es soll eine mögliche Systemarchitektur definiert und ein anschliessendes Testsystem implementiert werden, mit welchem eine Testabstimmung für die Angestellten der Stadt Zug durchgeführt wird.

Ergebnisse

Folgende Ergebnisse sollen erarbeitet werden:

Lösungskonzept

Systemarchitektur

In der folgenden Abbildung ist eine mögliche Systemarchitektur ersichtlich. Es wurde eine mobile Applikation erstellt, mit welcher ein QR-Code gescannt werden kann. Im QR-Code ist eine ID für die Abstimmung und ein Schlüssel für die Authentifizierung enthalten. Anhand der ID empfängt die App die richtigen Daten vom Abstimmungsserver. Der Server verfügt über eine REST API und nimmt die abgegebene Stimme entgegen. Er prüft die Authenzität des Stimmenden mittels des im QR-Code enthaltenen Schlüssels und erstellt dann aus der abgegebenen Stimme einen Hash. Dieser Hash wird in die Bitcoin Blockchain geschrieben und ist somit ein Beweis für den Benutzer, dass seine Stimme registiert wurde. Er kann diese mittels der mobilen Applikation verifizieren.

TimeStamping mittels OriginStmap

Für das Timestamping wird der Dienst von OriginStamp verwendet. Der Benutzer übermittelt die gewünschten Daten zum Beispiel mittels Webbrowser an OriginStamp.org. Aus den übermittelten Daten wird ein SHA256 Hash generiert und in einer Warteschlange von OriginStamp gespeichert. Alternativ kann auch direkt der Hash an OriginStamp übertragen werden, dann wird dieser mit einem Zeitstempel versehen und in die Warteschlange abgelegt. Einmal pro Tag generiert der TimeStamp-Server aus den Hashs in der Warteschlange einen neuen Hash. Dieser wird als privater Schlüssel für die Generierung einer Bitcoin Adresse verwendet. An diese Adresse wird nun die kleinstmöglichste Anzahl an Bitcoins (0.00000001 BTC = 1 Satoshi) überwiesen, was momentan einem Betrag von weniger als 0.01 Rappen entspricht. Damit wird die Transaktion vom Bitcoin Netzwerk verarbeitet und somit in die Blockchain integriert

Aufgetretene Probleme

Da die Blockchain Technologie noch nicht lange existiert, findet man dazu nur beschränkt Literatur. Gerade zum Thema e-Voting existieren erst wenige diskutierte Ansätze. Diese zielen meistens darauf ab, jegliche statliche Mitwikrung auszuschliessen, was bei der Umsetzung dieses Systems nicht erreicht werden wollte.

Eine weitere Herausforderung war, alles in der geplanten Zeit umzusetzen. Gerade die Implementation der mobilen Applikation und des Abstimmungsservers haben viel Zeit in Anspruch genommen.

Ausblick

Gegeben den richtigen gesetzlichen Rahmenbedingungen, wäre es durchaus ein interessanter Ansatz, die Blockchain Technologie als öffentliche Datenbank für die Stimme zu verwenden. Die Vorteile liegen zum einen darin, dass die Integrität der Stimme gewahrt wird, also im Nachhinein nicht mehr verändert werden kann. Zum anderen kann ein Benutzer seine abgegebene Stimme verifizieren, was ihm eine zusätzliche Sicherheit gibt, dass seine Stimme registriert wurde.

Als zusätzliche Funktionalität könnte versucht werden, dass die mobile Applikation selbst die Stimme in die Blockchain schreiben kann, wie dies in der nebenstehenden Abbildung dargestellt ist. Sie würde dann sozusagen die Funktion als eigenständiger Node im Bitcoin System übernehmen und es müsste keine zentrale Stelle mehr die Stimme in die Blockchain schreiben. Allerdings müsste dann der Prozess der Auszählung überdenkt werden, da kein zentraler Server mehr von der Stimmabgabe erfährt.

Da die Blockchain Technologie aktuell eine grosse Resonanz aufwirft und sich stets wandelt, ist es noch ungewiss, in welche Richtung die Entwicklungen gehen und das bringt natürlich gewisse Risiken mit sich. Wenn eine öffentliche Blockchain wie Bitcoin in ein e-Voting System integriert wird, ist stets die Abhängigkeit zu einer Drittlösung da. Falls Bitcoin sich beispielsweise unerwartet auflösen sollte, wäre dies für eine solch kritische Anwendung wie eine Abstimmung katastrophal.