长期以来,电子投票一直被认为在技术上是不可行的。最近,我在 YouTube 上观看了 Computerphile 频道的一段视频,视频中他们提出了电子投票带来的所有问题。
但是在我的脑海中,有了分布式账本和同态加密,我可以找到任何无法解决的问题。平心而论,这个视频已经有一年半的历史了,但仍然可以猜到这家伙听说过这些技术。
我不是安全专家,但我可以想象一个系统,它可以保证匿名性和对结果的信任:
- 建立一个区块链,每个节点都同意投票算法。(一点也不难,这已经解决了信任软件的问题)
- 生成私有和公共加密密钥。将公钥提供给允许参与投票的任何人。在您信任不会串通的当局之间传播私钥。
- 每个参与者在区块链上都有一个账户,其私钥签署投票“交易”。每个账户都有一票,这是由区块链上每个节点都同意的投票软件来保证的。
- 因为所有交易都在区块链上,所以每个选民都可以追踪他/她的投票并验证它是否被添加到整体结果中。(这解决了另一个主要问题:确保每一票都添加到整体结果中。)
- 原始投票算法可能如下所示:对于参与者可能投票的每一方,他使用选举公钥加密 0 或 1 以及一些盐(因此无法执行查找)。然后他用他的区块链公钥签署他的交易或投票,他的投票得到处理:零和一被添加到每个政党计数器。对于每一个投票,投票的总和被计算和解密。通过这种方式,您可以确定只有一个政党计数器添加了一个(总和必须为 1),但您无法确定参与者投票的政党。
- 解密最终结果。
当然,对于任何解密,持有部分私钥的当局必须就该解密达成一致。
那么到底有哪些电子投票无法解决的问题呢?