一种数据溯源方法、系统及装置
文献发布时间:2023-06-19 11:45:49
技术领域
本发明涉及数据处理技术领域,具体涉及一种数据溯源方法、系统及装置。
背景技术
随着互联网技术的不断发展,数据的体量也呈爆炸式地增长。数据在处理过程中,有一部分的处理方式对于用户而言可能是非透明的,导致用户无法对现有数据的来源和可靠性进行准确的判断。
鉴于此,对数据进行溯源查询就成为一种基础的需求。目前,可以采用区块链的方式实现数据溯源。现有的数据溯源方式通常是针对不同的应用场景采用不同的区块链进行数据维护。然而,对于同一份元数据而言,在不同的应用场景中,其构成方式也往往不同。这就导致不同应用场景之间元数据无法统一进行变更,从而无法实现跨场景的数据溯源查询。
发明内容
有鉴于此,本发明实施方式提供了一种数据溯源方法、系统及装置,用于实现跨场景的数据溯源查询。
本发明一方面提供了一种数据溯源方法,所述方法应用于数据溯源网络中,所述方法包括:若所述数据溯源网络中的目标节点执行操作行为后得到目标数据,基于所述目标节点的节点信息,生成以所述目标数据为实体对象的溯源元数据;其中,所述溯源元数据中至少包括所述操作行为对应的活动信息和所述目标节点的代理属性;将所述溯源元数据上传至所述数据溯源网络的区块链中,以通过所述区块链对所述溯源元数据进行溯源查询。
本发明另一方面还提供一种数据溯源系统,所述系统应用于数据溯源网络中,所述系统包括:元数据生成单元,用于若所述数据溯源网络中的目标节点执行操作行为后得到目标数据,基于所述目标节点的节点信息,生成以所述目标数据为实体对象的溯源元数据;其中,所述溯源元数据中至少包括所述操作行为对应的活动信息和所述目标节点的代理属性;数据上传单元,用于将所述溯源元数据上传至所述数据溯源网络的区块链中,以通过所述区块链对所述溯源元数据进行溯源查询。
本发明另一方面还提供一种数据溯源装置,所述数据溯源装置包括处理器和存储器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的数据溯源方法。
本申请提供的技术方案,可以规范化溯源元数据的构成方式,并通过区块链对规范化的溯源元数据进行安全存储。具体地,当目标节点执行了操作行为得到目标数据后,可以生成该目标数据的溯源元数据。该溯源元数据中的实体对象是目标数据,还包含本次操作行为对应的活动信息以及目标节点的代理属性。这样,溯源元数据可以通过实体对象、活动信息以及代理属性这样的规范化结构来表征。生成的规范化的溯源元数据,可以通过区块链进行存储。
本申请提供的技术方案,可以在不同的应用场景下采用规范化的标准来生成溯源元数据,这样,相同的溯源元数据在不同的应用场景中便可以同步进行变更。规范化的溯源元数据通过区块链进行存储,不仅提高了数据存储的安全性,还能够通过区块链对溯源元数据进行溯源查询,从而实现了跨应用场景的数据溯源查询。
附图说明
通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
图1示出了本发明一个实施方式中数据溯源方法的步骤示意图;
图2示出了本发明一个实施方式中溯源元数据的构成示意图;
图3示出了本发明一个实施方式中智能合约的流程示意图;
图4示出了本发明一个实施方式中电力数据的处理流程示意图;
图5示出了本发明一个实施方式中数据溯源装置的功能模块示意图;
图6示出了本发明一个实施方式中数据溯源装置的结构示意图。
具体实施方式
为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
在实际应用中,同一份元数据可能会被运用于不同的应用场景中。例如,对于电网元数据而言,同一份电网元数据可以被用于能耗分析及用电优化,还可以用于进行用电用户的行为分析,还可以用于进行用电信息征信分析等。这些不同的应用场景中所采用的业务数据,通常是由各自的业务系统进行管理的。而不同的业务系统,对于元数据的生成标准可能是不同的,这就导致如果元数据在一个业务系统中发生变更,该变更可能无法被其它业务系统感知或者识别,从而无法在各个业务系统中保持该元数据的同步变更,进而就无法对该元数据进行溯源查询。
鉴于此,本申请一个实施方式提供一种数据溯源方法,该方法可以应用于数据溯源网络中。数据溯源网络中可以包括各个节点,该节点可以作为对数据溯源网络中的数据进行操作的主体。在实际应用中,节点可以是用户使用的终端设备,也可以是数据采集设备(例如各种传感器),还可以是对采集的数据进行处理的数据处理设备等。在本实施方式中,不同应用场景下生成的溯源元数据都可以采用相同的生成标准,并且产生溯源元数据都可以通过该数据溯源网络进行管理和维护。
请参阅图1,上述的数据溯源方法,可以包括以下多个步骤。
S1:若所述数据溯源网络中的目标节点执行操作行为后得到目标数据,基于所述目标节点的节点信息,生成以所述目标数据为实体对象的溯源元数据;其中,所述溯源元数据中至少包括所述操作行为对应的活动信息和所述目标节点的代理属性。
在一个实施方式中,在目标节点与数据溯源网络进行数据交互之前,该目标节点需要现在数据溯源网络中完成注册。具体地,目标节点可以向数据溯源网络中的身份认证节点发起注册请求。身份认证节点接收到该注册请求后,可以识别目标节点的节点性质。在实际应用中,节点性质可以根据目标节点能够实现的功能来确定。例如,节点性质包括数据采集节点、数据存储节点、数据分析节点等。根据接收到的注册请求和识别出的节点性质,身份认证节点可以为目标节点生成对应的代理属性,并规定该目标节点能够执行的活动。其中,代理属性可以与目标节点的节点性质保持一致。例如,目标节点为数据存储节点,那么目标节点的代理属性就可以是数据存储。目标节点能够执行的活动可以是数据处理方式,例如,目标节点能够执行的活动可以包括数据的读写操作和数据的修改操作。
在本实施方式中,身份认证节点为目标节点设定的代理属性和活动,可以作为针对注册请求的节点信息反馈给目标节点。这样,该节点信息便可以用于限定目标节点的代理属性和活动。此外,在目标节点完成注册时,身份认证节点还会给目标节点颁发证书并下发密钥对。其中,密钥对可以包括成对的私钥和公钥,该私钥和公钥在整个数据溯源网络中都是唯一的。身份认证节点可以加密存储目标节点的公钥和节点信息。后续,当目标节点基于自身的代理属性对数据产生活动时,身份认证节点可以基于加密存储的公钥和节点信息,验证目标节点的身份,并判断目标节点是否产生了与规定不符的活动。可见,在目标节点完成注册时,目标节点可以接收身份认证节点下发的密钥对,该密钥对可以用于对目标节点的身份进行验证。
在本实施方式中,当目标节点在数据溯源网络中完成注册后,便具备了在数据溯源网络中生成元数据,或者对已存在的元数据进行复制、修改、统计等操作的权限。目标节点执行操作行为后可以得到目标数据,在实际应用中,该目标数据可以是目标节点新生成的数据,也可以是目标节点对已存在的数据进行修改后得到的数据,还可以是目标节点仅执行了读取操作的数据。也就是说,该目标数据可以是完全新生成的,也可以是基于已有的数据变更而来的,还可以是未变更的已有数据(只是执行了使用、读取等操作)。
在本实施方式中,可以利用相同的结构模型来生成溯源元数据。请参阅图2,溯源元数据可以涉及三部分:实体对象(Entity)、活动(Activity)、代理(Agent)。其中,实体对象可以是上述的目标数据。代理为一个实体对象的存在、一个活动的发生或另一个代理的活动承担某种形式的责任,可以是用户的终端设备、软件或其他可以赋予责任的角色的实体。活动可以用于描述实体对象是如何成为当前状态的,以及实体对象的属性如何发生变化的。
具体地,实体对象、活动、代理之间可以具备多种关系。如图2所示,活动可能会生成新的实体对象,这种关系可以通过wasGeneratedBy表示。活动可能会使用实体对象,这种关系用used表示。当代理对活动负有责任时,用associatedwith表示代理与活动有关,如果实体属于一个代理,这种从属关系用attributedto来表示。在不同的数据版本之间,实体的一个或多个属性可能会发生变化,每个新的版本就是一个新的实体,这种不同版本的实体之间的衍生关系可以用wasDerivedFrom表示。
在本实施方式中,当目标节点执行操作行为得到目标数据后,可以基于目标节点的节点信息,生成以目标数据为实体对象的溯源元数据,该溯源元数据中除了包含实体对象,还可以包括操作行为对应的活动信息和目标节点的代理属性。具体地,在一个应用示例中,溯源元数据可以表示为:
PR=(e,ag,a)
其中,PR为生成的溯源元数据,e表示实体对象,ag表示代理属性,a表示活动信息。
其中,实体对象可以包括目标数据的文件名(filename)、文件类别(category)、文件格式(type)、属性类型(property)、属性值(value)中的至少一种,根据实际应用场景的需求,实体对象的组成部分可以选用以上例举的一种或者多种的组合。例如,实体对象可以表示为:
e=(filename,category,type,property,value)
代理属性可以包括目标节点的节点名称(ag_name)和/或目标节点的代理类型(ag_type),其中代理类型可包括数据采集代理、数据存储代理、数据分析代理等。在一个具体应用示例中,代理属性可以表示为:
ag=(ag_name,ag_type)
活动信息可以包括数据对象(a_ob)、活动代理(a_ag)、操作类型(a_type)、活动时间(timestamp)中的至少一种。在一个具体应用示例中,活动信息可以表示为:
a=(a_ob,a_ag,a_type,timestamp)
通过上述的方式生成的溯源元数据,便可以具备统一的格式。
以物联网环境下的传感器数据为例,传感器数据包含观测到的信息,如电压、温度和位置细节等。传感器数据是时间序列数据,可以随时间跟踪。单个传感器可能具有收集多个跟踪数据的能力。例如,一个传感器能够收集温度和电压的传感器读数。包含传感器读数的跟踪数据很重要,因此可以将跟踪数据作为需要溯源的数据,并按照上述的方式生成跟踪数据的溯源元数据,以通过溯源元数据表示物联网环境中实体之间的因果关系和依赖关系。根据上述的方式,可以将传感器读数定义为实体对象(Entity),代理(Agent)则可以是设备信息、传感器信息或者文件的所有者,活动(Activity)则可以是对传感器读数执行的操作(如创建,读取,更新和删除),在活动中可以包含读取传感器数据的时间戳。
S3:将所述溯源元数据上传至所述数据溯源网络的区块链中,以通过所述区块链对所述溯源元数据进行溯源查询。
在本实施方式中,基于步骤S1生成的溯源元数据,通常只能查看数据的来源,但无法了解数据的后续去向,也就是说,尽管统一了元数据的构成方式,但对于元数据在后续数据传输过程中如何传播,是无法获知的。并且,为了保证溯源元数据的可信度,需要确保溯源元数据不能被随意篡改,每次针对溯源元数据的操作都应当被记录。鉴于此,可以在步骤S1的基础上,将生成的溯源元数据通过区块链的方式进行管理,从而保证溯源元数据不会被非法篡改,保证溯源元数据的可信度。此外,数据溯源的各个参与方针对溯源元数据的操作都会在区块链中被记录下来,这样,不仅溯源元数据能够被查询,针对溯源元数据的操作记录也可以被查询。这样,溯源元数据及其操作记录便可以行为溯源链,通过识别该溯源链,不仅可以追溯元数据的来源,还可以了解元数据后续的传播过程。
在本实施方式中,溯源元数据生成完毕后,目标节点可以对溯源元数据进行数字签名,从而生成溯源元数据对应的广播元数据。该广播元数据中可以包括身份认证节点为目标节点颁发的证书和该溯源元数据的上传时间戳,该广播元数据可以由目标节点向数据溯源网络中的其它节点进行广播。
身份认证节点接收到广播元数据后,可以判断该广播元数据中的内容是否符合目标节点在注册时生效的节点信息。具体地,身份认证节点可以根据目标节点申请注册时的节点信息,判断其产生的溯源元数据是否符合其代理(Agent)身份和产生活动(Activity)的规则。若符合,可以由数据溯源网络中的记账节点对该广播元数据进行审计,并在审计通过之后,通过记账节点将该广播元数据对应的数据区块添加至区块链中。
具体地,当广播元数据被身份认证节点验证通过后,可以由数据溯源网络中预先选取的记账节点获得该广播元数据。这里的记账节点可以是具备记账功能的节点,并且在实际应用中,记账节点的数量可以不止一个。记账节点可以获取数据溯源网络中各个节点广播的广播元数据,并对广播元数据进行验证和排序,从而进一步生成广播元数据对应的数据区块。其中,最先生成数据区块的记账节点拥有记账权,其它的记账节点在可以对新生成的数据区块进行审计。
在本实施方式中,最先生成数据区块的第一记账节点对广播元数据进行验证和排序后,生成所述广播元数据对应的数据区块,并将所述数据区块广播至所述数据溯源网络中的一个或者多个第二记账节点。所述一个或者多个第二记账节点对所述数据区块完成审计之后,可以将最终的审计结果和所述一个或者多个第二记账节点的证书集合上报至所述第一记账节点,以使得所述第一记账节点将通过审计的数据区块按序添加至所述区块链中。
具体地,最先生成数据区块的记账节点可以将数据区块广播至数据溯源网络,其它具有记账功能的节点在接收到上述新生成的数据区块后停止记账,转而进行审计。通过区块哈希值和数字签名等信息审计新生成的数据区块的合法性和正确性,参与审计的节点把审计结果附上各自的数字签名广播给其他参与审计的节点,每个节点对比审计结果,最终把对比结果连同参与审计的所有节点的证书集合发送给数据区块的广播方(最先生成数据区块的记账节点)。最后,广播方可以将通过审计的数据区块以时间先后的顺序加入到数据溯源网络对应的区块链中。
可见,上述的实施方式,能够解决溯源数据可能被篡改的问题,保证存储的数据的安全、可靠性,且便于之后进行溯源数据的可信验证。其次,本申请一个实施方式还能够提供溯源数据的验证功能,通过该功能可以对已完成存储的数据进行检验。针对已完成存储的数据,数据溯源的参与各方可以向区块链查询溯源元数据,从而对溯源元数据进行验证。
具体地,数据溯源申请方可以向数据溯源网络提交查询请求,该查询请求中可以包括用于查询溯源元数据的数据信息(如数据编号、哈希值等)、申请方的由身份认证节点颁发的证书信息等内容。身份认证节点可以对申请方进行身份验证,判断其是否具有相应访问权限。通过验证后,可以在数据溯源网络对应的区块链上获取与查询请求相匹配的溯源记录,并将获取的溯源记录提供给申请方。若申请方遭受欺骗,导致在查询请求中携带了经过篡改的数据,那么数据溯源网络久无法基于查询请求中的数据信息查询到对应的溯源记录,因此可以向申请方提供内容为空的溯源记录。
在一个实施方式中,为了提高溯源元数据的生成效率和存储效率,可以在数据溯源网络的区块链中部署智能合约。该智能合约可以描述溯源元数据的表示方法及相关结构,还可以包括溯源元数据存储和溯源元数据查询(即验证)逻辑。
具体地,请参阅图3,智能合约为数据的传输和存储提供了安全可靠的机制,数据溯源的参与方可以共同在其中制定触发智能合约所需执行的操作以及特定条件下智能合约的执行结果。将数据溯源的参与各方对区块链上溯源元数据的写入和读取逻辑。例如,在智能合约中可以包括溯源元数据的写入和读取逻辑。之后,可以将智能合约在区块链中进行编译和部署,通过预定规则的条件可以触发智能合约的自动执行,从而实现数据的存储和查询。
在一个实施方式中,当某个节点申请生成溯源元数据,由其向智能合约提供必要的信息(如代理信息、实体对象、活动信息等),此时智能合约被触发执行,根据制定的数据表示方法实现溯源元数据的生成和存储。当某个节点申请查询溯源元数据时,由其向智能合约提供必要的信息(如数据编号、哈希值等),此时智能合约被触发执行,从区块链上查询到对应的溯源记录或者溯源链后,将溯源记录或者溯源链返回给申请方。若申请方遭受欺骗,导致提供的查询请求中懈怠了经过篡改的数据,则其提交查询申请之后获得的溯源记录为空。
可见,所述智能合约被触发后,基于所述目标节点提供的节点信息和所述目标数据的实体信息,生成以所述目标数据为实体对象的溯源元数据,并将生成的所述溯源元数据写入所述区块链中。若所述智能合约接收到申请方提交的查询请求,在所述区块链上获取与所述查询请求相匹配的溯源记录,并将所述溯源记录提供给所述申请方;其中,若所述查询请求中携带经过篡改的数据,所述智能合约向所述申请方提供内容为空的溯源记录。
以图4为例,在电力信息数据生命周期中,整体的业务流程可以划分为采集、处理、存储和服务这几类。其中,在采集阶段,可以通过终端采集、数据收割、数据抽取、数据购买等方式采集电力数据。采集的电力数据可以作为实体对象。采集的电力数据可以经过内容检查和更新数字资产记录的预处理。预处理后的电力数据,可以在处理阶段,通过标引、统计、分析的多个系列处理过程,得到系统所需的各项电力数据。其中,对电力数据的分析过程,可以包括用电统计分析、异常用电分析、计量检测分析、线损变损分析等。上述的各个处理过程,都可以生成对应的溯源元数据,该溯源元数据可以通过实体对象、活动信息以及代理属性的格式来表示。处理后的电力数据可以被存储至区块链中,在存储阶段,可以经历存储管理、迁移、备份等各种方式。其中,每当对电力数据进行了操作,对应的操作记录都可以作为溯源记录被存储至区块链中,以用于后续的数据溯源。
区块链中存储的各项电力数据,可以在服务阶段,通过存取支持、存取控制、服务封装、服务发布与授权等方式进行查询,并将查询的结果提供给用户。如果用户端的数据被篡改,那么用户提供的查询请求中携带的数据就会出错,在这种情况下,区块链中就无法查询到对应的电力数据。
由上可见,当溯源网络中的任一节点采集或生成需要溯源的数据,可以确定要描述的溯源对象的实体(Entity)信息。当溯源网络中的任一节点对实体对象产生操作时,根据该节点的代理(Agent)属性以及操作的性质,确定其要描述的活动(Activity)。数据在其生命流程中所历经的每一步中均会按上述方法生成溯源元数据,该溯源元数据可以按照这种统一的格式被存储至区块链中。
在数据溯源网络中,根据节点所实现的不同功能,可以划分为用户节点、记账节点和身份认证节点。当然,在实际应用中,还可以具备更多功能节点。其中,用户节点,即具有代理(Agent)属性的节点,其可对数据进行操作,当用户节点按照数据溯源表示方法生成溯源元数据,可以将其记录在区块链上以供将来验证,以保证溯源记录的不可篡改,实现可信存储和可信溯源。记账节点,当用户节点将溯源元数据上传后,可以由记账节点获得其他节点广播的溯源元数据,对其进行验证并排序,新生成若干个数据区块。身份认证节点,当节点加入网络,为新加入网络的节点分发密钥对和证书,当节点生成溯源元数据,对节点的身份进行验证。
请参阅图5,本申请一个实施方式还提供一种数据溯源系统,所述系统应用于数据溯源网络中,所述系统包括:
元数据生成单元,用于若所述数据溯源网络中的目标节点执行操作行为后得到目标数据,基于所述目标节点的节点信息,生成以所述目标数据为实体对象的溯源元数据;其中,所述溯源元数据中至少包括所述操作行为对应的活动信息和所述目标节点的代理属性;
数据上传单元,用于将所述溯源元数据上传至所述数据溯源网络的区块链中,以通过所述区块链对所述溯源元数据进行溯源查询。
请参阅图6,本申请一个实施方式还提供一种数据溯源装置,所述数据溯源装置包括处理器和存储器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的数据溯源方法。
其中,处理器可以为中央处理器(Central Processing Unit,CPU)。处理器还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施方式中的数据溯源方法对应的程序指令/模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施方式中的数据溯源方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请提供的技术方案,可以规范化溯源元数据的构成方式,并通过区块链对规范化的溯源元数据进行安全存储。具体地,当目标节点执行了操作行为得到目标数据后,可以生成该目标数据的溯源元数据。该溯源元数据中的实体对象是目标数据,还包含本次操作行为对应的活动信息以及目标节点的代理属性。这样,溯源元数据可以通过实体对象、活动信息以及代理属性这样的规范化结构来表征。生成的规范化的溯源元数据,可以通过区块链进行存储。
本申请提供的技术方案,可以在不同的应用场景下采用规范化的标准来生成溯源元数据,这样,相同的溯源元数据在不同的应用场景中便可以同步进行变更。规范化的溯源元数据通过区块链进行存储,不仅提高了数据存储的安全性,还能够通过区块链对溯源元数据进行溯源查询,从而实现了跨应用场景的数据溯源查询。
本领域技术人员可以理解,实现上述实施方式方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施方式的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random AccessMemory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
- 一种基于标识的跨数据溯源模型系统的数据溯源方法
- 溯源装置执行的数据处理方法、溯源装置及系统