验证数据来源可靠性的方法、装置及系统与流程

文档序号:24411690发布日期:2021-03-26 19:37阅读:169来源:国知局
验证数据来源可靠性的方法、装置及系统与流程

1.本说明书一个或多个实施例涉及计算机技术领域,尤其涉及验证上传区块链的数据来源可靠性的方法、装置及系统。


背景技术:

2.区块链技术(blockchain technology,简称bt)是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式,用区块链技术所串接的分布式账本能让两方有效纪录交易,且可永久查验此交易。
3.由于区块链技术有着不可篡改、去中心化等特点,其在各种领域的应用越来越广泛。区块链的链上数据来源于链下设备,要保证不可篡改的链上数据可靠,区块链所记载的数据需要有可靠来源(或可信来源)。常规技术中可以通过数字证书等方式验证数据来源。基于证书的安全体系涉及到大量的密钥管理操作,包括证书颁发、查询和撤销,在数据量较大的情况下,难以满足需求。因此,如何通过尽可能小的资源占用,以更安全的第一私钥保存方式完成数据验证,是值得研究的问题。


技术实现要素:

4.本说明书一个或多个实施例描述了一种验证数据来源可靠性的方法、装置及系统,用以解决背景技术提到的一个或多个问题。
5.根据第一方面,提供一种验证数据来源可靠性的方法,用于验证上传至区块链网络的数据是否来源于第一设备;所述方法包括:在可信执行环境中,将与所述第一设备对应的唯一性标识作为第一公钥,通过预定方式按照预设的根密钥推导与所述第一公钥对应的第一私钥,所述第一设备用于获取待上传区块链网络的数据;将所述第一私钥由所述可信执行环境反馈至第一设备对应的第一可信模块;所述第一设备将所采集的第一数据经由所述第一可信模块利用所述第一私钥进行签名,得到第一签名;所述第一设备基于所述第一数据、所述第一签名以及所述唯一性标识,向区块链网络中的第一节点发出数据上传请求;所述第一节点基于所述数据上传请求,生成调用第一智能合约的第一交易,并将所述第一交易在区块链网络中广播,其中,所述第一智能合约预先部署在区块链网络,所述第一交易包括所述唯一性标识,所述第一数据和所述第一签名作为所述第一智能合约的传入参数;区块链网络中的各个节点执行所述第一调用请求,从而利用所述唯一性标识对所述第一签名进行验证,并在验证通过的情况下,确定所述第一数据为来源于所述第一设备的可信数据。
6.在一个实施例中,所述唯一性标识预先在所述区块链网络注册为用户标识,所述方法还包括:区块链网络中的各个节点在验证通过确定所述第一数据为来源于第一设备的可信数据的情况下,将所述第一数据在区块链网络中与所述用户标识对应存储。
7.在一个实施例中,所述第一设备为数据采集设备,或者关联若干个数据采集设备的控制中心设备或数据中心设备,所述数据由数据采集设备对预定实体进行监测产生。
8.在一个实施例中,所述可信模块为sim卡,所述唯一性标识为所述sim卡的国际移动设备身份码。
9.在一个实施例中,所述预定方式为以下中的一种:sm9算法、sm2算法。
10.根据第二方面,提供一种验证数据来源可靠性的方法,用于验证上传至区块链网络中的数据是否来源于第一设备,所述方法包括:在可信执行环境中,将与所述第一设备对应的唯一性标识作为第一公钥,通过预定方式按照预设的根密钥推导与所述第一公钥对应的第一私钥,所述第一设备用于获取待上传区块链网络的数据;将所述第一私钥由所述可信执行环境反馈至第一设备对应的第一可信模块;所述第一设备将所采集的第一数据经由所述第一可信模块利用所述第一私钥进行签名,得到第一签名;所述第一设备生成调用第一智能合约的第一交易,所述第一交易包括所述唯一性标识,所述第一数据和所述第一签名作为所述第一智能合约的传入参数,所述第一智能合约预先部署在区块链网络;经由在区块链网络中广播所述第一交易,区块链网络中的各个节点执行所述第一智能合约,从而利用所述唯一性标识对所述第一签名进行验证,并在验证通过的情况下,确定所述第一数据为来源于第一设备的可信数据。
11.在一个实施例中,在第一设备是区块链网络中的节点的情况下,所述经由在区块链网络中广播所述第一交易包括,经由第一设备在区块链网络中广播所述第一交易;在第一设备不是区块链网络中的节点的情况下,所述经由在区块链网络中广播所述第一交易包括:经由第一设备将所述第一交易发送至区块链网络中的第一节点;由第一节点在区块链网络中广播所述第一交易。
12.根据您第三方面,提供一种验证数据来源可靠性的方法,用于验证上传至区块链网络的数据是否来源于第一设备;所述方法包括:在可信执行环境中,将与所述第一设备对应的唯一性标识作为第一公钥,通过预定方式按照预设的根密钥推导与所述第一公钥对应的第一私钥,所述第一设备用于获取待上传区块链网络的数据;将所述第一私钥由所述可信执行环境反馈至所述第一设备对应的第一可信模块;所述第一设备将所采集的第一数据经由所述第一可信模块利用所述第一私钥进行签名,得到第一签名;所述第一设备向数据验证服务器发送向区块链网络上传数据的数据上传请求,其中,所述数据上传请求包括所述第一数据、所述第一签名以及所述唯一性标识;所述数据验证服务器通过所述唯一性标识,对所述第一签名进行验证,并在验证通过的情况下,确定所述第一数据为来源于所述第一设备的可信数据,从而向区块链网络上传所述第一数据。
13.根据第四方面,提供一种针对用于数据快速上链的可信模块的预处理方法,所述方法包括:通过可信执行环境将与多个可信模块各自对应的唯一性标识分别作为相应公钥,通过预定方式按照预设的根密钥推导与各个公钥分别对应的各个私钥,并将各个私钥反馈至相应可信模块;利用各个唯一性标识分别作为各个用户标识在区块链网络注册;从而,在所述多个可信模块中的第一可信模块安装在第一设备的情况下,利用所述第一可信模块对应的第一私钥对所述第一设备中待上传区块链网络的数据进行签名,以供区块链网络中的节点通过所述第一可信模块的唯一性标识对相应的签名进行验证。
14.根据第五方面,提供一种数据快速上链的方法,由用于获取待上传区块链网络的
数据的第一设备执行,包括:与第一可信模块建立连接,其中,所述第一可信模块为sim卡,所述sim卡具有的国际移动设备身份码作为相应唯一性标识,并经由可信执行环境将所述唯一性标识作为相应的第一公钥,通过预定方式按照预设的根密钥推导有对应的第一私钥,同时,所述唯一性标识还在区块链网络中作为用户标识进行注册;将待上传的第一数据经过所述第一可信模块利用所述第一私钥进行签名后上传区块链网络,以供区块链网络利用所述唯一性标识对所述第一数据的签名进行验证。
15.根据第六方面,提供一种向区块链网络上传数据的方法,由第一设备执行;所述方法包括:获取待上传至区块链网络的第一数据;将所述第一数据经由所述第一设备对应的第一可信模块利用第一私钥进行签名,得到第一签名,其中,所述第一私钥通过可信执行环境将与所述第一设备对应的唯一性标识作为第一公钥,在预定方式下按照预设的根密钥推导而来;基于所述第一签名、所述第一数据,以及所述唯一性标识,向区块链网络中的第一节点发出数据上传请求,所述第一节点基于所述数据上传请求,生成调用第一智能合约的第一交易,并将所述第一交易在区块链网络中广播,使得区块链网络中的各个节点执行所述第一智能合约,从而利用所述第一公钥对所述签名进行验证,并在验证通过的情况下,确定所述数据为来源于第一设备的可信数据,其中,所述第一智能合约预先部署在区块链网络。
16.在一个实施例中,所述第一设备为数据采集设备,或者关联若干个数据采集设备的控制中心设备或数据中心设备,所述数据由数据采集设备对预定实体进行监测产生。
17.在一个实施例中,所述可信模块为sim卡,所述唯一性标识为所述sim卡的国际移动设备身份码。
18.在一个实施例中,所述预定方式为以下中的一种:sm2算法、sm9算法。
19.根据第七方面,提供一种向区块链网络上传数据的方法,用于作为区块链网络的一个节点的第一设备向区块链网络上传数据,所述方法包括:获取待上传至区块链网络的第一数据;将所述第一数据经由所述第一设备对应的第一可信模块利用第一私钥进行签名,得到第一签名,其中,所述第一私钥通过可信执行环境将与所述第一设备对应的唯一性标识作为第一公钥,在预定方式下按照预设的根密钥推导而来;基于所述第一签名、所述第一数据,以及所述唯一性标识,生成调用第一智能合约的第一交易,并在区块链网络中广播所述第一交易,以供区块链网络中的各个节点执行所述第一智能合约,从而利用所述唯一性标识对所述第一签名进行验证,并在验证通过的情况下,确定所述第一数据为来源可靠的可信数据,其中,所述第一智能合约预先部署在区块链网络,所述第一交易包括所述唯一性标识,所述第一数据和所述第一签名作为所述第一智能合约的传入参数。
20.根据第八方面,提供一种验证数据来源可靠性的方法,所述方法由区块链网络中的第一节点执行,包括:接收第一设备发送的数据上传请求,所述数据上传请求包括第一数据、所述第一数据的第一签名,以及所述第一设备对应的唯一性标识;所述第一签名由所述第一设备对应的第一可信模块利用预先确定的第一私钥对所述第一数据进行签名确定,所述第一私钥由可信执行环境将所述唯一性标识作为第一公钥,在预定方式下按照预设的根密钥推导而来,所述唯一性标识还作为在区块链网络注册的用户标识;基于所述数据上传请求,生成调用第一智能合约的第一交易,并将所述第一交易在区块链网络中广播,以供区块链网络中的各个节点执行所述第一智能合约,从而利用所述唯一性标识对所述第一签名
进行验证,并在验证通过的情况下,确定所述第一数据为来源于所述第一设备的可信数据,所述第一智能合约预先部署在区块链网络,所述第一交易包括所述唯一性标识,所述第一数据和所述第一签名作为所述第一智能合约的传入参数。
21.在一个实施例中,所述方法还包括:在验证通过确定所述数据为来源于所述第一设备的可信数据的情况下,将所述第一数据与所述用户标识对应存储。
22.根据第九方面,提供一种验证数据来源可靠性的系统,包括第一设备、区块链网络、具有可信执行环境的第二设备,用于验证上传至区块链网络的数据是否来源于第一设备;其中:所述第二设备配置为,在可信执行环境中,将与所述第一设备对应的唯一性标识作为第一公钥,通过预定方式按照预设的根密钥推导与所述第一公钥对应的第一私钥,所述第一设备用于获取待上传区块链网络的数据;以及将所述第一私钥由所述可信执行环境反馈至第一设备对应的第一可信模块;所述第一设备配置为,将所采集的第一数据经由所述第一可信模块利用所述第一私钥进行签名,得到第一签名;以及,基于所述第一数据、所述第一签名以及所述唯一性标识,向区块链网络中的第一节点发出数据上传请求;区块链网络中的所述第一节点配置为,基于所述数据上传请求,生成调用第一智能合约的第一交易,并将所述第一交易在区块链网络中广播,其中,所述第一智能合约预先部署在区块链网络,所述第一交易包括所述唯一性标识,所述第一数据和所述第一签名作为所述第一智能合约的传入参数;区块链网络中的各个节点配置为,执行所述第一调用请求,从而利用所述唯一性标识对所述第一签名进行验证,并在验证通过的情况下,确定所述第一数据为来源于所述第一设备的可信数据。
23.根据第十方面,提供一种验证数据来源可靠性的系统,包括第一设备、区块链网络、具有可信执行环境的第二设备,用于验证上传至区块链网络中的数据是否来源于第一设备,所述第一设备为区块链网络中的节点;其中:所述第二设备配置为,在可信执行环境中,将与所述第一设备对应的唯一性标识作为第一公钥,通过预定方式按照预设的根密钥推导与所述第一公钥对应的第一私钥,所述第一设备用于获取待上传区块链网络的数据;以及将所述第一私钥由所述可信执行环境反馈至第一设备对应的第一可信模块;所述第一设备配置为,将所采集的第一数据经由所述第一可信模块利用所述第一私钥进行签名,得到第一签名;以及生成调用第一智能合约的第一交易,并在区块链网络中广播所述第一交易,所述第一交易包括所述唯一性标识,所述第一数据和所述第一签名作为所述第一智能合约的传入参数,所述第一智能合约预先部署在区块链网络;区块链网络中的各个节点配置为,执行所述第一智能合约,从而利用所述唯一性标识对所述第一签名进行验证,并在验证通过的情况下,确定所述第一数据为来源于第一设备的可信数据。
24.根据第十一方面,提供一种验证数据来源可靠性的系统,包括第一设备、区块链网
络、具有可信执行环境的第二设备及数据验证服务器,用于验证上传至区块链网络的数据是否来源于第一设备;其中:所述第二设备配置为,在可信执行环境中,将与所述第一设备对应的唯一性标识作为第一公钥,通过预定方式按照预设的根密钥推导与所述第一公钥对应的第一私钥,所述第一设备用于获取待上传区块链网络的数据;以及将所述第一私钥由所述可信执行环境反馈至所述第一设备对应的第一可信模块;所述第一设备配置为,将所采集的第一数据经由所述第一可信模块利用所述第一私钥进行签名,得到第一签名;以及向数据验证服务器发送向区块链网络上传数据的数据上传请求,其中,所述数据上传请求包括所述第一数据、所述第一签名以及所述唯一性标识;所述数据验证服务器配置为,通过所述唯一性标识,对所述第一签名进行验证,并在验证通过的情况下,确定所述第一数据为来源于所述第一设备的可信数据,从而向区块链网络上传所述第一数据。
25.根据第十二方面,提供一种针对用于数据快速上链的可信模块的预处理装置,所述装置包括:密钥生成单元,配置为通过可信执行环境将与多个可信模块各自对应的唯一性标识分别作为相应公钥,通过预定方式按照预设的根密钥推导与各个公钥分别对应的各个私钥,并将各个私钥反馈至相应可信模块;注册单元,配置为利用各个唯一性标识分别作为各个用户标识在区块链网络注册;从而,在所述多个可信模块中的第一可信模块安装在第一设备的情况下,利用所述第一可信模块对应的第一私钥对所述第一设备中待上传区块链网络的数据进行签名,以供区块链网络中的节点通过所述第一可信模块的唯一性标识对相应的签名进行验证。
26.根据第十三方面,提供一种数据快速上链的装置,设于用于获取待上传区块链网络的数据的第一设备,所述装置包括:连接单元,配置为与第一可信模块建立连接,其中,所述第一可信模块为sim卡,所述sim卡具有的国际移动设备身份码作为相应唯一性标识,并经由可信执行环境将所述唯一性标识作为相应的第一公钥,通过预定方式按照预设的根密钥推导有对应的第一私钥,同时,所述唯一性标识还在区块链网络中作为用户标识进行注册;上传单元,配置为将待上传的第一数据经过所述第一可信模块利用所述第一私钥进行签名后上传区块链网络,以供区块链网络利用所述唯一性标识对所述第一数据的签名进行验证。
27.根据第十四方面,提供一种向区块链网络上传数据的装置,设于第一设备;所述装置包括:获取单元,配置为获取待上传至区块链网络的第一数据;签名单元,配置为将所述第一数据经由所述第一设备对应的第一可信模块利用第一私钥进行签名,得到第一签名,其中,所述第一私钥通过可信执行环境将与所述第一设备对应的唯一性标识作为第一公钥,在预定方式下按照预设的根密钥推导而来;请求单元,配置为基于所述第一签名、所述第一数据,以及所述唯一性标识,向区
块链网络中的第一节点发出数据上传请求,以供所述第一节点基于所述数据上传请求,生成调用第一智能合约的第一交易,并将所述第一交易在区块链网络中广播,使得区块链网络中的各个节点执行所述第一智能合约,从而利用所述第一公钥对所述签名进行验证,并在验证通过的情况下,确定所述数据为来源于第一设备的可信数据,其中,所述第一智能合约预先部署在区块链网络。
28.根据第十五方面,提供一种向区块链网络上传数据的装置,用于作为区块链网络的一个节点的第一设备向区块链网络上传数据,所述装置设于所述第一设备,包括:获取单元,配置为获取待上传至区块链网络的第一数据;签名单元,配置为将所述第一数据经由所述第一设备对应的第一可信模块利用第一私钥进行签名,得到第一签名,其中,所述第一私钥通过可信执行环境将与所述第一设备对应的唯一性标识作为第一公钥,在预定方式下按照预设的根密钥推导而来;生成单元,配置为基于所述第一签名、所述第一数据,以及所述唯一性标识,生成调用第一智能合约的第一交易,并在区块链网络中广播所述第一交易,以供区块链网络中的各个节点执行所述第一智能合约,从而利用所述唯一性标识对所述第一签名进行验证,并在验证通过的情况下,确定所述第一数据为来源可靠的可信数据,其中,所述第一智能合约预先部署在区块链网络,所述第一交易包括所述唯一性标识,所述第一数据和所述第一签名作为所述第一智能合约的传入参数。
29.根据第十六方面,提供一种验证数据来源可靠性的装置,所述装置设于区块链网络中的第一节点,包括:接收单元,配置为接收第一设备发送的数据上传请求,所述数据上传请求包括第一数据、所述第一数据的第一签名,以及所述第一设备对应的唯一性标识;所述第一签名由所述第一设备对应的第一可信模块利用预先确定的第一私钥对所述第一数据进行签名确定,所述第一私钥由可信执行环境将所述唯一性标识作为第一公钥,在预定方式下按照预设的根密钥推导而来,所述唯一性标识还作为在区块链网络注册的用户标识;生成单元,配置为基于所述数据上传请求,生成调用第一智能合约的第一交易,并将所述第一交易在区块链网络中广播,以供区块链网络中的各个节点执行所述第一智能合约,从而利用所述唯一性标识对所述第一签名进行验证,并在验证通过的情况下,确定所述第一数据为来源于所述第一设备的可信数据,所述第一智能合约预先部署在区块链网络,所述第一交易包括所述唯一性标识,所述第一数据和所述第一签名作为所述第一智能合约的传入参数。
30.根据第十七方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面至第八方面的方法。
31.根据第十八方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面至第八方面的方法。
32.通过本说明书实施例提供的方法和装置,通过将数据设备对应的唯一性标识作为公钥,在可信执行环境中推导相应私钥,并将私钥保存在数据设备的可信模块中,一方面,避免了大量密钥基础设施造成的额外资源使用,导致的成本增加,另一方面,通过可信执行环境是生成私钥并存储在数据设备的可信模块,可以有效保证私钥的安全性。通过这种巧
妙的公钥私钥设置构思,可以有效验证数据源头,并无需pki的复杂流程,适应数据爆炸式增长的需求,又能安全保管私钥,充分维护密钥安全。
附图说明
33.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
34.图1是在区块链网络及创建智能合约的过程示意图;图2示出本说明书一个实施例的生成密钥的流程示意图;图3是在区块链网络中调用图1创建的智能合约的过程示意图;图4示出根据一个实施例的向区块链网络上传数据的方法流程图;图5示出根据一个实施例的验证数据来源可靠性的方法流程图;图6示出根据一个实施例的向区块链网络上传数据的装置的示意性框图;图7示出根据一个实施例的验证数据来源可靠性的装置的示意性框图。
具体实施方式
35.下面结合附图,对本说明书提供的方案进行描述。
36.如本领域技术人员所知,区块链网络是一种分布式存储、记录的体系,其中包含多个节点,各个节点之间可以互相通信交易数据。下面结合图1对区块链的概念进行详细描述。
37.参考图1所示,区块链网络中,交易tx是区块中的基本存储单位,有待存储至链上的各种数据一般以交易tx的形式为载体进行记录。在目前主流的区块链中,一个区块可以存储多条交易,例如上百条。需要说明的是,本文中所称的节点,也可以称为全节点或记账节点,是可以基于交易tx生成新的区块并将区块上链的计算设备。典型地,上述区块链网络可以是联盟链,其中约定多个机构作为记账节点,其间通过约定的共识机制,例如pos权益证明协议,bft( byzantine fault tolerance)拜占庭容错共识协议等,就接下来要记录的交易达成一致,并将这些交易内容打包形成区块,挂载到区块链上。
38.图1是在区块链网络中上传交易的示意图。更具体地,图1结合以太坊进行描述。假定某个节点,对应的业务方假设为bob,想要将一条数据记载到区块链,bob可以以交易的形式,上传该数据。具体地,bob可以发起一笔交易tx,交易内容中发起方from字段即为bob(更具体可以为bob的网络地址),接收方to字段设为空值;并且,该交易内容中还包括data字段,其中包含要记录的数据。在bob把这样一条交易发布到区块链网络之后,记账节点通过共识机制将其添加到区块链上。
39.由于区块链记载的数据具有不可篡改、可追溯等特点,越来越多领域的数据希望通过区块链存储。结合区块链本身的数据可信的特点,发布到区块链的数据来源可信,便成为一个重要问题。为了明确这种问题,下面结合一个具体应用场景进行说明。该应用场景例如可以是,物联设备将所检测到的设备数据记录到区块链的场景。物联网的英文表示为internet of things,用于表示万物互联的概念,可以简称iot。相应地,物联网中的设备可
以称为物联设备或iot设备。iot设备可以采集现实物理世界中线下实体(例如汽车、冰箱等等)的多种维度传感数据,通过汇聚到区块链网络,实现可信流转,或价值变现。
40.其中,iot设备采集数据的源头可信是线下物理世界数字化的关键一步。常规技术中,通常采用基于公钥基础设施(public key infrastructure,简称pki)的认证加密方案。该方案通过证书来绑定用户身份和公钥。这种基于证书的安全体系涉及到大量的密钥管理操作,包括证书颁发、查询和撤销。证书存储、验证、撤销依赖证书管理服务器以及整个证书信任环境,占用较多资源,限制pki在实时和低带宽环境中的应用。这样的系统越来越难跟上物联网设备爆发式增长需求。另外,iot设备往往将私钥存储在flash等非掉电易失存储器上,这样的数据更容易被盗取、克隆,造成私钥流失。对于私钥被克隆的iot设备,区块链端无法区分数据来源是仿冒设备还是合法设备,对于数据的源头可信造成影响。因此,如何既能保障数据源头可信又不增加太多成本和流程,便成为物联网与区块链结合的一个痛点。
41.有鉴于此,本说明书提供一种技术构思,利用数据设备对应的唯一性标识作为公钥和在区块链注册的用户标识,避免证书颁发、查询、撤销等密钥管理操作,另一方面,将私钥保存在数据设备的可信模块中,避免泄露。在数据设备为iot设备的场景下,通信模块例如可以采用安全性较高的sim卡(subscriber identity module,用户身份识别模块)等连接网络进行通信,因此,可以将sim卡作为iot设备的可信模块。另一方面,sim卡通常通过国际移动用户识别码(international mobile subscriber identification number,imsi)进行标识,imsi是区别移动用户的标志,储存在sim卡中,可用于区别用户的有效信息,具有国际唯一性。因此,在一个具体例子中,可以将sim卡的imsi标识作为iot设备的唯一性标识。该标识可以作为数据验证的公钥、iot设备向区块链网络注册的用户标识等,减少额外的密钥管理资源消耗。在其他实施方式下,可信模块也可以是其他具有唯一性标识的通信模块,例如蓝牙模块、wifi模块等。
42.下面详细描述本说明书的技术构思。
43.请参考图2所示,给出了一个密钥生成流程。该流程通过可信执行环境(如tee等)执行。可信执行环境trusted execution environment,简称tee。可信执行环境tee提供保护数据隐私的一种可行的硬件解决方案。tee受硬件机制保护,设备只能通过特定的入口与tee通信。在tee中,不论是bios、操作系统等均无法窥视用户隐私数据。在本说明书实施例中,可信执行环境可以是任意设备提供的可信执行环境,例如可信第三方的专用设备、第一设备本身等。在本说明书中,该可信执行环境所在设备也可以成为第二设备。图2示出的流程包括:步骤201,将与第一设备对应的唯一性标识作为第一公钥,通过预定方式按照预设的根密钥推导与第一公钥对应的第一私钥。
44.可以理解,第一设备可以是用于向区块链网络传递数据的任意设备。其可以是计算机、设备、服务器等,例如前文描述的iot设备。第一设备可以是通过自身采集数据的设备,例如智能传感器,也可以是从数据采集设备获取数据用于上传的设备,例如关联若干个数据采集设备的控制中心设备或数据中心设备。数据采集设备可以对预定实体进行监测从而采集相应的数据。预定实体可以根据实际业务场景确定,例如人体,检测数据包括心率、血压等,再例如是空气,监测数据包括风力、风向、气压、pm2.5含量等。
45.第一设备可以对应有唯一性标识。这里的唯一性标识可以唯一表示该第一设备。在一个实施例中,该唯一性标识例如是设备的imei码(international mobile equipment identity,国际移动设备身份码)。在另一个实施例中,第一设备通过sim卡与其他设备进行通信,第一设备对应的唯一性标识还可以是sim卡的imsi码。sim卡作为可信模块的情况下,第一设备对应的唯一性标识可以理解为可信模块的唯一性标识。在其他实施例中,第一设备对应的唯一性标识还可以是其他可以标识设备身份的字符,在此不做限定。可选地,在第一设备的可信设备为sim卡的情况下,为了满足数据的大量、实时性要求,可以选择5g(第五代移动通信技术)网络与其他设备通信。
46.在本说明书的技术构思下,利用第一设备的唯一性标识的不可重复性,提出基于标识的认证加密方式(identity

based cryptography,可简称ibc),而不再使用常规的基于第一公钥基础设施(public key infrastructure,简称pki)的认证加密方式。
47.由此,可以将该唯一性标识作为第一公钥,利用第一公钥第一私钥对生成方法,推导相应的第一私钥。可以理解,第一公钥与第一私钥组成的密钥对中,如果用第一公钥对数据进行加密,只有用对应的第一私钥才能解密。如果用第一私钥对数据进行加密,那么只有用对应的第一公钥才能解密。第一公钥由于是密钥对中公开的部分,所以称之为第一公钥。在本说明书实施架构下,可以利用第一私钥对数据进行签名,并使用第一公钥对数据签名进行验证。公钥私钥对的生成方法例如可以通过sm9算法、sm2算法等实现。在已知公钥的情况下,可以根据一定的根密钥,推导相对应的私钥。其中,根密钥可以是随机生成的一串字符,也可以是指定的一串字符,在此不作限定。在根密钥不被泄露的情况下,从公钥无法推导私钥。
48.通过在可信执行环境中保存根密钥并推导私钥,可以有效保护根密钥和私密钥的数据安全。
49.步骤202,将所推导的第一私钥反馈至第一设备对应的第一可信模块。如此,可以使得可信模块利用该第一私钥,通过预先安装的签名应用对第一设备的数据进行签名。由于该第一私钥基于唯一性标识确定,这里的签名方式也可以称之为标识加密(id based signature,ibs)技术。标识加密技术是一种基于用户身份标识生成用户密钥的加密技术。用户的身份信息(如身份证号码、电话号码和物理地址等)作为用户的第一公钥,不需要颁发第一公钥证书。
50.可以理解,可信模块可以是具有较高安全性的模块,例如sim卡、蓝牙模块之类的通讯模块,或其他安全性较高的数据处理模块等。为了保护第一私钥不被泄露,可以将所推导出的第一私钥反馈至第一设备中的可信模块。在一个实施例中,可以由提供上述可信执行环境的设备,直接通过可信模块的传输接口反馈至可信模块。可信模块可以确保第一私钥的保密性,从而确保第一私钥不被泄露。以上为以第一设备的唯一性标识作为第一公钥,无需第一公钥证书,减少了第一公钥证书颁发的资源和设施。值得说明的是,在可信模块具有物理独立性的情况下,例如可插拔设备sim卡、u盘等,还可以将可信模块与提供可信执行环境的设备连接,经由可信执行环境直接向可信模块反馈私钥。
51.进一步地,还可以将前述的唯一性标识作为用户标识向区块链网络注册用户,以供相应设备(如第一设备)向区块链网络上传数据。在前述唯一性标识是设备的标识的情况下,以第一设备为例,可以由第一设备对应的业务方以该唯一性标识作为用户标识向区块
链网络注册用户。在可选的实施例中,区块链网络维护用户标识及公钥等信息的世界状态的情况下,第一设备对应的业务方还可以在区块链网络备案第一公钥。
52.在一个可能的设计中,还可以通过可信执行环境对多个可信模块批量预处理。针对各个可信模块按照其对应的唯一性标识,生成私钥,并下发到相应可信模块。这样,当一个设备上安装一个可信模块时,该可信模块的唯一性标识可以作为该设备对应的唯一性标识。
53.此时,可信模块安装到设备之前,还可以统一向区块链网络注册用户,用户标识为相应可信模块的唯一性标识。例如可信模块为sim卡的情况下,用sim卡的smei码作为用户标识向区块链网络注册用户。这样,在设备安装上可信模块后,就已经是区块链网络的注册用户。该过程可以称之为,“插卡即上链”。其中,利用可信模块的唯一性标识作为用户标识向区块链网络注册,与在可信执行环境中生成私钥并下发至可信模块相比,可以先执行,也可以后执行,还可以同时执行,在此不限定两者的先后顺序。
54.经过以上准备工作,第一设备可以在获取数据之后,经过第一私钥签名并上传至区块链网络,以供基于第一设备对应的唯一性标识(即在区块链网络注册的用户标识)对签名数据的来源可靠性进行验证。其中对数据的验证方式可以是区块链节点通过区块链网络中红部署的智能合约进行验证,也可以是通过数据验证服务器进行验证,还可以是其他合理的方式验证,在此不作限定。
55.其中,智能合约是一种可以自动执行的程序逻辑,经发布或创建后以数字化的形式写入区块链中,可以由区块链网络中的各个节点执行。越来越多的区块链网络支持智能合约,从而在区块链中实现更为丰富的功能。
56.图1示出的发布数据的过程中,当所要发布的数据为智能合约时,图1示出的过程可以看作是智能合约的发布过程。在bob把这样一条交易发布到区块链网络之后,记账节点通过共识机制将其添加到区块链上。在这个过程中,还会根据一定算法,例如基于发布者地址进行哈希等,为上述智能合约赋予一个合约标识,例如0xf5e

