本公开涉及通信技术领域,具体地,涉及一种基于区块链的信息发布和获取方法、装置及区块链节点。
背景技术:
区块链技术是一种分布式、去中心、去信任的网络数据共识存储技术,其基于独特的区块(Block)生成机制和P2P(Point to Point,点对点)网络通信机制实现了分布式计算的同步性问题。
区块链具有去中心化、可追溯的特点,并具有去信任化、防篡改的安全特性。如何充分利用区块链的特点和安全特性,以进行安全可靠的信息分享,是需要解决的技术问题。
技术实现要素:
为克服相关技术中存在的问题,本公开提供一种基于区块链的信息发布和获取方法、装置及区块链节点,能够充分利用区块链的特点和安全特性,提高信息分享的安全可靠性。
根据本公开实施例的第一方面,提供一种基于区块链的信息发布方法,所述方法包括:
对第一区块链账号的待发布信息进行哈希运算,得到所述待发布信息的哈希值;
在所述待发布信息包括保密信息时,生成信息加密密钥;
根据所述第一区块链账号的第一公钥,对所述信息加密密钥进行非对称加密,得到所述第一公钥对应的信息加密密钥密文;
根据所述信息加密密钥,对所述保密信息进行对称加密,得到保密信息密文;
将所述第一公钥、所述待发布信息的哈希值、所述第一公钥对应的信息加密密钥密文以及所述保密信息密文分别添加到发布信息数据结构;
将所述发布信息数据结构存储在区块链上。
根据本公开实施例的第二方面,提供一种基于区块链的信息获取方法,所述方法包括:
检测区块链上的发布信息数据结构中的保密信息密文;
将针对所述待发布信息的哈希值的保密信息获取请求存储到所述区块链上,所述保密信息获取请求携带第二区块链账号的第二公钥;
检测所述区块链上是否存在许可保密信息应答,所述许可保密信息应答携带所述第二公钥对应的信息加密密钥密文;
根据所述第二区块链账号的第二私钥,对所述第二公钥对应的信息加密密钥密文解密,得到所述信息加密密钥;
根据所述信息加密密钥,对所述保密信息密文进行解密,得到保密信息。
根据本公开实施例的第三方面,提供一种基于区块链的信息发布装置,所述装置包括:
哈希运算模块,用于对第一区块链账号的待发布信息进行哈希运算,得到所述待发布信息的哈希值;
生成模块,用于在所述待发布信息包括保密信息时,生成信息加密密钥;
第一非对称加密模块,用于根据所述第一区块链账号的第一公钥,对所述信息加密密钥进行非对称加密,得到所述第一公钥对应的信息加密密钥密文;
对称加密模块,用于根据所述信息加密密钥,对所述保密信息进行对称加密,得到保密信息密文;
第一添加模块,用于将所述第一公钥、所述待发布信息的哈希值、所述第一公钥对应的信息加密密钥密文以及所述保密信息密文分别添加到发布信息数据结构;
第一存储模块,用于将所述发布信息数据结构存储在区块链上。
根据本公开实施例的第四方面,提供一种基于区块链的信息获取装置,所述装置包括:
第一检测模块,用于检测区块链上的发布信息数据结构中的保密信息密文;
存储模块,用于将针对所述待发布信息的哈希值的保密信息获取请求存储到所述区块链上,所述保密信息获取请求携带第二区块链账号的第二公钥;
第二检测模块,用于检测所述区块链上是否存在许可保密信息应答,所述许可保密信息应答携带所述第二公钥对应的信息加密密钥密文;
第一解密模块,用于根据所述第二区块链账号的第二私钥,对所述第二公钥对应的信息加密密钥密文解密,得到所述信息加密密钥;
第二解密模块,用于根据所述信息加密密钥,对所述保密信息密文进行解密,得到保密信息。
根据本公开实施例的第五方面,提供一种非临时性计算机可读存储介质,其特征在于,所述非临时性计算机可读存储介质中包括一个或多个程序,所述一个或多个程序用于执行上述第一方面和第二方面中任一项所述的方法的代码部分。
根据本公开实施例的第六方面,提供一种区块链节点,包括:
第五方面所述的非临时性计算机可读存储介质;以及
一个或者多个处理器,用于执行所述非临时性计算机可读存储介质中的程序。
本公开的实施例提供的技术方案可以包括以下有益效果:
本公开实施例中,信息提供方可以通过第一区块链账号将待发布信息待发布信息的哈希值、第一区块链账号的公钥、第一公钥对应的信息加密密钥密文以及保密信息密文分别添加到发布信息数据结构,然后将发布信息数据结构存储到区块链上,以完成信息发布。信息需求方可以通过第二区块链账号从该区块链上的获取已发布的信息。以此实现信息提供方与信息需求方之间的信息分享。由于将发布信息数据结构存储到区块链上,所以能够充分利用区块链的特点和安全特性,提高信息分享的安全可靠性。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是本公开实施例涉及的信息分享系统的示意图;
图2为本公开实施例提供的基于区块链的信息发布方法的流程图;
图3为本公开实施例提供的基于区块链的信息获取方法的流程图;
图4为本公开实施例提供的基于区块链的信息发布装置的示意图;
图5为本公开实施例提供的基于区块链的信息获取装置的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
首先对本公开实施例涉及的信息分享系统进行说明。图1是本公开实施例涉及的信息分享系统的示意图。如图1所示,该系统包括:信息提供方、信息需求方和区块链组成。信息提供方提供待发布信息,并将发布信息数据结构存储到区块链上。信息需求方监控区块链上的信息发布情况,并从区块链中获取自己所需的信息。
其中,信息提供方的区块链账号为第一区块链账号,第一区块链账号的公钥为第一公钥(简记为PubKeyA),第一区块链账号的私钥为第一私钥(简记为PriKeyA);信息需求方的区块链账号为第二区块链账号,第二区块链账号的公钥为第二公钥(简记为PubKeyB),第二区块链账号的私钥为第二私钥(简记为PriKeyB)。
首先,由信息提供方通过第一区块链账号进行信息发布。信息发布方可采用本公开实施例提供的基于区块链的信息发布方法实现信息发布。图2为本公开实施例提供的基于区块链的信息发布方法的流程图,如图2所示,该方法包括以下步骤:
步骤S11:对第一区块链账号的待发布信息进行哈希运算,得到所述待发布信息的哈希值;
步骤S12:在所述待发布信息包括保密信息时,生成信息加密密钥;
步骤S13:根据所述第一区块链账号的第一公钥,对所述信息加密密钥进行非对称加密,得到所述第一公钥对应的信息加密密钥密文;
步骤S14:根据所述信息加密密钥,对所述保密信息进行对称加密,得到保密信息密文;
步骤S15:将所述第一公钥、所述待发布信息的哈希值、所述第一公钥对应的信息加密密钥密文以及所述保密信息密文分别添加到发布信息数据结构;
步骤S16:将所述发布信息数据结构存储在区块链上。
本公开实施例中,信息提供方的区块链账号为第一区块链账号,信息提供方可在区块链网络中的任一区块链节点上使用第一区块链账号。
待发布信息是由信息提供方提供的。在实际应用中,可以是待发布方自身生成的,也可以来源于与该区块链节点通信连接的其他设备。信息提供方可以设置待发布信息的公开程度,包括:全部公开、部分公开或全部保密。
待发布信息的公开程度是全部公开或部分公开,都属于待发布信息包括公开信息的情况,在此情况下,所述方法还包括:
将所述公开信息添加到所述发布信息数据结构。
其中,公开信息可以包括待发布信息的有效期限。示例地,信息提供方为用人单位,待发布信息即为招聘信息,包括:招聘职位、要求、薪酬待遇。在此应用场景下,该待发布信息的公开程度为全部公开,以方便求职者获得招聘信息。可选地,根据招聘计划,用人单位还可以将有效期限作为公开信息包含在招聘信息中。
待发布信息的公开程度是部分公开或全部保密,都属于待发布信息包括保密信息的情况,在此情况下,为了实现对保密信息的保密,信息提供方生成信息加密密钥(简记为MK)。一种可能的生成方式是:随机生成。
接着,信息提供方使用非对称加密算法(采用任意类型的非对称加密算法,例如ECDSA,SM2等)和PubKeyA对MK进行非对称加密,得到第一公钥对应的信息加密密钥密文(简记为ECDSA(PubKeyA,MK)),并且,信息提供方使用对称加密算法(例如AES)和MK对待发布信息中的保密信息(简记为S)进行对称加密(采用任意类型的对称加密算法,例如:AES,SM4等),得到保密信息密文(简记为AES(S))。
此外,为了便于后续信息需求方验证获取到的信息是否正确,也为了便于区分不同的待发布信息,信息发布方对待发布信息(简记为M)进行哈希运算,得到待发布信息的哈希值(记为HASH(M))。
可选地,信息发布方还可以对待发布信息中的保密信息进行收费。因而,所述方法还包括:将所述保密信息的信息标价添加到所述发布信息数据结构中。相应地,信息需求方需要支付信息标价对应的货币才能获取到保密信息。
示例地,信息提供方为有偿知识分享方,将待分享知识的摘要作为公开信息,将待分享知识的详细内容作为保密信息。并且为待分享知识的详细内容定价,将经定价得出的信息标价添加到信息发布数据结构中。信息需求方为知识需求方,在向有偿知识分享方支付信息标价对应的货币后才能获取待分享知识的详细内容。
在另一种可能的实施方式中,针对待发布信息的公开程度是全部公开的情况,信息发布方可以将信息标价设置为0,表示信息需求方可以免费获取待发布信息。
接着,信息发布方将第一公钥、待发布信息的哈希值、第一公钥对应的信息加密密钥密文以及保密信息密文分别作为一个字段,组成发布信息数据结构。在一种可能的实施方式中,发布信息数据结构包括表1所示的各个字段。
表1发布信息数据结构
本公开实施例中,根据待发布信息的公开程度,发布信息数据结构不同。
1)如果待发布信息的公开程度是全部公开,则发布信息数据结构至少包括:第一公钥、待发布信息的哈希值以及待发布信息中的公开信息(也即待发布信息本身)。可选地,发布信息数据结构还包括:信息标价,且信息标价的值为0,表示信息需求方可以免费获取该待发布信息。
2)如果待发布信息的公开程度是全部保密,则发布信息数据结构至少包括:第一公钥、待发布信息的哈希值、第一公钥对应的信息加密密钥密文以及保密信息密文。此时,待发布信息不包括公开信息字段。可选地,发布信息数据结构还可以包括:信息标价字段,且信息标价字段的值通常不为零,表明信息提供方对待发布信息中的保密信息收费。
3)如果待发布信息的公开程度是部分公开,即待发布信息包括保密信息和公开信息,则发布信息数据结构至少包括:第一公钥、待发布信息的哈希值、公开信息、第一公钥对应的信息加密密钥密文以及保密信息密文。可选地,发布信息数据结构还可以包括:信息标价字段,且信息标价字段的值通常不为零,表明信息提供方对待发布信息中的保密信息收费。
以上为信息提供方进行信息发布的过程。接下来,由信息需求方通过第二区块链账号进行信息获取。信息需求方可采用本公开实施例提供的基于区块链的信息获取方法实现信息获取。图3为本公开实施例提供的基于区块链的信息获取的流程图。如图3所示,该方法包括以下步骤:
步骤S21:检测区块链上的发布信息数据结构中的保密信息密文;
步骤S22:将针对所述待发布信息的哈希值的保密信息获取请求存储到所述区块链上,所述保密信息获取请求携带第二区块链账号的第二公钥;
步骤S23:检测所述区块链上是否存在许可保密信息应答,所述许可保密信息应答携带所述第二公钥对应的信息加密密钥密文;
步骤S24:根据所述第二区块链账号的第二私钥,对所述第二公钥对应的信息加密密钥密文解密,得到所述信息加密密钥;
步骤S25:根据所述信息加密密钥,对所述保密信息密文进行解密,得到保密信息。
本公开实施例中,信息需求方的区块链账号为第二区块链账号,信息需求方可在区块链网络中的任一区块链节点上使用第二区块链账号。
信息需求方监控区块链上的信息发布情况,从区块链存储的发布信息数据结构中,可以获取待发布信息中的公开信息,根据该待发布信息的公开程度,信息获取方执行不同的步骤:
1)如果该待发布信息的公开程度是全部公开,也即该待发布信息本身即为对信息需求方全部公开的信息,则从区块链中读取发布信息数据结构,然后对其中的公开信息进行哈希运算,将哈希运算所得的结果与读取到的发布信息数据结构中的待发布信息的哈希值相比较,如果两者相同,则确认读取的公开信息正确,以此实现了公开信息的分享。
以用人单位向求职者分享招聘信息的场景为例。用人单位作为信息提供方,待发布信息是招聘信息,公开程度为全部公开,因此,通过第一区块链账号在区块链中存储发布信息数据结构,包括:第一公钥、招聘信息的哈希值以及招聘信息本身。求职者作为信息需求方,通过第二区块链账号获取区块链中存储的该发布信息数据结构,并对其中的招聘信息进行哈希运算,如果哈希运算的结果与获取的发布信息数据结构中的哈希值相同,则说明求职者获取了正确的招聘信息。以此实现了用人单位向求职者分享招聘信息。
2)如果待发布信息的公开程度是部分公开,则信息发布方首先按照上述方法获取待发布信息中的公开信息,并根据公开信息,决定是否获取待发布信息中的保密信息。如果待发布信息的公开程度是全部保密,也即待发布信息本身为保密信息,则信息发布方可自行决定是否获取该待发布信息。
如果信息需求方想要获取待发布信息中的保密信息或者全部保密的待发布信息本身,则生成保密信息获取请求,并将保密信息获取请求存储到区块链上,保密信息获取请求包括第二区块链账号的第二公钥。在一种可能的实施方式中,保密信息获取请求对应的数据结构包括表2所示的各个字段。
表2保密信息获取请求对应的数据结构
可选地,针对待发布信息的公开程度是部分公开或完全保密的情况,信息提供方可能对保密信息进行收费,因而发布信息数据结构中包括信息标价,在此情况下,信息需求方还可以执行以下步骤:
根据区块链上的发布信息数据结构中的第一公钥,确定第一区块链账号;
根据所述区块链上的发布信息数据结构中的信息标价,向所述第一区块链账号转账不低于所述信息标价的数字货币。
信息需求方首先从发布信息数据结构中获得信息提供方的账号,即第一区块链账号,然后按照信息标价,向第一区块链账号转账不低于信息标价的数字货币,以购买保密信息。
在信息需求方将保密信息获取请求存储到区块链上之后,信息提供方还可以执行以下步骤:
所述方法还包括:
检测所述区块链上是否存在针对所述待发布信息的哈希值的保密信息获取请求;
在检测到所述保密信息获取请求时,从所述区块链中读取所述第一公钥对应的信息加密密钥密文;
根据所述第一私钥,对读取到的所述第一公钥对应的信息加密密钥密文解密,得到所述信息加密密钥;
根据所述保密信息获取请求携带的第二区块链账号的第二公钥,对所述信息加密密钥进行非对称加密,得到所述第二公钥对应的信息加密密钥密文;
将许可保密信息应答存储到所述区块链上,所述许可保密信息应答携带所述第二公钥对应的信息加密密钥密文。
信息提供方在将发布信息数据结构存储到区块链上之后,检测区块链上是否存在针对待发布信息的哈希值的保密信息获取请求,也即检测是否有信息需求方想要获取待发布信息。如果检测到保密信息获取请求,则根据自身意愿决定是否向信息需求方提供保密信息,如果愿意提供保密信息,则进行后续操作。
针对发布信息数据结构包括信息标价的情况,决定是否向信息需求方提供保密信息的一种可能的实施方式是:检测所述区块链上是否存在针对所述待发布信息的哈希值的保密信息获取请求,且是否收到所述第二区块链账号转账的不低于所述信息标价的数字货币。
信息提供方如果想要对保密信息进行收费,则会在发布信息数据结构中添加信息标价字段,并且信息标价字段的值不为零。如果检测到区块链上有针对待发布信息的哈希值的报名信息获取请求,同时收到了信息需求方转账的不低于信息标价的数字货币,则信息提供方决定向信息发送方提供保密信息。
具体地,首先,信息提供方从区块链中读取发布信息数据结构,从中获得ECDSA(PubKeyA,MK),然后,信息提供方使用PriKeyA解密得到MK,再使用PubKeyB对MK进行非对称加密(可以采用任意类型的非对称加密算法,例如ECDSA,SM2等),得到ECDSA(PubKeyB,MK)。最后,信息提供方生成许可保密信息应答,并将许可保密信息应答存储到区块链上,许可保密信息应答包括ECDSA(PubKeyB,MK)。在一种可能的实施方式中,许可保密信息应答对应的数据结构包括表3所示的各个字段。
表3许可保密信息应答对应的数据结构
在信息提供方将许可保密信息应答存储到区块链上之后,信息需求方执行步骤S23-S25。
信息需求方检测区块链是否存在许可保密信息应答,如果检测到含有ECDSA(PubKeyB,MK)的许可保密信息应答,则从中获得ECDSA(PubKeyB,MK),使用PriKeyA解密得到MK,再使用MK解密AES(S),最终得到得到S。
针对发布信息数据结构还包括公开信息的情况,在得到保密信息之后,信息需求方还可以执行以下步骤:
将所述保密信息和所述公开信息组合成已发布信息;
对所述已发布信息进行哈希运算,得到所述已发布信息的哈希值;
比较所述已发布信息的哈希值和所述发布信息数据结构中的待发布信息的哈希值;
在所述已发布信息的哈希值和所述发布信息数据结构中的待发布信息的哈希值相等时,确认所述已发布信息正确。
针对发布信息数据结构还包括公开信息的情况,信息需求方直接从发布信息数据结构中得到公开信息P,再按照上述方法得到保密信息S,接着将S和P组合成已发布信息M’,计算已发布信息M’的哈希值HASH(M’),然后与信息提供方发布的HASH(M)进行比较,如果一致,则信息需求方确认获得的信息M’即为M,也即信息需求方获取到的已发布信息正确。
以下以三个应用场景为例,说明本公开实施例提供的基于区块链的信息发布方法和基于区块链的信息获取方法。
(1)以有偿知识分享方向知识需求方分享知识的场景为例。
1)有偿知识分享方发布信息流程
i.有偿知识分享方准备待发布的信息M,待发布信息中公开信息P为待分享知识的摘要,待发布信息中保密信息S为待分享知识的详细内容,计算HASH(M)。由于是有偿知识分享,所以有偿知识分享方还对待分享知识的详细内容进行定价,得出信息标价。
ii.有偿知识分享方随机产生信息加密密钥MK,使用非对称加密算法(例如ECDSA)和PubKeyA对MK加密得到ECDSA(PubKeyA,MK),使用对称加密算法(例如AES)和MK对S加密得到AES(S)。
iii.有偿知识分享方将PubKeyA、HASH(M)、ECDSA(PubKeyA,MK)、P、AES(S)以及信息标价组合,形成发布信息数据结构,并通过向区块链发送交易(Transaction)的方式,将发布信息数据结构存储到区块链上。
2)知识需求方信息获取流程
i.知识需求方在区块链上检索发布信息数据结构,浏览其中的公开信息,也即浏览待分享知识的摘要,判断该待分享知识的详细内容是否其所需的知识,如果是其所需的知识,则进行后续操作。
ii.知识需求方首先从发布信息数据结构中获得有偿信息分享方的第一区块链账号,然后向第一区块链账号转账信息标价对应的数字货币,并且生成含有知识需求方的PubKeyB的保密信息获取请求,最后将保密信息获取请求存储到区块链上。
iii.有偿知识分享方监控区块链,当检测到含有知识需求方的PubKeyB的保密信息获取请求时,判断是否收到知识需求方转账的不低于信息标价对应的数字货币,如果收到,则进行后续操作。
iiii.有偿知识分享方从区块链存储的发布信息数据结构中获得ECDSA(PubKeyA,MK),使用PriKeyA解密得到MK,然后再使用PubKeyB对MK进行非对称加密,得到ECDSA(PubKeyB,MK)。
iv.有偿知识分享方生成许可保密信息应答,该许可保密信息应答携带ECDSA(PubKeyB,MK),然后将该许可保密信息应答存储到区块链上。
v.知识需求方监控区块链,检测到含有ECDSA(PubKeyB,MK)的许可保密信息应答,并从中获得ECDSA(PubKeyB,MK),使用PriKeyA解密得到MK,再使用MK解密AES(S),得到S。
vi.知识需求方将S和P组合成M’,并计算HASH(M’),然后与发布信息数据结构中的HASH(M)进行比较,如果一致,则知识需求方确认自己获得的信息正确。以此实现了有偿知识分享。
(2)以二手交易信息发布和获取的场景为例。
信息提供方为卖方,信息需求方为买方。与有偿知识分享相比,不同之处在于:将卖方所出售物品的信息作为公开信息,将卖方的联系方式作为保密信息。卖方的联系方式保密即可,不涉及对卖方的联系方式进行定价以及买方为获取卖方的联系方式而转账的过程。卖方通过本公开实施例提供的基于区块链的信息发布方法,进行信息发布。买方如果对所售物品有兴趣,可通过本公开实施例提供的基于区块链的信息获取方法,获取卖方的联系方式,从而完成后续沟通。具体实现过程可以参考有偿知识分享方向知识需求方分享知识的实现过程。
(3)以招标信息发布和获取的场景为例。
信息提供方为发标方,信息需求方为投标方。与有偿知识分享相比,不同之处在于:将标书的摘要部分作为公开信息,将标书的剩余部分作为保密信息。标书的剩余部分保密即可,不涉及对标书的剩余部分进行定价以及投标方为获取标书的剩余部分而转账的过程。卖方通过本公开实施例提供的基于区块链的信息发布方法,进行信息发布。投标方如果想要投标,可通过本公开实施例提供的基于区块链的信息获取方法,获取标书的剩余部分,从而完成后续投标流程。具体实现过程可以参考有偿知识分享方向知识需求方分享知识的实现过程。
基于同一发明构思,本公开实施例提供一种基于区块链的信息发布装置,如图4所示,图4是本公开实施例提供的基于区块链的信息发布装置300的框图,该装置300可以包括:
哈希运算模块301,用于对第一区块链账号的待发布信息进行哈希运算,得到所述待发布信息的哈希值;
生成模块302,用于在所述待发布信息包括保密信息时,生成信息加密密钥;
第一非对称加密模块303,用于根据所述第一区块链账号的第一公钥,对所述信息加密密钥进行非对称加密,得到所述第一公钥对应的信息加密密钥密文;
对称加密模块304,用于根据所述信息加密密钥,对所述保密信息进行对称加密,得到保密信息密文;
第一添加模块305,用于将所述第一公钥、所述待发布信息的哈希值、所述第一公钥对应的信息加密密钥密文以及所述保密信息密文分别添加到发布信息数据结构;
第一存储模块306,用于将所述发布信息数据结构存储在区块链上。
可选地,所述待发布信息还包括:公开信息;所述装置还包括:
第二添加模块,用于将所述公开信息添加到所述发布信息数据结构。
可选地,所述装置还包括:
检测模块,用于检测所述区块链上是否存在针对所述待发布信息的哈希值的保密信息获取请求;
读取模块,用于在检测到所述保密信息获取请求时,从所述区块链中读取所述第一公钥对应的信息加密密钥密文;
解密模块,用于根据所述第一私钥,对读取到的所述第一公钥对应的信息加密密钥密文解密,得到所述信息加密密钥;
第二非对称加密模块,用于根据所述保密信息获取请求携带的第二区块链账号的第二公钥,对所述信息加密密钥进行非对称加密,得到所述第二公钥对应的信息加密密钥密文;
第二存储模块,用于将许可保密信息应答存储到所述区块链上,所述许可保密信息应答携带所述第二公钥对应的信息加密密钥密文。
可选地,所述装置还包括:
第三添加模块,用于将所述保密信息的信息标价添加到所述发布信息数据结构中;
所述检测模块包括:
检测子模块,用于检测所述区块链上是否存在针对所述待发布信息的哈希值的保密信息获取请求,且是否收到所述第二区块链账号转账的不低于所述信息标价的数字货币。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
在另一示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,所述非临时性计算机可读存储介质中包括一个或多个程序,所述一个或多个程序用于执行上述的基于区块链的信息发布方法。
在另一示例性实施例中,还提供了一种区块链节点,包括:
上述非临时性计算机可读存储介质;以及
一个或者多个处理器,用于执行所述非临时性计算机可读存储介质中的程序。
基于同一发明构思,本公开实施例提供一种基于区块链的信息获取装置,如图5所示,图5是本公开实施例提供的基于区块链的信息获取装置400的框图,该装置400可以包括:
第一检测模块401,用于检测区块链上的发布信息数据结构中的保密信息密文;
存储模块402,用于将针对所述待发布信息的哈希值的保密信息获取请求存储到所述区块链上,所述保密信息获取请求携带第二区块链账号的第二公钥;
第二检测模块403,用于检测所述区块链上是否存在许可保密信息应答,所述许可保密信息应答携带所述第二公钥对应的信息加密密钥密文;
第一解密模块404,用于根据所述第二区块链账号的第二私钥,对所述第二公钥对应的信息加密密钥密文解密,得到所述信息加密密钥;
第二解密模块405,用于根据所述信息加密密钥,对所述保密信息密文进行解密,得到保密信息。
可选地,所述发布信息数据结构还包括公开信息;所述装置还包括:
组合模块,用于将所述保密信息和所述公开信息组合成已发布信息;
哈希运算模块,用于对所述已发布信息进行哈希运算,得到所述已发布信息的哈希值;
比较模块,用于比较所述已发布信息的哈希值和所述发布信息数据结构中的待发布信息的哈希值;
确认模块,用于在所述已发布信息的哈希值和所述发布信息数据结构中的待发布信息的哈希值相等时,确认所述已发布信息正确。
可选地,所述装置还包括:
确定模块,用于根据区块链上的发布信息数据结构中的第一公钥,确定第一区块链账号;
转账模块,用于根据所述区块链上的发布信息数据结构中的信息标价,向所述第一区块链账号转账不低于所述信息标价的数字货币。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
在另一示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,所述非临时性计算机可读存储介质中包括一个或多个程序,所述一个或多个程序用于执行上述的基于区块链的信息获取方法。
在另一示例性实施例中,还提供了一种区块链节点,包括:
上述非临时性计算机可读存储介质;以及
一个或者多个处理器,用于执行所述非临时性计算机可读存储介质中的程序。
在本公开所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以对本公开的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本公开的方法及其核心思想,不应理解为对本公开的限制。本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本公开的保护范围之内。