基于以太坊的分布式匿名投票方法、装置、设备及介质

文档序号:34863941发布日期:2023-07-23 15:49阅读:48来源:国知局
基于以太坊的分布式匿名投票方法、装置、设备及介质

本发明涉及区块链,尤其涉及一种基于以太坊的分布式匿名投票方法、装置、设备及介质。


背景技术:

1、随着互联网技术的快速发展,许多传统的线下服务,都转移到了线上,而网上投票被称为电子投票,电子投票的用户就是选民和选举当局。选民可以随时随地的通过电子投票向选举当局提交他或她的选票,选举当局负责收集选民的选票。电子投票越来越流行,因为它具有很大的潜力,可以有效的处理大量选民的问题,节省时间和成本等优点,因此受到越来越多的关注,并正逐渐取代传统的投票方式。但是,与传统的投票方式不同,电子投票系统可能出现系统故障,网络和信息安全的问题。现有的电子投票系统不仅旨在提高投票的可访问性,还旨在维护一个安全和防篡改的系统,且澳大利亚、巴西、爱沙尼亚、荷兰和挪威等许多国家已经在全国选举中采用了电子投票,然而,这些实施电子投票协议和系统的尝试表明,一些安全问题仍然没有得到解决。

2、目前,使用服务器(典型的受信任的第三方)可以很容易的构建电子投票系统,但是,服务器会出现单点故障问题,造成数据丢失,但是区块链用一组独立的节点来代替集中式服务器,从而消除了集中式投票带来的单点故障问题。区块链包含了很多安全措施,但是由于其分布式共识的特性,攻击者仍然可以通过分析网络流量和公共账本中的交易信息从而获取到投票用户的信息。

3、因而,现有电子投票方式缺乏安全高效、信息透明。


技术实现思路

1、本发明实施例提供一种基于以太坊的分布式匿名投票方法、装置、计算机设备和存储介质,以提高电子投票的安全性和效率。

2、为了解决上述技术问题,本技术实施例提供一种基于以太坊的分布式匿名投票方法,所述基于以太坊的分布式匿名投票方法包括:

3、对登记的投票用户进行第一验证,在第一验证通过后将投票用户的身份承诺值存到区块链中;

4、在检测到所有投票用户第一验证通过后,开启投票,获取投票用户在区块链上的所有身份承诺值,生成梅克尔树,并根据每个所述身份承诺值在梅克尔树中的位置,生成梅克尔树过程中的兄弟节点,基于投票用户的匿名身份和外部身份的信息,通过见证执行文件和证明密钥生成证明;

5、获取每个投票用户的投票信息,并将所述投票信息和证明上传至区块链进行第二验证,以验证投票用户的身份承诺值是否存在树上;

6、在第二验证成功后,采用智能合约根据投票用户的选择,向候选人进行投票。

7、可选地,在所述对登记的投票用户进行验证,在验证通过后将投票用户的身份承诺值存到区块链中,并在检测到所有投票用户验证通过后,开启投票之前,所述基于以太坊的分布式匿名投票方法还包括:

8、根据投票用户的个人信息进行以太坊地址的申请;

9、在获得管理员返回的以太坊地址后,为投票用户注册加密货币钱包,并连接到以太坊区块链网络;

10、根据投票用户的密钥地址将以太坊账户地址添加到投票用户的加密货币钱包中;

11、投票过程中从加密货币钱包中获取投票用户的账户信息,然后进行用户登记和验证。

12、可选地,在所述对登记的投票用户进行验证,在验证通过后将投票用户的身份承诺值存到区块链中,并在检测到所有投票用户验证通过后,开启投票之前,所述基于以太坊的分布式匿名投票方法还包括:

13、基于投票用户的身份承诺值和零知识证明机制,计算生成验证密钥,所述验证密钥用于对证明进行验证;

14、将所述验证密钥和验证算法通过智能合约的方式部署到区块链上。

15、可选地,所述在第二验证成功后,采用智能合约根据投票用户的选择,向候选人进行投票之后,所述基于以太坊的分布式匿名投票方法还包括:

16、在检测到投票成功后,将投票用户的用户信息和匿名身份哈希后的标识符,记录至区块链上。

17、可选地,所述在第二验证成功后,采用智能合约根据投票用户的选择,向候选人进行投票之后,所述基于以太坊的分布式匿名投票方法还包括:

18、采用计票合约在投票结束后统计选票,得到投票结果。

19、可选地,所述获取投票用户在区块链上的所有身份承诺值,生成梅克尔树,并根据每个所述身份承诺值在梅克尔树中的位置,生成梅克尔树过程中的兄弟节点包括:

