一种基于区块链去中心化的隐私保护投票系统的制作方法

文档序号:15978736发布日期:2018-11-17 00:04阅读:182来源:国知局

本发明涉及信息安全技术领域,特别涉及一种基于区块链去中心化的隐私保护投票系统。

背景技术

比特币(bitcoin)的概念最初由中本聪在2009年提出,根据中本聪的思路设计发布的开源软件以及建构其上的p2p网络。比特币是一种p2p形式的数字货币。点对点的传输意味着一个去中心化的支付系统。比特币作为新型的去中心化的数字货币在投票、设计公平交换协议等领域也有着广泛的应用。

门限签名,一个(t,n)门限签名方案是指n个成员组成的群之中,任何不少于t个成员合作就能产生签名,只要少于t个成员就无法产生签名。

混淆问题近年来是密码学研究的热点和难点之一。混淆来源于程序混淆,最开始是为了保护软件的知识产权,防止软件遭到静态分析、篡改或逆向工程攻击。混淆的目的在于通过一定的技术手段使得原有程序变得“不可识别”,但同时保持原有程序的功能不变。

p2sh(pay-to-script-hash)在2012年被作为一种新型、强大、且能大大简化复杂交易脚本的交易类型而引入。以数字3开头的比特币地址是p2sh地址,他们指定比特币交易中受益人作为哈希的脚本,而不是公钥的所有者。目前,p2sh函数最常见的实现是用于多重签名地址脚本。p2sh地址隐藏了所有的复杂性,因此,运用其进行支付的人将不会看到脚本。

在投票领域,zhao和chan首次提出使用比特币进行隐私地投票,协议的目的是n个投票人各自拥有1个比特币,对2位候选者进行投票,获胜者可以获得所有n个比特币,但是协议只支持2选1。silviaetal.提出了circleshuffle技术来进行比特币投票,但是该方案需要一个中心化的管理者。coinshuffle使用decryptionmixnets对地址进行混淆实现对内部人员的匿名,但是最后一个混淆的可能将自己的输出地址放到指定的位置。



技术实现要素:

本发明的目的是提供一种基于区块链去中心化的隐私保护投票系统,能够在小规模且有权限限制的情况下,在保护投票者隐私的同时,支持多个候选者的投票。

为实现上述目的,本发明提供了如下方案:

一种基于区块链去中心化的隐私保护投票系统,所述隐私保护投票系统包括:信息注册与公布模块、门限签名地址生成模块、匿名投票模块以及交易模块;

所述信息注册与公布模块用于在公告板上注册确定的投票者个数、候选者个数、揭露承诺最晚时间以及选金退回最晚时间,并在公告板上公布;其中,所述投票者个数、所述候选者个数均为大于等于1的自然数;

所述门限签名地址生成模块用于采用去中心化的(t,n)门限签名协议,投票者进行交互,生成门限签名地址t;其中,每一个投票者对应一个私钥,每一个私钥为一份选票;

所述匿名投票模块用于投票者选择候选者并进行混淆以实现投票的同时保护投票者的隐私;

所述交易模块用于当投票混淆操作完成后,投票者执行认领交易,然后由随机一个投票者构造投票承诺交易和退款交易并发送给所有投票者依次签名,当决出获胜者时获胜者执行获胜交易;当未决出获胜者且超过选金退回最晚时间时执行退款交易;其中,所述投票承诺交易发布到比特币网络中,所述退款交易保留在本地,当超过选金退回最晚时间时,退款交易发布到比特币网络中。

可选的,在所述信息注册与公布模块中的每个投票者均生成对应的地址和公钥私钥对(pki,ski);所述地址中包含至少y+z个比特币,其中y表示用来投票的比特币,z是用来在承诺时的保证金。

可选的,在所述信息注册与公布模块中的每个候选者均生成对应的地址、公钥私钥对(pki,ski)以及候选序号id。

可选的,在所述门限签名地址生成模块中每个私钥均为门限签名地址t的一部分。

可选的,在所述匿名投票模块中依次进行投票与混淆直至所有投票者完成投票,具体为当投票者通过公告板获取其余投票者的公钥后,首先1号投票者确定投票选择,构造选票其中,vote1代表1号投票者的选票,x代表投票者选择的候选者,代表使用候选者x的公钥进行加密,||代表连接,代表1号投票者的私钥,idx代表候选者x的候选序号;对选票vote1采用pk2,pk3,…,pkn依次加密得到其中π(1)是1号投票者对选票的混淆,构造第一混淆集合并发送给2号投票者或者1号投票者选择弃票;

