CN116452135A - 基于以太坊的分布式匿名投票方法、装置、设备及介质 - Google Patents
基于以太坊的分布式匿名投票方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116452135A CN116452135A CN202310310214.8A CN202310310214A CN116452135A CN 116452135 A CN116452135 A CN 116452135A CN 202310310214 A CN202310310214 A CN 202310310214A CN 116452135 A CN116452135 A CN 116452135A
- Authority
- CN
- China
- Prior art keywords
- voting
- ethernet
- user
- identity
- verification
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000012795 verification Methods 0.000 claims abstract description 88
- 230000008569 process Effects 0.000 claims abstract description 25
- 230000007246 mechanism Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 7
- 238000004422 calculation algorithm Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/10—Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
- G06Q20/105—Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems involving programming of a portable memory device, e.g. IC cards, "electronic purses"
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q2230/00—Voting or election arrangements
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明公开了一种基于以太坊的分布式匿名投票方法、装置、设备及介质,包括:对登记的投票用户进行第一验证,在第一验证通过后将投票用户的身份承诺值存到区块链中,所有投票用户第一验证通过后,开启投票,获取投票用户在区块链上的所有身份承诺值,生成梅克尔树,并根据每个身份承诺值在梅克尔树中的位置,生成梅克尔树过程中的兄弟节点,基于投票用户的匿名身份和外部身份的信息,通过见证执行文件和证明密钥生成证明,获取每个投票用户的投票信息,并将投票信息和证明上传至区块链进行第二验证,在第二验证成功后,采用智能合约根据投票用户的选择,向候选人进行投票,采用本发明可提高投票的公开透明和提高系统的安全性。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种基于以太坊的分布式匿名投票方法、装置、设备及介质。
背景技术
随着互联网技术的快速发展,许多传统的线下服务,都转移到了线上,而网上投票被称为电子投票,电子投票的用户就是选民和选举当局。选民可以随时随地的通过电子投票向选举当局提交他或她的选票,选举当局负责收集选民的选票。电子投票越来越流行,因为它具有很大的潜力,可以有效的处理大量选民的问题,节省时间和成本等优点,因此受到越来越多的关注,并正逐渐取代传统的投票方式。但是,与传统的投票方式不同,电子投票系统可能出现系统故障,网络和信息安全的问题。现有的电子投票系统不仅旨在提高投票的可访问性,还旨在维护一个安全和防篡改的系统,且澳大利亚、巴西、爱沙尼亚、荷兰和挪威等许多国家已经在全国选举中采用了电子投票,然而,这些实施电子投票协议和系统的尝试表明,一些安全问题仍然没有得到解决。
目前,使用服务器(典型的受信任的第三方)可以很容易的构建电子投票系统,但是,服务器会出现单点故障问题,造成数据丢失,但是区块链用一组独立的节点来代替集中式服务器,从而消除了集中式投票带来的单点故障问题。区块链包含了很多安全措施,但是由于其分布式共识的特性,攻击者仍然可以通过分析网络流量和公共账本中的交易信息从而获取到投票用户的信息。
因而,现有电子投票方式缺乏安全高效、信息透明。
发明内容
本发明实施例提供一种基于以太坊的分布式匿名投票方法、装置、计算机设备和存储介质,以提高电子投票的安全性和效率。
为了解决上述技术问题,本申请实施例提供一种基于以太坊的分布式匿名投票方法,所述基于以太坊的分布式匿名投票方法包括:
对登记的投票用户进行第一验证,在第一验证通过后将投票用户的身份承诺值存到区块链中;
在检测到所有投票用户第一验证通过后,开启投票,获取投票用户在区块链上的所有身份承诺值,生成梅克尔树,并根据每个所述身份承诺值在梅克尔树中的位置,生成梅克尔树过程中的兄弟节点,基于投票用户的匿名身份和外部身份的信息,通过见证执行文件和证明密钥生成证明;
获取每个投票用户的投票信息,并将所述投票信息和证明上传至区块链进行第二验证,以验证投票用户的身份承诺值是否存在树上;
在第二验证成功后,采用智能合约根据投票用户的选择,向候选人进行投票。
可选地,在所述对登记的投票用户进行验证,在验证通过后将投票用户的身份承诺值存到区块链中,并在检测到所有投票用户验证通过后,开启投票之前,所述基于以太坊的分布式匿名投票方法还包括:
根据投票用户的个人信息进行以太坊地址的申请;
在获得管理员返回的以太坊地址后,为投票用户注册加密货币钱包,并连接到以太坊区块链网络;
根据投票用户的密钥地址将以太坊账户地址添加到投票用户的加密货币钱包中;
投票过程中从加密货币钱包中获取投票用户的账户信息,然后进行用户登记和验证。
可选地,在所述对登记的投票用户进行验证,在验证通过后将投票用户的身份承诺值存到区块链中,并在检测到所有投票用户验证通过后,开启投票之前,所述基于以太坊的分布式匿名投票方法还包括:
基于投票用户的身份承诺值和零知识证明机制,计算生成验证密钥,所述验证密钥用于对证明进行验证;
将所述验证密钥和验证算法通过智能合约的方式部署到区块链上。
可选地,所述在第二验证成功后,采用智能合约根据投票用户的选择,向候选人进行投票之后,所述基于以太坊的分布式匿名投票方法还包括:
在检测到投票成功后,将投票用户的用户信息和匿名身份哈希后的标识符,记录至区块链上。
可选地,所述在第二验证成功后,采用智能合约根据投票用户的选择,向候选人进行投票之后,所述基于以太坊的分布式匿名投票方法还包括:
采用计票合约在投票结束后统计选票,得到投票结果。
可选地,所述获取投票用户在区块链上的所有身份承诺值,生成梅克尔树,并根据每个所述身份承诺值在梅克尔树中的位置,生成梅克尔树过程中的兄弟节点包括:
在接收到投票用户的投票时,获取链上记录的所有身份承诺;
生成一个梅克尔树,最后返回包括梅克尔树树根,投票用户身份承若的路径索引数组,生成梅克尔树过程中相邻兄弟节点的哈希数组和投票用户身份承诺。
为了解决上述技术问题,本申请实施例还提供一种基于以太坊的分布式匿名投票装置,包括:
第一验证模块,用于对登记的投票用户进行第一验证,在第一验证通过后将投票用户的身份承诺值存到区块链中;
投票启动模块,用于在检测到所有投票用户第一验证通过后,开启投票,获取投票用户在区块链上的所有身份承诺值,生成梅克尔树,并根据每个所述身份承诺值在梅克尔树中的位置,生成梅克尔树过程中的兄弟节点,通过投票用户的匿名身份和外部身份的信息通过见证执行文件和证明密钥生成证明;
第二验证模块,用于获取每个投票用户的投票信息,并将所述投票信息和证明上传至区块链进行第二验证,以验证投票用户的身份承诺值是否存在树上;
投票执行模块,用于在第二验证成功后,采用智能合约根据投票用户的选择,向候选人进行投票。
可选地,所述基于以太坊的分布式匿名投票装置还包括:
地址申请模块,用于根据投票用户的个人信息进行以太坊地址的申请;
钱包注册模块,用于在获得管理员返回的以太坊地址后,为投票用户注册加密货币钱包,并连接到以太坊区块链网络;
地址添加模块,用于根据投票用户的密钥地址将以太坊账户地址添加到投票用户的加密货币钱包中;
信息获取模块,用于投票过程中从加密货币钱包中获取投票用户的账户信息,然后进行用户登记和验证。
可选地,所述基于以太坊的分布式匿名投票装置还包括:
证明密钥生成模块,用于基于投票用户的身份承诺值和零知识证明机制,计算生成验证密钥,所述验证密钥用于对证明进行验证;
部署模块,用于将所述验证密钥和验证算法通过智能合约的方式部署到区块链上。
可选地,所述基于以太坊的分布式匿名投票装置还包括:
用户信息上链模块,用于在检测到投票成功后,将投票用户的用户信息和匿名身份哈希后的标识符,记录至区块链上。
可选地,所述基于以太坊的分布式匿名投票装置还包括:
投票统计模块,用于采用计票合约在投票结束后统计选票,得到投票结果。
可选地,所述证明生成模块包括:
信息获取单元,用于在接收到投票用户的投票时,获取链上记录的所有身份承诺;
树生成单元,用于生成一个梅克尔树,最后返回包括梅克尔树树根,投票用户身份承若的路径索引数组,生成梅克尔树过程中相邻兄弟节点的哈希数组和投票用户身份承诺。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于以太坊的分布式匿名投票方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于以太坊的分布式匿名投票方法的步骤。
本发明实施例提供的基于以太坊的分布式匿名投票方法、装置、计算机设备及存储介质,通过对登记的投票用户进行第一验证,在第一验证通过后将投票用户的身份承诺值存到区块链中,在检测到所有投票用户第一验证通过后,开启投票,获取投票用户在区块链上的所有身份承诺值,生成梅克尔树,并根据每个身份承诺值在梅克尔树中的位置,生成梅克尔树过程中的兄弟节点,通过投票用户的匿名身份和外部身份的信息通过见证执行文件和证明密钥生成证明,获取每个投票用户的投票信息,并将投票信息和证明上传至区块链进行第二验证,以验证投票用户的身份承诺值是否存在树上,在第二验证成功后,采用智能合约根据投票用户的选择,向候选人进行投票,以太坊平台不需要可信任的第三方,区块链用一组独立的节点来代替集中式服务器,从而消除了采用第三方集中式投票带来的单点故障问题,同时区块链中区块的散列和链接使得在数学上不可修改或不可修改投票数据,确保投票的安全性,并且,以太坊允许编写智能合约,并且由所有参与节点强制执行,保证其精度,采用零知识证明机制和梅克尔树来保护用户与合约交互的匿名性,并将整个投票过程和结果都记录在以太坊上,形成基于以太坊链上链下相结合的分布式匿名投票方式,从而实现投票的公开透明和提高系统的安全性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请可以应用于其中的示例性系统架构图;
图2是本申请的基于以太坊的分布式匿名投票方法的一个实施例的流程图;
图3是根据本申请的基于以太坊的分布式匿名投票装置的一个实施例的结构示意图;
图4是根据本申请的计算机设备的一个实施例的结构示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,如图1所示,图1是本发明一实施例中基于以太坊的分布式匿名投票方法的一应用环境示意图,本申请提供的基于以太坊的分布式匿名投票方法,可应用在如图1的应用环境中,其中,区块链由若干个相互间能够进行通信的节点组成,每个节点可以看做是一个块存储,各块存储用于保存数据,每一个数据节点之间都包含所有数据,所述块存储数据具备完整历史记录,可快速复原拓展,区域链分为公有链、私有链和联盟链,公有链是任何节点都是开放的,每个机构/节点都可以参与到这个区块链计算,而且任何机构/节点都可以下载获得完整区块链数据,私有链是有些区块链并不希望这个系统任何人都可参与,不对外公开,适用于特定机构的内部数据管理与审计或开放测试等,联盟链是参与每个节点的权限都完全对等,大家在不需要完全互信的情况下就可以实现数据的可信交换,联盟链的各个节点通常有与之对应的实体机构组织,通过授权后才能加入与退出网络,在使用整个区块链备份系统的过程中,需使用数字签字,数字签字设计一个哈希函数、发送者的公钥、发送者的私钥,区块链具备完整的分布式存储特性,其实是更加庞大的网络数据存储同时使用了“哈希算法”形式的数据结构保存基础数据。
请参阅图2,图2示出本发明实施例提供的一种基于以太坊的分布式匿名投票方法,以该方法应用在图1中的应用环境为例进行说明,详述如下:
S201:对登记的投票用户进行第一验证,在第一验证通过后将投票用户的身份承诺值存到区块链中。
其中,所述身份承诺值根据用户信息生成,为了保证身份承诺的安全性,通过对投票用户的信息进行哈希,然后进行签名,再通过身份函数将其分为两个身份,然后将生成的两个身份的二次哈希作为身份承诺。
在一具体可选方式中,步骤S201之前,也即,在对登记的投票用户进行验证,在验证通过后将投票用户的身份承诺值存到区块链中,并在检测到所有投票用户验证通过后,开启投票之前,基于以太坊的分布式匿名投票方法还包括:
根据投票用户的个人信息进行以太坊地址的申请;
在获得管理员返回的以太坊地址后,为投票用户注册加密货币钱包,并连接到以太坊区块链网络;
根据投票用户的密钥地址将以太坊账户地址添加到投票用户的加密货币钱包中;
投票过程中从加密货币钱包中获取投票用户的账户信息,然后进行用户登记和验证。
在一具体可选方式中,步骤S201之前,也即,在对登记的投票用户进行验证,在验证通过后将投票用户的身份承诺值存到区块链中,并在检测到所有投票用户验证通过后,开启投票之前,基于以太坊的分布式匿名投票方法还包括:
基于投票用户的身份承诺值和零知识证明机制,计算生成验证密钥,所述验证密钥用于对证明进行验证;
将验证密钥和验证算法通过智能合约的方式部署到区块链上。
具体地,定义判断用户身份承诺值是否在书上的电路,然后通过对电路进行编译生成低阶电路circuit.r1cs和生成见证者所需的代码的circuit.wasm,最后根据生成的低阶电路(r1cs)通过MPC计算出生成证明和验证证明所需的密钥,进而将验证密钥和验证算法通过智能合约的方式部署到区块链上。同时,投票用户根据个人信息进行以太坊地址的申请;获得管理员返回的以太坊地址和私钥,为投票用户注册加密货币钱包,并连接到以太坊区块链网络;投票用户根据密钥地址将以太坊账户地址添加到钱包中,投票过程中从加密货币钱包中获取投票用户的账户信息,然后进行用户登记和验证,管理员会对登记的投票用户进行验证,通过后会将用户生成的身份承诺值存到区块链中,所有的投票用户验证通过后,管理员开启投票。
其中,加密货币钱包具体可以为MetaMask钱包。
进一步地,在投票之前需要向管理员申请以太坊账户,在获得管理员给的以太坊地址后根据其私钥将其加入加密货币钱包中,方便账户管理,投票用户获取的以太坊地址用于投票且只有投票用户本人获知,确保账户安全性。本实施例中,使用以太坊提供的web3接口,调用web3.eth.getAccounts()获取账户信息,获取到账户信息后,投票用户就可以登记自己的基本信息。
进一步地,投票用户登记完成后,信息会提交给管理员,管理员审核通过会将用户根据自己信息生成的身份承若存到链上,方便后续的使用。
S202:在检测到所有投票用户第一验证通过后,开启投票,获取投票用户在区块链上的所有身份承诺值,生成梅克尔树,并根据每个身份承诺值在梅克尔树中的位置,生成梅克尔树过程中的兄弟节点,通过投票用户的匿名身份和外部身份的信息通过见证执行文件和证明密钥生成证明。
进一步地,为确保公平公正和生成完整的梅克尔树,需要等所有投票用户登记和验证完毕方可进行投票。
在一具体可选实施方式中,在第二验证成功后,采用智能合约根据投票用户的选择,向候选人进行投票之后,基于以太坊的分布式匿名投票方法还包括:
在一具体可选实施方式中,获取投票用户在区块链上的所有身份承诺值,生成梅克尔树,并根据每个身份承诺值在梅克尔树中的位置,生成梅克尔树过程中的兄弟节点包括:
在接收到投票用户的投票时,获取链上记录的所有身份承诺;
生成一个梅克尔树,最后返回包括梅克尔树树根,投票用户身份承若的路径索引数组,生成梅克尔树过程中相邻兄弟节点的哈希数组和投票用户身份承诺。
其中,投票用户根据用户注册时的身份承诺,根据链上存储的身份承诺,以及定义的树的层树生成梅克尔树,最后根据当前的用户的身份承诺返回其在树种的位置用0/1表示,生成根哈希时的兄弟节点梅克尔树树根。
其中,投票用户根据其用户生成的两个身份,当前用户身份承诺所在树中的位置,证明密钥和编译的circuit.wasms生成证明。
S203:获取每个投票用户的投票信息,并将投票信息和证明上传至区块链进行第二验证,以验证投票用户的身份承诺值是否存在树上。
投票用户将生成的证明,代表用户的标识符,以及投票信息(候选人id),身份承若通过web3提供的接口,发送至投票合约,并且合约会根据传入的证明和其他信息,调用验证合约,验证投票用户的合法性,最后返回true或false,true为验证通过,false为验证不通过。
S204:在第二验证成功后,采用智能合约根据投票用户的选择,向候选人进行投票。
在检测到投票成功后,将投票用户的用户信息和匿名身份哈希后的标识符,记录至区块链上。
在一具体可选实施方式中,在第二验证成功后,采用智能合约根据投票用户的选择,向候选人进行投票之后,基于以太坊的分布式匿名投票方法还包括:
采用计票合约在投票结束后统计选票,得到投票结果。
其中,验证合约验证通过后,会根据其选中的id为候选人投票。为防止二次投票,将其代表投票用户的标识符记录在链上,最后投票过程中所产生的gas消耗由第三方账户支付。防止恶意用户溯源破环其匿名性。所有人投票结束后,管理员结束该项目的投票,然后会调用计票合约会自动统计合法候选人获得投票的次数,将次数累加作为候选人获得的票数。以太坊的多方节点产生共识后将其结果记录在区块链上,然后公布其结果。
本实施例中,对登记的投票用户进行第一验证,在第一验证通过后将投票用户的身份承诺值存到区块链中,在检测到所有投票用户第一验证通过后,开启投票,获取投票用户在区块链上的所有身份承诺值,生成梅克尔树,并根据每个身份承诺值在梅克尔树中的位置,生成梅克尔树过程中的兄弟节点,基于投票用户的匿名身份和外部身份的信息,通过见证执行文件和证明密钥生成证明,获取每个投票用户的投票信息,并将投票信息和证明上传至区块链进行第二验证,以验证投票用户的身份承诺值是否存在树上,在第二验证成功后,采用智能合约根据投票用户的选择,向候选人进行投票,以太坊平台不需要可信任的第三方,区块链用一组独立的节点来代替集中式服务器,从而消除了采用第三方集中式投票带来的单点故障问题,同时区块链中区块的散列和链接使得在数学上不可修改或不可修改投票数据,确保投票的安全性,并且,以太坊允许编写智能合约,并且由所有参与节点强制执行,保证其精度,采用零知识证明机制和梅克尔树来保护用户与合约交互的匿名性,并将整个投票过程和结果都记录在以太坊上,形成基于以太坊链上链下相结合的分布式匿名投票方式,从而实现投票的公开透明和提高系统的安全性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
图3示出与上述实施例基于以太坊的分布式匿名投票方法一一对应的基于以太坊的分布式匿名投票装置的原理框图。如图3所示,该基于以太坊的分布式匿名投票装置包括第一验证模块31、投票启动模块32、第二验证模块33和投票执行模块34。各功能模块详细说明如下:
第一验证模块31,用于对登记的投票用户进行第一验证,在第一验证通过后将投票用户的身份承诺值存到区块链中;
投票启动模块32,用于在检测到所有投票用户第一验证通过后,开启投票,获取投票用户在区块链上的所有身份承诺值,生成梅克尔树,并根据每个身份承诺值在梅克尔树中的位置,生成梅克尔树过程中的兄弟节点,基于投票用户的匿名身份和外部身份的信息,通过见证执行文件和证明密钥生成证明;
第二验证模块33,用于获取每个投票用户的投票信息,并将投票信息和证明上传至区块链进行第二验证,以验证投票用户的身份承诺值是否存在树上;
投票执行模块34,用于在第二验证成功后,采用智能合约根据投票用户的选择,向候选人进行投票。
可选地,基于以太坊的分布式匿名投票装置还包括:
地址申请模块,用于根据投票用户的个人信息进行以太坊地址的申请;
钱包注册模块,用于在获得管理员返回的以太坊地址后,对投票用户注册加密货币钱包,并连接到以太坊区块链网络;
地址添加模块,用于根据投票用户的密钥地址将以太坊账户地址添加到投票用户的加密货币钱包中;
信息获取模块,用于投票过程中从加密货币钱包中获取投票用户的账户信息,然后进行用户登记和验证。
可选地,基于以太坊的分布式匿名投票装置还包括:
证明密钥生成模块,用于基于投票用户的身份承诺值和零知识证明机制,计算生成验证密钥,所述验证密钥用于对证明进行验证;
部署模块,用于将验证密钥和验证算法通过智能合约的方式部署到区块链上。
可选地,基于以太坊的分布式匿名投票装置还包括:
用户信息上链模块,用于在检测到投票成功后,将投票用户的用户信息和匿名身份哈希后的标识符,记录至区块链上。
可选地,基于以太坊的分布式匿名投票装置还包括:
投票统计模块,用于采用计票合约在投票结束后统计选票,得到投票结果。
可选地,投票启动模块32包括:
信息获取单元,用于在接收到投票用户的投票时,获取链上记录的所有身份承诺;
树生成单元,用于生成一个梅克尔树,最后返回包括梅克尔树树根,投票用户身份承若的路径索引数组,生成梅克尔树过程中相邻兄弟节点的哈希数组和投票用户身份承诺。
关于基于以太坊的分布式匿名投票装置的具体限定可以参见上文中对于基于以太坊的分布式匿名投票方法的限定,在此不再赘述。上述基于以太坊的分布式匿名投票装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图4,图4为本实施例计算机设备基本结构框图。
所述计算机设备4包括通过系统总线相互通信连接存储器41、处理器42、网络接口43。需要指出的是,图中仅示出了具有组件连接存储器41、处理器42、网络接口43的计算机设备4,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器41至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或D界面显示存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器41可以是所述计算机设备4的内部存储单元,例如该计算机设备4的硬盘或内存。在另一些实施例中,所述存储器41也可以是所述计算机设备4的外部存储设备,例如该计算机设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器41还可以既包括所述计算机设备4的内部存储单元也包括其外部存储设备。本实施例中,所述存储器41通常用于存储安装于所述计算机设备4的操作系统和各类应用软件,例如基于以太坊的分布式匿名投票的程序代码等。此外,所述存储器41还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器42在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器42通常用于控制所述计算机设备4的总体操作。本实施例中,所述处理器42用于运行所述存储器41中存储的程序代码或者处理数据,例如运行基于以太坊的分布式匿名投票的程序代码。
所述网络接口43可包括无线网络接口或有线网络接口,该网络接口43通常用于在所述计算机设备4与其他电子设备之间建立通信连接。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有界面显示程序,所述界面显示程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的基于以太坊的分布式匿名投票方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。
Claims (10)
1.一种基于以太坊的分布式匿名投票方法,其特征在于,包括:
对登记的投票用户进行第一验证,在第一验证通过后将投票用户的身份承诺值存到区块链中;
在检测到所有投票用户第一验证通过后,开启投票,获取投票用户在区块链上的所有身份承诺值,生成梅克尔树,并根据每个所述身份承诺值在梅克尔树中的位置,生成梅克尔树过程中的兄弟节点,基于投票用户的匿名身份和外部身份的信息,通过见证执行文件和证明密钥生成证明;
获取每个投票用户的投票信息,并将所述投票信息和证明上传至区块链进行第二验证,以验证投票用户的身份承诺值是否存在树上;
在第二验证成功后,采用智能合约根据投票用户的选择,向候选人进行投票。
2.如权利要求1所述的基于以太坊的分布式匿名投票方法,其特征在于,在所述对登记的投票用户进行验证,在验证通过后将投票用户的身份承诺值存到区块链中,并在检测到所有投票用户验证通过后,开启投票之前,所述基于以太坊的分布式匿名投票方法还包括:
根据投票用户的个人信息进行以太坊地址的申请;
在获得管理员返回的以太坊地址后,为投票用户注册加密货币钱包,并连接到以太坊区块链网络;
根据投票用户的密钥地址将以太坊账户地址添加到投票用户的加密货币钱包中;
投票过程中从加密货币钱包中获取投票用户的账户信息,然后进行用户登记和验证。
3.如权利要求1所述的基于以太坊的分布式匿名投票方法,其特征在于,在所述对登记的投票用户进行验证,在验证通过后将投票用户的身份承诺值存到区块链中,并在检测到所有投票用户验证通过后,开启投票之前,所述基于以太坊的分布式匿名投票方法还包括:
基于投票用户的身份承诺值和零知识证明机制,计算生成验证密钥,所述验证密钥用于对证明进行验证;
将所述验证密钥和验证算法通过智能合约的方式部署到区块链上。
4.如权利要求1所述的基于以太坊的分布式匿名投票方法,其特征在于,所述在第二验证成功后,采用智能合约根据投票用户的选择,向候选人进行投票之后,所述基于以太坊的分布式匿名投票方法还包括:
在检测到投票成功后,将投票用户的用户信息和匿名身份哈希后的标识符,记录至区块链上,防止用户二次投票。
5.如权利要求1所述的基于以太坊的分布式匿名投票方法,其特征在于,所述在第二验证成功后,采用智能合约根据投票用户的选择,向候选人进行投票之后,所述基于以太坊的分布式匿名投票方法还包括:
采用计票合约在投票结束后统计选票,得到投票结果。
6.如权利要求1所述的基于以太坊的分布式匿名投票方法,其特征在于,所述获取投票用户在区块链上的所有身份承诺值,生成梅克尔树,并根据每个所述身份承诺值在梅克尔树中的位置,生成梅克尔树过程中的兄弟节点包括:
在接收到投票用户的投票时,获取链上记录的所有身份承诺;
生成一个梅克尔树,最后返回包括梅克尔树树根,投票用户身份承若的路径索引数组,生成梅克尔树过程中相邻兄弟节点的哈希数组和投票用户身份承诺。
7.一种基于以太坊的分布式匿名投票装置,其特征在于,所述基于以太坊的分布式匿名投票装置包括:
第一验证模块,用于对登记的投票用户进行第一验证,在第一验证通过后将投票用户的身份承诺值存到区块链中;
投票启动模块,用于在检测到所有投票用户第一验证通过后,开启投票,获取投票用户在区块链上的所有身份承诺值,生成梅克尔树,并根据每个所述身份承诺值在梅克尔树中的位置,生成梅克尔树过程中的兄弟节点,基于投票用户的匿名身份和外部身份的信息,通过见证执行文件和证明密钥生成证明;
第二验证模块,用于获取每个投票用户的投票信息,并将所述投票信息和证明上传至区块链进行第二验证,以验证投票用户的身份承诺值是否存在树上;
投票执行模块,用于在第二验证成功后,采用智能合约根据投票用户的选择,向候选人进行投票。
8.如权利要求7所述的基于以太坊的分布式匿名投票装置,其特征在于,
所述基于以太坊的分布式匿名投票装置还包括:
地址申请模块,用于根据投票用户的个人信息进行以太坊地址的申请;
钱包注册模块,用于在获得管理员返回的以太坊地址后,为投票用户注册加密货币钱包,并连接到以太坊区块链网络;
地址添加模块,用于根据投票用户的密钥地址将以太坊账户地址添加到投票用户的加密货币钱包中;
信息获取模块,用于投票过程中从加密货币钱包中获取投票用户的账户信息,然后进行用户登记和验证。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的基于以太坊的分布式匿名投票方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的基于以太坊的分布式匿名投票方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310310214.8A CN116452135A (zh) | 2023-03-24 | 2023-03-24 | 基于以太坊的分布式匿名投票方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310310214.8A CN116452135A (zh) | 2023-03-24 | 2023-03-24 | 基于以太坊的分布式匿名投票方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116452135A true CN116452135A (zh) | 2023-07-18 |
Family
ID=87134868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310310214.8A Pending CN116452135A (zh) | 2023-03-24 | 2023-03-24 | 基于以太坊的分布式匿名投票方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116452135A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117155977A (zh) * | 2023-10-27 | 2023-12-01 | 中电科大数据研究院有限公司 | 一种基于区块链的数据交易权益分配方法和装置 |
-
2023
- 2023-03-24 CN CN202310310214.8A patent/CN116452135A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117155977A (zh) * | 2023-10-27 | 2023-12-01 | 中电科大数据研究院有限公司 | 一种基于区块链的数据交易权益分配方法和装置 |
CN117155977B (zh) * | 2023-10-27 | 2024-01-26 | 中电科大数据研究院有限公司 | 一种基于区块链的数据交易权益分配方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109639632B (zh) | 基于区块链的用户信息管理方法、电子设备及存储介质 | |
CN112632629B (zh) | 基于区块链的投票管理方法、装置、介质及电子设备 | |
Zhu et al. | Hybrid blockchain design for privacy preserving crowdsourcing platform | |
CN113256297B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN111416709B (zh) | 基于区块链系统的投票方法、装置、设备及存储介质 | |
CN109886810B (zh) | 众包交易方法及系统、可读存储介质和终端 | |
CN114338666A (zh) | 对Fabric区块链跨链交易的验证方法、装置、设备及介质 | |
Priya et al. | Block chain technology based electoral franchise | |
CN111431908B (zh) | 一种访问处理方法、装置,管理服务器及可读存储介质 | |
CN116452135A (zh) | 基于以太坊的分布式匿名投票方法、装置、设备及介质 | |
CN112069529B (zh) | 基于区块链的卷宗管理方法、装置、计算机以及存储介质 | |
CN113779642A (zh) | 数据处理方法及其装置、系统、电子设备 | |
Chaudhary et al. | Blockchain-based secure voting mechanism underlying 5G network: A smart contract approach | |
Chaudhary et al. | Decentralized voting platform based on Ethereum blockchain | |
CN111680282A (zh) | 基于区块链网络的节点管理方法、装置、设备及介质 | |
Kumar et al. | Psebvc: Provably secure ecc and biometric based authentication framework using smartphone for vehicular cloud environment | |
RU2659736C1 (ru) | Система и способ выявления новых устройств при взаимодействии пользователя с банковскими сервисами | |
Olaniyi et al. | A Secure Electronic Voting System Using Multifactor Authentication and Blockchain Technologies | |
CN114329544A (zh) | 模型应用方法、区块链客户端、计算平台、区块链及设备 | |
Salman et al. | Development of Electronic Elections Systems: A Review | |
CN112037062A (zh) | 交易共识方法、装置、电子设备及可读存储介质 | |
CN110910091A (zh) | 一种数据处理方法、设备及介质 | |
de Farias et al. | Approach based on STPA extended with STRIDE and LINDDUN, and blockchain to develop a mission-critical e-voting system | |
CN114021187B (zh) | 一种数据处理系统、方法及电子设备 | |
CN113592650B (zh) | 基于区块链智能合约的交易方法、装置和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |