首页 / 专利库 / 银行与财务事项 / 分布式账本技术 / 区块链 / 基于区块链的信息匿名传输方法、设备及可读存储介质

基于链的信息匿名传输方法、设备及可读存储介质

阅读:1发布:2022-05-11

专利汇可以提供基于链的信息匿名传输方法、设备及可读存储介质专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于 区 块 链 的信息匿名传输方法、设备及可读存储介质,该方法包括:客户端接收区块链机构分发的信息、第一公钥列表、生成环签名所需的环签名参数,并根据客户端用户的操作得到与机构分发信息对应的待传输信息;使用环签名参数、第一公钥列表中的其他用户公钥和客户端公钥对应的私钥对待传输信息进行环签名,以得到信息签名;将待传输信息和信息签名发送给机构,以供机构接收到待传输信息和信息签名,且确定信息签名处于有效状态后,将待传输信息和信息签名上传至区块链中。本发明实现了信息的匿名传输;且通过将待传输信息和对应的信息签名写入区块链中,以通过区块链的特性实现待传输信息不可被篡改。,下面是基于链的信息匿名传输方法、设备及可读存储介质专利的具体信息内容。

1.一种基于链的信息匿名传输方法,其特征在于,所述方法包括:
客户端接收区块链机构分发的信息、第一公钥列表、生成环签名所需的环签名参数,并根据客户端用户的操作得到与所述机构分发信息对应的待传输信息,其中,所述第一公钥列表包括所述机构内所有用户的公钥;
使用所述环签名参数、所述第一公钥列表中的其他用户公钥和客户端公钥对应的私钥对所述待传输信息进行环签名,以得到信息签名;
将所述待传输信息和所述信息签名发送给所述机构,以供所述机构接收到所述待传输信息和所述信息签名,且确定所述信息签名处于有效状态后,将所述待传输信息和所述信息签名上传至所述区块链中。
2.如权利要求1所述的基于区块链的信息匿名传输方法,其特征在于,所述将所述待传输信息和所述信息签名发送给所述机构,以供所述机构接收到所述待传输信息和所述信息签名,且确定所述信息签名处于有效状态后,将所述待传输信息和所述信息签名上传至所述区块链中的步骤之后,还包括:
当侦测到获取所述待传输信息统计结果的获取请求后,将所述获取请求发送给所述机构,以供所述机构根据所述获取请求从所述区块链中获取所述统计结果,并将所述统计结果返回给所述客户端。
3.如权利要求2所述的基于区块链的信息匿名传输方法,其特征在于,所述当侦测到获取所述待传输信息统计结果的获取请求后,将所述获取请求发送给所述机构,以供所述机构根据所述获取请求从所述区块链中获取所述统计结果,并将所述统计结果返回给所述客户端的步骤包括:
当侦测到获取所述待传输信息统计结果的获取请求后,将所述获取请求发送给所述机构,以供所述机构根据所述获取请求从所述区块链中获取所述统计结果和验证所述统计结果所需的验证参数,并将所述统计结果和所述验证参数发送给所述客户端。
4.如权利要求1所述的基于区块链的信息匿名传输方法,其特征在于,所述使用所述环签名参数、所述第一公钥列表中的其他用户公钥和客户端公钥对应的私钥对所述待传输信息进行环签名,以得到信息签名的步骤之前,还包括:
验证所接收的所述环签名参数是否处于有效状态;
若确定所述环签名参数处于有效状态,则执行使用所述环签名参数、所述第一公钥列表中的其他用户公钥和客户端公钥对应的私钥对所述待传输信息进行环签名,以得到信息签名的步骤。
5.如权利要求1所述的基于区块链的信息匿名传输方法,其特征在于,所述将所述待传输信息和所述信息签名发送给所述机构,以供所述机构接收到所述待传输信息和所述信息签名,且确定所述信息签名处于有效状态后,将所述待传输信息和所述信息签名上传至所述区块链中的步骤包括:
将所述待传输信息、所述信息签名和生成所述信息签名所用的第二公钥列表发送给所述机构,以供所述机构根据所述第一公钥列表验证所接收的所述第二公钥列表处于有效状态,且确定所接收的所述信息签名处于有效状态后,将所述待传输信息和所述信息签名上传至所述区块链中。
6.如权利要求5所述的基于区块链的信息匿名传输方法,其特征在于,所述将所述待传输信息、所述信息签名和生成所述信息签名所用的第二公钥列表发送给所述机构,以供所述机构根据所述第一公钥列表验证所接收的所述第二公钥列表处于有效状态,且确定所接收的所述信息签名处于有效状态后,将所述待传输信息和所述信息签名上传至所述区块链中的步骤包括:
将所述待传输信息、所述信息签名和生成所述信息签名所用的第二公钥列表发送给所述机构,以供所述机构接收所述待传输信息、所述信息签名和所述第二公钥列表;
由所述机构计算所述第二公钥列表的第一哈希值,以及计算所述第一公钥列表的第二哈希值;
判断所述第一哈希值是否与所述第二哈希值一致;
若所述第一哈希值与所述第二哈希值一致,则确定所述第二公钥列表处于有效状态,则验证所述信息签名是否处于有效状态;
若确定所述信息签名处于有效状态,则将所述待传输信息和所述信息签名上传至所述区块链中。
7.如权利要求6所述的基于区块链的信息匿名传输方法,其特征在于,所述若所述第一哈希值与所述第二哈希值一致,则确定所述第二公钥列表处于有效状态,验证所述信息签名是否处于有效状态的步骤之后,还包括:
若所述第二公钥列表处于无效状态,则确定所述待传输信息为无效待传输信息,并为所述无效待传输信息添加无效标识,将携带所述无效标识的所述无效待传输信息上传至所述区块链中。
8.如权利要求5所述的基于区块链的信息匿名传输方法,其特征在于,所述将所述待传输信息、所述信息签名和生成所述信息签名所用的第二公钥列表发送给所述机构,以供所述机构根据所述第一公钥列表验证所接收的所述第二公钥列表处于有效状态,且确定所接收的所述信息签名处于有效状态后,将所述待传输信息和所述信息签名上传至所述区块链中的步骤包括:
将所述待传输信息、所述信息签名和生成所述信息签名所用的第二公钥列表发送给所述机构,以供所述机构接收所述待传输信息、所述信息签名和所述第二公钥列表;
由所述机构计算所述第二公钥列表的列表长度,记为第一长度,以及计算所述第一公钥列表的列表长度,记为第二长度;
若所述第一长度等于所述第二长度,则获取所述第二公钥列表的列表内容,记为第一内容,以及获取所述第一公钥列表的内容,记为第二内容;
若所述第一内容与所述第二内容一致,则确定所述第二公钥列表处于有效状态,则验证所述信息签名是否处于有效状态;
若确定所述信息签名处于有效状态,则将所述待传输信息和所述信息签名上传至所述区块链中。
9.如权利要求1至8任一项所述的基于区块链的信息匿名传输方法,其特征在于,所述使用所述环签名参数、所述第一公钥列表中的其他用户公钥和客户端公钥对应的私钥对所述待传输信息进行环签名,以得到信息签名的步骤包括:
计算所述第一公钥列表的哈希值,记为公钥哈希值;
通过所述公钥哈希值和所述客户端公钥对应的私钥计算出传输次数参数,其中,根据所述传输次数参数可确定所述待传输信息被传输的次数;
根据所述环签名参数、所述传输次数参数、所述第一公钥列表中的其他用户公钥和所述客户端公钥对应的私钥对所述待传输信息进行环签名,以得到信息签名。
10.一种基于区块链的信息匿名传输设备,其特征在于,所述基于区块链的信息匿名传输设备包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的基于区块链的信息匿名传输程序,所述基于区块链的信息匿名传输程序被所述处理器执行时实现如权利要求1至9中任一项所述的基于区块链的信息匿名传输方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有基于区块链的信息匿名传输程序,所述基于区块链的信息匿名传输程序被处理器执行时实现如权利要求1至9中任一项所述的基于区块链的信息匿名传输方法的步骤。

