基于以太坊区块链的电子投票方法及系统与流程

文档序号:22621604发布日期:2020-10-23 19:27阅读:293来源:国知局
基于以太坊区块链的电子投票方法及系统与流程

本发明涉及信息安全技术领域,尤其涉及一种基于以太坊区块链的电子投票方法、一种基于以太坊区块链的电子投票系统。



背景技术:

随着区块链技术的高速发展,其去中心化、可追溯、不可篡改、公开性的先天优势被很好地应用在电子投票领域,大量的电子投票方法借助区块链技术实现。目前,基于区块链实现的投票方法主要分为两种:自计票投票方法和非自计票投票方法。

其中,自计票投票方法的优势在于可以最大程度地保护选票本身的隐私,不依赖可信第三方,并切断选票与选民身份之间的关联性。但该方法的投票人数规模受限,承载能力不足,仅支持小规模会议室投票,并且鲁棒性较差,选民中途退出会导致投票协议中断,此外投票过程的计算开销成本较大,难以支持单人多票的复杂场景。

非自计票投票方法的优势在于投票内容以及计票方法简单高效,并且鲁棒性较好。但该方法对于可信第三方的依赖普遍存在,以及缺少对投票人数承载能力的设计与实践,并且对于投票过程的公平性保证、以及选民作恶行为缺乏有效制约手段。



技术实现要素:

本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的一个目的在于提出一种基于以太坊区块链的电子投票方法,以降低投票成本,保证投票结果的正确性、公平性和稳定性,同时提高了投票的灵活性。

本发明的第二个目的在于提出一种基于以太坊区块链的电子投票系统。

为达上述目的,本发明第一方面实施例提出了一种基于以太坊区块链的电子投票方法,其中,该方法包括以下步骤:投票端vi将选民pi的身份信息和盲化后的以太坊账户{addri}blind发送至认证服务器,以得到认证签名{{addri}blind}sign,并对{{addri}blind}sign进行去盲操作后得到投票权限签名{addri}sign,其中,i为大于0小于等于m整数,m为选民数;投票管理端对以太坊的智能合约中的选举信息进行初始化,并将初始化的选举信息同步至公示平台,其中,所述初始化的选举信息包括预设投票结束时间、候选人人数、最小可选人数、最大可选人数;投票端vi生成随机数ai和所述随机数ai的盐si,并根据addri、ai和si计算得到随机数承诺值hi,以及将hi发送至所述智能合约;投票端vi接收选民pi输入的投票值vi,并根据ai和vi计算加密选票值以及将发送至所述智能合约;投票端vi将以太坊账户addri、随机数ai和所述随机数ai的盐si发送至所述智能合约;在达到所述预设投票结束时间之后,所述智能合约停止接收投票,并根据初始化的选举信息、addri、ai和si验证vi的合法性,以及将合法的vi发送至所述投票管理端,以便所述投票管理端进行计票。

根据本发明实施例的投票方法,先对选民的身份信息和盲化后的以太坊账户进行认证和去盲操作以得到选民的投票权限签名,在投票端输入投票值之后进行加密并将加密的选票值发送至智能合约,以太坊账号和随机数也发送至智能合约,最后根据初始化的选举信息、加密选票值、以太坊账号和随机数验证投票值的合法性。由此,该方法能够降低投票成本,保证投票结果的正确性、公平性和稳定性,同时提高了投票的灵活性

在本发明的一些示例中,在投票端vi将选民pi的身份信息和盲化后的以太坊账户{addri}blind发送至认证服务器之前,所述方法还包括:所述投票管理端发布智能合约地址addr,并生成rsa签名所需的公钥(n,e)和私钥d,以及公开验签所述公钥(n,e),并将所述公钥(n,e)同步到所述智能合约和所述公示平台上;其中,盲化后的以太坊账户{addri}blind根据公式{addri}blind=addri·ke(modn)得到,投票权限签名{addri}sign根据公式{addri}sign=k-1addri(modn)得到,其中,k为盲化因子,根据公钥(n,e)生成,并满足(n,k)=1;所述认证服务器根据公式{{addri}blind}sign=({addri}blind)d(modn)对{addri}blind进行rsa签名,得到认证签名{{addri}blind}sign。

在本发明的一些示例中,所述认证服务器在得到认证签名{{addri}blind}sign时,所述方法还包括:所述认证服务器将选民pi的身份信息和当前已通过认证的选民人数count同步到所述公示平台上。

