一种物联网信息记录方法和系统
技术领域
本申请涉及区块链技术领域,特别涉及一种物联网信息记录方法和系统。
背景技术
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
在一些应用场景中,物联网信息通常记录并储存于数据中心化服务器中,在进行海量数据的存储和管理时,会带来数据安全风险。因此希望将物联网信息与具备分布式、去中心化的区块链技术相结合,提高数据安全性。
发明内容
本申请实施例之一提供一种物联网信息记录方法,该方法包括:通过公链接收物联网设备上传的物联网数据并进行验证;通过跨链技术将公链中的至少部分物联网数据同步到联盟链中;通过所述联盟链存储来自公链的物联网数据并向用户提供物联网数据查询服务。
本申请实施例之一提供一种网络,包括公链与联盟链,其中:所述公链用于接收物联网设备上传的物联网数据并进行验证;公链与联盟链通过跨链技术进行数据传输,以至少将公链中的部分物联网数据同步到所述联盟链中;所述联盟链用于存储来自公链的物联网数据并向用户提供物联网数据查询服务。
本申请实施例之一提供一种信息记录方法,该方法包括:通过公链接收信息采集设备上传的数据并进行验证;通过跨链技术将公链中的至少部分数据同步到联盟链中;通过所述联盟链存储来自公链的数据并向用户提供数据查询服务。
本申请实施例之一提供一种网络,包括公链与联盟链,其中:所述公链用于接收信息采集设备上传的数据并进行验证;公链与联盟链通过跨链技术进行数据传输,以至少将公链中的部分数据同步到所述联盟链中;所述联盟链用于存储来自公链的数据并向用户提供数据查询服务。
附图说明
本申请将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本申请一些实施例所示网络的应用场景示意图;
图2是根据本申请一些实施例所示的物联网信息记录方法的多端交互流程图;
图3是根据本申请一些实施例所示的物联网设备的流程示意图;
图4为是根据本申请一些实施例所示的公链对存证交易的处理流程示意图;
图5是根据本申请一些实施例所示的公链对验证交易的处理流程示意图。
具体实施方式
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本申请中使用了流程图用来说明根据本申请的实施例的网络所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
公链(Public blockchains)又称公有链,是指全世界任何人或设备都可读取、发送交易且交易能获得有效确认的、也可以参与其中共识过程的区块链。其无需注册、授权即可匿名访问网络,并且具有去中心化、中立、开放等特点。
联盟链(Alliance chain)只针对某个特定群体的成员和有限的第三方,其内部指定多个预选节点为记账人,每个块的生成由所有的预选节点共同决定,其他接入节点可以参与交易,但不过问记账过程,可以通过该区块链开放的API进行限定查询。
物联网(The Internet of Things,IOT)是指通过各种设备与技术,实时采集任何需要监控、连接、互动的物体或过程,所采集的物联网数据可以通过各类可能的网络接入,以实现物与物、物与人的泛在连接,以及对物品和过程的智能化感知、识别和管理。
在一些实施例中,可以利用联盟链来记录物联网数据,物联网设备经过注册后可以作为节点加入联盟链,物联网设备可以将采集到的物联网数据存证到联盟链中,以确保存证到联盟链中的物联网数据难以被篡改。然而这在确保物联网设备上传数据的真实性方面存在一定困难。例如,若物联网设备将篡改后的数据存入联盟链,联盟链对此所能采取的措施有限,难以从源头上确保链上数据的真实性。另一方面,联盟链的去中心化在一定程度上并不彻底,如记账人或共识节点为指定的节点,因此在数据真实性的验证方面存在局限。
相对于联盟链而言,公链允许任一方参与到共识过程中,中心化程度更加彻底,能够对请求上链的数据进行更加完备、广泛的验证。为此,本说明书一些实施例利用公链和联盟链相结合的方式,提供了一种物联网信息记录方法和网络。
图1是根据本申请一些实施例所示网络的应用场景示意图。
如图1所示,网络100可以包括公链110和联盟链120。公链110或者联盟链120分别可以包括多个区块链节点。
较为一般的,在区块链中,区块链节点可以接收上传(或广播)至链的交易,调用相应的智能合约以完成交易的执行,交易以及交易执行的结果被写入区块保存到区块链数据中。
共识机制是区块链系统正常运行的必要组件,用于保证各节点保存的区块链数据维持一致。多个节点可以通过运行共识协议,对接收(对应代码的输入)、产生(对应代码的输出或中间结果)的数据和/或执行的操作达成一致,参与共识的节点可称为共识节点。例如,对于新区块涉及的多个交易,各共识节点可以通过运行共识协议对所述多个交易的执行顺序达成一致。又如,接收到验证交易的多个共识节点可以通过运行共识协议,对物联网数据的核对结果达成一致。
为了证明交易的来源和完整性,交易可包括利用交易发起方的私钥对交易内容(作为签名消息)生成的数字签名。如此,接收到交易的节点可以通过验证数字签名来确认交易的来源和交易是否经过篡改。
区块链数据(也可称为链上数据)可包括通过共识的区块数据和状态数据(也可称为全局状态或世界状态),区块链数据的写入也被叫作上链。其中,区块数据包括持续生成且按时序链接的区块,各共识节点可通过运行共识协议将新区块上链。共识通过意味着每个共识节点可将相同的新区块写入区块数据。仅作为示例,在一些实施例中,共识通过的条件包括超过预设比例(如2/3)的共识节点同意将新区块上链。状态数据可包括关联于各账户的状态变量,例如,个人、组织控制的外部账户的余额,又如,合约账户的合约状态。
值得说明的是,区块链具有公开透明的特性,因此任一节点可以获得区块链网络中广播的交易,如果将对账方的账目数据以明文形式放入对账交易中,可能存在泄密风险。有鉴于此,在一些实施例中,可以将交易数据以密文形式上传区块链,经授权的数据使用方可以使用数据来源方提供的密钥对从链上获取的相应数据解密。
在一些实施例中,区块链节点可以是各类计算设备,如膝上型计算机、台式计算机、服务器等等。其中,公链中的节点可以包括多个物联网设备以及其他区块链节点。在一些实施例中,物联网设备还可以仅作为公链的用户端,其发起的交易(如存证交易或验证交易)可以通过公链节点广播到公链上被共识和执行。联盟链中的节点可以包括与物联网设备相关的服务端以及与物联网信息相关(如物联网信息使用方、物联网事务参与方等)的实体,如生产或销售商品的商户、运输商品的物流公司、为商品生产经营或运输投保的主体以及保险公司等。物联网设备可以是能够采集物联网信息的任何设备,如各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等。与物联网设备相关的服务端可以看作是各个物联网设备的服务后台,该服务端可以与各物联网设备通信,以及监管各物联网设备的工作状态或位置信息。在一些实施例中,该服务端可以向各物联网设备的发放其公链账户、私钥,如向物联网设备植入包含私钥的SDK(Software Development Kit),该SDK用于对接公链服务。在一些实施例中,服务端还可以接收物联网设备采集的物联网数据。仅作为示例,公链可以包括第一物联网设备112、第二物联网设备114、第一公链节点116和第二公链节点118;联盟链可以包括与物联网设备相关的服务端122、第一联盟链节点124和第二联盟链节点126。公链与联盟链之间可以通过跨链技术进行数据交互。例如,公链可以将其中的至少部分数据通过跨链技术传输给联盟链。关于网络100中各个组成部分的更多内容可以参见图2~图5的相关说明。
图2是根据本申请一些实施例所示的物联网信息记录方法的多端交互流程图。
如图2所示,物联网信息记录方法200中的一个或多个步骤可以由上述网络100执行。
步骤210,通过公链接收物联网设备上传的物联网数据并进行验证。
在一些实施例中,物联网设备可以采集物联网数据,并发起存证交易,所述存证交易中可以包括物联网数据。当物联网设备为公链节点时,其可以直接在链上广播该存证交易。当物联网设备为公链用户端时,其可以将生成的交易发送给公链节点,再由公链节点在链上广播。当该存证交易被公链节点共识、执行以后,物联网数据便存储于公链的区块链数据中。
在一些实施例中,其他物联网设备还可以基于其自身采集的物联网数据发起验证交易,请求公链节点基于其采集的物联网数据验证区块链数据中已存储的物联网数据。所述其他物联网设备可以是与区块链数据中已有的物联网数据的采集设备具有相同采集内容的其他采集设备。例如,区块链数据中已有的物联网数据的采集设备是商户处的物联网设备,所述物联网数据可以是货物a的重量。所述其他物联网设备则可以是物流公司处的物联网设备,当货物a由物流公司承运后,其物联网设备可以再次采集货物a的重量。物流公司处的物联网设备通过验证交易对公链区块链数据中的物联网数据发起“挑战”,可以在较大程度上约束着各个物联网设备的行为,确定请求上链的物联网数据的真实性。所述验证交易可以包括该物联网设备采集的物联网数据。在一些实施例中,验证交易还可以包括请求验证的物联网数据的链上存储地址(如交易哈希值)或者用于在区块链数据中检索的Key值,以便公链节点能够快速获取区块链数据中请求验证的物联网数据。验证交易执行完成后,验证结果可以区块的形式存储在区块链数据中。
在一些实施例中,当采集的物联网数据存储到公链的区块链数据后,相应的物联网设备可以得到奖励。以此鼓励更多的物联网设备将采集到的物联网数据存入公链。在又一些实施例中,当其他物联网设备向公链区块链数据存储的物联网数据发起“挑战”(如发起前述验证交易),且“挑战”成功(如)例如,向该物联网设备的公链账户发放一定的奖励。以此鼓励更多的物联网设备发起数据验证请求,长远来看,可以形成更广泛的监督机制从而能够有效保证请求上链的物联网数据的真实性。有关物联网设备采集、存证以及验证物联网数据的更多内容可以参见图3~图5的相关说明。
步骤220,通过跨链技术将公链中的至少部分物联网数据同步到联盟链中。
可以理解,通过以上验证以及奖励机制,公链中存储了更加广泛以及可信的物联网数据。进而可以通过跨链技术将公链中的物联网数据传输到联盟链中。在一些实施例中,可以仅将验证结果为一致的物联网数据传输到联盟链中。跨链技术可以采用侧链(Sidechains)的方式使公链中的部分数据同步到联盟链中。侧链可以是一个区别于公链和联盟链的第三方设备,如第三方区块链,并且该第三方区块链可以访问公链和联盟链。在一些实施例中,第三方区块链通过公链的区块头和默克尔树等信息确定需要同步的部分物联网数据,当公链上的该数据得到公链中更多区块确认后,则可以认为该物联网数据是未遭到篡改的,可以将该物联网数据写入联盟链的区块链数据中。在一些实施例中,第三方区块链写入联盟链的数据中,还可以包括能够在公链上追溯物联网数据的信息,如物联网数据对应的交易哈希等。在一些实施例中,还可以通过其他方式进行跨链,如通过公证人机制(Notary schemes)、中继(Relays)、哈希锁定(Hash-locking)等方法中的一个或多个。
步骤230,通过所述联盟链存储来自公链的物联网数据并向用户提供物联网数据查询服务。
联盟链成员可以对联盟链上的数据进行查询、处理等操作。如,与物联网信息相关的其他实体可以使用公链数据,相应的,与物联网设备相关的服务端也可以获取其他实体上传至联盟链的其他数据。如此,服务端作为联盟链成员可利用公链数据与其他成员实现联盟内部的数据共享。
申请加入联盟链的用户端也可对链上数据进行查询。仅作为示例,某用户需要查询商品b物流信息,其可以通过用户终端按照联盟链加入要求进行注册或认证,用户终端加入联盟链后可以向联盟链发起查询交易,查询交易中可以包括商品b物流信息的链上地址(如交易hash值)或Key值(如商品b的标识或运单编号等),从而可以从联盟链获取商品b对应的物流信息。由于公链中的物联网数据是经过验证并且分布式储存的,因此通过跨链技术同步到联盟链的数据可以视为是安全、未经篡改的。
应当注意的是,上述流程的描述仅仅是为了示例和说明,而不限定本申请的适用范围。对于本领域技术人员来说,在本申请的指导下可以对流程进行各种修正和改变。然而,这些修正和改变仍在本申请的范围之内。
在本申请的一些实施例中,将前述实施例中的物联网设备替换为更为一般的信息采集设备,进而提供了一种更为一般的信息记录方法,其具体包括:通过公链接收信息采集设备上传的数据并进行验证;通过跨链技术将公链中的至少部分数据同步到联盟链中;通过所述联盟链存储来自公链的数据并向用户提供数据查询服务。
在一些实施例中,信息采集设备可以采集的数据包括图像、声音、温度等。在一些实施例中,数据可以是各行业中使用的数据,该数据包括但不限于金融行业、保险行业、互联网行业、汽车行业、餐饮行业、电信行业、能源行业、娱乐行业、体育行业、物流行业、医疗行业、安全行业等。
信息记录方法与物联网信息记录方法类似,关于该方法的相关描述可以参见步骤210~230以及相关描述。
图3是根据本申请一些实施例所示的物联网设备采集物联网数据的流程示意图。
在一些实施例中,物联网设备的流程300可以由第一物联网设备112或第二物联网设备114执行,包括以下步骤:
310,获取物联网数据。
在一些实施例中,物联网数据可以是通过物联网设备直接采集的,也可以是通过物联网设备导入的,例如,通过手机进行扫码后,将扫码获取的数据通过有线或无线连接的方式导入物联网设备,再通过该物联网设备上传物联网数据。
在一些实施例中,为了保证物联网设备所上传的物联网数据可信,公链还需要对物联网数据进行验证,以避免物联网设备上传遭到篡改的数据,如避免商家通过物联网设备向公链上传虚假商品信息或发货信息等。
在一些实施例中,物联网设备在获取数据后需要将该物联网数据进行存证,以便于后期追溯查询或备份等工作。
320,生成数字签名。
为了确保物联网设备上传的数据真实可信。在一些实施例中,可以在物联网设备中嵌入安全执行环境,且将对接公链服务的SDK植入安全之星单元中,从而确保物联网设备行为遵循SDK预设的流程,且SDK不会被篡改。例如,SDK可以接收物联网设备采集的数据,并将采集的物联网数据作为签名消息,利用SDK内嵌的私钥对物联网数据进行加密(或签名)。在一些实施例中,物联网设备向公链上传的物联网数据包括在所述安全执行环境中生成的数字签名。
在一些实施例中,安全执行环境可以包括安全单元(Secure Element)或可信执行环境(Trusted Execution Environment,TEE)等。
步骤330,向公链发起存证交易或验证交易。
在一些实施例中,物联网设备发起存证交易或验证交易中可以包括物联网数据及数字签名。对于验证交易,在一些实施例中,其还可以包括请求验证的物联网数据的公链地址或查询Key值。
图4为是根据本申请一些实施例所示的公链对存证交易的处理流程示意图。
在一些实施例中,物联网设备发起存证交易后,公链中的共识节点可以进行以下步骤:
步骤410,接收物联网设备发起的物联网数据存证交易,所述物联网数据存证交易包括该物联网设备的物联网数据及所述数字签名。
在一些实施例中,上传物联网设备作为公链的节点之一,将数字签名和物联网数据上传至公链时,公链中其他各节点收到物联网设备发起的物联网数据存证交易。
在一些实施例中,物联网数据存证交易包括该物联网设备的物联网数据及数字签名。在其他具体实施方式中,物联网数据存证交易还可以包括其他信息(如时间信息、当前公链节点信息等)。
步骤420,验证所述数字签名,若验证成功则存储该物联网设备的物联网数据到公链的区块链数据中。
在一些实施例中,若其他公链中的共识节点验证成功,则认为物联网数据来自于可信物联网设备且物联网数据未经篡改,故各节点可以将该物联网数据同步写入公链的区块链数据中。
可选的,流程400还可以包括步骤430,在存储该物联网设备的物联网数据到公链的区块链数据中后,对该物联网设备进行奖励。
在一些实施例中,公链可以通过代币(token)机制鼓励物联网设备来激励更多的物联网设备上传真实可信的物联网数据。通过上述方式增加公链参与的节点数量,以增加数据篡改难度、深化去中心化特性,从而保证整个公链的安全性。
图5是根据本申请一些实施例所示的公链对验证交易的处理流程示意图。
在一些实施例中,物联网设备发起验证交易后,公链中的共识节点可以进行以下步骤:
步骤510,接收物联网设备发起的物联网数据验证交易,所述物联网数据验证交易包括该物联网设备的物联网数据及所述数字签名。
在一些实施例中,发起验证交易的物联网设备可以是能够采集到与已存证物联网数据相同的物联网数据,如图1所示的第二物联网设备114。关于该物联网设备的更多内容可以在本说明书其他地方找到。该物联网设备重新接收或获取物联网数据,并在安全执行环境中生成数字签名,然后将该物联网数据及数字签名广播至其他共识节点进行验证交易。在一些实施例中,验证交易中还可以包括请求验证的物联网数据的公链地址或查询Key值。
步骤520,验证所述数字签名,若验证成功则基于公链存储的物联网数据对该物联网设备节点的物联网数据进行验证,并将验证结果存储到公链的区块链数据中。
在一些实施例中,若公链中的共识节点对验证交易中的数字签名验证成功,则认为物联网数据来自于可信的物联网设备,但公链的区块链数据中还存在之前物联网设备上传的另一物联网数据,此时公链中其他共识节点将新验证成功的物联网数据与公链中之前上传的相应的物联网数据进行比对,并将验证结果储存到公链的区块链数据中。
在一些实施例中,当验证结果为该物联网设备节点的物联网数据与公链存储的相应的物联网数据一致时,可以认为目前为止该物联网数据没有遭到篡改,在一些实施例中,针对该物联网数据发起多次验证交易时,可以将每一次验证交易的结果均储存于公链的区块链数据中,可以理解的是,当该区块链数据验证一致的次数越多,证明该区块链数据越可信。
在一些实施例中,当验证结果为该物联网设备节点的物联网数据与公链存储的相应的物联网数据不一致时,则认为两份物联网数据中至少有一份是遭到篡改的,并将该结果保存于公链的区块链数据中。
可选的,流程500还可以包括步骤530,若验证结果为该物联网设备节点的物联网数据与公链存储的相应的物联网数据不一致,则对该物联网设备进行奖励。
在一些实施例中,可以将部分物联网设备视为监督物联网设备,当监督物联网发起的验证交易的验证结果为该物联网设备节点的物联网数据与公链存储的相应的物联网数据不一致时,可以认为该监督物联网设备行使了有效监督,发现了遭到篡改的物联网数据,因此对该物联网设备进行奖励。在一些实施例中,与进行记账的奖励相同,进行监督的奖励可以是代币。针对验证交易的奖励机制的更多内容还可以在本说明书其他部分找到。
本申请实施例可能带来的有益效果包括但不限于:(1)通过公链和联盟链的结合,通过公链实现去中心化同时对数据进行验证,进一步提高了进入联盟链的物联网数据的安全;(2)分别对存证交易中的记账节点和验证交易中的监管物联网设备节点进行奖励,保证竞争的同时吸引更多节点加入公链,提高数据的安全性。
需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本申请的限定。虽然此处并没有明确说明,本领域技术人员可能会对本申请进行各种修改、改进和修正。该类修改、改进和修正在本申请中被建议,所以该类修改、改进、修正仍属于本申请示范实施例的精神和范围。
同时,本申请使用了特定词语来描述本申请的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本申请的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,除非权利要求中明确说明,本申请所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本申请流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本申请实施例实质和范围的修正和等价组合。
同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本申请对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本申请一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本申请引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本申请作为参考。与本申请内容不一致或产生冲突的申请历史文件除外,对本申请权利要求最广范围有限制的文件(当前或之后附加于本申请中的)也除外。需要说明的是,如果本申请附属材料中的描述、定义、和/或术语的使用与本申请所述内容有不一致或冲突的地方,以本申请的描述、定义和/或术语的使用为准。
最后,应当理解的是,本申请中所述实施例仅用以说明本申请实施例的原则。其他的变形也可能属于本申请的范围。因此,作为示例而非限制,本申请实施例的替代配置可视为与本申请的教导一致。相应地,本申请的实施例不仅限于本申请明确介绍和描述的实施例。