如何实现匿名投票?

93 天前
 meeop

问了 ai,感觉方案都有缺陷

前置条件:

允许事先对每个人验证身份,并官方提供可能的认证信息

要求:

1 投票结果是准确的,即可以确定确实是有资格的 n 个人投票并投给特定提案

2 投票是匿名的,即只能确定投票人有投票资格,而不知道具体是谁(包括主持人或者组织者也不知道)

3 完全线上化,算法化

其他边界条件:

一人一票

只能本人投票,不可代他人投票

除非全部参与者坐到一起提供全部信息并且不撒谎,否则无法确认每一票的投票人

假定大多数人是诚信的,少数人可能会破坏投票

如果有破坏者,是可以在大多数人配合的情况下找到的

890 次点击
所在节点    问与答
11 条回复
laminux29
93 天前
非常简单:

1.官方打印一堆全局唯一的随机数字,10 - 12 位就行,不能是连续的。如果不缺钱,甚至可以做成刮刮卡形式的,要刮开才能看到随机数。

2.随机数或刮刮卡,以抽卡的形式发放,保证每个人是随机抽取到的,不能使用发放的形式,不然大家会觉得随机数或刮刮卡上面有记号。

3.投票时,需要输入这些随机数字,才能投票。这样就保证了投票人是有资格的。

4. [不可代他人投票] ,这一条是做不到的,因为它与匿名投票冲突了。就连大会堂的投票,都能发生代投票。
Aoang
93 天前
只要程序不记录,就能匿名。不然还不是追着痕迹找到人。

问题核心在于如何信任程序会不记录
meeop
92 天前
@laminux29 只要是物理领票或者投票,就有可能通过比如隐藏监控,或者领票后查看票池判断你的身份

不可代投,我想表达的是不可冒用别人身份投,可以通过每个人对投票信息私有签名来保证
meeop
92 天前
@Aoang 所以强调一定得是算法安全,不能信任任何人
laminux29
92 天前
@meeop

1.请仔细看第 2 条:保证每个人是随机抽取到的。
也就是每个人领取时,是随机抽取,就算有监控,也无法看到那个人到底拿了啥。而且如果是刮刮卡,保密性更好。我觉得你应该从没参与过现场纸质匿名投票与抽票,你可以自己先试一下。

2.只要是匿名投票,就做不到不可代投,这是原理问题。你说的私有签名,持有者是可以主动把私有签名发送给其他人的。
wcxu1123
92 天前
我感觉既然有途径找到所谓的“破坏者”,那这还是多了很多弯弯绕绕实名制。一个有权限投票的人投什么都是他的自由,什么情况会成为破坏者呢?破坏预期结果的人?
meeop
92 天前
@laminux29 在主办方作弊情况下,这个随机领取是无法保证的,比如各种彩票,也可以通过取票后检查剩余哪些票来判断你取了哪张。

扑克作弊有一种方法就是在扑克背面隐藏信息(比如图案🈶细微差别),这个刮刮卡完全可以从很多我不知道的角度做手脚,从而观察到我拿走哪张或者至少观察到剩余哪些
meeop
92 天前
@laminux29 我没表达清楚,不是不能在别人授权下代投,是不能在别人未授权冒用别人的身份投,即不能(被代表)
meeop
92 天前
@wcxu1123 如果有人不想这个投票完成,就一直搞破坏。如果破坏者不能被发现
,那么就可以用暗中破坏的方式让投票永远完不成

比如美国大选懂王确定落选情况下,就有可能无限破坏投票
laminux29
92 天前
@meeop 我们讨论这个话题的前提是,主办方是公正的。

如果主办方不公正,随便你用什么办法,如果我是主办方,我都能作弊,这样就没有讨论的意义了。
meeop
89 天前
@laminux29 恩恩对的,所以我在想有没有办法在任何一方都可能作弊的情况下达成匿名投票。

如果是实名投票,用区块链合约可以轻松实现可靠投票

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1014739

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX