Distributed E-Voting and E-Bidding Systems Based on Smart Contract
Abstract
:1. Introduction
1.1. E-Voting
1.2. E-Bidding
1.3. Related Works
1.3.1. E-Voting
1.3.2. Blockchain-Based E-Voting
1.4. Contributions
1.5. Study Structure
2. Preliminaries
2.1. Notation
2.2. Electronic Voting
- Registration phase: During this phase, the voting qualification of each voter must be verified offline before the election begins. Next, verified voters will receive a unique virtual identification code (PID), which they can use to obtain a unique voting certification (Cert) from the registration server. Voters should use this certification to apply their ballot signature and personal key pair on the voting day and undergo the normal voting process.
- Voting phase: On the polling day, voters must use their unique ballot certifications obtained in the registration stage to confirm their voting qualifications through the secure transmission channel with the verification server. Voters who have been verified by the server can obtain a ballot signature with their ballot certifications and personal key pairs. After obtaining ballot certification, the voter will be able to vote either on voting websites or using relevant applications. Ballot information will be recorded and stored in the smart contract by the voting website or relevant server. Voters can review current ballot information at any time before the opening stage to ensure that information has been correctly recorded in the ballot box. This improves the reliability of the system.
- Opening phase: When the voting stage is closed, voters may browse the voting website and review ballot information stored in the SC. Additionally, they may verify the correctness of certifications and information on the ballot and compare the results with those announced at the record center (RC). If any conflicts or inconsistencies are observed, voters can directly request ballot verification to ensure the fairness of the election.
2.3. Electronic Bidding
- Tender inviting phase: The Government Procurement Department authorizes the E-bidding center (referred to as the tender website) to announce the tender items and content to establish an open tender. There are three types of tender: open tenders, selective tenders, and limited tenders. Open tenders are the subject of this research.
- Tender obtaining phase: Several different tender cases are posted on the tender website. Companies or manufacturers wishing to participate are required to prepay a service fee (referred to as the tender receiving fee); after obtaining the tender receiving certificate, the suppliers can then download the tender document from the website. According to the provisions of Article 34 in the Government Procurement Act, the relevant authorities shall not disclose the reserve prices, names, or number of tenderers or any related information that would compromise the scope or fairness of the competition.
- Tender submitting phase: After receiving an invitation to tender, suppliers should complete the submission document and pay the bidding bond (should not exceed 10% of the marked price) according to the submission provisions specified on the invitation. The correctness of the paid bid amount from suppliers will be verified with a fair external banking system; if correct, then the supplier will receive a certification of proof that the bid bond has been paid, and if not correct, then the supplier will be notified that the payment amount is incorrect and that the submission has failed. The bid bond certification is the determining factor for whether prepaid bid bonds will be returned to suppliers who have failed to win the bid after the tender deciding stage. Thus, this certification is critical and should not be released at will.
- Tender opening phase: According to the provision of Article 34 of the Government Procurement Act, the government reserve price shall remain confidential until the award is granted; moreover, in special circumstances, the reserve prices may be disclosed after the award stage. However, the relevant authority may, if necessary, disclose the government reserve prices in tender documentation. Unless otherwise required for official use, or provided by relevant laws and regulations, tenders submitted by suppliers shall remain confidential. In the opening stage, tender authorities should conduct an anonymous and public tender opening. However, if the proposed price provided by suppliers does not meet the upset price, then the bargaining stage will be opened. Suppliers may then modify the proposed price to participate in second-round bidding. According to the provision of Article 50 of the Government Procurement Act, if the tender authorities have already conducted tender opening on the opening day, but the qualifications of the supplier do not meet the requirements or the proposed price still does not meet the upset price, then the supplier is not permitted to enter the tender deciding stage and will be considered a null tender.
- Tender deciding phase: In this stage, the tender authorities compare and analyze every proposed bidding price provided by legal suppliers. The authorities must determine whether the proposed price is reasonable and lower than the government estimate. If the proposed prices provided by suppliers are all higher than the estimate, then the authorities must select one of the most favorable suppliers and announce it as the winner.
- Contract management phase: In the deciding stage, tender authorities will select a winning supplier and send the winner a notification. The winning supplier must accept the result; if the supplier wants to retract after winning the bid, then authorities directly confiscate the bid bond. The bid bond paid by the winning supplier is then directly transferred to a performance bond, and the winning supplier also received a performance bond certification. Suppliers who did not win the bidding may apply for the return of their bid bond by providing authorities with their bid bond certification.
2.4. Ethereum and Smart Contracts
2.5. Paillier Cryptosystem
- Key generation phase
- Select sufficiently large prime numbers p and q, where GCD(
- Compute and
- Select a random number
- Define function
- Compute mod (mod
- Generate public key and private key
- Encryption phase
- Select a random number
- Compute ciphertext
- Decryption phase
- Compute plaintext mod
2.6. Additive Homomorphic Encryption
2.7. Shamir’s Secret Sharing Scheme
2.8. Oblivious Transfer
- Correctness: The receiver can obtain the specific message after executing the protocol.
- Privacy of the sender: The receiver can only obtain the specific message and has no knowledge regarding the other messages to protect the privacy of the sender.
- Privacy of the receiver: The sender cannot know which message has been obtained by the receiver.
3. Proposed E-Voting System
3.1. System Description
- Voter (): is voter i with voting eligibility; after undergoing identity verification through RS to obtain a voting certificate , voters can identify their on the SC. With the voting certificate, voters can request AS for their ballot signature in the voting phase. After voting, they can review the ballot information that has been published onto SC to confirm that their vote has been correctly counted. If the voters discover that the ballot has not been properly counted for any reason, then they should respond to the election committee immediately to confirm whether the certificate is abnormal and determine whether they should vote again.
- Registration server (RS): This is responsible for verifying voter identity and generating and sending voting certificates and personal key pairs (, ) to legal voters.
- Authentication server (AS): This is responsible for verifying voter identity, as well as generating and sending ballot signatures to legal voters through one-out-of-n oblivious transfer.
- Voting website (VWeb): The system VWeb is part of the electoral organization. After a voter has voted, the voting website determines whether the voter has cast more than one vote. Next, it encrypts the ballot, first using followed by a secret sharing scheme, and then transmits the ballot coordinates to DDS.
- Record center (RC): After voters have cast their votes, VWeb sends both the voting certificate and ballot signature to the RC, which then confirms that they have not cast more than one vote. If the voter passes this test, then the RC will store the voting certificate and inform VWeb that the voter’s ballot information can be delivered to DDS. At the end of the process, RC records the voter’s on the SC for further confirmation. After DDS receives the coordinates, it uses the RC’s public key to encrypt the coordinates and then records them on the SC for further confirmation if necessary.
- Smart contract (SC): The smart contract is dynamic and enables voters to review their ballots and count the votes at the billing stage. It replaces the function of a traditional bulletin and increases public trust in elections.
3.2. Processes and Steps
3.2.1. Initial Phase
- The process of generating the RS signature key is as follows:
- Select two sufficiently large prime numbers and .
- Compute .
- Compute .
- Select a value that satisfies GCD.
- Determine a value that satisfies mod .
- The process of generating the AS signature key is as follows:
- Select two sufficiently large prime numbers and .
- Compute .
- Compute .
- Select a value e that satisfies GCD.
- Determine a value d that satisfies mod .
- The process of generating the RC key pair is as follows:
- Select two sufficiently large prime numbers and that satisfy GCD.
- Compute .
- Compute .
- Select a random number .
- Define a function .
- Compute mod (mod ).
3.2.2. Registration Phase
- The generation of user personal identification code proceeds for each as follows:
- (a)
- Select a random number .
- (b)
- Generate the unique user personal identification code , where is the voter’s social security number.
- (c)
- Send to the RS for verification.
- To verify the identity of , where , the RS proceeds as follows:
- (a)
- Verify the correctness of .
- (b)
- If is correct, then the RS accepts it and issues a voting certificate to . The certificate is the signature of signed by the RS.
- (c)
- Issue the key pair () belonging to voter .
- (d)
- Publish the of eligible voters on the bulletin board. The bulletin board is in the form of an SC in this study.
3.2.3. Polling Phase
- provides to the AS and requests a ballot signature.
- Assume that wants to vote for candidate , where ; proceeds as follows:
- (a)
- Compute .
- (b)
- Generate , using to encrypt .
- Select random numbers , and generate , for , where denotes the ballot corresponding to candidate j. Send and to AS for .
- After receiving , for which , and from , the AS proceeds as follows:
- (a)
- Review each from , , to avoid the signing of incorrect or unrelated documents.
- (b)
- Compute the hash value of each , for which .
- (c)
- Encrypt the signatures and the hash values of using ’s public key to obtain and , for which .
- (d)
- Select random numbers , where , and compute and , for which . Notably, according to Paillier’s additive homomorphic property, and .
- (e)
- Compute , for which , and send to .
- After receiving , for which , from the AS, undertakes the following actions:
- (a)
- Obtain , for which , and then, use the private key to decrypt to obtain ciphertexts.
- (b)
- Verify ciphertext using the AS public key to obtain only the ballot signature , for which .
3.2.4. Opening Phase
- The AS proceeds as follows:
- (a)
- Publish the private key and random number selected in the voting phase on SC.
- The RC proceeds as follows:
- (a)
- Publish its own private key onto the SC.
- proceeds as follows:
- (a)
- Use to decrypt all ciphertext coordinates, , published by the .
- (b)
- Set .
- (c)
- Use to decrypt all and thereby obtain the ballot containing the candidate number selected by and the ballot signature.
- (d)
- Use and random number to verify the ballot signatures, and determine whether the value of is consistent with the information on the ballot signatures.
3.2.5. Checking Phase
3.3. Experiment Setting
3.3.1. Hardware/Software
- Processor: 2.4-GHz Intel Core i5
- Memory: 4-GB 1600-MHz DDR3
- Operating system: OS X EI Capitan 10.11.4
- Python 2.7.10
- Node. JS 3.10.10
- Solidity 0.4.0
3.3.2. System Parameters
- Digital signature module: RSA-512 bits/RSA-1024 bits
- Encryption module: Paillier-512 bits
- Decryption module: Paillier-1024 bits
- Secret sharing scheme: Shamir’s () secret sharing scheme
- 5 voters, 5 candidates, and 5 DDSs
3.3.3. Operating Procedures
- Voters should enter their social security number to obtain their , which is generated by the RS; the RS then records it in the SC.
- Voters should enter their to obtain their voting certificate, which is generated by the voting website; the voting website then records it in the SC.
- Voters should enter their voting certificate and candidate number to obtain their ballot signature.
- Voters should enter their , ballot signature, voting certificate, and candidate number to be able to vote. The voting website records the poll results (BallotInfoSecretSharing) in the SC.
- When voters want to review the number of votes currently completed, they can click the check button on the page to retrieve data from the SC.
- After voters have learned the number of voters from Step 5, they can click the check button to obtain the PID list of voters who have voted.
- Voters can click the check button on the page to review the ballot information if they so desire.
- Voters can review the ballot information in the SC at the billing stage; the back-end program will decrypt and recover the ballot and then return the election results for voters to view on the page.
3.3.4. Experimental Results
- Scenario 1: Conduct secret sharing on the ballot first, followed by encryption
- Scenario 2: Encrypt the ballot first, and then conduct secret sharing
4. Proposed E-Bidding System
4.1. System Definition
- Vendor (): is vendor i with a bidding qualification. After undergoing identity verification through GCAto obtain a tender certificate (), the vendor pays for bid bonds to obtain a bid bond certificate (). After following the aforementioned steps, the vendor can then request a personal identification code () from the SC. After bidding, vendors can review their bidding documents, which have been published on the SC, to confirm that their bidding has been correctly counted. If the bidding participants discover that the bidding has not been properly counted for any reason, the vendor should respond to the tender authority immediately, confirm that the certificate is abnormal, and determine whether the vendor should bid again.
- Government Certification Administration Center (GCA): The GCA is responsible for verifying the identity of vendors and issuing corporate certificates () to legal vendors. Vendors can then review their , which is published on the SC, to confirm that their corporate certificate is correct.
- Financial authority (Bank): The bank is responsible for confirming that the amount of the bid bond (replaced by the deposit) is correct; if it is correct, then the bank issues a bid bond certificate (). Vendors can then review the , which is published on the SC, to confirm that their bid bond certificate is correct.
- Tender authority (TA): The TAis responsible for writing the tender documents and publishing them on the tender website. The tender authority and vendors open the bid together, and the bidding result is announced by the tender authority, who also sends a hard copy of the letter to notify the winning vendor. Vendors who participate in the bidding, with the exception of the winning vendor, can ask the tender authority to return their bid bond by presenting their bid bond certificate.
- Tender website (TWeb): The TWeb is responsible for transferring deposits from vendors to the financial authority. When vendors complete bidding, the TWeb encrypts their bidding documents ) and publishes them in the SC.
- Smart contract (SC): The SCreplaces the function of a traditional bulletin board. It is dynamic, enables vendors to verify their bidding information, and increases the credibility of the bidding and the confidence of vendors.
4.2. Processes and Steps
4.2.1. Initial Phase
- The process of generating the signature key of the Bank is as follows:
- (a)
- Select two sufficiently large prime numbers and .
- (b)
- Compute .
- (c)
- Define .
- (d)
- Select a value that satisfies GCD.
- (e)
- Identify a value that satisfies mod .
- The process of generating the signature key of the GCA is as follows:
- (a)
- Select two sufficiently large prime numbers and .
- (b)
- Compute .
- (c)
- Define .
- (d)
- Select a value e that satisfies GCD.
- (e)
- Identify a value d that satisfies mod .
- The process of generating the key pair for is as follows:
- (a)
- Select two sufficiently large prime numbers and .
- (b)
- Compute .
- (c)
- Define .
- (d)
- Select a value that satisfies GCD.
- (e)
- Identify a value that satisfies mod .
4.2.2. Tender Inviting Phase
- The user code is generated for each as follows:
- (a)
- Select a random number .
- (b)
- Generate its personal identification code .
- (c)
- Send to GCA for verification.
- To verify the identity of , for which , GCA proceeds as follows:
- (a)
- Confirm the correctness of .
- (b)
- Issue a bidding certificate to if is correct. The certificate is the signature of the signed by GCA.
- (c)
- Publish the of legal vendors on the bulletin board. In this system, the SC serves as the bulletin board.
- To upload tender documents, the TA proceeds as follows:
- (a)
- Upload the tender document to TWeb.
4.2.3. Tender Obtaining Phase
4.2.4. Tender Submitting Phase
- proceeds as follows:
- (a)
- Transmit the corporate certificate GCert() and deposit to the bank for verification of the correct deposit amount.
- The bank proceeds as follows:
- (a)
- Verify the validity of .
- (b)
- Verify the correctness of the deposit amount.
- (c)
- Issue a certificate of deposit to if both and the deposit amount are valid.
- for which , proceeds as follows:
- (a)
- Encrypt document .
- (b)
- Upload bidding document onto the TWeb.
After completing the aforementioned steps, vendors pay the deposit and upload their bidding document to the tender website.
4.2.5. Tender Opening Phase
- proceeds as follows:
- (a)
- Publish private key onto the SC.
- (b)
- Decrypt bidding documents individually.
- (c)
- Verify the correctness of the bidding document using the public key of the .
- (d)
- Verify the correctness of the corporate certificate using the public key of the GCA.
- (e)
- Verify the correctness of the certificate of deposit using the public key of the Bank.
- (f)
- Bid on all vendor betting.
- The TA proceeds as follows:
- (a)
- Compare the betting of vendors and identify the winner; if no objections arise after the opening phase, then the winner will be notified by the TA.
4.2.6. Tender Deciding Phase
4.2.7. Contract Management Phase
4.3. Experiment Setting
4.3.1. Hardware/Software
- Processor: 2.4-GHz Intel Core i5
- Memory: 4-GB 1600-MHz DDR3
- Operating system: OS X EI Capitan 10.11.4
- Python 2.7.10
- Node. JS 3.10.10
- Solidity 0.4.0
4.3.2. System Parameters
- Digital signature module: RSA-1024 bits
- Encryption/decryption module: RSA-2048 bits
- 1 TA, 1 Bank, 1 GCA, 1 SC, and vendors
4.3.3. Operating Procedures
- Vendors must pay the tender documentation fee to view the tender documents.
- Vendors should enter their social security number to obtain their PID, which is generated by the GCA. The GCA then records it in the SC.
- Vendors should enter their to obtain a corporate certificate , which is generated by the GCA.
- Vendors must pay a deposit and obtain a certificate of deposit to bid.
- Vendors must submit their , , , and to bid. The bidding document is recorded in the SC by the tender website.
- If bidding participants want to review the current number of bids completed, they can click the check button on the web page to retrieve data from the SC.
- After identifying the number of vendors from Step 6, bidding participants can click the check button to obtain the PID list of vendors who have completed bidding.
- Bidding participants can click the check button on the web page to review the bidding information if they desire.
- Bidding participants can decrypt bidding information in the SC in the opening phase; the backend program decrypts and recovers the bidding document and then returns the bidding results to the page for participants.
4.3.4. Experimental Results
- Performance: Throughout the experiment, the digital signature module used RSA-1024 bits; the encryption and decryption module used RSA-2048 bits. Both modules in the implementation were highly time-efficient, requiring less than one second.
- Contract information: Contracts must record the identity of each vendor’s , corporate certificate , certificate of deposit , and bid amount for bidding participants to query. In the opening phase, the contract is used to publish the private key associated with the decryption.
5. Security Analysis
5.1. Blockchain Technology
- Public verifiability: Each valid node on the Bitcoin network can confirm and verify all content in the block.
- Nonrepudiation: Because the blockchain maintains a public and transparent ledger, each valid node on the Bitcoin network can confirm and verify all content in the block, which demonstrates the characteristic of nonrepudiation.
- Non-tamperable: Because the blockchain maintains a public and transparent ledger, each valid node on the Bitcoin network can confirm and verify all the content in the block. Each block contains the hash value of the previous block. Therefore, when a transaction within a block is tampered with, all subsequent blocks are affected, requiring manipulators to possess a large amount of computing power and thus rendering this task remarkably difficult to complete. That is, tampering with the content in the block is virtually impossible.
5.2. Correctness and Privacy
- Correctness: When voters receive , they use their private key to open and obtain ciphertexts. They then use the public key of AS e to verify ciphertext of the signature, in which is the number of voter signatures obtained during the voting phase.
- Privacy of AS: The privacy of AS ensures that the voter can only obtain one signature of ballot and have no knowledge regarding other ballot signatures. Suppose that is a semi-honest voter who attempts to obtain the other signatures of the ballot. Because and the content of the ciphertext contain the random number selected by AS, cannot obtain the signature of any other ballot except signature , thus protecting the privacy of AS.
- Privacy of voter : The privacy of voter ensures that AS cannot obtain any information of the ballot chosen by voter . In the voting phase, voter selects a ballot number and encrypts it to by the Paillier cryptosystem. Then, voter sends it to the AS. Even the AS knows that the range of is from 1– and can thus also compare the ciphertext after encrypting from 1–. However, it still cannot identify the corresponding ballot because the Paillier encryption process for each contains the random number selected by , thus protecting the privacy of .
5.3. Properties of the E-Voting System
- Eligibility: This property ensures that only voters with legal voting qualifications can vote to protect the fairness of the voting process. In the registration phase of our scheme, RS verifies the identity of , and only those who pass the identity verification stage can obtain a voting certificate .
- Non-repeatability: This property ensures that each voter is limited to one vote, and it is forbidden to repeat the vote or other malicious votes, or to protect the fairness of the voting process. In our scheme, people must present their own voting certificate of the voting stage. The RC first determines whether the certificate is legal. If it is legal, then the process of storing the ballot is completed, and the certificate is marked as voted. When voters attempt to vote more than once, the RC refuses the repeated vote to prevent ballot stuffing. Because the RC is semi-honest, the stored will not be tampered with or imitated. Therefore, when voters attempt to vote more than once, the RC can carefully inspect the result and send it to the VWeb.
- Rationality: This property ensures that no internal or external attackers or voters have the opportunity to tamper with other people’s votes maliciously, thereby ensuring the legitimacy of the voting process. In our scheme, voter ballot information was directly recorded in the SC through the voting website and related applications for access and inquiry. No one can tamper with the ballot information because the blockchain is undeniably difficult to manipulate, thus ensuring that the rationality of the voting process is maintained.
- Completeness: This property ensures that each voter can check whether the ballot information is correctly counted and checked at the billing stage. In our scheme, during the ballot opening phase, all voters can verify the ballot information independently, and the ballot information is stored in the server in a decentralized environment for candidate number to determine the number of votes that they have received and the ballot signature value . By evaluating the information on the ballot signature, voters can verify that their ballots have been correctly recorded. If the result is incorrect, then they can report it for further verification.
- Fairness: This property ensures that no internal or external attackers or voters can know the election trend and results before the billing stage, thereby ensuring the fairness of the voting process. In our scheme, because the key pairs of voters , were issued by RS, if the ballots were encrypted only by these keys, then RS can ascertain the election results before the opening phase. Therefore, after completing encryption using the public key of the voter , a second encryption is performed using the public key of the RC to prevent ballot information from being decrypted by attackers attempting to obtain the election results in advance. When voters complete the polling process, the ballot is first encrypted by the voter’s public key and then saved to distributed data servers through secret sharing. After receiving the encrypted ballots, the DDS servers then encrypt the ballots again using the public key of the RC and record in the SC for voter query. Based on the oblivious transfer protocol and privacy-protection cryptography, neither internal nor external attackers can discover the results of the election in advance by decrypting the ballots or retrieving data from the server side; this preserves the fairness of the election.
- Anonymity: This property ensures that no internal or external attackers or voters can know which voter information actually corresponds to each voter, thereby protecting the confidentiality and security of the voter identity. In our scheme, when voters create their personal identity, they will combine their social security number with a random number they have selected to generate their unique identity . No one can connect the to the real person because no one has knowledge of this system, thus protecting voter anonymity.
5.4. Properties of the E-Bidding System
- Eligibility: The GCA first verifies the identity of , who must obtain a corporate certificate issued by the GCA to obtain tender qualification.
- Nonrepudiation: Because bidding documents are stored in the SC and the blockchain has the property of nonrepudiation, they cannot be tampered with.
- Public verifiability: All vendors who participated in bidding can verify their corporate certificates , bid bond certificates , and bidding amount of corresponding bidding documents in the opening phase. If they pass the verification stage, then they can participate in the price competition; otherwise, they will not be permitted to compete.
- Secrecy of bidding price: bidding documents are encrypted using the vendors’s public key to prevent anyone from obtaining the bidding result before the opening phase.
6. Conclusions
Author Contributions
Funding
Conflicts of Interest
References
- Dolev, S.; Gilboa, N.; Kopeetsky, M. Computing Multi-party Trust Privately: In O(N) Time Units Sending One (Possibly Large) Message at a Time. In Proceedings of the 2010 ACM Symposium on Applied Computing (SAC ’10), Sierre, Switzerland, 22–26 March 2010; ACM: New York, NY, USA, 2010; pp. 1460–1465. [Google Scholar] [CrossRef]
- Dimitriou, T.; Michalas, A. Multi-Party Trust Computation in Decentralized Environments. In Proceedings of the 2012 5th International Conference on New Technologies, Mobility and Security (NTMS), Istanbul, Turkey, 7–10 May 2012; pp. 1–5. [Google Scholar] [CrossRef]
- Dimitriou, T.; Michalas, A. Multi-party trust computation in decentralized environments in the presence of malicious adversaries. Ad Hoc Net. 2014, 15, 53–66. [Google Scholar] [CrossRef]
- Kshetri, N.; Voas, J. Blockchain-Enabled E-Voting. IEEE Softw. 2018, 35, 95–99. [Google Scholar] [CrossRef]
- Andrew, B.; Christopher, B.; Thomas, P. Digital Voting with the Use of Blockchain Technology. Available online: https://www.economist.com/sites/default/files/plymouth.pdf (accessed on 18 December 2018).
- Agora. Agora Whitepaper. Bringing Our Voting Systems into the 21st Century. Available online: https://static1.squarespace.com/static/5b0be2f4e2ccd12e7e8a9be9/t/5b6c38550e2e725e9cad3f18/1533818\968655/Agora_Whitepaper.pdf (accessed on 17 February 2019).
- Johnson, N.; Jones, B.M.; Clendenon, K. e-Voting in America: Current Realities and Future Directions. In Social Computing and Social Media. Human Behavior; Meiselwitz, G., Ed.; Springer International Publishing: Cham, Switzerland, 2017; pp. 337–349. [Google Scholar]
- Liao, T.; Wang, M.; Tserng, H. A Framework of Electronic Tendering for Government Procurement: A Lesson Learned in Taiwan. Autom. Constr. 2002, 11, 731–742. [Google Scholar] [CrossRef]
- Buccafurri, F.; Fotia, L.; Lax, G. Allowing Continuous Evaluation of Citizen Opinions through Social Networks. In Advancing Democracy, Government and Governance; Kő, A., Leitner, C., Leitold, H., Prosser, A., Eds.; Springer: Berlin/Heidelberg, Germany, 2012; pp. 242–253. [Google Scholar]
- Buccafurri, F.; Fotia, L.; Lax, G. Allowing Non-identifying Information Disclosure in Citizen Opinion Evaluation. In Technology-Enabled Innovation for Democracy, Government and Governance; Kő, A., Leitner, C., Leitold, H., Prosser, A., Eds.; Springer: Berlin/Heidelberg, Germany, 2013; pp. 241–254. [Google Scholar]
- Chen, Y.S.; Tso, R. An E-Voting System Based on Oblivious Signatures; National Chengchi University: Taipei, Taiwan, 2013. [Google Scholar]
- Nair, D.G.; Binu, V.P.; Kumar, G.S. An Improved E-Voting Scheme Using Secret Sharing Based Secure Multi-Party Computation. CoRR 2015, abs/1502.07469. Available online: http://xxx.lanl.gov/abs/1502.07469 (accessed on 25 March 2019).
- McCorry, P.; Shahandashti, S.; Hao, F. A Smart Contract for Boardroom Voting with Maximum Voter Privacy. In Financial Cryptography and Data Security; Springer: Berlin/Heidelberg, Germany, 2017. [Google Scholar]
- Hjalmarsson, F.; Hreiarsson, G.K.; Hamdaqa, M.; Hjalmtysson, G. Blockchain-Based E-Voting System. In Proceedings of the 2018 IEEE 11th International Conference on Cloud Computing (CLOUD), San Francisco, CA, USA, 10–13 December 2018; pp. 983–986. [Google Scholar] [CrossRef]
- Rabin, M.O. How To Exchange Secrets with Oblivious Transfer; Harvard University Technical Report 81 talr@watson.ibm.com 12955 received 21 Jun 2005; Harvard University Press: Cambridge, MA, USA, 2005. [Google Scholar]
- Paillier, P. Public-Key Cryptosystems Based on Composite Degree Residuosity Classes. In Advances in Cryptology—EUROCRYPT ’99; Stern, J., Ed.; Springer: Berlin/Heidelberg, Germany, 1999; pp. 223–238. [Google Scholar]
- Yi, X.; Bouguettaya, A.; Georgakopoulos, D.; Song, A.; Willemson, J. Privacy Protection for Wireless Medical Sensor Data. IEEE Trans. Depend. Secur. Comput. 2015, 13, 369–380. [Google Scholar] [CrossRef]
- Ugus, O.; Westhoff, D.; Laue, R.; Shoufan, A.; Huss, S.A. Optimized Implementation of Elliptic Curve Based Additive Homomorphic Encryption for Wireless Sensor Networks. CoRR 2009, abs/0903.3900. Available online: http://xxx.lanl.gov/abs/0903.3900 (accessed on 5 October 2018).
- Shamir, A. How to Share a Secret. Commun. ACM 1979, 22, 612–613. [Google Scholar] [CrossRef]
- Corniaux, C.L.F.; Ghodosi, H. A Verifiable Distributed Oblivious Transfer Protocol. In Information Security and Privacy; Parampalli, U., Hawkes, P., Eds.; Springer: Berlin/Heidelberg, Germany, 2011; pp. 444–450. [Google Scholar]
- Chu, C.K.; Tzeng, W.G. Efficient K-out-of-N Oblivious Transfer Schemes with Adaptive and Non-adaptive Queries. In Proceedings of the 8th International Conference on Theory and Practice in Public Key Cryptography (PKC’05), Janeiro, Brazil, 25–29 March 2005; Springer: Berlin/Heidelberg, Germany, 2005; pp. 172–183. [Google Scholar] [CrossRef]
Term | Description |
---|---|
Voters with voting qualification | |
RS | Registration server |
AS | Authentication center |
VWeb | Voting website |
RC | Recode center |
DDS | Distributed data server |
SC | Smart Contract |
’s voting certificate | |
RC’s key pair | |
, | ’s personal key pair |
’s personal identification code | |
’s social security umber | |
Signature of m that is signed by k |
Encryption and Decryption | Secret Sharing | |
---|---|---|
512 bits | 18 s | 8 s |
1024 bits | 90 s | 75 s |
Scenario 1 | Scenario 2 | |
---|---|---|
Encryption | ||
Decryption | ||
Secret sharing | 1 | 1 |
Recover secret | 1 | 1 |
Term | Description |
---|---|
Voters with voting qualification | |
GCA | Government Certificate Authority |
Bank | Financial authority |
TA | Tender authority |
TWeb | Tender website |
SC | Smart contract |
’s bid bond certificate | |
’s tender certificate | |
’s corporate certificate | |
’s personal identification code | |
’s social security number |
© 2019 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).
Share and Cite
Tso, R.; Liu, Z.-Y.; Hsiao, J.-H. Distributed E-Voting and E-Bidding Systems Based on Smart Contract. Electronics 2019, 8, 422. https://doi.org/10.3390/electronics8040422
Tso R, Liu Z-Y, Hsiao J-H. Distributed E-Voting and E-Bidding Systems Based on Smart Contract. Electronics. 2019; 8(4):422. https://doi.org/10.3390/electronics8040422
Chicago/Turabian StyleTso, Raylin, Zi-Yuan Liu, and Jen-Ho Hsiao. 2019. "Distributed E-Voting and E-Bidding Systems Based on Smart Contract" Electronics 8, no. 4: 422. https://doi.org/10.3390/electronics8040422
APA StyleTso, R., Liu, Z.-Y., & Hsiao, J.-H. (2019). Distributed E-Voting and E-Bidding Systems Based on Smart Contract. Electronics, 8(4), 422. https://doi.org/10.3390/electronics8040422