基于区块链的图片内容共识方法、服务器与流程

文档序号:18885426发布日期:2019-10-15 20:50阅读:438来源:国知局
基于区块链的图片内容共识方法、服务器与流程

本发明涉及区块链技术领域,更具体的,涉及一种基于区块链的图片内容共识方法、服务器。



背景技术:

随着区块链技术的广泛使用,越来越多的应用场景需要在区块链中存储非结构化的数据(如图片),例如在供应链金融中,业务方希望把相关的订单图片信息入链,这样就可以在链上一定范围的节点间查阅,以确认交易的真伪并为之背书。然而目前的区块链系统并不支持,主要原因有几点:

1.由于区块链技术不成熟,例如收到共识算法和节点个数的限制,在网络中传输较大的数据势必造成性能效率下降、响应时间增长,对于这个原本tps吞吐量就不高的区块链网络是噩耗;

2.大多中区块链尤其是联盟链的系统,使用先共识后执行智能合约的方式运行,但在共识过程仅对通讯消息做签名和验签的操作以确保消息的安全性,缺少对消息的内容做业务性的校验,只有等到共识通过后,执行智能合约阶段才进行业务性校验,例如对图片中客户信息结合本地的黑名单系统做黑名单校验,这就导致万一对图片的业务性验证不通过,交易执行失败就会白白消耗共识阶段花费的时间和资源。

因此,目前尚未出现图片共识处理的技术。



技术实现要素:

为了解决上述问题中的至少一个,本申请提供一种基于区块链的图片内容共识方法,包括:

向图片存储服务器发送原始图片,以使所述图片存储服务器采用对称密钥对所述图片进行加密生成加密图片,并采用预存储的公钥对所述对称密钥加密,然后将所述加密图片和加密的对称密钥发送至各节点上;

获取所述加密图片的存储路径;

向区块链的各节点发送上链请求信息,所述上链请求信息包括所述存储路径,以使所有具备访问权限的区块链验证节点服务器根据所述存储路径获取所述加密图片,根据预存储的对应所述公钥的私钥对所述对称密钥进行解密,得到所述对称密钥,采用所述对称密钥对所述加密图片进行解密,得到原始图片,提取所述原始图片中的图片内容,进而根据所述图片内容执行共识操作。

在某些实施例中,还包括:

通过摘要算法对原始图片进行处理,得到原始图片的第一哈希摘要;其中所述上链请求还包括所述第一哈希摘要,进而使所有具备访问权限的区块链验证节点服务器根据得到的原始图片生成第二哈希摘要,根据第一哈希摘要和第二哈希摘要的比对结果确定是否执行提取所述原始图片中的图片内容的步骤。

在某些实施例中,所述上链请求信息还包括:应用服务器的身份认证证书、发起用户的身份信息、发起用户的访问权限,以使所有具备访问权限的区块链验证节点服务器对所述上链请求进行认证。

本申请还提供一种基于区块链的图片内容共识方法,包括:

接收应用层服务器发送的原始图片,生成用于加密图片的对称密钥;

使用所述对称密钥对所述原始图片进行加密,生成加密图片和所述加密图片的存储路径;

使用预存储的公钥对所述对称密钥进行加密;

向所述应用层服务器发送所述加密图片的存储路径,以使所述应用层服务器将所述存储路径加入上链请求信息中,进而使得所有节点可得到所述存储路径;

接收区块链节点发送的获取加密图片请求,返回所述加密图片给发送获取加密图片请求的区块链节点,所述获取加密图片请求包括所述存储路径、获取加密图片请求的发起节点的身份信息以及操作权限;

根据发起节点的身份信息和所述操作权限,筛选出具备访问权限的区块链验证节点服务器,向所有具备访问权限的区块链验证节点服务器发送所述公钥加密的所述对称密钥,以使所述具备访问权限的区块链验证节点服务器根据预存储的对应所述公钥的私钥对所述对称密钥进行解密,得到所述对称密钥,采用所述对称密钥对所述加密图片进行解密,得到原始图片,提取所述原始图片中的图片内容,进而根据所述图片内容执行共识操作。

本申请还提供一种基于区块链的图片内容共识方法,包括:

具备访问权限的区块链验证节点服务器获取应用服务器发送的上链请求信息,所述上链请求信息包括图片存储服务器对原始图片进行对称加密得到加密图片的存储路径;其中所述图片存储服务器进一步采用预存储的公钥对加密所述原始图片的对称密钥进行加密,得到加密的对称密钥;

