Helios is an end-to-end verifiable voting system.
This is a fork of Ben Adida's Helios server, with support for mixnets using code pulled in from Zeus, and support for threshold decryption, but without the other changes made in Zeus, and with some other minor changes.
Name/Party/1
, where the candidates are sorted within the GVT by the number (can be a decimal).This implementation produces 80 shadow mixes for each shuffling proof, in accordance with the original Helios paper. This is less than its inspiration, Josh Benaloh's paper (which recommends 100), and Zeus (which uses 128 by default). You may want to increase CUSTOM_SHUFFLING_PROOF_SECURITY_PARAMETER
in phoebus/mixnet/params.py for increased security.
I'd like to thank:
Copyright © 2016 RunasSudo (Yingtong Li)
Based on code by GRnet researchers (https://github.com/grnet/zeus), licensed under the GPLv3.
Based on code by Ben Adida (https://github.com/benadida/helios-server), licensed under the Apache License.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/.
While the creators of the original Helios and Zeus are crypto experts, I am not. I cannot guarantee the security of this implementation whatsoever.