S-Ptr / he-voting

Online voting system that uses homomorphic encryption.
1 stars 1 forks source link

People's choice podcast awards allow multiple votes from the same person #2

Open albaropereyra22 opened 7 months ago

albaropereyra22 commented 7 months ago

Perhaps pushing this number over to a 64 bit version will make the voting framework useful in a real world scenario like the People's choice podcast awards. I wonder what they are using.

S-Ptr commented 7 months ago

For clarification, you mean to ask if I can enable multiple choice votes? If so, I can do that.

albaropereyra22 commented 7 months ago

No I was reading your notes and noticed there was a cap on the number of votes and realized it may become a problem if people have multiple votes like the example I provided. I am asking if you can raise the number of votes to some outrageous number.

On Wed, Mar 27, 2024, 3:05 PM Stefan Petrović @.***> wrote:

For clarification, you mean to ask if I can enable multiple choice votes? If so, I can do that.

— Reply to this email directly, view it on GitHub https://github.com/S-Ptr/he-voting/issues/2#issuecomment-2024070530, or unsubscribe https://github.com/notifications/unsubscribe-auth/BBZFRVZMTSRE63GPY27RKRDY2MYBRAVCNFSM6AAAAABE3MMKGSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMRUGA3TANJTGA . You are receiving this because you authored the thread.Message ID: @.***>

S-Ptr commented 7 months ago

Ah, I see. In short, I could, but that would make the system much less performant.

I would first have to double the polynomial modulus degree, making its value 8192. This would enable me to bring the ciphertext modulus to a higher bit length, and then also raise the value of the plaintext modulus so as to not compromise the noise budget too much.

For example, I could use a 60bit prime for the plaintext modulus and the SEAL recommended value for the ciphertext modulus.With these parameters, I could have 1.1 quintillion votes per candidate (1.152.921.504.606.830.593) and an initial noise budget of 105, which means 2104-1 homomorphic additions with the ciphertext, at worst. These are, indeed, outrageous numbers.

The bad news is that the ciphertext size per vote would go up from around 86.4 kilobytes(kB) to 422.2kB. If we use the US voting population in 2020 of 168.31 million, we would need around 66.18 terabytes (TB) to keep all the data - too big for most people to go over and verify by themselves. As for the processing speed, it also goes down from around 1500 votes/min per core on my machine, to around 300 votes/min.

With the parameters I currently use, multiple choice votes shouldn't be a problem, as the number of votes per candidate, and the worst case estimate for operations performed, don't differ much in value. That being said, the aim is to have a system where one user has the right to vote once

albaropereyra22 commented 7 months ago

That's what I'm talking about about 1.1quintillian votes. I know it would hinder performance and that is why you scale horizontally using something like Nginx.

On Thu, Mar 28, 2024, 5:55 AM Stefan Petrović @.***> wrote:

Ah, I see. In short, I could, but that would make the system much less performant.

I would first have to double the polynomial modulus degree, making its value 8192. This would enable me to bring the ciphertext modulus to a higher bit length, and then also raise the value of the plaintext modulus so as to not compromise the noise budget too much.

For example, I could use a 60bit prime for the plaintext modulus and the SEAL recommended value for the ciphertext modulus.With these parameters, I could have 1.1 quintillion votes per candidate (1.152.921.504.606.830.593) and an initial noise budget of 105, which means 2104-1 homomorphic additions with the ciphertext, at worst. These are, indeed, outrageous numbers.

The bad news is that the ciphertext size per vote would go up from around 86.4 kilobytes(kB) to 422.2kB. If we use the US voting population in 2020 of 168.31 million, we would need around 66.18 terabytes (TB) to keep all the data - too big for most people to go over and verify by themselves. As for the processing speed, it also goes down from around 1500 votes/min per core on my machine, to around 300 votes/min.

With the parameters now set, multiple choice votes shouldn't be a problem, as the number of votes per candidate, and the worst case estimate for operations performed, don't differ much in value.

— Reply to this email directly, view it on GitHub https://github.com/S-Ptr/he-voting/issues/2#issuecomment-2025117942, or unsubscribe https://github.com/notifications/unsubscribe-auth/BBZFRV6YRZQBZUFEPKPZFLTY2QAJHAVCNFSM6AAAAABE3MMKGSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMRVGEYTOOJUGI . You are receiving this because you authored the thread.Message ID: @.***>

S-Ptr commented 7 months ago

