一种基于区块链的线上表决方法和系统与流程

文档序号:27142646发布日期:2021-10-30 00:55阅读:212来源:国知局
一种基于区块链的线上表决方法和系统与流程

1.本发明涉及区块链技术领域,具体涉及一种基于区块链的线上表决方法和系统。


背景技术:

2.在金融消费领域中,经常存在恶意客户在多家金融机构申请贷款,多头借债恶意不还的现象,为了应对这种情况,业界的技术人员通过多家金融机构建立了区块链消费信贷防范系统,随着合作联盟的不断扩大,为了获得共享的信贷信息数据,区块链上会有许多新的信贷金融机构的节点请求新增加入,又如需要联盟成员表决决定智能合约是否可以上线部署,或者表决是否应该在现有联盟链上新开展某个业务等,目前大多区块链的联盟系统缺乏线上表决的机制,通常通过召开人工会议的方式,最终线下投票表决的形式,决定新增的金融机构是否准入,当需要表决的成员达到一定规模程度时,从表决准备、表决发起,表决统计、表决结果确认都需要公开的与全部表决成员沟通协调,具有耗时长,沟通成本高,处理效率低的缺点,少量的区块链的联盟系统建立了线上表决的系统机制,通过区块链中各表决节点线上表决投票的流程机制,快速进行联盟事项表决,这种方式一定程度提高了处理的效率,但是也存在缺乏对表决内容和表决身份的关联性保护及缺乏对表决者的表决身份匿名性保护等问题,最后对表决的中间过程和最终结果缺乏不可篡改、去中心化和可追溯的查询,存在表决不公,暗箱操作的可能性。


技术实现要素:

3.基于此,有必要提供一种高效、可靠的基于区块链的线上表决方法和系统。
4.本发明实施例一方面提供一种基于区块链的线上表决方法,其包括如下步骤:s1:发起节点生成表决申请,表决申请包括表决事项内容、表决选项、表决者名单和盲签名参数,表决申请经过共识节点的共识后记录上链,共识节点根据表决者名单将表决申请发送给对应的表决节点;s2:表决节点根据表决申请生成表决答卷,并根据盲签名参数盲化表决答卷;s3:发起节点对盲化后的表决答卷进行盲签名;s4:表决节点脱盲表决答卷的盲签名,确定表决选项,填充表决答卷,并对表决答卷生成环签名;s5:共识节点验证带环签名的表决答卷,统计每个表决节点的表决选项,生成最终表决结果。
5.作为上述实施例的进一步改进,在步骤s1之前,还包括步骤s0:s0:发起节点生成盲签名参数,共识节点生成环签名参数,存储盲签名参数和环签名参数;步骤s1包括如下子步骤:发起节点生成表决申请,表决申请包括表决事项内容、表决选项、表决者名单、盲签名参数;
共识节点对表决申请进行检查,检查内容包括:对发起节点的身份进行认证、对表决申请内容的合法性进行检查;对表决申请进行上链,根据共识算法对区块链中所有共识节点发起共识,如果共识达成,则各个共识节点把表决申请写入本地数据库;共识节点根据表决者名单将表决申请和环签名参数发送给对应的表决节点。
6.作为上述实施例的进一步改进,步骤s2包括如下子步骤:表决节点生成表决答卷的表决识别码,该表决识别码唯一标识此份表决答卷;表决节点生成盲因子,用于盲化表决答卷;表决节点根据共识节点发送的环签名参数,生成环公私钥对;表决节点根据盲因子和盲签名参数,对表决答卷的表决识别码进行盲化;表决节点生成表决答卷,表决答卷包括表决事项内容、表决选项、表决者名单、盲化的表决识别码,并发送表决答卷给共识节点,以及发送环公钥给共识节点请求注册;共识节点对表决答卷进行检查,包括对表决节点的身份进行认证、对表决答卷内容的合法性进行检查;共识节点注册表决节点的环公钥。
7.作为上述实施例的进一步改进,步骤s3包括如下子步骤:发起节点获取表决答卷;发起节点使用盲签名参数对盲化后的表决答卷进行盲签名;发起节点生成带盲签名的表决答卷;共识节点检查发起节点是否为全部表决节点的表决答卷都生成了盲签名。
8.作为上述实施例的进一步改进,步骤s4包括如下子步骤:共识节点发送带盲签名的表决答卷;表决节点接收带盲签名的表决答卷,使用盲因子对盲签名进行脱盲处理,得到发起节点对表决答卷的表决识别码的脱盲签名,并确定选择的表决选项;表决节点发起获取所有环成员的环公钥请求给共识节点;表决节点从共识节点获取环成员的环公钥,使用环私钥和其他环成员的环公钥对表决答卷生成环签名;表决节点生成表决结果并把表决结果发送给共识节点,表决结果包括表决事项内容、选择的表决选项、表决者名单、表决识别码、脱盲签名、环签名;步骤s5包括如下子步骤:共识节点检查每个表决节点的表决结果,检查内容包括:使用发起节点的盲签名参数校验脱盲签名;使用所有表决节点的环公钥校验环签名;检验表决识别码是否唯一;是否有被统计过的表决节点使用盲因子对盲签名进行脱盲处理,得到发起者对表决识别码的脱盲签名;共识节点根据每个表决节点的表决结果统计生成最终表决结果;共识节点发起共识,每个表决节点的表决结果和最终表决结果上链。
9.本发明实施例另一方面提供一种基于区块链的线上表决系统,其包括:发起节点,用于发起表决请求,根据需要表决的主题生成表决申请,并向区块链上的共识节点发送表决申请上链的请求,表决申请包括表决事项内容、表决选项、表决者名
单,发起节点还用于对每个表决节点生成的表决答卷进行盲签名;多个表决节点,每个表决节点用于负责对表决请求进行表决,生成表决答卷,并发送表决答卷给发起节点,请求发起节点对表决答卷进行盲签名,所述表决节点还用于对确定了表决选项的表决答卷生成环签名,并将带环签名的表决答卷发送给区块链上的共识节点;多个共识节点,所述共识节点用于与所述发起节点和表决节点进行数据交互,根据表决者名单将表决申请发送给对应的表决节点,并校验和统计每个表决节点的表决答卷,生成最终表决结果。
10.作为上述实施例的进一步改进,所述发起节点生成表决申请时,使所述表决申请带有盲签名参数,所述表决节点接收到表决申请后,利用所述盲签名参数及该表决节点生成的盲因子对表决答卷进行盲化,所述发起节点对盲化后的表决答卷进行盲签名,所述表决节点使用其生成的盲因子对盲签名的表决答卷进行脱盲处理,得到发起节点对表决答卷的脱盲签名,并确定选择的表决选项。
11.作为上述实施例的进一步改进,在所述表决节点生成表决答卷的过程中,表决节点生成表决答卷的表决识别码,该表决识别码唯一标识此份表决答卷,表决节点还生成盲因子,并根据盲因子和盲签名参数,对表决答卷的表决识别码进行盲化,表决节点生成的表决答卷包括表决事项内容、表决选项、表决者名单、盲化的表决识别码。
12.作为上述实施例的进一步改进,所述共识节点将表决申请发送给表决节点时,还将环签名参数发给所述表决节点,所述表决节点根据共识节点发送的环签名参数,生成环公私钥对,并将环公钥发给共识节点,表决节点还通过共识节点获取其他环成员的环公钥,使用自身的环私钥和其他环成员的环公钥对表决答卷生成环签名,所述共识节点使用所述表决节点的环公钥校验环签名,确定该表决节点的表决结果。
13.作为上述实施例的进一步改进,所述共识节点在校验和统计每个表决节点的表决答卷时,检查每个表决节点的表决结果,检查内容包括:使用发起节点的盲签名参数校验脱盲签名;使用所有表决节点的环公钥校验环签名;检验表决识别码是否唯一;是否有被统计过的表决节点使用盲因子对盲签名进行脱盲处理,得到发起者对表决识别码的脱盲签名;检查通过后,共识节点根据每个表决节点的表决结果统计生成最终表决结果,并将每个表决节点的表决结果和最终表决结果上链。
14.本发明提供的基于区块链的线上表决方法和系统,基于区块链技术实现多个节点的在线表决,表决结果可追溯、不可篡改,同时通过盲签名和环签名的设置,保护了表决内容和成员身份等隐私,有效地解决传统人工表决耗时长的问题,提升了表决的效率和信息传递效率,实现了表决的公平、公正和公开的特点。
附图说明
15.通过附图中所示的本发明优选实施例更具体说明,本发明上述及其它目的、特征和优势将变得更加清晰。在全部附图中相同的附图标记指示相同的部分,且并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本发明的主旨。
16.图1为本发明实施例的一种线上表决系统的网络架构示意图。
17.图2为本发明实施例的一种线上表决方法的总体流程示意图。
18.图3至图6为一个具体实施例的线上表决方法的流程示意图。
具体实施方式
19.为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。
20.除非另有定义,本文所使用的所有的技术和科学术语与属于本发明所属的技术领域的技术人员通常理解的含义相同。本文中说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
21.请参考图1至图6,本发明实施例提供一种基于区块链的线上表决系统,其包括:发起节点,用于发起表决请求,根据需要表决的主题生成表决申请,并向区块链上的共识节点发送表决申请上链的请求,表决申请包括表决事项内容、表决选项、表决者名单,发起节点还用于对每个表决节点生成的表决答卷进行盲签名;多个表决节点,每个表决节点用于负责对表决请求进行表决,生成表决答卷,并发送表决答卷给发起节点,请求发起节点对表决答卷进行盲签名,表决节点还用于对确定了表决选项的表决答卷生成环签名,并将带环签名的表决答卷发送给区块链上的共识节点;多个共识节点,该多个共识节点构成上述区块链,共识节点用于与发起节点和表决节点进行数据交互,根据表决者名单将表决申请发送给对应的表决节点,并校验和统计每个表决节点的表决答卷,生成最终表决结果。
22.发起节点(表决发起方)负责表决申请的发起,根据具体的需要表决的主题构造表决申请请求,向区块链发送表决申请上链的请求,另外可以对每个表决节点生成的每张表决答卷进行盲签名。发起节点包括发起加密模块、发起通讯模块、发起存储模块和表决发起模块。发起加密模块主要负责数据交互的加密、解密、签名和验签,以及盲公私钥对生成,盲签名生成等服务。发起通讯模块主要负责与其他节点交互,发送和接收各种类型的消息,包括数据交互请求、共识消息、数据交互结果等。发起存储模块主要负责将盲签名参数、表决相关等数据持久化存储到数据库中。表决发起模块主要负责表决相关的处理,包括表决申请的生成和发起、表决识别码的数量控制和签名等。
23.表决节点主要负责对表决申请进行表决,确定表决选项以便最终形成统一的表决结果。一个区块链网络中存在若干个表决节点,表决节点可以是物理的服务器节点,也可以是虚拟的在共识节点上的功能模块,每个表决节点都拥有自己独立的环公私钥对,表决节点负责根据表决申请生成表决答卷,每个表决答卷都有唯一识别码作为表决答卷的唯一性标识,并发送给发起节点请求盲签名以获得合法授权,另外也会对表决答卷做环签名,隐匿自身身份。表决节点包括表决加密模块、表决通讯模块、表决存储模块和表决模块。表决加密模块负责数据交互的加密、解密、签名和验签,以及环公私钥对生成,盲因子生成、盲化表决答卷和脱盲表决答卷等服务。表决通讯模块负责与其他节点交互,发送和接收各种类型的消息,包括数据交互请求、共识消息、数据交互结果。表决存储模块负责将环签名参数、表决相关等数据持久化存储到数据库中。表决模块负责表决相关的处理,包括表决答卷生成、确定表决选项处理。
24.一个区块链网络中存在若干个共识节点,每一个共识节点都负责接收发起节点或者表决节点的数据交互请求,数据交互请求包括对对交互数据的校验,如验证解盲后的表
决识别码上的发起节点签名和表决节点的环签名,另外也包括对链上数据的写入或者读取。共识节点包括共识加密模块、共识模块、智能合约模块、共识通讯模块和共识存储模块。共识加密模块主要负责数据交互的加密、解密、签名和验签,以及环的初始化,环公钥注册和查询等服务,以及各类证书和密钥的申请和管理,计算哈希值等功能。共识模块主要根据选定的共识算法,与同一区块链中的其他共识节点一同对所述数据交互请求执行共识操作,若未达成共识,重新执行共识操作,直至达成共识,并输出共识结果。智能合约模块主要负责验证共识结果,执行智能合约和返回智能合约执行结果。验证共识结果包括对不同共识算法的共识结果验证,如果验证通过,则进入智能合约的执行阶段,如果验证不通过,则返回具体的共识报错信息。共识通讯模块主要负责与其他节点交互,发送和接收各种类型的消息,包括数据交互请求、共识消息、数据交互结果等。共识存储模块主要负责将验证节点生成的区块和数据交互相关的数据持久化存储到数据库中。
25.在优选实施例中,发起节点生成表决申请时,使表决申请带有盲签名参数。在本实施例中,发起节点预先生成盲签名参数,具体来说可以为盲公私钥对。表决申请中所带有的盲签名参数为盲公钥。表决节点从共识节点接收到表决申请后,利用接收到的盲签名参数(盲公钥)及该表决节点自身生成的盲因子对表决答卷进行盲化,并请求发起节点对盲化后的表决答卷进行签名。需要说明的是,在此阶段,表决答卷可以尚未确定表决选项,也即表决节点尚未作答。发起节点接到盲签名请求后,对盲化后的表决答卷进行盲签名,然后共识节点将带有盲签名的表决答卷发送给表决节点。表决节点使用其自身生成的盲因子对盲签名的表决答卷进行脱盲处理,得到发起节点对表决答卷的脱盲签名,并确定选择的表决选项,也即对表决答卷进行作答。
26.在进一步的优选实施例中,在表决节点生成表决答卷的过程中,表决节点生成表决答卷的表决识别码,该表决识别码唯一标识此份表决答卷,表决节点还生成盲因子,并根据盲因子和盲签名参数,对表决答卷的表决识别码进行盲化,表决节点生成的表决答卷包括表决事项内容、表决选项、表决者名单、盲化的表决识别码。
27.借助盲签名技术,表决节点(表决者)根据表决主题先生成表决答卷及表决答卷的表决识别码,并且盲化该表决识别码,然后让发起节点(表决发起者)在看不到表决答卷的表决识别码的前提下,为盲化后的表决答卷的表决识别码进行盲签名,后续再对盲签名解盲,即可得到表决者对表决答卷识别码的有效签名,从而实现表决发起者在看不到表决答卷具体内容的前提下,为表决答卷的表决识别码授权和签名,以确保该表决答卷合法有效,达到切断表决明文内容和表决者的关联性的同时,又能保证表决的答卷得到表决者的合法签名授权和表决答卷数量控制的目的。
28.在优选实施例中,共识节点将表决申请发送给表决节点时,还将环签名参数发给表决节点,表决节点根据共识节点发送的环签名参数,生成环公私钥对,并将环公钥发给共识节点进行注册。表决节点还向共识节点发起获取所有环成员的环公钥请求,然后通过共识节点获取其他环成员的环公钥,并使用自身的环私钥和其他环成员的环公钥对表决答卷生成环签名。共识节点使用表决节点的环公钥校验其表决答卷上的环签名,确定该表决节点的表决结果。
29.借助环签名技术,让所有的表决者组成一个环,并对自己的表决答卷使用环签名,共识节点(验证者)就能验证该表决答卷的环签名是否有效,但是却无法定位到具体的表决
者,从而保证表决答卷所属的表决者的身份不可追踪,实现表决者身份的匿名性。
30.在优选实施例中,共识节点在校验和统计每个表决节点的表决答卷时,检查每个表决节点的表决结果,检查内容包括:使用发起节点的盲签名参数校验脱盲签名;使用所有表决节点的环公钥校验环签名;检验表决识别码是否唯一;是否有被统计过的表决节点使用盲因子对盲签名进行脱盲处理,得到发起者对表决识别码的脱盲签名;检查通过后,共识节点根据每个表决节点的表决结果统计生成最终表决结果,并将每个表决节点的表决结果和最终表决结果上链。
31.该线上表决系统应用于金融信贷领域时,由主导机构统一构建和部署线上表决系统,由主导机构作为群主,负责群组成员(各金融机构)的准入、环群组、环参数的分配。由主导机构统一构建环签名身份认证模块系统,统一负责表决节点的用户身份信息的隐匿保护。由表决发起机构(发起节点)统一构建盲签名信息隐匿模块系统,统一负责对表决内容的信息隐匿保护和签名认证。由主导机构统一构建联盟区块链系统。各金融机构独立部署加密模块节点、计算模块节点和区块链节点。加密模块节点负责各结构的环公私钥对的生成,以及盲因子的生成等密码相关的参数初始化。计算模块节点作为各机构业务系统进行消费信贷和投票表决数据上链与消费信贷和投票表决查询的直接对接系统,由各金融机构按标准软件包进行独立部署。区块链节点作为各机构同步区块数据的数据节点由各机构按标准软件包进行独立部署。各金融机构按自身的业务场景进行消费信贷数据和表决信息的上传和查询,具体方式通过自身的业务系统对接计算模块节点提供的接口进行数据交互。主导机构在区块链上进行各表决节点的表决结果汇总统计,形成最终合法线上的表决结果。
32.请参考图2至图6,本发明实施例还提供一种基于区块链的线上表决方法,其包括如下步骤:s1:发起节点生成表决申请,表决申请包括表决事项内容、表决选项、表决者名单和盲签名参数,表决申请经过区块链上的共识节点的共识后记录上链(区块链),共识节点根据表决者名单将表决申请发送给表决者对应的表决节点。
33.s2:表决节点根据表决申请生成表决答卷,并根据盲签名参数盲化表决答卷;需要说明的是,在此阶段,表决答卷可以尚未确定表决选项,也即表决节点尚未作答。
34.s3:发起节点对盲化后的表决答卷进行盲签名。
35.s4:表决节点脱盲表决答卷的盲签名,确定表决选项,填充表决答卷,并对表决答卷生成环签名。
36.s5:共识节点验证带环签名的表决答卷,统计每个表决节点的表决选项,生成最终表决结果,并且把最终表决结果共识后上链。
37.在优选实施例中,在步骤s1之前,还包括步骤s0:s0:发起节点随机生成盲签名参数,共识节点生成环签名参数,例如生成环公私钥对、环公钥的注册,环公钥的查询等,存储盲签名参数和环签名参数。环签名参数的生成可以通过一个概率多项式时间(ppt)算法,输入为安全参数k,输出为环公钥和环私钥。盲签名参数具体来说可以为盲公私钥对、盲因子等,表决申请中所带有的盲签名参数为盲公钥。上述密钥等信息可以保存在可信密钥存储设备中。
38.步骤s1包括如下子步骤:
发起节点生成表决申请,表决申请包括表决事项内容、表决选项、表决者名单、盲签名参数;共识节点对表决申请进行检查,检查内容包括:对发起节点的身份进行认证,例如发起节点的身份证书、接入ip是否在白名单,对表决申请内容的合法性进行检查,例如表决内容不能为空,表决者成员的节点ip应在区块链成员节点的ip范围内,是否需要表决匿名,如果需要则盲公钥字段不能为空等;对表决申请进行上链,表决申请包括表决的事项内容、表决的选项、表决者名单、盲公钥等内容,根据共识算法对区块链中所有共识节点发起共识,如果共识达成,则各个共识节点把表决申请写入本地数据库;共识节点根据表决申请中的表决者名单ip将表决申请和环签名参数发送给对应的表决节点。
39.在优选实施例中,步骤s2包括如下子步骤。所有表决节点均执行该步骤s2。
40.表决节点生成表决答卷的表决识别码,该表决识别码唯一标识此份表决答卷;表决节点随机生成盲因子,后续用于盲化表决答卷;表决节点根据共识节点发送的环签名参数,本地生成环公私钥对;表决节点根据盲因子和盲签名参数,对表决答卷的表决识别码进行盲化,具体来说可以使用基于rsa的盲签名算法;表决节点生成表决答卷,表决答卷包括表决事项内容、表决选项、表决者名单、盲化的表决识别码,并发送表决答卷给共识节点,以及发送环公钥给共识节点请求注册;共识节点对表决答卷进行检查,包括对表决节点的身份进行认证、对表决答卷内容的合法性进行检查;共识节点注册表决节点的环公钥。
41.在优选实施例中,步骤s3进一步包括如下子步骤:发起节点获取表决答卷,表决答卷具体包括表决事项内容、表决选项、表决者名单、盲化的表决识别码等内容;发起节点使用盲签名参数(盲私钥)对盲化后的表决答卷进行盲签名;发起节点生成带盲签名的表决答卷,此时表决答卷包括表决事项内容、表决选项、表决者名单、盲化的表决识别码、盲签名等内容;共识节点检查发起节点是否为全部表决节点的表决答卷都生成了盲签名。当发起节点为全部表决节点的表决答卷都生成了盲签名后,进入步骤s4。需要说明的是,该步骤也可以省略。
42.在优选实施例中,步骤s4进一步包括如下子步骤:共识节点发送带盲签名的表决答卷给相应的表决节点,此时表决答卷包括表决事项内容、表决选项、表决者名单、盲化的表决识别码、盲签名等内容;表决节点接收带盲签名的表决答卷,使用该表决节点自身生成的盲因子对盲签名进行脱盲处理,得到发起节点对表决答卷的表决识别码的脱盲签名,并确定选择的表决选项,也即填充表决答卷;表决节点发起获取所有环成员的环公钥请求给共识节点;表决节点从共识节点获取环成员的环公钥,使用环私钥和其他环成员的环公钥对
表决答卷生成环签名;表决节点生成表决结果并把表决结果发送给共识节点,表决结果包括表决事项内容、选择的表决选项、表决者名单、表决识别码、脱盲签名、环签名等内容。
43.步骤s5进一步包括如下子步骤:共识节点检查每个表决节点的表决结果,检查内容包括:使用发起节点的盲签名参数(盲公钥)校验脱盲签名;使用所有表决节点的环公钥校验环签名;检验表决识别码是否唯一;是否有被统计过的表决节点使用盲因子对盲签名进行脱盲处理,得到发起者对表决识别码的脱盲签名;共识节点根据每个表决节点的表决结果统计生成最终表决结果;共识节点发起共识,每个表决节点的表决结果和最终表决结果上链。
44.图3至图6执行上述实施例的具体流程示意图,图中各步骤的具体内容为本发明实施例的发明内容的一部分。
45.需要说明的是,在上述的线上表决方法中,在不会造成技术方案的矛盾的情形下,各步骤之间的顺序可以适当调整。
46.本发明实施例运用区块链+盲签名和环签名的技术方案,旨在解决消费金融领域区块链表决过程的隐私保护问题,具备如下效果:1、提供基于区块链的线上表决系统,解决传统人工表决耗时长,沟通成本高,处理效率低的问题,其次借助区块链的特性,把表决准备、发起、统计等全部流程上链,确保表决流程可追溯,表决结果不可篡改,实现表决的公平、公正和公开2、借助盲签名技术,实现表决发起者在看不到表决答卷具体内容的前提下,为表决答卷进行授权和签名,保证表决的答卷得到表决者的合法的签名授权和表决答卷数量控制,达到隐匿表决答卷上的表决意见不让发起者查看,又要控制表决答卷的合法数量,让发起者对表决的意见进行合法授权和签名的问题。3、借助环签名技术,保证表决答卷所属的表决者身份的保证不可追踪性,实现表决者身份的匿名性。
47.以上实施例仅表达了发明的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1