CN114362987A - 一种基于区块链和智能合约的分布式投票系统及方法 - Google Patents

一种基于区块链和智能合约的分布式投票系统及方法 Download PDF

Info

Publication number
CN114362987A
CN114362987A CN202110878571.5A CN202110878571A CN114362987A CN 114362987 A CN114362987 A CN 114362987A CN 202110878571 A CN202110878571 A CN 202110878571A CN 114362987 A CN114362987 A CN 114362987A
Authority
CN
China
Prior art keywords
voting
vote
votes
distributed
encrypted
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.)
Granted
Application number
CN202110878571.5A
Other languages
English (en)
Other versions
CN114362987B (zh
Inventor
胡凯
张伯钧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN202110878571.5A priority Critical patent/CN114362987B/zh
Publication of CN114362987A publication Critical patent/CN114362987A/zh
Application granted granted Critical
Publication of CN114362987B publication Critical patent/CN114362987B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3013Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • H04L2209/463Electronic voting

Abstract

本发明提供一种基于区块链和智能合约的分布式投票系统,包括:投票子系统以及数据共享社区子系统。相应的基于区块链和智能合约的分布式投票方法包括:创建选票、选民参与、投加密选票、共同解密和唱票五个阶段,其中每个阶段中都具有奖惩机制、超时机制和加密机制。提供基于区块链和智能合约的两阶段投票系统和方法,系统采用分布式非对称加密算法进行选票的本地加密,依据shapley值引入了投票的奖惩机制,并在区块链上通过部署智能合约来实现投票流程。此外,数据共享社区基于群智共识的思想,即社区的数据拥有主体对相关数据交易进行共同制定规则,来平衡数据拥有主体的理念差异,进而促进数据共享和交易,为数据共享社区系统的共同治理提供一种决策机制。

Description

一种基于区块链和智能合约的分布式投票系统及方法
技术领域
本发明涉及区块链以及智能合约技术领域,特别是涉及一种基于区块链和智能合约的分布式投票系统及方法。
背景技术
投票是选举人用来行使自身选举权利的方式之一。投票被广泛应用于各类选举、决策等群治活动中。在互联网兴起之前,投票的主要形式是线下投票,线下投票的形式虽然灵活可变,但是其往往会耗费大量时间和成本,尤其是大规模的线下投票活动。而随着互联网领域的蓬勃发展,大部分线下投票场景被低成本的线上电子投票所取代,线上电子投票指依靠互联网技术进行在线投票、计票的投票方式。与传统的线下投票方式相比,电子投票流程更加简单,计票更加容易,节省了大量的成本和时间,并且几乎不受投票规模的限制。然而,目前的线上电子投票也存在着一些缺陷,相比线下投票的当众投票、计票,线上投票通过网络的方式进行投票计票,在投票结果安全性和透明性方面常常会受到质疑。目前大多数电子投票方案在投票过程中的安全性和隐私性由投票服务提供方或第三方可信机构CA(Certificate Authority)来保障。在第三方可信机构或投票服务提供方出现安全和隐私泄露问题,或者是遭遇恶意网络攻击时,整个投票结果将变得不安全。在一些对隐私性和投票结果安全性要求较高的场景中,目前的线上电子投票系统还不能较好地被使用。
在当下的互联网时代,线上电子投票系统可以根据投票过程分为两类:一类是依赖第三方机构或者是服务提供方的中心化投票系统;一类是基于分布式系统去第三方的去中心化投票系统。1981年Chaum提出了首个线上电子投票方案,基于数字别称和数字加密的匿名网络,投票者通过该网络进行投票来隐藏真实身份,匿名网络能够保护用户隐私,但是由于匿名网络是理论上的假想网络,所以该方案在实际应用中仍存在问题;之后,1992年Fujioka提出了首个适用于大规模投票场景的电子投票方案,该方案基于盲签名对选票进行了加密,因此能够一定程度上地保证投票者的隐私性,但是在计票过程中仍然引入了第三方计票机构,而且对于投票者的身份验证也存在着漏洞;2000年,彭提出了使用盲签名的投票方案,不过相比Fujioka提出的方案,彭的方案在安全性上有所提高,并且投票者可以验证自己的选票是否被正确计入,但是这个方案中仍然引入了第三方CA,所以仍然存在第三方CA作弊等安全问题;2008年,Satoshi发布了比特币白皮书,首次提出了区块链,区块链最初被Satoshi应用在比特币中作为底层存储机制,而近些年来,随着智能合约在区块链上应用,一些学者尝试着将区块链技术应用到电子投票中,智能合约是一种可编程的“合约”,通过在区块链上部署智能合约,可以扩展区块链的功能,让区块链能够适用在更多场景中;2015年,Chan首次提出了基于区块链的电子投票方案,该方案基于比特币实现了投票行为的奖惩机制,实现了投票的公开透明,但是该方案是基于比特币所实现,在实际应用中不能较好的普及,并且受比特币共识机制所影响,计票效率低下且复杂度较高,另外在投票结果安全性方面也存在一些漏洞;2016年,Ejeta等人提出在Chan的基础上引入可信第三方来保障选票安全;2017年,McCorry等人提出了基于以太坊的自动化投票方案,基于智能合约实现了在区块链上进行自动计票,并通过环签名保护了选民隐私,但是该方案设置的投票场景只能是二选一场景,即从两个候选者中选择一个投票的场景;2018年,颜提出了基于零知识证明和El Gamal算法的区块链投票协议,通过零知识证明来保障投票者隐私不被泄露,利用El Gamal的同态加密完成对选票的加密以及运算,来保证投票结果的安全性,然而,零知识证明对选票形式有着严格的数学要求,当候选者人数较多时会难以运算出投票结果,此外在安全性上也仍存在着一些问题,比如恶意攻击者可以通过逆向工程等手段得到相关投票智能合约的源代码,进而破解同态加密算法。由于近两年来量子计算领域的不断发展,一些传统密码学算法的安全性正受到挑战。因此一些学者认为在电子投票领域使用传统的密码学加密算法也具有潜在的安全性威胁,因而提出了基于量子计算技术的投票方案。2020年,周提出了基于认证技术的量子投票方案,结合量子认证技术和量子纠缠状态研究两种量子投票方法,由于使用了量子认证技术,在加密算法安全性上较上述投票方案更好,但是量子技术目前尚处于前沿开拓阶段,所以实用性较差。还有一些学者提出了其他的电子投票方案,比如李的基于全同态加密的电子投票方案,naranjo提出的基于格的电子投票方案,王的基于Web的安全电子投票系统,这些投票方案从其他角度对投票过程中投票结果安全性进行加强,不过上述方案是中心化的投票系统,难以阻止第三方作弊。除此之外,在实际生活中还有一些主流的依托社交平台的投票系统。比如微信投票、QQ投票等,这类投票系统相比上述方案投票过程更加简单、计票更加迅速,但是过于依赖第三方服务提供者,投票结果的透明性和安全性都更差,主要适用在对安全性和隐私性要求都不高的投票场景中。
数据共享社区系统是为了解决当下“数据孤岛”而建立的数据交易社区。当今是大数据时代,互联网企业的数据使用需求飞速增长。然而在不断增长的市场需求之下,市场上数据的开放和共享却仍然处于初级阶段。一些头部企业和机构拥有着大量垂直领域的数据,但是数据之间却基本不流通和不共享,数据便形成“孤岛”。当前的国内数据交易市场发展尚处于初级阶段,数据交流和数据交易都还十分匮乏。数据拥有主体对数据交易相关发展缺少统一理念。
发明内容
当前线上电子投票在安全性和隐私性上的问题主要是由中心化的投票过程所导致的,即投票过程高度依赖第三方可信机构。为了解决这个问题,本发明的目的在于提供基于区块链和智能合约的两阶段投票系统和方法,系统采用分布式非对称加密算法进行选票的本地加密,依据shapley值引入了投票的奖惩机制,并在区块链上通过部署智能合约来实现投票流程。此外,数据共享社区基于群智共识的思想,即社区的数据拥有主体对相关数据交易进行共同制定规则,来平衡数据拥有主体的理念差异,进而促进数据共享和交易,本发明的投票系统就是为数据共享社区系统的共同治理提供一种决策机制。本发明的投票系统需要有统一的网页端投票页面、桌面端加解密器;投票系统需要实现加密、解密的本地化以及投票、计票的去中心化;投票系统需要在区块链上实现基于智能合约的投票、计票自动化,以及在区块链上存储投票相关信息;投票系统需要能够基于每场投票的实际情况来对投票者实施奖惩,即应该实现合理有效的奖惩机制;投票系统需要对异常情况有一定的容忍性,如超时、身份伪造和重复投票。
本发明第一方面,提供一种基于区块链和智能合约的分布式投票系统,包括:
投票子系统以及数据共享社区子系统,其中:
所述投票子系统包括区块链、投票协议模块以及中心化的网页服务器,所述投票协议模块用于在所述区块链上引入智能合约,并与所述数据共享社区子系统的智能合约接口相连,所述中心化的网页服务器用于将访问所述区块链的相关操作封装在所述网页服务器一端并设置相应的前端网页,所述中心化的网页服务器还存储投票元数据和加密的选票从而用于历史查询;
所述数据共享社区子系统包括请求分发后台系统、请求分发服务系统、智能合约接口以及MPT树,其中请求会通过所述前端网页发出后到达所述请求分发后台系统,所述请求分发服务系统会按照所述请求的类型进行请求转发,不同类型的请求会被转发到不同的所述请求分发后台系统中,由所述请求分发后台系统通过相关的逻辑操作提供后台服务,所述后台服务包括投票服务、数据交易服务、数据共享服务、用户服务以及积分服务,完成所述逻辑操作后,所述请求分发服务系统调用所述智能合约接口,所述调用的请求被封装成交际的格式,放置在redis交易池中,通过定时轮询的方式从所述redis交易池中拉去交易后,运行所述智能合约,并通过共识算法进行节点间共识,将共识后的区块写入到所述区块链中,所述MPT树包括由leveldb模拟的内存级数据库和Mysql数据库组成并共同维护的持久性数据结构,用于存储运行所述智能合约产生的数据。
本发明第二方面,提供一种基于区块链和智能合约的分布式投票方法,包括:创建选票、选民参与、投加密选票、共同解密和唱票五个阶段,其中每个阶段中都具有奖惩机制、超时机制和加密机制。
优选的,所述创建投票包括:用户创建符合格式的任意数量的投票,其中所述投票具有投票名称、投票的摘要或是文字描述、投票发起人、投票奖励总积分、参与开始时间、参与介质时间、投票类型的必选属性以及第一阶段投票开始时间、第一阶段投票结束时间、共同解密阶段开始时间、共同解密阶段结束时间、投票状态、投票结果的可选属性,其中投票状态包括已创建、投票中、共同解密中、唱票或异常。
优选的,所述选民参与包括:在创建一场投票V后,当目前系统时间大于所述参与开始时间并小于所述参与截至时间时,用户可参与该场投票;只有参与投票的投票者才能进行投票等后续流程;每一位参与投票者会以在数据共享社区注册时所使用到的私钥s和公钥y来生成后续选票加密的私钥S和公钥Y,其中y和Y由基于E1 gamal的分布式El gamal加密算法生成,为了满足加密模块中所制定的分布式加密算法,规定每位投票者采用共同的g和p,其中p为1024bit长的大素数,g为群Z* p的生成元,g和p的含义在El Gamal处定义,所述El Gamal算法的公私钥生成流程如下:
随机选择一个较长长度(1024bit以上)的大素数p,生成有限域的一个生成元
Figure BDA0003191030210000041
选择一个素数x满足1<x<p-1,则有公钥y=(g,x,p),私钥为x,如式(2.1)所示:
y=gx%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)所示:
c1=gx%p (2.2)
c2=myk%p (2.3)
对密文C进行解密,由式(3.4)可得明文m,如式(2.4)和式(2.5)所示:
Figure BDA0003191030210000051
Figure BDA0003191030210000052
优选的,所述投加密票包括:已参与投票V的用户必须在规定时间内需要进行投加密票,如果超过规定时间投递加密票,则视为超时,如果多次投递,则视为异常,参与投票的用户需要按照以下步骤进行投加密票:
首先要生成规定格式的明文选票Xi,如式(3.1)所示:
Xi=(ai0,ai1,ai2,....,aij),aij∈[1,n],1≤j≤n (3.1);
其中,Xi表示参与者i的明文选票,其中aij表示参与者i投了候选者j,Xi的维度为N维,N表示候选者的总数;
在得到规定格式的明文选票之后,对选票进行加密,加密算法为投票协议-加密机制所设计的分布式加密算法,根据分布式算法可得,加密选票EX如式(3.2)所示,T是选票X的数学表达:
Figure BDA0003191030210000053
加密选票EX即为投票内容。
优选的,所述共同解密包括:所述投票在投加密票结束之后,用户必须在规定时间内需要进行共同解密,如果超过规定时间解密,则视为超时,如果多次提交解密,则视为异常,参与共同解密的用户按照如下规定步骤提交共同解密信息:设有正处于共同解密阶段的投票V,参与投票人数为n,候选者人数为m,参与者用序号1到序号n来标识,参与者i在第一阶段中投递加密选票为EXi,1<=i<=n,则对于参与者i而言,待解密选票集合SEX由表达式(3.3)所示,获得SEX之后,参与者i需要按照加密模块所定义的分布式加密算法生成SCXi,SCXi的公式如式(3.4)所示,其中cj为中间变量,无实际意义;
SEX={a1,a2,...,an},EXi=(ai,bi) (3.3);
Figure BDA0003191030210000054
所述共同解密是已投票用户根据第一阶段所有人所投的加密选票,提交各自对应解密信息的过程。
优选的,所述唱票不需要投票参与者有任何操作,也不需要任何第三方CA参与,而是由区块链智能合约自动化计算票数,根据获得的加密选票EXi和解密信息SCXi对选票进行解密,解密算法如式(3.5)所示,其中Ti是明文选票Xi的数学表达;
Figure BDA0003191030210000061
最后得到投票结果result如式(3.6)所示:
Figure BDA0003191030210000062
其中tij表示参与投票的用户j对候选者i是否投票,tij由如下代码生成:
if Xi contains j,tij=1;
else tij=0;
注释:如果Xi包含j,则tij为1否则为0。
优选的,所述奖惩机制包括:惩罚和奖励会通过积分的形式被量化,每场投票开始时会有初始的奖励积分,积分默认为100,积分最后会由获胜方成员瓜分,所述积分是在所述数据共享社区中用来交易数据时所使用的虚拟货币,对于超时、伪造选票、伪造投票者会进行对应类型的惩罚,惩罚形式为扣除一定额度的积分,所述投票协议的所述奖惩机制在小规模投票采用shapley值法(n<40),在大规模投票时采用加权平均法(n>=40),所述Shapley值法基于合作博弈的思想,除了票数还引入了关键人的概念,考虑到可能的投票次序对投票结果产生的影响,在一场投票中,获胜方的投票者i能够获得的激励积分Pi如式(3.7)所示,其中Ti由式(2.10)所定义。
Figure BDA0003191030210000071
Figure BDA0003191030210000072
其中W为总的待分配收益,Φi[V]为参加博弈且加入联盟的博弈者i应得到的期望收益,
Figure BDA0003191030210000073
优选的,所述超时机制定义投票流程过发生的超时情况以及对应的处理措施,对于系统层面引发的超时情况如请求超时、请求丢失、服务故障等均不在考虑范围内。超时机制共包含参与超时、投票超时以及共同解密超时三种超时丢失情况,所有的超时情况都属于异常情况,会受到惩罚机制约束,如果是参与超时扣除50积分,如果是投票超时扣除60积分,如果是共同解密超时,扣除100积分。
优选的,所述加密机制用于对投票过程产生的选票进行加密以保证选票安全和最终选票结果的安全,使用扩展了El Gamal加密算法,改进得到分布式环境下的El Gamal加密算法,并使用它来作为投票协议中的加密算法,所述投票场景下的分布式El Gamal算法由三部分组成:生成密钥、加密明文、共同解密,其中:
(1)生成密钥
设p为1024bit长的大素数,g为群Z* p的生成元。假设投票V有n个用户参与,分别为Q1,Q2,…Qn。每个参与者自己拟定各自的私钥si,si为用户自己拟定的随机16进制整数(长度不超过100bit),然后基于式(2.1)生成相应的公私hi=(g,s,p),hi如式(3.8)所示:
Figure BDA0003191030210000074
然后通过每个用户的公钥h生成用于加密明文选票的公共公钥H,具体如式(3.9)所示:
Figure BDA0003191030210000075
(2)加密明文
设m为待加密的明文选票,然后随机选取一个正整数k,其中1<=k<=p-1,且k与p-1的最大公约数为1,则加密函数E(m)如式(3.10)所示,其中密文em=(a,b):
E(m)=(x,y)=((gk%p),mHk%p) (3.10);
设投票参与者Qi欲投递明文选票mi,则Qi投递的加密选票emi如式(3.11)所示:
emi=((gk%p),miHk%p) (3.11);
(3)共同解密
设:所有加密选票集合为Sem,则根据式(3.12)可知:
Sem={em1,em2,em3,...,emn},emi=(ai,bi) (3.12)
在得到Sem之后,投票者i通过式(3.14)得到解密信息dmi,其中tmi属于中间变量,无实际意义:
Figure BDA0003191030210000081
dmi={tmi1,tmi2,...,tmin} (3.14)
结合所有投票者的解密信息dm,通过式(3.15)最终可以获得每个投票者的明文选票。
Figure BDA0003191030210000091
本发明的有益效果:
区块链是去中心化、去信任化的分布式系统,由分布式数据通信与传输、对等网络、共识机制、信息加密算法等多种技术集成。受分布式架构和共识算法所影响,区块链具有不可篡改、公开透明、匿名、向上回溯、去中心化等特点。基于区块链和智能合约的投票系统使得投票过程去中心化,并且通过将投票数据记录在区块链上,投票过程则透明可验证,弥补了当前线上投票系统在安全性上的不足。另一方面,基于区块链的投票系统不需要引入第三方CA,节省了投票成本。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。本发明的目标及特征考虑到如下结合附图的描述将更加明显,附图中:
附图1为根据本发明实施例的投票系统层次设计架构示意图;
附图2为根据本发明实施例的数据共享社区层次架构示意图;
附图3为根据本发明实施例的投票协议的时序图;
附图4为根据本发明实施例的共同解密流程图。
具体实施方式
一、本实施例的基于区块链和智能合约的投票系统将投票系统与数据共享社区系统进行整合。因此从系统架构设计上来看,整个系统架构也分为两个层次:投票系统层次与数据共享社区层次。
(一)投票系统的层次架构设计
从投票系统层次来看,系统设计思路如图1所示。当今主流投票系统是通过第三方服务器进行选票存储、票数计算等过程。这种实现方式存在第三方服务器作弊的可能性,投票结果安全性较差。除此之外,由于服务器数据不透明,个人很难验证所投选票是否被正确计入最终投票结果。而如果把第三方服务器换成区块链,根据区块链分布式存储的特点,每个参与投票方都保留有完整的数据进而可以避免第三方服务器作弊,并减少了引入第三方CA所需要的资源花费。然而中本聪所定义的区块链只能支持基本的转账操作,不能适用于复杂投票场景。因而需要在区块链上面引入智能合约以扩展区块链功能。由于区块链本身是公开透明的,为了能够保证在投票结束之前,无法通过访问区块链查看历史区块记录的方式来获得当前时刻已投选票情况,投票系统引入了本地加解密器来对选票进行本地加密,区块链只存储加密后的选票。直接操作区块链相关接口的操作比较复杂,为了简化用户操作,投票系统引入网页服务器,将访问区块链相关操作封装在网页服务器端并设置对应的前端网页。网页服务器端存储了投票元数据和加密的选票,这样做主要是为了支持历史查询等功能。
从上述设计思路来看,由于引入了中心化的网页服务器,整个系统架构属于中心化架构。但是关于投票相关的核心流程投票、计票是由分布式的区块链所封装,并只是对外暴露了调用接口。所以虽然系统是中心化的,但是核心投票逻辑却是分布式的。这样做既照顾了用户的使用体验又实现了投票的去中心化。
(二)数据共享社区的层次架构设计
从数据共享社区层次来看,整个系统的架构设计如图2所示,以一个请求的运行路径为例来说明数据共享社区架构设计。首先,请求会通过前端网页发出,然后到达请求分发后台系统。接着请求分发服务系统会按照请求类型进行请求转发。不同类型的请求会被转发到不同后台服务中。后台服务包括投票服务、数据交易服务、数据共享服务、用户服务、积分服务等。请求转发到对应的后台服务之后,对应的后台服务将进行相关的逻辑操作。完成相关逻辑操作之后,后台服务会调用北航链集群提供的智能合约接口。调用请求会被封装成交易的格式,放置在redis交易池中。在通过定时轮询的方式从交易池拉取交易后,区块链会运行相关的智能合约,并通过SBFT或PBFT共识算法来进行节点间的共识,最后会把共识后的区块写入到区块链中。运行智能合约产生的数据将存储在MPT树中。MPT树是由leveldb模拟的内存级数据库和Mysql数据库共同维护的持久性数据结构。图2中深色部分属于需要与数据共享社区和区块链进行对接的模块。
二、需求设计分析
按照层次来分,主要有四个层次的需求。底层区块链和智能合约接口实现、投票协议设计、后端系统整合和前端页面实现。
其中,功能需求包括投票系统中对于智能合约部分应满足的功能和特性,包括:
(1)智能合约需满足自动执行、调用执行的特点。
(2)智能合约一旦被部署则不能被修改。
(3)实际系统中应实现有关投票协议的智能合约,即投票合约。
(4)智能合约单独创立合约账户,任何节点都有权调用投票合约。
在整个系统设计中,投票协议属于核心部分。在投票协议方面,所设计的投票协议需要满足下述功能和特性:
(1)投票协议应该支持复杂的投票场景,如从N个候选人中选出M个人。
(2)投票协议需要对异常行为有容错和约束措施。用户参与一场投票,应当必须完成投票且只能投递一次。投票协议需要对重复投递、不投递等异常行为有抵御和惩罚能力。
(3)投票协议需要包含激励机制。在一场投票中,所有合规参与者应获得大于等于0的积分激励,具体获得的积分数额当按照激励算法进行积分分配。激励算法应该满足在同一个团体中,在社区中等级越高的用户获得的积分总是大于等于等级较低的用户所获得的积分。
(4)投票协议需要包含超时机制。每场投票都应设有请求最大响应时间和超时时间。
(5)投票协议需要包含等级机制。一场投票中,不同等级用户的票数在计票时需要考虑到用户等级影响。
(6)投票协议要满足选票结果的安全性。在投票结束之前,不能通过任何手段直接或者间接得到当前已投票数(实时票数);在投票结束之后,参与投票的用户能够独立验证选票结果正确性。
(7)选票协议需要尽量保障用户隐私性。
在后端系统整合方面涉及到投票系统后端与数据共享社区后端系统之间的整合,主要有以下几点需求:
(1)数据共享社区后端系统与投票系统后端共用数据库表。
(2)数据共享社区后端系统与投票系统后端以服务方式进行调用。
(3)数据共享社区后端系统有关投票相关功能应当全部调用投票系统后端接口。
(4)数据共享社区后端系统的数据库表应当支持投票场景,即能够通过查询数据库表而获得投票元数据,历史投票记录等。
在前端页面方面主要有以下几点需求:
(1)数据共享社区侧边栏应增设投票选举相关的选项卡。
(2)创建单独的投票页面,需要包括创建新的投票、当前正在进行的投票、已参与的投票和未参与的投票页面,投票详情页面等。投票页面需要与数据共享社区原有的页面区分开来。
(3)对于多轮投票,设立专门的投票窗口页面和结果查询页面。
三、投票协议设计
投票协议是整个投票系统的核心。投票协议不仅定义了整个投票过程,还规定了选票加密、解密的算法、激励机制的实现等。投票协议的时序图如图3所示。在投票系统的实现中,投票协议占据着十分关键的地位。一方面投票协议的设定直接影响到智能合约的书写、加密机制的设计,另一方面投票协议也决定了投票过程的公平性、健壮性。投票协议包括创建投票、选民参与、投加密选票、共同解密和唱票共五个阶段,贯穿奖惩机制、超时机制和加密机制共三个机制。投票协议模块主要负责投票协议设计,要求所设计的协议应当能够正确地反映投票结果,并且实现去中心化的投票、计票过程,拥有奖惩机制、超时机制,对异常投票行为和身份伪造有一定的识别能力。
(一)创建投票
任何用户都能够创建任意数量的符合格式的投票V。一场投票的元数据定义如表1所示:
表1投票元数据定义
Figure BDA0003191030210000121
Figure BDA0003191030210000131
符合格式的投票V必须且只能指定以下属性:
(1)投票名称
(2)投票的摘要
(3)投票发起人
(4)投票奖励总积分
(5)参与开始时间
(6)参与结束时间
(7)投票类型。
(二)选民参与
在创建一场投票V后,当目前系统时间大于jstarttime并小于jendtime时,用户可参与该场投票。只有参与投票的投票者(选民)才能进行投票等后续流程。每一位参与投票者会以在数据共享社区注册时所使用到的私钥s和公钥y来生成后续选票加密的私钥S和公钥Y。其中y由2.2.1El Gamal部分的式(2.1)生成,Y通过后面的式(3.9)所生成。为了满足加密模块中所制定的分布式加密算法,规定每位投票者采用共同的g和p,g和p的含义在ElGamal处定义。
信息加密是用来保护信息安全的常用手段。不同的应用场景适用不同的加密算法,加密算法一般分为对称加密和非对称加密算法两类。在对称加密算法中,通信双方需要使用相同的密钥来对明文信息进行加密和解密。这要求双方需要提前准备好密钥。而非对称加密需要使用公私钥对进行加解密。不需要双方提前准备密钥。
常见的对称加密算法有:DES,DESede,AES,RC2,RC4,RC5和Blowfish等。常见的非对称加密算法有:RSA、Elgamal、Rabin、D-H、ECC、Knapsack等。在本实施例的投票系统中,选择了基于El gamal的分布式El gamal加密算法来加密选票。
El Gamal
El Gamal加密体制是一种常见的非对称加密算法,它是由T.El Gamal于1985年提出的。El Gamal算法根据在有限域上求解离散对数问题很难在可接受时间内完成,故拥有较高的安全性。El Gamal算法是同态算法的一种,它满足乘法同态且被广泛应用在数字加密和数字签名领域中,是具有代表性的非对称加密算法。El Gamal算法的公私钥生成流程如下:
随机选择一个较长长度(1024bit以上)的大素数p,生成有限域的一个生成元
Figure BDA0003191030210000141
选择一个素数x满足1<x<p--1,则有公钥y=(g,x,p),私钥为x,如式(2.1)所示:
y=gx%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)所示:
c1=gx%p (2.2)
c2=myk%p (2.3)
对密文C进行解密,由式(3.4)可得明文m,如式(2.4)和式(2.5)所示:
Figure BDA0003191030210000142
Figure BDA0003191030210000143
(三)投加密票
已参与投票V的用户必须在规定时间内需要进行(第一阶段)投加密票,如果超过规定时间投递加密票,则视为超时。如果多次投递,则视为异常。参与投票的用户需要按照以下步骤进行投加密票。
首先要生成规定格式的明文选票Xi。出于方便编码实现的目的,明文选票格式统一规定如式(3.1)所示:
Xi=(ai0,ai1,ai2,....,aij),aij∈[1,n],1j≤n (3.1)
Xi表示参与者i的明文选票,其中aij表示参与者i投了候选者j。Xi的维度为N维,N表示候选者的总数。在得到规定格式的明文选票之后,需要对选票进行加密,加密算法为投票协议-加密机制所设计的分布式加密算法。根据分布式算法可得,加密选票EX如式(3.2)所示,T是选票X的数学表达。
Figure BDA0003191030210000151
加密选票EX即为投票内容。
(四)共同解密
投票V在(第一阶段)投加密票结束之后,用户必须在规定时间内需要进行(第二阶段)共同解密,如果超过规定时间解密,则视为超时。如果多次提交解密,则视为异常。参与共同解密的用户需要按照规定步骤提交共同解密信息。图4所示为共同解密的流程,本发明优选实施例中通过举例的形式来解释共同解密环节的具体流程。设有正处于共同解密阶段的投票V,参与投票人数为n,候选者人数为m。参与者用序号1到序号n来标识,参与者i所投加密选票(在第一阶段中投递)为EXi,1<=i<=n。则对于参与者i而言,待解密选票集合SEX由表达式(3.3)所示,获得SEX之后,参与者i需要按照加密模块所定义的分布式加密算法生成SCXi,SCXi的公式如式(3.4)所示。cj为中间变量,无实际意义。
SEX={a1,a2,...,an},EXi=(ai,bi) (3.3)
Figure BDA0003191030210000152
共同解密实际上是已投票用户根据第一阶段所有人所投的加密选票,提交各自对应解密信息的过程。
(五)唱票
此阶段应当不需要投票参与者有任何操作,也不需要任何第三方CA参与,而是由区块链智能合约自动化计算票数。根据获得的加密选票EXi和解密信息SCXi对选票进行解密,解密算法如式(3.5)所示。Ti是明文选票Xi的数学表达。
Figure BDA0003191030210000161
最后得到投票结果result如式(3.6)所示:
Figure BDA0003191030210000162
其中tij表示参与投票的用户j对候选者i是否投票,tij可由如下代码生成:
if Xi contains j,tij=1;
else tij=0;
注释:如果Xi包含j,则tij为1否则为0。
(六)三种机制
1、奖惩机制:在引入奖惩机制之前,需要先引入获胜方与失败方这两个概念。在话题类型投票场景中,获胜方指的是最后票数高的一方。在候选人类型投票场景中,获胜方指的是票数前m高的候选人集合。投票协议中的奖惩机制主要是有两方面的作用。一方面对于超时、伪造选票、伪造投票者等异常行为进行惩罚,另一方面对完成投票并处于获胜方的投票者进行奖励。为了便于形象准确的描述惩罚和奖励程度,惩罚和奖励会通过积分的形式被量化。每场投票开始时会有初始的奖励积分points,points默认为100。points最后会由获胜方成员瓜分。积分是在数据共享社区中用来交易数据时所使用的虚拟货币。对于超时、伪造选票、伪造投票者会进行对应类型的惩罚,惩罚形式为扣除一定额度的积分。points积分的瓜分问题本质是一种收益分配问题。而收益分配问题常见的解决方法有:加权平均法和shapley值法。投票协议的奖惩机制采用的是小规模投票采用shapley值法(n<40),在大规模投票时采用加权平均法(n>=40)。在实际投票场景中票数和对投票结果的影响之间往往不是成正比的,而只是一种正相关关系。票数加权平均法只是考虑了票数作为因变量,而Shapley值法基于合作博弈的思想,除了票数还引入了关键人的概念,考虑到可能的投票次序对投票结果产生的影响。Shapley值法属于现有技术,在此处我们就不再赘述。在一场投票中,获胜方的投票者i能够获得的激励积分Pi如式(3.7)所示,其中Ti由式(2.10)所定义。而对于异常情况的积分惩罚,具体细节按表2所示执行
Figure BDA0003191030210000171
Shapley值法主要模拟的是在合作博弈的条件下,博弈者按照对博弈结果的影响程度来进行收益分配。博弈者对博弈结果的影响不仅包含对博弈结果的直接贡献(如投票博弈中的选票)还包含可能对博弈结果造成的影响(如投票博弈中可能投但实际未投的选票)。在一场博弈中,按照Shapley值法,每个成员应该获得的期望收益如式(2.6)所示:
Figure BDA0003191030210000172
其中|s|表示联盟S的成员个数,
Figure BDA0003191030210000173
表示参加该场博弈,且加入联盟S的博弈者i应得到的期望收益。V(S)表示联盟受益函数,一般根据实际的博弈场景而进行制定。
[V(S)-V(S\{i})]表示博弈者i在联盟S中付出的贡献。在本实施例实现的投票系统奖惩机制中,采用了基于shapley值的权利指数方法来进行收益分配。权利指数就是V(S)为式(2.7)和式(2.8)所示的一种情况。
V(c)-V(C\{i})=1,联盟C胜出而联盟C\{i}失败 (2.7)
V(c)-V(C\{i})=1,其他情况 (2.8)
投票者获得的收益Ti如式(2.9)和(2.10)所示,其中W为总的待分配收益
Figure BDA0003191030210000174
Figure BDA0003191030210000181
这里值得一提的是,奖惩机制会影响社区用户的积分,而社区用户的积分也会反过来影响投票权重。在数据共享社区中,用户会根据积分多少而被分为多个等级。不同等级的用户票数权重不同。虽然每个用户实际只能投一票(二选一投票场景),但是用户所投选票代表了其所拥有的票数权重,在计票时只统计各候选者所得票数权重和。
表2异常情况的积分处罚
Figure BDA0003191030210000182
2、超时机制:超时机制只定义投票流程过发生的超时情况以及对应的处理措施。对于系统层面引发的超时情况如请求超时、请求丢失、服务故障等均不在考虑范围内。超时机制共包含三种超时丢失情况。表3详细描述了三种超时丢失情况:
表3超时情况定义表
Figure BDA0003191030210000183
所有的超时情况都属于异常情况,会受到惩罚机制约束,具体的惩罚细节在表3.2处有相关定义。
3、加密机制:加密机制主要负责对投票过程产生的选票进行加密以保证选票安全和最终选票结果的安全。当前主流的加密技术有DES、AES、RC2、RSA、ECC、El Gamal等。上述加密算法各有特点,但都不能很好地使用在本实施例所提出的投票系统中。为了适应本发明设计的投票系统并保障投票过程中的安全性,扩展了El Gamal加密算法,改进得到分布式环境下的El Gamal加密算法,并使用它来作为投票协议中的加密算法。投票场景下的分布式ElGamal算法由三部分组成:生成密钥、加密明文、共同解密。
(1)生成密钥
设p为1024bit长的大素数,g为群Z* p的生成元。假设投票V有n个用户参与,分别为Q1,Q2,...Qn。每个参与者自己拟定各自的私钥si,si为用户自己拟定的随机16进制整数(长度不超过100bit),然后基于式(2.1)生成相应的公私hi=(g,s,p),hi如式(3.8)所示:
Figure BDA0003191030210000191
然后通过每个用户的公钥h生成用于加密明文选票的公共公钥H,具体如式(3.9)所示:
Figure BDA0003191030210000192
(2)加密明文
设m为待加密的明文选票,然后随机选取一个正整数k,其中1<=k<=p-1,且k与p-1的最大公约数为1,则加密函数E(m)如式(3.10)所示,其中密文em=(a,b)。
E(m)=(x,y)=((gk%p),mHk%p) (3.10)
设投票参与者Qi欲投递明文选票mi,则Qi投递的加密选票emi如式(3.11)所示:
emi=((gk%p),miHk%p) (3.11)
(3)共同解密
设:所有加密选票集合为Sem,则根据式(3.12)可知:
Sem={em1,em2,em3,...,emn},emi=(ai,bi) (3.12)
在得到Sem之后,投票者i通过式(3.14)得到解密信息dmi,其中tmi属于中间变量,无实际意义。
Figure BDA0003191030210000201
dmi={tmi1,tmi2,...,tmin} (3.14)
结合所有投票者的解密信息dm,通过式(3.15)最终可以获得每个投票者的明文选票。
Figure BDA0003191030210000202
虽然本发明已经参考特定的说明性实施例进行了描述,但是不会受到这些实施例的限定而仅仅受到附加权利要求的限定。本领域技术人员应当理解可以在不偏离本发明的保护范围和精神的情况下对本发明的实施例能够进行改动和修改。