向所述图片存储服务器发送获取加密图片请求,所述获取加密图片请求包括所述存储路径、获取加密图片请求的发起节点的身份信息以及操作权限;

接收所述图片存储服务器发送的加密图片以及所述加密的对称密钥,进而采用预存储的与所述公钥对应的私钥对所述加密的对称密钥进行解密,得到所述对称密钥;

采用所述对称密钥对所述加密图片进行解密,得到原始图片;

提取所述原始图片中的图片内容;

根据所述图片内容执行共识操作。

在某些实施例中,所述应用服务器进一步通过摘要算法对原始图片进行处理,得到原始图片的第一哈希摘要;所述上链请求还包括所述第一哈希摘要,所述方法还包括:

根据得到的原始图片生成第二哈希摘要;

根据第一哈希摘要和第二哈希摘要的比对结果确定是否执行提取所述原始图片中的图片内容的步骤。

在某些实施例中,所述根据第一哈希摘要和第二哈希摘要的比对结果确定是否执行提取所述原始图片中的图片内容的步骤,包括:

若所述比对结果为一致,则确定所述原始图片未被篡改,进而确定执行提取所述原始图片中的图片内容的步骤。

在某些实施例中,所述提取所述原始图片中的图片内容,包括:

通过ocr识别提取所述原始图片中的字段信息。

在某些实施例中,根据所述图片内容执行共识操作,包括:

根据预存储的校验图片对所述图片内容进行校验,广播校验的结果;

执行共识操作,确定所有节点是否已达成共识,若达成共识则执行所述原始图片对应的智能合约。

本申请还提供应用服务器,包括:

发送模块,向图片存储服务器发送原始图片,以使所述图片存储服务器采用对称密钥对所述图片进行加密生成加密图片,并采用预存储的公钥对所述对称密钥加密,然后将所述加密图片和加密的对称密钥发送至各节点上;

存储路径获取模块,获取所述加密图片的存储路径;

上链请求信息发送模块,向区块链的各节点发送上链请求信息,所述上链请求信息包括所述存储路径,以使所有具备访问权限的区块链验证节点服务器根据所述存储路径获取所述加密图片,根据预存储的对应所述公钥的私钥对所述对称密钥进行解密,得到所述对称密钥,采用所述对称密钥对所述加密图片进行解密,得到原始图片,提取所述原始图片中的图片内容,进而根据所述图片内容执行共识操作。

在某些实施例中,还包括:

第一哈希摘要生成模块,通过摘要算法对原始图片进行处理,得到原始图片的第一哈希摘要;其中所述上链请求还包括所述第一哈希摘要,进而使所有具备访问权限的区块链验证节点服务器根据得到的原始图片生成第二哈希摘要,根据第一哈希摘要和第二哈希摘要的比对结果确定是否执行提取所述原始图片中的图片内容的步骤。

在某些实施例中,所述上链请求信息还包括:应用服务器的身份认证证书、发起用户的身份信息、发起用户的访问权限,以使所有具备访问权限的区块链验证节点服务器对所述上链请求进行认证。

本申请还提供图片存储服务器,包括:

原始图片接收模块,接收应用层服务器发送的原始图片,生成用于加密图片的对称密钥;

原始图片加密模块,使用所述对称密钥对所述原始图片进行加密,生成加密图片和所述加密图片的存储路径;

对称密钥加密模块,使用预存储的公钥对所述对称密钥进行加密;

存储路径发送模块,向所述应用层服务器发送所述加密图片的存储路径,以使所述应用层服务器将所述存储路径加入上链请求信息中,进而使得所有节点可得到所述存储路径;

获取加密图片请求接收模块,接收区块链节点发送的获取加密图片请求,返回所述加密图片给发送获取加密图片请求的区块链节点,所述获取加密图片请求包括所述存储路径、获取加密图片请求的发起节点的身份信息以及操作权限;

加密对称密钥发送模块,根据发起节点的身份信息和所述操作权限,筛选出具备访问权限的区块链验证节点服务器,向所有具备访问权限的区块链验证节点服务器发送所述公钥加密的所述对称密钥,以使所述具备访问权限的区块链验证节点服务器根据预存储的对应所述公钥的私钥对所述对称密钥进行解密,得到所述对称密钥,采用所述对称密钥对所述加密图片进行解密,得到原始图片,提取所述原始图片中的图片内容,进而根据所述图片内容执行共识操作。

本申请还提供区块链验证节点服务器,包括:

