gridcoin-community / Gridcoin-Tasks

Gridcoin community tasks repository
https://gridcoin.us
MIT License
24 stars 5 forks source link

Creation of a Voting System Based off of Biometrics from Extremely Common Hardware #216

Closed RoboticMind closed 4 years ago

RoboticMind commented 6 years ago

Steps Involved In this Proposed Voting Process

1) Voters validate their biometrics by performing some sort of semi-randomized task that involves somewhat complex actions. 2) Once the user has completed the task, the biometrics are sent along with a vote in a transaction. 3) The network first verifies that the actions performed were done by a human 4) The network checks to make sure that the biometrics don't match a user that has already voted 5) The network checks that the raw biometrics don't exactly match a previous's user's vote as to prevent someone from copying another user's data from a different vote and vote under their name (randomness helps but if the task is similar enough to another task it could be misidentified) 6) Once confirmed, the transaction vote goes through

Potential Ways to Achieve the Biometric Checks Involved

List of Biometrics that Could Potentially Be Used

Potential Tasks for Verification

tomasbrod commented 6 years ago

Related #21 .

Peppernrino commented 6 years ago

After some nice discussions in the Discord, and the Gridcoin Hangouts... some suggestions have come out of the woodwork:

Jim Owens: https://www.jumio.com/ NeuralMiner: https://voting.decred.org/ Peppernrino: 2FA, or could we think about possibly creating a hardware key on wallet generation? Like a YubiKey... and if there were >1 keyfile present on the USB, it wouldn't work?

Peppernrino commented 6 years ago

from Discord yesterday:

nos: @Peppernrino Re: biometrics for polling. Might want a per-poll optional 2FA scheme which gets used for culling votes after the poll closes instead. I.e. an email or SMS which asks 'is this your vote?'

sort of like how C-Cex sends you an email after making a transaction... "someone made a tx for this much. was this you?" ---> "someone voted this option on gridcoin poll #XXX. was this you?"

RoboticMind commented 6 years ago

The problems with 2FA are: 1) Sending a message for verification cannot be done by everyone in the network so it would have to be done by one or a few people 3) The controller of 2FA could stop verifying people that inputting a certain type of vote by claiming the 2FA check failed or just not sending it 4) The controller of 2FA could stop verifying any voting entirely

Verification of the message can be done through Public Key Private Key Cryptography

RoboticMind commented 6 years ago

@ganzuul has a different voting proposal to look at: https://github.com/gridcoin-community/Gridcoin-Tasks/issues/219. It is currently in the draft phase.

RoboticMind commented 5 years ago

For privacy issues, we can use an obfuscated neural network so that the inputs are private (being the identifiable information) but the output is known.

There could be witnesses voted in that have their own trained obfuscated neural network with the weights and biases not be public as to not allow people to fabricate results from having public weights.

They would all have to be trained on different data sets to make sure that attacks involving the training data are mitigated.

Witnesses would have their relevant information public to obfuscate the inputs. If enough of the witness come to a consesnus the vote is blocked or allowed.

More information on obfuscated neural networks can be found on this paper