Claims (10)

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为1024bit长的大素数,g为群Z* p的生成元,g和p的含义在El Gamal处定义,所述El Gamal算法的公私钥生成流程如下:
随机选择一个较长长度(1024bit以上)的大素数p,生成有限域的一个生成元
Figure FDA0003191030200000021
选择一个素数x满足1<x<p-1,则有公钥y=(g,x,p),私钥为x,如式(2.1)所示:
y=gx%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)所示:
c1=gx%p (2.2)
c2=myk%p (2.3)
对密文C进行解密,由式(3.4)可得明文m,如式(2.4)和式(2.5)所示:
Figure FDA0003191030200000022
Figure FDA0003191030200000023
5.一种根据权利要求4所述的基于区块链和智能合约的分布式投票方法,其特征在于所述投加密票包括:已参与投票V的用户必须在规定时间内需要进行投加密票,如果超过规定时间投递加密票,则视为超时,如果多次投递,则视为异常,参与投票的用户需要按照以下步骤进行投加密票:
首先要生成规定格式的明文选票Xi,如式(3.1)所示:
Xi={ai0,ai1,ai2,....,aij},aij∈[1,n],1≤j≤n (3.1);
其中,Xi表示参与者i的明文选票,其中aij表示参与者i投了候选者j,Xi的维度为N维,N表示候选者的总数;
在得到规定格式的明文选票之后,对选票进行加密,加密算法为投票协议-加密机制所设计的分布式加密算法,根据分布式算法可得,加密选票EX如式(3.2)所示,T是选票X的数学表达:
Figure FDA0003191030200000032
加密选票EX即为投票内容。
6.一种根据权利要求5所述的基于区块链和智能合约的分布式投票方法,其特征在于所述共同解密包括:所述投票在投加密票结束之后,用户必须在规定时间内需要进行共同解密,如果超过规定时间解密,则视为超时,如果多次提交解密,则视为异常,参与共同解密的用户按照如下规定步骤提交共同解密信息:设有正处于共同解密阶段的投票V,参与投票人数为n,候选者人数为m,参与者用序号1到序号n来标识,参与者i在第一阶段中投递加密选票为EXi,1<=i<=n,则对于参与者i而言,待解密选票集合SEX由表达式(3.3)所示,获得SEX之后,参与者i需要按照加密模块所定义的分布式加密算法生成SCXi,SCXi的公式如式(3.4)所示,其中cj为中间变量,无实际意义;
SEX={a1,a2,...,an},EXi=(ai,bi) (3.3);
Figure FDA0003191030200000031
所述共同解密是已投票用户根据第一阶段所有人所投的加密选票,提交各自对应解密信息的过程。
7.一种根据权利要求6所述的基于区块链和智能合约的分布式投票方法,其特征在于:所述唱票不需要投票参与者有任何操作,也不需要任何第三方CA参与,而是由区块链智能合约自动化计算票数,根据获得的加密选票EXi和解密信息SCXi对选票进行解密,解密算法如式(3.5)所示,其中Ti是明文选票Xi的数学表达;
Figure FDA0003191030200000041
最后得到投票结果result如式(3.6)所示:
Figure FDA0003191030200000042
其中tij表示参与投票的用户j对候选者i是否投票,tij由如下代码生成:
if Xi contains j,tij=1;
else tij=0;
注释:如果Xi包含j,则tij为1否则为0。
8.一种根据权利要求2所述的基于区块链和智能合约的分布式投票方法,其特征在于所述奖惩机制包括:惩罚和奖励会通过积分的形式被量化,每场投票开始时会有初始的奖励积分,积分默认为100,积分最后会由获胜方成员瓜分,所述积分是在所述数据共享社区中用来交易数据时所使用的虚拟货币,对于超时、伪造选票、伪造投票者会进行对应类型的惩罚,惩罚形式为扣除一定额度的积分,所述投票协议的所述奖惩机制在小规模投票采用shapley值法(n<40),在大规模投票时采用加权平均法(n>=40),所述Shapley值法基于合作博弈的思想,除了票数还引入了关键人的概念,考虑到可能的投票次序对投票结果产生的影响,在一场投票中,获胜方的投票者i能够获得的激励积分Pi如式(3.7)所示,其中Ti由式(2.10)所定义。
Figure FDA0003191030200000043
Figure FDA0003191030200000051
其中W为总的待分配收益,Φi[V]为参加博弈且加入联盟的博弈者i应得到的期望收益,
Figure FDA0003191030200000052
9.一种根据权利要求2所述的基于区块链和智能合约的分布式投票方法,其特征在于:所述超时机制定义投票流程过发生的超时情况以及对应的处理措施,对于系统层面引发的超时情况如请求超时、请求丢失、服务故障等均不在考虑范围内。超时机制共包含参与超时、投票超时以及共同解密超时三种超时丢失情况,所有的超时情况都属于异常情况,会受到惩罚机制约束,如果是参与超时扣除50积分,如果是投票超时扣除60积分,如果是共同解密超时,扣除100积分。
10.一种根据权利要求2所述的基于区块链和智能合约的分布式投票方法,其特征在于:所述加密机制用于对投票过程产生的选票进行加密以保证选票安全和最终选票结果的安全,使用扩展了El Gamal加密算法,改进得到分布式环境下的El Gamal加密算法,并使用它来作为投票协议中的加密算法,所述投票场景下的分布式El Gamal算法由三部分组成:生成密钥、加密明文、共同解密,其中:
(1)生成密钥
设p为1024bit长的大素数,g为群Z* p的生成元。假设投票V有n个用户参与,分别为Q1,Q2,…Qn。每个参与者自己拟定各自的私钥si,si为用户自己拟定的随机16进制整数(长度不超过100bit),然后基于式(2.1)生成相应的公私hi=(g,s,p),hi如式(3.8)所示:
Figure FDA0003191030200000053
然后通过每个用户的公钥h生成用于加密明文选票的公共公钥H,具体如式(3.9)所示:
Figure FDA0003191030200000054
(2)加密明文
设m为待加密的明文选票,然后随机选取一个正整数k,其中1<=k<=p-1,且k与p-1的最大公约数为1,则加密函数E(m)如式(3.10)所示,其中密文em=(a,b):
E(m)=(x,y)=((gk%p),mHk%p) (3.10);
设投票参与者Qi欲投递明文选票mi,则Qi投递的加密选票emi如式(3.11)所示:
emi=((gk%p),miHk%p) (3.11);
(3)共同解密
设:所有加密选票集合为Sem,则根据式(3.12)可知:
Sem={em1,em2,em3,...,emn},emi=(ai,bi) (3.12)
在得到Sem之后,投票者i通过式(3.14)得到解密信息dmi,其中tmi属于中间变量,无实际意义:
Figure FDA0003191030200000061
dmi={tmi1,tmi2,...,tmin} (3.14)
结合所有投票者的解密信息dm,通过式(3.15)最终可以获得每个投票者的明文选票。
Figure FDA0003191030200000071
CN202110878571.5A 2021-08-02 2021-08-02 一种基于区块链和智能合约的分布式投票系统及方法 Active CN114362987B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110878571.5A CN114362987B (zh) 2021-08-02 2021-08-02 一种基于区块链和智能合约的分布式投票系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110878571.5A CN114362987B (zh) 2021-08-02 2021-08-02 一种基于区块链和智能合约的分布式投票系统及方法

