基于区块链的数据处理方法、系统、处理设备及认证设备
技术领域
本申请涉及区块链技术领域,尤其涉及一种基于区块链的数据处理方法、系统、处理设备及认证设备。
背景技术
目前,随着高度信息化的发展,公司的战略计划、事业部计划、部门计划、采购销售计划的制定都会经过公司的各级人员参与配合,信息流非常多且真假混合,在此过程中,发明人发现当工作人员在完成新计划制定后,很多错误虚假信息导致难以甄别有效真实可用的信息,且容易出现重复上传等问题。例如:一个比较常见的场景,公司各个阶段会有各类不同的采购销售数据,一个采购销售数据可能有人员多个发布,且各个人员发布的信息均不尽相同,这样容易导致数据权属缺少公开确认,数据发布由人员自主提交,对数据缺少唯一性鉴别与时序公证登记,可能会存在数据重复登记、权属不清等问题,可能会导致权责纠纷。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种基于区块链的数据处理方法、系统、处理设备及认证设备。
根据本申请实施例的一个方面,提供了一种基于区块链的数据处理方法,应用于区块链网路上的处理设备,包括:
根据获取的数据写入请求确定第一用户标识以及待写入数据;
获取与所述待写入数据相关联的验证信息;
调用第一智能合约对所述验证信息进行验证,得到验证结果;
当所述验证结果满足预设条件时,将所述待写入数据与所述验证信息发送至区块链网络的各个节点进行记录。
进一步的,所述方法还包括:
当确定所述第一用户标识不存在时,根据获取的用户身份信息生成公钥数据和私钥数据;
将所述用户身份信息和公钥数据对发送至区块链网路的各个节点进行记录;
获取所述区块链网络上的应答信息;
根据所述应答信息确定所述第一用户标识。
进一步的,所述获取与所述待写入数据相关联的验证信息,包括:
确定所述待写入数据的数据标识,以及所述待写入数据所属用户的第二用户标识;
根据所述第一用户标识、数据标识以及第二用户标识进行哈希计算得到哈希值;
获取所述哈希值对应用户签名;
将所述数据标识,第一用户标识,第二用户标识,待写入数据,哈希值以及所述用户签名作为所述验证信息。
进一步的,所述调用第一智能合约对所述验证信息进行验证,得到验证结果包括:
遍历本地数据账本查询所述第一用户标识;
当确定所述第一用户标识存储于所述本地数据账本,则确定所述第一用户标识与所述第二用户标识是否相同;
当所述第一用户标识与所述第二用户标识相同时,确定所述哈希值是否与所述私钥数据相匹配;
当所述哈希值与所述私钥数据相匹配时,对所述用户签名进行验证;
当对所述用户签名验证通过时,将所述待写入数据发送至区块链网络的各个节点进行记录。
进一步的,所述方法还包括:
获取作用于写入数据的操作请求,所述操作请求携带第三用户标识;
根据所述第三用户标识确定用户操作权限;
根据所述用户操作权限确定所述第三用户标识对应的操作选项;
获取作用于所述操作选项的操作信息,将所述操作信息发送至区块链网络的各个节点进行记录。
根据本申请实施例的另一方面,还提供了一种基于区块链的数据处理方法,应用于区块链网络上的认证设备,包括:
获取区块链网络上的用户身份信息以及公钥数据;
根据所述公钥数据进行身份认证得到认证结果;
当所述认证结果满足预设条件时,将所述公钥数据作为所述用户身份信息的用户标识;
将所述用户身份信息和所述用户标识发送至区块链网络的各个节点进行记录。
根据本申请实施例的另一方面,还提供了一种处理设备,包括:
确定模块,用于根据获取的数据写入请求确定第一用户标识以及待写入数据;
获取模块,用于获取与所述待写入数据相关联的验证信息;
调用第一智能合约对所述验证信息进行验证,得到验证结果;
当所述验证结果满足预设条件时,将所述待写入数据与所述验证信息发送至区块链网络的各个节点进行记录。
根据本申请实施例的另一方面,还提供了一种认证设备,包括:
获取区块链网络上的用户身份信息以及公钥数据;
根据所述公钥数据进行身份认证得到认证结果;
当所述认证结果满足预设条件时,将所述公钥数据作为所述用户身份信息的用户标识;
将所述用户身份信息和所述用户标识发送至区块链网络的各个节点进行记录。
根据本申请实施例的另一方面,还提供了一种基于区块链的数据处理系统,包括:如上述的处理设备,以及如上述的的认证设备。
根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的步骤。
根据本申请实施例的另一方面,还提供了一种电子装置,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;其中:存储器,用于存放计算机程序;处理器,用于通过运行存储器上所存放的程序来执行上述方法中的步骤。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法中的步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请的技术方案基于区块链技术对待写入数据进行验证,保证了待写入数据的权属关系,同时在区块链网络进行公示,解决了现有技术中对数据缺少唯一性鉴别与时序公证登记,导致存在数据重复登记、权属不清等技术问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种基于区块链的数据处理方法的流程图;
图2为本申请另一实施例提供的一种基于区块链的数据处理方法的流程图;
图3为本申请另一实施例提供的一种基于区块链的数据处理方法的流程图;
图4为本申请实施例提供的一种处理设备的框图;
图5为本申请实施例提供的一种认证设备的框图;
图6为本申请实施例提供的一种基于区块链的数据处理系统的框图;
图7为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个类似的实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
图1为本申请实施例提供的一种基于区块链的数据处理方法的流程图。如图1所示,该方法应用于区块链网路上的处理设备,具体包括以下步骤:
步骤S11,根据获取的数据写入请求确定第一用户标识以及待写入数据;
在本步骤中,通过获取数据写入请求时,首先确定数据写入请求对应的第一用户标识是否为有效标识,可以理解的,第一用户标识为发送数据写入请求的用户的用户ID,有效标识可以理解为此用户ID是否已经在区块链网络进行注册。
当确定该用户ID未进行注册时,根据获取的用户身份信息生成公钥数据和私钥数据,将用户身份信息和公钥数据对发送至区块链网路的各个节点进行记录,获取区块链网络上的应答信息,根据应答信息确实用户身份信息对应的用户标识。
需要说明的是,公钥(Public Key)与私钥(Private Key)是通过一种算法得到的一个密钥对(即一个公钥数据和一个私钥数据),公钥数据是密钥对中公开的部分,私钥数据则是非公开的部分。公钥数据通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥数据解密的数据。通过这种算法得到的密钥对能保证是独一的。使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。
步骤S12,获取与待写入数据相关联的验证信息;
在本步骤中,确定待写入数据的数据标识,以及待写入数据所属用户的第二用户标识;其中待写入数据的数据标识,可以为待写入数据的编号,当待写入数据为采购计划时,其对应的数据标识可以是CG01、CG02等。待写入数据所属的用户则为采购计划的制定人员,可理解为数据拥有者。
根据第一用户标识、数据标识以及第二用户标识进行哈希计算得到哈希值;在本实施例中通过将数据写入请求用户的用户ID、待写入数据所属用户的用户ID以及数据编号进行哈希计算得到的哈希值作为待写入数据的存证标识,此时待写入数据即为被加密的存证数据。
需要说明的是,哈希算法可以将一个数据转换为一个标志,这个标志和源数据的每一个字节都有十分紧密的关系。哈希算法还具有一个特点,就是很难找到逆向规律。其是一个广义的算法,也可以认为是一种思想,使用哈希算法可以提高存储空间的利用率,可以提高数据的查询效率,也可以做数字签名来保障数据传递的安全性。
获取哈希值对应用户签名,然后将数据标识,第一用户标识,第二用户标识,待写入数据,哈希值以及用户签名作为验证信息。
步骤S13,调用第一智能合约对验证信息进行验证,得到验证结果;
调用第一智能合约对验证信息进行验证,得到验证结果包括:
遍历本地数据账本查询第一用户标识;当确定第一用户标识存储于本地数据账本,则确定第一用户标识与第二用户标识是否相同;当第一用户标识与第二用户标识相同时,确定哈希值是否与私钥数据相匹配;当哈希值与私钥数据相匹配时,对用户签名进行验证;当对用户签名验证通过时,将待写入数据发送至区块链网络的各个节点进行记录。
本申请公开的技术方案不会造成数据安全责任边界不清的问题。因为在现有技术中,存证数据在共享流转的同时也在传递着安全责任,无差异的数据、单向责任传递、简单的审计则必然导致安全责任“连坐”,既不利于数据泄露溯源,又挫伤数据拥有者的积极性。本申请通过对待写入数据进行多重验证,解决了数据安全责任边界不清的问题。
步骤S14,当验证结果满足预设条件时,将待写入数据与验证信息发送至区块链网络的各个节点进行记录。
本实施例通过对待写入数据进行验证,保证了待写入数据的权属关系,同时在区块链网络进行公示,解决了现有技术中对数据缺少唯一性鉴别与时序公证登记,导致存在数据重复登记、权属不清等技术问题。
另外,在实现申请的过程中,发明人还发现大部分数据以EXCEL存储,各级人员都能够任意拆解,容易产生信息壁垒,信息不对称等一系列问题,另外,以EXCEL存储容易造成数据流失且无法确保数据的真实性。
例如,采购销售计划作为公司行动地图的指引,向上承接公司战略计划的落地,向下指导区域、采销、供应商的生产计划、采购计划、运营计划的制定,而其中多公司参与,公司内部多层级配合,造成了信息传递的流程长、时间周期久,且计划变化同步容易不及时或信息不对称的问题。
为了解决上述技术问题,本申请实施例还提供了一种基于区块链的数据处理方法,如图2所示,该方法包括:
步骤S21、获取作用于写入数据的操作请求,操作请求携带第三用户标识;
在本步骤中,作用写入数据的操作请求可以是对写入数据的编辑操作,第三用户标识为对写入数据进行编辑操作用户的用户ID。
步骤S22、根据第三用户标识确定用户操作权限;根据用户操作权限确定第三用户标识对应的操作选项;
可以理解的,用户ID用于表示用户的部门编号,职务编号或者终端编号等等。用户权限即某个部门或某个职务对应的操作权限。例如操作权限可以是只对写入数据进行查询,并不能进行编辑。或者操作权限可以是在对写入数据进行查询的过程中,同时进行编辑,操作选项可以是:修改,删除,新增,审核等等。需要注意的是,不同用户的用户操作权限对应的操作选项不同。
在本步骤中,用户操作权限与操作选项的对应关系存储于本地,根据预存的用户操作权限与操作选项的对应关系,确定发送操作请求用户的部门以及职务。
作为一个示例,写入数据为采购销售计划表单时,需要AB两个部门写入采购内容,再由C部门进行审核,此时当接收到A或B部门发送的操作请求时,其对应的操作选项是新增,修改。C部门进行审核时,其对应操作选项是查询,新增,修改,删除,审核。
在本实施例中,设置用户操作权限的过程如下:确定被授权角色,具体的,选择一个或多个角色作为被选中角色,每个角色是独立的个体,同一时段一个角色只能关联唯一的用户,而一个用户关联一个或多个角色。
可以理解的,角色可也是职务名称,例如角色A为X部门的主管1、角色B为X部门主管2,同时主管2还在Y部门拥有角色C,此时主管2拥有的角色包括:角色B和角色C。
选择数据:选择一个或多个写入数据,当选择的被选中角色为一个且被选写入数据为一个时,显示该被选中角色对被选写入数据现有操作权限状态,被选中角色的被选写入数据中此前已选中且保存的写入数据操作权限自动选中;当被选中角色和被选写入数据中两者任意一者为两个或以上时,显示写入数据操作权限,该写入数据操作权限均未被选中;对被选中角色进行写入数据操作权限选中;在上述步骤完成后,保存被选中角色的权限。
作为一个示例,写入数据可以是表单,文案,图片,视频等等。在多人授权中,可以批量处理多个角色的授权,比如100人中有90个人的表单权限是相同的,操作者对这90个人即可进行批量的多人角色中进行多角色授权,另外在对其余10个人进行其余表单权限设置,节约了操作者的工作时间,提高了操作者的工作效率;
在本实施例中角色对用户是一对一的关系,同一时段一个角色只能关联唯一的用户,一个用户关联一个或多个角色,用户关联到角色后则自动获得了该角色所有的表单操作权限。这样做的好处是,只要将用户关联到角色即可获得权限(即用户获得其关联的角色的权限),而且角色的权限变更比传统机制中的用户权限变更要少得多。独立体性质(岗位号/工位号性质)的角色数量变化小,虽然员工流动大,但岗位号/工位号的变化小(甚至在一定时段内是没有变化的,即角色没有变化),这样将极大简化用户的权限管理,减少系统的开销。
步骤S23、获取作用于操作选项的操作信息,将操作信息发送至区块链网络的各个节点进行记录。
在本步骤中,当确定用户操作权限对应的操作选项时,会生成与操作选项相关联的输入框,获取作用于输入框的操作信息,操作信息可以是新增的数据,修改对数据,删除的数据等等。
作为一个示例,当操作选项为修改时,输入框为修改替换框,当操作选项为新增时,输入框为新增输入框。
本实施例中利用区块链去中心化、放篡改、可追溯的特性,并基于区块链分布式总账对数据写入、编辑、审核、确认等过程进行公证记录,为数据溯源提供高可靠数据支撑,结合数据实例化进一步提升溯源效能。可以有效地将多部门参与的数据相配合且多方参与数据对等且有据可依,有数可查,有迹可循。
图3为本申请另一实施例提供的一种基于区块链的数据处理方法的流程图,该方法应用于区块链网络上的认证设备,如图3所示,该方法包括以下步骤:
步骤S31,获取区块链网络上的用户身份信息以及公钥数据;
步骤S32,根据公钥数据进行身份认证得到认证结果;
在本步骤中,可以调用安全元件的API将用户身份信息存储在安全元件中,并采用公钥数据对用户身份信息进行加密运算得到保密数据。基于安全元件对保密数据进行遍历得到认证结果。
具体的,根据公钥数据对用户身份信息进行第一摘要运算;根据公钥数据,对第一摘要运算后的数据以及用户身份信息进行第一对称加密运算;根据公钥数据对第一对称加密运算后的数据进行第二摘要运算;根据公钥数据对第一对称加密运算后的数据以及第二摘要运算后的数据进行签名运算;安全元件存储第一对称加密运算后的数据、第二摘要运算后的数据、签名运算后的数据以及公钥数据,上述数据为保密数据。
步骤S33,当认证结果满足预设条件时,将公钥数据作为用户身份信息的用户标识;
在本步骤中,认证结果满足预设条件为即为安全元件中不存在与保密数据相同的数据,当安全元件中不存在与保密数据相同的数据时,将公钥数据作为用户身份信息的用户标识。
步骤S34,将用户身份信息和用户标识发送至区块链网络的各个节点进行记录。
图4为本申请实施例提供的一种处理设备的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图4所示,该设备包括:
确定模块41,用于根据获取的数据写入请求确定第一用户标识以及待写入数据;
获取模块42,用于获取与待写入数据相关联的验证信息;
验证模块43,用于调用第一智能合约对验证信息进行验证,得到验证结果;
发送模块44,用于当验证结果满足预设条件时,将待写入数据与验证信息发送至区块链网络的各个节点进行记录。
图5为本申请实施例提供的一种处理设备的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图5所示,该设备包括:
获取模块51,用于获取区块链网络上的用户身份信息以及公钥数据;
认证模块52,用于根据公钥数据进行身份认证得到认证结果;
处理模块53,用于当认证结果满足预设条件时,将公钥数据作为用户身份信息的用户标识;
发送模块54,用于将用户身份信息和用户标识发送至区块链网络的各个节点进行记录。
图6为本申请实施例提供的一种基于区块链的数据处理系统的框图,如图6所示,本申请实施例提供了一种基于区块链的数据处理系统,包括:上述实施例提供的处理设备10,以及上述实施例提供的认证设备20。
本申请实施例还提供一种电子设备,如图7所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。
存储器1503,用于存放计算机程序;
处理器1501,用于执行存储器1503上所存放的计算机程序时,实现上述实施例的步骤。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的一种基于区块链的数据处理方法。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的一种基于区块链的数据处理方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。