Paper 2020/033 Original: eprint.iacr.org/2020/033 ↗

Scalable Open-Vote Network on Ethereum

Mohamed Seifelnasr
Hisham S. Galal
Amr M. Youssef
Abstract

McCorry et al. (Financial Cryptography 2017) presented the first implementation of a decentralized self-tallying voting protocol on Ethereum. However, their implementation did not scale beyond 40 voters since all the computations were performed on the smart contract. In this paper, we tackle this problem by delegating the bulk computations to an off-chain untrusted administrator in a verifiable manner. Specifically, the administrator tallies the votes off-chain and publishes a Merkle tree that encodes the tallying computation trace. Then, the administrator submits the Merkle tree root and the tally result to the smart contract. Subsequently, the smart contract transits to an intermediate phase where at least a single honest voter can contend the administrator's claimed result if it was not computed correctly. Then, in the worst case, the smart contract verifies the dispute at the cost of an elliptic curve point addition and scalar multiplication, and two Merkle proofs of membership which are logarithmic in the number of voters. This allows our protocol to achieve higher scalability without sacrificing the public verifiability or voters' privacy. To assess our protocol, we implemented an open-source prototype on Ethereum and carried out multiple experiments for different numbers of voters. The results of our implementation confirm the scalability and efficiency of our proposed solution which does not exceed the current block gas limit for any practical number of voters.

Metadata
Available format(s)
PDF
Category
Applications
Publication info
Preprint.
History
2020-02-08: last updated
2020-01-13: published
Short URL
https://ia.cr/2020/033
License
https://creativecommons.org/licenses/by/4.0/

BibTeX

@misc{cryptoeprint:2020/033,
      author = {Mohamed Seifelnasr and Hisham S.  Galal and Amr M.  Youssef},
      title = {Scalable Open-Vote Network on Ethereum},
      howpublished = {Cryptology {ePrint} Archive, Paper 2020/033},
      year = {2020},
      url = {https://eprint.iacr.org/2020/033}
}
Note: In order to protect the privacy of readers, this archive does not use cookies or embedded third party content.