CN115589298A - 区块链的信息验证方法、装置和系统、设备、介质 - Google Patents

区块链的信息验证方法、装置和系统、设备、介质 Download PDF

Info

Publication number
CN115589298A
CN115589298A CN202211462581.1A CN202211462581A CN115589298A CN 115589298 A CN115589298 A CN 115589298A CN 202211462581 A CN202211462581 A CN 202211462581A CN 115589298 A CN115589298 A CN 115589298A
Authority
CN
China
Prior art keywords
node
verification
information
nodes
list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202211462581.1A
Other languages
English (en)
Other versions
CN115589298B (zh
Inventor
杨鹏
池程
尹子航
朱斯语
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Academy of Information and Communications Technology CAICT
Original Assignee
China Academy of Information and Communications Technology CAICT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Academy of Information and Communications Technology CAICT filed Critical China Academy of Information and Communications Technology CAICT
Priority to CN202211462581.1A priority Critical patent/CN115589298B/zh
Publication of CN115589298A publication Critical patent/CN115589298A/zh
Application granted granted Critical
Publication of CN115589298B publication Critical patent/CN115589298B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions

Abstract

本公开提供了一种区块链的信息验证方法、装置和系统、设备、介质,涉及区块链技术和信息验证技术,验证方需要对待验证信息进行验证时,通过验证端从联盟链的信息节点获取节点列表,根据节点列表中的节点总数和预设要求确定本次参与信息验证的节点的数量m,基于预设方式从节点列表中选取m个验证节点,并从节点列表中获取m个验证节点的公钥和节点地址,分别针对m个验证节点中的各验证节点,利用各验证节点的公钥对待验证信息进行加密,得到加密信息,并基于各验证节点的节点地址,向各验证节点发送信息验证请求,其中包括加密信息,基于m个验证节点反馈的信息验证结果,确定待验证信息是否通过验证,提高了信息验证的效率和可靠程度。

Description

区块链的信息验证方法、装置和系统、设备、介质
技术领域
本公开涉及区块链技术和信息验证技术,尤其是一种区块链的信息验证方法、装置和系统、设备、介质。
背景技术
根据区块链的组织形式,可将区块链分为公有链、私有链和联盟链等。其中联盟链是介于公有链与私有链之间的一种系统形态,它往往由多个中心控制,由若干组织一起合作维护一条区块链,该区块链的使用必须是带有权限的限制访问,相关信息会得到保护,如供应链机构或银行联盟。联盟链的本质是分布式托管记账系统,该系统由组织指定的多个权威节点控制,这些权威节点之间根据共识机制对整个系统进行管理与运作。联盟链可视为部分去中心化,公众可以查阅和交易,但验证交易或发布智能合约需获得联盟许可。
由于区块链的特点,联盟链中的节点也无法保证信息的百分之百正确。因此,为了获得准确的信息服务,相关技术主要通过如下方式进行区块链信息验证:一种方式是,信息验证方加入联盟链进行全量的信息验证,这需要验证信息验证方从联盟链上获取全量信息或经过处理的证据信息,但受区块链本身机制的影响,获取的信息量过大,信息传输压力较大,且处理过程非常复杂,无法满足信息的快速实时性验证;另一种方式是,默认信息验证方申请进行信息验证的联盟链中节点的信息准确可靠,降低了信息严重的可靠性。
发明内容
本公开实施例提供一种区块链的信息验证方法、装置和系统、设备、介质,以至少部分解决相关技术进行区块链信息验证所存在的问题。
根据本公开实施例的一个方面,提供一种区块链的信息验证方法,包括:
验证方需要对待验证信息进行验证时,通过验证端从联盟链的信息节点获取节点列表,所述节点列表中包括所述联盟链中各节点的节点信息,所述节点信息包括:节点标识、公私密钥对中的公钥和节点地址;其中,所述节点标识用于唯一标识所述联盟链中的一个节点;
所述验证端根据所述节点列表中的节点总数和预设要求,确定本次参与信息验证的节点的数量m;其中,m的取值为大于1的整数;
所述验证端基于预设方式从所述节点列表中选取m个节点作为m个验证节点,并从所述节点列表中获取所述m个验证节点的公钥和节点地址;
所述验证端分别针对所述m个验证节点中的各验证节点:利用所述各验证节点的公钥对所述待验证信息进行加密,得到加密信息,并基于所述各验证节点的节点地址,向所述各验证节点发送信息验证请求,所述信息验证请求中包括所述加密信息;
所述各验证节点分别利用所述公私密钥对中的私钥对所述加密信息进行解密,得到所述待验证信息;
所述各验证节点分别对所述待验证信息进行验证,并向所述验证端反馈信息验证结果;
所述验证端基于所述m个验证节点反馈的信息验证结果,确定所述待验证信息是否通过验证。
可选地,在本公开任一实施例的方法中,所述节点列表中还包括所述联盟链的节点故障率;
所述验证端根据所述节点总数和预设要求,确定本次参与信息验证的节点的数量m,包括:
所述验证端根据所述节点总数和所述节点故障率,确定验证成功率满足预设成功率阈值的节点的数量m,作为本次参与信息验证的节点的数量m。
可选地,在本公开任一实施例的方法中,所述验证端基于预设方式从所述节点列表中选取m个节点作为m个验证节点,包括:
所述验证端通过哈希算法,基于所述验证端的本地时间和所述待验证信息生成哈希值;
所述验证端基于所述哈希值和所述节点总数,从所述节点列表中选取m个节点作为m个验证节点。
可选地,在本公开任一实施例的方法中,所述验证端基于预设方式从所述节点列表中选取m个节点作为m个验证节点,包括:
所述验证端根据所述节点列表中的节点信息,按照顺序或倒序的方式,从所述节点列表中选取m个节点作为m个验证节点;或者,
所述验证端根据所述节点列表中的节点信息,从所述节点列表中随机选取m个节点作为m个验证节点;或者,
所述信息节点定期获取所述各节点的工作负荷并对应记录在所述各节点的节点信息中,所述验证端根据所述节点列表中所述各节点的工作负荷,从所述节点列表中获取工作负荷较低的前m个节点作为m个验证节点;或者,
所述各节点在空闲状态时向所述信息节点上报空闲状态信息,所述信息节点在所述节点列表中标记处于空闲状态的节点;所述验证端从所述节点列表中获取m个处于空闲状态的节点作为m个验证节点。
根据本公开实施例的另一个方面,提供一种区块链的信息验证装置,应用于验证端,所述装置包括:
获取模块,用于在验证方需要对待验证信息进行验证时,从联盟链的信息节点获取节点列表,所述节点列表中包括所述联盟链中各节点的节点信息,所述节点信息包括:节点标识、公私密钥对中的公钥和节点地址;其中,所述节点标识用于唯一标识所述联盟链中的一个节点;
第一确定模块,用于根据所述节点列表中的节点总数和预设要求,确定本次参与信息验证的节点的数量m;其中,m的取值为大于1的整数;
选取模块,用于基于预设方式从所述节点列表中选取m个节点作为m个验证节点,并从所述节点列表中获取所述m个验证节点的公钥和节点地址;
请求模块,用于分别针对所述m个验证节点中的各验证节点:利用所述各验证节点的公钥对所述待验证信息进行加密,得到加密信息,并基于所述各验证节点的节点地址,向所述各验证节点发送信息验证请求,所述信息验证请求中包括所述加密信息;
第二确定模块,用于接收所述各验证节点反馈的信息验证结果,并基于所述m个验证节点反馈的信息验证结果,确定所述待验证信息是否通过验证。
可选地,在本公开任一实施例的装置中,所述节点列表中还包括所述联盟链的节点故障率;
所述确定模块,具体用于:根据所述节点总数和所述节点故障率,确定验证成功率满足预设成功率阈值的节点的数量m,作为本次参与信息验证的节点的数量m。
可选地,在本公开任一实施例的装置中,所述选取模块基于预设方式从所述节点列表中选取m个节点作为m个验证节点时,具体用于:
通过哈希算法,基于所述验证端的本地时间和所述待验证信息生成哈希值;基于所述哈希值和所述节点总数,从所述节点列表中选取m个节点作为m个验证节点;或者,
根据所述节点列表中的节点信息,按照顺序或倒序的方式,从所述节点列表中选取m个节点作为m个验证节点;或者,
根据所述节点列表中的节点信息,从所述节点列表中随机选取m个节点作为m个验证节点;或者,
根据所述节点列表中所述各节点的工作负荷,从所述节点列表中获取工作负荷较低的前m个节点作为m个验证节点;其中,所述各节点的工作负荷由所述信息节点定期获取所述各节点的工作负荷并对应记录在所述各节点的节点信息中;或者,
从所述节点列表中获取m个处于空闲状态的节点作为m个验证节点;其中,所述各节点的空闲状态,由所述各节点在空闲状态时向所述信息节点上报空闲状态信息并由所述信息节点在所述节点列表中标记处于空闲状态的节点。
根据本公开实施例的又一个方面,提供一种区块链的信息验证系统,包括联盟链、验证方的验证端、以及信息提供方的信息端;所述联盟链包括信息节点;其中:
所述信息节点,用于提供节点列表,所述节点列表中包括所述联盟链中各节点的节点信息,所述节点信息包括:节点标识、公私密钥对中的公钥和节点地址;其中,所述节点标识用于唯一标识所述联盟链中的一个节点;
所述信息端,用于向所述验证端提供待验证信息;
所述验证端,用于在验证方需要对待验证信息进行验证时,从所述联盟链的信息节点获取所述节点列表;根据所述节点列表中的节点总数和预设要求,确定本次参与信息验证的节点的数量m;其中,m的取值为大于1的整数;基于预设方式从所述节点列表中选取m个节点作为m个验证节点,并从所述节点列表中获取所述m个验证节点的公钥和节点地址;分别针对所述m个验证节点中的各验证节点:利用所述各验证节点的公钥对所述待验证信息进行加密,得到加密信息,并基于所述各验证节点的节点地址,向所述各验证节点发送信息验证请求,所述信息验证请求中包括所述加密信息;基于所述m个验证节点反馈的信息验证结果,确定所述待验证信息是否通过验证;
所述各验证节点,分别用于利用所述公私密钥对中的私钥对所述加密信息进行解密,得到所述待验证信息,对所述待验证信息进行验证,并向所述验证端反馈信息验证结果。
根据本公开实施例的再一个方面,提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现本公开上述任一实施例所述的方法。
根据本公开实施例的再一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现本公开上述任一实施例所述的方法。
基于本公开上述实施例提供的区块链的信息验证方法、装置和系统、设备、介质,构建了包括联盟链、验证方的验证端、以及信息提供方的信息端三方并存的系统架构,在验证方需要对待验证信息进行验证时,通过验证端从联盟链的信息节点获取节点列表,根据节点列表中的节点总数和预设要求,确定本次参与信息验证的节点的数量m,然后,基于预设方式从节点列表中选取m个节点作为m个验证节点,并从节点列表中获取m个验证节点的公钥和节点地址,分别利用各验证节点的公钥对待验证信息进行加密,得到加密信息,并基于各验证节点的节点地址向各验证节点发送信息验证请求;各验证节点分别利用公私密钥对中的私钥对验证请求中的加密信息进行解密,得到待验证信息后,分别验证该待验证信息并向验证端反馈信息验证结果;验证端基于m个验证节点反馈的信息验证结果确定待验证信息是否通过验证。由此,本公开实施例至少具有以下有益技术效果:
在每次需要对待验证信息进行验证时,选取本次参与信息验证的多个验证节点对待验证信息进行验证,赋予了联盟链中节点的验证功能,将信息验证工作转移到联盟链上的节点进行,验证方只需要根据多个验证节点反馈的信息验证结果确定待验证信息是否通过验证,相对于相关技术信息验证方加入联盟链进行全量的信息验证的方式,避免了验证方从联盟链上获取全量信息或经过处理的证据信息存在的获取信息量过大、从而导致信息传输压力较大、处理过程非常复杂、无法满足信息的快速实时性验证的技术问题,大大提高了信息验证的速度,提高了信息验证效率,能够满足信息的快速实时性验证需求;相对于相关技术默认信息验证方申请进行信息验证的联盟链中节点的信息准确可靠的方式,通过多个验证节点反馈的信息验证结果确定待验证信息是否通过验证,提高了信息验证的可靠程度。从而有效平衡了信息验证安全与信息量之间的矛盾,另外强化了联盟链中节点的验证功能属性,提升了联盟链的价值;
另外,在每次需要进行信息验证时,确定本次参与信息验证的多个验证节点,采用随机确定验证节点的方式,可以避免个别故障节点固定作为验证节点影响信息验证结果的准确性,从而进一步提高了信息验证的可靠程度;
另外,信息节点预先通过节点列表存储了联盟链中各节点的公钥,验证方需要进行信息验证时,从节点列表中获取各验证节点的公钥,利用各验证节点的公钥对待验证信息进行加密,将得到的加密信息发送给各验证节点进行验证,各验证节点分别利用公私密钥对中的私钥对加密信息进行解密得到待验证信息后进行验证,提高了待验证信息的安全性;
另外,本公开实施例在保证数据安全的情况下,将信息验证的工作转移到联盟链上节点进行,使得数据的使用和存储验证进一步分离,赋予了节点验证功能,强化了联盟链中节点的验证功能属性,提高了联盟链上节点的数据价值,保证了数据的可用性,提升了联盟链的价值。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同描述一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1为本公开区块链的信息验证系统一个实施例的结构示意图;
图2为本公开区块链的信息验证方法一个实施例的流程图;
图3为本公开区块链的信息验证方法另一个实施例的流程图;
图4为本公开区块链的信息验证装置一个实施例的结构示意图;
图5是本公开一示例性实施例提供的电子设备的结构图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本公开实施例可以应用于计算机系统/服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器等电子设备一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
计算机系统/服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
图1为本公开区块链的信息验证系统一个实施例的结构示意图。如图1所示,本实施例区块链的信息验证系统包括:联盟链、验证方的验证端、以及信息提供方的信息端。其中,联盟链包括多个节点,其中一个节点可以作为信息节点,其他节点可以作为验证节点。其中:
信息节点,用于提供节点列表,该节点列表中包括联盟链中各节点的节点信息,该节点信息例如可以包括但不限于:节点标识(ID)、公私密钥对中的公钥、以及节点地址。其中,各节点的公私密钥对由各节点预先生成,各节点保持公私密钥对中的私钥并将该公私密钥对中的公钥上报给信息节点,由信息节点存储在节点列表中该节点的节点信息中。其中的节点标识用于唯一标识该联盟链中的一个节点,该节点标识例如可以为节点的编号、顺序号、名称等等,或者还可以同时包括编号和名称,或者同时包括顺序号和名称等等,本公开实施例对此不做限制。
信息端,用于向验证端提供待验证信息,即本次需要验证的信息,根据具体应用场景的不同,该需要验证的信息不同。例如,在登录服务中,该待验证信息可以为用户名和密码;在实名认证服务中,该待验证信息可以为手机号码和用户的身份证号码;在实名认证服务中,该待验证信息可以为用户的姓名和银行卡号码,等等,本公开实施例对待验证信息的具体内容不做限制。在具体应用中,该信息端可以是浏览器、应用程序(APP)、客户端等等,可以采集需要验证的信息。例如,在一个具体应用中,信息端可以接收用户输入用户名和密码后发送的登录该信息端的交易请求,该交易请求中包括用户名和密码,信息端可以根据预先设置的验证端的地址,将交易请求中的用户名和密码作为待验证信息发送给验证端,请求验证端对该待验证信息进行验证。或者,在另一个具体应用中,验证端也可以定期从信息端获取待验证信息进行验证。
验证端,用于在验证方需要对待验证信息进行验证时,可以根据预先设置的信息节点的地址,从联盟链的信息节点获取节点列表;根据该节点列表中的节点总数和预设要求,确定本次参与信息验证的节点的数量m,其中,m的取值为大于1的整数;基于预设方式从该节点列表中选取m个节点作为m个验证节点,并从该节点列表中获取m个验证节点的公钥和节点地址;分别针对该m个验证节点中的各验证节点:利用各验证节点的公钥对待验证信息进行加密,得到加密信息,并基于各验证节点的节点地址,向各验证节点发送信息验证请求,该信息验证请求中包括加密信息;基于该m个验证节点反馈的信息验证结果,确定待验证信息是否通过验证。在具体应用中,该验证端可以是各具体应用的服务器、数据中心等等服务端,用于确认信息端发送的信息是否存在、真实、准确。
各验证节点,分别用于利用公私密钥对中的私钥对加密信息进行解密,得到待验证信息,对待验证信息进行验证,并向验证端反馈信息验证结果。
基于本实施例,将信息验证工作转移到联盟链上的节点进行,验证方只需要根据多个验证节点反馈的信息验证结果确定待验证信息是否通过验证,大大提高了信息验证的速度,提高了信息验证效率,能够满足信息的快速实时性验证需求;提高了信息验证的可靠程度。从而有效平衡了信息验证安全与信息量之间的矛盾,另外强化了联盟链中节点的验证功能属性,提升了联盟链的价值;另外,在每次需要进行信息验证时,确定本次参与信息验证的多个验证节点,采用随机确定验证节点的方式,可以避免个别故障节点固定作为验证节点影响信息验证结果的准确性,从而进一步提高了信息验证的可靠程度;另外,信息节点预先通过节点列表存储了联盟链中各节点的公钥,验证方需要进行信息验证时,从节点列表中获取各验证节点的公钥,利用各验证节点的公钥对待验证信息进行加密,将得到的加密信息发送给各验证节点进行验证,各验证节点分别利用公私密钥对中的私钥对加密信息进行解密得到待验证信息后进行验证,提高了待验证信息的安全性;另外,本公开实施例在保证数据安全的情况下,将信息验证的工作转移到联盟链上节点进行,使得数据的使用和存储验证进一步分离,赋予了节点验证功能,强化了联盟链中节点的验证功能属性,提高了联盟链上节点的数据价值,保证了数据的可用性,提升了联盟链的价值。
以下,结合本公开实施例的区块链的信息验证方法、装置,对本公开区块链的信息验证系统进行进一步详细说明。在本公开各实施例中,对具体实现方式的描述都各有侧重,各实施例中的对应内容可以相互参考与结合,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
可选地,在其中一些实现方式中,在执行本实施例区块链的信息验证方法的流程之前,基于预设规则从联盟链中选取一个节点作为信息节点,例如,由联盟链直接指定一个节点作为信息节点;或者,按照预设轮换周期(例如一天、一周、一个月等)依序或随机从联盟链中选取一个节点作为信息节点;或者,按照预设轮换周期(例如一天、一周、一个月等)从联盟链中选取一个故障发生率或出错率最低的节点作为信息节点,具体来说,可以按照预设轮换周期统计联盟链中所有节点的故障发生率或出错率,然后,选取一个故障发生率或出错率最低的节点作为信息节点。
其中,可以通过多种方式确定联盟链中各节点的故障发生率或出错率,例如,在其中一种方式中,由联盟链中的各节点,分别向联盟链中的所有其他节点发送指定信息,根据所有其他节点是否在预设时长内响应、以及针对该指定信息的响应信息是否正确,来确定所有其他节点是否发生故障或是否出错;根据联盟链中的各节点得到的所有其他节点是否发生故障或是否出错的确定结果,统计联盟链中的所有节点的故障发生率或出错率,例如,联盟链中包括1000个节点,针对节点1,其他999个节点中有800个节点确定该节点1发生故障或出错,另外199个节点确定该节点1未发生故障或未出错,则该节点1的故障发生率或出错率为199/999;对于其他节点,也采用相同的方式统计故障发生率或出错率。
本公开实施例中,在一些实现方式中,信息节点一经选定可以固定不变,直至该信息节点发生故障再重新选取新的信息节点替代;或者,在一些实现方式中,也可以按照预设轮换周期选取并更新信息节点;或者,在一些实现方式中,在按照预设轮换周期选取信息节点的方式中,也可以在信息节点发生故障时重新选取新的信息节点替代,本公开实施例对信息节点的具体选取方式和更新方式不做限定。
本公开实施例中,联盟链中的各节点分别作为一个区块链节点,具有区块链节点的相应功能,可用于存储信息,并预先被分配有节点标识和节点地址。各节点可以基于预设公司密钥对的生成算法生成自身使用的公私密钥对并保存。
可选地,在其中一些实现方式中,从联盟链中选取出信息节点后,该信息节点可以向在联盟链中广播该信息节点,联盟链中的其他节点接收到该信息节点的广播后,向信息接点水上报各自的节点信息,该节点信息中包括节点标识、节点地址和公私密钥对中的公钥,由信息节点建立信息列表,存储各节点的节点信息,其中,每个节点的节点信息可以作为一条信息存储。
可选地,在其中一些实现方式中,联盟链中各组织的相关信息,例如用户信息、交易信息等等数据,可以在经过联盟链节点背书后,会以文件的形式分布式地永久记录在联盟链中的各节点所维护的账本中,这些文件称为区块。区块是由包含元数据的区块头和包含具体数据(例如用户信息、交易数据等)的区块主体构成。其中的区块头可以包含该区块的哈希值及该区块所属的父区块的哈希值。其中,背书的过程是对相关信息进行验证并对相关信息的正确性进行签名认证,背书结果用来声明相关信息是否正确。本公开实施例对将相关信息存入联盟链的上链过程不做限制。
图2为本公开区块链的信息验证方法一个实施例的流程图。如图2所示,本实施例区块链的信息验证方法包括:
101,验证方需要对待验证信息进行验证时,通过验证端从联盟链的信息节点获取节点列表。
其中,所述节点列表中包括联盟链中各节点的节点信息,该节点信息包括:节点标识、公私密钥对中的公钥和节点地址。
其中,各节点的公私密钥对由各节点预先生成,各节点保持公私密钥对中的私钥并将该公私密钥对中的公钥上报给信息节点,由信息节点存储在节点列表中该节点的节点信息中。
其中的节点标识用于唯一标识该联盟链中的一个节点,该节点标识例如可以为节点的编号、顺序号、名称等等,或者还可以同时包括编号和名称,或者同时包括顺序号和名称等等,本公开实施例对此不做限制。
102,验证端根据节点列表中的节点总数和预设要求,确定本次参与信息验证的节点的数量m。
其中,m的取值为大于1的整数。m的取值的具体确定方式,可以参见下述实施例的记载。
其中,节点列表中的节点总数,也即该联盟链中的节点总数,可以通过节点列表中节点的编号、顺序号、或者节点列表中节点信息的条数确定,其中,每个节点对应一条节点信息。
103,验证端基于预设方式从节点列表中选取m个节点作为m个验证节点,并从节点列表中获取该m个验证节点的公钥和节点地址。
104,验证端分别针对m个验证节点中的各验证节点:利用各验证节点的公钥对待验证信息进行加密,得到加密信息,并基于各验证节点的节点地址,向各验证节点发送信息验证请求,该信息验证请求中包括上述加密信息。
105,各验证节点接收到信息验证请求后,分别利用各自的公私密钥对中的私钥对信息验证请求中的加密信息进行解密,得到待验证信息。
106,各验证节点分别对待验证信息进行验证,并向验证端反馈信息验证结果。
可选地,在一些具体实现方式中,各验证节点分别将待验证信息与自身所维护的账本中的区块信息进行比对,判断自身所维护的账本中是否存在包含该待验证信息的区块、以及该待验证信息与对应区块中的信息是否一致。若自身所维护的账本中存在包含该待验证信息的区块、且该待验证信息与对应区块中的信息一致,则向验证端反馈验证通过的信息验证结果;否则,若自身所维护的账本中不存在包含该待验证信息的区块、和/或该待验证信息与对应区块中的信息不一致,则向验证端反馈验证未通过的信息验证结果。
107,验证端基于m个验证节点反馈的信息验证结果,确定待验证信息是否通过验证。
可选地,在一些具体实现方式中,验证端基于m个验证节点反馈的信息验证结果,可以采用投票的方式,确定待验证信息是否通过验证。例如,可以在基于m个验证节点反馈的m个信息验证结果中,在验证通过的信息验证结果所在的比例大于预设验证阈值(例如50%)时,确定待验证信息通过验证;否则,在验证通过的信息验证结果所在的比例不大于该预设验证阈值时,确定待验证信息未通过验证。
基于本实施例,将信息验证工作转移到联盟链上的节点进行,验证方只需要根据多个验证节点反馈的信息验证结果确定待验证信息是否通过验证,大大提高了信息验证的速度,提高了信息验证效率,能够满足信息的快速实时性验证需求;提高了信息验证的可靠程度。从而有效平衡了信息验证安全与信息量之间的矛盾,另外强化了联盟链中节点的验证功能属性,提升了联盟链的价值;另外,在每次需要进行信息验证时,确定本次参与信息验证的多个验证节点,采用随机确定验证节点的方式,可以避免个别故障节点固定作为验证节点影响信息验证结果的准确性,从而进一步提高了信息验证的可靠程度;另外,信息节点预先通过节点列表存储了联盟链中各节点的公钥,验证方需要进行信息验证时,从节点列表中获取各验证节点的公钥,利用各验证节点的公钥对待验证信息进行加密,将得到的加密信息发送给各验证节点进行验证,各验证节点分别利用公私密钥对中的私钥对加密信息进行解密得到待验证信息后进行验证,提高了待验证信息的安全性;另外,本公开实施例在保证数据安全的情况下,将信息验证的工作转移到联盟链上节点进行,使得数据的使用和存储验证进一步分离,赋予了节点验证功能,强化了联盟链中节点的验证功能属性,提高了联盟链上节点的数据价值,保证了数据的可用性,提升了联盟链的价值。
可选地,在其中一些实现方式中,所述节点列表中还可包括联盟链的节点故障率。相应地,在操作102中,验证端具体可以根据节点总数和节点故障率,确定验证成功率满足预设成功率阈值的节点的数量m,作为本次参与信息验证的节点的数量m。
可选地,在本公开实施例中,联盟链的节点故障率用于表征该联盟链的可靠程度,该节点故障率由信息节点维护,即保存在信息节点中并定期更新。该联盟链的节点故障率例如可以通过但不限于以下任一方式预先获取联盟链的节点故障率:
方式一:信息节点按照预设确定周期(例如一周、一个月等),向联盟链中出该信息节点外的其他所有节点分别发送发送指定信息,根据其他所有节点中各节点是否在预设时长内响应、以及针对该指定信息的响应信息是否正确,例如,指定信息为区块的哈希值时,各节点是否在预设时长内响应、以及反馈的该哈希值对应的区块的区块主体中信息是否正确、或者其他所有节点反馈的该哈希值对应的区块的区块主体中信息是否一致,来确定各节点是否发送故障,若一个节点在预设时长内响应、且针对该指定信息的响应信息正确,认为该节点未发生故障;否则,若一个节点在预设时长内响应、和/或针对该指定信息的响应信息正确,认为该节点发生故障。统计发生故障的节点相对于该联盟链中节点总数的比例,作为该联盟链的节点故障率;
方式二:由人工按照预设确定周期(例如一周、一个月等)测试联盟链中出该信息节点外的其他所有节点是否发生故障,统计发生故障的节点相对于该联盟链中节点总数的比例,作为该联盟链的节点故障率。其中,测试联盟链中出该信息节点外的其他所有节点是否发生故障的具体标准可以根据实际需求设定,本公开实施例不做限制。
由于联盟链的节点故障率是整个联盟链中所有节点同期发生故障的总体概率,该节点故障率的具体数值不会随时间出现过大波动,可以设置较长的预设确定周期来确定联盟链的节点故障率并更新,以节省网络资源和数据资源。
例如,在一种具体实现中,验证端可以通过如下方式,根据节点总数和节点故障率确定验证成功率满足预设成功率阈值的节点的数量m:
根据如下验证成功率P的计算公式(1):
Figure 141502DEST_PATH_IMAGE001
公式(1)
公式(1)中,P表示验证成功率,n表示联盟链中的节点总数(即节点列表中的节点总数),i表示联盟链中的n个节点中验证通过的节点数,i依次取值为[0,n/2]中的各整数;s表示联盟链的节点故障率。
在实现本公开的过程中,本发明人通过研究发现,当P≥99.7%时,对信息验证的最终验证结果是可信的,由此,基于上述公式(1),计算出满足P≥99.7%这一条件的i的取值,作为本次参与信息验证的节点的数量m的取值,从而获知本次参与信息验证的节点的数量m。
基于本实施例,可以根据信息验证结果的准确性要求,准确确定该联盟链中参与信息验证的验证节点的数量,选取该数量的验证节点参与本次信息验证,能够有效保障信息验证结果的可靠性。
可选地,在其中一些实现方式中,确定出本次参与信息验证的节点的数量m后,在操作103中,验证端具体可以通过哈希算法,基于该验证端的本地时间和待验证信息生成哈希值,并基于该哈希值和节点总数,从节点列表中选取m个节点作为m个验证节点。
具体来说,基于该验证端的本地时间和待验证信息生成哈希值,可以表示为Hx=Hash(time,message),其中,Hx表示生成的哈希值;Hash()表示哈希算法,可以采用任意哈希算法,例如可以采用散列函数算法标准2(Secure Hash Algorithm 2,SHA-2)、SHA-1、消息摘要5(Message Digest 5,MD5)、MD4等等,本公开实施例对此不做限制;time表示验证端的本地时间;message表示待验证信息。
对于任意长度的数据,通过哈希算法都会产生一个预设长度的哈希值,称作消息摘要。例如,通过哈希算法SHA256会产生一个256位的哈希值,则通过哈希算法SHA256,基于该验证端的本地时间和待验证信息生成的是一个长度为256位的哈希值。
在一种具体实现中,如果节点标识通过二进制表示,则获取可以支持联盟链中的节点总数n的二进制的最高位数,从生成的哈希值Hx中,按照该二进制的最高位数获取节点标识,依次获取出m个节点标识,并从节点列表中选取该m个节点标识对应的节点作为验证节点。
例如,在一个具体示例中,假设节点总数n为1000,由于210=1024,则可以支持该节点总数n的二进制的最高位数为10,即需要通过10位二进制数才能表示出1000个节点的节点标识,可以从生成的256位的哈希值Hx中,每10位作为一个节点标识,依次选取出m个节点标识,并从节点列表中选取该m个节点标识对应的节点作为验证节点。假设m的取值为6,则可以从生成的256位的哈希值Hx中,依次选取第1-10位、第11-20位、第21-30位、第31-40位、第41-50位、第51-60位作为6个验证节点的节点标识,据此从节点列表中选取该6个节点标识对应的6个节点作为验证节点。如果从生成的256位的哈希值Hx中选取出的第p个节点标识与本次信息验证中已选取出的第q个节点标识相同,则放弃该第p个节点标识,继续选取下一个节点标识,直至针对本次信息验证选取出节点标识不同的m个节点标识,其中,q、p分别为大于0且小于m的正整数。
进一步可选地,如果依据上述节点标识的选取方式,生成的哈希值Hx不能满足验证节点的数量m的选取需求,即按照每10位作为一个节点标识,无法选取出m个节点标识,例如,m的取值为30时,从生成的256位的哈希值Hx中,按照每10位作为一个节点标识,无法选取出30个节点标识,则可以按照循环移位的方式继续选择节点标识,直至选取出m个不同的节点标识。例如,在该具体示例中,从生成的256位的哈希值Hx中,按照每10位作为一个节点标识,可以选取出25个节点标识,则按照循环移位的方式,在下一轮选取中,从Hx中的第2位开始,依次从Hx中选取第2-11位、第12-21位、第22-31位、第32-41位、第42-51位作为第26-30个验证节点的标识;如果m的取值过大,例如取值为60,从Hx中的第2位开始按照每10位作为一个节点标识的方式依然无法选取出m个节点标识,则按照循环移位的方式,继续下一轮选取,从Hx中的第3位开始,按照每10位作为一个节点标识的方式从生成的256位的哈希值Hx中继续选取节点标识,等等,以此推类,直至选取出m个不同的节点标识。
在实际应用中,若通过哈希算法会产生的哈希值与节点列表中节点标识的采用的进制不同,例如,若通过哈希算法会产生的哈希值采用十六进制表示,节点列表中节点标识采用二进制标识,则可以先将哈希值的采用的进制转换为节点列表中节点标识采用的进制,然后,再从生成的哈希值Hx中按照与节点标识等长的位数依次获取节点标识,依次获取出m个节点标识,并从节点列表中选取该m个节点标识对应的节点作为验证节点。
基于本实施例,可以基于验证端的本地时间和待验证信息生成的哈希值,与节点总数相结合的方式,随机选取参与本次信息验证的验证节点,由于验证端的本地时间不固定、待验证信息的不同,会导致每次生成的哈希值不同,从而每次选取出的验证节点也不同或者至少部分不同,能够保证验证节点的随机性,从而避免个别故障节点或者作恶节点固定作为验证节点影响信息验证结果的准确性,进一步提高了信息验证的可靠程度。
或者,在另一些实现方式中,在操作103中,验证端也可以随机采用如下任一方式作为预设方式,从节点列表中选取m个节点作为m个验证节点:
方式一:验证端根据节点列表中的节点信息,按照顺序或倒序的方式,从节点列表中选取m个节点作为m个验证节点;或者,
方式二:验证端根据节点列表中的节点信息,从节点列表中随机选取m个节点作为m个验证节点;或者,
方式三:信息节点定期获取各节点的工作负荷并对应记录在所述各节点的节点信息中,验证端根据节点列表中各节点的工作负荷,从节点列表中获取工作负荷较低的前m个节点作为m个验证节点;或者,
方式四:各节点在空闲状态时向信息节点上报空闲状态信息,信息节点在节点列表中标记处于空闲状态的节点;验证端从节点列表中获取m个处于空闲状态的节点作为m个验证节点;或者,
方式五:采用上述方式一至方式四中的任意多种方式的组合,从节点列表中选取m个节点作为m个验证节点,例如,采用方式二从节点列表中随机选取m-k个节点,采用方式四从节点列表中随机选取k个节点,以该m-k个节点和k个节点一起作为m个验证节点,等等。
基于本实施例,验证端也可以随机采用预设方式从节点列表中选取m个节点作为m个验证节点,可以保证每次参与信息验证的多个验证节点不同或不完全相同,可以避免个别故障节点或者作恶节点固定作为验证节点影响信息验证结果的准确性,从而进一步提高了信息验证的可靠程度。
图3为本公开区块链的信息验证方法另一个实施例的流程图。如图3所示,本实施例区块链的信息验证方法包括:
201,验证方需要对待验证信息进行验证时,通过验证端从联盟链的信息节点获取节点列表。
其中,所述节点列表中包括联盟链的节点故障率和该联盟链中各节点的节点信息。
202,验证端根据节点总数和节点故障率,确定验证成功率满足预设成功率阈值的节点的数量m,作为本次参与信息验证的节点的数量m。
203,验证端通过哈希算法,基于该验证端的本地时间和待验证信息生成哈希值,并基于该哈希值和节点总数,从节点列表中选取m个节点作为m个验证节点。
204,验证端从节点列表中获取该m个验证节点的公钥和节点地址。
205,验证端分别针对m个验证节点中的各验证节点:利用各验证节点的公钥对待验证信息进行加密,得到加密信息,并基于各验证节点的节点地址,向各验证节点发送信息验证请求,该信息验证请求中包括上述加密信息。
206,各验证节点接收到信息验证请求后,分别利用各自的公私密钥对中的私钥对信息验证请求中的加密信息进行解密,得到待验证信息。
207,各验证节点分别对待验证信息进行验证,并向验证端反馈信息验证结果。
208,验证端基于m个验证节点反馈的信息验证结果,确定待验证信息是否通过验证。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本公开所必须的。
本公开实施例提供的任一种区块链的信息验证方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:终端设备和服务器等。或者,本公开实施例提供的任一种区块链的信息验证方法可以由处理器执行,如处理器通过调用存储器存储的相应指令来执行本公开实施例提及的任一区块链的信息验证方法。下文不再赘述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图4为本公开区块链的信息验证装置一个实施例的结构示意图。本实施例区块链的信息验证装置应用于验证端,可用于实现上述各区块链的信息验证方法实施例中验证端的相应功能。如图4所示,该实施例区块链的信息验证装置包括:获取模块301,确定模块302,选取模块303,请求模块304和确定模块305。其中:
获取模块301,用于在验证方需要对待验证信息进行验证时,从联盟链的信息节点获取节点列表,所述节点列表中包括所述联盟链中各节点的节点信息,所述节点信息包括:节点标识、公私密钥对中的公钥和节点地址;其中,所述节点标识用于唯一标识所述联盟链中的一个节点。
确定模块302,用于根据节点列表中的节点总数和预设要求,确定本次参与信息验证的节点的数量m;其中,m的取值为大于1的整数。
选取模块303,用于基于预设方式从节点列表中选取m个节点作为m个验证节点,并从节点列表中获取m个验证节点的公钥和节点地址。
请求模块304,用于分别针对m个验证节点中的各验证节点:利用各验证节点的公钥对所述待验证信息进行加密,得到加密信息,并基于各验证节点的节点地址,向各验证节点发送信息验证请求,所述信息验证请求中包括所述加密信息;
第二确定模块305,用于接收各验证节点反馈的信息验证结果,并基于m个验证节点反馈的信息验证结果,确定待验证信息是否通过验证。
基于本实施例,将信息验证工作转移到联盟链上的节点进行,验证方只需要根据多个验证节点反馈的信息验证结果确定待验证信息是否通过验证,大大提高了信息验证的速度,提高了信息验证效率,能够满足信息的快速实时性验证需求;提高了信息验证的可靠程度。从而有效平衡了信息验证安全与信息量之间的矛盾,另外强化了联盟链中节点的验证功能属性,提升了联盟链的价值;另外,在每次需要进行信息验证时,确定本次参与信息验证的多个验证节点,采用随机确定验证节点的方式,可以避免个别故障节点固定作为验证节点影响信息验证结果的准确性,从而进一步提高了信息验证的可靠程度;另外,信息节点预先通过节点列表存储了联盟链中各节点的公钥,验证方需要进行信息验证时,从节点列表中获取各验证节点的公钥,利用各验证节点的公钥对待验证信息进行加密,将得到的加密信息发送给各验证节点进行验证,各验证节点分别利用公私密钥对中的私钥对加密信息进行解密得到待验证信息后进行验证,提高了待验证信息的安全性;另外,本公开实施例在保证数据安全的情况下,将信息验证的工作转移到联盟链上节点进行,使得数据的使用和存储验证进一步分离,赋予了节点验证功能,强化了联盟链中节点的验证功能属性,提高了联盟链上节点的数据价值,保证了数据的可用性,提升了联盟链的价值。
可选地,在其中一些实现方式中,所述节点列表中还包括所述联盟链的节点故障率。相应地,本实施例中,第一确定模块302,具体用于根据节点总数和节点故障率,确定验证成功率满足预设成功率阈值的节点的数量m,作为本次参与信息验证的节点的数量m。
可选地,在其中一些实现方式中,选取模块303基于预设方式从节点列表中选取m个节点作为m个验证节点时,具体用于:通过哈希算法,基于验证端的本地时间和待验证信息生成哈希值;基于该哈希值和节点总数,从节点列表中选取m个节点作为m个验证节点;或者,根据节点列表中的节点信息,按照顺序或倒序的方式,从节点列表中选取m个节点作为m个验证节点;或者,根据所述节点列表中的节点信息,从节点列表中随机选取m个节点作为m个验证节点;或者,根据节点列表中所述各节点的工作负荷,从节点列表中获取工作负荷较低的前m个节点作为m个验证节点,其中,各节点的工作负荷由信息节点定期获取各节点的工作负荷并对应记录在各节点的节点信息中;或者,从节点列表中获取m个处于空闲状态的节点作为m个验证节点,其中,各节点的空闲状态,由各节点在空闲状态时向所述信息节点上报空闲状态信息并由信息节点在所述节点列表中标记处于空闲状态的节点。
另外,本公开实施例还提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现本公开上述任一实施例所述的区块链的信息验证方法。
图5为本公开电子设备一个应用实施例的结构示意图。下面,参考图5来描述根据本公开实施例的电子设备。该电子设备可以是第一设备和第二设备中的任一个或两者、或与它们独立的单机设备,该单机设备可以与第一设备和第二设备进行通信,以从它们接收所采集到的输入信号。
如图5所示,电子设备包括一个或多个处理器401和存储器402。
处理器401可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备中的其他组件以执行期望的功能。
存储器402可以存储一个或多个计算机程序产品,所述存储器402可以包括各种形式的计算机可读存储介质,例如易失性存储和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序产品,处理器401可以运行所述计算机程序产品,以实现上文所述的本公开的各个实施例的区块链的信息验证方法以及/或者其他期望的功能。
在一个示例中,电子装置还可以包括:输入装置403和输出装置404,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
此外,该输入装置403还可以包括例如键盘、鼠标等等。
该输出装置404可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置404可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出装置404等等。
当然,为了简化,图5中仅示出了该电子设备中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备还可以包括任何其他适当的组件。
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述部分中描述的根据本公开各种实施例的区块链的信息验证方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述部分中描述的根据本公开各种实施例的区块链的信息验证方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

Claims (10)

1.一种区块链的信息验证方法,其特征在于,包括:
验证方需要对待验证信息进行验证时,通过验证端从联盟链的信息节点获取节点列表,所述节点列表中包括所述联盟链中各节点的节点信息,所述节点信息包括:节点标识、公私密钥对中的公钥和节点地址;其中,所述节点标识用于唯一标识所述联盟链中的一个节点;
所述验证端根据所述节点列表中的节点总数和预设要求,确定本次参与信息验证的节点的数量m;其中,m的取值为大于1的整数;
所述验证端基于预设方式从所述节点列表中选取m个节点作为m个验证节点,并从所述节点列表中获取所述m个验证节点的公钥和节点地址;
所述验证端分别针对所述m个验证节点中的各验证节点:利用所述各验证节点的公钥对所述待验证信息进行加密,得到加密信息,并基于所述各验证节点的节点地址,向所述各验证节点发送信息验证请求,所述信息验证请求中包括所述加密信息;
所述各验证节点分别利用所述公私密钥对中的私钥对所述加密信息进行解密,得到所述待验证信息;
所述各验证节点分别对所述待验证信息进行验证,并向所述验证端反馈信息验证结果;
所述验证端基于所述m个验证节点反馈的信息验证结果,确定所述待验证信息是否通过验证。
2.根据权利要求1所述的方法,其特征在于,所述节点列表中还包括所述联盟链的节点故障率;
所述验证端根据所述节点总数和预设要求,确定本次参与信息验证的节点的数量m,包括:
所述验证端根据所述节点总数和所述节点故障率,确定验证成功率满足预设成功率阈值的节点的数量m,作为本次参与信息验证的节点的数量m。
3.根据权利要求1或2所述的方法,其特征在于,所述验证端基于预设方式从所述节点列表中选取m个节点作为m个验证节点,包括:
所述验证端通过哈希算法,基于所述验证端的本地时间和所述待验证信息生成哈希值;
所述验证端基于所述哈希值和所述节点总数,从所述节点列表中选取m个节点作为m个验证节点。
4.根据权利要求1或2所述的方法,其特征在于,所述验证端基于预设方式从所述节点列表中选取m个节点作为m个验证节点,包括:
所述验证端根据所述节点列表中的节点信息,按照顺序或倒序的方式,从所述节点列表中选取m个节点作为m个验证节点;或者,
所述验证端根据所述节点列表中的节点信息,从所述节点列表中随机选取m个节点作为m个验证节点;或者,
所述信息节点定期获取所述各节点的工作负荷并对应记录在所述各节点的节点信息中,所述验证端根据所述节点列表中所述各节点的工作负荷,从所述节点列表中获取工作负荷较低的前m个节点作为m个验证节点;或者,
所述各节点在空闲状态时向所述信息节点上报空闲状态信息,所述信息节点在所述节点列表中标记处于空闲状态的节点;所述验证端从所述节点列表中获取m个处于空闲状态的节点作为m个验证节点。
5.一种区块链的信息验证装置,其特征在于,应用于验证端,所述装置包括:
获取模块,用于在验证方需要对待验证信息进行验证时,从联盟链的信息节点获取节点列表,所述节点列表中包括所述联盟链中各节点的节点信息,所述节点信息包括:节点标识、公私密钥对中的公钥和节点地址;其中,所述节点标识用于唯一标识所述联盟链中的一个节点;
第一确定模块,用于根据所述节点列表中的节点总数和预设要求,确定本次参与信息验证的节点的数量m;其中,m的取值为大于1的整数;
选取模块,用于基于预设方式从所述节点列表中选取m个节点作为m个验证节点,并从所述节点列表中获取所述m个验证节点的公钥和节点地址;
请求模块,用于分别针对所述m个验证节点中的各验证节点:利用所述各验证节点的公钥对所述待验证信息进行加密,得到加密信息,并基于所述各验证节点的节点地址,向所述各验证节点发送信息验证请求,所述信息验证请求中包括所述加密信息;
第二确定模块,用于接收所述各验证节点反馈的信息验证结果,并基于所述m个验证节点反馈的信息验证结果,确定所述待验证信息是否通过验证。
6.根据权利要求5所述的装置,其特征在于,所述节点列表中还包括所述联盟链的节点故障率;
所述确定模块,具体用于:根据所述节点总数和所述节点故障率,确定验证成功率满足预设成功率阈值的节点的数量m,作为本次参与信息验证的节点的数量m。
7.根据权利要求5或6所述的装置,其特征在于,所述选取模块基于预设方式从所述节点列表中选取m个节点作为m个验证节点时,具体用于:
通过哈希算法,基于所述验证端的本地时间和所述待验证信息生成哈希值;基于所述哈希值和所述节点总数,从所述节点列表中选取m个节点作为m个验证节点;或者,
根据所述节点列表中的节点信息,按照顺序或倒序的方式,从所述节点列表中选取m个节点作为m个验证节点;或者,
根据所述节点列表中的节点信息,从所述节点列表中随机选取m个节点作为m个验证节点;或者,
根据所述节点列表中所述各节点的工作负荷,从所述节点列表中获取工作负荷较低的前m个节点作为m个验证节点;其中,所述各节点的工作负荷由所述信息节点定期获取所述各节点的工作负荷并对应记录在所述各节点的节点信息中;或者,
从所述节点列表中获取m个处于空闲状态的节点作为m个验证节点;其中,所述各节点的空闲状态,由所述各节点在空闲状态时向所述信息节点上报空闲状态信息并由所述信息节点在所述节点列表中标记处于空闲状态的节点。
8.一种区块链的信息验证系统,其特征在于,包括联盟链、验证方的验证端、以及信息提供方的信息端;所述联盟链包括信息节点;其中:
所述信息节点,用于提供节点列表,所述节点列表中包括所述联盟链中各节点的节点信息,所述节点信息包括:节点标识、公私密钥对中的公钥和节点地址;其中,所述节点标识用于唯一标识所述联盟链中的一个节点;
所述信息端,用于向所述验证端提供待验证信息;
所述验证端,用于在验证方需要对待验证信息进行验证时,从所述联盟链的信息节点获取所述节点列表;根据所述节点列表中的节点总数和预设要求,确定本次参与信息验证的节点的数量m;其中,m的取值为大于1的整数;基于预设方式从所述节点列表中选取m个节点作为m个验证节点,并从所述节点列表中获取所述m个验证节点的公钥和节点地址;分别针对所述m个验证节点中的各验证节点:利用所述各验证节点的公钥对所述待验证信息进行加密,得到加密信息,并基于所述各验证节点的节点地址,向所述各验证节点发送信息验证请求,所述信息验证请求中包括所述加密信息;基于所述m个验证节点反馈的信息验证结果,确定所述待验证信息是否通过验证;
所述各验证节点,分别用于利用所述公私密钥对中的私钥对所述加密信息进行解密,得到所述待验证信息,对所述待验证信息进行验证,并向所述验证端反馈信息验证结果。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现上述权利要求1-4任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时,实现上述权利要求1-4任一所述的方法。
CN202211462581.1A 2022-11-22 2022-11-22 区块链的信息验证方法、装置和系统、设备、介质 Active CN115589298B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211462581.1A CN115589298B (zh) 2022-11-22 2022-11-22 区块链的信息验证方法、装置和系统、设备、介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211462581.1A CN115589298B (zh) 2022-11-22 2022-11-22 区块链的信息验证方法、装置和系统、设备、介质

Publications (2)

Publication Number Publication Date
CN115589298A true CN115589298A (zh) 2023-01-10
CN115589298B CN115589298B (zh) 2023-03-10

Family

ID=84783018

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211462581.1A Active CN115589298B (zh) 2022-11-22 2022-11-22 区块链的信息验证方法、装置和系统、设备、介质

Country Status (1)

Country Link
CN (1) CN115589298B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116090020A (zh) * 2023-04-13 2023-05-09 中国人民解放军海军潜艇学院 基于区块链的信息存储方法和装置、电子设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019052286A1 (zh) * 2017-09-12 2019-03-21 广州广电运通金融电子股份有限公司 基于区块链的用户身份验证方法、装置及系统
CN111107103A (zh) * 2019-12-31 2020-05-05 南京可信区块链与算法经济研究院有限公司 一种联盟链的性能维持方法、系统及存储介质
US20200259643A1 (en) * 2019-02-08 2020-08-13 Talenting Inc. Systems and methods for biometric key generation in data access control, data verification, and path selection in block chain-linked workforce data management
CN114465714A (zh) * 2021-12-23 2022-05-10 杭州溪塔科技有限公司 联盟链中的节点配置方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019052286A1 (zh) * 2017-09-12 2019-03-21 广州广电运通金融电子股份有限公司 基于区块链的用户身份验证方法、装置及系统
US20200259643A1 (en) * 2019-02-08 2020-08-13 Talenting Inc. Systems and methods for biometric key generation in data access control, data verification, and path selection in block chain-linked workforce data management
CN111107103A (zh) * 2019-12-31 2020-05-05 南京可信区块链与算法经济研究院有限公司 一种联盟链的性能维持方法、系统及存储介质
CN114465714A (zh) * 2021-12-23 2022-05-10 杭州溪塔科技有限公司 联盟链中的节点配置方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
姚前等: "区块链系统中身份管理技术研究综述", 《软件学报》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116090020A (zh) * 2023-04-13 2023-05-09 中国人民解放军海军潜艇学院 基于区块链的信息存储方法和装置、电子设备和存储介质
CN116090020B (zh) * 2023-04-13 2023-06-30 中国人民解放军海军潜艇学院 基于区块链的信息存储方法和装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN115589298B (zh) 2023-03-10

Similar Documents

Publication Publication Date Title
US11429738B2 (en) Blockchain endorsement with approximate hash verification
US11539527B2 (en) Peer node recovery via approximate hash verification
US11570002B2 (en) Reduced-step blockchain verification of media file
US20230275743A1 (en) Committing data to blockchain based on approximate hash verification
US11689356B2 (en) Approximate hash verification of unused blockchain output
US20200382309A1 (en) Approximate hash verification for blockchain
KR20150036104A (ko) 로그인 검증의 방법, 클라이언트, 서버 및 시스템
CN109657492B (zh) 数据库管理方法、介质及电子设备
US20200213331A1 (en) Data service system
US20230237437A1 (en) Apparatuses and methods for determining and processing dormant user data in a job resume immutable sequential listing
CN111131336A (zh) 多方授权场景下的资源访问方法、装置、设备及存储介质
CN115589298B (zh) 区块链的信息验证方法、装置和系统、设备、介质
CN111339551B (zh) 数据的验证方法及相关装置、设备
CN112818056A (zh) 一种区块链的日志安全共享方法、系统与装置
CN111367923A (zh) 数据处理方法、装置、节点设备及存储介质
CN114782045A (zh) 跨链非事务性写入方法和装置、存储介质、电子设备
CN115664861B (zh) 基于区块链的身份信息验证方法和装置、设备和介质
CN112994882A (zh) 基于区块链的鉴权方法、装置、介质及设备
US10177918B2 (en) User permission check system
CN111526122B (zh) 数据监控的方法、装置、设备及介质
CN116405319B (zh) 基于区块链的碳金融凭证共享方法和装置、设备和介质
CN113595240B (zh) 电力数据的检测方法、装置、设备及存储介质
CN114741324B (zh) 区块链稳定性的测试方法和装置、电子设备和存储介质
CN114741323B (zh) 区块链性能的测试方法和装置、电子设备和存储介质
CN111212042B (zh) 数据传输方法、装置和系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant