logo好方法网

基于区块链的电子投票方法、装置及存储介质


技术摘要:
本方案涉及区块链领域,公开一种基于区块链的电子投票方法、装置及存储介质,包括:创建投票箱账户以及多个投票账户,投票箱账户包括账户余额为0的支持账户和反对账户,任一投票账户i的余额为投票账户i拥有的投票权重ai;任一投票账户i同时发起两笔交易,一笔交易将所  全部
背景技术:
随着互联网技术的发展,基于互联网技术的电子投票应用在越来越多的场景中, 例如上市公司召开年度股东大会、民主选举等场景。借助互联网技术为投票效率的提升带 来巨大的帮助,同时也大大节约了投票活动的成本。 然而传统电子投票系统使用中心化服务器来实现投票统计,很难同时确保隐私性 以及可验证性,在可验证性方面,传统电子投票系统由中心机构管控,投票结果由电子投票 系统汇总发布,投票账户对于投票结果生成的过程不了解,也无法验证投票结果的正确性。 中心机构的工作人员有篡改数据的能力,易造成暗箱操作。投票记录与统计结果由中心服 务器处理,公示的投票结果需要依靠中心机构的信用背书来保证真实性,无法验证投票的 正确性,难以让公众信服。并且,传统模式投票结果的发布依赖人工干预,无法确保投票者 信息的保密性。 目前虽然也有区块链技术应用在投票中,但是多数都是在投票环节采用区块链技 术,保护了投票者的隐私,但是在最终的计票阶段,是投票组织者将投票密文解密得到投票 结果,但各投票方无法验证投票发起方公布的投票结果是否正确,这无法保证投票的公正 性,而截至目前,暂未有公开的解决方案。
技术实现要素:
为解决以上技术问题,本发明提供一种基于区块链的电子投票方法,包括以下步 骤: 创建投票账户:在区块链上创建投票箱账户以及多个投票账户,其中,投票箱账户 包括账户余额为0的支持账户和反对账户,任一投票账户i的余额为投票账户i拥有的投票 权重ai,i=1至n; 发起投票并上传至区块链:任一投票账户i同时发起两笔交易Ti1和Ti2,其中,Ti1交 易将所有的投票权重投给投票箱账户中的一个账户,而Ti2交易向投票箱账户中的另一个账 户投0票,其中,所述两笔交易采用佩德森承诺格式,并使用椭圆曲线加密算法形成交易的 密文Ti1=ai*G x_tia*H,和Ti2=0*G x_tir*H, 其中,G和H是椭圆曲线上设定的点,且满足H=h*G,h为私钥, 其中,x_tia表示投票账户i支持的盲因子; x_tir表示投票账户i反对的盲因子; 从而得到支持账户的余额的密文AP=ap*G xp*H; 反对账户的余额的密文RP=ar*G xr*H; 其中,a1、a2、…am表示投票账户1、2、…m投支持票的投票权重,ap=(a1 a2 ... am) 5 CN 111612457 A 说 明 书 2/11 页 表示支持账户的余额的明文,m表示有m个投票账户投支持票; am 1、…、an表示投票账户m 1、…、n投反对票的投票权重,ar=(am 1 ... an)表示反 对账户的余额的明文, xp=(x_t1a x_t2a ... x_tma x_t(m 1)r ...x_tnr),xp表示m个支持盲因子与n-m个 反对盲因子的和; xr=(x_t1r x_t2r ... x_tmr x_t(m 1)a ...x_tna),xr表示m个反对盲因子与n-m个 支持盲因子的和; 验证投票:提供AP和RP大小关系的签名,并进行验证投票结果。 本发明还提供一种电子装置,该电子装置包括:存储器和处理器,所述存储器中存 储有基于区块链的电子投票程序,所述基于区块链的电子投票程序被所述处理器执行时实 现如上所述的基于区块链的电子投票方法。 本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机 程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,实现如上所述的基于 区块链的电子投票方法。 本发明通过每个投票人同时向支持账户和反对账户投票,实现了一种混淆状态下 的电子投票方法,利用椭圆曲线加密方法,对投票信息进行加密,确保投票信息的保密性。 采用ECDSA算法、RangeProof算法验证投票结果,确保投票结果的可验证性。 附图说明 通过结合下面附图对其实施例进行描述,本发明的上述特征和技术优点将会变得 更加清楚和容易理解。 图1是表示本发明第一实施例的基于区块链的电子投票方法的步骤示意图; 图2是表示本发明的电子装置的硬件架构示意图; 图3是表示本发明实施例的基于区块链的电子投票程序的流程示意图。
分享到:
收藏