上链请求信息获取模块,获取应用服务器发送的上链请求信息,所述上链请求信息包括图片存储服务器对原始图片进行对称加密得到加密图片的存储路径;其中所述图片存储服务器进一步采用预存储的公钥对加密所述原始图片的对称密钥进行加密,得到加密的对称密钥;

获取加密图片请求发送模块,向所述图片存储服务器发送获取加密图片请求,所述获取加密图片请求包括所述存储路径、获取加密图片请求的发起节点的身份信息以及操作权限;

第一解密模块,接收所述图片存储服务器发送的加密图片以及所述加密的对称密钥,进而采用预存储的与所述公钥对应的私钥对所述加密的对称密钥进行解密,得到所述对称密钥;

第二解密模块,采用所述对称密钥对所述加密图片进行解密,得到原始图片;

图片内容提取模块,提取所述原始图片中的图片内容;

共识操作模块,根据所述图片内容执行共识操作。

在某些实施例中,所述应用服务器进一步通过摘要算法对原始图片进行处理,得到原始图片的第一哈希摘要;所述上链请求还包括所述第一哈希摘要,所述区块链验证节点服务器还包括:

第二哈希摘要生成模块,根据得到的原始图片生成第二哈希摘要;

比对模块,根据第一哈希摘要和第二哈希摘要的比对结果确定是否执行提取所述原始图片中的图片内容的步骤。

在某些实施例中,若所述比对结果为一致,图片内容提取模块提取所述原始图片中的图片内容。

在某些实施例中,所述图片内容提取模块通过ocr识别提取所述原始图片中的字段信息。

在某些实施例中,所述共识操作模块包括:

校验单元,根据预存储的校验图片对所述图片内容进行校验,广播校验的结果;

共识单元,执行共识操作,确定所有节点是否已达成共识,若达成共识则执行所述原始图片对应的智能合约。

本申请还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的方法的步骤。

本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上所述的方法的步骤。

本发明具有如下有益效果:

本发明提供的一种基于区块链的图片内容共识方法、服务器,一方面通过采用非对称加密的方式加密对称密钥,这样可以将加密图片的密钥广播到区块链的节点上,当区块链的验证节点需要获取对称密钥时,具有权限的节点能够采用预存储的私钥进行解密,进而可以解密加密图片。另一方面在区块链的上链等过程中不直接传输图片,而是对图片的hash摘要和存储路径进行传输,进而在区块链节点之间的数据交互量小,通过hash摘要可以确定是否是原始图片,通过存储路径可以获得加密图片,进而结合解密对称密钥得到原始图片,以便于执行后续的图片内容共识操作。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了适于实现本申请的区块链系统示意图。

图2示出了本申请提供的由应用服务器实施的一种基于区块链的图片内容共识方法流程示意图。

图3示出了本申请中应用层服务器的具体结构示意图。

图4示出了由图片存储服务器实施的一种基于区块链的图片内容共识方法的流程示意图。

图5示出了本申请中图片存储服务器的具体结构示意图。

图6示出了本申请区块链验证节点服务器实施的一种基于区块链的图片内容共识方法流程示意图。

图7示出了本申请中区块链验证节点服务器的模块结构示意图。

图8示出了本申请三端交互的过程步骤示意图。

图9a示出了本申请执行共识操作中pre-prepare阶段各节点之间的交互示意图。

图9b示出了图9a的各节点之间的交互具体步骤流程图。

图9c示出了本申请执行共识操作中prepare阶段各节点之间的交互示意图。

图9d示出了图9c的各节点之间的交互具体步骤流程图。

图9e示出了本申请执行共识操作中commit阶段各节点之间的交互示意图。

图9f示出了图9e的各节点之间的交互具体步骤流程图。

图10示出适于用来实现本申请实施例的计算机设备的结构示意图。

具体实施方式

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

图1示出了一种区块链网络系统,请结合图1所示,其具体包括:前端的应用层服务器1、验证节点2、非验证节点3、认证节点4、图片存储节点5。其中,应用层服务器1与区块链验证节点2、非验证节点3、图片存储节点5中的一台或若干台连接并进行双向的数据传输。区块链验证节点2与非验证节点3和图片存储节点5每个节点之间均相互连接并进行双向的数据传输。区块链认证节点4与每个验证节点2和非验证节点3均保持连接并进行双向的数据传输。

通过应用层服务器发送原始图片至图片存储服务器,并生成hash摘要,所述图片存储服务器采用对称密钥对所述图片进行加密生成加密图片,并采用预存储的公钥对所述对称密钥加密,然后将所述加密图片和加密的对称密钥发送至各节点上,验证节点获取加密图片的存储路径以及hash摘要,利用自己的私钥对对称密钥进行解密,得到对称密钥后对加密图片进行解密后得到原始图片,然后根据原始图片生成hash摘要,比对hash摘要,确定是同一个图片后,进行图片内容提取以及后续的共识操作。

