IP Library Granted Patent US 10,790,964
Granted Patent B2
US 10,790,964 · App. 15/815,911 · Granted Sep 29, 2020

Peer voting on a blockchain

Inventors: Anuj Chopra (Singapore, SG); Zhou Yinsheng (Singapore, SG); Yuan Yuan (Singapore, SG); Wenbin Zhang (Singapore, SG)
Assignee: International Business Machines Corporation
H04L9/0637H04L9/30H04L9/3239H04L9/3247H04L2209/38H04L2209/463
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,790,964
App. No.
15/815,911
Granted
Sep 29, 2020
Kind
B2
Abstract

An example method of operation may include one or more of identifying one or more votes in a distributed voting configuration, dividing each of the one or more votes into a plurality of partial votes, such that each of the one or more votes comprises two or more partial votes, randomly distributing the plurality of partial votes to a plurality of peer nodes associated with a blockchain, and receiving a broadcast from each of the peer nodes based on a distributed tally of the plurality of partial votes.

Claims (69)

1. A method, comprising:

identifying one or more votes in a distributed voting configuration;

dividing each of the one or more votes into a plurality of partial votes, such that each of the one or more votes comprises two or more partial votes;

randomly distributing the plurality of partial votes to a plurality of peer nodes associated with a blockchain; and

receiving a broadcast from each of the peer nodes based on a distributed tally of the plurality of partial votes.

2. The method of claim 1 , further comprising:

receiving a plurality of partial counts from the respective plurality of peer nodes, wherein the plurality of partial counts each comprise a distributed tally of a portion of the plurality of partial votes;

checking the plurality of partial counts for errors and correcting any identified errors; and

summing the plurality of partial counts; and

verifying the sum of the plurality of partial counts is valid.

3. The method of claim 2 , wherein verifying the sum of the plurality of partial counts is valid comprises

identifying a number of the plurality of partial votes is incorrect; and responsive to identifying the number of the plurality of partial votes is incorrect,

discarding any excess partial votes as invalid partial votes beyond a correct number of the plurality of partial votes; and

broadcasting the invalid partial votes to the one or more peer nodes responsible for the excess partial votes.

4. The method of claim 3 , further comprising:

performing a final count of the partial votes after the excess partial votes are discarded; and

determining a vote result based on the final count of the partial votes.

5. The method of claim 1 , further comprising:

encrypting the plurality of partial votes based on a randomly selected public key associated with one of the plurality of peer nodes.

6. The method of claim 1 , further comprising:

storing the encrypted plurality of partial votes on the blockchain.

7. The method of claim 1 , further comprising:

when none of the plurality of peer nodes are identified as being dishonest, performing a final count of all the received plurality of partial votes.

8. An apparatus, comprising:

a storage medium configured to store instructions; and

a hardware processor configured to execute the instructions to:

identify one or more votes in a distributed voting configuration;

divide each of the one or more votes into a plurality of partial votes, such that each of the one or more votes comprises two or more partial votes;

randomly distribute the plurality of partial votes to a plurality of peer nodes associated with a blockchain; and

a receiver configured to receive a broadcast from each of the peer nodes based on a distributed tally of the plurality of partial votes.

9. The apparatus of claim 8 , wherein the receiver is further configured to receive a plurality of partial counts from the respective plurality of peer nodes, wherein the plurality of partial counts each comprise a distributed tally of a portion of the plurality of partial votes; and wherein the processor is further configured to:

check the plurality of partial counts for errors and correct any identified errors;

sum the plurality of partial counts; and

verify the sum of the plurality of partial counts is valid.

10. The apparatus of claim 9 , wherein to verify the sum of the plurality of partial counts is valid comprises the processor being configured to:

identify a number of the plurality of partial votes is incorrect;

responsive to the number of the plurality of partial votes being identified as incorrect, discard any excess partial votes as invalid partial votes beyond a correct number of the plurality of partial votes; and

broadcast the invalid partial votes to the one or more peer nodes responsible for the excess partial votes.

11. The apparatus of claim 10 , wherein the processor is further configured to:

perform a final count of the partial votes after the excess partial votes are discarded; and

determine a vote result based on the final count of the partial votes.

12. The apparatus of claim 8 , wherein the processor is further configured to:

encrypt the plurality of partial votes based on a randomly selected public key associated with one of the plurality of peer nodes.

13. The apparatus of claim 8 , wherein the processor is further configured to:

store the encrypted plurality of partial votes on the blockchain.

14. The apparatus of claim 8 , wherein the processor is further configured to:

when none of the plurality of peer nodes are identified as being dishonest, perform a final count of all the received plurality of partial votes.

15. A non-transitory computer readable medium configured to store instructions that when executed cause a processor to perform:

identifying one or more votes in a distributed voting configuration;

dividing each of the one or more votes into a plurality of partial votes, such that each of the one or more votes comprises two or more partial votes;

randomly distributing the plurality of partial votes to a plurality of peer nodes associated with a blockchain; and

receiving a broadcast from each of the peer nodes based on a distributed tally of the plurality of partial votes.

16. The non-transitory computer readable medium of claim 15 , wherein the processor is further configured to perform:

receiving a plurality of partial counts from the respective plurality of peer nodes, wherein the plurality of partial counts each comprise a distributed tally of a portion of the plurality of partial votes;

checking the plurality of partial counts for errors and correcting any identified errors; and

summing the plurality of partial counts; and

verifying the sum of the plurality of partial counts is valid.

17. The non-transitory computer readable medium of claim 16 , wherein verifying the sum of the plurality of partial counts is valid comprises

identifying a number of the plurality of partial votes is incorrect; and

responsive to identifying the number of the plurality of partial votes is incorrect, discarding any excess partial votes as invalid partial votes beyond a correct number of the plurality of partial votes; and

broadcasting the invalid partial votes to the one or more peer nodes responsible for the excess partial votes.

18. The non-transitory computer readable medium of claim 17 , wherein the processor is further configured to perform:

performing a final count of the partial votes after the excess partial votes are discarded; and

determining a vote result based on the final count of the partial votes.

19. The non-transitory computer readable medium of claim 15 , wherein the processor is further configured to perform:

encrypting the plurality of partial votes based on a randomly selected public key associated with one of the plurality of peer nodes.

20. The non-transitory computer readable medium of claim 15 , wherein the processor is further configured to perform:

storing the encrypted plurality of partial votes on the blockchain;

when none of the plurality of peer nodes are identified as being dishonest, performing a final count of all the received plurality of partial votes.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2017
From: CHOPRA, ANUJ; YINSHENG, ZHOU; YUAN, YUAN; ZHANG, WENBIN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044159/0091 →
Continuity (1)
Related Publication 20190158272A1 · May 23, 2019