其次,2号投票者接收到所述第一混淆集合后,2号投票者采用对应的私钥解密得到确定投票选择,构造选票加密生成对应的构造第二混淆集合发送给3号投票者;以此类推,得到第n混淆集合然后按照字典序发送给所有的投票者;

每个投票者对接收到的信息进行哈希运算得到h(i)并进行广播,判断h(1),h(2),…,h(n)是否一致相等,若相等,采用伪随机序列发生器,与h(i)生成π(n+1);其中,n为投票者的个数。

可选的,所述投票承诺交易的输入为含有z+y比特币的地址,输出为

所述表示有2种方式获取z个比特币,一种是在规定的揭露承诺最晚时间内揭露选票,候选者均取走;另一种是未在规定的揭露承诺最晚时间内揭露选票,保证金在揭露承诺最晚时间与选金退回最晚时间之间被所有投票者联合构造交易取走或者选金退回最晚时间之后被获胜的候选者取走。

可选的,所述认领交易为所有投票者在揭露承诺最晚时间内揭露投票者选票,获得保证金z个比特币,同时被投票的候选者采用对应的私钥解密选票的交易。

可选的,所述获胜交易为候选者接收到t个不同的选票后,将ny比特币转移到候选者对应地址内,赢得投票胜利的交易。

可选的,所述退款交易为在选金退回最晚时间内,投票结果未能产生,并将每个投票者的比特币返回到原先地址的交易。

根据本发明提供的具体实施例,本发明公开了以下技术效果:

本发明提供了一种基于区块链去中心化的隐私保护投票系统,该系统包括:信息注册与公布模块、门限签名地址生成模块、匿名投票模块以及交易模块;所述信息注册与公布模块用于在公告板上注册确定的投票者个数、候选者个数、揭露承诺最晚时间以及选金退回最晚时间,并在公告板上公布;其中,所述投票者个数、所述候选者个数均为大于等于1的自然数;所述门限签名地址生成模块用于采用去中心化的(t,n)门限签名协议,投票者进行交互,生成门限签名地址t;其中,每一个投票者对应一个私钥,每一个私钥为一份选票;所述匿名投票模块用于投票者选择候选者并进行混淆以实现投票的同时保护投票者的隐私;所述交易模块用于当投票混淆操作完成后,投票者执行认领交易,然后由随机一个投票者构造投票承诺交易和退款交易并发送给所有投票者依次签名,当决出获胜者时获胜者执行获胜交易;当未决出获胜者且超过选金退回最晚时间时执行退款交易。应用本发明提供的系统能够在小规模且有权限限制的情况下,在保护投票者隐私的同时,支持多个候选者的投票。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例基于区块链去中心化的隐私保护投票系统的结构示意图;

图2为本发明实施例基于区块链去中心化的隐私保护投票系统的的整体框架图;

图3本发明实施例投票混淆示意图;

图4本发明实施例交易阶段示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的目的是提供一种基于区块链去中心化的隐私保护投票系统,能够在小规模且有权限限制的情况下,在保护投票者隐私的同时,支持多个候选者的投票。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

实施例一

图1为本发明实施例基于区块链去中心化的隐私保护投票系统的结构示意图,如图1所示,本发明实施例提供的基于区块链去中心化的隐私保护投票系统包括信息注册与公布模块100、门限签名地址生成模块200、匿名投票模块300以及交易模块400。

1、信息注册与公布模块100

确定投票者和候选者的个数并在公告板进行注册;设定有n个投票者vi(i∈{1,2,3…n},n为大于等于1的自然数)和m个候选者ci(i∈{1,2,3…m},m为大于等于1的自然数)。其中,每个投票者vi均生成自己的地址addressi,简称ui,包含至少y+z个比特币,其中y表示用来投票的比特币,z是用来在承诺的保证金。投票者均生成自己的公钥私钥对(pki,ski)。每个候选者ci均生成自己的地址addressi来确保获胜后取得比特币,并且公布自己的公钥私钥对(pki,ski),设置候选者的候选序号id。

所有的投票者协商确定揭露承诺最晚时间t1和投票结果无法产生时选金退回最晚时间t2。

以上所有信息均被公布在公告板之中。

2、门限签名地址生成模块200