,以供用户调用智能合约。
57.在本说明书的实施架构下,如果使用智能合约进行签名验证,则可以由多个设备约定一个智能合约,该智能合约用于对数据来源进行验证。具体地,智能合约中可以约定将唯一性标识、数据、签名作为传入参数,将唯一性标识作为公钥,验证相应签名,并在验证通过的情况下,确定相应数据为来源于相应设备的可信数据。以上智能合约经过打包上链之后,区块链网络中的任意用户(如约定智能合约的各个设备)均可以根据合约地址调用该智能合约。
58.图3是在区块链网络中调用图1创建的智能合约的过程示意图。假定区块链网络中的节点alice想要调用以上智能合约,那么该节点可以发起一笔交易,进行合约调用。具体而言,在交易内容中,from字段可以是调用者alice的网络地址,to字段即为上述智能合约的合约地址0xf5e

,表示该交易所调用的智能合约。在data字段,包含要调用的合约中的方法或函数名称和传入的参数,例如变量x的数值x0。区块链网络中的共识机制可以确保,各个节点以相同的顺序执行交易,从而实现各个节点中合约状态的一致性改变。其他节点收到这条交易后,通过节点中的虚拟机执行合约逻辑对应的操作,从而通过共识机制实现网络上合约状态的改变,包括合约中变量数值的改变等。例如,合约执行之后,标记数据来源可靠性的变量x赋值为0或1。可选地,还可以通过对变量x的赋值结果,进行数据存储,如x
被赋值为1时,将数据存储为可信数据,否则,将数据存储为不可信数据,或者不存储数据。
59.如图4所示,以第一设备为执行主体,通过智能合约验证为例,描述了一个实施例的对数据来源进行验证的流程。第一设备可以是任意可设置可信模块的设备、计算机、服务器等,例如前述的iot设备。其中,第一设备对应的可信模块可以称为第一可信模块。
60.如图4所示,该流程可以包括:步骤401,获取待上传至区块链网络的第一数据;步骤402,将第一数据经由第一可信模块利用第一私钥进行签名,得到第一签名;步骤403,基第一数据、第一签名及第一设备对应的唯一性标识,向区块链网络中的第一节点发出数据上传请求,以供该第一节点基于该数据上传请求,生成调用相应的第一智能合约的第一交易,并将第一交易在区块链网络中广播,以供区块链网络中的各个节点执行第一智能合约,从而利用唯一性标识对第一签名进行验证,并在验证通过的情况下,确定第一数据为来源于第一设备的可信数据,其中,第一智能合约可以预先部署在区块链网络,第一交易包括唯一性标识,第一数据和第一签名作为第一智能合约的传入参数。第一智能合约可以是由第一设备的设备方部署在区块链网络,用于验证第一设备上传的数据对应的签名,也可以是多个设备方约定一致部署在区块链网络,或者为多个设备提供服务的服务端部署在区块链网络,在此不作限定。
61.首先,在步骤401中,获取待上传至区块链网络的第一数据。可以理解,这里的第一数据可以是需要经由第一设备上传至区块链网络的任何数据。例如数据采集设备对预定实体的监测数据等。其中预定实体根据具体业务场景确定,例如前文涉及的人体、空气等。第一设备自身可以为数据采集设备,也可以是关联若干个数据采集设备的控制中心设备或数据中心设备,在此不做限定。
62.接着,通过步骤402,将第一数据经由第一可信模块利用第一私钥进行签名,得到第一签名。可以理解,为了更好地保护第一私钥,第一可信模块中可以预先安装有签名应用(如前文的ibs应用),当第一设备需要向区块链上传数据时,可以先将数据通过可信模块的数据接口发送至第一可信模块,由第一可信模块利用预先安装的签名应用对数据进行签名。第一可信模块可以确保第一私钥的保密性,从而确保经过第一私钥进行签名的数据,是由相应第一设备提供的。其中,这里的第一公钥、第一私钥例如可以通过图2示出的流程确定。
63.值得说明的是,第一可信模块利用第一私钥对第一数据进行签名可以是附加在数据上的一些信息,或是对数据所作的密码变换,在此不作限定。签名的形式根据业务场景的需求,可以是rsa、elgamal、fiat