下面逐一对各节点服务器以及其各自实施的方法步骤进行详细说明。

图2示出了本申请提供的由应用服务器实施的一种基于区块链的图片内容共识方法,包括:

s11:向图片存储服务器发送原始图片,以使所述图片存储服务器采用对称密钥对所述图片进行加密生成加密图片,并采用预存储的公钥对所述对称密钥加密,然后将所述加密图片和加密的对称密钥发送至各节点上;

s12:获取所述加密图片的存储路径;

s13:向区块链的各节点发送上链请求信息,所述上链请求信息包括所述存储路径,以使所有具备访问权限的区块链验证节点服务器根据所述存储路径获取所述加密图片,根据预存储的对应所述公钥的私钥对所述对称密钥进行解密,得到所述对称密钥,采用所述对称密钥对所述加密图片进行解密,得到原始图片,提取所述原始图片中的图片内容,进而根据所述图片内容执行共识操作。

在一些实施例中,上述步骤还包括:

s14:通过摘要算法对原始图片进行处理,得到原始图片的第一哈希摘要;其中所述上链请求还包括所述第一哈希摘要,进而使所有具备访问权限的区块链验证节点服务器根据得到的原始图片生成第二哈希摘要,根据第一哈希摘要和第二哈希摘要的比对结果确定是否执行提取所述原始图片中的图片内容的步骤。

在某些实施例中,所述上链请求信息还包括:应用服务器的身份认证证书、发起用户的身份信息、发起用户的访问权限,以使所有具备访问权限的区块链验证节点服务器对所述上链请求进行认证。

应用层服务器1可以是一台服务器或多台服务器组成的服务器集群,主要负责处理区块链以外的业务逻辑。通常,区块链验证节点2和非验证节点3会向应用层提供服务接口。应用层根据具体的业务逻辑构造请求报文,向区块链发送请求调用区块链所提供的服务接口,等待区块链系统执行交易并返回交易结果后,继续执行后续的业务逻辑。

在虚拟装置层面,应用层服务器的具体结构如图3所示,具体包括:

发送模块11,向图片存储服务器发送原始图片,以使所述图片存储服务器采用对称密钥对所述图片进行加密生成加密图片,并采用预存储的公钥对所述对称密钥加密,然后将所述加密图片和加密的对称密钥发送至各节点上;

存储路径获取模块12,获取所述加密图片的存储路径;

上链请求信息发送模块13,向区块链的各节点发送上链请求信息,所述上链请求信息包括所述存储路径,以使所有具备访问权限的区块链验证节点服务器根据所述存储路径获取所述加密图片,根据预存储的对应所述公钥的私钥对所述对称密钥进行解密,得到所述对称密钥,采用所述对称密钥对所述加密图片进行解密,得到原始图片,提取所述原始图片中的图片内容,进而根据所述图片内容执行共识操作。

基于相同的发明构思,一实施例中,还包括:

第一哈希摘要生成模块,通过摘要算法对原始图片进行处理,得到原始图片的第一哈希摘要;其中所述上链请求还包括所述第一哈希摘要,进而使所有具备访问权限的区块链验证节点服务器根据得到的原始图片生成第二哈希摘要,根据第一哈希摘要和第二哈希摘要的比对结果确定是否执行提取所述原始图片中的图片内容的步骤。

基于相同的发明构思,一实施例中,所述上链请求信息还包括:应用服务器的身份认证证书、发起用户的身份信息、发起用户的访问权限,以使所有具备访问权限的区块链验证节点服务器对所述上链请求进行认证。

图4示出了由图片存储服务器实施的一种基于区块链的图片内容共识方法,包括:

s21:接收应用层服务器发送的原始图片,生成用于加密图片的对称密钥;

s22:使用所述对称密钥对所述原始图片进行加密,生成加密图片和所述加密图片的存储路径;

s23:使用预存储的公钥对所述对称密钥进行加密;

s24:向所述应用层服务器发送所述加密图片的存储路径,以使所述应用层服务器将所述存储路径加入上链请求信息中,进而使得所有节点可得到所述存储路径;

s25:接收区块链节点发送的获取加密图片请求,返回所述加密图片给发送获取加密图片请求的区块链节点,所述获取加密图片请求包括所述存储路径、获取加密图片请求的发起节点的身份信息以及操作权限;

