掌桥专利:专业的专利平台
掌桥专利
首页

一种基于区块链的信息发布方法、装置及计算机设备

文献发布时间:2023-06-19 10:11:51


一种基于区块链的信息发布方法、装置及计算机设备

技术领域

本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种基于区块链的信息发布方法、装置及计算机设备。

背景技术

区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。由于区块链技术具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的特性,使得区块链技术已在众多的领域中广泛的进行应用。

发明内容

本说明书公开了一种基于区块链的信息发布方法、装置及计算机设备。

根据本说明书实施例的第一方面,公开了一种基于区块链的信息发布方法,应用于区块链网络中的节点;其中,所述区块链部署了用于发布信息的智能合约;所述智能合约中存储了由所述区块链网络中的信息发布节点,基于持有的加密密钥进行加密处理的待发布信息;所述方法包括:

接收所述区块链网络中的信息发布节点在所述待发布信息满足发布条件时广播发送至区块链网络的用于调用所述智能合约的目标交易;其中,所述目标交易包括与所述加密密钥对应的解密密钥;

响应于所述目标交易,调用所述智能合约中的解密逻辑,基于所述解密密钥对所述智能合约中存储的待发布信息进行解密处理;以及,

在对所述待发布信息解密完成后,并进一步调用所述智能合约中的发布逻辑发布解密后的所述待发布信息。

根据本说明书实施例的第二方面,公开了一种基于区块链的信息发布方法,应用于区块链网络中的节点;所述区块链部署了用于发布信息的智能合约;所述智能合约中存储了由所述区块链网络中的信息发布节点,基于持有的加密密钥进行加密处理的待发布信息;其中,所述加密密钥对应的解密密钥,由所述信息发布节点基于门限算法进行分片处理后,转换为若干密钥分片,并被分别发送给所述区块链网络中的若干节点;所述方法包括:

确定所述待发布信息是否满足发布条件;

如果所述待发布信息满足发布条件,将接收到的由所述信息发布节点发送的密钥分片广播发送至区块链网络,并收集其它节点广播发送的密钥分片;以及,基于收集到的密钥分片还原出所述解密密钥;

在还原出所述解密密钥之后,构建用于调用所述智能合约的目标交易;其中,所述目标交易包括还原出的所述解密密钥;

将所述目标交易广播发送至区块链网络,以使所述区块链网络中的节点响应于所述目标交易,调用所述智能合约中的解密逻辑,基于所述解密密钥对所述智能合约中存储的待发布信息进行解密处理,并在解密完成后,进一步调用所述智能合约中的发布逻辑发布解密后的所述待发布信息。

根据本说明书实施例的第三方面,公开了一种基于区块链的信息发布装置,应用于区块链网络中的节点;其中,所述区块链部署了用于发布信息的智能合约;所述智能合约中存储了由所述区块链网络中的信息发布节点,基于持有的加密密钥进行加密处理的待发布信息;所述装置包括:

目标交易接收模块,接收所述区块链网络中的信息发布节点在所述待发布信息满足发布条件时广播发送至区块链网络的用于调用所述智能合约的目标交易;其中,所述目标交易包括与所述加密密钥对应的解密密钥;

信息解密发布模块,响应于所述目标交易,调用所述智能合约中的解密逻辑,基于所述解密密钥对所述智能合约中存储的待发布信息进行解密处理;以及,在对所述待发布信息解密完成后,并进一步调用所述智能合约中的发布逻辑发布解密后的所述待发布信息。

根据本说明书实施例的第四方面,公开了一种基于区块链的信息发布装置,应用于区块链网络中的节点;所述区块链部署了用于发布信息的智能合约;所述智能合约中存储了由所述区块链网络中的信息发布节点,基于持有的加密密钥进行加密处理的待发布信息;其中,所述加密密钥对应的解密密钥,由所述信息发布节点基于门限算法进行分片处理后,转换为若干密钥分片,并被分别发送给所述区块链网络中的若干节点;所述装置包括:

发布条件确定模块,确定所述待发布信息是否满足发布条件;

解密密钥还原模块,在所述待发布信息满足发布条件的情况下,将接收到的由所述信息发布节点发送的密钥分片广播发送至区块链网络,并收集其它节点广播发送的密钥分片;以及,基于收集到的密钥分片还原出所述解密密钥;

目标交易构建模块,在还原出所述解密密钥之后,构建用于调用所述智能合约的目标交易;其中,所述目标交易包括还原出的所述解密密钥;

目标交易发送模块,将所述目标交易广播发送至区块链网络,以使所述区块链网络中的节点响应于所述目标交易,调用所述智能合约中的解密逻辑,基于所述解密密钥对所述智能合约中存储的待发布信息进行解密处理,并在解密完成后,进一步调用所述智能合约中的发布逻辑发布解密后的所述待发布信息。

