具体实施方式
本说明书实施例提供一种区块链数据的处理方法、装置及设备。
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
实施例一
如图1所示,本说明书实施例提供一种区块链数据的处理方法,该方法的执行主体可以为终端设备或服务器,其中,该终端设备可以如笔记本电脑或台式电脑等计算机设备,该服务器可以是一个独立的服务器,还可以是由多个服务器构成的服务器集群等。该终端设备或服务器可以是用于对已上传至区块链中的数据是否能够被用户所读取进行检测和处理的终端设备或服务器。该终端设备或服务器中可以设置有可信执行环境,该可信执行环境可以是TEE(Trusted Execution Environment),该可信执行环境可以基于硬件设备实现,或者还可以通过预定的编程语言编写的程序来实现(即可以是以软件的形式实现)。本说明书实施例的执行主体以服务器为例进行说明,对于执行主体为终端设备的情况,可以参照下述相关内容执行,在此不再赘述。该方法具体可以包括以下步骤:
在步骤S102中,接收对区块链中存储的目标数据的读取请求。
其中,区块链可以是任意的公有链、私有链或联盟链等,区块链中可以存储有指定的数据,区块链中的数据具有防篡改和可追溯等优势。目标数据可以是任意数据,例如用户在进行线上交易过程中产生的交易数据、某用户的个人征信数据或某用户或组织提供的文本等资源的数据等。
在实施中,区块链已经在线上数据的防篡改、防伪和可追溯方向得到了较好的应用,如果将某数据添加到区块链中,则该数据将无法更改和抵赖。而通常,提供某数据给用户的服务机构在将用户请求的数据提供给用户之前,需要对该数据的内容进行合规核验,其中,合规核验是指对待读取的数据中是否存在不符合法律法规、监管规定或规则、某指定组织或机构制定的相关准则或规章制度的数据进行核验。由于上述法律法规、监管规定或规则、某指定组织或机构制定的相关准则或规章制度会不断进行更改,从而使得上述的合规核验是动态变化的(即上一次的合规核验与本次的合规核验使用的法律法规、监管规定或规则、某指定组织或机构制定的相关准则或规章制度会不同)。这样,会存在相互矛盾的两种机制,即上传至区块链中的数据无法更改和对数据的合规核验是动态变化的,因此,需要提供一种对区块链中存储的数据进行读取前的合规核验处理,本说明书实施例提供一种可选的处理方案,具体可以包括以下内容:
如图2所示,为了能够对待读取的区块链中的数据(即目标数据)进行合规核验,可以预先设定对目标数据进行合规核验的服务器,并可以在该服务器中安装执行上述合规核验功能的应用程序。相应的,用户的终端设备中也可以安装有读取区块链中的数据的应用程序,通过该应用程序,用户可以向区块链请求读取某数据。为此,可以在该应程序中设置数据读取入口(具体如数据读取的按键或超链接等)。如果用户需要读取区块链中的某数据(即目标数据),则可以通过上述数据读取入口向服务器发送读取请求(具体如用户可以点击目标数据对应的数据读取的按键或超链接,终端设备可以获取目标数据的标识(如目标数据的名称或编码等)等相关信息,并可以以此生成读取请求发送给服务器),该服务器可以对区块链中存储的目标数据的读取请求。
需要说明的是,上述方式是通过终端设备直接向该服务器发送目标数据的读取请求实现的,而在实际应用中,还可以包括其它方式,例如,终端设备可以将该读取请求发送给区块链节点,区块链节点可以向终端设备发送重定向消息,该重定向消息中可以包括该服务器的访问地址(如IP地址等),终端设备可以基于该重定向消息中的访问地址,将该读取请求发送给该服务器,该服务器可以接收对区块链中存储的目标数据的读取请求。
在步骤S104中,从区块链中获取目标数据的读取权限索引信息,并基于该读取权限索引信息获取目标数据对应的数据读取规则,该数据读取规则用于确定目标数据中的可读取内容。
其中,读取权限索引信息可以是用于记录某数据对应的数据读取规则所存储的位置等信息,通过读取权限索引信息,可以快速查找到相应的数据对应的数据读取规则,读取权限索引信息在相应的数据存储到区块链中后,通常不会对其内容进行修改,也即是该数据对应的数据读取规则的存储位置通常不会改变,从而可以防止某数据的读取权限索引信息被恶意篡改。数据读取规则可以用于对某数据的内容中是否包含被禁止读取的内容进行检测,并可以为用户筛选出可读取的内容的规则,例如,数据读取规则中包括被禁止读取的内容为手机号码、地址、身份证件号码、某个或某些指定的词语等。每一个数据可以对应有一项或多项读取权限索引信息,每一项读取权限索引信息可以对应一个或多个数据读取规则。
在实施中,为了保证某数据的读取权限索引信息的完整性和防止被篡改,可以将数据的读取权限索引信息上传至区块链中,具体地,为了记录某数据对应的数据读取规则,可以根据实际情况预先设置该数据的读取权限索引信息,如可以预先设置某数据对应的数据读取规则能够存储的区域,然后,可以在该数据被上传至区块链后,基于上述设置的区域生成读取权限索引信息,或者,还可以通过预设的数据的处理机制为该数据生成数据读取规则后,服务器可以根据当前的存储情况为该数据读取规则分配一个存储区域,然后,可以基于上述分配的存储区域生成读取权限索引信息等。在设置完成读取权限索引信息后,服务器可以将该读取权限索引信息上传至区块链。
通过上述步骤S102的处理,得到目标数据的读取请求后,可以对该读取请求进行分析,从中可以提取通过该目标数据的标识等相关信息,可以基于提取的信息确定需要读取的目标数据,并可以基于提取的目标数据的标识等相关信息确定目标数据的读取权限索引信息,然后,可以从区块链中获取该读取权限索引信息。为了后续确定目标数据中的可读取内容,可以在获取到读取权限索引信息后,可以根据读取权限索引信息中记录的目标数据对应的数据读取规则所存储的位置等信息,从预定的数据库中查找该数据读取规则。其中,预定的数据库可以是由区块链之外、用于存储预定数据的存储设备或服务器等构成。
在步骤S106中,在预定的可信环境中,基于上述数据读取规则确定目标数据中的可读取内容。
其中,可信执行环境可以是TEE,该可信执行环境可以通过预定的编程语言编写的程序来实现(即可以是以软件的形式实现),可信执行环境可以是安全并与其它环境相隔离的数据处理环境,在可信执行环境中执行的处理,以及数据处理的过程中产生的数据等无法被可执行环境外的任一方所知晓。
在实施中,为了保证区块链中的数据不被泄露,可以将目标数据置于可信执行环境中,然后,可以在可信执行环境中对目标数据进行计算或处理,具体可以包括:为了对目标数据进行真实性核验,可以预先设定数据读取规则,其中,设定的数据核验规则可以包括多种,具体可以参见上述相关内容,在此不再赘述。服务器获取到目标数据和目标数据对应的数据读取规则后,可以通过该数据读取规则对目标数据的内容进行筛选,以从目标数据中筛选出可以供上述读取请求的发送方读取的数据内容。具体如,目标数据对应的数据读取规则中包括不允许用户读取的某一个或多个词语(包括某人的姓名、某组织或机构的名称、某区域的名称或其它预先指定的词语等,为了后续表述方便,不允许用户读取的某一个或多个词语以违禁词表示)和/或不允许用户读取的语句(为了后续表述方便,不允许用户读取的某一个或多个语句以违禁语句表示)等,目标数据可以是包含一个或多个语句或段落的文本数据,服务器可以基于数据读取规则分别对目标数据中包含的每个语句或段落进行分析,从中查找是否包含上述违禁词和/或违禁语句。如果查找到某语句或某段落中包含上述违禁词和/或违禁语句,则可以对包含该违禁词和/或违禁语句的目标数据中的相应语句或段落进行处理,得到处理后的语句或段落。基于上述方式,可以对目标数据中的每个语句或段落进行上述处理,得到一个或多个处理后的语句或段落。
需要说明的是,对包含该违禁词和/或违禁语句的目标数据中的语句或段落进行处理的方式可以包括多种,例如可以将目标数据中的语句或段落中包含的违禁词或违禁语句,使用指定的字符代替,如可以使用“*”、“X”等代替,或者,可以将目标数据中的语句或段落中包含的违禁词或违禁语句以涂鸦等方式覆盖等,除了可以通过上述方式外,还可以通过其它多种方式处理,具体可以根据实际情况设定,本说明书实施例对此不做限定。
在步骤S108中,将目标数据中的可读取内容提供给上述读取请求的发送方。
在实施中,目标数据通过上述数据读取规则处理后,服务器可以得到从目标数据中筛选出的上述读取请求的发送方能够读取的数据内容(可读取内容),然后,服务器可以将筛选出的可读取内容提供给上述发送方,该发送方可以读取该可读取内容,从而可以动态监测提供给用户读取的数据是否符合合规规则,以对区块链中的数据在被读取之前再次进行合规核验,保证用户读取的数据是符合合规规则的。
本说明书实施例提供一种区块链数据的处理方法,在读取区块链中存储的目标数据之前,可以从区块链中获取目标数据的读取权限索引信息,并基于该读取权限索引信息获取目标数据对应的数据读取规则,在预定的可信环境中,基于该数据读取规则确定目标数据中的可读取内容,从而保证了对区块链中的目标数据进行内容筛选的安全性,而且,通过区块链中存储目标数据的读取权限索引信息,在区块链外存储相应的数据读取规则来解决区块链中的数据无法更改和数据读取规则动态变化之间的矛盾,实现了对区块链中存储的数据进行读取前的合规核验。
实施例二
如图3所示,本说明书实施例提供一种区块链数据的处理方法,该方法的执行主体可以为终端设备或服务器,其中,该终端设备可以如笔记本电脑或台式电脑等计算机设备,该服务器可以是一个独立的服务器,还可以是由多个服务器构成的服务器集群等。该终端设备或服务器可以是用于对已上传至区块链中的数据是否能够被用户所读取进行检测和处理的终端设备或服务器。该终端设备或服务器中可以设置有可信执行环境,该可信执行环境可以是TEE(Trusted Execution Environment),该可信执行环境可以基于硬件设备实现,或者还可以通过预定的编程语言编写的程序来实现(即可以是以软件的形式实现)。本说明书实施例的执行主体以服务器为例进行说明,对于执行主体为终端设备的情况,可以参照下述相关内容执行,在此不再赘述。该方法具体可以包括以下步骤:
在步骤S302中,接收目标数据的上链请求。
其中,上链请求中可以包括目标数据,还可以包括如目标数据的标识、目标数据的持有方的相关信息、上链请求的发起方的相关信息、目标数据的业务属性信息(如目标数据对应的业务类别、目标数据对应的业务标识等)等,具体可以根据实际情况设定,本说明书实施例对此不做限定。
在实施中,为了能够对待上传至区块链的数据(即目标数据)的可信性进行核验,可以预先设定对目标数据进行可信性核验的服务器,并可以在该服务器中安装执行上述核验功能的应用程序。相应的,用户的终端设备中也可以安装有向区块链上传数据的应用程序,通过该应用程序,用户可以向区块链中上传数据。为此,可以在该应用程序中设置数据上传入口(具体如数据上传的按键或超链接等)。如果用户需要向区块链中上传数据(即目标数据),则可以通过上述数据上传入口上传目标数据(具体如用户可以点击数据上传的按键或超链接,终端设备可以显示数据上传页面,该页面中可以包括数据输入框和/或数据选择框,用户可以输入目标数据或选择目标数据进行上传),上传完成后,终端设备可以获取目标数据,并可以生成上链请求,将该上链请求发送给上述服务器,该服务器可以接收目标数据的上链请求。
需要说明的是,上述方式是通过终端设备直接向该服务器发送上链请求实现的,而在实际应用中,还可以包括其它方式,例如,终端设备可以将该上链请求发送给区块链节点,区块链节点可以向终端设备发送重定向消息,该重定向消息中可以包括该服务器的访问地址(如IP地址等),终端设备可以基于该重定向消息中的访问地址,将该上链请求发送给该服务器,该服务器可以接收目标数据的上链请求。
此外,为了保证上传的目标数据的安全性,可以使用预先设置的加密算法(如对称加密算法或非对称加密算法等)对目标数据进行加密处理,这样,上链请求中的目标数据即为经过加密处理的数据,此时,还可以通过下述处理对目标数据进行预处理,具体可以包括以下内容:在预定的可信执行环境中,对经过加密处理的目标数据进行解密,得到目标数据。
在实施中,用户的终端设备可以通过向区块链上传数据的应用程序进行数据上传处理,可以在该应用程序中设置数据上传入口。如果用户需要向区块链中上传数据(即目标数据),则可以通过预设的加密算法对目标数据进行加密处理,得到经过加密处理的目标数据。然后,可以通过上述数据上传入口上传经过加密处理的目标数据,上传完成后,终端设备可以获取经过加密处理的目标数据,并可以生成上链请求,将该上链请求发送给上述服务器,该服务器可以接收该上链请求。
在步骤S304中,在预定的可信环境中,根据预设的数据核验规则对目标数据的内容进行核验,得到核验结果。
其中,数据核验规则可以是能够对某数据的可信性进行核验的规则,数据核验规则可以包括多种,例如目标数据的持有方为指定的组织或机构,则目标数据为可信数据,或目标数据的属性信息中包含指定的属性信息,则目标数据为可信数据等。
在实施中,为了保证待上链的数据不被泄露,可以将待上链的数据置于可信执行环境中,然后,可以在可信执行环境中对待上链的数据进行计算或处理,具体可以包括:为了对待上链的数据(即目标数据)进行可信性核验,可以预先设定数据核验规则,其中,设定的数据核验规则可以包括多种,例如,可以针对目标数据所属的不同的业务类别设置相应的数据核验规则,不同业务类别的目标数据,可以设置不同的数据核验规则,具体如实名认证业务的相关数据,可以设置满足实名认证要求的数据核验规则,而支付业务的相关数据,可以设置满足支付要求和支付安全需求的数据核验规则等。此外,还可以为不同的组织或机构设置相应的数据核验规则,以便于可以使用为相应的组织或机构设置的数据核验规则对该组织或机构提供的目标数据的可信性进行核验等。在实际应用中,数据核验规则并不仅仅包含上述两种设置方式,还可以包括更多不同的设置方式,具体可以根据实际情况设定,本说明书实施例对此不做限定。
服务器接收到上链请求后,可以从该上链请求中获取目标数据,并可以将该目标数据置于可信执行环境中。在可信执行环境中,该服务器可以对目标数据进行分析,确定目标数据对应的业务类别,或者,确定目标数据对应的组织或机构的相关信息,然后,可以基于确定的业务类别或确定的组织或机构的相关信息,获取相应的数据核验规则。可以在可信执行环境中,使用获取的数据核验规则对目标数据的可信性进行核验,其中,对目标数据的可信性进行核验可以包括多种方式,例如,可以预先在可信的数据中设置经过加密处理的标签,这样,在可信执行环境中,基于获取的数据核验规则,可以对目标数据中设置的标签进行解密处理,得到该标签的原始内容,然后验证该标签的有效性(如验证该标签是否处于设定的有效期限内等),如果该标签的验证结果为有效,则可以确定对目标数据的核验结果为可信,如果该标签的验证结果为无效,则可以确定对目标数据的核验结果为不可信,此外,如果目标数据中未包含经过加密处理的标签,则也可以确定对目标数据的核验结果为不可信。
上述对目标数据的可信性进行核验的处理仅是一种可实现的处理方式,在实际应用中,还可以通过其它多种处理方式对目标数据的可信性进行核验,以下还提供多种可实现方式,具体可以包括以下方式一~方式三的处理。
方式一,在预定的可信环境中,调用预设的智能合约,对目标数据的内容进行核验,得到核验结果,该智能合约基于该数据核验规则生成并部署在区块链中。
其中,智能合约可以是一种旨在以信息化方式传播、验证或执行合约的计算机协议,智能合约允许在没有第三方的情况下进行可信业务处理,进行的上述可信业务处理可追踪且不可逆转,智能合约中包括合约参与方可以在上面执行合约参与方同意的权利和义务的协议。智能合约中可以包括触发执行该智能合约的触发条件,以及触发条件对应的结果。智能合约中可以包括一个或多个触发条件,每个触发条件可以对应有一个结果,例如,目标数据属于指定的A机构的数据,则目标数据的核验结果为可信,目标数据的业务类别为支付类,则通过预设的条件A对目标数据的可信性进行核验。
在实施中,某些组织或机构可以针对不同的业务类型等分别设置一个或多个不同的数据核验规则。上述组织或机构可以创建或加入指定的区块链,该组织或机构的终端设备或服务器可以作为该区块链中的一个区块链节点,这样,该组织或机构可以基于区块链节点对待上传的目标数据的可信性进行核验。为了对待上传的目标数据的可信性进行核验,区块链节点中可以安装有相应的应用程序,该应用程序可以是用于设定数据核验规则等的程序。该应用程序中可以设置有数据核验规则的输入框和/或选择框等,营销方可以在上述输入框和/或选择框中设置不同业务类别对应的数据核验规则。然后,区块链节点可以接收该组织或机构提供的数据核验规则的信息。区块链节点可以基于设置的数据核验规则的信息生成相应的智能合约,并可以向该区块链节点所在的区块链网络中部署该数据核验规则对应的智能合约,这样,区块链中存储了数据核验规则和相应的智能合约,其它组织或机构无法篡改该数据核验规则和相应的智能合约。
服务器接收到上链请求后,可以从该上链请求中获取目标数据,并可以将该目标数据置于可信执行环境中。在可信执行环境中,该服务器可以对目标数据进行分析,确定对目标数据进行可信性核验所需的智能合约的相关信息,然后,该服务器可以调用区块链中的上述智能合约,通过该智能合约对目标数据的可信性进行核验,具体地,可以对目标数据中包含的内容进行分析,可以从中获取与该智能合约中的触发条件相关的内容。可以将获取的内容与该智能合约中的触发条件进行匹配或比对,如果获取的内容能够触发智能合约中的某触发条件,则可以基于该触发条件对应的处理机制对目标数据的可信性进行核验,得到相应的核验结构,其中,基于该触发条件对应的处理机制对目标数据的可信性进行核验的具体处理过程可以参见上述相关内容,在此不再赘述。如果获取的内容无法与智能合约中的任一触发条件相匹配,则表明无法对目标数据进行可信性核验。
方式二,在预定的可信执行环境中,对可验证声明的有效性进行验证;根据验证结果对目标数据的内容进行核验,得到核验结果。
在实施中,服务器接收到上链请求后,可以从该上链请求中获取目标数据和可验证声明,并可以将该目标数据和可验证声明置于可信执行环境中。可信执行环境可以是TEE,该可信执行环境可以基于硬件设备来实现,或者,该可信执行环境还可以通过预定的编程语言编写的程序来实现(即可以是以软件的形式实现)。服务器可以先对可验证声明进行验证,以判断该可验证声明是否有效,在确定可验证声明有效的情况下,再基于可验证声明进行相应处理,从而进一步保证数据处理的安全性。具体地,对可验证声明进行验证可以包括多种方式,例如,可以获取对可验证声明中包含的字段值通过预定的算法进行计算(例如可以通过哈希算法计算可验证声明中包含的字段值的哈希值等),得到相应的计算结果。可验证声明中还包括上述计算结果的基准值,可以将得到的计算结果与可验证声明中的基准值进行比较,如果两者相同,则验证通过,即可验证声明有效,如果两者不相同,则验证失败,即可验证声明无效。
除了上述方式外,还可以包括多种方式,再例如,可验证声明中可以包括该可验证声明的校验值,服务器获取到可验证声明后,可以通过预定的校验算法确定该可验证声明的校验值,然后,可以将计算的校验值与可验证声明中的校验值进行比较,如果两者相同,则验证通过,即可验证声明有效,如果两者不相同,则验证失败,即可验证声明无效等。在实际应用中,对可验证声明的有效性进行验证的方式不仅仅只包含上述两种方式,还可以包括其它多种可实现方式,具体可以根据实际情况设定,本说明书实施例对此不做限定。
通过上述处理,确定验证结果为可验证声明无效时,可以确定目标数据为不可信数据,此时,可以向上链请求的发起方发送上链失败的通知消息。如果验证结果为可验证声明有效,则可以确定目标数据为可信用户(或可信组织或机构)上传的数据,即目标数据为可信数据。
上述根据验证结果对目标数据的内容进行核验,得到核验结果的处理可以多种多样,以下再提供一种可选的处理方式,具体可以包括以下步骤B2和步骤B4。
在步骤B2中,如果验证结果为有效,则在可信执行环境中获取可验证声明的持有方对应的数据核验规则。
在实施中,如果验证结果为可验证声明有效,则表明目标数据是可验证声明的持有方发布或提供的数据。为了进一步对不同可验证声明的持有方上传至区块链的数据进行核验,保证数据的安全性,可以为不同可验证声明的持有方设置数据核验规则,或者,可以由可验证声明的持有方预先设定该持有方上传数据的数据核验规则,以防止其它组织或用户盗用该可验证声明的持有方的可验证声明向区块链中上传虚假数据。在确定可验证声明有效后,可以在可信执行环境中获取可验证声明的持有方对应的数据核验规则。
在步骤B4中,在预定的可信执行环境中,基于持有方对应的数据核验规则对目标数据的内容进行核验,得到核验结果。
方式三,上链请求中包括上链请求的发起方的数字身份信息,则在预定的可信执行环境中,查找可信执行环境中预先存储的数字身份信息中是否存在发起方的数字身份信息;如果存在,则在预定的可信执行环境中,根据发起方的数字身份信息对应的数据核验规则对目标数据的内容进行核验,得到核验结果。
其中,数字身份信息可以是指通过数字化信息将用户可识别地进行刻画的信息,也即为将真实的身份信息浓缩为数字代码的形式表现,以便对用户个人的实时行为信息进行绑定、查询和验证。数字身份信息中不仅可以包含用户的出生信息、个体描述、生物特征等身份编码信息,也涉及多种属性的个人行为信息(如交易信息或娱乐信息等)等。数字身份信息可以通过多种方式展现,如DID(Decentralized Identity,去中心化身份)等。
在实施中,区块链中可以为不同的用户构建相应的数字身份信息,为此,可以预先设置具有将数据上传至区块链的用户的数字身份信息(如用户的DID等),并可以将具有将数据上传至区块链的用户的数字身份信息存储在可信执行环境中或将上述数字身份信息进行加密处理后存储在该服务器中。当该服务器接收到上链请求后,可以从可信执行环境中查找可信执行环境中预先存储的数字身份信息中是否存在上链请求的发起方的数字身份信息,或者,可以将经过加密处理的数字身份信息发送至可信执行环境中,可以在可信执行环境中对经过加密处理的数字身份信息进行解密处理,得到数字身份信息,然后,再从该数字身份信息中查找是否存在上链请求的发起方的数字身份信息。
在步骤S306中,如果上述核验结果为通过,则在预定的可信环境中,根据预设的数据读取的合规规则和目标数据,生成目标数据对应的数据读取规则和目标数据的读取权限索引信息。
其中,数据读取的合规规则可以是能够对某数据被用户所读取进行核验的规则,数据读取的合规规则可以是基于指定的组织或机构设定的用户能够读取的数据或不允许读取的数据而设立的合规规则,其中的组织或机构可以是设立该合规规则的组织或机构,也可以是某国家或地区等。数据读取的合规规则可以包括多种,例如某国家的某个组织或部门设定了不允许用户读取的多个词语,基于设定的多个词语,可以确定数据读取的合规规则。可信执行环境可以是TEE,该可信执行环境可以是由指定的硬件设备来实现,或者,该可信执行环境还可以通过预定的编程语言编写的程序来实现(即可以是以软件的形式实现),可信执行环境可以是安全并与其它环境相隔离的数据处理环境,在可信执行环境中执行的处理,以及数据处理的过程中产生的数据等无法被可执行环境外的任一方所知晓。
在实施中,为了保证区块链中的目标数据不被泄露,可以将目标数据置于可信执行环境中,然后,可以在可信执行环境中对目标数据进行计算或处理,具体可以包括:为了确定目标数据中的可读取内容,可以预先设定数据读取的合规规则,其中,设定的数据读取的合规规则可以包括多种,例如,可以针对目标数据所属的不同的业务类别设置相应的数据读取的合规规则,不同业务类别的目标数据,可以设置不同的数据读取的合规规则等。此外,还可以为不同的组织或机构设置相应的数据读取的合规规则,以便于可以基于为相应的组织或机构设置的数据读取的合规规则,确定该组织或机构提供的目标数据中的可读取内容等。在实际应用中,数据读取的合规规则不仅仅包含上述设置方式,还可以包括更多不同的设置方式,具体可以根据实际情况设定,本说明书实施例对此不做限定。
如果上述核验结果为通过,则表明目标数据为可信数据,此时可以为目标数据生成对应的数据读取规则和读取权限索引信息。在可信执行环境中,该服务器可以对目标数据进行分析,确定目标数据对应的业务类别,或者,确定目标数据对应的组织或机构的相关信息等,然后,可以基于确定的业务类别或确定的组织或机构的相关信息,获取相应的数据读取的合规规则。可以在可信执行环境中,使用获取的数据读取的合规规则和目标数据,生成目标数据对应的数据读取规则和目标数据的读取权限索引信息。
在步骤S308中,将目标数据和目标数据的读取权限索引信息上传至区块链中。
需要说明的是,在实际应用中,也可以不需要根据预设的数据核验规则对目标数据的内容进行核验,而可以在步骤S302之后,直接执行在预定的可信环境中,根据预设的数据读取的合规规则和目标数据,生成目标数据对应的数据读取规则和目标数据的读取权限索引信息的处理,具体可以根据实际情况设定,本说明书实施例对此不做限定。
通过上述方式将目标数据和目标数据的读取权限索引信息上传至区块链,可以将目标数据对应的数据读取规则存储在服务器中,或者也可以存储在指定的数据库中,以便后续对目标数据的读取进行合规核验,具体可以参见下述相关内容。
在步骤S310中,接收对区块链中存储的目标数据的读取请求。
在步骤S312中,从区块链中获取目标数据的读取权限索引信息,并基于读取权限索引信息获取目标数据对应的数据读取规则,该数据读取规则用于确定目标数据中的可读取内容。
另外,为了更加灵活的确定目标数据中的可读取内容,且考虑到数据读取的合规规则或数据读取规则会经常发生变化,因此,还可以对数据读取规则进行修改,具体可以参见下述方式一和方式二的处理。
方式一,当检测到数据读取的合规规则发生变化时,获取变化后的合规规则;基于变化后的合规规则对数据读取规则进行修改,得到修改后的数据读取规则。
在实施中,数据读取规则中可以包括多种不同的内容,在实际应用中,还可以实际情况,在该数据读取规则中设置用于对数据进行筛选的模型,具体如分类模型等,该模型可以通过预定的编程语言编写的较复杂的程序得到,还可以是通过较简单的算法得到,本说明书实施例对此不做限定。由于数据读取规则是基于数据读取的合规规则确定的,因此,可以通过检测数据读取的合规规则的变化来触发对数据读取规则的修改,具体地,可以预先设置合规规则的检测周期,每当到达该检测周期时,检测数据读取的合规规则是否发生变化(具体如通过与上一周期的数据读取的合规规则进行比对,确定数据读取的合规规则是否发生变化)。当检测到数据读取的合规规则发生变化时,获取变化后的合规规则,然后,可以基于变化后的合规规则对数据读取规则进行修改,得到修改后的数据读取规则,例如,变化后的合规规则中增加了2个违禁词,则基于增加的违禁词对数据读取规则进行相应修改,得到修改后的数据读取规则。
需要说明的是,触发对数据读取规则进行修改的具体方式可以包括多种,具体可以根据实际情况设定,本说明书实施例对此不做限定。
方式二,接收对目标数据对应的数据读取规则的修改请求;基于修改请求对目标数据对应的数据读取规则进行修改,得到修改后的数据读取规则。
在实施中,为了避免无关用户对数据读取规则进行修改,还可以为该数据读取规则设置具备修改权限的用户(如最初设置或创建该数据读取规则的用户或预先指定的用户等)的相关信息,即只有具备修改权限的用户可以对数据读取规则进行修改。当需要对数据读取规则进行修改时,用户可以通过其终端设备中安装的相应的应用程序,输入需要修改数据读取规则的标识和需要修改的信息,输入完成后,终端设备可以获取输入的需要修改数据读取规则的标识和修改的信息,并可以生成修改请求,可以将该修改请求发送给该服务器,该服务器可以接收数据读取规则的修改请求。
服务器接收到数据读取规则的修改请求后,可以获取该修改请求中包含的数据读取规则的标识,并可以通过该标识查找到相应的数据读取规则。可以获取具备对该数据读取规则进行修改权限的用户的信息,可以从获取的具备修改权限的用户的信息中,查找其中是否包含当前的修改请求的发起方的信息,如果包含,则可以确定当前的修改请求的发起方具备对该数据读取规则进行修改的权限,此时,服务器可以基于上述修改请求对可信执行环境中的数据读取规则进行修改,得到修改后的数据读取规则。如果不包含,则可以确定当前的修改请求的发起方不具备对该数据读取规则进行修改的权限,此时,该服务器可以向当前的修改请求的发起方发送修改失败的通知消息。
此外,上述目标数据可以为经过加密处理的数据,则还可以通过以下方式对目标数据进行处理,具体可以包括以下步骤S314的处理。
在步骤S314中,在预定的可信执行环境中,对经过加密处理的目标数据进行解密,得到目标数据。
在步骤S316中,在预定的可信环境中,基于该数据读取规则确定目标数据中的可读取内容。
在实施中,对于上述修改后的数据读取规则,可以使用修改后的数据读取规则确定目标数据中的可读取内容,则上述步骤S316的处理可以包括:在预定的可信执行环境中,基于修改后的数据读取规则确定目标数据中的可读取内容,其具体处理过程可以参见上述相关内容,在此不再赘述。
在步骤S318中,将目标数据中的可读取内容保持不变,并对目标数据中剩余的内容进行处理,得到处理后的目标数据。
在实施中,服务器通过数据读取规则,确定目标数据中的可读取内容后,可以得到其中包含的可读取内容,对于可读取内容,可以保持在目标数据中的位置和内容不变,可以对目标数据中除可读取内容外的剩余的内容进行处理,具体如,可以使用指定的字符(如“*”或“&”等)代替上述剩余的内容中的每个字符,最终可以得到处理后的目标数据。
在步骤S320中,将处理后的目标数据展示给上述读取请求的发送方。
本说明书实施例提供一种区块链数据的处理方法,在读取区块链中存储的目标数据之前,可以从区块链中获取目标数据的读取权限索引信息,并基于该读取权限索引信息获取目标数据对应的数据读取规则,在预定的可信环境中,基于该数据读取规则确定目标数据中的可读取内容,从而保证了对区块链中的目标数据进行内容筛选的安全性,而且,通过区块链中存储目标数据的读取权限索引信息,在区块链外存储相应的数据读取规则来解决区块链中的数据无法更改和数据读取规则动态变化之间的矛盾,实现了对区块链中存储的数据进行读取前的合规核验。
实施例三
以上为本说明书实施例提供的区块链数据的处理方法,基于同样的思路,本说明书实施例还提供一种区块链数据的处理装置,如图4所示。
该区块链数据的处理装置包括:读取请求模块401、信息获取模块402、可读取内容确定模块403和读取模块404,其中:
读取请求模块401,接收对区块链中存储的目标数据的读取请求;
信息获取模块402,从所述区块链中获取所述目标数据的读取权限索引信息,并基于所述读取权限索引信息获取所述目标数据对应的数据读取规则,所述数据读取规则用于确定所述目标数据中的可读取内容;
可读取内容确定模块403,在预定的可信环境中,基于所述数据读取规则确定所述目标数据中的可读取内容;
读取模块404,将所述目标数据中的可读取内容提供给所述读取请求的发送方。
本说明书实施例中,所述读取模块404,包括:
内容处理单元,将所述目标数据中的可读取内容保持不变,并对所述目标数据中剩余的内容进行处理,得到处理后的目标数据;
展示单元,将所述处理后的目标数据展示给所述读取请求的发送方。
本说明书实施例中,所述装置还包括:
上链请求模块,接收所述目标数据的上链请求;
规则生成模块,在预定的可信环境中,根据预设的数据读取的合规规则和所述目标数据,生成所述目标数据对应的数据读取规则和所述目标数据的读取权限索引信息;
信息上传模块,将所述目标数据和所述目标数据的读取权限索引信息上传至区块链中。
本说明书实施例中,所述装置还包括:
规则变化检测模块,当检测到所述数据读取的合规规则发生变化时,获取变化后的合规规则;
规则修改模块,基于所述变化后的合规规则对所述数据读取规则进行修改,得到修改后的数据读取规则;
所述可读取内容确定模块403,在预定的可信环境中,基于所述修改后的数据读取规则确定所述目标数据中的可读取内容。
本说明书实施例中,所述规则生成模块,包括:
核验单元,在预定的可信环境中,根据预设的数据核验规则对所述目标数据的内容进行核验,得到核验结果;
规则生成单元,如果所述核验结果为通过,则在预定的可信环境中,根据预设的数据读取的合规规则和所述目标数据,生成所述目标数据对应的数据读取规则和所述目标数据的读取权限索引信息。
本说明书实施例中,所述装置还包括:
修改请求模块,接收对所述目标数据对应的数据读取规则的修改请求;
规则修改模块,基于所述修改请求对所述目标数据对应的数据读取规则进行修改,得到修改后的数据读取规则;
所述可读取内容确定模块403,在预定的可信环境中,基于所述修改后的数据读取规则确定所述目标数据中的可读取内容。
本说明书实施例中,所述目标数据为经过加密处理的数据,所述装置还包括:
解密模块,在预定的可信执行环境中,对经过加密处理的目标数据进行解密,得到所述目标数据。
本说明书实施例提供一种区块链数据的处理装置,在读取区块链中存储的目标数据之前,可以从区块链中获取目标数据的读取权限索引信息,并基于该读取权限索引信息获取目标数据对应的数据读取规则,在预定的可信环境中,基于该数据读取规则确定目标数据中的可读取内容,从而保证了对区块链中的目标数据进行内容筛选的安全性,而且,通过区块链中存储目标数据的读取权限索引信息,在区块链外存储相应的数据读取规则来解决区块链中的数据无法更改和数据读取规则动态变化之间的矛盾,实现了对区块链中存储的数据进行读取前的合规核验。
实施例四
以上为本说明书实施例提供的区块链数据的处理装置,基于同样的思路,本说明书实施例还提供一种区块链数据的处理设备,如图5所示。
所述区块链数据的处理设备可以为上述实施例提供的终端设备或服务器,该终端设备或服务器可以是用于对已上传至区块链中的数据是否能够被用户所读取进行检测和处理的终端设备或服务器。该终端设备或服务器中可以设置有可信执行环境,该可信执行环境可以是TEE(Trusted Execution Environment),该可信执行环境可以基于硬件设备实现,或者还可以通过预定的编程语言编写的程序来实现(即可以是以软件的形式实现)。
区块链数据的处理设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器501和存储器502,存储器502中可以存储有一个或一个以上存储应用程序或数据。其中,存储器502可以是短暂存储或持久存储。存储在存储器502的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对区块链数据的处理设备中的一系列计算机可执行指令。更进一步地,处理器501可以设置为与存储器502通信,在区块链数据的处理设备上执行存储器502中的一系列计算机可执行指令。区块链数据的处理设备还可以包括一个或一个以上电源503,一个或一个以上有线或无线网络接口504,一个或一个以上输入输出接口505,一个或一个以上键盘506。
具体在本实施例中,区块链数据的处理设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对区块链数据的处理设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
接收对区块链中存储的目标数据的读取请求;
从所述区块链中获取所述目标数据的读取权限索引信息,并基于所述读取权限索引信息获取所述目标数据对应的数据读取规则,所述数据读取规则用于确定所述目标数据中的可读取内容;
在预定的可信环境中,基于所述数据读取规则确定所述目标数据中的可读取内容;
将所述目标数据中的可读取内容提供给所述读取请求的发送方。
本说明书实施例中,所述将所述目标数据中的可读取内容提供给所述读取请求的发送方,包括:
将所述目标数据中的可读取内容保持不变,并对所述目标数据中剩余的内容进行处理,得到处理后的目标数据;
将所述处理后的目标数据展示给所述读取请求的发送方。
本说明书实施例中,还包括:
接收所述目标数据的上链请求;
在预定的可信环境中,根据预设的数据读取的合规规则和所述目标数据,生成所述目标数据对应的数据读取规则和所述目标数据的读取权限索引信息;
将所述目标数据和所述目标数据的读取权限索引信息上传至区块链中。
本说明书实施例中,还包括:
当检测到所述数据读取的合规规则发生变化时,获取变化后的合规规则;
基于所述变化后的合规规则对所述数据读取规则进行修改,得到修改后的数据读取规则;
所述在预定的可信环境中,基于所述数据读取规则确定所述目标数据中的可读取内容,包括:
在预定的可信环境中,基于所述修改后的数据读取规则确定所述目标数据中的可读取内容。
本说明书实施例中,所述在预定的可信环境中,根据预设的数据读取的合规规则和所述目标数据,生成所述目标数据对应的数据读取规则和所述目标数据的读取权限索引信息,包括:
在预定的可信环境中,根据预设的数据核验规则对所述目标数据的内容进行核验,得到核验结果;
如果所述核验结果为通过,则在预定的可信环境中,根据预设的数据读取的合规规则和所述目标数据,生成所述目标数据对应的数据读取规则和所述目标数据的读取权限索引信息。
本说明书实施例中,还包括:
接收对所述目标数据对应的数据读取规则的修改请求;
基于所述修改请求对所述目标数据对应的数据读取规则进行修改,得到修改后的数据读取规则;
所述在预定的可信环境中,基于所述数据读取规则确定所述目标数据中的可读取内容,包括:
在预定的可信环境中,基于所述修改后的数据读取规则确定所述目标数据中的可读取内容。
本说明书实施例中,所述目标数据为经过加密处理的数据,所述在预定的可信环境中,基于所述数据读取规则确定所述目标数据中的可读取内容之前,还包括:
在预定的可信执行环境中,对经过加密处理的目标数据进行解密,得到所述目标数据。
本说明书实施例提供一种区块链数据的处理设备,在读取区块链中存储的目标数据之前,可以从区块链中获取目标数据的读取权限索引信息,并基于该读取权限索引信息获取目标数据对应的数据读取规则,在预定的可信环境中,基于该数据读取规则确定目标数据中的可读取内容,从而保证了对区块链中的目标数据进行内容筛选的安全性,而且,通过区块链中存储目标数据的读取权限索引信息,在区块链外存储相应的数据读取规则来解决区块链中的数据无法更改和数据读取规则动态变化之间的矛盾,实现了对区块链中存储的数据进行读取前的合规核验。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书一个或多个实施例时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书的实施例是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程区块链数据的处理设备的处理器以产生一个机器,使得通过计算机或其他可编程区块链数据的处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程区块链数据的处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程区块链数据的处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。