本发明实施例采用去中心化的门限签名协议,每个投票者进行交互,生成t-of-n的门限签名地址t。该门限签名地址t共有n份,当取得大于等于t份就可以还原签名,当少于t份就无法还原签名。每一个投票者vi对应一个私钥每个私钥均为门限签名地址t的一部分,并作为一个有效的票。投票者给所支持的候选者投票,而收到t个票的候选者为胜者,获得一共nx比特币奖励。

3、匿名投票模块300

1号投票者v1通过公告板获取其余投票者的公钥pki,确定自己的投票选择,构造vote1代表1号投票者v1的选票,x代表投票者选择的候选者,代表使用候选者x的公钥进行加密,||代表连接,代表1号投票者v1的私钥,idx代表候选者x的候选序号。此时,投票者可以选择弃票。对选票vote1使用pk2,pk3,…,pkn依次加密得到其中π(1)是1号投票者v1对选票的混淆,代表混淆后的值,构造第一混淆集合发送给2号投票者v2。

2号投票者v2接收第一混淆集合后使用自己的私钥sk2解密得到同时构造自己的选票生成对应的构造第二混淆集合发送给3号投票者v3。

以此类推,得到第n混淆集合然后按照字典序发送给所有的投票者。

每个投票者对接收到的信息进行哈希运算得到h(i)并进行广播,判断h(1),h(2),…,h(n)是否一致相等,若相等,使用已有的伪随机序列发生器和h(i)生成π(n+1)。该匿名投票模块300的目的是为了防止投票者vi能够将自己的选票放到特定的位置。

4、交易模块400

完成混淆操作后,投票者在揭露承诺最晚时间t1内完成认领交易,之后由随机一个投票者构造投票承诺交易和退款交易发送给所有投票者依次签名,随后将投票承诺交易发布到比特币网络中,退款交易保留在本地,当超过选金退回最晚时间t2时,退款交易发布到比特币网络中。

投票承诺交易:

投票承诺交易的输入为含有z+y比特币的地址addressi(i∈{1,2,3…n}),输出为

所述表示有2种方式获取z个比特币,一种是在规定的揭露承诺最晚时间内揭露选票,候选者均取走;另一种是对于未在规定的揭露承诺最晚时间t1内揭露,保证金可在揭露承诺最晚时间t1-选金退回最晚时间t2内被所有投票者联合构造交易取走或者选金退回最晚时间之后被获胜的候选者取走。设置保证金的目的是为了防止不投票,因此z保证金的去向实际上可以根据具体业务设计,当候选者从投票中获得t个的就可以构造获胜交易去获得投票奖励。

认领交易:

所有投票者在揭露承诺最晚时间t1内,将投票者的选票votei揭露(也就是揭露出获得保证金z个比特币,同时对应x的候选者在比特币网络看到选票后,采用对应的的私钥skx解密出

获胜交易:

当候选者获取到t个不同的时发起获胜交易,并将ny比特币转移到候选者对应的addressx上去,赢得投票的胜利。

退款交易:

当在选金退回最晚时间t2内投票结果未能产生(也就是达不到门限t份)时发布退款,将每个投票者的比特币返回到原先地址addressi。

本发明实施例提出的隐私保护投票系统有n个投票者和m个候选者,每个投票者选择一个候选者,能够在小规模且有权限限制的情况下,增加了验证和防止投票者将自身的投票放在特定位置的缺陷从而保护了投票者的隐私。在去中心化的情况下,由于比特币中的区块链技术,使得结果一旦上链就无法被篡改、丢弃和重复投票。

实施例二

图2为本发明实施例基于区块链去中心化的隐私保护投票系统的的整体框架图;图3本发明实施例投票混淆示意图;图4本发明实施例交易阶段示意图。

图2中address1,…addressn代表投票者地址,(pki,ski)代表投票者的公钥私钥对,(pki,ski)代表候选者的公钥私钥对,idi代表候选者的候选序号。

图3中vi代表投票者,pki代表公钥,ski代表私钥,右向钥匙代表加密,左向钥匙代表解密,π(1)是投票者v1对选票vote1的混淆,代表混淆后的值,以此类推。

图4中ui代表投票者地址,t代表门限签名地址,z代表z个比特币作为保证金,y代表y个比特币作为票,σ(u1)代表投票者地址u1对应的数字签名,σ(t)代表门限签名地址t所对应的数字签名。

图4中其中的脚本op_hash160<hash(x)>op_equal代表对x值进行揭露,此公式代表时间t1之前揭露可以取回z比特币或者超时后z比特币作为惩罚被胜者取走。

参见图2-图4,本发明实施例提供了一个基于区块链去中心化的小规模隐私保护投票系统,有6个投票者v1…v6和3个候选者c1…c3。

该小规模隐私保护投票系统包括注册阶段、生成门限签名地址阶段、匿名投票阶段以及交易阶段。

注册阶段,

s1、每个投票者vi均生成自己的地址addressi和公钥私钥对(pki,ski),每个地址都有1+4个比特币,其中1是用来投票的比特币,4是用来担保解密承诺的保证金。

s2、所有投票者一致协商确定揭露承诺最晚时间t1=1小时,选金退回最晚时间t2=1.5小时。

s3、每个候选者ci均生成自己的地址addressi和公钥私钥对(pki,ski),并设置候选序号id,三个人分别是1,2,3。

s4、将以上信息公布在公告板上。

生成门限签名地址阶段

s5、采用去中心化的门限签名协议,投票者们进行交互获得门限签名地址t使得每一个投票者vi都有一个对应的私钥每个私钥均是门限签名地址t的一部分。

匿名投票阶段

假设所有人都不弃票

s6、投票者v1通过公告板获取其余投票者的公钥pki,投票者v1选择候选者c1,对选票vote1使用pk2,pk3,…,pkn依次加密得到其中π(1)是投票者v1对选票的混淆,构造第一混淆集合发送给投票者v2。

s7、投票者v2收到第一混淆集合后使用自己的私钥sk2解密得到投票者v2选择候选者c1,同时构造投票者v2的选票生成对应的构造第二混淆集合发送给投票者v3。

s8、投票者v3收到第二混淆集合后使用自己的私钥sk3解密得到投票者v3选择候选者c2,同时构造投票者v3的投票生成对应的构造第三混淆集合发送给投票者v4。

s9、投票者v4收到第三混淆集合后使用自己的私钥sk4解密得到投票者v4选择候选者c3,同时构造投票者v4的投票生成对应的构造第四混淆集合发送给投票者v5。

s10、投票者v5收到第四混淆集合后使用自己的私钥sk5解密得到投票者v5选择候选者c1,同时构造投票者v5的投票生成对应的构造第五混淆集合发送给投票者v6。

s11、投票者v6收到第五混淆集合后使用自己的私钥sk6解密得到投票者v6选择候选者c1,同时构造投票者v6的投票生成对应的构造第六混淆集合将第六混淆集合进行广播。

s12、每个投票者接收第六混淆集合,将第六混淆集合进行hash运算得到h(i),并将h(i)进行广播,每个投票者接收h(1),h(2),…,h(6)。

s13、投票者们判断这h(1),h(2),…,h(6)是否一致,若一致,使用伪随机数生成器和h(i)生成最后的π(7)。

交易阶段

s14、完成混淆操作后,进入认领交易阶段,所有投票者在确定揭露承诺最晚时间t1(1小时)时间内,将投票者的选票votei揭露,也就是揭露出确保获得保证金4个比特币。

s15、投票者v1揭露出

s16、投票者v2揭露出

s17、投票者v3揭露出

s18、投票者v4揭露出

s19、投票者v5揭露出

s20、投票者v6揭露出

s21、被投票的候选者在比特币网络看到揭露的选票后,使用自己的私钥skx解密出

s22、候选者c1解密出

s23、候选者c2解密出

s24、候选者c3解密出

s25、最终1号候选者获得4票,2号候选者获得1票,3号候选者获得1票。

s26、1号候选者c1收集到4个不同的后,发起获胜交易,将6个比特币转移到自己的address1上去,赢得投票的胜利。

与现有技术相比,本发明提供的投票系统所产生的有益效果在于:

正确性,一个电子投票协议最基础和最重要的性质是保证投票的正确性,能够防止选民的选票被篡改,丢弃和重复投票。

去中心化,在整个投票过程中,除了投票者和候选者,不需要其他第三方机构或者可信机构来协助完成。

隐私保护,投票者的投票信息不能被其他任何人知道,在现实中,隐私保护是投票协议最重要的性质之一。

功能性,更多的投票形式应该被支持,例如办公室投票,大规模选举投票,1of2候选者投票,多个候选者投票等。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

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