一种基于区块链网络的公众打分方法及系统与流程

文档序号:17067253发布日期:2019-03-08 23:01阅读:197来源:国知局
一种基于区块链网络的公众打分方法及系统与流程

本发明涉及云数据处理领域,具体是一种基于区块链网络的公众打分方法及系统,用于基于区块链网络实现对公众打分统计。



背景技术:

公众意见是现有政府投资或建设征求民意的方式,特别是对居民环境有影响的建设,公众意见尤为重要。

随着互联网的发展,网上公众打分打破了传统公众意见征求在时间和地域方面的限制,也极大地拓展了参与人群的范围。

但是,目前大多数互联网公众打分,一方面比较分散,打分人身份不容易控制,导致打分作弊行为的发生;另一方面用户实名投票,导致用户打分有顾虑,无法打出自己真正想要的分数。同时,由于http本身的缺陷,计分过程依赖于一个计分机构的计算和统计,过程麻烦,且容易出现漏记、错计,以及篡改等问题。这都影响了公众打分的公正性和统计打分分数的效率。

为此,本发明提供了一种基于区块链网络的公众打分方法及系统,用于解决上述技术问题。



技术实现要素:

本发明所要解决的技术问题是,提供一种基于区块链网络的公众打分方法及系统,用于提高公众打分的公正性以及提高打分分数的统计效率。

为解决上述技术问题,本发明提供了一种基于区块链网络的公众打分方法,该方法基于记录节点、一组打分节点、以及与打分节点一对一配设的相应数量的注册装置,包括:

记录节点将第一区块发送给各打分节点,所述的第一区块包括区块头和被打分人信息;

注册装置接收打分人的注册身份信息,并对接收到的打分人的注册身份信息进行合法性和打分资格验证,若验证合格,则对接收到的打分人的注册身份信息进行盲变并通过所述盲变得到打分人的随机身份信息、并对所述的随机身份信息进行数字签名得到第一数字签名,之后将所述的随机身份信息及其对应的第一数字签名发送至相应的打分节点;

打分节点接收并验证记录节点发来的第一区块的有效性、接收所述打分人的打分结果、以及接收并验证注册装置发来的第一数字签名的有效性,并在验证注册装置发来的第一数字签名的有效性通过后,通过预先存储的第二私钥对所述的打分结果进行数字签名得到第二数字签名,并将所述的打分结果、所述的第二数字签名、以及上述接收到的随机身份信息记入所接收到的第一区块的区块头,使所述的第一区块更新为第二区块,将所述的第二区块发送到对应的记录节点;

记录节点接收并验证各相关打分节点发来的第二区块的有效性,之后统计验证有效的各第三区块对应打分节点的打分分数之和,并将所统计的打分分数之和记入上述接收到的第二区块的区块头,将当前更新的第二区块进行存储,并将该当前更新的第二区块发送给其他记录节点。

其中,所述记录节点的数量至少为2个,在任意一记录节点发送第一区块给打分节点时,其他记录节点无权发送第一区块。

其中,注册装置对所述的随机身份信息进行数字签名得到第一数字签名的方法为:

注册装置使用其内预先生成的第一私钥对所述的随机身份信息进行数字签名,得到所述的第一数字签名。

其中,记录节点验证打分节点发来的第二区块的有效性的方法为:

记录节点通过其内预先存入的第二公钥验证打分节点发来的第二区块的区块头中的第二数字签名的有效性,若验证通过,则打分节点发来的第二区块有效;其中所述的第二公钥与所述的第二密钥配合使用。

另外,本发明还提供了一种基于区块链网络的公众打分系统,包括记录节点、注册装置和一组打分节点,每个打分节点一一对应地配设有所述的注册装置,其中:

记录节点,用于将第一区块发送给各打分节点,所述的第一区块包括区块头和被打分人信息;

注册装置,用于接收打分人的注册身份信息,用于对接收到的打分人的注册身份信息进行合法性和打分资格验证,并用于在该验证合格时,对接收到的打分人的注册身份信息进行盲变并通过所述盲变得到打分人的随机身份信息,还用于对所述的随机身份信息进行数字签名得到第一数字签名,并用于将所述的随机身份信息及其对应的第一数字签名发送至相应的打分节点;

