I voted online for the first time this morning, mostly by curiousity.
I got a receipt with 2 huge hex numbers and one large base64 blob. The receipt also had a link to an online website to verify that my vote has been registered, and that it will be counted. The website is relatively easy to use, I copy paste my use base64 blob and I get a green success message. It's source code is also available online, in OCaml.
Now, I have no good understanding about all of this work. The information page is helpful to get a vague idea of the concepts: https://verifiabilite-legislatives2022.fr/informations.html However you actually need to be a crypto expert to understand it fully, and I'm not one. "More experienced readers may be confronted with a more technical description in English." https://hal.inria.fr/hal-01576379/file/ZK-securityproof.pdf The paper contains crypto math proofs, it looks fancy and has nice concepts such as homomorphic encryption, zero knowledge proofs and so on. At my level I can only say that my base64 blob contains a JSON document consisting of a few numbers, one huge hex number with homomorphic properties, a schnorr signature, and a public key of something.
Moreover, the system has strong limitations because as thex explain, you cannot know that the candidate you selected is the candidate actually registered in your electronic vote, and they cannot ensure that all the registered votes are legitimate.
The traditional voting system for French citizen is a transparent box with paper voting ballots in an envelop. You can count the votes later in a group of random citizens, I did it twice personnally, and it's very easy to understand. Most people in my country side village could trust the process with no prior knowledge.
I find the online voting part convenient, but I'm afraid people will not trust it because they cannot understand it.
> gρi α−σi = gw+rσi α−σi = gwασi α−σi = gw = Ai and hρi (β/gMi )−σi = hw+rσi β−σi gσiMi = hwhrσi (hrgm)−σi gσiMi = hwg−mσi gσiMi = hw
I'm sure there's some way to implement a somewhat working online voting process, but all those suffer from a major problem you already stated: the majority of people won't be able to understand or verify that their vote was counted. Your expected to fully trust that some machine took your intent and counted it correctly. I wouldn't for important votes.
An important side effect is also that you make the process more scalable which IMHO isn't something you want in important votes as that makes the system more open to attacks. Consider tampering with the voting machine manufacturer to how difficult it is to manipulate distributed vote counting by random citizens. In Germany everyone can apply as "Wahlhelfer" (person helping with the voting process) and then both make sure the voting process is followed as well as count votes in a peer reviewed process.