| CPC H04L 9/3218 (2013.01) [G07C 13/00 (2013.01); H04L 9/0825 (2013.01); H04L 9/3247 (2013.01); H04L 9/50 (2022.05); H04L 2209/463 (2013.01)] | 4 Claims |

|
1. An operating method of a blockchain e-voting system, the system comprising a voter management unit hosting an e-voting and at least two vote units participating in the e-voting, a first smart contract unit executing the e-voting, and a second smart contract unit executing tallying executed e-voting by the first smart contract unit, the operating method comprising:
providing, by a voter management unit, a same encryption base to each of at least two vote units;
generating, by at least one of the at least two vote units, a group encryption public key (pki) and a group encryption private key (ski) by using the encryption base, and a signature public key (pi, qi) and a signature private key (si);
transmitting, by at least one of the at least two vote units, the group encryption public key (pki) and the signature public key (pi, qi) to the voter management unit;
transmitting, by at least one of the at least two vote units, the signature public key (pi, qi) and the signature private key (si) to the first smart contract unit;
executing, by the first smart contract unit,
1) identifying at least one of the at least two vote units,
2) performing a signature of at least one of the at least two vote units,
3) group execution of at least one of the at least two vote units;
4) writing intention choice of at least one of the at least two vote units;
5) performing zero-knowledge proof for the performing the signature and the zero-knowledge proof for the intention choice operation;
uploading, by a first smart contract unit, a vote result to the blockchain, wherein the vote result uploaded to the blockchain by the first smart contract unit includes a vote execution time (time_publish);
performing, by a second smart contract unit, tallying by the steps of:
1) uploading before tallying by the second smart contract unit, by the voter management unit, data of at least one of the at least two vote units to a blockchain;
2) obtaining a tallying private key (s0) from the voter management unit,
3) performs verification (ZKP_verify(proof_voteIDi)) of zero-knowledge proof (proof_voteIDi) for vote unit identification and verification (ZKP_verify(proof_voteENCi)) of zero-knowledge proof (proof_voteENCi) for the group encryption;
uploading a result of the tallying to the blockchain by the second smart contract unit,
wherein the voter management unit is configured to pre-register a first identification information of the at least one of the at least two vote units and upload the first identification information to the blockchain,
wherein the at least one of the at least two vote units is configured to input second identification information asserted by the at least one of the at least two vote units to the first smart contract unit, and
wherein the first smart contract unit is configured to confirm the at least one of the at least two vote units by comparing the first identification information with the second identification information,
wherein after the voting is finished, the first and second identification information (DIDi), the signature private key (si), and the group encryption private key (ski) are deleted.
|