打分节点,与所述的记录节点以及相应的注册装置分别相连,用于接收并验证记录节点发来的第一区块的有效性、接收所述打分人的打分结果、以及接收并验证注册装置发来的第一数字签名的有效性,并在验证注册装置发来的第一数字签名的有效性通过后,通过预先存储的第二私钥对所述的打分结果进行数字签名得到第二数字签名,并将所述的打分结果、所述的第二数字签名、以及上述接收到的随机身份信息记入所接收到的第一区块的区块头,使所述的第一区块更新为第二区块,将所述的第二区块发送到对应的记录节点;

所述的记录节点,还用于接收并验证各相关打分节点发来的第二区块的有效性,用于统计验证有效的各第三区块对应打分节点的打分分数之和,用于将所统计的打分分数之和记入上述接收到的第二区块的区块头,用于将当前更新的第二区块进行存储,并用于将该当前更新的第二区块发送给其他记录节点。

其中,所述记录节点的数量至少为2个,在任意一记录节点发送第一区块给打分节点时,其他记录节点无权发送所述的第一区块。

其中,所述的记录节点包括:

第一发送模块,用于发送所述的第一区块给各打分节点;

第一接收模块,用于接收各打分节点发来的第二区块;

第一验证模块,用于验证通过第一接收模块接收到的各第二区块的有效性;

处理模块,用于统计上述第一验证模块验证有效的各第二区块对应的打分节点的打分分数之和,用于将所统计的打分分数之和记入上述接收到的第二区块的区块头,用于将当前更新的第二区块进行存储,并用于将该当前更新的第二区块发送给其他记录节点。

其中,所述的打分节点包括:

第二接收模块,用于接收记录节点发来的第一区块;

第二接收模块,用于接收注册装置发来的随机身份信息和第一数字签名;

打分结果采集模块,用于采集打分人提交的打分结果;

第二验证模块,用于验证第二接收模块接收到的第一区块的有效性;

第三验证模块,用于验证第二接收模块接收到的第一数字签名的有效性;

第二处理模块,用于在第二验证模块验证所述第一区块的有效性通过后,通过预先存储的第二私钥对打分结果采集模块采集的打分结果进行数字签名得到第二数字签名,并用于将所述的打分结果、所述的第二数字签名、以及第二接收模块接收到的随机身份信息记入第二接收模块所接收到的第一区块的区块头,使所述的第一区块更新为第二区块;

第二发送模块,用于将第二处理模块中更新为的第二区块发送到对应的记录节点。

其中,所述的注册装置为注册设备或服务器。

与现有技术相比,本发明的优点在于:

(1)本发明所述的基于区块链网络的公众打分方法及系统,二者均通过注册装置接收打分人的注册身份信息,并对接收到的打分人的注册身份信息进行合法性和打分资格验证,若验证合格,则对接收到的打分人的注册身份信息进行盲变并通过所述盲变得到打分人的随机身份信息、并对所述的随机身份信息进行数字签名得到第一数字签名,之后将所述的随机身份信息及其对应的第一数字签名发送至相应的打分节点,打分节点及记录节点中所涉及的打分人的身份信息仅仅是盲变后的随机身份信息,可见本发明能够实现匿名打分,这在一定程度上打消了打分人打分时的顾虑,从而在一定程度上确保了打分的公正性。

(2)本发明所述的基于区块链网络的公众打分方法及系统,二者均通过打分节点接收并验证记录节点发来的第一区块的有效性、通过打分节点接收并验证注册装置发来的第一数字签名的有效性,以及通过记录节点接收并验证各相关打分节点发来的第二区块的有效性,其中第二区块包括第二数字签名,可见本发明通过两次签名、多次验证,在一定程度上防止了中间作弊,可见在一定程度上确保了打分的有效性。