以上技术方案中,一方面,由于在该区块链网络中,只有在对应于待发布信息的发布条件被满足的情况下,信息发布节点才会广播解密密钥,因此可以保证在对应的发布条件未被满足的情况下,待发布信息无法被直接读取;另一方面,由于区块链具有公开透明、可以相互验证的特性,将经过加密的待公开信息提前公开至区块链网络中,可以避免待公开信息被篡改、替换的可能,提高了机制的可靠性。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书文本一同用于解释原理。

图1是本说明书所述区块链的一结构示意图;

图2是本说明书所述智能合约的部署和调用过程的一示意图;

图3是本说明书所述基于区块链的信息发布方法的一流程示意图;

图4是本说明书所述密钥移交过程的一交互示意图;

图5是本说明书所述区块链的另一结构示意图;

图6是本说明书所述另一基于区块链的信息发布方法的一流程示意图;

图7是本说明书所述密钥移交过程的另一交互示意图;

图8是本说明书所述基于区块链的信息发布装置的一结构示意图;

图9是本说明书所述基于区块链的信息发布装置的另一结构示意图;

图10是本说明书所述用于信息发布的电子设备的结构示例图;

图11是本说明书所述另一用于信息发布的电子设备的结构示例图。

具体实施方式

为了使本技术领域的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。

下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的系统和方法的例子。

在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

在日常生活中,人们常常面对如下的情景:某些机密信息只有在对应的发布条件被满足的情况下,才可以被发布;例如,定时发布的商业计划、定期发布的中奖人列表、当事人去世后发布的遗嘱等等。类似的机密信息一旦被提前发布,轻则造成机密信息本身的价值贬低,重则引发一连串的争端和损失。

在相关技术中,可以采用类似定时发送邮件的机制,首先将上述机密信息预先存储于服务器中,在确定发布条件被满足的情况下,再将机密信息公布,以避免机密信息在发布条件未满足的情况下的泄露。

然而,而在此过程中,机密信息不仅需要不被泄露,还需要不能被篡改或者替换,上述机制中,预先存储于服务器中的机密信息存在被篡改或者替换的可能,因此并不具有足够的可靠性。

基于此,本说明书公开了一种基于区块链的信息发布方法,旨在利用区块链网络中上链存证的数据可以由各个节点相互验证、难以篡改的特性,提前将被加密的待发布数据广播到区块链网络中,再由信息发布节点在对应的发布条件被满足的情况下公开解密密钥,进而完成待发布信息的有条件发布。

在实现时,可以采用如图1所示的区块链结构。图1为说明书所述区块链的一结构示意图,该区块链的若干个节点中,携带有已加密待发布数据的解密密钥的节点可以记为信息发布节点;在该区块链中预先部署了一智能合约,该智能合约中包含了被加密的待发布数据,以及对应的解密逻辑和发布逻辑;

在信息发布节点确定与待发布信息相对应的发布条件被满足的情况下,该信息发布节点会通过广播交易的方式调用上述智能合约,并将解密密钥以参数形式传入上述智能合约的解密逻辑,使上述智能合约的解密逻辑得以顺利完成,最终,利用智能合约中的发布逻辑完成待发布信息的发布。

请参见图2,图2展示了在区块链上部署并调用智能合约的一个典型过程。区块链上的智能合约(Smart contract)是在区块链上可以被交易触发执行的合约。智能合约可以通过代码的形式定义,具体可以是由开发者用高级语言编写后,经过编译得到的、区块链节点能够直接执行的字节码;当节点间通过共识机制达成一致后,这个智能合约即被成功部署,而后续用户可以调用这个智能合约。

通常,可以采用将一笔包含调用智能合约信息的交易发送到以太坊网络,以使各节点均执行这笔交易的方式调用该智能合约;具体而言,上述交易中可以包含将要调用的智能合约的地址、参数等信息;智能合约可以以规定的方式在区块链网络中每个节点独立的执行,所有执行记录和数据都保存在区块链上,所以当这样的交易执行完毕后,区块链上就保存了无法篡改、不会丢失的交易凭证。

应用以上技术方案,一方面,由于在该区块链网络中,只有在对应于待发布信息的发布条件被满足的情况下,信息发布节点才会广播解密密钥,因此可以保证在对应的发布条件未被满足的情况下,待发布信息无法被直接读取;

另一方面,由于区块链具有公开透明、可以相互验证的特性,将经过加密的待公开信息提前公开至区块链网络中,可以避免待公开信息被篡改、替换的可能,提高了机制的可靠性。

下面通过具体实施例对本说明书所述技术方案进行详细描述。

请参考图3,图3是本说明书一实施例提供的一种基于区块链的信息发布方法,应用于区块链网络中的节点;其中,所述区块链部署了用于发布信息的智能合约;所述智能合约中存储了由所述区块链网络中的信息发布节点,基于持有的加密密钥进行加密处理的待发布信息;所述方法执行以下步骤:

