在区块链上进行投票,这听起来似乎是一个极好的想法,不仅能够保证消除欺诈行为,同时又为最终结果提供了完全的透明度。
但是在实践中,既要保持投票不公开(所以你不知道一个人的投票方式)又无需第三方参与,以这样的方式是很难实际实施区块链投票的。
目前已经出现了一些使用区块链作为选票箱的投票应用,例如Blockchain Voting Machine、Follow My Vote and TIVI。但是这些应用中的任何一个都会以某种方式来依靠第三方实现投票人的隐私。
然而,在本周于马耳他举行的金融加密与数据安全会议上,英国纽卡斯尔大学的一名博士研究生引起了观众的关注,他提出了一项涉及安全投票的提案,而且不涉及第三方提供隐私或计票。
Patrick McCorry的开放投票网络(Open Vote Network)是一个在Solidity中编写的智能合约,而其中由以太坊接管可信任第三方的工作。
McCorry表示,这对于董事会表决来说是一个理想的解决方案,尽管对大型集团来说可能不会如此。
Patrick McCorry
他向CoinDesk解释了这个想法:“每个人都可以进行加密投票。然后在选举结束时,一旦所有选票都投出,任何人,包括观察员,都可以简单地将加密的投票加在一起。这将抵消加密中的所有随机因素,并仅显示最终计票结果。”
披荆斩棘
当McCorry与他的研究人员首次接手这个项目时,就遇到了两个问题。
第一个问题就是在以太坊中设计投票计划时,直到最后一位投票人投出选票平台才会计算最终计票,这就要求所有人100%的参与。而第二个是一个适应性问题,也就是最后的投票人能够在投票前计算票数。这就会产生问题,因为知道了前面的票数很有可能左右一个人的投票。
然而,使用以太坊与加密技术,Open Vote Network团队找到了解决这两个问题的方法。
这个系统的工作原理是这样的:选举管理员向以太坊发送一份投票人“白名单”。接着,当投票人进行选举登记时,他们会支付小额的保证金。投票人要在有限的时间内投出选票,否则就无法拿回保证金。
选票投出时,首先会经过加密,然后才会提交至以太坊中。一旦所有选票都已投出(或投票时间限制已结束),以太坊计算选票数目,从而保证投票的隐私性。
而且,一旦最后一位投票人投出选票,即使是在选票数目清点计算之后,那么他也无法更改选票。
McCorry解释说,他的方法是依靠于这样一个事实,即参与选举的投票人是已知的。这是一种优势,因为这能够利用同侪压力来鼓励投票。
前路漫漫
展望未来,McCorry合理预见了去中心化收集选票得到广泛实施的时刻。
McCorry说:“我们想表明的是去中心化选举是可行的,因为它已经在各种学术文献中探讨了很多年,只是还未得到实际实施而已。”
他补充说,该项目(其代码现在可在Github中获取)也表明,由于Open Vote Network使用了ElGamal和零知识证明,以太坊能够支持加密技术。
McCorry总结说,他和他的团队目前正在研究如何将区块链技术用于更大规模的选举中。