Skip to content

Software Development at Program Tom LTD

Place for coding, programming, development and software in general.

Menu
  • Blog
  • PDF Booklets
  • Dev Utils & Content
  • Java Spring Boot Or Web Apps
  • English
    • български
    • English
    • Español
    • Português
    • हिन्दी
    • Русский
    • Deutsch
    • Français
    • Italiano
    • العربية
  • About Us
  • Flutter Apps
Menu
Technically Fraud-Proof, Anonymous, Verifiable Elections

Technically Change-Proof, Anonymous, Verifiable Elections

Posted on September 26, 2023October 18, 2023 by Toma Velev

It’s may be something that I am missing – either Technically or some real world case or scenario, but In My Opinion, the technology nowadays allows creation of Change-Proof, Public, yet – Anonymous, Verifiable by everybody Elections.

Blockchain Technology

Blockchain technology allows to create a tamper-resistant and transparent ledger of the votes. It is not a panacea, and its implementation comes with its own set of challenges and potential vulnerabilities. I’ve written about it Philosophically: https://programtom.com/dev/product/bitcoin-philosophy-strengths-weaknesses/.

In My Opinion – it is not required to use all the features that are inside Bitcoin & the BlockChains – for the purpose of elections. This will actually minimize some of the vulnerabilities.

It is pretty OK – for the software and the database to be centralized and secured by the country administrators. For example – one of the layers of security in government software is working on independent and separate from the Internet – Network. 

The items that come from the blockchain are: 

Anonymity

A Random UUID could be generated at every vote. In UUID version-4, which is completely random, there are approximately 5.3 x 1036 possible UUIDs. People do not have to remember it, because a QR Code may be generated and printed – For post-vote/election check and verification. And if the actual print is the hash of a combination of the voting machine, timestamp, of his vote the new guid and the previous hash – This will make voting unbeatable.

Paper Trails

One way to ensure the integrity of elections is to have a paper trail for every vote cast electronically so it could be made Verifiable. This allows for manual check from the counters in case of disputes or suspicions of fraud. This is how things work at the moment.

Individual Check

The thing is – any individual may keep a copy of this QR and execute his check individually afterwords. The voter will not need to remember anything. Such feature will increase a lot the Voter Experience of such sytstem.

After the elections, an anonimized, machine-readable data file could be released to the public. Then – everybody with enough technical knowledge may execute simple script and get his own vote + the end result. For security reasons, individual checks may be opened after the elections.

Timestamps

One of the principels that guard Bitcoin is the append-only modification and this could also guard votes. If the time is part of the voting data model as well as the computer

  • Everybody will be able to check the time they’ve made the vote
  • Another check will be – if a lot of votes – made by a single machine are too close together. There is technical time for
    • an individual to walk to the voting computer,
    • select his candidate,
    • put the paper to the box
    • walk away and free for the next citizen to do the same.

So – any fraud – if executed – must be executed during the elections day and not afterwords. The criminals must pick locations where – they will be sure that people will not cast their vote – so – they could steal them. Otherwise – the counts will go beyond the amout of people that have the right to vote in that place. 

Active Voting Registration

The above may be semi-prevented with an Active Voting Registration. The population in some are may be forced to register & vote. This is called – Corporate Votes. All the technology cannot resolve all – the human weaknesses. But, all the live actions needed for this type of fraud – leaves trails and somebody may leak the information.

Human “Error”

After voting is complete – does the summary of votes – to recieve the end result is executed digitally or does a human enter them in the “above” counting system? If the total counts is separate digitally from the voting machines – any “error” could occur, including entering up votes from non-existing election section.

Machine Registration and Uniqueness

Every machine with a Network card has unique MAC Address. If the voting machine does not have one – an UUID could be asigned to it. Are all the unique devices registered before the voting starts? If not – and no machine fingerprint on the vote is placed, there will be digital way to prevent somebody to insert votes from a side-chain computer.

Mercle tree

If the input of the hash is a salted with all the necessary variables it will make the hashing result super secure even by itself. And this may be boosted with One of the elements the prevent Frauds in Bitcoin – Mercle tree algorithm. It is chaining of hashes functions one after another. Any change of the votes afterwords:

  • Will Make an individual’s vote not identical – to the one he/she received from the voting machine. 
  • All the subsequent votes will be also not valid, beacuse of the chaining of the hashes.

Verifiable Elections – about Public Independent Oversight

Currently – to prevent fraud election commissions or oversight bodies with the authority monitor and investigate elections to ensure fairness and integrity. If hashing and cryptography is applied – the math itself will be the overseer. It is non-corruptable and emotionless.

During the elections – it is probably OK – the result to not be visible – to prevent any influence. But once they are over – a data set may be released to the public and anybody that has voted may independently check his own vote – thanks to the QR from the Vote. Any fraud will be detected imediatly. 

All the above is of course – not executed – because of political reasons. Until some similar software is not implemented – I, personally, will never believe 100% what is said on the TV. 

  • What are ways to Optimize the backend endpoints in Spring Boot
  • Flutter image flickers
  • Could a Flutter App save a Flag even after uninstall
  • Could iOS flutter app logs be viewed while running in release mode – started after previous closed state
  • 6 Addictive Mobile Game Ideas Inspired by Flappy Bird’s Simplicity

Categories

  • Apps (20)
  • ChatGPT (19)
  • Choosing a Framework (38)
  • Flutter (206)
  • Graphical User Interface (13)
  • Marketing (114)
  • Software Development (270)
  • Spring (43)
  • StartUp (21)
  • Uncategorized (4)
  • Uncategorized (15)
  • Vaadin (14)

Tags

Algorithms (9) crypto (29) flutterdev (39) General (86) Java (7) QR & Bar Codes (3) Software Dev Choices (33) Spring Boot (1) standards (1) Theme (3) User Authentication & Authorization (9) User Experience (10) Utilities (19) WordPress (11)

Product categories

  • All Technologies (83)
    • Flutter Apps (23)
    • GPT (4)
    • Java (38)
    • Native Android (3)
    • PHP (9)
    • Spring (Boot) / Quarkus (35)
    • Utils (15)
    • Vaadin 24+ (27)
    • Vaadin 8 (1)
  • Apps (18)
    • Employees DB (1)
    • Notes (6)
    • Personal Budget (1)
    • Recipes Book (1)
    • Stuff Organizer (1)
    • To-Do (2)
  • PDF Books (3)
  • Source Code Generators (8)

Recent Posts

  • What are ways to Optimize the backend endpoints in Spring Boot
  • Flutter image flickers
  • Could a Flutter App save a Flag even after uninstall
  • Could iOS flutter app logs be viewed while running in release mode – started after previous closed state
  • 6 Addictive Mobile Game Ideas Inspired by Flappy Bird’s Simplicity

Post Categories

  • Apps (20)
  • ChatGPT (19)
  • Choosing a Framework (38)
  • Flutter (206)
  • Graphical User Interface (13)
  • Marketing (114)
  • Software Development (270)
  • Spring (43)
  • StartUp (21)
  • Uncategorized (4)
  • Uncategorized (15)
  • Vaadin (14)