S301,接收所述区块链网络中的信息发布节点在所述待发布信息满足发布条件时广播发送至区块链网络的用于调用所述智能合约的目标交易;其中,所述目标交易包括与所述加密密钥对应的解密密钥;

S302,响应于所述目标交易,调用所述智能合约中的解密逻辑,基于所述解密密钥对所述智能合约中存储的待发布信息进行解密处理;以及,在对所述待发布信息解密完成后,并进一步调用所述智能合约中的发布逻辑发布解密后的所述待发布信息。

下面按照智能合约部署、根据发布条件对待发布信息进行发布、密钥的移交三个环节逐步对上述方案进行描述。

在本说明书中,区块链可以采用如图1所示的结构,该区块链中的节点可以从功能角度分为两类:普通节点和信息发布节点;其中,信息发布节点可以预先基于其持有的加密密钥,对待发布信息进行加密处理,并将加密后的待发布信息与对应的解密逻辑(不包含解密密钥)、发布逻辑以智能合约的形式部署在整个区块链网络上;

对于普通节点而言,在上述智能合约被部署之后、被调用之前,即可以视为持有上述智能合约中的被加密的待发布信息,以及对应的解密逻辑和发布逻辑,但由于缺少解密密钥,且智能合约未被调用,因此待发布信息的具体内容对于普通节点而言仍为被加密、不可知的状态。

对于整个区块链网络而言,在待发布信息的发布条件未被满足的情况下,用于解密该被加密处理的待发布信息的解密密钥,仅被信息发布节点秘密持有,因此公开环境下,待发布信息仍处于被加密状态,实际内容无法被公众探知。

可以理解的是,上述针对带加密信息进行加密/解密的具体的算法,部署智能合约的详细过程,以及智能合约所采用的编程语言、解密逻辑与发布逻辑的设计等实现细节,均可以视具体实施环境而定;例如,如图2所示,合约在被创建时,开发人员可以采用高级语言编写,并将其经过编译和打包部署在区块链上,合约在被调用时,具体方式可以是由节点发起包含合约地址的交易的方式。因此,本领域技术人员可以参考相关技术文档完成上述过程的具体设计,本说明书无需进行具体限定。

在本说明书中,可以理解的是,上述信息发布节点可以是区块链中具体的某一个节点,也可以是相互配合的多个节点;例如,节点A使用节点B的公钥对待发布数据进行加密,并完成对应的智能合约的部署,在这种情况下,待发布数据的解密密钥为节点B的私钥,因而节点B可以承担判断发布条件是否满足,并发布解密密钥、调用对应智能合约的任务,因此节点A与B共同实现了信息发布的功能。

在本说明书中,信息发布节点可以在待发布信息对应的发布条件被满足时,根据待发布信息的解密密钥构建能够调用对应智能合约的目标交易,并将该目标交易广播发送至区块链网络上;相对应的,普通节点可以接收上述信息发布节点在在待发布信息对应的发布条件被满足时广播发送到区块链网络上的目标交易,并从中获得解密密钥;

例如,上述待发布信息为某公司的一份商业计划,需要在北京时间2020年3月2日14:00发布,并以该公司处于区块链上的一台节点设备作为信息发布节点,那么,该商业计划可以被预先加密,并按上述方式,以智能合约的形式部署在区块链网络上;在北京时间2020年3月2日14:00,该信息发布节点确定信息发布条件被满足,则向区块链广播发送用于调用上述智能合约的目标交易,该目标交易中携带对应的解密密钥;而对于该区块链网络上的其他节点(例如其他公司上链的智能设备)而言,接收到上述目标交易后,即可从中获得对应的解密密钥。

在本说明书中,普通节点响应于上述目标交易,可以调用上述智能合约中的解密逻辑,并基于上述过程得到的解密密钥,完成对智能合约中存储的、被加密的待发布信息的解密;之后,可以进一步调用该智能合约中的发布逻辑,发布解密后的待发布信息;

仍以上述情景为例,上述区块链中的普通节点在接收到该调用智能合约的目标交易后,即可执行该智能合约中的解密逻辑,借助从目标交易中获取的解密密钥,完成对上述被预先加密的商业计划的解密,并进一步通过调用该智能合约中的发布逻辑,发布解密后的上述商业计划;从公众视角来看,北京时间2020年3月2日14:00之后,所有人都能够查阅到上述被定时发布的商业计划,最初的目的达成。

在本说明书中,上述设计中的发布条件,可以根据具体需求设定,只需信息发布节点可以识别并作出判断即可,本说明书无需进行具体限定。

在示出的一种实施方式中,上述发布条件可以包括:当前时刻达到预设的发布时刻;例如,上述定时发布商业计划的例子中,预设状态即为“2020年3月2日14:00以及以后”,因此到2020年3月2日14:00时,信息发布节点即可以判定当前时间达到了该预设状态,即触发后续动作。