(3)本发明所述的基于区块链网络的公众打分方法及系统,其二者均基于记录节点、一组打分节点、以及与打分节点一对一配设的相应数量的注册装置,可见本发明能够实现多节点打分,从而可在一定程度上提高征求公众意见的效率。

由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。

附图说明

图1为本发明所述基于区块链网络的公众打分方法的方法流程示意图。

图2为本发明所述基于区块链网络的公众打分系统的功能结构框图示意图。

具体实施方式

为使本发明的技术方案和优点更加清楚,下面将结合附图,对本发明的技术方案进行清楚、完整地描述。

图1为本发明所述基于区块链网络的公众打分方法的一种具体实施方式。在本实施方式中,该基于区块链网络的公众打分方法基于记录节点、注册装置和一组打分节点,其中的每个打分节点各自配设一所述的注册装置。具体地,该基于区块链网络的公众打分方法包括以下步骤s1-s4。

步骤s1、记录节点将第一区块发送给各打分节点,所述的第一区块包括区块头和被打分人信息。

其中,所述的第一区块还可以包括打分要求信息,用于打分人清楚了解打分规则,进而方便打分人为被打分人打分。

在本实施方式中,所述记录节点的数量为3个,本领域技术人员在实现本发明时还可依据实际需要使用其他数量个数的记录节点,比如2个、4个、5个等。另外,本发明中,在任意一记录节点发送第一区块给打分节点时,其他记录节点无权发送第一区块。

其中,本发明中预先指定一个用于将第一区块发送给各打分节点的记录节点,使用时,通过该指定的记录节点将第一区块发送给各打分节点。

步骤s2、注册装置接收打分人的注册身份信息,并对接收到的打分人的注册身份信息进行合法性和打分资格验证,若验证合格,则对接收到的打分人的注册身份信息进行盲变并通过所述盲变得到打分人的随机身份信息、并对所述的随机身份信息进行数字签名得到第一数字签名,之后将所述的随机身份信息及其对应的第一数字签名发送至相应的打分节点。

其中,每个注册身份信息唯一标识一打分人。打分人在打分之前首先通过注册装置进行注册,具体地,打分人通过注册装置提交其注册身份信息,用以完成注册。

其中,注册装置对所述的随机身份信息进行数字签名得到第一数字签名的方法为:注册装置使用其内预先生成的第一私钥对所述的随机身份信息进行数字签名,得到所述的第一数字签名。

另外,注册装置对接收到的打分人的注册身份信息进行合法性和打分资格验证包括:验证注册身份信息的格式是否正确,验证注册身份信息对应的打分人是否具有打分资格。

其中,所述的验证注册身份信息对应的打分人是否具有打分资格,可以采用现有技术中常用的方法进行实现,比如验证注册身份信息对应的打分人是否位于预先设定的具有打分资格的群体中。

步骤s3、打分节点接收并验证记录节点发来的第一区块的有效性、接收所述打分人的打分结果(包括打分分数)、以及接收并验证注册装置发来的第一数字签名的有效性,并在验证注册装置发来的第一数字签名的有效性通过后,通过预先存储的第二私钥对所述的打分结果进行数字签名得到第二数字签名,并将所述的打分结果、所述的第二数字签名、以及上述接收到的随机身份信息记入所接收到的第一区块的区块头,使所述的第一区块更新为第二区块,将所述的第二区块发送到对应的记录节点。

其中,打分节点验证注册装置发来的第一数字签名的有效性的方法为:打分节点通过其内预先存储的第一公钥验证注册装置发来的第一数字签名,若验证通过,则验证注册装置发来的第一数字签名有效;其中所述的第一公钥与所述的第一私钥配合使用。

其中,打分节点验证记录节点发来的第一区块的有效性的方法为:验证记录节点发来的第一区块的格式是否正确。

步骤s4、记录节点接收并验证各相关打分节点发来的第二区块的有效性,之后统计验证有效的各第三区块对应打分节点的打分分数之和,并将所统计的打分分数之和记入上述接收到的第二区块的区块头,将当前更新的第二区块进行存储,并将该当前更新的第二区块发送给其他记录节点。

