一种基于区块链和智能合约的分布式投票系统及方法[发明专利]

(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 202110878571.5
(22)申请日 2021.08.02
(71)申请人 北京航空航天大学
地址 100191 北京市海淀区学院路37号
(72)发明人 胡凯 张伯钧 
(51)Int.Cl.
H04L  9/40(2022.01)
H04L  9/30(2006.01)
H04L  9/00(2022.01)
G06Q  40/04(2012.01)
(54)发明名称一种基于区块链和智能合约的分布式投票系统及方法(57)摘要本发明提供一种基于区块链和智能合约的分布式投票系统,包括:投票子系统以及数据共享社区子系统。相应的基于区块链和智能合约的分布式投票方法包括:创建选票、选民参与、投加密选票、共同解密和唱票五个阶段,其中每个阶段中都具有奖惩机制、超时机制和加密机制。提供基于区块链和智能合约的两阶段投票系统和方法,系统采用分布式非对称加密算法进行选票的本地加密,依据shapley值引入了投票的奖惩机制,并在区块链上通过部署智能合约来实现投票流程。此外,数据共享社区基于智共识的思想,即社区的数据拥有主体对相关数据交易进行共同制定规则,来平衡数据拥有主体的理念差异,进而促进数据共享和交易,为数据共享社区
系统的共同治理提供一种决策机制。权利要求书4页  说明书15页  附图2页CN 114362987 A 2022.04.15
C N  114362987
A
1.一种基于区块链和智能合约的分布式投票系统,其特征在于包括:
投票子系统以及数据共享社区子系统,其中:
所述投票子系统包括区块链、投票协议模块以及中心化的网页服务器,所述投票协议模块用于在所述区块链上引入智能合约,并与所述数据共享社区子系统的智能合约接口相连,所述中心化的网页服务器用于将访问所述区块链的相关操作封装在所述网页服务器一端并设置相应的前端网页,所述中心化的网页服务器还存储投票元数据和加密的选票从而用于历史查询;
所述数据共享社区子系统包括请求分发后台系统、请求分发服务系统、智能合约接口以及MPT树,其中请求会通过所述前端网页发出后到达所述请求分发后台系统,所述请求分发服务系统会按照所述请求的类型进行请求转发,不同类型的请求会被转发到不同的所述请求分发后台系统中,由所述请求分发后台系统通过相关的逻辑操作提供后台服务,所述后台服务包括投票服务、数据交易服务、数据共享服务、用户服务以及积分服务,完成所述逻辑操作后,所述请求分发服务系统调用所述智能合约接口,所述调用的请求被封装成交际的格式,放置在redis交易池中,通过定时轮询的方式从所述redis交易池中拉去交易后,运行所述智能合约,并通过共识算法进行节点间共识,将共识后的区块写入到所述区块链中,所述MPT树包括由leveldb模拟的内存级数据库和Mysql数据库组成并共同维护的持久性数据结构,用于存储运行所述智能合约产生的数据。
2.一种应用权利要求1所述的基于区块链和智能合约的分布式投票系统的基于区块链和智能合约的分布式投票方法,其特征在于包括:创建选票、选民参与、投加密选票、共同解密和唱票五个阶段,其中每个阶段中都具有奖惩机制、超时机制和加密机制。
3.一种根据权利要求2所述的基于区块链和智能合约的分布式投票方法,其特征在于所述创建投票包括:用户创建符合格式的任意数量的投票,其中所述投票具有投票名称、投票的摘要或是文字描述、投票发起人、投票奖励总积分、参与开始时间、参与介质时间、投票类型的必选属性以及第一阶段投票开始时间、第一阶段投票结束时间、共同解密阶段开始时间、共同解密阶段结束时间、投票状态、投票结果的可选属性,其中投票状态包括已创建、投票中、共同解密中、唱票或异常。
4.一种根据权利要求3所述的基于区块链和智能合约的分布式投票方法,其特征在于所述选民参与包括:在创建一场投票V后,当目前系统时间大于所述参与开始时间并小于所述参与截至时间时,用户可参与该场投票;只有参与投票的投票者才能进行投票等后续流程;每一位参与投票者会以在数据共享社区注册时所使用到的私钥s和公钥y来生成后续选票加密的私钥S和公钥Y,其中y和Y由基于El gamal的分布式El gamal加密算法生成,为了满足加密模块中所制定的分布式加密算法,规定每位投票者采用共同的g和p,其中p为
的生成元,g和p的含义在El Gamal处定义,所述El Gamal算法1024bit长的大素数,g为Z*
p
的公私钥生成流程如下:
随机选择一个较长长度(1024bit以上)的大素数p,生成有限域的一个生成元选择一个素数x满足1<x<p‑1,则有公钥y=(g,x,p),私钥为x,如式(2.1)所示:y=g x%p          (2.1);
令待加密明文为m,m满足1<m<p‑1。随机选择整数k:0<k<p‑1,则有密文为C=(c1,
c2),c1和c2可从式(3.1)和式(3.2)推导得到,如式(2.2)和(2.3)所示:
c 1=g x %p    (2.2)
c 2=my k %p    (2.3)
对密文C进行解密,由式(3.4)可得明文m,如式(2.4)和式(2.5)所示:
5.一种根据权利要求4所述的基于区块链和智能合约的分布式投票方法,其特征在于所述投加密票包括:
已参与投票V的用户必须在规定时间内需要进行投加密票,如果超过规定时间投递加密票,则视为超时,如果多次投递,则视为异常,参与投票的用户需要按照以下步骤进行投加密票:
首先要生成规定格式的明文选票X i ,
如式(3.1)所示:X i ={a i0,a i1,a i2,....,a ij },a ij ∈[1,n],1≤j≤n    (3.1);
其中,X i 表示参与者i的明文选票,其中a ij 表示参与者i投了候选者j,X i 的维度为N维,N 表示候选者的总数;
在得到规定格式的明文选票之后,对选票进行加密,加密算法为投票协议‑加密机制所设计的分布式加密算法,根据分布式算法可得,加密选票EX如式(3.2)所示,T是选票X的数学表达:
加密选票EX即为投票内容。
6.一种根据权利要求5所述的基于区块链和智能合约的分布式投票方法,其特征在于所述共同解密包括:所述投票在投加密票结束之后,用户必须在规定时间内需要进行共同解密,如果超过规定时间解
密,则视为超时,如果多次提交解密,则视为异常,参与共同解密的用户按照如下规定步骤提交共同解密信息:设有正处于共同解密阶段的投票V,参与投票人数为n,候选者人数为m,参与者用序号1到序号n来标识,参与者i在第一阶段中投递加密选票为EX i ,1<=i<=n,则对于参与者i而言,待解密选票集合S EX 由表达式(3.3)所示,获得S EX 之后,参与者i需要按照加密模块所定义的分布式加密算法生成S CXi ,S CXi 的公式如式(3.4)所示,其中c j 为中间变量,无实际意义;
S EX ={a 1,a 2,...,
a n },EX i =(a i ,
b i )    (3.3);
所述共同解密是已投票用户根据第一阶段所有人所投的加密选票,提交各自对应解密信息的过程。
7.一种根据权利要求6所述的基于区块链和智能合约的分布式投票方法,其特征在于:所述唱票不需要投票参与者有任何操作,也不需要任何第三方CA参与,而是由区块链智能合约自动化计算票数,根据获得的加密选票EX i 和解密信息S CXi 对选票进行解密,解密算法如式(3.5)所示,其中T i 是明文选票
X i 的数学表达;
最后得到投票结果result如式(3.6)所示:
其中t ij 表示参与投票的用户j对候选者i是否投票,t ij 由如下代码生成:
if  Xi  contains
j,t ij =1;else  t ij =0;
注释:如果Xi包含j,则t ij 为1否则为0。
8.一种根据权利要求2所述的基于区块链和智能合约的分布式投票方法,其特征在于所述奖惩机制包括:惩罚和奖励会通过积分的形式被量化,每场投票开始时会有初始的奖励积分,积分默认为100,积分最后会由获胜方成员瓜分,所述积分是在所述数据共享社区中用来交易数据时所使用的虚拟货币,对于超时、伪造选票、伪造投票者会进行对应类型的惩罚,惩罚形式为扣除一定额度的积分,所述投
票协议的所述奖惩机制在小规模投票采用shapley值法(n<40),在大规模投票时采用加权平均法(n>=40),所述Shapley值法基于合作博弈的思想,除了票数还引入了关键人的概念,考虑到可能的投票次序对投票结果产生的影响,在一场投票中,获胜方的投票者i能够获得的激励积分P i 如式(3.7)所示,其中T i 由式(2.10)所定义。
其中W为总的待分配收益,Φi [V]为参加博弈且加入联盟的博弈者i应得到的期望收益,
9.一种根据权利要求2所述的基于区块链和智能合约的分布式投票方法,其特征在于:所述超时机制定义投票流程过发生的超时情况以及对应的处理措施,对于系统层面引发的超时情况如请求超时、请求丢失、服务故障等均不在考虑范围内。超时机制共包含参与超时、投票超时以及共同解密超时三种超时丢失情况,所有的超时情况都属于异常情况,会受到惩罚机制约束,如果是参与超时扣除50积分,如果是投票超时扣除60积分,如果是共同解密超时,扣除100积分。
10.一种根据权利要求2所述的基于区块链和智能合约的分布式投票方法,其特征在于:所述加密机制用于对投票过程产生的选票进行加密以保证选票安全和最终选票结果的安全,使用扩展了El  Gamal加密算法,改进得到分布式环境下的El  Gamal加密算法,并使用它来作为投票协议中的加密算法,所述投票场景下的分布式El  Gamal算法由三部分组成:生成密钥、加密明文、共同解密,其中:
(1)生成密钥
设p为1024bit长的大素数,g为Z *
p 的生成元。假设投票V有n个用户参与,分别为Q 1,
Q 2,…Q n 。每个参与者自己拟定各自的私钥s i ,s i 为用户自己拟定的随机16进制整数(长度不超过100bit),然后基于式(2.1)生成相应的公私h i =(g ,s ,p),hi如式(3.8)所示:
然后通过每个用户的公钥h生成用于加密明文选票的公共公钥H,具体如式(3.9)所示:
(2)加密明文
设m为待加密的明文选票,然后随机选取一个正整数k,其中1<=k<=p ‑1,且k与p ‑1的最大公约数为1,则加密函数E(m)如式(3.10)所示,其中密文em=(a ,b):
E(m)=(x,y)=((g k %p),mH k %p)        (3.10);
设投票参与者Q i 欲投递明文选票m i ,则Q i 投递的加密选票em i 如式(3.11)所示:
em i =((g k %p),
m i H k %p)    (3.11);(3)共同解密
设:所有加密选票集合为S em ,则根据式(3.12)可知:
S em ={em 1,em 2,em 3,...,em n },em i =(a i ,b i )  (3.12)
在得到S em 之后,投票者i通过式(3.14)得到解密信息dm i ,其中tm i 属于中间变量,无实际意义:
dm i ={tm i1,tm i2,...,tm in }  (3.14)
结合所有投票者的解密信息dm,通过式(3.15)最终可以获得每个投票者的明文选票。

本文发布于:2024-09-24 05:28:44,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/394864.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:投票   选票   加密   合约   智能   分布式
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议