[发明专利]区块链匿名投票方法、计算机设备和存储介质有效
申请号: | 202110138676.7 | 申请日: | 2021-02-01 |
公开(公告)号: | CN112968881B | 公开(公告)日: | 2022-05-24 |
发明(设计)人: | 马登极;王志文;吴思进 | 申请(专利权)人: | 杭州复杂美科技有限公司 |
主分类号: | H04L9/40 | 分类号: | H04L9/40;H04L9/32;H04L9/00 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 310000 浙江省杭州市西湖*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 区块 匿名 投票 方法 计算机 设备 存储 介质 | ||
本发明提供一种区块链匿名投票方法、计算机设备和存储介质,该方法包括:执行投票注册交易,根据具有第一投票的投票权的各第一账户的第一公钥或第一地址生成并保存第一默克尔树;执行第一匿名投票交易:根据私密提交的第一私钥、私密提交的第一公钥或第一地址,以及,零知识证明电路验证匿名投票的第二账户是否具有第一地址的控制权:否,则第一匿名投票交易执行失败;根据公开提交的第一默克尔树根、私密提交的第一默克尔路径、私密提交的第一公钥或第一地址,以及,零知识证明电路验证第二账户是否具有第一投票的投票权:否,则第一匿名投票交易执行失败;是,则将第一匿名投票交易的投票记录到合约中。本发明实现了区块链上的匿名投票。
技术领域
本申请涉及互联网技术领域,具体涉及一种区块链匿名投票方法、计算机设备和存储介质。
背景技术
现有的区块链投票解决方案通常都是公开投票,原因在于,投票合约需要验证投票者是否具有投票权,而投票者在投票时所提交的用于供投票合约验证投票权的信息会记录在区块链上并向所有人公开,导致难以隐藏投票者的身份。
发明内容
鉴于现有技术中的上述缺陷或不足,期望提供一种实现区块链上匿名投票的区块链匿名投票方法、计算机设备和存储介质。
第一方面,本发明提供一种适用于区块链节点的区块链匿名投票方法,区块链上配置有匿名投票合约,匿名投票合约中配置有用于验证投票权限的零知识证明电路,该方法包括:
通过匿名投票合约执行投票注册交易,根据具有第一投票的投票权的各第一账户的第一公钥或第一地址生成并保存第一默克尔树;其中,第一默克尔树用于供控制第一账户的用户端获取第一默克尔树根和相应的默克尔路径;
通过匿名投票合约执行第一匿名投票交易:
根据私密提交的第一私钥、私密提交的第一公钥或第一地址,以及,零知识证明电路验证匿名投票的第二账户是否具有第一地址的控制权:否,则第一匿名投票交易执行失败;
根据公开提交的第一默克尔树根、私密提交的第一默克尔路径、私密提交的第一公钥或第一地址,以及,零知识证明电路验证第二账户是否具有第一投票的投票权:
否,则第一匿名投票交易执行失败;
是,则将第一匿名投票交易的投票记录到匿名投票合约中。
其中,私密提交为通过同态加密算法加密后提交的参数提交方式。
第二方面,本发明提供一种适用于用户端的区块链匿名投票方法,区块链上配置有匿名投票合约,匿名投票合约中配置有用于验证投票权限的零知识证明电路,该方法包括:
根据具有待注册的第一投票的投票权的各第一账户的第一公钥或第一地址生成投票注册交易并发送至区块链节点,以供通过匿名投票合约执行,根据各第一账户的第一公钥或第一地址生成并保存第一默克尔树。
其中,第一默克尔树用于供控制第一账户的用户端获取第一默克尔树根和相应的默克尔路径;
匿名投票合约还用于执行匿名投票交易:
根据私密提交的第一私钥、私密提交的第一公钥或第一地址,以及,零知识证明电路验证匿名投票的第二账户是否具有第一地址的控制权:否,则匿名投票交易执行失败;
根据公开提交的第一默克尔树根、私密提交的第一默克尔路径、私密提交的第一公钥或第一地址,以及,零知识证明电路验证第二账户是否具有第一投票的投票权:
否,则匿名投票交易执行失败;
是,则将匿名投票交易的投票记录到匿名投票合约中;
私密提交为通过同态加密算法加密后提交的参数提交方式。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州复杂美科技有限公司,未经杭州复杂美科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110138676.7/2.html,转载请声明来源钻瓜专利网。