在示出的一种实施方式中,上述发布条件可以包括:与待发布信息对应的信息发布事件的状态达到预设状态;例如,需要在张三去世之后公开其遗嘱,则待发布信息为该遗嘱,与之对应的信息发布事件则为张三去世,预设状态为事件已发生,则在张三确实去世之后,信息发布节点即可被触发进行后续动作。

在本说明书中,区块链的种类可以根据具体需求,由本领域技术人员自行选择,本说明书无需进行具体限定;例如,对于公司内部信息的发布,可以使用公司内部的私有链,以降低成本提高效率;对于较为重要的协议,可以选择公有链,以获取更高的安全性;等等。

在示出的一种实施方式中,区块链可以选用联盟链;由于联盟链既具有相对公有链更快的处理速度,又具有相对私有链更高的安全性,因而可以作为一种折衷的方案。

在本说明书中,信息发布节点可以将自身持有的解密密钥移交给其他节点,使其他节点亦可以提供信息发布节点的功能。请参见图4,图4展示了密钥移交的交互过程。

在示出的一种实施方式中,对应于图4中的密钥移交阶段,对于信息发布节点而言,可以使用某普通节点的公钥对解密密钥进行加密,以此构建密钥移交交易,并广播发送至区块链网络中;对于对应的普通节点而言,该节点可以接受上述区块链网络中的信息发布节点广播发送至区块链网络的密钥移交交易;其中,该密钥移交交易中包含了使用本节点的公钥加密的解密密钥;

进一步地,该普通节点响应于该密钥移交交易,可以基于本节点的私钥对加密后的解密密钥进行解密,获得解密密钥;该节点即可从普通节点切换为信息发布节点。

在本说明书中,信息发布节点在确认移交密钥成功后,可以切换为普通节点,不再提供信息发布节点的功能。

在示出的一种实施方式中,对应于图4中的密钥移交确认阶段,对于接收到解密密钥的新信息发布节点而言,可以构建包含自身数字签名的密钥移交确认交易,并广播发送至区块链网络;原信息发布节点响应于该密钥移交确认交易,对所述数字签名验证通过后,即可以删除所储存的解密密钥,并将自身切换为普通节点。

采用上述方案,一方面,由于只有特定的节点(即提供对解密密钥加密所用的公钥的节点)才具有对应的私钥,因此解密密钥依然可以视为未公开状态,原待发布信息的保密性不受影响;另一方面,新的信息发布节点可以作为备份,能够一定程度上避免原信息发布节点失效、异常带来的负面影响。

在实际应用中,一个节点直接持有完成的解密密钥依然存在一定风险,基于此,本说明书还公开了另一种基于区块链的信息发布方法,在前述方案的基础上,通过门限算法将解密密钥处理为若干分片,并由区块链中的若干个节点共同保存;只有在超过上述门限算法对应的门限个数的节点公开了其密钥分片的情况下,区块链上的节点才能够根据已公开的密钥分片还原出解密密钥,进而对待发布信息完成解密和公开。

基于门限算法分片处理是指,将待处理的数据切分为n个分片并分发给n个持有者,根据其中任意不少于k个分片均能恢复数据,而任意少于k个分片均无法得到密文的任何信息;其中,k即为“门限”。

采用此种方案,由于单个节点并不持有完整的解密密钥,以n个节点分别持有分片、门限为k为例,若要恶意泄露解密密钥,需要至少k个节点作恶;而且只要失效的节点数不大于n-k,亦能保证密钥恢复的顺利完成;因此,该方法显著规避了单个节点作恶的风险,且减少了节点失效带来的风险,提高了整个机制的可靠性。

可以理解的是,实际设计中,分片的个数n与门限k的取值,本领域技术人员可以根据具体需求自行调整设定,本说明书无需进行具体限定。

请参见图5,图5为本说明书所述区块链的另一结构示意图。与前例类似,在此情景下,在该区块链中预先部署了一智能合约,该智能合约中包含了被加密的待发布数据,以及对应的解密逻辑和发布逻辑,区块链中亦存在若干不携带解密密钥的普通节点;与前例不同的是,该区块链中并非由单个节点提供信息发布功能,而是由若干个携带有已加密待发布数据的解密密钥分片的节点协同提供。

具体而言,请参见图6,图6是本说明书所述另一基于区块链的信息发布方法的一流程示意图;该方法应用于区块链网络中的节点;该区块链部署了用于发布信息的智能合约;该智能合约中存储了由该区块链网络中的信息发布节点,基于持有的加密密钥进行加密处理的待发布信息;其中,该加密密钥对应的解密密钥,由该信息发布节点基于门限算法进行分片处理后,转换为若干密钥分片,并被分别发送给该区块链网络中的若干节点;该方法包括以下步骤:

S601,确定所述待发布信息是否满足发布条件;

S602,如果所述待发布信息满足发布条件,将接收到的由所述信息发布节点发送的密钥分片广播发送至区块链网络,并收集其它节点广播发送的密钥分片;以及,基于收集到的密钥分片还原出所述解密密钥;

S603,在还原出所述解密密钥之后,构建用于调用所述智能合约的目标交易;其中,所述目标交易包括还原出的所述解密密钥;

S604,将所述目标交易广播发送至区块链网络,以使所述区块链网络中的节点响应于所述目标交易,调用所述智能合约中的解密逻辑,基于所述解密密钥对所述智能合约中存储的待发布信息进行解密处理,并在解密完成后,进一步调用所述智能合约中的发布逻辑发布解密后的所述待发布信息。

下面按照智能合约部署、根据发布条件对待发布信息进行发布、密钥的移交三个环节逐步对上述方案进行描述。

在本说明书中,区块链可以采用如图5所示的结构,该区块链中的节点可以从功能角度分为三类:信息发布节点(未体现在图5中)、持有密钥分片的节点,以及普通节点;其中,信息发布节点可以预先基于其持有的加密密钥,对待发布信息进行加密处理,并将加密后的待发布信息与对应的解密逻辑(不包含解密密钥)、发布逻辑以智能合约的形式部署在整个区块链网络上;另外,信息发布节点还可以将对应的解密密钥基于门限算法处理为若干密钥分片,并分别发送给若干其他节点,收到密钥分片的节点便可被记为持有密钥分片的节点;

对于普通节点而言,在上述智能合约被部署之后、被调用之前,即可以视为持有上述智能合约中的被加密的待发布信息,以及对应的解密逻辑和发布逻辑,但由于缺少解密密钥,且智能合约未被调用,因此待发布信息的具体内容对于普通节点而言仍为被加密、不可知的状态。

对于整个区块链网络而言,在待发布信息的发布条件未被满足的情况下,用于解密该被加密处理的待发布信息的解密密钥处于分片状态,因此公开环境下,待发布信息仍处于被加密状态,实际内容无法被公众探知。

可以理解的是,上述针对带加密信息进行加密/解密的具体的算法,部署智能合约的详细过程,以及智能合约所采用的编程语言、解密逻辑与发布逻辑的设计等实现细节,均可以视具体实施环境而定;例如,如图2所示,合约在被创建时,开发人员可以采用高级语言编写,并将其经过编译和打包部署在区块链上,合约在被调用时,具体方式可以是由节点发起包含合约地址的交易的方式。因此,本领域技术人员可以参考相关技术文档完成上述过程的具体设计,本说明书无需进行具体限定。

在本说明书中,可以理解的是,在该方法的执行过程中,为了保证通过分片的重新组合是获取完整解密密钥的唯一途径,持有完整解密密钥的信息发布节点应保证其完整解密密钥不被泄露,具体的方式可以为直接删除,或者从区块链网络中退出等,本领域技术人员可以根据具体情况自行设计,本说明书不作具体限定。

在本说明书中,上述方法的执行主体为上述持有密钥分片的节点;上述持有密钥分片的节点可以在待发布信息对应的发布条件被满足时,将所持有的、来自信息发布节点的密钥分片广播发送至区块链网络,并收集由其他节点广播发送的密钥分片;由于门限算法的特性,正常情况下(失效的持有密钥分片的节点不过多,作恶的持有密钥分片的节点不过多),当且仅当上述持有密钥分片的节点可以在待发布信息对应的发布条件被满足时,才能够收集到足够多的密钥分片,以完成解密密钥的还原。

在本说明书中,在还原出解密密钥之后,可以根据该解密密钥构建能够调用对应智能合约的目标交易,并将该目标交易广播发送至区块链网络上;相对应的,普通节点可以接收上述目标交易,并从中获得解密密钥;

例如,上述待发布信息为某公司的一份商业计划,需要在北京时间2020年3月2日14:00发布,那么,该商业计划可以被预先加密,并按上述方式,以智能合约的形式部署在区块链网络上,解密密钥的分片由若干个节点分别持有;在北京时间2020年3月2日14:00,该信息发布节点确定信息发布条件被满足,上述持有解密密钥分片的节点向区块链广播各自的密钥分片,并根据接收到的密钥分片还原出解密密钥;再发送用于调用上述智能合约的目标交易,该目标交易中携带对应的解密密钥;而对于该区块链网络上的其他节点(例如其他公司上链的智能设备)而言,接收到上述目标交易后,即可从中获得对应的解密密钥。

在本说明书中,将上述目标交易广播至区块链网络后,可以使区块链中的节点响应于上述目标交易,可以调用上述智能合约中的解密逻辑,并基于上述过程得到的解密密钥,完成对智能合约中存储的、被加密的待发布信息的解密;之后,可以进一步调用该智能合约中的发布逻辑,发布解密后的待发布信息;

