CN116738452A - 一种基于区块链的小区民主投票方法 - Google Patents
一种基于区块链的小区民主投票方法 Download PDFInfo
- Publication number
- CN116738452A CN116738452A CN202310478961.2A CN202310478961A CN116738452A CN 116738452 A CN116738452 A CN 116738452A CN 202310478961 A CN202310478961 A CN 202310478961A CN 116738452 A CN116738452 A CN 116738452A
- Authority
- CN
- China
- Prior art keywords
- voting
- owner
- blockchain
- vote
- ballot
- 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 40
- 238000005516 engineering process Methods 0.000 claims abstract description 18
- 238000012795 verification Methods 0.000 claims description 23
- 238000012797 qualification Methods 0.000 claims description 8
- 239000002699 waste material Substances 0.000 claims description 5
- 238000012550 audit Methods 0.000 claims description 4
- 239000003999 initiator Substances 0.000 claims description 4
- 230000004931 aggregating effect Effects 0.000 claims description 3
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 238000013461 design Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 10
- 230000008520 organization Effects 0.000 description 7
- 201000004569 Blindness Diseases 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 206010033799 Paralysis Diseases 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于区块链的小区民主投票方法,涉及区块链技术领域,通过将盲签名和零知识证明技术相结合,在保护业主隐私的同时,确保了业主身份的合法性;通过改进基于Elgamal的门限加密技术,有效地保证了投票的公平性;通过独特的流程设计,使该方法具有突出的高泛用性、高效性和平台独立性;本方法能够完全满足理想电子投票系统包括合法性、隐私性。完整性、公开性、准确性、可验证性、唯一性以及鲁棒性在内的八个安全标准,并有效解决了目前现有的基于区块链的电子投票方法存在的投票效率低、功能单一、依赖特定区块链平台等问题。
Description
技术领域
本发明涉及区块链技术领域,特别是涉及一种基于区块链的小区民主投票方法。
背景技术
小区民主是一种基层民主形式,投票在小区民主管理中扮演着十分重要的角色。小区业主能够通过投票的方式来表达自己的意愿,从而实现民主选举、民主决策以及民意调查。但是,推动小区民主投票存在着诸多困难:首先,因为小区公共事务繁多,频繁举办现场投票成本高昂,将会对小区物业或业主产生一定的经济负担;其次,由于进行现场投票会占用业主大量的时间且流程繁琐,易降低业主参与的积极性,同时业主可能会因为各种原因无法出席。因此,高昂的成本以及较低的参与率导致了小区投票难以开展,小区业主的民主权利难以得到保障。
近年来,随着信息技术的不断发展,电子投票逐渐出现在公众视野中。许多研究人员陆续提出了一些方案完整的电子投票模型。相较于传统的纸质投票,电子投票更加便捷、环保、节约成本。1992年,Fujioka等人提出了一种适用于大规模选举的保密投票方案,其使用了盲签名和比特承诺技术来加密选票,并将选票发送到可信第三方(TTP)进行计票;2002年,Kiayias和Yung提出了一个无争议的、自计票的和支持完全选票保密的电子投票模型;2010年,Hao等人提出了一个能够自计票的两轮匿名投票模型,它不需要可信第三方或者私有信道,参与者通过发送两轮公共消息来执行协议,因此,该方案在轮数、计算成本和带宽使用方面更加高效。但是,这些传统方案由于采用中心化设计,投票、计票过程不透明,因此可能存在着篡改选票、操纵投票结果的情况,同时其也易遭受网络攻击从而会造成服务瘫痪。
通常来说,一个理想的电子投票系统应该具有如下八个基本安全特性:
1)合法性:对投票发起人发起的投票活动进行审查,以确保投票内容的合法性;同时,投票人的身份必须得到认证,只有合法的投票人才有资格进行投票;
2)隐私性:即投票人身份的隐私,任何个人或组织在任何阶段都无法将投票人真实身份与选票建立联系;
3)完整性:任何个人或组织都不可以修改、伪造或删除选票;
4)公正性:在投票结束前,任何个人或组织都不能提前获取投票结果;
5)准确性:所以经过验证的合法选票都应当被正确的计入最终结果中;
6)可验证性:投票人可以验证他们的选票是否被正确记录,任何被授权的人都可以验证最终的计票结果;
7)唯一性:每位投票人都只能保留一张合法的选票;
8)鲁棒性:系统应该能够容忍一些错误的投票,它们不会对投票进程以及最终结果产生影响。
2008年中本聪发表了比特币的原始论文,区块链技术就此诞生。区块链是一项数据存储的技术,它可以被看作是一个数字的、去中心化的、公开的、不可篡改的分布式账本,用户之间的所有交易都以公开、安全的方式记录,而不需要中央实体的控制。由于区块链的这些特性能够很好解决传统电子投票系统的安全问题,因此,许多基于区块链的电子投票方案相继问世,它们可以有效防止恶意攻击或出现欺诈投票等情况的发生。
McCorry等人在2017年提出了第一个不依赖可信第三方来进行计票和保护投票人隐私的区块链投票方案,任何参与者都可以通过公开可访问的函数来计算最终的投票结果,但是该方案不允许出现弃票的情况且只适用于小范围的选举,缺乏鲁棒性和泛用性;Liu等人提出了一种基于区块链的平台独立的匿名投票方案,该方案利用盲签名技术有效保护了投票人的隐私,但是投票人的每次投票都需经过组织者和检查者两方的盲签名,流程较为繁琐,而且投票的中间结果对所有参与者都是公开的,这可能会对投票的最终结果产生影响,缺乏公正性;Yang等人提出了一种基于同态加密的投票协议,该协议允许每个选民投票给多个候选人,每个参与者都可以通过使用加密的同态性质在不解密选票情况下来验证投票的有效性以及计票结果,但是,同态加密通常需要巨大的计算开销,效率低下,因此该方案只能适用于小范围场景下的选举。
综上所述,现有基于区块链的技术方案中普遍存在着一些问题:首先,它们难以完全满足上述八个基本安全标准;第二,适用场景单一,仅局限于民主选举,难以满足小区投票中对民主决策和民意调查功能的需求;第三,投票流程复杂且效率低下,易导致业主参与积极性降低;第四,它们大多依赖于特定的底层区块链平台,难以适应不同小区的具体情况,缺乏灵活性。因此,现有技术方案并不适用于小区场景下的投票需求。
发明内容
为了解决以上技术问题,本发明提供一种基于区块链的小区民主投票方法,包括以下步骤
S1、初始化阶段:各实体分别初始化各类的密钥参数,同时CA获取当前小区合法投票业主名单,实体包括业主、物业、业主委员会以及CA;
S2、注册阶段:业主设置自己的投票公钥,且将此投票公钥与自身身份信息发送给CA;CA认证业主身份后对业主的投票公钥进行盲签名,然后将签名返回给业主;业主将签名以及投票公钥发送给区块链智能合约进行验证,验证通过后智能合约将投票公钥存储在区块链上,此时即注册成功,只有注册成功的业主才具有投票资格;
S3、投票发起阶段:物业或者业主向业主委员会发起投票提案;业主委员会中的成员对提案进行审核;审核通过后将投票信息公布到区块链上,供任何有权限访问该区块链的小区业主及时获得此投票信息;
S4、投票阶段:注册成功的业主获取区块链上的投票信息,然后选择相应选项,系统根据选择自动生成选票;接着采用门限加密技术对选票进行加密,密钥由物业、业主委员会和CA共同持有;最后采用零知识证明技术向智能合约证明该业主拥有投票公钥对应的私钥,即具有投票资格的注册用户;智能合约验证通过后,将加密后的选票存入区块链,供业主在区块链上验证自己的选票是否被正确存储;
S5、计票阶段:到达投票截止时间后,若投票人数小于等于小区总人数的2/3,则该轮投票作废;若投票人数大于小区总人数的2/3,则进入计票阶段,未在规定时间内投票的业主则被视为弃权;
计票开始时,CA、业主委员会以及物业分别将各自持有的选票加密私钥发送给智能合约;然后智能合约通过选票解密密钥将所有加密的选票逐一解密,并判断选票格式是否正确,若正确则该选票合法;若不正确则该选票被视为废票,不再参与后续计票环节;智能合约对合法选票进行统计,最后将计票结果公布在区块链上。
本发明进一步限定的技术方案是:
进一步的,步骤S1中,CA生成全局公共参数g、p以及q,同时生成当前小区的盲签名公私钥对(pkblind,skblind),并从业主委员会处获取小区合法投票业主名单;然后将公共参数g、p、q以及pkblind公布在区块链上,供任何参与者对这些参数进行获取。
前所述的一种基于区块链的小区民主投票方法,步骤S2中,注册阶段包括以下分步骤
S2.1、业主在DApp上设置投票密钥xi,DApp计算投票私钥ski←hash(xi),并计算投票公钥
S2.2、生成消息m←hash(pki),然后选取一个随机数r1作为盲化因子,利用r1和pkblind将pki盲化,得到m'←blind(m,r1),接着将m'连同个人信息一起发送给CA;
S2.3、CA验证该用户为合法业主后,使用skblind对消息m'进行盲签名得到签名BlindSig←sign(m',skblind),然后将BlindSig返回给业主;
S2.4、业主收到BlindSig之后,将其去盲,得到原始签名Sig←unblind(BlindSig,r1),并用pkblind验证签名的正确性;
S2.5、接着业主将pki以及Sig发送给区块链智能合约,智能合约在验证签名正确且该公钥未注册后,将pki存储到区块链上。
前所述的一种基于区块链的小区民主投票方法,步骤S3中,业主委员会中的成员对提案进行审核,当成员中的2/3持赞成意见时,即表示审核通过。
前所述的一种基于区块链的小区民主投票方法,步骤S3中,提案审核通过后,进行以下步骤
S3.1、业主委员会中的管理员对附加信息进行设置,附加信息包括投票开始日期和截止日期,并将附加信息发送给智能合约;
S3.2、智能合约对发起人的身份进行验证,并对提案进行格式校验后将投票信息公布到区块链上,供任何有权限访问该区块链的小区业主获得此投票信息;
S3.3、接着,CA、业主委员会以及物业分别生成选票门限加密的私钥skCA、skC、skM,并各自计算加密中间数发送给智能合约;
S3.4、智能合约将接收到的各加密中间数相乘以生成选票加密公钥并在区块链上公布pkvote。
前所述的一种基于区块链的小区民主投票方法,步骤S3.3中,CA、业主委员会以及物业在每轮投票中均生成新的不同的选票门限加密的私钥,每个选票门限加密的私钥仅限于当前轮投票的使用。
前所述的一种基于区块链的小区民主投票方法,步骤S4中,投票阶段包括以下步骤
S4.1、业主获取区块链上的投票信息,然后在DApp上根据自己的偏好选择相应选项,DApp根据业主选择的选项自动生成选票字符串;
S4.2、选票字符串生成后,DApp将其进行ASCII编码后得到选票votei,然后计算hash(votei)并生成一个随机数r2,使用门限加密公钥pkvote加密选票得到votei'←encrypt(votei,r,pkvote);
S4.3、业主输入自己的投票私钥ski,DApp在本地计算零知识证明校验数ZKP,再将(pki,ZKP,votei')发送给投票智能合约;
S4.4、智能合约首先验证ZKP,证明业主拥有pki,验证通过后将votei'与hash(votei)存入区块链,以供业主在区块链上验证自己的选票是否被正确存储。
前所述的一种基于区块链的小区民主投票方法,步骤S4.1中,选票字符串依次包括n个已选选项、检验字符串以及随机字符串;
n个已选选项表示为X1&X2&...Xn,其中X1、X2...Xn表示业主选择的选项,通过符号&对业主选择的选项进行连接,n∈[1,m],m表示该轮投票选项的总数;校验字符串表示为_VOTE_,用于验证该选票格式是否合法;随机字符串的长度设为k,且k大于等于6。
前所述的一种基于区块链的小区民主投票方法,步骤S5中,计票开始时,CA、业主委员会以及物业分别将各自持有的该轮投票的选票加密私钥skCA、skC、skM发送给智能合约;
然后智能合约将私钥skCA、skC、skM聚合,并把所有加密的选票逐一解密得到votei *←decrypt(votei',skCA,skC,skM),i∈[1,n],再将每张解密后选票的哈希值hash(votei *)与业主投票时存储在区块链上的原始哈希值hash(votei)进行比对,如果哈希值比对一致且选票格式正确,则该选票合法;否则该选票被视为废票,不再参与后续计票环节。
本发明的有益效果是:
本发明中,借助区块链、盲签名、零知识证明以及门限加密等技术,提出了一种新颖的小区民主投票方案,本发明能够完全满足背景技术中所述的八个安全标准,还具有独有的高泛用性、高效性以及平台独立性。
合法性:小区业主或者物业发起的投票活动都要求通过业主委员会的审查,只有合法的投票活动才能够获得批准;另外,只有得到CA授权的合法业主才能调用智能合约进行投票;并且本发明中采用了零知识证明技术,业主在投票时无需发送自己的私钥信息,大大降低了私钥的泄露风险,从而能够有效防止冒名投票的情况发生。
隐私性:利用盲签名技术的盲性,业主将自己的真实身份与投票公钥进行分离;CA在对业主提交的投票公钥进行盲签名时,虽然知道业主的身份,但是无法知晓其使用的真实投票公钥,从而无法将投票人的真实身份与投票公钥建立联系;因此,业主的身份隐私在不依赖于对第三方的信任的情况下得到了保护。
完整性:业主投出的选票被存储在区块链上,由于区块链具有去中心化、公开透明以及不可篡改等特性,在区块链上的任何行为都会受到所有参与者的共同监督,因此任何个人与机构都无法轻易地修改、伪造或删除选票。
公正性:由于选票采用门限加密技术,在投票或传输过程中即使选票遭到了泄露,除了投票人自己,任何个人与组织都无法知晓选票的具体内容;同时,选票的解密密钥分别由CA、物业以及业主委员会共同持有,必须由三方共同参与,才能解密选票;因此,在投票截止时间到达之前,即使有任意两方不慎泄露私钥,选票也无法解密;因此投票的中间结果不会遭到泄露,保证了投票的公正性。
准确性:在计票阶段,本方案采用了区块链智能合约进行计票,取代了传统的第三方计票机构;计票相关的智能合约代码支持各实体组织的公开审查,计票过程公开透明,只有经过智能合约验证的合法选票才会被统计并添加到最终结果中,保证了计票结果的准确性。
可验证性:业主在完成投票后可以在区块链上查询自己的选票,以验证他们的选票是否被正确记录;投票阶段结束后,任何有权限访问区块链的用户都可以使用CA、物业以及业主委员会公布的私钥对区块链上存储的加密选票自行解密并计票,来验证最终的计票结果是否正确。
唯一性:在注册阶段,每位业主凭借其身份信息只有一次获得盲签名的机会,因此在一轮投票中只能合法持有一个投票公钥;业主在投票时,智能合约会将该业主的投票公钥记录在区块链上,因此业主进行重复投票时,最新的选票会覆盖原有的选票,确保了一位业主只能保留一张合法选票。
鲁棒性:在投票阶段结束后,即使有部分业主(小于等于小区业主总数的1/3)没有投票,也不会对投票流程产生影响,这些未投票业主将被视为弃权;在计票阶段,如果系统发现有部分不合法的选票(小于等于小区总业主数的1/3),这些选票随对应的业主同样也将被视为弃权,并不会计入最终结果之中。
高泛用性:由于本发明采用独有的选票门限加密方式,选票能够支持多选,满足多样化的投票场景需求,不仅可以用于小区民主选举,还能够实现小区民主决策与民意调查功能。
高效性:业主在得到CA的盲签名后,无需等待其他业主,便可以直接向投票智能合约发起零知识证明来进行投票,注册阶段与投票阶段可以并行;同时,本发明对不同投票活动的选票进行区分,因此多轮投票可以在同一时间段内同时进行;业主在获得CA的一次身份认证后,便可以进行多轮次的投票直至业主身份被注销,投票完成后便可以下线,无需参与后续流程,因此,业主不用与CA、智能合约进行频繁的交互;因此,本发明大大简化了投票流程,节省了业主时间,提高了投票的效率。
平台独立性:本发明只提出了一种安全投票框架,并未对底层区块结构做出要求,因此其独立于底层区块链平台,只要区块链平台具备状态数据库、智能合约等基础功能就可以部署该方案,小区可以根据自身实际情况选择合适的区块链平台;可以使用包括公有链(ETH、EOS、Solana等)、联盟链(Hyperledger Fabric、Hyperchain等)或者自定义的私有区块链。
附图说明
图1为本发明的模型示意图;
图2为本发明中注册阶段的UML时序图;
图3为本发明投票阶段的UML时序图;
图4为本发明中选票字符串的格式图;
图5为本发明中计票阶段的流程示意图。
具体实施方式
本实施例提供的一种基于区块链的小区民主投票方法,其中涉及到盲签名、零知识证明以及门限加密三种密码学技术。
盲签名:盲签名实现了签名者对发送者的消息进行签名,却无法得到发送者消息的具体内容的功能;因此,盲签名能够有效隐藏所签署消息的具体内容,所以在电子商务和电子投票等领域有着广泛的应用;盲签名的实现方式多种多样,本实施例采用的是基于RSA的盲签名算法,该算法具体实现过程如下:
假设Alice是消息m的持有者,Bob是签名者,首先Bob生成自己的RSA公钥(n,e)以及私钥(n,d),并将公钥(n,e)公开;然后,Alice选取盲化因子r,根据公式(1)将消息m盲化为m';接着,Alice将m'发送给Bob,Bob根据公式(2)对m'进行盲签名得到签名BlindSig,并返回给Alice;最后,Alice根据公式(3)对签名进行去盲得到原始签名Sig;
在签名验证阶段,验证者利用公钥(n,e)对等式(4)进行验证,如果等式成立,则签名正确;
m'←blind(m,r,e)=m*remodn(1)
BlindSig←sign(m',d)=m'd modn=(m*re)d modn(2)
Sig←unblind(BlindSig,r)=BlindSig*r-1(3)
m=Sigemodn(4)
其中,m为原始消息,m'为盲化后的消息,BlindSig为Bob的盲签名,Sig为Alice去盲后得到的原始签名,n、e、d为公私钥中的参数。
Schnorr零知识协议:零知识证明是指证明者能够在不向验证者提供任何有用信息的情况下,使验证者相信某个论断是正确的;德国数学家和密码学家Schnorr在1991年提出了一种基于Sigma协议的零知识协议,即Schnorr协议,它是一种基于离散对数难题的交互式知识证明机制;本实施例采用的是使用Fiat-Shamir范式改进的非交互式Schnorr协议,它可以把原有的三步式证明流程压缩成一步,大大提高了证明的效率。
假设现有证明者Alice和验证者Bob,Alice首先设置一个值sk并作为自己的私钥,Alice想要让Bob在不知道sk相关信息的情况下验证自己拥有sk,证明流程如下:
M1、初始化全局公共参数g、p、q,其中p是一个随机的大素数,q是p-1的素因子,g是上的一个生成元,Alice根据sk生成公钥pk←gskmodp,然后将pk发送给Bob;
M2、Alice生成一个随机数b,并计算B←gbmodp,然后计算r←(b+c*sk)modq,其中c←hash(pk||B),最后将ZKP←<B,r>发送给Bob进行验证;
M3、Bob首先利用已知的pk与B计算出c,然后验证等式(5)是否成立,如果成立,则证明Alice确实拥有公钥pk对应的私钥sk,
gr modp=pkc*Bmodp(5)
其中,g是上的一个生成元,p是一个随机大素数,g和p均为事先约定的公共参数。
门限加密:门限加密是对抗合谋攻击的一种重要工具,它分散了传统公钥密码体制的集中化权限,以避免单一点的失效或被攻击;在门限加密方案中,加密密钥被分割成多个部分,并分配给若干个参与者,加密密钥公开并且可以直接加密消息,但解密则要求多个参与者共同合作才能重构密钥并正确解密数据,这些参与者的数量必须达到达到特定的阈值(门限)才能进行解密。
本实施例将门限加密应用于选票加密,能够防止在当前轮次投票结束前提前泄露选票信息,导致影响最终的投票结果;本方案对Lifted-ElGamal门限加密方案进行了改进,取消了对可信中心的依赖,由参与者生成各自的私钥并通过区块链智能合约聚合生成系统公钥,提高了系统的安全性和可靠性,本实施例的密钥生成、加密以及解密流程如下:
假设有n个参与者P1,P2,…,Pn,给定一个大素数p,以及的一个生成元g;
密钥生成:Pi设置自己的私钥ski,然后计算并将其发送给区块链智能合约,智能合约将接收到的X1,X2,…,Xn根据公式(6)进行聚合,生成公钥pk,
加密:假设有明文M←Zp*,选择一个随机数r←Zp*,根据公式(7)计算得到密文C,
C←encrypt(M,r,pk)=(C1,C2)=(gr modp,M*pkr modp)(7)
解密:Pi将各自的私钥xi发送给智能合约,智能合约计算并记录ki,直至所有参与者都公布其私钥后,智能合约按公式(8)进行计算得到明文M,
其中,C1、C2为密文C的一部分,ki,i∈[1,n]为智能合约利用xi和C1计算的中间值。
本实施例提供的一种基于区块链的小区民主投票方法,如图1所示,包括以下步骤
S1、初始化阶段:各实体分别初始化各类的密钥参数,同时CA获取当前小区合法投票业主名单,实体包括业主、物业、业主委员会以及CA。
业主:居住在小区范围内且拥有投票资格的业主,他们能够向小区业主委员会发起投票提案,同时也是投票的主体;
物业:它是负责管理、维护和运营小区公共事务的公司或服务机构,它也能够向小区业主委员会发起投票提案;
业主委员会:它由小区中的业主选举产生,代表小区业主利益,对全体小区业主负责,它负责审核来自业主与物业的投票提案,同时也是投票的发起方,本实施例中假设业主委员会已经选举完成,并且能够正确履行其职责;
认证中心(CA):它拥有小区业主的身份信息,负责业主身份的认证工作。
步骤S1中,CA生成全局公共参数g、p以及q,同时生成当前小区的盲签名公私钥对(pkblind,skblind),并从业主委员会处获取小区合法投票业主名单;然后将公共参数g、p、q以及pkblind公布在区块链上,任何参与者都可以获取到这些参数。
S2、注册阶段:业主必须在区块链上注册后,才能进行投票,这是保证投票合法性的必要措施,为了证明有投票资格,业主首先需要获得CA的签名认证;为了保护业主隐私并且确保投票的匿名性,避免CA将业主的投票公钥与其真实身份联系起来,本实施例使用盲签名技术。
业主设置自己的投票公钥,且将此投票公钥与自身身份信息发送给CA;CA认证业主身份后对业主的投票公钥进行盲签名,然后将签名返回给业主;业主将签名以及投票公钥发送给区块链智能合约进行验证,验证通过后智能合约将投票公钥存储在区块链上,此时即注册成功,只有注册成功的业主才具有投票资格。
如图2所示,注册阶段包括以下分步骤
S2.1、业主在去中心化应用(DApp)上设置投票密钥xi,DApp计算投票私钥ski←hash(xi),并计算投票公钥
S2.2、生成消息m←hash(pki),然后选取一个随机数r1作为盲化因子,利用r1和pkblind将pki盲化,得到m'←blind(m,r1),接着将m'连同个人信息一起发送给CA;
S2.3、CA验证该用户为合法业主后,使用skblind对消息m'进行盲签名得到签名BlindSig←sign(m',skblind),然后将BlindSig返回给业主;
S2.4、业主收到BlindSig之后,将其去盲,得到原始签名Sig←unblind(BlindSig,r1),并用pkblind验证签名的正确性;
S2.5、接着业主将pki以及Sig发送给区块链智能合约,智能合约在验证签名正确且该公钥未注册后,将pki存储到区块链上。
S3、投票发起阶段:物业或者业主向业主委员会发起投票提案,提案内容包括议题、选项、备注等信息;业主委员会中的成员对提案进行审核,当成员中的2/3持赞成意见时,即表示审核通过;审核通过后将投票信息公布到区块链上,这样任何有权限访问该区块链的小区业主便能够获得投票信息。
步骤S3中,提案审核通过后,进行以下步骤
S3.1、业主委员会中的管理员对附加信息进行设置,附加信息包括投票开始日期和截止日期,并将附加信息发送给智能合约;
S3.2、智能合约对发起人的身份进行验证,并对提案进行格式校验后将投票信息公布到区块链上,这样任何有权限访问该区块链的小区业主便能够获得投票信息;
S3.3、接着,CA、业主委员会以及物业分别生成选票门限加密的私钥skCA、skC、skM(为保证投票的安全性,每轮投票会生成新的选票加密私钥,该密钥只用于本轮投票),并各自计算加密中间数发送给智能合约;
S3.4、智能合约将接收到的各加密中间数相乘以生成选票加密公钥并在区块链上公布pkvote,在投票截止时间之前,任何一方都不应公布所持有的解密私钥。
S4、投票阶段:业主完成注册后,就可以进行投票,注册成功的业主获取区块链上的投票信息,然后选择相应选项,系统根据选择自动生成选票;接着采用门限加密技术对选票进行加密,密钥由物业、业主委员会和CA共同持有;最后,为避免业主的投票私钥泄露,采用零知识证明技术向智能合约证明该业主拥有投票公钥对应的私钥,即具有投票资格的注册用户;智能合约验证通过后,将加密后的选票存入区块链,之后,业主便可以在区块链上验证自己的选票是否被正确存储。
如图3所示,投票阶段包括以下步骤
S4.1、业主获取区块链上的投票信息,然后在DApp上根据自己的偏好选择相应选项,DApp根据业主选择的选项自动生成选票字符串;选票字符串的格式如图4所示,其中“X1&X2&...Xn”表示业主选择的选项(n∈[1,m],m表示该轮投票选项的总数),使用“&”符号将它们连接起来,“_VOTE_”是选票的校验字符,用于验证该选票格式是否合法,最后是长度为k的随机字符串,且k大于等于6;
S4.2、选票字符串生成后,DApp将其进行ASCII编码后得到选票votei,然后计算hash(votei)并生成一个随机数r2,使用门限加密公钥pkvote加密选票得到votei'←encrypt(votei,r,pkvote);
S4.3、业主输入自己的投票私钥ski,DApp在本地计算零知识证明校验数ZKP,再将(pki,ZKP,votei')发送给投票智能合约;
S4.4、智能合约首先验证ZKP,证明业主拥有pki,验证通过后将votei'与hash(votei)存入区块链,之后,业主便可以在区块链验证自己的选票是否被正确存储。
S5、计票阶段:如图5所示,到达投票截止时间后,若投票人数小于等于小区总人数的2/3,则该轮投票作废;若投票人数大于小区总人数的2/3,则进入计票阶段,未在规定时间内投票的业主则被视为弃权;
计票开始时,CA、业主委员会以及物业分别将各自持有的该轮投票的选票加密私钥skCA、skC、skM发送给智能合约;
然后智能合约将私钥skCA、skC、skM聚合,并把所有加密的选票逐一解密得到votei *←decrypt(votei',skCA,skC,skM),i∈[1,n],再将每张解密后选票的哈希值hash(votei *)与业主投票时存储在区块链上的原始哈希值hash(votei)进行比对,如果哈希值比对一致且选票格式正确,则该选票合法;否则该选票被视为废票,不再参与后续计票环节;
智能合约对合法选票进行统计,最后将计票结果公布在区块链上。
除上述实施例外,本发明还可以有其他实施方式。凡采用等同替换或等效变换形成的技术方案,均落在本发明要求的保护范围。
Claims (9)
1.一种基于区块链的小区民主投票方法,其特征在于:包括以下步骤
S1、初始化阶段:各实体分别初始化各类的密钥参数,同时CA获取当前小区合法投票业主名单,实体包括业主、物业、业主委员会以及CA;
S2、注册阶段:业主设置自己的投票公钥,且将此投票公钥与自身身份信息发送给CA;CA认证业主身份后对业主的投票公钥进行盲签名,然后将签名返回给业主;业主将签名以及投票公钥发送给区块链智能合约进行验证,验证通过后智能合约将投票公钥存储在区块链上,此时即注册成功,只有注册成功的业主才具有投票资格;
S3、投票发起阶段:物业或者业主向业主委员会发起投票提案;业主委员会中的成员对提案进行审核;审核通过后将投票信息公布到区块链上,供任何有权限访问该区块链的小区业主及时获得此投票信息;
S4、投票阶段:注册成功的业主获取区块链上的投票信息,然后选择相应选项,系统根据选择自动生成选票;接着采用门限加密技术对选票进行加密,密钥由物业、业主委员会和CA共同持有;最后采用零知识证明技术向智能合约证明该业主拥有投票公钥对应的私钥,即具有投票资格的注册用户;智能合约验证通过后,将加密后的选票存入区块链,供业主在区块链上验证自己的选票是否被正确存储;
S5、计票阶段:到达投票截止时间后,若投票人数小于等于小区总人数的2/3,则该轮投票作废;若投票人数大于小区总人数的2/3,则进入计票阶段,未在规定时间内投票的业主则被视为弃权;
计票开始时,CA、业主委员会以及物业分别将各自持有的选票加密私钥发送给智能合约;然后智能合约通过选票解密密钥将所有加密的选票逐一解密,并判断选票格式是否正确,若正确则该选票合法;若不正确则该选票被视为废票,不再参与后续计票环节;智能合约对合法选票进行统计,最后将计票结果公布在区块链上。
2.根据权利要求1所述的一种基于区块链的小区民主投票方法,其特征在于:所述步骤S1中,CA生成全局公共参数g、p以及q,同时生成当前小区的盲签名公私钥对(pkblind,skblind),并从业主委员会处获取小区合法投票业主名单;然后将公共参数g、p、q以及pkblind公布在区块链上,供任何参与者对这些参数进行获取。
3.根据权利要求1所述的一种基于区块链的小区民主投票方法,其特征在于:所述步骤S2中,注册阶段包括以下分步骤
S2.1、业主在DApp上设置投票密钥xi,DApp计算投票私钥ski←hash(xi),并计算投票公钥
S2.2、生成消息m←hash(pki),然后选取一个随机数r1作为盲化因子,利用r1和pkblind将pki盲化,得到m'←blind(m,r1),接着将m'连同个人信息一起发送给CA;
S2.3、CA验证该用户为合法业主后,使用skblind对消息m'进行盲签名得到签名BlindSig←sign(m',skblind),然后将BlindSig返回给业主;
S2.4、业主收到BlindSig之后,将其去盲,得到原始签名Sig←unblind(BlindSig,r1),并用pkblind验证签名的正确性;
S2.5、接着业主将pki以及Sig发送给区块链智能合约,智能合约在验证签名正确且该公钥未注册后,将pki存储到区块链上。
4.根据权利要求1所述的一种基于区块链的小区民主投票方法,其特征在于:所述步骤S3中,业主委员会中的成员对提案进行审核,当成员中的2/3持赞成意见时,即表示审核通过。
5.根据权利要求1所述的一种基于区块链的小区民主投票方法,其特征在于:所述步骤S3中,提案审核通过后,进行以下步骤
S3.1、业主委员会中的管理员对附加信息进行设置,附加信息包括投票开始日期和截止日期,并将附加信息发送给智能合约;
S3.2、智能合约对发起人的身份进行验证,并对提案进行格式校验后将投票信息公布到区块链上,供任何有权限访问该区块链的小区业主获得此投票信息;
S3.3、接着,CA、业主委员会以及物业分别生成选票门限加密的私钥skCA、skC、skM,并各自计算加密中间数发送给智能合约;
S3.4、智能合约将接收到的各加密中间数相乘以生成选票加密公钥并在区块链上公布pkvote。
6.根据权利要求5所述的一种基于区块链的小区民主投票方法,其特征在于:所述步骤S3.3中,CA、业主委员会以及物业在每轮投票中均生成新的不同的选票门限加密的私钥,每个选票门限加密的私钥仅限于当前轮投票的使用。
7.根据权利要求1所述的一种基于区块链的小区民主投票方法,其特征在于:所述步骤S4中,投票阶段包括以下步骤
S4.1、业主获取区块链上的投票信息,然后在DApp上根据自己的偏好选择相应选项,DApp根据业主选择的选项自动生成选票字符串;
S4.2、选票字符串生成后,DApp将其进行ASCII编码后得到选票votei,然后计算hash(votei)并生成一个随机数r2,使用门限加密公钥pkvote加密选票得到votei'←encrypt(votei,r,pkvote);
S4.3、业主输入自己的投票私钥ski,DApp在本地计算零知识证明校验数ZKP,再将(pki,ZKP,votei')发送给投票智能合约;
S4.4、智能合约首先验证ZKP,证明业主拥有pki,验证通过后将votei'与hash(votei)存入区块链,以供业主在区块链上验证自己的选票是否被正确存储。
8.根据权利要求7所述的一种基于区块链的小区民主投票方法,其特征在于:所述步骤S4.1中,选票字符串依次包括n个已选选项、检验字符串以及随机字符串;
n个已选选项表示为X1&X2&...Xn,其中X1、X2...Xn表示业主选择的选项,通过符号&对业主选择的选项进行连接,n∈[1,m],m表示该轮投票选项的总数;校验字符串表示为_VOTE_,用于验证该选票格式是否合法;随机字符串的长度设为k,且k大于等于6。
9.根据权利要求1所述的一种基于区块链的小区民主投票方法,其特征在于:所述步骤S5中,计票开始时,CA、业主委员会以及物业分别将各自持有的该轮投票的选票加密私钥skCA、skC、skM发送给智能合约;
然后智能合约将私钥skCA、skC、skM聚合,并把所有加密的选票逐一解密得到votei *←decrypt(votei',skCA,skC,skM),i∈[1,n],再将每张解密后选票的哈希值hash(votei *)与业主投票时存储在区块链上的原始哈希值hash(votei)进行比对,如果哈希值比对一致且选票格式正确,则该选票合法;否则该选票被视为废票,不再参与后续计票环节。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310478961.2A CN116738452A (zh) | 2023-04-28 | 2023-04-28 | 一种基于区块链的小区民主投票方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310478961.2A CN116738452A (zh) | 2023-04-28 | 2023-04-28 | 一种基于区块链的小区民主投票方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116738452A true CN116738452A (zh) | 2023-09-12 |
Family
ID=87900092
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310478961.2A Pending CN116738452A (zh) | 2023-04-28 | 2023-04-28 | 一种基于区块链的小区民主投票方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116738452A (zh) |
-
2023
- 2023-04-28 CN CN202310478961.2A patent/CN116738452A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7260552B2 (en) | Secure remote electronic voting system and cryptographic protocols and computer programs employed | |
Chow et al. | Robust Receipt-Free Election System with Ballot Secrecy and Verifiability. | |
CN114255034A (zh) | 一种基于区块链的可验证公平性的电子投票方法 | |
Szepieniec et al. | New techniques for electronic voting | |
FR2842680A1 (fr) | Procede de signature de liste et application au vote electronique | |
Darwish et al. | A new cryptographic voting verifiable scheme for e-voting system based on bit commitment and blind signature | |
WO2001020562A2 (en) | Multiway election method and apparatus | |
Chang et al. | An anonymous voting mechanism based on the key exchange protocol | |
US20220239502A1 (en) | System to Securely Issue and Count Electronic Ballots | |
Azougaghe et al. | An electronic voting system based on homomorphic encryption and prime numbers | |
CN114333137A (zh) | 基于部分盲签名与区块链的匿名和抗胁迫电子投票系统 | |
AU2011268753A1 (en) | Electronic voting apparatus and method | |
Mateu et al. | Constructing credential-based E-voting systems from offline E-coin protocols | |
Buccafurri et al. | Allowing continuous evaluation of citizen opinions through social networks | |
EP1571777A1 (en) | Electronic voting process using fair blind signatures | |
Zwierko et al. | A light-weight e-voting system with distributed trust | |
Cetinkaya et al. | Pseudo-voter identity (pvid) scheme for e-voting protocols | |
KR100362603B1 (ko) | 전자 투표 방법 | |
Cetinkaya et al. | A practical verifiable e-voting protocol for large scale elections over a network | |
Zhang et al. | A lightweight electronic voting scheme based on blind signature and Kerberos mechanism | |
CN116738452A (zh) | 一种基于区块链的小区民主投票方法 | |
Chen et al. | A new receipt-free voting scheme based on linkable ring signature for designated verifiers | |
Feng et al. | An electronic voting system using GSM mobile technology | |
Kim et al. | A new universally verifiable and receipt-free electronic voting scheme using one-way untappable channels | |
Ronquillo | Securing e-voting systems |
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 |