在本发明的一些示例中,投票端vi在得到投票权限签名{addri}sign之后,所述方法还包括:投票端vi使用所述公钥(n,e)对所述投票权限签名{addri}sign进行验证,并在验证通过后,登录以太坊账户addri,并向所述智能合约发送签到交易信息,其中,所述签到交易信息包括{addri}sign;所述智能合约使用所述公钥(n,e)对所述{addri}sign进行验证,并在验证通过后,将addri加入合法选民地址集合s。

在本发明的一些示例中,所述生成rsa签名所需的公钥(n,e)和私钥d,包括:生成大素数p,q,其中,n长度为1024bit;计算n=pq和随机选择正整数e,其中,使用扩展欧几里得算法计算整数d,其中,d>2n/2,n为n的位数。

在本发明的一些示例中,所述方法还包括:投票端vi在生成随机数ai的同时,还生成随机盐si,并采用杂凑算法对addri、ai和si进行计算得到随机数承诺值hi=hash(addri,ai,si),以及将hi=hash(addri,ai,si)发送至所述智能合约,且投票端vi在将以太坊账户addri和ai发送至所述智能合约同时,还将si发送至所述智能合约;其中,所述智能合约根据初始化的选举信息、addri和ai验证vi的合法性,包括:所述投票管理端采用杂凑算法对addri、ai和si进行计算得到随机数承诺验证值hi',并验证hi'与hi是否一致,以及在hi'与hi一致时根据初始化的选举信息、和ai验证vi的合法性。

在本发明的一些示例中,所述根据初始化的选举信息和ai验证vi的合法性,包括:根据和ai得到选民pi的投票值vi;根据所述投票值vi确定候选人数cnt;判断所述候选人数cnt是否满足kmin≤cnt≤kmax,其中,kmin为最小可选人数,kmax为最大可选人数;如果cnt满足kmin≤cnt≤kmax,则判定投票值vi合法。

在本发明的一些示例中,所述初始化的选举信息还包括随机数承诺值提交时间、随机数提交时间、保证金数额,所述方法还包括:投票端vi在将hi=hash(addri,ai,si)发送至所述智能合约的同时,还提交所述数额的保证金dether至所述智能合约;其中,如果投票端vi在所述随机数承诺值提交时间之前未提交保证金,则所述智能合约将该投票端vi对应的选民pi记入黑名单;如果投票端vi在所述随机数提交时间之前未提交随机数,或者,vi的验证过程出现错误,或者,在所述预设投票结束时间之前未进行投票,则所述智能合约将该投票端vi对应的选民pi记入黑名单,并没收选民pi的保证金。

在本发明的一些示例中,所述初始化的选举信息还包括计票结果公布时间,所述方法还包括:所述投票管理端将计票结果通过所述智能合约发布至以太坊区块链上,并同步到所述公示平台上;在所述计票结果公布后或者当前时间超出所述计票结果公布时间后,所述智能合约将所有未被记入黑名单的选民的保证金退还,并将没收的保证金平均分给所述未被记入黑名单的选民。

为达上述目的,本发明第二方面实施例提出了一种基于以太坊区块链的电子投票系统,该系统包括m个投票端、认证服务器、公示平台、投票管理端和以太坊区块链,其中,投票端vi,用于将选民pi的身份信息和盲化后的以太坊账户{addri}blind发送至认证服务器,以得到认证签名{{addri}blind}sign,并对{{addri}blind}sign进行去盲操作后得到投票权限签名{addri}sign,其中,i为大于0小于等于m整数,m为选民数;投票管理端,用于对以太坊的智能合约中的选举信息进行初始化,并将初始化的选举信息同步至所述公示平台,其中,所述初始化的选举信息包括预设投票结束时间、候选人人数、最小可选人数、最大可选人数;投票端vi,还用于生成随机数ai和所述随机数ai的盐si,并根据addri、ai和si计算得到随机数承诺值hi,以及将hi发送至所述智能合约,接收选民pi输入的投票值vi,并根据ai和vi计算加密选票值以及将发送至所述智能合约,将以太坊账户addri、随机数ai和所述随机数ai的盐si发送至所述智能合约;以太坊区块链,用于在达到所述预设投票结束时间之后,停止接收投票,并根据初始化的选举信息、addri、ai和si验证vi的合法性,以及将合法的vi发送至所述投票管理端,以便所述投票管理端进行计票。