说明书全文

基于链的信息匿名传输方法、设备及可读存储介质

技术领域

[0001] 本发明涉及区块链技术领域,尤其涉及一种基于区块链的信息匿名传输方法、设备及可读存储介质。

背景技术

[0002] 在传统的信息传输过程中,很难做到传输信息用户身份的匿名性,在信息传输过程中,需要一个可信的第三方机构来保证信息传输用户身份的匿名性。但是完全可信的第三方在现实生活中是不存在的。如在投票过程中,为了保证投票用户的身份匿名性,需要将参与机构分为待传输信息发放中心,投票系统和计票系统。如在一般的身份匿名投票场景中,为了实现对投票用户的隐私保护,一般分为以下四步:①可信第三方机构(待传输信息发放中心)为投票用户发放投票许可证书;②待传输信息中心验证投票用户的投票许可证书,为投票用户发放待传输信息;③投票用户进行投票,并对投票进行数字签名;④计票系统验证待传输信息合法性,进行计票。在这种场景中,需要一个可信的第三方机构,和多个半可信的机构(投票系统和计票系统)来完成一整轮的投票,从而实现用户的身份匿名性。但在投票过程中,一旦多个机构相互勾结,用户的身份匿名性会被破坏。
[0003] 在信息传输过程中,信息的统计过程由某个机构完成,正确性和可靠性依赖于统计机构的可信度,待传输信息不满足不可篡改。
[0004] 由此可知,现有的在传输信息过程中,无法保证传输信息用户身份的匿名性,以及无法实现待传输信息的不可篡改。

发明内容

[0005] 本发明的主要目的在于提供一种基于区块链的信息匿名传输方法、设备及可读存储介质,旨在解决现有的在传输信息过程中,无法保证传输信息用户身份的匿名性,以及无法实现待传输信息的不可篡改的技术问题。
[0006] 为实现上述目的,本发明提供一种基于区块链的信息匿名传输方法,所述基于区块链的信息匿名传输方法包括步骤:
[0007] 客户端接收区块链机构分发的信息、第一公钥列表、生成环签名所需的环签名参数,并根据客户端用户的操作得到与所述机构分发信息对应的待传输信息,其中,所述第一公钥列表包括所述机构内所有用户的公钥;
[0008] 使用所述环签名参数、所述第一公钥列表中的其他用户公钥和客户端公钥对应的私钥对所述待传输信息进行环签名,以得到信息签名;
[0009] 将所述待传输信息和所述信息签名发送给所述机构,以供所述机构接收到所述待传输信息和所述信息签名,且确定所述信息签名处于有效状态后,将所述待传输信息和所述信息签名上传至所述区块链中。
[0010] 优选地,所述将所述待传输信息和所述信息签名发送给所述机构,以供所述机构接收到所述待传输信息和所述信息签名,且确定所述信息签名处于有效状态后,将所述待传输信息和所述信息签名上传至所述区块链中的步骤之后,还包括:
[0011] 当侦测到获取所述待传输信息统计结果的获取请求后,将所述获取请求发送给所述机构,以供所述机构根据所述获取请求从所述区块链中获取所述统计结果,并将所述统计结果返回给所述客户端。
[0012] 优选地,所述当侦测到获取所述待传输信息统计结果的获取请求后,将所述获取请求发送给所述机构,以供所述机构根据所述获取请求从所述区块链中获取所述统计结果,并将所述统计结果返回给所述客户端的步骤包括:
[0013] 当侦测到获取所述待传输信息统计结果的获取请求后,将所述获取请求发送给所述机构,以供所述机构根据所述获取请求从所述区块链中获取所述统计结果和验证所述统计结果所需的验证参数,并将所述统计结果和所述验证参数发送给所述客户端。
[0014] 优选地,所述使用所述环签名参数、所述第一公钥列表中的其他用户公钥和客户端公钥对应的私钥对所述待传输信息进行环签名,以得到信息签名的步骤之前,还包括:
[0015] 验证所接收的所述环签名参数是否处于有效状态;
[0016] 若确定所述环签名参数处于有效状态,则执行使用所述环签名参数、所述第一公钥列表中的其他用户公钥和客户端公钥对应的私钥对所述待传输信息进行环签名,以得到信息签名的步骤。
[0017] 优选地,所述将所述待传输信息和所述信息签名发送给所述机构,以供所述机构接收到所述待传输信息和所述信息签名,且确定所述信息签名处于有效状态后,将所述待传输信息和所述信息签名上传至所述区块链中的步骤包括:
[0018] 将所述待传输信息、所述信息签名和生成所述信息签名所用的第二公钥列表发送给所述机构,以供所述机构根据所述第一公钥列表验证所接收的所述第二公钥列表处于有效状态,且确定所接收的所述信息签名处于有效状态后,将所述待传输信息和所述信息签名上传至所述区块链中。
[0019] 优选地,所述将所述待传输信息、所述信息签名和生成所述信息签名所用的第二公钥列表发送给所述机构,以供所述机构根据所述第一公钥列表验证所接收的所述第二公钥列表处于有效状态,且确定所接收的所述信息签名处于有效状态后,将所述待传输信息和所述信息签名上传至所述区块链中的步骤包括:
[0020] 将所述待传输信息、所述信息签名和生成所述信息签名所用的第二公钥列表发送给所述机构,以供所述机构接收所述待传输信息、所述信息签名和所述第二公钥列表;
[0021] 由所述机构计算所述第二公钥列表的第一哈希值,以及计算所述第一公钥列表的第二哈希值;
[0022] 判断所述第一哈希值是否与所述第二哈希值一致;
[0023] 若所述第一哈希值与所述第二哈希值一致,则确定所述第二公钥列表处于有效状态,验证所述信息签名是否处于有效状态;
[0024] 若确定所述信息签名处于有效状态,则将所述待传输信息和所述信息签名上传至所述区块链中。
[0025] 优选地,所述若所述第一哈希值与所述第二哈希值一致,则确定所述第二公钥列表处于有效状态,验证所述信息签名是否处于有效状态的步骤之后,还包括:
[0026] 若所述第二公钥列表处于无效状态,则确定所述待传输信息为无效待传输信息,并为所述无效待传输信息添加无效标识,将携带所述无效标识的所述无效待传输信息上传至所述区块链中。
[0027] 优选地,所述将所述待传输信息、所述信息签名和生成所述信息签名所用的第二公钥列表发送给所述机构,以供所述机构根据所述第一公钥列表验证所接收的所述第二公钥列表处于有效状态,且确定所接收的所述信息签名处于有效状态后,将所述待传输信息和所述信息签名上传至所述区块链中的步骤包括:
[0028] 将所述待传输信息、所述信息签名和生成所述信息签名所用的第二公钥列表发送给所述机构,以供所述机构接收所述待传输信息、所述信息签名和所述第二公钥列表[0029] 由所述机构计算所述第二公钥列表的列表长度,记为第一长度,以及计算所述第一公钥列表的列表长度,记为第二长度;
[0030] 若所述第一长度等于所述第二长度,则获取所述第二公钥列表的列表内容,记为第一内容,以及获取所述第一公钥列表的内容,记为第二内容;
[0031] 若所述第一内容与所述第二内容一致,则确定所述第二公钥列表处于有效状态,验证所述信息签名是否处于有效状态;
[0032] 若确定所述信息签名处于有效状态,则将所述待传输信息和所述信息签名上传至所述区块链中。
[0033] 优选地,所述使用所述环签名参数、所述第一公钥列表中的其他用户公钥和客户端公钥对应的私钥对所述待传输信息进行环签名,以得到信息签名的步骤包括:
[0034] 计算所述第一公钥列表的哈希值,记为公钥哈希值;
[0035] 通过所述公钥哈希值和所述客户端公钥对应的私钥计算出传输次数参数,其中,根据所述传输次数参数可确定所述待传输信息被传输的次数;
[0036] 根据所述环签名参数、所述传输次数参数、所述第一公钥列表中的其他用户公钥和所述客户端公钥对应的私钥对所述待传输信息进行环签名,以得到信息签名。
[0037] 此外,为实现上述目的,本发明还提供一种基于区块链的信息匿名传输设备,所述基于区块链的信息匿名传输设备包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的基于区块链的信息匿名传输程序,所述基于区块链的信息匿名传输程序被所述处理器执行时实现如上所述的基于区块链的信息匿名传输方法的步骤。
[0038] 此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有基于区块链的信息匿名传输程序,所述基于区块链的信息匿名传输程序被处理器执行时实现如上所述的基于区块链的信息匿名传输方法的步骤。
[0039] 本发明通过区块链中的机构来实现信息的传输,通过环签名算法对待传输信息进行签名,得到对应的信息签名,在发送给机构的待传输信息中,不含有待传输信息对应用户的身份信息,实现了信息的匿名传输;且通过将待传输信息和对应的信息签名写入区块链中,以通过区块链的特性实现待传输信息不可被篡改。附图说明
[0040] 图1是本发明实施例方案涉及的硬件运行环境的结构示意图;
[0041] 图2为本发明基于区块链的信息匿名传输方法第一实施例的流程示意图;
[0042] 图3为本发明基于区块链的信息匿名传输方法第二实施例的流程示意图;
[0043] 图4为本发明基于区块链的信息匿名传输方法第三实施例的流程示意图。
[0044] 本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