仍以上述情景为例,上述区块链中的节点在接收到该调用智能合约的目标交易后,即可执行该智能合约中的解密逻辑,借助从目标交易中获取的解密密钥,完成对上述被预先加密的商业计划的解密,并进一步通过调用该智能合约中的发布逻辑,发布解密后的上述商业计划;从公众视角来看,北京时间2020年3月2日14:00之后,所有人都能够查阅到上述被定时发布的商业计划,最初的目的达成。

在本说明书中,上述设计中的发布条件,可以根据具体需求设定,只需信息发布节点可以识别并作出判断即可,本说明书无需进行具体限定。

在示出的一种实施方式中,上述发布条件可以包括:当前时刻达到预设的发布时刻;例如,上述定时发布商业计划的例子中,预设状态即为“2020年3月2日14:00以及以后”,因此到2020年3月2日14:00时,信息发布节点即可以判定当前时间达到了该预设状态,即触发后续动作。

在示出的一种实施方式中,上述发布条件可以包括:与待发布信息对应的信息发布事件的状态达到预设状态;例如,需要在张三去世之后公开其遗嘱,则待发布信息为该遗嘱,与之对应的信息发布事件则为张三去世,预设状态为事件已发生,则在张三确实去世之后,信息发布节点即可被触发进行后续动作。

在本说明书中,区块链的种类可以根据具体需求,由本领域技术人员自行选择,本说明书无需进行具体限定;例如,对于公司内部信息的发布,可以使用公司内部的私有链,以降低成本提高效率;对于较为重要的协议,可以选择公有链,以获取更高的安全性;等等。

在示出的一种实施方式中,区块链可以选用联盟链;在该联盟链中,可以选举出若干具有该待发布信息的发布权限的委员会节点,来负责携带密钥分片;具体选举的方式可以视具体情况而定,本领域技术人员可以参照相关技术自行选择,本说明书不作具体限制。由于联盟链既具有相对公有链更快的处理速度,又具有相对私有链更高的安全性,因而可以作为一种折衷的方案。

在本说明书中,节点对于待发布信息的发布权限可以存在有效期,如果持有密钥分片的节点的该权限逾期,则该节点可以将自身持有的解密密钥分片移交给其他持有密钥分片的节点。

在示出的一种实施方式中,请参见图7,图7展示了通过二次分片的方式,进行密钥移交的交互过程;在发布条件不满足的情况下,响应于自身的所述待发布信息的发布权限的有效期逾期,委员会节点可以基于门限算法对自身持有的密钥分片进行二次分片处理;将得到的若干份密钥分片的分片分别以所述区块链中的其他委员会节点的公钥进行加密,并基于得到的被加密的密钥分片的分片构建二次分片交易;

将所述二次分片交易广播发送至区块链网络后,该区块链网络中的其他委员会节点可以响应于所述二次分片交易,根据各自的私钥对被各自的公钥加密的密钥分片的分片执行解密,即可获得密钥分片的分片。

可以理解的是,在任一委员会节点的权限逾期后,区块链中也可以进行委员会节点的选举,使得普通节点成为新的委员会节点,以保证委员会节点的数量的相对稳定。

经过上述过程,可以使得权限逾期的节点能够把自身携带的密钥分片分发给其他委员会节点,而其他委员会节点可以通过类似的方法将密钥分片的分片还原为该权限逾期的节点原本持有的密钥分片,最终不会影响原解密密钥的顺利还原。

本说明书提出一种基于区块链的信息发布装置,应用于区块链网络中的节点;其中区块链中部署了用于发布信息的智能合约;该智能合约中存储了由所述区块链网络中的信息发布节点,基于持有的加密密钥进行加密处理的待发布信息;请参见图8,图8为该基于区块链的信息发布装置的一结构示意图,该装置包括:

目标交易接收模块801,接收所述区块链网络中的信息发布节点在所述待发布信息满足发布条件时广播发送至区块链网络的用于调用所述智能合约的目标交易;其中,所述目标交易包括与所述加密密钥对应的解密密钥;

信息解密发布模块802,响应于所述目标交易,调用所述智能合约中的解密逻辑,基于所述解密密钥对所述智能合约中存储的待发布信息进行解密处理;以及,在对所述待发布信息解密完成后,并进一步调用所述智能合约中的发布逻辑发布解密后的所述待发布信息。

在本说明书中,信息发布节点可以在待发布信息对应的发布条件被满足时,根据待发布信息的解密密钥构建能够调用对应智能合约的目标交易,并将该目标交易广播发送至区块链网络上;相对应的,目标交易接收模块801可以接收上述信息发布节点在在待发布信息对应的发布条件被满足时广播发送到区块链网络上的目标交易,并从中获得解密密钥。