s26:根据发起节点的身份信息和所述操作权限,筛选出具备访问权限的区块链验证节点服务器,向所有具备访问权限的区块链验证节点服务器发送所述公钥加密的所述对称密钥,以使所述具备访问权限的区块链验证节点服务器根据预存储的对应所述公钥的私钥对所述对称密钥进行解密,得到所述对称密钥,采用所述对称密钥对所述加密图片进行解密,得到原始图片,提取所述原始图片中的图片内容,进而根据所述图片内容执行共识操作。

区块链图片存储节点5可以是一台服务器或多台相互备份的服务器。区块链图片存储节点5主要为应用层服务器1提供图片存储、图片加密、密钥存储服务,为区块链验证节点2提供图片读取请求中对发起方的身份认证、密钥传输等服务。

在虚拟装置层面,图片存储服务器的具体结构如图5所示,具体包括:

原始图片接收模块21,接收应用层服务器发送的原始图片,生成用于加密图片的对称密钥;

原始图片加密模块22,使用所述对称密钥对所述原始图片进行加密,生成加密图片和所述加密图片的存储路径;

对称密钥加密模块23,使用预存储的公钥对所述对称密钥进行加密;

存储路径发送模块24,向所述应用层服务器发送所述加密图片的存储路径,以使所述应用层服务器将所述存储路径加入上链请求信息中,进而使得所有节点可得到所述存储路径;

获取加密图片请求接收模块25,接收区块链节点发送的获取加密图片请求,返回所述加密图片给发送获取加密图片请求的区块链节点,所述获取加密图片请求包括所述存储路径、获取加密图片请求的发起节点的身份信息以及操作权限;

加密对称密钥发送模块26,根据发起节点的身份信息和所述操作权限,筛选出具备访问权限的区块链验证节点服务器,向所有具备访问权限的区块链验证节点服务器发送所述公钥加密的所述对称密钥,以使所述具备访问权限的区块链验证节点服务器根据预存储的对应所述公钥的私钥对所述对称密钥进行解密,得到所述对称密钥,采用所述对称密钥对所述加密图片进行解密,得到原始图片,提取所述原始图片中的图片内容,进而根据所述图片内容执行共识操作。

图6示出了区块链验证节点服务器实施的一种基于区块链的图片内容共识方法,

s31:获取应用服务器发送的上链请求信息,所述上链请求信息包括图片存储服务器对原始图片进行对称加密得到加密图片的存储路径;其中所述图片存储服务器进一步采用预存储的公钥对加密所述原始图片的对称密钥进行加密,得到加密的对称密钥;

s32:向所述图片存储服务器发送获取加密图片请求,所述获取加密图片请求包括所述存储路径、获取加密图片请求的发起节点的身份信息以及操作权限;

s33:接收所述图片存储服务器发送的加密图片以及所述加密的对称密钥,进而采用预存储的与所述公钥对应的私钥对所述加密的对称密钥进行解密,得到所述对称密钥;

s34:采用所述对称密钥对所述加密图片进行解密,得到原始图片;

s35:提取所述原始图片中的图片内容;

s36:根据所述图片内容执行共识操作。

基于相同的发明构思,一实施例中,所述应用服务器进一步通过摘要算法对原始图片进行处理,得到原始图片的第一哈希摘要;所述上链请求还包括所述第一哈希摘要,所述方法还包括:

根据得到的原始图片生成第二哈希摘要;

根据第一哈希摘要和第二哈希摘要的比对结果确定是否执行提取所述原始图片中的图片内容的步骤。

基于相同的发明构思,一实施例中,所述根据第一哈希摘要和第二哈希摘要的比对结果确定是否执行提取所述原始图片中的图片内容的步骤,包括:

若所述比对结果为一致,则确定所述原始图片未被篡改,进而确定执行提取所述原始图片中的图片内容的步骤。

基于相同的发明构思,一实施例中,所述提取所述原始图片中的图片内容,包括:

通过ocr识别提取所述原始图片中的字段信息。

基于相同的发明构思,一实施例中,根据所述图片内容执行共识操作,包括:

根据预存储的校验图片对所述图片内容进行校验,广播校验的结果;

执行共识操作,确定所有节点是否已达成共识,若达成共识则执行所述原始图片对应的智能合约。

