Aktuelle Situation – die kritischen Punkte
Derzeit erfordern Abstimmungen, deren Ergebnisse offiziell anerkannt werden, die Anwesenheit aller Stimmberechtigten bei der Stimmabgabe und Auszählung (Beispiel: Abstimmung per Handzeichen). Oder es wird speziell für die Wahl ein Wahlverfahren geplant, das die Abstimmung in verschiedenen Wahllokalen ermöglicht (Beispiel: politische Wahlen). Bei politischen Wahlen ist eine große Zahl von Personen involviert, die als Garanten für die ordnungsgemäße Durchführung der Stimmabgabe und die Korrektheit des Ergebnisses fungieren. Darüber hinaus ist ein sicheres und nicht manipulierbares Verfahren für die Übermittlung der Ergebnisse jedes einzelnen Wahllokals an die Wahlzentrale notwendig.
Stimmabgaben über das Internet gibt es schon lange. Sie verfolgen das Ziel, Kosten zu senken und Einwohnern in entlegeneren Regionen die Stimmabgabe zu erleichtern. Die Idee basiert auf der Zentralisierung der Stimmabgabe in einer einzelnen Webanwendung. Diese Lösung birgt eine Reihe von Nachteilen gegenüber dem herkömmlichen „Gang zur Urne“:
- Die Wähler müssen der Körperschaft, die die Wahl organisiert, vertrauen, denn nur sie hat Zugriff auf die Daten der Stimmabgabe und kann die Auszählung durchführen.
- Die Systemverfügbarkeit kann sabotiert werden. Dadurch könnte es zum Verlust oder zur Verfälschung von Wahlergebnissen kommen.
- Auch das Auszählungssystem kann Anomalien aufweisen, die das Ergebnis verfälschen, wobei dies nicht zwangsläufig bemerkt wird, da kein zusätzlicher Prüfungsmechanismus vorhanden ist.
Unter Ausnutzung des Know-hows im Bereich Blockchain wurde Ballotchain entwickelt, um genau diese Beschränkungen bei Onlineabstimmungen zu überwinden und ein Verfahren zu schaffen, das mindestens die gleiche Zuverlässigkeit gewährleistet, die für Wahlen gefordert wird.
Darin besteht die Lösung für Kernfragen, die sich bei herkömmlichen Plattformen für Onlineabstimmungen stellen, nämlich:
- Kann man der zentralen, mit der Speicherung und Auszählung der Stimmen betrauten Einrichtung vertrauen?
- Kann verhindert werden, dass ein Wähler durch die Verwendung verschiedener IP-Adressen oder Benutzerkonten seine Stimme mehrfach abgibt?
- Bleibt das Ergebnis erhalten, wenn die Verbindung zur Webanwendung unterbrochen oder gekapert wird oder ein Angriff auf die Daten erfolgt?
Das Endergebnis wird ermittelt, indem die einzelnen Transaktionen, die an die verschiedenen Wallet-Adressen der einzelnen Kandidaten gerichtet sind, in der Blockchain gezählt werden. Abstimmungssieger ist somit die Person mit der höchsten Zahl erhaltener Transaktionen.
Ballotchain wird als HTML 5-Webanwendung bereitgestellt und verfügt über ein responsives Design, das auf PCs, Smartphones und Tablets angezeigt werden kann.
Anwendungsbeispiele
Um die Effizienz des Systems vorzuführen, wurde ein Prototyp der Webanwendung für zwei Anwendungsfälle entwickelt:
- Abstimmung: Die wahlberechtigte Person meldet sich im System an, gibt ihre Stimme ab und übermittelt das Ergebnis. Die benutzerfreundliche Anwendung führt die Vorgänge in Blockchain aus. Für die Anwender ist die Nutzung äußerst einfach und bequem.
- Auszählung: Die wahlberechtigte Person kann die Ergebnisseite aufrufen, um die Zahl der für die einzelnen Kandidaten abgegebenen Stimmen einzusehen. Dazu stellt die Anwendung das Blockchain-Abfrageergebnis grafisch dar.
Die Architektur der Lösung
Zum Zweck der Erprobung in einer kontrollierten Umgebung nutzt Ballotchain derzeit die Dienste der Blockchain RegNet von Bitcoin. Der Erwerb echter Bitcoins ist somit nicht erforderlich, zudem können Netzwerk-Resets und Sicherheitstests schnell und flexibel durchgeführt werden. Die Anwendung ist überdies für die Betatest- und reguläre Ausführung in TestNet bzw. MainNet ausgelegt.
Zu den Vorteilen der RegNet-Nutzung in der Entwicklungsphase zählen:
- Schnellere Einrichtung dank des kleineren Volumens (Soforteinrichtung ohne Download der Vorgänger-Blockchain).
- Den Bitcoins ist kein Geldwert zugewiesen, weshalb keine Gebühren der Miner anfallen und die Auszählung ohne Verzögerungen stattfinden kann.
- Es wird das gleiche Sicherheitsniveau wie im MainNet garantiert.
- Gleiche Services und Scripting-Logik wie für MainNet verfügbar.
- Möglichkeit der Erprobung anhand von Szenarien, in denen das Mining der Transaktionen im Vorfeld erfolgt, bei sofortiger Validierung.
Die Anwendungsarchitektur umfasst (neben HTML 5 als Front-End) Java als Back-End-Technologie, bestehend aus:
- Einer Business-Logic-Ebene auf der Plattform Apache Tomcat. Diese interagiert mit einer Datenbank, die den Benutzern die Liste der Kandidaten anzeigt. Sie übernimmt zudem den Datenaustausch mit der Blockchain und nutzt dabei die Dienste der Open-Source-Bibliothek BitcoinJ für zwei Vorgänge (der abgegebenen Stimmen in Form von Transaktionen; Ermittlung und Auszählung der Transaktionen, die eine gültige Stimmabgabe darstellen).
- Einer MySQL-Datenbank mit den Daten, die für die Zuordnung der Kandidaten zu den entsprechenden Wallet-Adressen benötigt werden.