20、在接收到投票用户的投票时,获取链上记录的所有身份承诺;

21、生成一个梅克尔树,最后返回包括梅克尔树树根,投票用户身份承若的路径索引数组,生成梅克尔树过程中相邻兄弟节点的哈希数组和投票用户身份承诺。

22、为了解决上述技术问题,本技术实施例还提供一种基于以太坊的分布式匿名投票装置,包括:

23、第一验证模块,用于对登记的投票用户进行第一验证,在第一验证通过后将投票用户的身份承诺值存到区块链中;

24、投票启动模块,用于在检测到所有投票用户第一验证通过后,开启投票,获取投票用户在区块链上的所有身份承诺值,生成梅克尔树,并根据每个所述身份承诺值在梅克尔树中的位置,生成梅克尔树过程中的兄弟节点,通过投票用户的匿名身份和外部身份的信息通过见证执行文件和证明密钥生成证明;

25、第二验证模块,用于获取每个投票用户的投票信息,并将所述投票信息和证明上传至区块链进行第二验证,以验证投票用户的身份承诺值是否存在树上;

26、投票执行模块,用于在第二验证成功后,采用智能合约根据投票用户的选择,向候选人进行投票。

27、可选地,所述基于以太坊的分布式匿名投票装置还包括:

28、地址申请模块,用于根据投票用户的个人信息进行以太坊地址的申请;

29、钱包注册模块,用于在获得管理员返回的以太坊地址后,为投票用户注册加密货币钱包,并连接到以太坊区块链网络;

30、地址添加模块,用于根据投票用户的密钥地址将以太坊账户地址添加到投票用户的加密货币钱包中;

31、信息获取模块,用于投票过程中从加密货币钱包中获取投票用户的账户信息,然后进行用户登记和验证。

32、可选地,所述基于以太坊的分布式匿名投票装置还包括:

33、证明密钥生成模块,用于基于投票用户的身份承诺值和零知识证明机制,计算生成验证密钥,所述验证密钥用于对证明进行验证;

34、部署模块,用于将所述验证密钥和验证算法通过智能合约的方式部署到区块链上。

35、可选地,所述基于以太坊的分布式匿名投票装置还包括:

36、用户信息上链模块,用于在检测到投票成功后,将投票用户的用户信息和匿名身份哈希后的标识符,记录至区块链上。

37、可选地,所述基于以太坊的分布式匿名投票装置还包括:

38、投票统计模块,用于采用计票合约在投票结束后统计选票,得到投票结果。

39、可选地,所述证明生成模块包括:

40、信息获取单元,用于在接收到投票用户的投票时,获取链上记录的所有身份承诺;

41、树生成单元,用于生成一个梅克尔树,最后返回包括梅克尔树树根,投票用户身份承若的路径索引数组,生成梅克尔树过程中相邻兄弟节点的哈希数组和投票用户身份承诺。

42、为了解决上述技术问题,本技术实施例还提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于以太坊的分布式匿名投票方法的步骤。

43、为了解决上述技术问题,本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于以太坊的分布式匿名投票方法的步骤。

44、本发明实施例提供的基于以太坊的分布式匿名投票方法、装置、计算机设备及存储介质,通过对登记的投票用户进行第一验证,在第一验证通过后将投票用户的身份承诺值存到区块链中,在检测到所有投票用户第一验证通过后,开启投票,获取投票用户在区块链上的所有身份承诺值,生成梅克尔树,并根据每个身份承诺值在梅克尔树中的位置,生成梅克尔树过程中的兄弟节点,通过投票用户的匿名身份和外部身份的信息通过见证执行文件和证明密钥生成证明,获取每个投票用户的投票信息,并将投票信息和证明上传至区块链进行第二验证,以验证投票用户的身份承诺值是否存在树上,在第二验证成功后,采用智能合约根据投票用户的选择,向候选人进行投票,以太坊平台不需要可信任的第三方,区块链用一组独立的节点来代替集中式服务器,从而消除了采用第三方集中式投票带来的单点故障问题,同时区块链中区块的散列和链接使得在数学上不可修改或不可修改投票数据,确保投票的安全性,并且,以太坊允许编写智能合约,并且由所有参与节点强制执行,保证其精度,采用零知识证明机制和梅克尔树来保护用户与合约交互的匿名性,并将整个投票过程和结果都记录在以太坊上,形成基于以太坊链上链下相结合的分布式匿名投票方式,从而实现投票的公开透明和提高系统的安全性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1