区块链验证节点2可以是一台服务器或多台服务器组成的服务器集群。验证节点2在启动并加入区块链网络时则会向认证节点4发送请求,获取认证节点4签发的交易证书。为了保证交易的匿名性和安全性,验证节点2在发送交易请求时会使用认证节点4批量签发的交易证书对交易进行签名,并使用由密钥交换算法生成的对称加密密钥对交易数据进行加密。通常,一个区块链网络中存在若干个验证节点2,每一个验证节点2都负责接收应用层服务器1发送(或者是区块链非验证节点3转发)的交易请求,在对交易请求进行签名和加密后,广播至区块链网络中的其他验证节点。其他验证节点收到该交易后,会对交易进行验签。根据不同的场景,验证节点可以采用不同的共识算法对交易进行共识,达成共识的交易会被执行,而交易请求则会在缓存一定数量或经过一段时间后打包写入区块,进行持久化存储。

在虚拟装置层面,区块链验证节点服务器的具体结构如图7所示,具体包括:

上链请求信息获取模块31,获取应用服务器发送的上链请求信息,所述上链请求信息包括图片存储服务器对原始图片进行对称加密得到加密图片的存储路径;其中所述图片存储服务器进一步采用预存储的公钥对加密所述原始图片的对称密钥进行加密,得到加密的对称密钥;

获取加密图片请求发送模块32,向所述图片存储服务器发送获取加密图片请求,所述获取加密图片请求包括所述存储路径、获取加密图片请求的发起节点的身份信息以及操作权限;

第一解密模块33,接收所述图片存储服务器发送的加密图片以及所述加密的对称密钥,进而采用预存储的与所述公钥对应的私钥对所述加密的对称密钥进行解密,得到所述对称密钥;

第二解密模块34,采用所述对称密钥对所述加密图片进行解密,得到原始图片;

图片内容提取模块,提取所述原始图片中的图片内容;

共识操作模块35,根据所述图片内容执行共识操作。

基于相同的发明构思,一实施例中,所述应用服务器进一步通过摘要算法对原始图片进行处理,得到原始图片的第一哈希摘要;所述上链请求还包括所述第一哈希摘要,所述区块链验证节点服务器还包括:

第二哈希摘要生成模块,根据得到的原始图片生成第二哈希摘要;

比对模块,根据第一哈希摘要和第二哈希摘要的比对结果确定是否执行提取所述原始图片中的图片内容的步骤。

基于相同的发明构思,一实施例中,若所述比对结果为一致,图片内容提取模块提取所述原始图片中的图片内容。

基于相同的发明构思,一实施例中,所述图片内容提取模块通过ocr识别提取所述原始图片中的字段信息。

基于相同的发明构思,一实施例中,所述共识操作模块包括:

校验单元,根据预存储的校验图片对所述图片内容进行校验,广播校验的结果;

共识单元,执行共识操作,确定所有节点是否已达成共识,若达成共识则执行所述原始图片对应的智能合约。

在区块链系统中,还包括区块链非验证节点,区块链非验证节点3可以是一台服务器或多台服务器组成的服务器集群。非验证节点3在启动并加入区块链网络时则会向认证节点4发送请求,获取认证节点4签发的交易证书。为了保证交易的匿名性和安全性,非验证节点3在发送交易请求时会使用认证节点4批量签发的交易证书对交易进行签名,并使用由密钥交换算法生成的对称加密密钥对交易数据进行加密。区块链非验证节点3可以接收应用层服务器1所发送的交易请求,并对交易进行封装,添加交易类型、时间戳和签名的字段内容,其中交易类型字段根据应用服务器的报文类型确定,如部署智能合约/查询区块链数据/修改区块链数据等请求类型来确定,时间戳字段取当前非验证节点接收到请求时的时间戳,签名字段使用交易证书所对应的私钥对交易数据进行签名,并把经过签名的交易附上该交易证书,再使用对称密钥对该交易进行加密,最后把经过加密的交易转发给区块链验证节点2。区块链非验证节点3本身并不参与共识,也不会执行交易或保存区块数据。

区块链认证节点4可以是一台服务器或多台相互备份的服务器。区块链认证节点4主要为区块链验证节点2和区块链非验证节点3提供身份认证和签发证书服务。

通过上述说明可以知晓,本发明提供的一种基于区块链的图片内容共识方法、服务器,一方面通过采用非对称加密的方式加密对称密钥,这样可以将加密图片的密钥广播到区块链的节点上,当区块链的验证节点需要获取对称密钥时,具有权限的节点能够采用预存储的私钥进行解密,进而可以解密加密图片。另一方面在区块链的上链等过程中不直接传输图片,而是对图片的hash摘要和存储路径进行传输,进而在区块链节点之间的数据交互量小,通过hash摘要可以确定是否是原始图片,通过存储路径可以获得加密图片,进而结合解密对称密钥得到原始图片,以便于执行后续的图片内容共识操作。