在本说明书中,信息解密发布模块802响应于上述目标交易,可以调用上述智能合约中的解密逻辑,并基于上述过程得到的解密密钥,完成对智能合约中存储的、被加密的待发布信息的解密;之后,可以进一步调用该智能合约中的发布逻辑,发布解密后的待发布信息。

在本说明书中,上述设计中的发布条件,可以根据具体需求设定,只需信息发布节点可以识别并作出判断即可,本说明书无需进行具体限定。

在示出的一种实施方式中,上述发布条件可以包括:当前时刻达到预设的发布时刻;例如,可以预设发布时刻为北京时间2020年5月2日14:00,则当前时刻到达北京时间2020年5月2日14:00时,即可触发后续动作。

在示出的一种实施方式中,上述发布条件可以包括:与待发布信息对应的信息发布事件的状态达到预设状态;例如,需要在张三去世之后公开其遗嘱,则待发布信息为该遗嘱,与之对应的信息发布事件则为张三去世,预设状态为事件已发生,则在张三确实去世之后,信息发布节点即可被触发进行后续动作。

在本说明书中,区块链的种类可以根据具体需求,由本领域技术人员自行选择,本说明书无需进行具体限定;例如,对于公司内部信息的发布,可以使用公司内部的私有链,以降低成本提高效率;对于较为重要的协议,可以选择公有链,以获取更高的安全性;等等。

在示出的一种实施方式中,区块链可以选用联盟链;由于联盟链既具有相对公有链更快的处理速度,又具有相对私有链更高的安全性,因而可以作为一种折衷的方案。

在本说明书中,上述装置还可以包括密钥接收模块,以接收信息发布节点移交的解密密钥,使本节点亦可以提供信息发布节点的功能。请参见图4,图4展示了密钥移交的交互过程。

在示出的一种实施方式中,对应于图4中的密钥移交阶段,该装置还可以包括密钥接收模块,可以接受上述区块链网络中的信息发布节点广播发送至区块链网络的密钥移交交易;其中,该密钥移交交易中包含了使用本节点的公钥加密的解密密钥;进一步地,该模块可以基于本节点的私钥对加密后的解密密钥进行解密,获得解密密钥;并使该节点从普通节点切换为信息发布节点。

在本说明书中,上述装置还可以包括密钥接收确认模块,使信息发布节点在确认移交密钥成功后,可以切换为普通节点,不再提供信息发布节点的功能。

在示出的一种实施方式中,对应于图4中的密钥移交确认阶段,上述装置还可以包括密钥接收确认模块,可以构建包含自身数字签名的密钥移交确认交易,并广播发送至区块链网络,以使原信息发布节点响应于该密钥移交确认交易,对所述数字签名验证通过后,即可以删除所储存的解密密钥,并将自身切换为普通节点。

采用上述方案,一方面,由于只有特定的节点(即提供对解密密钥加密所用的公钥的节点)才具有对应的私钥,因此解密密钥依然可以视为未公开状态,原待发布信息的保密性不受影响;另一方面,新的信息发布节点可以作为备份,能够一定程度上避免原信息发布节点失效、异常带来的负面影响。

本说明书还公开了一种基于区块链的信息发布装置,应用于区块链网络中的节点;上述区块链部署了用于发布信息的智能合约;上述智能合约中存储了由上述区块链网络中的信息发布节点,基于持有的加密密钥进行加密处理的待发布信息;其中,其中,上述加密密钥对应的解密密钥,由上述信息发布节点基于门限算法进行分片处理后,转换为若干密钥分片,并被分别发送给上述区块链网络中的若干节点;

请参见图9,图9为该装置的一结构示意图,该装置包括:

发布条件确定模块901,确定上述待发布信息是否满足发布条件;

解密密钥还原模块902,在上述待发布信息满足发布条件的情况下,将接收到的由上述信息发布节点发送的密钥分片广播发送至区块链网络,并收集其它节点广播发送的密钥分片;以及,基于收集到的密钥分片还原出上述解密密钥;

目标交易构建模块903,在还原出上述解密密钥之后,构建用于调用上述智能合约的目标交易;其中,上述目标交易包括还原出的上述解密密钥;

目标交易发送模块904,将上述目标交易广播发送至区块链网络,以使上述区块链网络中的节点响应于上述目标交易,调用上述智能合约中的解密逻辑,基于上述解密密钥对上述智能合约中存储的待发布信息进行解密处理,并在解密完成后,进一步调用上述智能合约中的发布逻辑发布解密后的上述待发布信息。

可以理解的是,实际设计中,分片的个数n与门限k的取值,本领域技术人员可以根据具体需求自行调整设定,本说明书无需进行具体限定。