根据本发明实施例的投票系统,先在投票端对选民的身份信息和盲化后的以太坊账户进行认证,并进行去盲操作以得到选民的投票权限签名,在投票端输入投票值之后进行加密并将加密的选票值发送至智能合约,以太坊账号和随机数也发送至智能合约,最后根据初始化的选举信息、加密选票值、以太坊账号和随机数验证投票值的合法性。由此,该方法能够降低投票成本,保证投票结果的正确性、公平性和稳定性,同时提高了投票的灵活性。

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

图1是本发明一个实施例的电子投票方法的流程图;

图2是本发明一个实施例的投票结果是否合法的判断方法的流程图;

图3是本发明一个实施例的电子投票方法的计票步骤的流程图;

图4是本发明实施例的电子投票系统的结构框图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

下面参考附图描述本发明实施例的基于以太坊区块链的电子投票方法及系统。

图1是本发明一个实施例的电子投票方法的流程图。

在该实施例中,如图1所示,基于以太坊区块链的电子投票方法包括以下步骤:

s10,投票端vi将选民pi的身份信息和盲化后的以太坊账户{addri}blind发送至认证服务器,以得到认证签名{{addri}blind}sign,并对{{addri}blind}sign进行去盲操作后得到投票权限签名{addri}sign,其中,i为大于0小于等于m整数,m为选民数。

具体地,在投票之前选民需要在投票端获取投票权限,每个选民需要注册一个以太坊账号addri,才能够保证选民可以正常参加投票。举例而言,取i为5,选民数m为10,则i为大于0小于10的整数,符合要求。在该示例中,选民p5注册的以太坊账号为addr5,投票端v5将选民p5的身份信息和盲化后的以太坊账户{addr5}blind发送至认证服务器,以得到认证签名{{addr5}blind}sign。需要说明的是,选民的身份信息必须是在投票过程中具有唯一性的,如座位号与名字的对应关系,或者与身份证、指纹信息之间的对应联系等等,从而可以提高认证准确度。在得到认证签名{{addr5}blind}sign之后,对该签名进行去盲操作后得到投票权限签名{addr5}sign。可以理解的是,参加投票的所有选民都必须在投票之前进行认证,以得到相对应的投票权限签名,从而保证选民能够正常进行投票,并提高选票的有效性。

另外,在一些实施例中,在投票端vi将选民pi的身份信息和盲化后的以太坊账户{addri}blind发送至认证服务器之前,先通过投票管理端发布智能合约地址addr,并生成rsa签名所需的公钥(n,e)和私钥d,以及公开验签公钥(n,e),并将公钥(n,e)同步到智能合约和公示平台上。

其中,盲化后的以太坊账户{addri}blind根据公式{addri}blind=addri·ke(modn)得到,投票权限签名{addri}sign根据公式{addri}sign=k-1addri(modn)得到,其中,k为盲化因子,根据公钥(n,e)生成,并满足(n,k)=1;认证服务器根据公式{{addri}blind}sign=({addri}blind)d(modn)对{addri}blind进行rsa签名,得到认证签名{{addri}blind}sign。

具体地,可以将盲化函数定义为{addri}blind=addri·ke(modn),将去盲函数定义为{addri}sign=k-1addri(modn),每个选民都需要在本地执行程序对自己的以太坊账户号addri执行盲化函数和去盲化函数。在认证服务器对选民pi的身份认证通过之后,可以对选民pi提供的{addri}blind进行rsa签名,具体通过认证公式{{addri}blind}sign=({addri}blind)d(modn)进行计算,并输出对应的认证签名{{addri}blind}sign,将该认证签名发送给该选民pi。在一些示例中,认证服务器还可以在得到认证签名{{addri}blind}sign时,将选民pi的身份信息和当前已通过认证的选民人数count同步到公示平台上。可以理解的是,如果选民发现自己的姓名没有被公示或者知道公示结果中有实际不参与投票的选民可在公示平台对管理员进行申诉并要求其改正。

其中,需要说明的是,生成rsa签名所需的公钥(n,e)和私钥d包括:生成大素数p,q,其中,n长度为1024bit;计算n=pq和随机选择正整数e,其中,使用扩展欧几里得算法计算整数d,其中,d>2n/2,n为n的位数。

可选地,n的长度可以根据该投票方法的加密程度进行选择,越长则加密度越高,安全系数越高。