shamir、guillou
‑ꢀ
quisquarter、schnorr、ong

schnorr

shamir数字签名算法、des/dsa、椭圆曲线数字签名算法、有限自动机数字签名算法之类的普通数字签名,也可以是盲签名、代理签名、群签名、不可否认签名、公平盲签名、门限签名、具有消息恢复功能的签名等特殊数字签名,不再一一赘述。本领域技术人员可以理解,这里对第一数据的第一签名,与图1示出的交易中的签名,是不同性质的签名。
64.然后,经过步骤403,基于第一数据、第一签名及第一设备对应的唯一性标识,向区块链网络中的第一节点发送数据上传请求。如此,可以使得该第一节点基于该数据上传请求,生成调用第一智能合约的第一交易,并将第一交易在区块链网络中广播,以供区块链网络中的各个节点执行第一智能合约,从而利用唯一性标识作为第一公钥对第一签名进行验证。
65.可以理解,第一设备将所采集的数据发送至区块链网络,从而存储所采集的数据,或者利用所采集的数据进行业务处理。区块链网络中的各个节点可以通过调用预先发布在区块链网络的智能合约存储数据或者通过数据进行业务处理。其中,智能合约的发布或调用方法可以如图1、图3所示。这里要处理的业务可以依据具体场景而定。例如,在第一设备为iot设备的情况下,要处理的业务可以是,根据对营运车辆的信息监测,确定当前营运任务是否完成或者是否可以接受新的营运任务,等等。在一些实施例中,存储所采集的数据也可以认为是进行数据存储业务的处理。
66.对于第一设备而言,在第一设备不是区块链中的节点的情况下,为了向区块链网络提供所采集的数据,可以向区块链网络发出数据上传请求。该数据上传请求中可以包括相应数据、签名,以及唯一性标识。从而,第一节点可以基于该数据上传请求,生成调用相应的第一智能合约的第一交易。
67.在一个可选的实现中,以上数据上传请求还可以是第一智能合约的调用请求。可以理解,第一智能合约还可以对应有合约标识,该调用请求中还可以包含该合约标识(合约地址)。
68.如前所述,区块链网络可以包含多个节点。因此第一设备可以选择任何一个节点(如第一节点),发出以上第一调用请求。在一个实施例中,第一设备可以从区块链网络的多个节点中,确定出距离最近的节点,发出第一调用请求。其中,距离最近的节点可以是物理距离最近的节点,或者是从网络连接的角度判定出的最近连接节点。
69.此外,如前所述,智能合约的调用通过发起交易来实现。接收到数据上传请求的节点(以下称为第一节点),可以按照数据上传请求中包含的参数,生成调用第一智能合约的第一交易。其中,第一交易中,可以将第一数据、第一签名及第一设备对应的唯一性标识作为传入第一智能合约的参数。
70.如此,经由第一交易在区块链网络广播,区块链网络中的各个节点通过执行第一智能合约中的业务处理逻辑,从而利用作为第一公钥的唯一性标识对第一签名进行验证。进一步地,在验证通过的情况下,区块链网络中的节点可以确定该第一数据为上述的第一设备发送来的数据,即为来源于第一设备的可信数据。
71.在一个实施例中,第一设备可以直接生成第一交易,该第一交易中可以包含第一签名、第一数据及唯一性标识。此时,可以分为第一设备是区块链中的节点和不是区块链中的节点来进行说明。
72.在第一设备不是区块链网络中的节点的情况下,第一设备可以将第一交易发送至区块链网络中的第一节点。区块链网络中的第一节点收到第一交易之后可以无需重新生成交易,而将第一交易广播给其他节点。在上述第一设备还可以是区块链网络上的一个节点的情况下,其可以参与交易记账和区块形成,此时,第一设备生成第一交易后可以直接将第一交易广播给其他节点。接着,通过共识机制,该第一交易被记录在某个区块中上链。
73.之后区块链网络中的各个节点通过该第一交易可以执行上述第一智能合约,从而利用唯一性标识验证第一签名。在验证通过的情况下,可以确认第一数据是来源于第一设备的可信数据。
74.另一方面,图5以区块链网络中的任意节点(记为第一节点)的角度,示出了一个实施例的验证数据来源可靠性的流程。该流程可以包括以下步骤:
步骤501,接收第一设备基于经过签名的第一数据、相应的第一签名,以及第一设备对应的唯一性标识,发送数据上传请求。其中,这里的第一数据由第一设备的可信模块利用预先确定的第一私钥进行签名,第一私钥通过可信执行环境,将第一设备对应的唯一性标识作为第一公钥,在预定方式下按照预设的根密钥推导而来;步骤502,根据数据上传请求生成调用第一智能合约的第一交易,并将第一交易在区块链网络中广播。其中,第一智能合约预先部署在区块链网络。如此,使得区块链网络中的各个节点执行第一智能合约,从而利用第一公钥对第一签名进行验证,在验证通过的情况下,确定第一数据为来源于第一设备的可信数据。
75.在一个可选的实现方式中,该流程还可以包括:在验证通过确定第一数据为来源于第一设备的可信数据的情况下,将该第一数据与第一设备的用户标识对应存储。其中,第一设备的用户标识可以是预先利用唯一性标识注册在区块链网络注册用户的标识(user name)。
76.其中,图5示出的流程与图4示出的流程相互配合,其中的一些描述可以相互适应,在此不再赘述。其中,图2中生成密钥的过程可以用于图4、图5示出的流程,因此,图2中相关的描述可以是用于图4、图5示出的流程的相应部分,在此不再赘述。
77.根据另外的一个设计,还可以通过数据验证服务器来验证数据来源。在该方式下,数据验证服务器可以是为多个设备(如包括第一设备)提供数据验证服务的服务器。数据验证服务器可以对多个设备的数据来源进行验证。具体地,以第一设备为例,其私钥确定、在区块链注册用户、利用私钥对数据加密等过程与前文描述的过程类似,在此不再赘述。区别在于,第一设备可以将数据、相应签名和第一设备对应的唯一性标识,生成向区块链网络上传数据的数据上传请求,并将该数据上传请求发送给数据验证服务器。数据验证服务器可以将该唯一性标识作为公钥,对数据的签名进行验证。在验证通过确定数据为来源于第一设备的可信数据的情况下,数据验证服务器可以将以上数据发送至区块链网络。
78.其中,数据验证服务器可以是区块链网络中的节点,也可以不是区块链网络中的节点。数据验证服务器向区块链网络发送数据的形式可以是请求方式,也可以是交易方式,参考前文第一设备的生成请求或交易的描述,在此不再赘述。
79.另外,根据前文的描述,本说明书的一个实施例还可以提供一种数据快速上链的可信设备的预处理方法。该方法的执行主体可以是任意具有一定计算能力可设置tee环境的装置、设备、计算机等等。例如是私有链的所有者的设备,或者针对联盟链的可信第三方等。在该方法中,执行主体可以将若干可信模块各自对应的唯一性标识(例如sim卡的smei码)作为相应公钥,通过预定方式按照预设的根密钥推导与各个公钥分别对应的各个私钥,并将各个私钥反馈至相应可信设备。另一方面,还可以批量为各个可信模块利用相应的唯一性标识作为用户标识在区块链网络注册用户。其中,以上设置私钥及注册用户两方面的操作可以同时执行,也可以一先一后执行,并且不区分先后顺序,在此不做限定。
80.这样,当设备方(如第一设备对应的业务方等)获取任意一个可信模块(如第一模块)时,只要将该可信模块设于相应的设备(如第一设备),就相当于通过可信模块利用在区块链网络注册的用户上链。这就是前文说的“插卡即上链”。进一步地,在该设备向区块链网络上传数据时,可以通过可信模块对数据进行签名,以供在通过其在区块链网络注册用户的用户标识对数据的签名验证通过的情况下,确定数据为来源于相应设备的可信数据。其
中,对数据签名验证的方式可参考前文描述的方式,在此不再赘述。
81.从设备角度来说,只要与经过以上预处理方式进行处理的任意可信模块建立连接,就相当于在区块链网络注册,具备直接上链的注册条件,在设备硬件、电路、网络等其他条件没有问题的情况下,可以实现设备的快速上链。因此,本说明书还可以提供一种数据快速上链的方法,以第一设备为例,该方法可以包括:与第一可信模块建立连接,其中,第一可信模块具有相应唯一性标识,并经由可信执行环境将唯一性标识作为相应的第一公钥,通过预定方式按照预设的根密钥推导由对应的第一私钥,同时,唯一性标识还在区块链网络中作为用户标识进行注册;将待上传的第一数据经过第一可信模块利用第一私钥进行签名后上传区块链网络,以供区块链网络利用唯一性标识对第一数据的签名进行验证。
82.回顾以上过程,通过将数据设备对应的唯一性标识作为公钥,在可信执行环境中推导相应私钥,并将私钥保存在数据设备的可信模块中,一方面,避免了大量密钥基础设施造成的额外资源使用,导致的成本增加,另一方面,通过可信执行环境是生成私钥并存储在数据设备的可信模块,可以有效保证私钥的安全性。通过这种巧妙的公钥私钥设置构思,可以有效验证数据源头,并无需pki的复杂流程,适应数据爆炸式增长的需求,又能安全保管私钥,充分维护密钥安全。
83.特别地,在可信模块可以独立于数据设备的情况下,还可以预先用可信模块的唯一性标识作为公钥生成私钥,并反馈至可信模块,实现诸如“插卡即上链”之类的安装即可上链的业务需求,为区块链的使用提供极大便利。
84.根据另一方面的实施例,还提供一种验证数据来源可靠性的系统,包括第一设备、区块链网络、具有可信执行环境的第二设备。该系统可以用于验证上传至区块链网络中的数据是否来源于第一设备。
85.其中,在第一设备不是区块链网络中的节点的情况下:第二设备配置为,在可信执行环境中,将与第一设备对应的唯一性标识作为第一公钥,通过预定方式按照预设的根密钥推导与第一公钥对应的第一私钥,第一设备用于获取待上传区块链网络的数据;以及,将第一私钥由可信执行环境反馈至第一设备对应的第一可信模块;第一设备配置为,将所采集的第一数据经由第一可信模块利用第一私钥进行签名,得到第一签名;以及,基于第一数据、第一签名以及唯一性标识,向区块链网络中的第一节点发出数据上传请求;区块链网络中的第一节点配置为,基于数据上传请求,生成调用第一智能合约的第一交易,并将第一交易在区块链网络中广播,其中,第一智能合约预先部署在区块链网络,第一交易包括唯一性标识,第一数据和第一签名作为第一智能合约的传入参数;区块链网络中的各个节点配置为,执行第一调用请求,从而利用唯一性标识对第一签名进行验证,并在验证通过的情况下,确定第一数据为来源于第一设备的可信数据。
86.在第一设备为区块链网络中的节点的情况下:第二设备配置为,在可信执行环境中,将与第一设备对应的唯一性标识作为第一公钥,通过预定方式按照预设的根密钥推导与第一公钥对应的第一私钥,第一设备用于获取待上传区块链网络的数据;以及,将第一私钥由可信执行环境反馈至第一设备对应的第一可信模块;
第一设备配置为,将所采集的第一数据经由第一可信模块利用第一私钥进行签名,得到第一签名;以及,生成调用第一智能合约的第一交易,并在区块链网络中广播第一交易,第一交易包括唯一性标识,第一数据和第一签名作为第一智能合约的传入参数,第一智能合约预先部署在区块链网络;区块链网络中的各个节点配置为,执行第一智能合约,从而利用唯一性标识对第一签名进行验证,并在验证通过的情况下,确定第一数据为来源于第一设备的可信数据。
87.根据又一方面的实施例,还提供一种验证数据来源可靠性的系统,包括第一设备、区块链网络、具有可信执行环境的第二设备及数据验证服务器,用于验证上传至区块链网络的数据是否来源于第一设备;其中:第二设备配置为,在可信执行环境中,将与第一设备对应的唯一性标识作为第一公钥,通过预定方式按照预设的根密钥推导与第一公钥对应的第一私钥,第一设备用于获取待上传区块链网络的数据;以及,将第一私钥由可信执行环境反馈至第一设备对应的第一可信模块;第一设备配置为,将所采集的第一数据经由第一可信模块利用第一私钥进行签名,得到第一签名;以及,向数据验证服务器发送向区块链网络上传数据的数据上传请求,其中,数据上传请求包括第一数据、第一签名以及唯一性标识;数据验证服务器配置为,通过唯一性标识,对第一签名进行验证,并在验证通过的情况下,确定第一数据为来源于第一设备的可信数据,从而向区块链网络上传第一数据。
88.根据再一方面的实施例,还提供一种针对用于数据快速上链的可信模块的预处理装置。该装置包括:密钥生成单元,配置为通过可信执行环境将与多个可信模块各自对应的唯一性标识分别作为相应公钥,通过预定方式按照预设的根密钥推导与各个公钥分别对应的各个私钥,并将各个私钥反馈至相应可信模块;注册单元,配置为利用各个唯一性标识分别作为各个用户标识在区块链网络注册;从而,在多个可信模块中的第一可信模块安装在第一设备的情况下,利用第一可信模块对应的第一私钥对第一设备中待上传区块链网络的数据进行签名,以供区块链网络中的节点通过第一可信模块的唯一性标识对相应的签名进行验证。
89.根据再一方面的实施例,还提供一种数据快速上链的装置。该装置可以设于用于获取待上传区块链网络的数据的第一设备,包括:连接单元,配置为与第一可信模块建立连接,其中,第一可信模块具有相应唯一性标识,并经由可信执行环境将唯一性标识作为相应的第一公钥,通过预定方式按照预设的根密钥推导有对应的第一私钥,同时,唯一性标识还在区块链网络中作为用户标识进行注册;上传单元,配置为将待上传的第一数据经过第一可信模块利用第一私钥进行签名后上传区块链网络,以供区块链网络利用唯一性标识对第一数据的签名进行验证。
90.可选地,第一可信模块为sim卡,该sim卡对应有国际移动设备身份码,该国际移动设备身份码为该sim卡的唯一性标识。
91.根据又一方面的实施例,还提供一种向区块链网络上传数据的装置。该装置可以
设于任意可以向区块链上传数据的第一设备。图6示出了一个具体例子的向区块链网络上传数据的装置600。如图6所示,装置600包括:获取单元61,配置为获取待上传至区块链网络的第一数据;签名单元62,配置为将第一数据经由第一设备对应的第一可信模块利用第一私钥进行签名,得到第一签名,其中,第一私钥通过可信执行环境将与第一设备对应的唯一性标识作为第一公钥,在预定方式下按照预设的根密钥推导而来;请求单元63,配置为基于第一签名、第一数据,以及唯一性标识,向区块链网络中的第一节点发出数据上传请求,以供第一节点基于数据上传请求,生成调用第一智能合约的第一交易,并将第一交易在区块链网络中广播,使得区块链网络中的各个节点执行第一智能合约,从而利用第一公钥对签名进行验证,并在验证通过的情况下,确定数据为来源于第一设备的可信数据,其中,第一智能合约预先部署在区块链网络。
92.在可能的设计中,签名单元62可以设于第一可信模块中。这样可以保证私钥的保密性。进一步可选地,请求单元63也可以设于第一可信模块。此时第一可信模块可以具有数据打包及通信功能,从而可以根据第一数据,签名得到第一签名,并将经过签名的数据打包,以生成数据上传请求。
93.相应地,在第一设备为区块链网络中的一个节点的情况下,装置600中的请求单元63可以替换为生成单元63'。其中,生成单元63'可以配置为:基于第一签名、第一数据,以及唯一性标识,生成调用第一智能合约的第一交易,并在区块链网络中广播第一交易,以供区块链网络中的各个节点执行第一智能合约,从而利用唯一性标识对第一签名进行验证,并在验证通过的情况下,确定第一数据为来源可靠的可信数据,其中,第一智能合约预先部署在区块链网络,第一交易包括唯一性标识,第一数据和第一签名作为第一智能合约的传入参数。
94.值得说明的是,图6所示的装置600是与图4示出的方法实施例相对应的装置实施例,图4示出的方法实施例中的相应描述同样适用于装置600,反之亦然,在此不再赘述。
95.另外,本说明书还提供一种验证数据来源可靠性的装置。该装置可以设于区块链网络中的第一节点。如图7所示,示出了该装置的一个实施例,装置700。装置700包括:接收单元71,配置为接收第一设备发送的数据上传请求,数据上传请求包括第一数据、第一数据的第一签名,以及第一设备对应的唯一性标识;第一签名由第一设备对应的第一可信模块利用预先确定的第一私钥对第一数据进行签名确定,第一私钥由可信执行环境将唯一性标识作为第一公钥,在预定方式下按照预设的根密钥推导而来,唯一性标识还作为在区块链网络注册的用户标识;生成单元72,配置为基于数据上传请求,生成调用第一智能合约的第一交易,并将第一交易在区块链网络中广播,以供区块链网络中的各个节点执行第一智能合约,从而利用唯一性标识对第一签名进行验证,并在验证通过的情况下,确定第一数据为来源于第一设备的可信数据,第一智能合约预先部署在区块链网络,第一交易包括唯一性标识,第一数据和第一签名作为第一智能合约的传入参数。
96.值得说明的是,图7所示的装置700是与图5示出的方法实施例对应的装置实施例,图5示出的方法实施例中的相应描述也适用于装置700,在此不再赘述。
97.根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程
序,当所述计算机程序在计算机中执行时,令计算机执行结合图2、图4、图5等所描述的方法。
98.根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2、图4、图5等所描述的方法。
99.本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
100.以上所述的具体实施方式,对本说明书的技术构思的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书的技术构思的具体实施方式而已,并不用于限定本说明书的技术构思的保护范围,凡在本说明书实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的技术构思的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1