在本说明书中,上述方法的执行主体为上述持有密钥分片的节点;上述解密密钥还原模块902可以在发布条件确定模块901确定待发布信息对应的发布条件被满足时,将所持有的、来自信息发布节点的密钥分片广播发送至区块链网络,并收集由其他节点广播发送的密钥分片;以及,基于收集到的密钥分片还原出所述解密密钥。

在本说明书中,在还原出解密密钥之后,目标交易构建模块903可以根据该解密密钥构建能够调用对应智能合约的目标交易,目标交易发送模块904可以将该目标交易广播发送至区块链网络上,使区块链中的节点响应于上述目标交易,可以调用上述智能合约中的解密逻辑,并基于上述过程得到的解密密钥,完成对智能合约中存储的、被加密的待发布信息的解密;之后,可以进一步调用该智能合约中的发布逻辑,发布解密后的待发布信息。

在本说明书中,上述设计中的发布条件,可以根据具体需求设定,只需信息发布节点可以识别并作出判断即可,本说明书无需进行具体限定。

在示出的一种实施方式中,上述发布条件可以包括:当前时刻达到预设的发布时刻;例如,可以预设发布时刻为北京时间2020年5月2日14:00,则当前时刻到达北京时间2020年5月2日14:00时,即可触发后续动作。

在示出的一种实施方式中,上述发布条件可以包括:与待发布信息对应的信息发布事件的状态达到预设状态;例如,需要在张三去世之后公开其遗嘱,则待发布信息为该遗嘱,与之对应的信息发布事件则为张三去世,预设状态为事件已发生,则在张三确实去世之后,信息发布节点即可被触发进行后续动作。

在本说明书中,区块链的种类可以根据具体需求,由本领域技术人员自行选择,本说明书无需进行具体限定;例如,对于公司内部信息的发布,可以使用公司内部的私有链,以降低成本提高效率;对于较为重要的协议,可以选择公有链,以获取更高的安全性;等等。

在示出的一种实施方式中,区块链可以选用联盟链;在该联盟链中,可以选举出若干具有该待发布信息的发布权限的委员会节点,来负责携带密钥分片;具体选举的方式可以视具体情况而定,本领域技术人员可以参照相关技术自行选择,本说明书不作具体限制。由于联盟链既具有相对公有链更快的处理速度,又具有相对私有链更高的安全性,因而可以作为一种折衷的方案。

在本说明书中,节点对于待发布信息的发布权限可以存在有效期,如果持有密钥分片的节点的该权限逾期,则该节点可以通过二次分片模块,将自身持有的解密密钥分片移交给其他持有密钥分片的节点。

在示出的一种实施方式中,请参见图7,图7展示了通过二次分片的方式,进行密钥移交的交互过程;二次分片模块在发布条件不满足的情况下,响应于自身的所述待发布信息的发布权限的有效期逾期,可以基于门限算法对自身持有的密钥分片进行二次分片处理;将得到的若干份密钥分片的分片分别以所述区块链中的其他委员会节点的公钥进行加密,并基于得到的被加密的密钥分片的分片构建二次分片交易;

二次分片模块将所述二次分片交易广播发送至区块链网络后,可以使该区块链网络中的其他委员会节点可以响应于所述二次分片交易,根据各自的私钥对被各自的公钥加密的密钥分片的分片执行解密,即可获得密钥分片的分片。

可以理解的是,在任一委员会节点的权限逾期后,区块链中也可以进行委员会节点的选举,使得普通节点成为新的委员会节点,以保证委员会节点的数量的相对稳定。

依靠上述二次分片模块,可以使得权限逾期的节点能够把自身携带的密钥分片分发给其他委员会节点,而其他委员会节点可以通过类似的方法将密钥分片的分片还原为该权限逾期的节点原本持有的密钥分片,最终不会影响原解密密钥的顺利还原。

本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述的基于区块链的信息发布方法。

图10示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。

处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。

存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。

输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。

通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。

总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。

需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。

本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述的另一种基于区块链的信息发布方法。

图11示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1110、存储器1120、输入/输出接口1130、通信接口1140和总线1150。其中处理器1110、存储器1120、输入/输出接口1130和通信接口1140通过总线1150实现彼此之间在设备内部的通信连接。

处理器1110可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。

存储器1120可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1120可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1120中,并由处理器1110来调用执行。

输入/输出接口1130用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。

通信接口1140用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。

总线1150包括一通路,在设备的各个组件(例如处理器1110、存储器1120、输入/输出接口1130和通信接口1140)之间传输信息。

需要说明的是,尽管上述设备仅示出了处理器1110、存储器1120、输入/输出接口1130、通信接口1140以及总线1150,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。

本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的基于区块链的信息发布方法。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的另一种基于区块链的信息发布方法。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。

相关技术
  • 一种基于区块链的信息发布方法、装置及计算机设备
  • 一种基于区块链的信息发布方法、装置及计算机设备
技术分类

06120112457149