在一些示例中,投票端vi在得到投票权限签名{addri}sign之后,投票端vi使用公钥(n,e)对投票权限签名{addri}sign进行验证,并在验证通过后,登录以太坊账户addri,并向智能合约发送签到交易信息,其中,签到交易信息包括{addri}sign;

智能合约使用公钥(n,e)对{addri}sign进行验证,并在验证通过后,将addri加入合法选民地址集合s。

具体地,在选民得到通过验证的投票权限签名{addri}sign之后,先通过投票端vi登录以太坊账户addri,发送签到交易信息给智能合约,签到交易信息中包括有投票权限签名{addri}sign,智能合约在认证服务器中用公钥(n,e)对{addri}sign进行验证,若addri与该交易的地址来源一致,则将地址addri加入合法选民地址集合s,其中,该地址集合s是公开可查的,当超过签到时间tsignup后选民比对合法选民地址集合s的人数与网站公布的注册人数count是否一致,如不一致则可要求选举管理员中止合约,同时可以要求选民重新注册以太坊账号,再重复上述步骤进行签到,防止认证服务器将不合法的选民参与投票而影响到投票结果的正确性。

可选地,当投票端vi使用公钥(n,e)对投票权限签名{addri}sign验证而出现验证结果错误的情况时,选民可以在通过平台进行申诉。

s20,投票管理端对以太坊的智能合约中的选举信息进行初始化,并将初始化的选举信息同步至公示平台,其中,初始化的选举信息包括预设投票结束时间、候选人人数、最小可选人数、最大可选人数。

具体地,在选民地址集合s确认无误后,投票管理端需要对智能合约中的选举信息进行初始化,其中,选举信息除了包括预设投票结束时间、候选人人数、最小可选人数和最大可选人数,还可以包括选举主题、保证金金额、候选人对应的编号等基本信息,同时将这些信息同步至公式平台。

s30,投票端vi生成随机数ai和该随机数ai的盐si,并根据addri、ai和si计算得到随机数承诺值hi,以及将hi发送至智能合约。

s40,投票端vi接收选民pi输入的投票值vi,并根据ai和vi计算加密选票值以及将发送至智能合约。

s50,投票端vi将以太坊账户addri、随机数ai和该随机数ai的盐si发送至智能合约。

具体地,ai是保护选票值的随机数,投票端vi生成随机数ai可用于后期公开自己的投票结果,投票端vi将以太坊账户addri和随机数ai发送至智能合约进行承诺,以提高投票结果的准确性。

在一些示例中,投票端vi在生成随机数ai的同时,还生成随机盐si,并采用杂凑算法对addri、ai和si进行计算得到随机数承诺值hi=hash(addri,ai,si),以及将hi=hash(addri,ai,si)发送至智能合约,投票端vi再将以太坊账户addri和ai发送至智能合约同时,还将si发送至智能合约。

其中,智能合约根据初始化的选举信息、addri和ai验证vi的合法性,包括:投票管理端采用杂凑算法对addri、ai和si进行计算得到随机数承诺验证值hi',并验证hi'与hi是否一致,以及在hi'与hi一致时根据初始化的选举信息、和ai验证vi的合法性。

具体地,投票端vi在本地生成随机数ai和随机盐si,两者的长度应由安全参数λ确定,在该示例中,两者都可以选择为64bit。在得到随机数ai和随机盐si之后,采用杂凑算法对addri、ai和si进行计算得到随机数承诺值hi=hash(addri,ai,si)并发送至智能合约。需要说明的是,可以通过设置一个预设时间,当选民没有在该预设时间内将随机数承诺值hi=hash(addri,ai,si)发送到智能合约则将该选民列入黑名单。

可选地,杂凑算法选用sha-256算法(securehashalgorithm,安全散列算法)。

在一些示例中,根据初始化的选举信息和ai验证vi的合法性包括:根据和ai得到选民pi的投票值vi;根据投票值vi确定候选人数cnt;判断候选人数cnt是否满足kmin≤cnt≤kmax,其中,kmin为最小可选人数,kmax为最大可选人数;如果cnt满足kmin≤cnt≤kmax,则判定投票值vi合法。

