基于区块链的数据存证方法及装置、电子设备
技术领域
本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种基于区块链的数据存证方法及装置、电子设备。
背景技术
区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。由于区块链技术具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的特性,使得区块链技术已在众多的领域中广泛的进行应用。
发明内容
本说明书提出一种基于区块链的数据存证方法,应用于终端设备;其中,所述终端设备搭载了安全运算环境,所述安全运算环境中存储了与所述终端设备对应的私钥,所述方法包括:
获取采集到的目标数据;
计算所述目标数据的数据摘要;
在所述安全运算环境中基于与所述终端设备对应的私钥对所述数据摘要进行签名,并将签名后的所述数据摘要发布至所述区块链,以由区块链中的节点设备基于所述私钥对应的公钥对所述数据摘要的签名进行验证,并在所述签名验证通过后,将所述数据摘要在区块链中进行数据存证。
可选的,在所述安全运算环境中基于与所述终端设备对应的私钥对所述数据摘要进行签名,包括:
获取所述终端的使用用户输入的身份信息;
基于获取到的所述身份信息针对所述使用用户进行身份认证;
如果针对所述使用用户的身份认证通过,在所述安全运算环境中基于与所述终端设备对应的私钥对所述数据摘要进行签名。
可选的,所述安全运算环境中存储了密钥生成算法;
所述方法还包括:
获取所述终端设备的使用用户在首次使用所述终端设备时输入的身份信息;
基于获取到的所述身份信息针对所述使用用户进行身份认证;
如果针对所述使用用户的身份认证通过,在所述安全运算环境中调用所述密钥生成算法生成所述私钥以及公钥;以及,
将生成的所述私钥与所述使用用户的身份信息进行绑定,并将绑定关系在所述安全运算环境进行存储。
可选的,在所述安全运算环境中基于与所述终端设备对应的私钥对所述数据摘要进行签名,包括:
获取所述终端的使用用户输入的身份信息;
确定所述安全运算环境中是否存储了与所述身份信息绑定的私钥;
如果是,在所述安全运算环境中基于与所述身份信息绑定的私钥对所述数据摘要进行签名。
可选的,所述安全运算环境中还存储了基于所述终端设备的生产商持有的私钥进行签名后的设备认证信息;
在所述安全运算环境中基于所述私钥对所述数据摘要进行签名之前,还包括:
基于所述终端设备的生产商持有的私钥对应的公钥,对所述设备认证信息的签名进行验证;如果验证通过,确定所述终端设备为所述生产商生产的合法终端设备,进一步在所述安全运算环境中基于与所述终端设备对应的私钥对所述数据摘要进行签名。
可选的,在所述安全运算环境中基于与所述终端设备对应的私钥对所述数据摘要进行签名,并将签名后的所述目标数据发布至所述区块链,包括:
在所述安全运算环境中基于与所述终端设备对应的私钥对所述数据摘要和所述目标数据的描述信息进行整体签名,并将签名后的所述数据摘要和所述描述数据,发布至所述区块链证;或者,
在所述安全运算环境中基于与所述终端设备对应的私钥对所述数据摘要进行签名,并将所述目标数据的描述数据和签名后的所述数据摘要发布至所述区块链。
可选的,所述描述数据包括:所述目标数据的采集时刻、采集地点、以及所述目标数据相关的对象中的一个或者多个的组合。
可选的,所述终端设备包括执法记录仪或者行车记录仪;所述目标数据包括视频数据、音频数据、图像数据中的一种或者多种的组合。
本说明书还提出一种基于区块链的数据存证装置,应用于终端设备;其中,所述终端设备搭载了安全运算环境,所述安全运算环境中存储了与所述终端设备对应的私钥,所述装置包括:
获取模块,获取采集到的目标数据;
计算模块,计算所述目标数据的数据摘要;
存证模块,在所述安全运算环境中基于与所述终端设备对应的私钥对所述数据摘要进行签名,并将签名后的所述数据摘要发布至所述区块链,以由区块链中的节点设备基于所述私钥对应的公钥对所述数据摘要的签名进行验证,并在所述签名验证通过后,将所述数据摘要在区块链中进行数据存证。
可选的,所述存证模块进一步:
获取所述终端的使用用户输入的身份信息;
基于获取到的所述身份信息针对所述使用用户进行身份认证;
如果针对所述使用用户的身份认证通过,在所述安全运算环境中基于与所述终端设备对应的私钥对所述数据摘要进行签名。
可选的,所述安全运算环境中存储了密钥生成算法;
所述获取模块进一步:
获取所述终端设备的使用用户在首次使用所述终端设备时输入的身份信息;
所述存证模块进一步:
基于所述获取模块获取到的所述身份信息针对所述使用用户进行身份认证;如果针对所述使用用户的身份认证通过,在所述安全运算环境中调用所述密钥生成算法生成所述私钥以及公钥;以及,将生成的所述私钥与所述使用用户的身份信息进行绑定,并将绑定关系在所述安全运算环境进行存储。
可选的,所述存证模块进一步:
获取所述终端的使用用户输入的身份信息;
确定所述安全运算环境中是否存储了与所述身份信息绑定的私钥;
如果是,在所述安全运算环境中基于与所述身份信息绑定的私钥对所述数据摘要进行签名。
可选的,所述安全运算环境中还存储了基于所述终端设备的生产商持有的私钥进行签名后的设备认证信息;
所述存证模块进一步:
在所述安全运算环境中基于所述私钥对所述数据摘要进行签名之前,基于所述终端设备的生产商持有的私钥对应的公钥,对所述设备认证信息的签名进行验证;如果验证通过,确定所述终端设备为所述生产商生产的合法终端设备,进一步在所述安全运算环境中基于与所述终端设备对应的私钥对所述数据摘要进行签名。
可选的,存证模块:
在所述安全运算环境中基于与所述终端设备对应的私钥对所述数据摘要和所述目标数据的描述信息进行整体签名,并将签名后的所述数据摘要和所述描述数据,发布至所述区块链证;或者,
在所述安全运算环境中基于与所述终端设备对应的私钥对所述数据摘要进行签名,并将所述目标数据的描述数据和签名后的所述数据摘要发布至所述区块链。
可选的,所述描述数据包括:所述目标数据的采集时刻、采集地点、以及所述目标数据相关的对象中的一个或者多个的组合。
可选的,所述终端设备包括执法记录仪或者行车记录仪;所述目标数据包括视频数据、音频数据、图像数据中的一种或者多种的组合。
本说明书还提出一种电子设备,包括:
处理器;
用于存储机器可执行指令的存储器;
其中,通过读取并执行所述存储器存储的与基于区块链的基于区块链的数据存证的控制逻辑对应的机器可执行指令,所述处理器被促使:
获取采集到的目标数据;其中,所述电子设备搭载了安全运算环境,所述安全运算环境中存储了与所述电子设备对应的私钥;
计算所述目标数据的数据摘要;
在所述安全运算环境中基于与所述电子设备对应的私钥对所述数据摘要进行签名,并将签名后的所述数据摘要发布至所述区块链,以由区块链中的节点设备基于所述私钥对应的公钥对所述数据摘要的签名进行验证,并在所述签名验证通过后,将所述数据摘要在区块链中进行数据存证。
在以上技术方案中,一方面,通过对终端设备的硬件环境进行改造,在终端设备中搭载安全运算环境,并在安全运算环境中存储与终端设备对应的私钥,使得终端设备在将采集到的数据在区块链上进行存证时,可以在安全运算环境中基于私钥对需要存证的数据进行签名,从而可以避免在区块链上存证的数据在传播过程中被篡改,可以保障在区块链上存证数据时的数据安全;
另一方面,通过对区块链上进行数据存证的流程进行改进,终端设备不再需要将采集到的数据的原始内容在区块链上存证,而是将采集到的数据的原始内容在本地存储,并将原始内容的数据摘要在区块链上存证,使得终端设备可以作为物理世界和链上世界的枢纽,更加便捷的将采集到的数据在区块链上进行存证;而且,对于获得终端采集到的数据的第三方而言,由于通过将获得的数据的数据摘要,与在区块链上存证的该数据的数据摘要进行匹配,就可以便捷的对获得的数据进行合法性验证;因此,使得终端设备采集到的数据将可以作为证据提交给第三方,可以显著的提升终端设备采集到的数据的可用性。
附图说明
图1是一示例性实施例提供的一种基于区块链的数据存证方法的流程图。
图2是一示例性实施例提供的一种电子设备的结构示意图。
图3是一示例性实施例提供的一种基于区块链的数据存证装置的框图。
具体实施方式
由于在区块链存储的数据具有不可篡改的特性,因此将数据存储在区块链上来做数据存证,是业界目前的主流趋势。
然而,在实际应用中,对于一些流数据;比如,执法记录仪或者行车记录仪采集到的视频流、音频流等数据;由于其自身所需占用的存储空间较大,则通常无法直接存储到区块链上进行存证。
但在一些场景下,这类流数据却又存在着强烈的存证需求;比如,在司法存证的场景,对于执法记录仪或者行车记录仪采集到的视频流,可能会作为证据提交给司法部门。
由于缺乏数据认证手段,这类流数据作为证据的合法性,通常会存在广泛质疑。因此,对于这类流数据,最好的处理方式还是存储在区块链上进行数据局存证;同时,还需要能够更加便捷的验证这些存证的数据作为司法证据的合法性。
基于以上需求,本说明书提出一种将终端设备作为物理世界和链上世界的枢纽,来更加便捷的将其采集到的数据在区块链上进行存证的技术方案。
在实现时,可以对终端设备的硬件环境进行改进,在终端设备的硬件环境中搭建安全运算环境,并在安全运算环境中存储和维护与终端设备对应的私钥。
例如,以终端设备为执法记录仪或者行车记录仪为例,可以在执法记录仪或者行车记录仪的硬件环境中搭载安全芯片,并基于该安全芯片来搭建安全运算环境,利用该安全运算环境来存储和维护执法记录仪或者行车记录仪持有的私钥,面向执法记录仪或者行车记录仪提供安全的运算环境。
进一步的,终端设备在采集到需要在区块链上存证的数据之后,可以获取采集到的数据,并计算采集到的数据的数据摘要,然后在安全运算环境中基于与终端设备对应的私钥,对计算出的数据摘要进行签名处理,然后将签名后的数据摘要发布至区块链。
区块链中的节点设备在收到终端设备发布的签名后的数据摘要之后,可以获取与该终端设备的私钥对应的公钥,然后基于该公钥对该数据摘要的签名进行验证;如果签名验证通过,可以将该数据摘要存储到区块链中进行数据存证。
在以上技术方案中,一方面,通过对终端设备的硬件环境进行改造,在终端设备中搭载安全运算环境,并在安全运算环境中存储与终端设备对应的私钥,使得终端设备在将采集到的数据在区块链上进行存证时,可以在安全运算环境中基于私钥对需要存证的数据进行签名,从而可以避免在区块链上存证的数据在传播过程中被篡改,可以保障在区块链上存证数据时的数据安全;
另一方面,通过对区块链上进行数据存证的流程进行改进,终端设备不再需要将采集到的数据的原始内容在区块链上存证,而是将采集到的数据的原始内容在本地存储,并将原始内容的数据摘要在区块链上存证,使得终端设备可以作为物理世界和链上世界的枢纽,更加便捷的将采集到的数据在区块链上进行存证;而且,对于获得终端采集到的数据的第三方而言,由于通过将获得的数据的数据摘要,与在区块链上存证的该数据的数据摘要进行匹配,就可以便捷的对获得的数据进行合法性验证;因此,使得终端设备采集到的数据将可以作为证据提交给第三方,可以显著的提升终端设备采集到的数据的可用性。
下面通过具体实施例并结合具体的应用场景对本说明书进行描述。
请参考图1,图1是本说明书一实施例提供的一种基于区块链的数据存证方法,应用于终端设备,其中,所述终端设备搭载了安全运算环境,所述安全运算环境中存储了与所述终端设备对应的私钥执行以下步骤:
步骤102,获取采集到的目标数据;
步骤104,计算所述目标数据的数据摘要;
步骤106,在所述安全运算环境中基于与所述终端设备对应的私钥对所述数据摘要进行签名,并将签名后的所述数据摘要发布至所述区块链,以由区块链中的节点设备基于所述私钥对应的公钥对所述数据摘要的签名进行验证,并在所述签名验证通过后,将所述数据摘要在区块链中进行数据存证。
在本说明书所描述的区块链,具体可以包括私有链、共有链以及联盟链等,在本说明书中不进行特别限定。
例如,在一个场景中,上述区块链具体可以是由第三方支付平台的服务器、境内银行服务器、境外银行服务器、以及若干用户节点设备作为成员设备组成的一个联盟链。该联盟链的运营方可以依托于该联盟链,来在线部署诸如基于联盟链的跨境转账、资产转移等在线业务。
上述终端设备,可以包括能够作为节点设备加入区块链,并将采集到的数据在区块链上进行存证的任意形式的终端设备;
例如,在实际应用中,上述终端设备具体可以包括执法记录仪或者行车记录仪等。执法记录仪或者行车记录仪可以作为节点加入区块链,并将采集到的诸如视频数据、音频数据等流数据,在区块链上进行存证。
其中,将数据在区块链上进行存证,是指将数据作为证据在区块链中进行持久化存储。
上述目标数据,包括由终端设备采集到的,需要在区块链的分布式数据库中完成数据存证的任意类型的数据;
例如,上述目标数据具体可以是诸如执法记录仪或者行车记录仪等终端设备采集到的视频数据、音频数据、图像数据等流数据。
在本说明书中,可以对终端设备的硬件环境进行改造,在终端设备的硬件环境中搭建安全运算环境,并利用搭建的安全运算环境,来存储和维护与终端设备对应的私钥,并面向终端设备提供安全的运算环境。
其中,在终端设备的硬件环境中搭建安全运算环境的具体方式,在本说明书中不进行特别限定。
在实际应用中,可以通过在终端设备的硬件环境中引入新的硬件来搭建安全运算环境,也可以对终端设备的硬件环境中已有的硬件的软件环境进行改造来搭建安全运算环境;或者,也可以将在终端设备的硬件环境中引入新的硬件,以及对终端设备的硬件环境中已有的硬件的软件环境进行改造的搭建方式进行结合的方式,来为终端设备搭建安全运算环境。
例如,在一种实施方式中,可以采用基于SE(Secure Element,安全元件)的解决方案,为终端设备搭建安全运算环境。在这种解决方案下,可以在终端设备的硬件环境中引入SE硬件(可以是内置于终端的硬件环境中的硬件,也可以是通过接口外接在终端上的硬件),利用SE硬件来存储和维护终端设备的私钥,并面向终端设备提供安全运算环境。
在示出的另一种实施方式中,可以采用基于TEE(Trusted ExecutionEnvironment,可信执行环境)的解决方案,为终端设备搭建安全运算环境。在这种解决方案下,可以对终端设备的硬件环境中已有的硬件(比如主芯片)的软件环境进行改造,在该软件环境中来搭建可信执行环境,利用该可信执行环境来存储和维护终端设备的私钥,并面向终端设备提供安全运算环境。
在示出的第三种实施方式,可以采用基于SE+TEE的解决方案,为终端设备搭建安全运算环境。在这种解决方案下,可以利用SE硬件来存储和维护终端设备的私钥,利用TEE来面向终端设备提供安全运算环境。
需要说明的是,以上列举出的为终端设备搭建安全运算环境的实施方式,进为示例性的。在实际应用中,显然也可以通过以上列举出的其它实施手段,为终端设备搭建安全运算环境,在本说明书中不在进行一一列举。
在本说明书中,上述终端设备可以作为节点设备加入到区块链(也称之为设备上链),并将与该终端设备对应的私钥,在为该终端设备搭建的安全运算环境中进行存储和维护。
其中,与终端设备对应的私钥,具体可以是由终端设备持有的私钥,也可以是终端设备的使用用户所持有的私钥。
也即,本说明书中描述的“与终端设备对应的私钥”,具体可以是终端设备的设备生产商在设备生产阶段,为该终端设备生成的,并由终端设备持有的私钥;也可以是由终端设备在用户使用该终端设备时,由终端设备自主的为该用户生成的,并由该用户个人持有的私钥。
在示出的一种实施方式中,终端设备持有的私钥以及公钥,可以由设备生产商在设备生产阶段为终端设备生成,并由设备生产商预先将该私钥写入该终端设备的安全运算环境中进行存储和维护。
在这种情况下,终端设备持有的私钥以及公钥,则与终端设备的使用用户的身份并不关联。对于该终端设备的不同的使用用户而言,可以共用由设备生产商默认写入该终端设备的安全运算环境中的同一个私钥。
在示出的一种实施方式中,终端设备持有的私钥以及公钥,也可以由终端设备自主的为该终端设备的使用用户生成,并由终端设备自主的将该私钥写入该终端设备的安全运算环境。
在这种情况下,终端设备自主的生成的私钥以及公钥,可以与终端设备的使用用户的身份相关联,终端设备可以基于不同的使用用户的身份信息,为不同的使用用户分别生成一对私钥和公钥,并将生成的私钥与各使用用户的身份信息分别进行绑定,然后将绑定关系在安全运算环境中进行存储和维护。
例如,在实现时,终端设备的生产商可以预先将密钥生成算法写入该终端设备的安全运算环境。当终端设备的使用用户在使用终端设备时,终端设备可以提示使用用户输入身份信息进行身份认证;
其中,使用用户输入的身份信息的数据类型,以及终端设备所采用的身份认证方式,在本说明书中均不进行特别的限定;例如,可以采用诸如输入密码或者口令的传统认证方式,也可以采用诸如基于指纹或者人脸等生理特征的认证方式。
当终端设备获取到使用用户输入的身份信息后,可以确定安全运算环境中是否存储了与该身份信息绑定的私钥;如果安全运算环境中并未存储与该身份信息绑定的私钥,表明该使用用户为首次使用该终端设备的新用户,此时终端设备可以基于获取到的该身份信息对该使用用户进行身份认证;如果针对该使用用户身份认证通过,则终端设备可以在上述安全运算环境中调用上述密钥生成算法生成一对私钥以及公钥,并将生成的私钥与该使用用户的身份信息进行绑定,然后将绑定关系在上述安全运算环境中进行存储和维护。
在本说明书中,用户可以使用终端设备进行数据采集,并通过终端设备将采集到的数据在区块链上进行存证。
其中,在本说明书中,终端设备仅需要将采集到的数据在本地存储,并将采集到的数据的数据摘要在区块链上进行存证即可,不再需要将采集到的数据的原始内容在区块链上进行存证。
需要说明的是,如果终端设备采集到的目标数据为诸如视频数据、音频数据等流数据,这类流数据在区块链上进行存证时,终端设备可以按照预设的时间周期,对流数据进行分片存证的方式;
例如,以视频数据为例,终端设备可以将每N分钟的视频数据作为一个分片,计算该分片的数据摘要,然后将该分片的数据摘要在区块链中进行存证,并严格保证在区块链上存证的各分片的数据摘要在时间上的顺序,以便于进行回溯。
在本说明书中,终端设备在需要将采集到的目标数据在区块链上进行存证时,首先可以计算该目标数据的数据摘要;比如,该数据摘要具体可以是基于特定的哈希算法计算该目标数据的hash值;然后,终端设备可以在安全运算环境中,基于安全运算环境中存储的私钥,对该数据摘要进行签名处理。
在示出的一种实施方式中,在上述终端设备的安全运算环境中,还可以存储和维护,基于该终端设备的生产商持有的私钥进行签名后的设备认证信息;例如,该设备认证信息,可以在设备生成阶段有设备生产商基于持有的私钥进行签名处理后,写入安全运算环境进行存储和维护。
其中,上述设备认证信息,具体可以是用于对终端设备进行合法性认证的任意形式的信息;例如,上述设备认证信息具体可以是诸如终端设备的生产编号或者其它形式的防伪信息。
在这种情况下,终端设备可以在安全运算环境中,基于安全运算环境中存储的私钥,对该数据摘要进行签名处理之前,可以获取与该终端设备的生厂商持有的私钥对应的公钥,并基于获取到的该公钥,对该设备认证信息的签名进行验证;如果验证通过,可以确定该终端设备为该生产商生产的合法终端设备;此时,终端设备再进一步执行,在安全运算环境中,基于该安全运算环境中存储的私钥,对该数据摘要进行签名的处理过程。
通过这种方式,可以在基于安全运算环境中存储的私钥,对上链的摘要数据进行签名处理之前,引入终端设备的合法验证,及时终止一些非法设备(比如伪造设备,或者被恶意改造后的合法设备)的数据上链行为,可以提升上链数据的安全等级。
在示出的一种实施方式中,如果终端设备的安全运算环境中存储和维护的私钥,为设备生产商在设备生产阶段为终端设备生成的,由终端设备持有的私钥;在这种情况下,可以引入对终端设备的使用用户的身份认证机制,提示使用用户输入身份信息进行身份认证;当终端设备获取到使用用户输入的身份信息后,可以基于获取到的身份信息对该使用用户进行身份认证;如果针对该使用用户的身份认证通过,终端设备可以在安全运算环境中,基于该安全运算环境中存储和维护的由该终端设备持有的私钥,对该数据摘要进行签名处理。
在示出的一种实施方式中,如果终端设备的安全运算环境中存储和维护的私钥,终端设备自主的为使用用户生成的,由使用用户持有的私钥;此时,安全运算环境中预先存储和维护了使用用户的身份信息与私钥的绑定关系。
在这种情况下,当终端设备获取到该使用用户输入的身份信息后,可以查询安全运算环境中维护的绑定关系,确定安全运算环境中是否存储了与该身份信息绑定的私钥;如果安全运算环境中存储了该身份信息绑定的私钥,终端设备可以在安全运算环境中,基于查询到的该私钥,对该数据摘要进行签名处理。
当然,如果安全运算环境中并未存储与该身份信息绑定的私钥,表明该使用用户为首次使用该终端设备的新用户,此时终端设备可以基于获取到的该身份信息对该使用用户进行身份认证,并在身份认证通过后,调用安全运算环境中存储的密钥生成算法,为该使用用户生成私钥和公钥,并使用生成的私钥,对该数据摘要进行签名处理;以及,将生成的私钥与该使用用户的身份信息进行绑定,然后将绑定关系在安全运算环境中进行存储和维护。
在本说明书中,当终端设备在安全运算环境中,基于安全运算环境中存储的私钥,对采集到的目标数据的数据摘要进行签名处理完成之后,可以将签名后的数据摘要,在区块链中进行发布;
例如,可以基于签名后的数据摘要构建一笔区块链交易(Transaction),将该交易向其它各节点设备进行广播扩散。
区块链中的节点设备在收到该签名后的数据摘要后,可以获取与安全运算环境中存储的私钥对应的公钥,然后基于获取到的公钥对该数据摘要的签名进行验证;如果该数据摘要的签名验证通过,该节点设备可以在区块链中发起对该数据摘要的共识处理,并在该数据摘要共识处理通过后,将该数据摘要打包进区块在区块链中进行存储,以完成针对该数据摘要的数据存证。
其中,需要说明的是,本说明书中所描述的区块链所采用的共识机制,在本说明书中不进行特别限定,在实际应用中,区块链的运营方可以基于实际的需求来灵活的选择。
在示出的另一种实施方式中,终端设备在将采集到的目标数据时,在区块链上进行存证时,还可以将该目标数据的描述数据与该目标数据的数据摘要,一并在区块链上进行存证。
这种情况下,终端设备在安全运算环境中,基于安全运算环境中存储的私钥,对该目标数据的数据摘要进行签名处理时,可以将该数据摘要和该目标数据的描述信息进行整体签名;即将数据摘要和该目标数据的描述信息进行打包后作为一个整体进行签名;然后,将签名后的数据摘要和上述目标数据的描述数据,发布至区块链进行数据存证。
例如,终端设备可以基于签名后的数据摘要和上述目标数据的描述数据构建一笔区块链交易,将该交易向其它各节点设备进行广播扩散。
或者,在另一种情况下,终端设备在安全运算环境中,基于安全运算环境中存储的私钥,对该目标数据的数据摘要进行签名处理时,也可以仅针对该数据摘要进行签名;然后,将上述目标数据的描述数据,和将签名后的数据摘要,发布至区块链进行数据存证。
例如,终端设备可以基于上述目标数据的描述数据,和签名后的数据摘要来构建一笔区块链交易,将该交易向其它各节点设备进行广播扩散。
其中,上述目标数据的描述信息所包含的具体内容,在本说明书中不进行特别限定,在实际应用中,可以涵盖与上述目标数据相关的任意内容;
在示出的一种实施方式中,由于数据的采集时刻、采集地点和数据相关的对象,通常为数据作为证据文件的极其重要的属性;因此,在本说明书中,上述目标数据的描述信息,具体可以包括上述目标数据的采集时刻、采集地点、以及上述目标数据相关的对象中的一个或者多个的组合。
其中,在示出的一种实施方式中,目标数据的采集时刻,具体可以是终端设备在采集到目标数据时,与时间认证中心进行交互,从时间认证中心获取到的经过认证的权威时刻(时间戳)。目标数据的采集地点,可以是终端设备采集到目标数据时,实时调用终端设备搭载的定位模块(比如GPS模块)获取到的精确采集地点。而与上述目标数据相关的对象,可以是终端设备在采集到目标数据后,由该终端设备的合法使用者手动输入的相关对象。
例如,以执法记录仪采集到的与车祸事件的取证视频数据为例,该视频数据的描述信息,具体可以包括采集到该视频数据的时刻从时间认证中心获取到的经过认证的权威时刻、采集到该视频数据的时刻执法记录仪实时调用定位模块获取到的精确采集地点、以及由执法者输入的与该视频数据相关的车辆信息、驾驶者信息等。
在以上技术方案中,一方面,通过对终端设备的硬件环境进行改造,在终端设备中搭载安全运算环境,并在安全运算环境中存储与终端设备对应的私钥,使得终端设备在将采集到的数据在区块链上进行存证时,可以在安全运算环境中基于私钥对需要存证的数据进行签名,从而可以避免在区块链上存证的数据在传播过程中被篡改,可以保障在区块链上存证数据时的数据安全;
另一方面,通过对区块链上进行数据存证的流程进行改进,终端设备不再需要将采集到的数据的原始内容在区块链上存证,而是将采集到的数据的原始内容在本地存储,并将原始内容的数据摘要在区块链上存证,使得终端设备可以作为物理世界和链上世界的枢纽,更加便捷的将采集到的数据在区块链上进行存证;
而且,对于获得终端采集到的数据的第三方而言,由于通过将获得的数据的数据摘要,与在区块链上存证的该数据的数据摘要进行匹配,就可以便捷的对获得的数据进行合法性验证;因此,使得终端设备采集到的数据将可以作为证据提交给第三方,可以显著的提升终端设备采集到的数据的可用性。
例如,对于执法记录仪或者行车记录仪等终端设备,只需要将采集到的视频数据、音频数据等流数据的原始内容在本地存储,并将这些流数据的原始内容的数据摘要在区块链上存证即可,不再需要将将这些流数据的原始内容在区块链上进行存证;
而且,用户在将执法记录仪或者行车记录仪采集到的流数据作为证据提交给第三方机构(比如司法机构或者保险公司)时,第三方机构只需要重新计算获得的数据的数据摘要,将该数据的数据摘要与在区块链上存证的该数据的数据摘要进行匹配,就可以便捷的对获得的数据进行合法性验证,从而通过这种方式,可以显著提升执法记录仪或者行车记录仪采集到的数据作为合法证据文件的高可用性。
与上述方法实施例相对应,本说明书还提供了一种基于区块链的数据存证装置的实施例。本说明书的基于区块链的数据存证装置的实施例可以应用在电子设备上。其中,所述电子设备搭载了安全运算环境,所述安全运算环境中存储了与所述电子设备对应的私钥,装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本说明书的基于区块链的数据存证装置所在电子设备的一种硬件结构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
图3是本说明书一示例性实施例示出的一种基于区块链的数据存证装置的框图。
请参考图3,所述基于区块链的数据存证装置30可以应用在前述图2所示的电子设备中,包括有:获取模块301、计算模块302和存证模块303。
获取模块301,获取采集到的目标数据;
计算模块302,计算所述目标数据的数据摘要;
存证模块303,在所述安全运算环境中基于与所述电子设备对应的私钥对所述数据摘要进行签名,并将签名后的所述数据摘要发布至所述区块链,以由区块链中的节点设备基于所述私钥对应的公钥对所述数据摘要的签名进行验证,并在所述签名验证通过后,将所述数据摘要在区块链中进行数据存证。
在本实施例中,所述存证模块303进一步:
获取所述终端的使用用户输入的身份信息;
基于获取到的所述身份信息针对所述使用用户进行身份认证;
如果针对所述使用用户的身份认证通过,在所述安全运算环境中基于与所述电子设备对应的私钥对所述数据摘要进行签名。
在本实施例中,所述安全运算环境中存储了密钥生成算法;
所述获取模块301进一步:
获取所述电子设备的使用用户在首次使用所述电子设备时输入的身份信息;
所述存证模块303进一步:
基于所述获取模块301获取到的所述身份信息针对所述使用用户进行身份认证;如果针对所述使用用户的身份认证通过,在所述安全运算环境中调用所述密钥生成算法生成所述私钥以及公钥;以及,将生成的所述私钥与所述使用用户的身份信息进行绑定,并将绑定关系在所述安全运算环境进行存储。
在本实施例中,所述存证模块303进一步:
获取所述终端的使用用户输入的身份信息;
确定所述安全运算环境中是否存储了与所述身份信息绑定的私钥;
如果是,在所述安全运算环境中基于与所述身份信息绑定的私钥对所述数据摘要进行签名。
在本实施例中,所述安全运算环境中还存储了基于所述电子设备的生产商持有的私钥进行签名后的设备认证信息;
所述存证模块303进一步:
在所述安全运算环境中基于所述私钥对所述数据摘要进行签名之前,基于所述电子设备的生产商持有的私钥对应的公钥,对所述设备认证信息的签名进行验证;如果验证通过,确定所述电子设备为所述生产商生产的合法电子设备,进一步在所述安全运算环境中基于与所述电子设备对应的私钥对所述数据摘要进行签名。
在本实施例中,存证模块303:
在所述安全运算环境中基于与所述电子设备对应的私钥对所述数据摘要和所述目标数据的描述信息进行整体签名,并将签名后的所述数据摘要和所述描述数据,发布至所述区块链证;或者,
在所述安全运算环境中基于与所述电子设备对应的私钥对所述数据摘要进行签名,并将所述目标数据的描述数据和签名后的所述数据摘要发布至所述区块链。
在本实施例中,所述描述数据包括:所述目标数据的采集时刻、采集地点、以及所述目标数据相关的对象中的一个或者多个的组合。
在本实施例中,所述电子设备包括执法记录仪或者行车记录仪;所述目标数据包括视频数据、音频数据、图像数据中的一种或者多种的组合。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
与上述方法实施例相对应,本说明书还提供了一种电子设备的实施例。该电子设备包括:处理器以及用于存储机器可执行指令的存储器;其中,处理器和存储器通常通过内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。
在本实施例中,通过读取并执行所述存储器存储的与基于区块链的数据存证的控制逻辑对应的机器可执行指令,所述处理器被促使:
获取采集到的目标数据;其中,所述电子设备搭载了安全运算环境,所述安全运算环境中存储了与所述电子设备对应的私钥;
计算所述目标数据的数据摘要;
在所述安全运算环境中基于与所述电子设备对应的私钥对所述数据摘要进行签名,并将签名后的所述数据摘要发布至所述区块链,以由区块链中的节点设备基于所述私钥对应的公钥对所述数据摘要的签名进行验证,并在所述签名验证通过后,将所述数据摘要在区块链中进行数据存证。
在本实施例中,通过读取并执行所述存储器存储的与基于区块链的数据存证的控制逻辑对应的机器可执行指令,所述处理器被促使:
获取所述终端的使用用户输入的身份信息;
基于获取到的所述身份信息针对所述使用用户进行身份认证;
如果针对所述使用用户的身份认证通过,在所述安全运算环境中基于与所述电子设备对应的私钥对所述数据摘要进行签名。
在本实施例中,所述安全运算环境中存储了密钥生成算法;
通过读取并执行所述存储器存储的与基于区块链的数据存证的控制逻辑对应的机器可执行指令,所述处理器被促使:
获取所述电子设备的使用用户在首次使用所述电子设备时输入的身份信息;
基于获取到的所述身份信息针对所述使用用户进行身份认证;
如果针对所述使用用户的身份认证通过,在所述安全运算环境中调用所述密钥生成算法生成所述私钥以及公钥;以及,
将生成的所述私钥与所述使用用户的身份信息进行绑定,并将绑定关系在所述安全运算环境进行存储。
在本实施例中,通过读取并执行所述存储器存储的与基于区块链的数据存证的控制逻辑对应的机器可执行指令,所述处理器被促使:
获取所述终端的使用用户输入的身份信息;
确定所述安全运算环境中是否存储了与所述身份信息绑定的私钥;
如果是,在所述安全运算环境中基于与所述身份信息绑定的私钥对所述数据摘要进行签名。
在本实施例中,所述安全运算环境中还存储了基于所述电子设备的生产商持有的私钥进行签名后的设备认证信息;
通过读取并执行所述存储器存储的与基于区块链的数据存证的控制逻辑对应的机器可执行指令,所述处理器被促使:
基于所述电子设备的生产商持有的私钥对应的公钥,对所述设备认证信息的签名进行验证;如果验证通过,确定所述电子设备为所述生产商生产的合法电子设备,进一步在所述安全运算环境中基于与所述电子设备对应的私钥对所述数据摘要进行签名。
在本实施例中,通过读取并执行所述存储器存储的与基于区块链的数据存证的控制逻辑对应的机器可执行指令,所述处理器被促使:
在所述安全运算环境中基于与所述电子设备对应的私钥对所述数据摘要和所述目标数据的描述信息进行整体签名,并将签名后的所述数据摘要和所述描述数据,发布至所述区块链证;或者,
在所述安全运算环境中基于与所述电子设备对应的私钥对所述数据摘要进行签名,并将所述目标数据的描述数据和签名后的所述数据摘要发布至所述区块链。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。