Publications (2)

Publication Number Publication Date
CN114362987A true CN114362987A (zh) 2022-04-15
CN114362987B CN114362987B (zh) 2023-02-28

Family

ID=81095916

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110878571.5A Active CN114362987B (zh) 2021-08-02 2021-08-02 一种基于区块链和智能合约的分布式投票系统及方法

Country Status (1)

Country Link
CN (1) CN114362987B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114978517A (zh) * 2022-07-27 2022-08-30 西南石油大学 一种基于智能合约和分布式Elgamal算法的电子投票方法
CN115314352A (zh) * 2022-07-27 2022-11-08 北京航空航天大学 隐私增强的公平区块链领导者选举方法及装置
CN117240496A (zh) * 2023-07-20 2023-12-15 北京邮电大学 投票方法及相关设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110245183A (zh) * 2019-05-05 2019-09-17 上海链度科技有限公司 一种基于联盟区块链技术的加密电子投票选举系统及方法
CN110391911A (zh) * 2019-07-23 2019-10-29 中国工商银行股份有限公司 区块链匿名投票系统及方法
CN111343001A (zh) * 2020-02-07 2020-06-26 复旦大学 一种基于区块链的社交数据共享系统
CN112347508A (zh) * 2020-11-04 2021-02-09 汪秀英 一种区块链数据共享加密和解密方法及系统
CN112581132A (zh) * 2020-12-24 2021-03-30 华南理工大学 一种保证投票发起人权益的公平的区块链投票方法及系统
CN112991128A (zh) * 2021-03-02 2021-06-18 北京航空航天大学 一种区块链技术的数据共享社区治理方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110245183A (zh) * 2019-05-05 2019-09-17 上海链度科技有限公司 一种基于联盟区块链技术的加密电子投票选举系统及方法
CN110391911A (zh) * 2019-07-23 2019-10-29 中国工商银行股份有限公司 区块链匿名投票系统及方法
CN111343001A (zh) * 2020-02-07 2020-06-26 复旦大学 一种基于区块链的社交数据共享系统
CN112347508A (zh) * 2020-11-04 2021-02-09 汪秀英 一种区块链数据共享加密和解密方法及系统
CN112581132A (zh) * 2020-12-24 2021-03-30 华南理工大学 一种保证投票发起人权益的公平的区块链投票方法及系统
CN112991128A (zh) * 2021-03-02 2021-06-18 北京航空航天大学 一种区块链技术的数据共享社区治理方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
SIYUAN WANG, XUEHAN ZHANG, WEI YU, KAI HU, JIAN ZHU: "Smart_Contract_Microservitization", 《2020 IEEE 44TH ANNUAL COMPUTERS, SOFTWARE, AND APPLICATIONS CONFERENCE (COMPSAC)》 *
SYADA TASMIA ALVI,、MOHAMMED NASIR UDDIN、LINTA ISLAM: "A_Blockchain_based_Cost_effective_Digital_Voting_System_using_SideChain_and_Smart_Contracts", 《2020 11TH INTERNATIONAL CONFERENCE ON ELECTRICAL AND COMPUTER ENGINEERING (ICECE)》 *
王沛然、李加福、雷志伟、张桂刚、张勇、邢春晓: "智能合约的分段同态加密研究", 《计算机与数字工程》 *
黄洁华、高灵超、许玉壮、白晓敏、胡凯: "众筹区块链上的智能合约设计", 《信息安全研究》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114978517A (zh) * 2022-07-27 2022-08-30 西南石油大学 一种基于智能合约和分布式Elgamal算法的电子投票方法
CN114978517B (zh) * 2022-07-27 2022-10-21 西南石油大学 一种基于智能合约和分布式Elgamal算法的电子投票方法
CN115314352A (zh) * 2022-07-27 2022-11-08 北京航空航天大学 隐私增强的公平区块链领导者选举方法及装置
CN115314352B (zh) * 2022-07-27 2023-12-12 北京航空航天大学 隐私增强的公平区块链领导者选举方法及装置
CN117240496A (zh) * 2023-07-20 2023-12-15 北京邮电大学 投票方法及相关设备