下面结合具体场景对本申请进行详细说明,图8示出了三端交互的流程示意图。如图8所示,具体包括:

步骤s101:应用层服务器1,向图片存储服务器5发送图片存储的请求,请求信息中包括明文图片、是否加密存储图片等字段。

步骤s102:图片存储服务器5接收到应用层服务器1请求,获取到请求中明文图片等信息。

步骤s103:图片存储服务器5生成用于加密图片的对称密钥,并存储该对称密钥。

步骤s104:图片存储服务器5使用步骤s103中生成的对称密钥对明文图片进行加密,生成加密图片并存储加密图片到本地,保存加密图片的uri存储路径。

步骤s105:图片存储服务器5返回加密图片的uri存储路径给应用服务器1。

步骤s106:应用服务器1接收到加密图片的uri存储路径。

步骤s107:应用服务器1对原始明文图片通过hash摘要算法,生成原始明文图片的hash摘要,并发送该hash摘要上区块链的请求,请求报文中除了包括hash摘要外,还应包括加密图片的uri存储路径、应用服务器的tls身份认证证书,用户名等信息。

步骤s108:区块链非验证节点3的通信模块21接收该请求,检查交易的合法性并组装成交易。

步骤s109:区块链非验证节点3的加密模块22,会使用交易证书所对应的私钥,对交易进行签名,并转发交易请求给验证节点集群中所有的验证节点2。转发的交易请求包括原始明文图片的hash摘要、加密图片的uri存储路径、非验证节点的tls身份认证证书,用户名等信息。

步骤s110:区块链验证节点2的通信模块21接收该请求,检查交易的合法性,具体包括交易流量是否超过某个设定的阈值、当前的交易发起方的身份信息、当前的交易发起方的访问权限,如果当前交易流量超过某个设定的阈值,或者交易发起方不具备合法的tls身份认证证书,或者交易发起用户没有对图片上链等操作权限,都会拒绝处理该交易,如果交易合法,则继续进行下一步处理。

步骤s111:区块链验证节点2发起图片读取请求,请求报文中包括加密图片的uri存储路径。

步骤s112:图片存储服务器5接收验证节点2的图片读取请求,验证请求的发起方的身份信息和访问权限。如果交易发起方不具备合法的tls身份认证证书,或者交易发起用户没有对图片读取等操作权限,都会拒绝处理该交易,如果交易合法,则继续进行下一步处理。

步骤s113:图片存储服务器5返回加密的图片给验证节点2。

步骤s114:图片存储服务器5检查请求的发起方即验证节点2是否具有解密图片的访问权限,如果具有,则用验证节点2的证书中的公钥对加密图片的对称密钥进行加密,生成密钥密文并返回给验证节点2。如果不具有解密图片的访问权限,则不发送解密的密钥给验证节点2。

步骤s115:验证节点2如果收到步骤s114生成的密钥密文,则用自己的私钥对密钥密文解密,得到对称密钥明文,并使用该对称密钥明文对步骤s113的加密图片进行解密,得到明文图片。

步骤s116:验证节点2对明文图片通过hash摘要算法,生成hash摘要1,并校验hash摘要1与步骤s109中明文图片的hash摘要做比较,如果两者一致,则说明图片未被篡改,解密出来的图片是与原始应用服务器发送的明文图片一致的。

步骤s117:区块链验证节点2开始共识算法的接入和执行前的准备,其中会调用共识消息接收模块,监听和接收共识算法中节点间相互通信的消息。

步骤s118:区块链验证节点2使用ocr提取明文图片中的关键要素。

步骤s119:区块链验证节点2对图片中关键要素联动本地业务系统进行业务验证,例如根据提取的开户图片中的身份证号,联动本地的黑名单业务系统校验该身份证号是否合法。

步骤s120:在共识算法的执行中,使用步骤s119的图片校验结果,具体共识流程详见图9a至图9f。

步骤s121:当执行完共识算法后,验证节点集群中的所有验证节点应达成一致结果,如果所有节点达成共识,则执行共识commit模块2345,对共识结果进行持久化处理的操作;如果所有节点没有达成共识,则执行共识rollback模块2346,对各个验证节点的共识结果回滚,不进行持久化处理。

步骤s122:区块链验证节点2调用共智能合约处理模块235验证共识结果,如果验证通过,则执行智能合约,如果验证不通过,则返回具体的共识报错信息。