具体地,选民投票时选择的人数区间[kmin,kmax],举例而言,以kmin=1,kmax=5,l=10为例,其中,l为参选人数,10名参选人的编号应依次为1,…,10,所以以二进制形式可表示成10bit,第j(j∈[1,10])位等于1代表投票给j号候选人,等于0则代表不投给该候选人。以投票给第1,3号候选人为例,则选择比特串为0000000101,转为十进制可知选票值vi=20+22=5。因为判断一个投票值vi是否为合法的投票值实际就是判断其二进制中1的个数是否在区间[kmin,kmax]内,如图2所示,所以具体判断方法如下:设候选人数cnt=0,用于保存选择的候选人数,kmin和kmax分别赋值到变量m和n中;计算vi&(vi-1),并将结果赋值给vi,如果vi不为0则cnt=cnt+1;对上一步进行循环操作,直至vi=0时停止;如果m≤cnt≤n则证明投票值合法。

在一些示例中,初始化的选举信息还包括随机数承诺值提交时间、随机数提交时间、保证金数额,当投票端vi在将hi=hash(addri,ai,si)发送至智能合约的同时,还提交数额的保证金dether至智能合约。

其中,如果投票端vi在随机数承诺值提交时间之前未提交保证金,则智能合约将该投票端vi对应的选民pi记入黑名单;如果投票端vi在随机数提交时间之前未提交随机数,或者,vi的验证过程出现错误,或者,在预设投票结束时间之前未进行投票,则智能合约将该投票端vi对应的选民pi记入黑名单,并没收选民pi的保证金。

具体地,投票阶段选民pi在投票端vi计算选票并提交给智能合约,在投票时间结束之后,每个选民将自己的随机数和随机盐发送到智能合约,智能合约收到后会检验hi=hash(addri,ai,si)是否与之前承诺的一致,若结果一致则计算再核实投票值vi是否合法,确认无误后投票管理端拿到所有投票数据后在链下进行计票。可选地,为加强公平性,鼓励选民尽快公开随机数,在该阶段可以引入奖励金激励选民快速公开随机数,公开随机数的时间越早的选民,可以获得越丰厚的奖励金。

在该示例中,初始化的选举信息还包括计票结果公布时间,在计票结果公布时间中,投票管理端将计票结果通过智能合约发布至以太坊区块链上,并同步到公示平台上;在计票结果公布后或者当前时间超出计票结果公布时间后,智能合约将所有未被记入黑名单的选民的保证金退还,并将没收的保证金平均分给未被记入黑名单的选民。

可选地,没收的黑名单中选民的保证金,可以作为奖励分给全部或者部分(如较早提交随机数)的选民。

s60,在达到预设投票结束时间之后,智能合约停止接收投票,并根据初始化的选举信息、addri、ai和si验证vi的合法性,以及将合法的vi发送至投票管理端,以便投票管理端进行计票。

具体地,在投票管理端汇集了全部合法的投票数据之后可以在链下进行计票,如图3所示,具体的计票步骤为:s100,将所有vi展开为二进制。s200,计算所有展开后的vi中不同候选人的对应比特的1的个数即为得票数。s300,计算结束后直接将计票结果通过智能合约更新发布到区块链上供选民查询,并同步到公示平台上。

可选地,如果结果已公布或者时间超过了计票结果公布时间,智能合约将退还所有选民的保证金,这将包括平均分配的违规选民的保证金。因为区块链对过程中数据留有不可篡改的存证,其他选民可以对计票结果进行核查验算,如果发现结果不正确可向投票管理端申诉。

综上,本发明实施例的基于以太坊区块链的电子投票方法,能够降低投票成本,保证投票结果的正确性、公平性和稳定性,同时提高了投票的灵活性。

图4是本发明实施例的电子投票系统的结构框图。

进一步地,本发明提出一种基于以太坊区块链的电子投票系统,如图4所示,该系统100包括投票端vi、认证服务器102、公示平台103、投票管理端104和以太坊区块链105,其中,投票端101包括有多个,在该示例中,分别记为第一投票端v1、第二投票端v2、…、第m投票端端vm。

其中,投票端vi,用于将选民pi的身份信息和盲化后的以太坊账户{addri}blind发送至认证服务器102,以得到认证签名{{addri}blind}sign,并对{{addri}blind}sign进行去盲操作后得到投票权限签名{addri}sign,其中,i为大于0小于等于m整数,m为选民数;投票管理端104用于对以太坊的智能合约中的选举信息进行初始化,并将初始化的选举信息同步至公示平台103,其中,初始化的选举信息包括预设投票结束时间、候选人人数、最小可选人数、最大可选人数;投票端vi还用于生成随机数ai和该随机数ai的盐si,并根据addri、ai和si计算得到随机数承诺值hi,以及将hi发送至智能合约,接收选民pi输入的投票值vi,并根据ai和vi计算加密选票值以及将发送至智能合约,将以太坊账户addri、随机数ai和随机数ai的盐si发送至智能合约;以太坊区块链105用于在达到预设投票结束时间之后,停止接收投票,并根据初始化的选举信息、addri、ai和si验证vi的合法性,以及将合法的vi发送至投票管理端,以便投票管理端进行计票。

在一些示例中,在投票端vi将选民pi的身份信息和盲化后的以太坊账户{addri}blind发送至认证服务器102之前,投票管理端104发布智能合约地址addr,并生成rsa签名所需的公钥(n,e)和私钥d,以及公开验签公钥(n,e),并将公钥(n,e)同步到智能合约和公示平台103上;其中,盲化后的以太坊账户{addri}blind根据公式{addri}blind=addri·ke(modn)得到,投票权限签名{addri}sign根据公式{addri}sign=k-1addri(modn)得到,其中,k为盲化因子,根据公钥(n,e)生成,并满足(n,k)=1;认证服务器102根据公式{{addri}blind}sign=({addri}blind)d(modn)对{addri}blind进行rsa签名,得到认证签名{{addri}blind}sign。

在一些示例中,认证服务器102在得到认证签名{{addri}blind}sign时,认证服务器102将选民pi的身份信息和当前已通过认证的选民人数count同步到公示平台上。

在一些示例中,投票端vi在得到投票权限签名{addri}sign之后,投票端vi使用公钥(n,e)对投票权限签名{addri}sign进行验证,并在验证通过后,登录以太坊账户addri,并向智能合约发送签到交易信息,其中,签到交易信息包括{addri}sign;智能合约使用公钥(n,e)对{addri}sign进行验证,并在验证通过后,将addri加入合法选民地址集合s。

在一些示例中,生成rsa签名所需的公钥(n,e)和私钥d包括:生成大素数p,q,其中,n长度为1024bit;计算n=pq和随机选择正整数e,其中,使用扩展欧几里得算法计算整数d,其中,d>2n/2,n为n的位数。

在一些示例中,投票端vi在生成随机数ai的同时,还生成随机盐si,并采用杂凑算法对addri、ai和si进行计算得到随机数承诺值hi=hash(addri,ai,si),以及将hi=hash(addri,ai,si)发送至智能合约,且投票端vi在将以太坊账户addri和ai发送至智能合约同时,还将si发送至智能合约;其中,智能合约根据初始化的选举信息、addri和ai验证vi的合法性包括:投票管理端104采用杂凑算法对addri、ai和si进行计算得到随机数承诺验证值hi',并验证hi'与hi是否一致,以及在hi'与hi一致时根据初始化的选举信息、和ai验证vi的合法性。

在一些示例中,根据初始化的选举信息和ai验证vi的合法性包括:根据和ai得到选民pi的投票值vi;根据投票值vi确定候选人数cnt;判断候选人数cnt是否满足kmin≤cnt≤kmax,其中,kmin为最小可选人数,kmax为最大可选人数;如果cnt满足kmin≤cnt≤kmax,则判定投票值vi合法。

在一些示例中,初始化的选举信息还包括随机数承诺值提交时间、随机数提交时间、保证金数额,投票端vi在将hi=hash(addri,ai,si)发送至智能合约的同时,还提交数额的保证金dether至智能合约;其中,如果投票端vi在随机数承诺值提交时间之前未提交保证金,则智能合约将该投票端vi对应的选民pi记入黑名单;如果投票端vi在随机数提交时间之前未提交随机数,或者,vi的验证过程出现错误,或者,在预设投票结束时间之前未进行投票,则智能合约将该投票端vi对应的选民pi记入黑名单,并没收选民pi的保证金。

在一些示例中,初始化的选举信息还包括计票结果公布时间,投票管理端104将计票结果通过智能合约发布至以太坊区块链上,并同步到公示平台103上;在计票结果公布后或者当前时间超出计票结果公布时间后,智能合约将所有未被记入黑名单的选民的保证金退还,并将没收的保证金平均分给未被记入黑名单的选民。

需要说明的是,本发明实施例的基于以太坊区块链的电子投票系统的其他具体实施方式可参见本发明上述实施例的基于以太坊区块链的电子投票方法的具体实施方式。

综上,本发明实施例的基于以太坊区块链的电子投票系统,能够降低投票成本,保证投票结果的正确性、公平性和稳定性,同时提高了投票的灵活性。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

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