The main reason I don't do it is because I don't need to. No poll will get over 2 billion votes. Not yet at least. Also, I'm not sure how well nginx would work in this case, considering Drogon runs on its own HTTP server. I could make some sort of partitioning to increase throughput, but there is also the issue of storage, which is a huge bottleneck in homomorphic encryption schemes, and I try to keep it down as much as I can.

By the time 1.1 quintillion voters are a reality, I expect computers to make the handling of 433kB-sized votes a trivial thing, and then we can raise the parameters to support those values without any meaningful performance loss. By that time, I also expect the world of cryptography to look vastly different as well, making this project an antediluvian relic of a bygone era.

albaropereyra22 commented 7 months ago

Understood. That being said I just bought 1TB micro SD card for $20 on Amazon.

On Wed, Apr 10, 2024, 6:07 AM Stefan Petrović @.***> wrote:

The main reason I don't do it is because I don't need to. No poll will get over 2 billion votes. Not yet at least. Also, I'm not sure how well nginx would work in this case, considering Drogon runs on its own HTTP server. I could make some sort of partitioning to increase throughput, but there is also the issue of storage, which is a huge bottleneck in homomorphic encryption schemes, and I try to keep it down as much as I can.

By the time 1.1 quintillion voters are a reality, I expect computers to make the handling of 433kB-sized votes a trivial thing, and then we can raise the parameters to support those values without any meaningful performance loss. By that time, I also expect the world of cryptography to look vastly different as well, making this project an antediluvian relic of a bygone era.

— Reply to this email directly, view it on GitHub https://github.com/S-Ptr/he-voting/issues/2#issuecomment-2047498337, or unsubscribe https://github.com/notifications/unsubscribe-auth/BBZFRVZOMEN3VKVT7GS3FADY4U2SBAVCNFSM6AAAAABE3MMKGSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANBXGQ4TQMZTG4 . You are receiving this because you authored the thread.Message ID: @.***>

S-Ptr commented 6 months ago

Lucky. The cheapest 1TB MicroSD cards over here are $100. The usual price is upwards of 200 bucks. Send the amazon link.

albaropereyra22 commented 6 months ago

Unfortunately the memory card I bought is no longer available. Here is a link to a similar one a little more expensive of course. 1TB Micro SD Card 1TB Memory Card with SD Card Adapter High Speed Micro SD Memory Cards Class 10 for Smartphone,Action Camera,Tablet and Drone https://www.amazon.com/dp/B0CXT6HHDD?ref_=cm_sw_r_mwn_dp_QJ63VPXAE4UJA1XA09Y1&language=en_US

On Mon, Apr 15, 2024, 8:00 AM Stefan Petrović @.***> wrote:

Lucky. The cheapest 1TB MicroSD cards over here are $100. The usual price is upwards of 200 bucks. Send the amazon link.

— Reply to this email directly, view it on GitHub https://github.com/S-Ptr/he-voting/issues/2#issuecomment-2057072856, or unsubscribe https://github.com/notifications/unsubscribe-auth/BBZFRV2V6HC7ED7C77ICV2DY5PTSBAVCNFSM6AAAAABE3MMKGSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANJXGA3TEOBVGY . You are receiving this because you authored the thread.Message ID: @.***>

albaropereyra22 commented 6 months ago

https://www.amazon.com/dp/B0CXT6HHDD/ref=sspa_mw_detail_0?ie=UTF8&psc=1&sp_csd=d2lkZ2V0TmFtZT1zcF9waG9uZV9kZXRhaWwp13NParams

On Fri, Apr 19, 2024, 12:48 AM Albaro Pereyra @.***> wrote:

Unfortunately the memory card I bought is no longer available. Here is a link to a similar one a little more expensive of course. 1TB Micro SD Card 1TB Memory Card with SD Card Adapter High Speed Micro SD Memory Cards Class 10 for Smartphone,Action Camera,Tablet and Drone https://www.amazon.com/dp/B0CXT6HHDD?ref_=cm_sw_r_mwn_dp_QJ63VPXAE4UJA1XA09Y1&language=en_US

On Mon, Apr 15, 2024, 8:00 AM Stefan Petrović @.***> wrote:

Lucky. The cheapest 1TB MicroSD cards over here are $100. The usual price is upwards of 200 bucks. Send the amazon link.

— Reply to this email directly, view it on GitHub https://github.com/S-Ptr/he-voting/issues/2#issuecomment-2057072856, or unsubscribe https://github.com/notifications/unsubscribe-auth/BBZFRV2V6HC7ED7C77ICV2DY5PTSBAVCNFSM6AAAAABE3MMKGSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANJXGA3TEOBVGY . You are receiving this because you authored the thread.Message ID: @.***>