[0045] 应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0046] 如图1所示,图1是本发明实施例方案涉及的硬件运行环境的结构示意图。
[0047] 需要说明的是,图1即可为基于区块链的信息匿名传输设备的硬件运行环境的结构示意图。本发明实施例基于区块链的信息匿名传输设备可以是PC,便携计算机等终端设备。
[0048] 如图1所示,该基于区块链的信息匿名传输设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
[0049] 本领域技术人员可以理解,图1中示出的基于区块链的信息匿名传输设备结构并不构成对基于区块链的信息匿名传输设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0050] 如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及基于区块链的信息匿名传输程序。其中,操作系统是管理和控制基于区块链的信息匿名传输设备硬件和软件资源的程序,支持基于区块链的信息匿名传输程序以及其它软件或程序的运行。
[0051] 在图1所示的基于区块链的信息匿名传输设备中,基于区块链的信息匿名传输设备设置有区块链机构。用户接口1003主要用于获取用户输入的信息;网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;而处理器1001可以用于调用存储器1005中存储的基于区块链的信息匿名传输程序,并执行以下操作:
[0052] 客户端接收区块链机构分发的信息、第一公钥列表、生成环签名所需的环签名参数,并根据客户端用户的操作得到与所述机构分发信息对应的待传输信息,其中,所述第一公钥列表包括所述机构内所有用户的公钥;
[0053] 使用所述环签名参数、所述第一公钥列表中的其他用户公钥和客户端公钥对应的私钥对所述待传输信息进行环签名,以得到信息签名;
[0054] 将所述待传输信息和所述信息签名发送给所述机构,以供所述机构接收到所述待传输信息和所述信息签名,且确定所述信息签名处于有效状态后,将所述待传输信息和所述信息签名上传至所述区块链中。
[0055] 进一步地,所述将所述待传输信息和所述信息签名发送给所述机构,以供所述机构接收到所述待传输信息和所述信息签名,且确定所述信息签名处于有效状态后,将所述待传输信息和所述信息签名上传至所述区块链中的步骤之后,处理器1001还可以用于调用存储器1005中存储的基于区块链的信息匿名传输程序,并执行以下步骤:
[0056] 当侦测到获取所述待传输信息统计结果的获取请求后,将所述获取请求发送给所述机构,以供所述机构根据所述获取请求从所述区块链中获取所述统计结果,并将所述统计结果返回给所述客户端。
[0057] 进一步地,所述当侦测到获取所述待传输信息统计结果的获取请求后,将所述获取请求发送给所述机构,以供所述机构根据所述获取请求从所述区块链中获取所述统计结果,并将所述统计结果返回给所述客户端的步骤包括:
[0058] 当侦测到获取所述待传输信息统计结果的获取请求后,将所述获取请求发送给所述机构,以供所述机构根据所述获取请求从所述区块链中获取所述统计结果和验证所述统计结果所需的验证参数,并将所述统计结果和所述验证参数发送给所述客户端。
[0059] 进一步地,所述使用所述环签名参数、所述第一公钥列表中的其他用户公钥和客户端公钥对应的私钥对所述待传输信息进行环签名,以得到信息签名的步骤之前,处理器1001还可以用于调用存储器1005中存储的基于区块链的信息匿名传输程序,并执行以下步骤:
[0060] 验证所接收的所述环签名参数是否处于有效状态;
[0061] 若确定所述环签名参数处于有效状态,则执行使用所述环签名参数、所述第一公钥列表中的其他用户公钥和客户端公钥对应的私钥对所述待传输信息进行环签名,以得到信息签名的步骤。
[0062] 进一步地,所述将所述待传输信息和所述信息签名发送给所述机构,以供所述机构接收到所述待传输信息和所述信息签名,且确定所述信息签名处于有效状态后,将所述待传输信息和所述信息签名上传至所述区块链中的步骤包括:
[0063] 将所述待传输信息、所述信息签名和生成所述信息签名所用的第二公钥列表发送给所述机构,以供所述机构根据所述第一公钥列表验证所接收的所述第二公钥列表处于有效状态,且确定所接收的所述信息签名处于有效状态后,将所述待传输信息和所述信息签名上传至所述区块链中。
[0064] 进一步地,所述将所述待传输信息、所述信息签名和生成所述信息签名所用的第二公钥列表发送给所述机构,以供所述机构根据所述第一公钥列表验证所接收的所述第二公钥列表处于有效状态,且确定所接收的所述信息签名处于有效状态后,将所述待传输信息和所述信息签名上传至所述区块链中的步骤包括:
[0065] 将所述待传输信息、所述信息签名和生成所述信息签名所用的第二公钥列表发送给所述机构,以供所述机构接收所述待传输信息、所述信息签名和所述第二公钥列表;
[0066] 由所述机构计算所述第二公钥列表的第一哈希值,以及计算所述第一公钥列表的第二哈希值;
[0067] 判断所述第一哈希值是否与所述第二哈希值一致;
[0068] 若所述第一哈希值与所述第二哈希值一致,则确定所述第二公钥列表处于有效状态,验证所述信息签名是否处于有效状态;
[0069] 若确定所述信息签名处于有效状态,则将所述待传输信息和所述信息签名上传至所述区块链中。
[0070] 进一步地,所述若所述第一哈希值与所述第二哈希值一致,则确定所述第二公钥列表处于有效状态,验证所述信息签名是否处于有效状态的步骤之后,处理器1001还可以用于调用存储器1005中存储的基于区块链的信息匿名传输程序,并执行以下步骤:
[0071] 若所述第二公钥列表处于无效状态,则确定所述待传输信息为无效待传输信息,并为所述无效待传输信息添加无效标识,将携带所述无效标识的所述无效待传输信息上传至所述区块链中。
[0072] 进一步地,所述将所述待传输信息、所述信息签名和生成所述信息签名所用的第二公钥列表发送给所述机构,以供所述机构根据所述第一公钥列表验证所接收的所述第二公钥列表处于有效状态,且确定所接收的所述信息签名处于有效状态后,将所述待传输信息和所述信息签名上传至所述区块链中的步骤包括:
[0073] 将所述待传输信息、所述信息签名和生成所述信息签名所用的第二公钥列表发送给所述机构,以供所述机构接收所述待传输信息、所述信息签名和所述第二公钥列表[0074] 由所述机构计算所述第二公钥列表的列表长度,记为第一长度,以及计算所述第一公钥列表的列表长度,记为第二长度;
[0075] 若所述第一长度等于所述第二长度,则获取所述第二公钥列表的列表内容,记为第一内容,以及获取所述第一公钥列表的内容,记为第二内容;
[0076] 若所述第一内容与所述第二内容一致,则确定所述第二公钥列表处于有效状态,验证所述信息签名是否处于有效状态;
[0077] 若确定所述信息签名处于有效状态,则将所述待传输信息和所述信息签名上传至所述区块链中。
[0078] 进一步地,所述使用所述环签名参数、所述第一公钥列表中的其他用户公钥和客户端公钥对应的私钥对所述待传输信息进行环签名,以得到信息签名的步骤包括:
[0079] 计算所述第一公钥列表的哈希值,记为公钥哈希值;
[0080] 通过所述公钥哈希值和所述客户端公钥对应的私钥计算出传输次数参数,其中,根据所述传输次数参数可确定所述待传输信息被传输的次数;
[0081] 根据所述环签名参数、所述传输次数参数、所述第一公钥列表中的其他用户公钥和所述客户端公钥对应的私钥对所述待传输信息进行环签名,以得到信息签名。
[0082] 基于上述的结构,提出基于区块链的信息匿名传输方法的各个实施例。基于区块链的信息匿名传输方法应用于基于区块链的信息匿名传输设备,基于区块链的信息匿名传输设备可为PC,便携计算机等终端设备。为了描述的简便,在以下基于区块链的信息匿名传输方法的各个实施例中,以客户端执行主体。
[0083] 参照图2,图2为本发明基于区块链的信息匿名传输方法第一实施例的流程示意图。
[0084] 本发明实施例提供了基于区块链的信息匿名传输方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0085] 以下对本申请中所用的专业名词进行解释:
[0086] (1)区块链是由一系列区块组成的一条链,每个块上除了记录本块的数据还会记录上一块的Hash(哈希)值,通过这种方式组成一条链。区块链的核心理念有两个,一个是密码学技术,另一个是去中心化思想,基于这两个理念做到区块链上的历史信息无法被篡改。一个区块由块头和块体组成,其中块头定义包括该区块高度,上一个区块的哈希值等重要字段,而块体主要存储交易数据。
[0087] (2)机构是指依法设立的机关、事业、企业、社团及其他依法成立的单位,区块链中的节点隶属机构所有,根据区块链中节点信息能够定位所属机构。
[0088] (3)节点特指参与到区块链网络里,进行交易和数据交换的网络节点,每个独立机构可以拥有一个到多个交易节点,每个交易节点是一组物理网络,计算机,区块链应用软件以及数据库的组合。在区块链对等网络中,一个节点是指一个具有唯一身份的参与者,该节点具有一份完整的账本拷贝,具有参与区块链对等网络共识和账本维护的能。节点和节点之间,通过TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/因特网互联协议)协议互相连接。
[0089] (4)数字签名(又称公钥数字签名、电子签章)是一种使用了公钥加密的技术,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。在数字签名的过程中,会用到两个密钥,分别是公钥(公开保存在管理服务器的文件夹中)和私钥(秘密本地保存)。
[0090] (5)环签名是一种特殊的数字签名,用户通过环签名,可以实现让验证者只能确定用户属于某一个群体,但是无法确认用户的具体身份信息。
[0091] (6)在区块链技术中,根据区块链网络访问控制权限的不同,区块链可以分为公有链,私有链和联盟链。其中,公有链的节点是任何人都可以参与的,任何人都可以访问的一种区块链结构;私有链是仅仅对单独的个体开放(如公司,学校内部)的区块链结构;联盟链则是目前应用非常广泛的,非常普遍的一种区块链结构。在这种结构中,区块链由特定的某些组织维护,对某些个体开放,并且可以引入监管节点,让区块链在不可篡改的同时满足相应的监管需求。
[0092] (7)智能合约:一个智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议。在区块链中,智能合约是指部署在网络中的一段代码,各方都将按照代码规定逻辑执行其定义的协议。
[0093] 基于区块链的信息匿名传输方法包括:
[0094] 步骤S10,客户端接收区块链机构分发的信息、第一公钥列表、生成环签名所需的环签名参数,并根据客户端用户的操作得到与所述机构分发信息对应的待传输信息,其中,所述第一公钥列表包括所述机构内所有用户的公钥。
[0095] 当区块链机构获取到信息和第一公钥列表后,机构生成环签名所需的环签名参数,并将所获取的信息、第一公钥列表和环签名参数发送给客户端。当客户端接收到机构发送的信息、第一公钥列表和环签名参数后,客户端将所接收的信息显示在其显示界面中,以供客户端用户根据所显示的信息进行相应的选择操作,得到用户处理后的待传输信息。
[0096] 发送给客户端的信息是机构预先存储的,由该信息对应用户通过对应的客户端发送给机构的。第一公钥列表包括机构内所有用户的公钥,该公钥是由机构内用户通过对应的客户端发送给机构中。在本实施例中,机构为联盟链机构。机构可通过RPC(Remote Procedure Call,远程过程调用)接口调用ring to join方法获取第一公钥列表。
[0097] 在本实施例中,环签名参数包括三个随机数,分别记为p、q和g,其中,p、q和g需要满足关系式:qnmodp=1,q为环签名算法中的阶,g为生成元。环签名参数的长度可为1024字节,或者2048字节等。机构可通过RPC接口调用setup_ring方法获取环签名参数的长度。客户端可为PC,便携计算机等终端设备。
[0098] 进一步地,当机构得到信息、第一公钥列表和环签名参数后,将所得的信息、第一公钥列表和环签名参数上传至区块链中,以将所得的信息、第一公钥列表和环签名参数同步到区块链中。
[0099] 步骤S20,使用所述环签名参数、所述第一公钥列表中的其他用户公钥和客户端公钥对应的私钥对所述待传输信息进行环签名,以得到信息签名。
[0100] 进一步地,步骤S20包括:
[0101] 步骤a,计算所述第一公钥列表的哈希值,记为公钥哈希值。
[0102] 步骤b,通过所述公钥哈希值和所述客户端公钥对应的私钥计算出传输次数参数,其中,根据所述传输次数参数可确定所述待传输信息被传输的次数。
[0103] 步骤c,根据所述环签名参数、所述传输次数参数、所述第一公钥列表中的其他用户公钥和所述客户端公钥对应的私钥对所述待传输信息进行环签名,以得到信息签名。
[0104] 当客户端接收到待传输信息、第一公钥列表和环签名参数后,客户端将待传输信息显示在其屏幕上,以供对应客户端用户查看。客户端用户可通过客户端屏幕中显示的待传输信息,在客户端屏幕中触发选取待传输信息指令。当客户端接收到机构发送的环签名参数和第一公钥列表后,获取其预先存储的公钥,将其公钥记为客户端公钥,并确定客户端公钥在所接收的第一公钥列表中的位置。可以理解的是,在第一公钥列表中,有各个用户对应的公钥,因此,在确定客户端公钥后,即可确定客户端公钥在第一公钥列表中的位置。
[0105] 当客户端获取到其公钥后,获取与该公钥对应的私钥,即获取与客户端公钥对应的私钥。客户端调用环签名算法,根据环签名参数、将待传输信息、客户端公钥、客户端公钥对应的私钥和第一公钥列表作为输入参数输入至环签名算法的签名算法中,得到签名算法的输出,该输出即为信息签名。
[0106] 进一步地,客户端可通过RPC服务的get接口调用get_ring_param,get_public_key,get_private_key方法,获取其所对应的第一公钥列表和公私钥对(客户端公钥和对应的私钥)。客户端可通过RPC接口调用linkable_ring_sig方法,调用环签名算法中签名算法,将待传输信息、客户端公钥、客户端公钥对应的私钥和第一公钥列表作为输入参数,得到信息签名。
[0107] 具体地,当客户端调用环签名算法后,进行初始化操作。其中,初始化操作的具体过程为:设置阶为q,生成元为g,选择合适的H1:{0,1}*→Zq, 获取第一公钥列表L,确定公钥为yi, 与该公钥对应的私钥为xi,L=(y1,y2,...,yn)。H1和H2表示哈希函数;H1:{0,1}*→Zq和 表示哈希函数表达式与对应哈希值之间的映射关
系。可以理解的是,当客户端生成公钥时,会同时生成与该公钥对应的私钥。公钥与私钥是通过一种算法得到的一个密钥对。该算法可为公钥密码体制—RSA体制和椭圆曲线密码学。
[0108] 环签名算法中的签名算法为:获取待传输信息m,第一公钥列表L,客户端公钥yπ,以及与客户端公钥对应的私钥xπ,计算第一公钥列表哈希值h=H2(L)和传输次数参数u u随机选择u∈RZq,计算ci+1=H1(L,Y,m,g ,h),i=π+1,...,n,1,...,π-1,随机选择si∈RZq,计算 计算sπ=u-xπcπmodq,得到信息签名δL=(c1,
s1,...,sn,Y),并输出信息签名δL。其中,gu和hu表示一个随机数,通过gu和hu,可防止所生成的信息签名被篡改;Y作为一个传输次数参数,该参数是通过私钥计算得到的,在第一公钥列表L固定的情况下,h=H2(L)和 固定,一个私钥仅可以产生一个Y,在本实施例中,如果整个待传输信息对应的签名中Y没有出现第二次,则可认为基于区块链的信息传输过程满足唯一性,即该待传输信息只传输过一次;当传输次数参数Y出现多次时,表明待传输信息传输过多次。
[0109] 如当某个机构存在5个用户,则在第一公钥列表L中,存在5个公钥,这5个公钥在第一公钥列表L中的序号分别为0,1,2,3和4。若确定某个用户公钥在第一公钥列表中排在第三位,则该用户对应的π=2;若确定某个用户公钥在第一公钥列表中排在第五位,则该用户对应的π=4。
[0110] 步骤S30,将所述待传输信息和所述信息签名发送给所述机构,以供所述机构接收到所述待传输信息和所述信息签名,且确定所述信息签名处于有效状态后,将所述待传输信息和所述信息签名上传至所述区块链中。
[0111] 当客户端得到信息签名后,将信息签名和对应的待传输信息发送给机构。当机构接收到客户端发送的信息签名和待传输信息后,机构调用环签名算法,通过环签名算法中的验证算法验证信息签名是否处于有效状态。若机构确定信息签名处于有效状态,机构则将信息签名和其对应的待传输信息上传至区块链中。
[0112] 其中,环签名算法中的验证算法具体为:通过签名δL=(c1,s1,R2,...,sn,Y)和第一公钥列表L=(y1,y2,...,yn),计算第一公钥列表的哈希值h=H2(L);计算 和i=1,...,n,在i≠n时,计算ci+1=H1(L,Y,m,zi′,zi″),如果满足(c1=H1(L,Y,m,zn′,zn″)),则确定信息签名处于有效状态,否则,则确定信息签名处于无效状态。当确定信息签名处于有效状态时,验证算法的输出为有效标识,如“true”;当确定信息签名处于无效状态时,验证算法的输出为无效标识,如“false”。
[0113] 如在某个信息传输场景中,存在4个用户,则n=4,以客户端公钥位置π为2为例,客户端在接收到第一公钥列表L后,确定客户端公钥在第二个位置,得到信息签名的过程为:h=H2(L), c2+1=c3=H1(L,Y,m,gu,hu);随机选择:s3,s4,s1,∈R Zq,计算: 计算:计算: 计算:s2=u-x2c2modq;得
到的输出为:Y,c1,s1,s2,s3,s4,L。通过验证算法验证信息签名处于有效状态的原理为:
c2=H1(L,Y,m,z1′,z1″), c3=H1(L,Y,m,z2′,
z2″)。其中,
c4=H1(L,Y,m,z3′,z3″), H1(L,Y,m,z4′,z4″),c1=H1(L,Y,
m,z4′,z4″)。若C1≠H1(L,Y,m,Z′4,Z″4),则确定信息签名处于无效状态。由此可知,当存在5个用户时,若信息签名有效,则会存在C1=H1(L,Y,m,Z′5,Z″5)。
[0114] 进一步地,客户端通过RPC接口调用linkable_ring_verify方法,调用验证算法,验证算法的输入参数为:第一公钥列表,信息签名和待传输信息,输出值为有效标识或者无效标识。
[0115] 本实施例通过区块链中的机构来实现信息的传输,通过环签名算法对待传输信息进行签名,得到对应的信息签名,在发送给机构的待传输信息中,不含有待传输信息对应用户的身份信息,实现了信息的匿名传输;且通过将待传输信息和对应的信息签名写入区块链中,以通过区块链的特性实现待传输信息不可被篡改。
[0116] 进一步地,提出本发明基于区块链的信息匿名传输方法第二实施例。
[0117] 所述基于区块链的信息匿名传输方法第二实施例与所述基于区块链的信息匿名传输方法第一实施例的区别在于,参照图3,基于区块链的信息匿名传输方法还包括:
[0118] 步骤S40,当侦测到获取所述待传输信息统计结果的获取请求后,将所述获取请求发送给所述机构,以供所述机构根据所述获取请求从所述区块链中获取所述统计结果,并将所述统计结果返回给所述客户端。
[0119] 当机构将信息签名和对应待传输信息关联写入区块链的过程中,会在区块链中进行待传输信息的统计,得到统计结果。可以理解的是,在区块链中,某个用户对应的待传输信息和信息签名是关联存储的。统计结果是根据待传输信息的不同而确定,如当待传输信息是选票时,对应的统计结果为选票结果。
[0120] 当机构将信息签名和待传输信息写入区块链中后,机构检测是否接收到客户端发送的获取待传输信息统计结果的获取请求。该获取请求可由客户端用户根据需要在客户端中触发,也可由客户端根据预先设置好的定时任务定时触发。当客户端侦测到该获取请求时,将该获取请求发送给机构。当机构接收到客户端发送的获取请求后,机构从区块链中获取统计结果,并将所获取的统计结果发送给客户端。当客户端接收到该统计结果后,将该统计结果显示在显示界面中,以供对应的用户查看。
[0121] 进一步地,基于区块链的信息匿名传输方法还包括:
[0122] 步骤d,若机构确定所述信息签名处于无效状态,则确定所述待传输信息为无效待传输信息,并为所述无效待传输信息添加无效标识,将携带所述无效标识的所述无效待传输信息上传至所述区块链中。
[0123] 进一步地,若机构确定信息签名处于无效状态,机构则确定该信息签名对应的待传输信息为无效待传输信息,并为该无效待传输信息添加无效标识,将携带无效标识的无效待传输信息上传至区块链中。其中,在本实施例中,并不限制无效标识的具体表现形式。可以理解的是,机构中的一个用户对应一个待传输信息,一个待传输信息对应一个信息签名。
[0124] 进一步地,在将无效待传输信息写入区块链过程中,可统计无效待传输信息的数量。在机构将统计结果发送给客户端过程中,可将无效待传输信息的数量一起发送给客户端。
[0125] 进一步地,若机构确定信息签名处于无效状态,机构则丢弃该待传输信息。
[0126] 本实施例通过将机构对应用户上传的待传输信息的统计发送给客户端,实现了客户端用户可以查看同一机构所有用户对应的待传输信息,但是客户端用户不会知道各个待传输信息对应用户的身份信息,只能查看该待传输信息的内容,保证了信息传输过程中,用户身份信息的匿名性。
[0127] 进一步地,提出本发明基于区块链的信息匿名传输方法第三实施例。
[0128] 所述基于区块链的信息匿名传输方法第三实施例与所述基于区块链的信息匿名传输方法第二实施例的区别在于,步骤S40包括:
[0129] 步骤e,当侦测到获取所述待传输信息统计结果的获取请求后,将所述获取请求发送给所述机构,以供所述机构根据所述获取请求从所述区块链中获取所述统计结果和验证所述统计结果所需的验证参数,并将所述统计结果和所述验证参数发送给所述客户端。
[0130] 当客户端侦测到获取待传输信息统计结果的获取请求后,将获取请求发送给机构。当机构接收到该获取请求后,机构通过智能合约调用区块链中的统计结果和验证该统计结果所需的验证参数。其中,验证参数包括但不限于环签名参数、第一公钥列表、信息签名以及与信息签名对应的待传输信息。当机构获取到统计结果和验证参数后,机构将统计结果和验证参数发送给客户端。当客户端接收到统计结果和验证参数后,将统计结果显示在其屏幕中,以供投票用户查看统计结果,并调用环签名算法,通过环签名算法中的验证算法,根据所接收的验证参数验证该统计结果。具体的验证算法已在上述实施例中详细说明,在本实施例中不再赘述。
[0131] 本实施例通过在将统计结果发送给客户端过程中,将验证参数一起发送给客户端,以供客户端在接收到统计结果后,根据所接收的验证参数,调用环签名算法验证该统计结果,实现了对统计结果的公开验证。
[0132] 进一步地,提出本发明基于区块链的信息匿名传输方法第四实施例。
[0133] 所述基于区块链的信息匿名传输方法第四实施例与所述基于区块链的信息匿名传输方法第一、第二或第三实施例的区别在于,参照图4,基于区块链的信息匿名传输方法还包括:
[0134] 步骤S50,验证所接收的所述环签名参数是否处于有效状态。
[0135] 若确定所述环签名参数处于有效状态,则执行步骤S20。
[0136] 当客户端接收到机构发送的环签名参数后,调用环签名算法验证所接收的环签名参数是否处于有效状态。具体地,客户端计算所接收的环签名参数的字符长度,并判断环签名参数的字符长度是否大于预设长度。若环签名参数的字符长度大于预设长度,客户端则确定环签名参数处于有效状态;若环签名参数小于或者等于预设长度,客户端则确定环签名参数处于无效状态。其中,预设长度可根据具体需要而设置,在本实施例中不做具体限制。
[0137] 若客户端确定环签名参数处于有效状态,客户端则使用环签名参数、第一公钥列表中的其他用户公钥和客户端公钥对应的私钥对待传输信息进行环签名,以得到信息签名。进一步地,若客户端确定环签名参数处于无效状态,客户端则输出提示信息,以根据该提示信息提示对应用户环签名参数处于无效状态。
[0138] 本实施例通过客户端在接收到环签名参数时,验证环签名参数的有效性,只有当环签名参数有效时,才根据环签名参数生成对应的信息签名,避免了环签名参数无效,导致生成信息签名失败的情况出现,提高了信息传输的成功率。
[0139] 进一步地,提出本发明基于区块链的信息匿名传输方法第五实施例。
[0140] 所述基于区块链的信息匿名传输方法第四实施例与所述基于区块链的信息匿名传输方法第一、第二、第三和/或第四实施例的区别在于,步骤S30包括:
[0141] 步骤f,将所述待传输信息、所述信息签名和生成所述信息签名所用的第二公钥列表发送给所述机构,以供所述机构根据所述第一公钥列表验证所接收的所述第二公钥列表处于有效状态,且确定所接收的所述信息签名处于有效状态后,将所述待传输信息和所述信息签名上传至所述区块链中。
[0142] 具体地,步骤f包括:
[0143] 步骤f1,将所述待传输信息、所述信息签名和生成所述信息签名所用的第二公钥列表发送给所述机构,以供所述机构接收所述待传输信息、所述信息签名和所述第二公钥列表。
[0144] 步骤f2,由所述机构计算所述第二公钥列表的第一哈希值,以及计算所述第一公钥列表的第二哈希值。
[0145] 步骤f3,判断所述第一哈希值是否与所述第二哈希值一致。
[0146] 步骤f4,若所述第一哈希值与所述第二哈希值一致,则确定所述第二公钥列表处于有效状态,验证所述信息签名是否处于有效状态。
[0147] 步骤f5,若确定所述信息签名处于有效状态,则将所述待传输信息和所述信息签名上传至所述区块链中。
[0148] 当客户端将信息签名和待传输信息发送给机构时,客户端可将其在生成信息签名过程中所使用的公钥列表一起发送给机构。当机构接收到客户端发送的公钥列表、信息签名和待传输信息后,将客户端发送的公钥列表记为第二公钥列表,将所获取其用户的公钥列表记为第一公钥列表,并通过第一公钥列表验证第二公钥列表是否处于有效状态。若机构确定第二公钥列表处于有效状态,且确定信息签名处于有效状态,机构则将待传输信息和信息签名上传至区块链中。
[0149] 机构验证第二公钥列表是否处于有效状态的具体过程可为:机构验证第二公钥列表是否处于有效状态的过程可为:机构计算第二公钥列表的哈希值,并将第二公钥列表的哈希值记为第一哈希值;计算第一公钥列表的哈希值,并将第一公钥列表的哈希值记为第二哈希值。当机构得到第一哈希值和第二哈希值后,判断第一哈希值是否与第二哈希值一致。若第一哈希值与第二哈希值一致,机构则确定第二公钥列表处于有效状态;若第一哈希值与第二哈希值不一致,机构则确定第二公钥列表处于无效状态。
[0150] 其中,计算哈希值所采用的算法包括但不限于MD5(Message-Digest Algorithm 5,信息-摘要算法5)和SHA(Secure Hash Algorithm,安全散列算法)。
[0151] 进一步地,步骤f还包括:
[0152] 步骤f6,将所述待传输信息、所述信息签名和生成所述信息签名所用的第二公钥列表发送给所述机构,以供所述机构接收所述待传输信息、所述信息签名和所述第二公钥列表;
[0153] 步骤f7,由所述机构计算所述第二公钥列表的列表长度,记为第一长度,以及计算所述第一公钥列表的列表长度,记为第二长度;
[0154] 步骤f8,若所述第一长度等于所述第二长度,则获取所述第二公钥列表的列表内容,记为第一内容,以及获取所述第一公钥列表的内容,记为第二内容;
[0155] 步骤f9,若所述第一内容与所述第二内容一致,则确定所述第二公钥列表处于有效状态,验证所述信息签名是否处于有效状态。
[0156] 步骤f10,若确定所述信息签名处于有效状态,则将所述待传输信息和所述信息签名上传至所述区块链中。
[0157] 机构验证第二公钥列表是否处于有效状态的具体过程还可为:机构计算第二公钥列表的列表长度,将第二公钥列表的长度记为第一长度,并计算第一公钥列表的列表长度,将第一公钥列表的长度记为第二长度。需要说明的是,公钥列表的列表长度等于公钥列表中公钥的个数。当机构得到第一长度和第二长度后,判断第一长度是否等于第二长度。若第一长度不等于第二长度,机构则确定第二公钥列表处于无效状态;若第一长度等于第二长度,机构则获取第二公钥列表的列表内容,将第二公钥列表的列表内容记为第一内容,并获取第一公钥列表的列表内容,将第一公钥列表的列表内容记为第二内容。当机构得到第一内容和第二内容后,机构判断第一内容和第二内容是否一致。若第一内容和第二内容一致,机构则确定第二公钥列表处于有效状态;若第一内容和第二内容不一致,机构则确定第二公钥列表处于无效状态。需要说明的是,当第一内容和第二内容一致时,表明第二公钥列表中的所有公钥都存在第一公钥列表中。
[0158] 进一步地,基于区块链的信息匿名传输方法还包括:
[0159] 步骤g,若所述第二公钥列表处于无效状态,则确定所述待传输信息为无效待传输信息,并为所述无效待传输信息添加无效标识,将携带所述无效标识的所述无效待传输信息上传至所述区块链中。
[0160] 若机构确定第二公钥列表处于无效状态,机构则确定该待传输信息为无效待传输信息,并为无效待传输信息添加无效标识,将携带无效标识的无效待传输信息上传至区块链中。可以理解的是,当第二公钥列表处于无效状态时,可以确定对应的信息签名也处于无效状态。
[0161] 本实施例通过在验证信息签名是否处于有效状态之前,先验证第二公钥列表是否处于有效状态。只有当确定第二公钥列表处于有效状态之后,才去验证信息签名是否处于有效状态;当确定第二公钥列表处于无效状态,机构直接确定该待传输信息为无效待传输信息。避免了当第二公钥列表处于无效状态后,机构继续验证信息签名是否处于有效状态,浪费机构的系统资源;且验证第二公钥列表是否处于有效状态比验证信息签名是否处于有效状态简单,可在第二公钥列表处于无效状态时,快速确定信息签名处于无效状态。
[0162] 以下以投票场景解释基于区块链的信息匿名传输方法的整个过程。
[0163] 当机构获取到候选用户信息和投票用户对应的第一公钥列表后,机构生成环签名所需的环签名参数,并将候选用户信息、第一公钥列表和环签名参数发送给客户端。其中,候选用户信息包括但不限于候选人姓名、职位和年龄。候选用户信息是机构预先存储的,由候选用户通过对应的客户端发送给机构的。投票用户的第一公钥列表中的公钥是由想参与投票的投票用户通过其对应的客户端发送给机构的。可以理解的是,候选用户信息即为机构发送给客户端的信息。
[0164] 进一步地,当机构得到候选用户信息、第一公钥列表和环签名参数后,将候选用户信息、第一公钥列表和环签名参数写入区块链中,以将候选用户信息、第一公钥列表和环签名参数同步到区块链中。
[0165] 当客户端接收到候选用户信息、第一公钥列表和环签名参数后,客户端将候选用户信息显示在其屏幕上,以供投票用户查看。投票用户可通过客户端屏幕中显示的候选用户信息,在客户端屏幕中触发投票指令。当只存在一个候选用户时,对应的投票指令包括赞成指令和反对指令;当存在多个候选用户时,对应的投票指令为选择具体候选用户的指令。当客户端侦测到投票用户触发的投票指令后,根据投票指令生成选票。可以理解的是,当只有一个候选用户时,选票分为赞成票和反对票;当有多个候选用户时,选票为具体选择某一候选用户的选择票。选票即为待传输信息
[0166] 当客户端接收到机构发送的环签名参数和第一公钥列表后,获取其预先存储的公钥,将其公钥记为客户端公钥,并确定客户端公钥在所接收的第一公钥列表中的位置。可以理解的是,在第一公钥列表中,有各个投票用户对应的公钥,因此,在确定客户端公钥后,即可确定客户端公钥在第一公钥列表中的位置。
[0167] 当客户端获取到其公钥后,获取与该公钥对应的私钥,即获取与客户端公钥对应的私钥。客户端调用环签名算法,根据环签名参数、将选票、客户端公钥、客户端公钥对应的私钥和第一公钥列表作为输入参数输入至环签名算法的签名算法中,得到签名算法的输出,该输出即为选票签名。当客户端得到选票签名后,将选票签名和对应的选票发送给机构。选票签名即为信息签名。
[0168] 在本实施例中,如果整个选票对应的签名中参数Y没有出现第二次,则可认为基于区块链的投票过程满足唯一性;其由于一个投票用户只有一个私钥,因此,通过该参数可以防止投票用户重复投票。
[0169] 当机构接收到客户端发送的选票签名和选票后,机构调用环签名算法,通过环签名算法中的验证算法验证选票签名是否处于有效状态。若机构确定选票签名处于有效状态,机构则将选票签名和其对应的选票写入区块链中。当机构将选票签名和对应选票关联写入区块链的过程中,会在区块链中进行选票的统计,得到选票结果。可以理解的是,在区块链中,某个投票用户对应的选票和选票签名是关联存储的。
[0170] 在进行选票统计的过程中,若只存在一个候选用户,且该选票为赞成票,则将赞成票对应的数量加一;若该选票为反对票,则将反对票对应的数量加一。当统计完所有的选票后,根据所得反对票对应的数量和赞成票对应的数量,以及选票规则确定选票结果。如某个选票规则为赞成票的数量应要大于或者等于投票用户的总数量的三分之二,因此,在得到赞成票的数量后,将赞成票的数量除以投票用户的总数量,判断计算所得的值是否大于或者等于三分之二。若计算所得的值大于或者等于三分之二,则确定候选用户成功得选;若计算所得的值小于三分之二,则确定候选用户落选。在本实施例中,可为赞成票和反对票设置对应的赞成标识和反对标识,通过选票对应的标识来确定该选票是赞成票还是反对票。如可将赞成标识设置为“1”,反对标识设置为“0”。
[0171] 若存在至少两个候选用户,则通过各个候选用户对应的选票标识来确定该选票所选择的候选用户,并在确定选票所选择的候选用户后,在该候选用户对应的选票数量中加一。当统计完所有的选票后,根据各个候选用户对应的选票数量,以及选票规则确定选票结果。需要说明的是,选票规则根据具体需要而设置,在本实施例中不做具体限制。如当某张选票对应三个候选用户,只有一个候选用户携带选票标识“11”,则确定携带该选票标识的候选用户为该选票所选择的候选用户。
[0172] 当机构将选票签名和选票写入区块链中后,机构检测是否接收到客户端发送的获取选票结果的获取请求。该获取请求可由投票用户根据需要在客户端中触发,也可由客户端根据预先设置好的定时任务定时触发。当机构接收到客户端发送的获取选票结果的获取请求后,机构从区块链中获取选票结果,并将所获取的选票结果发送给客户端,以供客户端对应的投票用户查看选票结果。其中,选票结果可为某个候选用户是否成功当选的结果,也可将选票的统计结果和选票结果一起发送给客户端。
[0173] 进一步地,若机构确定选票签名处于无效状态,机构则确定该选票签名对应的选票为无效选票,并为该无效选票添加无效标识,将携带无效标识的无效选票写入区块链中。其中,在本实施例中,并不限制无效标识的具体表现形式。可以理解的是,一个投票用户对应一个选票,一个选票对应一个选票签名。进一步地,在将无效选票写入区块链过程中,可统计无效选票的数量。在机构将选票结果发送给客户端过程中,可将无效选票的数量一起发送给客户端。进一步地,若机构确定选票签名处于无效状态,机构则丢弃该选票。
[0174] 当机构获取到候选用户信息和投票用户的第一公钥列表后,生成环签名所需的环签名参数,并将候选用户信息、第一公钥列表和环签名参数发送给客户端。当客户端接收到机构发送的候选用户信息后,客户端获取投票用户根据候选用户信息触发的投票指令,并根据该投票指令生成选票。当客户端接收到机构发送的环签名参数后,调用环签名算法验证所接收的环签名参数是否处于有效状态。具体地,客户端计算所接收的环签名参数的字符长度,并判断环签名参数的字符长度是否大于预设长度。若环签名参数的字符长度大于预设长度,客户端则确定环签名参数处于有效状态;若环签名参数小于或者等于预设长度,客户端则确定环签名参数处于无效状态。其中,预设长度可根据具体需要而设置,在本实施例中不做具体限制。
[0175] 当机构获取到候选用户信息和投票用户的第一公钥列表后,生成环签名所需的环签名参数,并将候选用户信息、第一公钥列表和环签名参数发送给客户端。当客户端接收到机构发送的候选用户信息后,客户端获取投票用户根据候选用户信息触发的投票指令,并根据该投票指令生成选票。当客户端接收到机构发送的环签名参数后,调用环签名算法验证所接收的环签名参数是否处于有效状态。具体地,客户端计算所接收的环签名参数的字符长度,并判断环签名参数的字符长度是否大于预设长度。若环签名参数的字符长度大于预设长度,客户端则确定环签名参数处于有效状态;若环签名参数小于或者等于预设长度,客户端则确定环签名参数处于无效状态。其中,预设长度可根据具体需要而设置,在本实施例中不做具体限制。
[0176] 若客户端确定环签名参数处于有效状态,客户端在所接收的所述第一公钥列表中查找到客户端公钥,调用环签名算法,根据客户端公钥和环签名参数生成选票签名,并将选票签名和选票返回给机构。进一步地,若客户端确定环签名参数处于无效状态,客户端则输出提示信息,以根据该提示信息提示投票用户环签名参数处于无效状态。
[0177] 通过客户端在接收到环签名参数时,验证环签名参数的有效性,只有当环签名参数有效时,才根据环签名参数生成对应的选票签名,避免了环签名参数无效,导致生成选票签名失败的情况出现,提高了投票用户投票的成功率。
[0178] 进一步地,若客户端确定环签名参数处于有效状态,客户端在所接收的所述第一公钥列表中查找到客户端公钥,调用环签名算法,根据客户端公钥和环签名参数生成选票签名,并将选票签名和选票返回给机构。进一步地,若客户端确定环签名参数处于无效状态,客户端则输出提示信息,以根据该提示信息提示投票用户环签名参数处于无效状态。通过客户端在接收到环签名参数时,验证环签名参数的有效性,只有当环签名参数有效时,才根据环签名参数生成对应的选票签名,避免了环签名参数无效,导致生成选票签名失败的情况出现,提高了投票用户投票的成功率。
[0179] 进一步地,当机构接收到客户端发送的获取选票结果的获取请求后,机构通过智能合约调用区块链中的选票结果和验证该选票结果所需的验证参数。其中,验证参数包括但不限于环签名参数、第一公钥列表、选票签名以及与选票签名对应的选票。当机构获取到选票结果和验证参数后,机构将选票结果和验证参数发送给客户端。当客户端接收到选票结果和验证参数后,将选票结果显示在其屏幕中,以供投票用户查看选票结果,并调用环签名算法,通过环签名算法中的验证算法,根据所接收的验证参数验证该选票结果。具体的验证算法已在上述实施例中详细说明,在本实施例中不再赘述。通过在将选票结果发送给客户端过程中,将验证参数一起发送给客户端,以供客户端在接收到选票结果后,根据所接收的验证参数,调用环签名算法验证该选票结果,实现了的投票用户对选票结果的公开验证。
[0180] 此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有基于区块链的信息匿名传输程序,所述基于区块链的信息匿名传输程序被处理器执行时实现如上所述的奖励发送方法的步骤。
[0181] 本发明计算机可读存储介质具体实施方式与上述基于区块链的信息匿名传输方法各实施例基本相同,在此不再赘述。
[0182] 需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0183] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0184] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
[0185] 以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