一种基于区块链智能合约实现投票权隐私发放方法技术

技术编号:39410964 阅读:12 留言:0更新日期:2023-11-19 16:02
本发明专利技术公开一种基于区块链智能合约实现投票权隐私发放方法,本方法通过使用椭圆曲线数学特性将选票所有人公钥信息乘以一个随机数,从而派生出一个全新空白的公钥;合约中再配合共享公钥加密技术将随机数和新的公钥信息通过事件形式公布出去;投票人只需订阅合约事件信息,并对随机数据进行解密并使用自己的私钥乘以该随机数得到新的私钥;然后只需根据新的私钥运算出公钥并比对事件所公布的公钥,完全比配则证明自己拥有投票权。此方法在完全不暴露投票人原有公钥信息的情况下,正确的将投票权发放到投票人手中,从而有效保护投票人隐私。隐私。隐私。

【技术实现步骤摘要】
一种基于区块链智能合约实现投票权隐私发放方法


[0001]本专利技术涉及区块链智能合约领域,特别是涉及一种基于区块链智能合约投票权隐私发放方法。

技术介绍

[0002]目前在区块链智能合约中实现投票权方案通常采用存储相应投票人公钥地址等信息,亦或者采用存储默克树根并结合链下生成验证信息的方式。无论是直接存储还是链下生成验证信息,都存在投票人投票行为被合约执行链上直接记录,从而可以让跟踪者可以密切了解到哪些人投票了,并且随着投票结果即时改变,做不到对投票人的隐私保护,不利于投票过程公开,也不利于保护投票人的隐私,也无法真正实现透明公平的投票过程。

技术实现思路

[0003]为了克服上述现有技术的不足,本专利技术提供了一种既做到发放了投票权,但是又能保护有投票权者的隐私,即让投票能公平公开进行,但是不泄露任何投票人隐私的基于区块链智能合约实现投票权隐私发放方法。
[0004]本专利技术所采用的技术方案是:投票发起方确定有投票权的区块链地址的公钥,通过使用椭圆曲线数学特性将投票人公钥信息乘以一个随机数,从而派生出一个投票用目的新公钥,使用投票人公钥对随机数进行加密得到密文;再通过智能合约将随机数和新的公钥通过事件形式进行公布实现共享公钥;投票人订阅智能合约事件,使用自己的私钥尝试解密事件中的密文,如该事件是针对本人的信息,那么即能解密得到随机数,用户使用私钥乘以该随机数得到新的私钥,从而根据新的私钥运算出上述投票用新的公钥并比对事件信息所公布新的公钥,完全匹配则证明投票人拥有投票权。
[0005]进一步的,具体包含以下步骤:(1)投票发起方在链下确定有投票权的投票人的公钥P,对于持有公钥P对应私钥的投票人标记为投票人P;(2)投票发起方为投票人P生成一个随机数r ,使其乘以投票人公钥P得到新公钥P`,使用公钥P对随机数r进行加密,得到密文K;(3)智能合约提供投票发起函数,投票发起方将投票人新公钥P`、随机数密文K提交给智能合约;智能合约公布选票事件,所述公布选票事件包括记录并保存新公钥P`,将来投票阶段验证投票权,并将新公钥P`、随机数密文K以智能合约事件的方式公布出去;(4)投票人需订阅智能合约公布发放选票事件信息,然后使用自己的私钥pk对公布的随机数密文K进行解密,如果成功(则意味着当前的K是用自己的持有的私钥pk推导出的公钥P进行加密的,也意味着这张选票发放接受者是当前投票人)则得到随机数r,然后使用私钥pk乘以随机数r得到新私钥pk`;
(5)最终由新私钥pk`推导运算出公钥,比对是否完全匹配智能合约公布选票事件中的新公钥P`,如匹配即能判断当前投票人拥有投票权,后期投票使用新公钥P`来隐私代表投票人P进行投票。
[0006]与现有技术方案相比,本专利技术的有益效果是完全基于区块链技术,无需中心化的数据库设施保存投票人信息,投票发起方无需暴露任何与投票人相关的信息,就可以实现投票权发放功能,并且外界无法从智能合约事件及智能投票功能中反推哪些公钥具备投票权,从而侵害投票人的隐私,极大保护投票人隐私。
附图说明
[0007]为了易于说明,本专利技术由下述的较佳实施例及附图作以详细描述。
[0008]附图1是本专利技术的投票权隐私发放步骤图;附图2是本专利技术的投票权隐私发放流程图。
实施方式
[0009]下面结合附图1、2对本专利技术进一步说明。如附图所述,投票分别包括投票发起方、智能合约以及投票人三个方面角色;具体包含以下步骤:1、投票发起方发起投票前,搜集确认有投票权利的区块链账号集合,得到每个用户的公钥P的集合,确定发放选票的目标群体;2、投票发起方为每一位选票发放对象用户随机生成一个随机数r ,依次对步骤1中的公钥P集合中的每一个公钥使用椭圆曲线数学特性乘以各自投票人的公钥P得到新公钥P`;3、利用公钥P加密随机数r得到密文K,作为公钥P的账号选票发放信息,将{K,P`}二元组发布到智能合约,并存储新公钥P`到智能合约的内部公钥集合称之为可投票匿名公钥数组,并发出智能合约公布选票事件postVote,将发给某投票权用户的信息{K,P`}在链上公布任何人都可以查看到此信息;4、投票人需订阅合约公布选票事件信息,在收到公布选票事件后使用自己的私钥pk对密文K进行解密得到r,如果解密成功则意味着当前的密文K是用自己的持有的私钥pk推导出的公钥P进行加密的,也意味着这张选票发放对象是当前投票人,如果无法解密则忽略消息因为此选票发放对象并非当前用户;由于拥有P的私钥pk,因而可使用pk 解密密文信息K,解密得到r,从而可验证P`即是本用户可用于投票的新公钥,意味着可利用P`进行投票;5、通过pk乘以r,得到公钥P`的私钥pk`,此时可使用公钥P`进行投票,调用智能合约的vote方法,提交区块链智能合约交易时候采用pk`进行交易签名,从而使用了一个新的私钥签名但是用户自身知晓的对应公钥P`的身份进行投票。由于P`是存储于智能合约的内部存储,用于验证当前交易的签名用户是否具有投票权,因而可确定性知道有投票权限的用户使用 P`进行了投票,但是不知道P`对应谁,因而实现了对投票真实身份的隐私保护,但又能确保投票公开透明进行。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于区块链智能合约实现投票权隐私发放方法,其特征在于:投票发起方通过使用椭圆曲线数学特性将投票人公钥信息乘以一个随机数,从而派生出一个投票用新的公钥,使用投票人公钥对随机数进行加密得到密文;再通过智能合约将随机数和新的公钥通过事件形式进行公布实现共享公钥;投票人订阅智能合约事件信息,使用自己的私钥乘以该随机数得到新的私钥,使用新的私钥对密文进行解密,从而根据新的私钥运算出上述投票用新的公钥并比对事件信息所公布新的公钥,完全匹配则证明投票人拥有投票权。2.根据权利要求1所述的一种基于区块链智能合约实现投票权隐私发放方法,其特征在于:还包含以下步骤:(1)投票发起方在链下确定有权投票投票人的公钥P,对于持有公钥P对应私钥的投票人标记为投票人P;(2)投票发起方为投票人P生成...

【专利技术属性】
技术研发人员:杨山河光焕竹胡德铃
申请(专利权)人:广州市悦智计算机有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1