1 name: hjugement-protocol
2 -- PVP: +-+------- breaking API changes
3 -- | | +----- non-breaking API additions
4 -- | | | +--- code changes with no API change
5 version: 0.0.0.20190511
7 synopsis: A cryptographic protocol for the Majority Judgment.
9 This work-in-progress library aims at implementing an online voting protocol
10 named <https://eprint.iacr.org/2013/177.pdf Helios-C> (Helios with Credentials)
11 by its authors from the <https://www.cnrs.fr/ CNRS>,
12 the <http://www.loria.fr INRIA>
13 and the <https://www.univ-lorraine.fr/ Université de Lorraine>:
14 <http://www.loria.fr/~cortier/ Véronique Cortier>,
15 <https://dgalindo.es/ David Galindo>,
16 <http://www.loria.fr/~gaudry/ Pierrick Gaudry>,
17 <http://stephane.glondu.net/ Stéphane Glondu>
18 and Malika Izabachène.
20 (TODO) Actually, this protocol is adapted a little bit here to better support
21 a better method of voting known as the <http://libgen.io/book/index.php?md5=BF67AA4298C1CE7633187546AA53E01D Majority Judgment>.
23 * A large-public introduction (in french) to Helios-C is available here:
24 <https://members.loria.fr/VCortier/files/Papers/Bulletin1024-2016.pdf Bulletin de la société informatique de France – numéro 9, novembre 2016>.
25 * A more scientific (yet understandable) introduction (in english) to Belenios
26 (an implementation of Helios-C) is available here:
27 <https://hal.inria.fr/hal-02066930/document Belenios: a simple private and verifiable electronic voting system>.
29 The main properties of this protocol are:
31 * /fully correct/: the published result are proven to correspond
32 to the (sum of) intended votes of the voters,
33 while accounting for a malicious bulletin board (BB) (adding fake ballots)
34 by requiring a registration authority (RA)
35 (responsible for generating and sending voters' credentials).
36 Assuming that the BB and the RA are not simultaneously dishonest.
38 * /verifiable/: each voter is able to check that:
39 his\/her ballot did contribute to the outcome (/individual verifiability/),
40 and that the tallying authorities did their job properly (/universal verifiability/).
42 * /private/: the identities of the voters who cast a vote are not publicly revealed.
43 extra-doc-files: README.md
46 stability: experimental
47 author: Julien Moutinho <julm+hjugement@autogeree.net>
48 maintainer: Julien Moutinho <julm+hjugement@autogeree.net>
49 bug-reports: Julien Moutinho <julm+hjugement@autogeree.net>
54 tested-with: GHC==8.4.4
59 Source-Repository head
60 location: git://git.autogeree.net/hjugement
67 Voting.Protocol.Arithmetic
68 Voting.Protocol.Credential
69 Voting.Protocol.Election
70 Voting.Protocol.Trustees
71 Voting.Protocol.Trustees.All
73 default-language: Haskell2010
80 GeneralizedNewtypeDeriving
86 NoMonomorphismRestriction
96 -Wincomplete-uni-patterns
97 -Wincomplete-record-updates
99 -- -fhide-source-paths
105 -- , fixed-vector >= 1.1
106 -- , hashable >= 1.2.6
109 -- , monad-classes >= 0.3
112 -- , reflection >= 2.1
114 , transformers >= 0.5
115 , unordered-containers >= 0.2.8
117 Test-Suite hjugement-protocol-test
118 type: exitcode-stdio-1.0
119 hs-source-dirs: tests
130 default-language: Haskell2010
137 GeneralizedNewtypeDeriving
140 MultiParamTypeClasses
143 NoMonomorphismRestriction
153 -Wincomplete-uni-patterns
154 -Wincomplete-record-updates
156 -- -fhide-source-paths
161 -- , hashable >= 1.2.6
163 -- , monad-classes >= 0.3
165 -- , reflection >= 2.1
170 , transformers >= 0.5
171 -- , unordered-containers >= 0.2.8
173 Benchmark hjugement-protocol-benchmark
174 type: exitcode-stdio-1.0
175 hs-source-dirs: benchmarks
177 default-language: Haskell2010
187 GeneralizedNewtypeDeriving
190 MultiParamTypeClasses
193 NoMonomorphismRestriction
203 -Wincomplete-uni-patterns
204 -Wincomplete-record-updates
214 , transformers >= 0.5