Also Published As

Publication number Publication date
CN114362987B (zh) 2023-02-28

Similar Documents

Publication Publication Date Title
CN109120398B (zh) 一种基于区块链系统的秘密共享方法与装置
Zhou et al. Solutions to scalability of blockchain: A survey
CN114362987B (zh) 一种基于区块链和智能合约的分布式投票系统及方法
CN110599147B (zh) 一种基于区块链的密文检索公平支付方法及系统
Abuidris et al. Secure large‐scale E‐voting system based on blockchain contract using a hybrid consensus model combined with sharding
CN109523683B (zh) 一种基于区块链技术的不记名电子投票方法
Ziegeldorf et al. Coinparty: Secure multi-party mixing of bitcoins
Miers et al. Zerocoin: Anonymous distributed e-cash from bitcoin
KR102250810B1 (ko) 트랜잭션 증명 방식의 합의 알고리즘이 적용된 블록체인 시스템 및 그 방법
Takabatake et al. An anonymous distributed electronic voting system using Zerocoin
CN111066283A (zh) 对区块链网络上实体提供的数据进行通信、存储和处理的系统和方法
CN111090892A (zh) 一种基于vrf和门限签名的区块链共识方法和装置
CN110855432B (zh) 基于可验证随机函数分配验证者奖励的异步bft&amp;dpos共识机制
Park et al. Towards secure quadratic voting
CN106920097A (zh) 一种量子链共识协议的生成时间块链方法
Jia et al. Delottery: a novel decentralized lottery system based on blockchain technology
Chaumont et al. DPoPS: Delegated Proof-of-Private-Stake, a DPoS implementation under X-Cash, a Monero based hybrid-privacy coin
Wu et al. Privacy-preserving voluntary-tallying leader election for internet of things
Li et al. Silentdelivery: Practical timed-delivery of private information using smart contracts
Blanton Improved conditional e-payments
Takabatake et al. An anonymous distributed electronic voting system using Zerocoin
Clark et al. Research perspectives and challenges for bitcoin and cryptocurrencies
Carbunar et al. Conditional e-payments with transferability
EP3474241A1 (en) Electronic balloting
Byers Combating Front-Running in the Blockchain Ecosystem

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
GR01 Patent grant
GR01 Patent grant