其中,所述的其他记录节点接收并存储所述的该当前更新的第二区块。

其中,记录节点验证打分节点发来的第二区块的有效性的方法为:记录节点通过其内预先存入的第二公钥验证打分节点发来的第二区块的区块头中的第二数字签名的有效性,若验证通过,则打分节点发来的第二区块有效;其中所述的第二公钥与所述的第二密钥配合使用。

其中,本发明通过注册装置接收打分人的注册身份信息,并对接收到的打分人的注册身份信息进行合法性和打分资格验证,若验证合格,则对接收到的打分人的注册身份信息进行盲变并通过所述盲变得到打分人的随机身份信息、并对所述的随机身份信息进行数字签名得到第一数字签名,之后将所述的随机身份信息及其对应的第一数字签名发送至相应的打分节点,打分节点及记录节点中所涉及的打分人的身份信息仅仅是盲变后的随机身份信息,可见本发明实现了匿名打分,这在一定程度上打消了打分人打分时的顾虑,从而在一定程度上确保了打分的公正性。

另外,本发明通过打分节点接收并验证记录节点发来的第一区块的有效性、通过打分节点接收并验证注册装置发来的第一数字签名的有效性,以及通过记录节点接收并验证各相关打分节点发来的第二区块的有效性,其中第二区块包括第二数字签名,可见本发明通过两次签名、多次验证,在一定程度上防止了中间作弊,从而在一定程度上确保了打分的有效性。

另外,本发明基于记录节点、一组打分节点、以及与打分节点一对一配设的相应数量的注册装置,可见本发明实现了多节点打分,从而可在一定程度上提高征求公众意见的效率。

另外,参见图2,本发明还提供了一种基于区块链网络的公众打分系统,该系统与上述基于区块链网络的公众打分方法相对应,包括记录节点、注册装置和一组打分节点,每个打分节点一一对应地配设有所述的注册装置,其中:

记录节点,用于将第一区块发送给各打分节点,所述的第一区块包括区块头和被打分人信息;

注册装置,用于接收打分人的注册身份信息,用于对接收到的打分人的注册身份信息进行合法性和打分资格验证,并用于在该验证合格时,对接收到的打分人的注册身份信息进行盲变并通过所述盲变得到打分人的随机身份信息,还用于对所述的随机身份信息进行数字签名得到第一数字签名,并用于将所述的随机身份信息及其对应的第一数字签名发送至相应的打分节点;

打分节点,与所述的记录节点以及相应的注册装置分别相连,用于接收并验证记录节点发来的第一区块的有效性、接收所述打分人的打分结果、以及接收并验证注册装置发来的第一数字签名的有效性,并在验证注册装置发来的第一数字签名的有效性通过后,通过预先存储的第二私钥对所述的打分结果进行数字签名得到第二数字签名,并将所述的打分结果、所述的第二数字签名、以及上述接收到的随机身份信息记入所接收到的第一区块的区块头,使所述的第一区块更新为第二区块,将所述的第二区块发送到对应的记录节点;

所述的记录节点,还用于接收并验证各相关打分节点发来的第二区块的有效性,用于统计验证有效的各第三区块对应打分节点的打分分数之和,用于将所统计的打分分数之和记入上述接收到的第二区块的区块头,用于将当前更新的第二区块进行存储,并用于将该当前更新的第二区块发送给其他记录节点。

其中,所述的其他记录节点接收并存储所述的该当前更新的第二区块。

在本实施方式中,所述记录节点的数量为3个,本领域技术人员在实现本发明时还可依据实际需要使用其他数量个数的记录节点,比如2个、4个、5个等。另外在任意一记录节点发送第一区块给打分节点时,其他记录节点无权发送第一区块。其中,本发明中预先指定一个用于将第一区块发送给各打分节点的记录节点,使用时,通过该指定的记录节点将第一区块发送给各打分节点。