步骤s123:区块链验证节点2调用存储模块24将交易信息和智能合约执行结果写入区块,并把交易过程产生的相关的数据持久化存储到数据库中。

上述具体场景中,如图9a至图9f所示,其中图9b示出了图9a的各节点之间的交互步骤,图9d示出了图9c的各节点之间的交互步骤,图9f示出了图9e的各节点之间的交互步骤。

执行共识操作的具体步骤如下:

步骤s201:所有验证节点接收到非验证节点转发的图片hash上链请求后,通过选取算法选取主节点,选取算法包括但是不限于循环从验证节点0、1、2、3的顺序依次作为主节点。

步骤s202:根据选取的算法,每个验证节点判断自己是否为主节点,如果不是主节点,则退出,如果是主节点,则继续下一步处理。

步骤s203:主节点检查非验证节点转发的交易请求,包括签证交易请求中非验证节点的签名,检查之前从未处理过该交易请求以防止重复处理等。

步骤s204:主节点调用调用ocr和本地业务系统校验图片中的关键要素进行业务性校验,保存图片的业务校验结果。

步骤s205:主节点生成pre-prepare报文信息,报文信息包括当前主节点id,交易序号n,交易请求摘要,发送节点的id,图片hash摘要,加密图片的存储路径,图片的业务校验结果等。

步骤s206:主节点广播pre-prepare报文给所有验证节点。

步骤s207:主节点持久化pre-prepare报文信息。

步骤s208:所有验证节点接收到主验证节点的pre-prepare报文后,检查主节点发送的pre-prepare报文合法性,包括主节点id是否主节点选取算法计算出来的主节点一致,交易序号是否满足在规定区间,交易摘要是否正确等。

步骤s209:各验证节点调用调用ocr和本地业务系统校验图片中的关键要素进行业务性校验,保存图片的业务校验结果。

步骤s210:各验证节点检查主节点发送的pre-prepare报文中图片进行业务性校验,包括图片上链交易请求的hash是否与解密出来的hash摘要一致,收到的其他验证节点对图片的业务校验结果是否为通过,本地的图片业务校验结果是否为通过。

步骤s211:各验证节点生成prepare报文信息,报文信息包括当前主节点id,交易序号n,交易请求摘要,发送节点的id,图片hash摘要,加密图片的存储路径,本地图片的业务校验结果等。

步骤s212:各验证节点广播prepare报文给所有验证节点。

步骤s213:各验证节点持久化prepare报文信息。

步骤s214:所有验证节点接收到其他验证节点的prepare报文后,检查各验证节点发送的pre-prepare报文合法性,包括主节点id是否主节点选取算法计算出来的主节点一致,交易序号是否满足在规定区间,交易摘要是否正确等。

步骤s215:所有验证节点检查是否满足commit条件。

步骤s216:基于图片内容的共识通过,进入智能执行阶段。

进一步地,s215具体包括:

1.在本地的数据库可以查询到该交易已经在prepared阶段。

2.收到网络中所有节点的prepared报文,且prepared报文中图片业务校验结果都为通过。

如果以上2个条件都满足,则继续s216,否则就退出。

本领域技术人员可以知晓的是,上述方法具体具有如下优点:

1、设计了区块链图片数据的上链方案的通用存储架构。通过图片hash摘要上链和加密存储,保证的图片在区块链网络中各节点共享,但是又不降低图片的安全性,确保图片不被篡改,而且图片可以通过访问控制的方式在对部分验证节点可见,避免了敏感图片信息泄露。

2、此外在共识阶段,结合各节点的本地ocr等业务检验系统对图片内容进行共识校验,对于校验不通过的请求在共识阶段即可返回交易失败,不必再等到智能合约执行阶段才能校验图片,白白浪费共识通信的资源,从而达到缩短交易时间,为区块链处理图片数据提供有力支持,提高业务处理效率的效果。

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

在一个典型的实例中计算机设备具体包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的由客户端执行的方法,或者,所述处理器执行所述程序时实现如上所述的由服务器执行的方法。

下面参考图10,其示出了适于用来实现本申请实施例的计算机设备600的结构示意图。

如图10所示,计算机设备600包括中央处理单元(cpu)601,其可以根据存储在只读存储器(rom)602中的程序或者从存储部分608加载到随机访问存储器(ram))603中的程序而执行各种适当的工作和处理。在ram603中,还存储有系统600操作所需的各种程序和数据。cpu601、rom602、以及ram603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。

以下部件连接至i/o接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如lan卡,调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至i/o接口606。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装如存储部分608。

特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包括用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。

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

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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