其中,注册装置对所述的随机身份信息进行数字签名得到第一数字签名的方法为:注册装置使用其内预先生成的第一私钥对所述的随机身份信息进行数字签名,得到所述的第一数字签名。另外,注册装置对接收到的打分人的注册身份信息进行合法性和打分资格验证包括:验证注册身份信息的格式是否正确,验证注册身份信息对应的打分人是否具有打分资格。其中所述的验证注册身份信息对应的打分人是否具有打分资格,可以采用现有技术中常用的方法进行实现,比如验证注册身份信息对应的打分人是否位于预先设定的具有打分资格的群体中。

其中,打分节点验证注册装置发来的第一数字签名的有效性的方法为:打分节点通过其内预先存储的第一公钥验证注册装置发来的第一数字签名,若验证通过,则验证注册装置发来的第一数字签名有效;其中所述的第一公钥与所述的第一私钥配合使用。

其中,记录节点验证打分节点发来的第二区块的有效性的方法为:

具体地,在所述的基于区块链网络的公众打分系统中,所述的记录节点包括:

第一发送模块,用于发送所述的第一区块给各打分节点;

第一接收模块,用于接收各打分节点发来的第二区块;

第一验证模块,用于验证通过第一接收模块接收到的各第二区块的有效性;

第一处理模块,用于统计上述第一验证模块验证有效的各第二区块对应的打分节点的打分分数之和,用于将所统计的打分分数之和记入上述接收到的第二区块的区块头,用于将当前更新的第二区块进行存储,并用于将该当前更新的第二区块发送给其他记录节点。

相对应地,第一验证模块用于验证通过第一接收模块接收到的第二区块的有效性的方法为:第一验证模块通过其内预先存入的第二公钥验证第一接收模块接收到的第二区块的区块头中的第二数字签名的有效性,若验证通过,则验证结果为通过第一接收模块接收到的第二区块有效;其中所述的第二公钥与所述的第二密钥配合使用。

具体地,在该所述的基于区块链网络的公众打分系统中,所述的打分节点包括:

第二接收模块,用于接收记录节点发来的第一区块;

第二接收模块,用于接收注册装置发来的随机身份信息和第一数字签名;

打分结果采集模块,用于采集打分人提交的打分结果;

第二验证模块,用于验证第二接收模块接收到的第一区块的有效性;

第三验证模块,用于验证第二接收模块接收到的第一数字签名的有效性;

第二处理模块,用于在第二验证模块验证所述第一区块的有效性通过后,通过预先存储的第二私钥对打分结果采集模块采集的打分结果进行数字签名得到第二数字签名,并用于将所述的打分结果、所述的第二数字签名、以及第二接收模块接收到的随机身份信息记入第二接收模块所接收到的第一区块的区块头,使所述的第一区块更新为第二区块;

第二发送模块,用于将第二处理模块中更新为的第二区块发送到对应的记录节点。第二验证模块,用于验证第二接收模块接收到的第一区块的有效性;

其中,第三验证模块用于验证第二接收模块接收到的第一数字签名的有效性的方法为:第三验证模块通过其内预先存储的第一公钥验证第二接收模块接收到的第一数字签名,若验证通过,则验证结果为第二接收模块接收到的第一数字签名有效;其中所述的第一公钥与所述的第一私钥配合使用。

其中,第二验证模块用于验证第二接收模块接收到的第一区块的有效性的方法为:验证记录节点发来的第一区块的格式是否正确。

鉴于本发明所述的基于区块链网络的公众打分系统与所述的基于区块链网络的公众打分方法相对应,其具有所述基于区块链网络的公众打分方法的全部优点,为简化说明书的结构,在此不再赘述。

需要说明的是,本发明中所涉及的注册装置均为注册设备,还可以为服务器,比如均可以为普通pc。

另外需要说明的是,本发明所述的第一公钥/第一私钥、以及第二公钥/第二私钥分别预先由密钥生成模块生成。具体实现时,所述的密钥生成模块可以集成在任意一注册装置,用于预先生成所述的第一公钥/第一私钥、以及第二公钥/第二私钥。

以上实施方式仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施方式对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施方式技术方案的范围。

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