1.本发明系关于一种数据上链装置、数据验证装置及数据验证方法。具体而言,本发明系关于一种用于物联网的数据上链装置、数据验证装置及数据验证方法。
背景技术:2.随着科技及经济的快速发展,许多产业的运作都涉及物联网,透过物联网将各项设备、装置的数据传送远端存储和分析,以供后续应用,例如:可用以验证物联网中的设备数据的正确性。举例而言,制造业者往往会建构物联网以搜集生产线在制造产品时的环境因素(例如:温度、压力、湿度等),而这些环境因素所对应的数据需要被记录下来以供稽核或/及验证。再举例而言,某些业者会将二手设备(例如:工业电池、工业马达、汽车)重新投入交易市场,然而,目前并无机制能避免二手设备的数据(例如:工业电池的充放电次数、汽车的里程数)被窜改,衍生不少纠纷,因此非常需要一个数据的传送和验证机制。
3.有鉴于此,如何将物联网中的设备的数据进行加密及存储,并经由具有公信力的平台来查询及验证该些数据,以确保该些数据的可信度,为业界亟需克服的技术问题。
技术实现要素:4.为解决上述技术问题,本发明提供一种数据上链装置、数据验证装置及数据验证方法。
5.本发明所提供的数据上链装置包含一微控制器及一传输接口,其中该传输接口电性连接至该微控制器。该微控制器依据一演算法对一设备的一原始数据产生一区块链可读取的一杂凑数据。该传输接口传送该原始数据及该杂凑数据至一区块链代理人平台。该传输接口还自该区块链代理人平台接收该杂凑数据于一默克尔树(merkle tree)的一节点切片(slice),其中该节点切片包含基于该杂凑数据所产生的一第一证据数据。
6.在本发明的某些实施态样中,该数据上链装置还包含一电性连接至该处理器的存储器,且该存储器存储该微控制器的一识别码。该传输接口还传送该识别码及该原始数据所对应的一时间戳记至一公有区块链(public blockchain)的一区块链节点。该传输接口还自该区块链节点的一智能合约(smart contract)接收基于该识别码及该时间戳记所撷取出的一第二证据数据。该微控制器还自该节点切片撷取出该第一证据数据,且藉由比对该第一证据数据及该第二证据数据以判断该杂凑数据于该智能合约中的一上链结果。
7.本发明所提供的数据验证装置包含一存储器、一传输接口及一处理器,其中该处理器电性连接至该存储器及该传输接口。该存储器存储一杂凑链(hash chain)记录,且该杂凑链记录包含多个证据切片。该传输接口传送一微控制器的一识别码及一时间戳记至一区块链代理人平台,且自该区块链代理人平台接收一第一证据数据与基于该识别码及该时间戳记所撷取出的一原始数据及一默克尔树的一节点切片。该传输接口还自一公有区块链的一区块链节点的一智能合约接收一第二证据数据。该处理器藉由比对该第一证据数据及该第二证据数据以决定一第一验证结果。当该第一验证结果为该第一证据数据与该第二证
据数据一致,该处理器还针对该原始数据产生一杂凑数据,根据该杂凑数据及该节点切片产生一第三证据数据,根据该第三证据数据及该等证据切片的至少其中之一产生一第四证据数据,且藉由比对该第一证据数据及该第四证据数据以决定一第二验证结果。
8.本发明所提供的数据验证方法适用于一电子计算装置。该电子计算装置存储一杂凑链记录,且该杂凑链记录包含多个证据切片。该数据验证方法包含下列步骤:(a)传送一微控制器的一识别码及一时间戳记至一区块链代理人平台,(b)自该区块链代理人平台接收一第一证据数据与基于该识别码及该时间戳记所撷取出的一原始数据及一默克尔树的一节点切片,(c)自一公有区块链的一区块链节点的一智能合约接收一第二证据数据,(d)判断该第一证据数据与该第二证据数据一致,(e)针对该原始数据产生一杂凑数据,(f)根据该杂凑数据及该节点切片产生一第三证据数据,(g)根据该第三证据数据及该等证据切片的至少其中之一产生一第四证据数据,以及(h)藉由比对该第一证据数据及该第四证据数据以决定一验证结果。
9.由上述说明可知,本发明所提供的数据上链装置会对应至一设备,且会利用区块链代理人平台将其所对应的设备的杂凑数据进行上链。藉由前述的配置,解决了习知技术无法将物联网中的大量的设备数据进行上链的技术问题。另外,本发明所提供的数据验证装置存储了一份与公有区块链中相同的杂凑链记录。每当有使用者欲查询或/及验证某一设备在某一时间的原始数据,数据验证装置不需从公有区块链下载大量的数据才能进行验证,仅需从公有区块链的一区块链节点的智能合约下载最新的证据数据,即能完成数据的认证。因此,数据验证装置在进行数据的验证或/及查询时,不会占用公有区块链的频宽。
10.以下结合附图阐述本发明的详细技术及实施方式,俾使本领域技术人员能理解所请求保护的发明的技术特征。
附图说明
11.图1a为第一实施方式的数据验证系统ds的架构示意图;
12.图1b描绘数据上链装置1a的架构及运作的示意图;
13.图1c描绘一默克尔树的一具体范例;
14.图1d描绘2的架构及运作的示意图;
15.图1e描绘根据杂凑数据hd’及节点切片s10产生证据数据r10’的示意图;以及
16.图2描绘第二实施方式的数据验证方法的流程图。附图标记说明ds:数据验证系统1a、
……
、1b:数据上链装置2:数据验证装置3:区块链代理人平台4:公有区块链10a、
……
、10b:设备11:微控制器13:存储器15、19:传输接口
rd:原始数据hd、hd’:杂凑数据mt:默克尔树l1~l8:叶节点s10:节点切片id:识别码t:时间戳记140:区块链节点r10、r10’:证据数据20:杂凑链记录21:处理器23:存储器25:传输接口ch0、ch1、
……
、ch100:证据切片r100、r100’:证据数据s201~s215:步骤
具体实施方式
17.以下将通过实施方式来解释本发明所提供的数据上链装置、数据验证装置及数据验证方法。然而,该等实施方式并非用以限制本发明需在如该等实施方式所述的任何环境、应用或方式方能实施。因此,关于以下实施方式的说明仅在于阐释本发明的目的,而非用以限制本发明的范围。应理解,在以下实施方式及附图中,与本发明非直接相关的元件已省略而未绘示,且附图中各元件的尺寸以及元件间的尺寸比例仅为便于绘示及说明,而非用以限制本发明的范围。
18.本发明的第一实施方式为一数据验证系统ds,其架构示意图系描绘于图1a。数据验证系统ds包含多个数据上链装置1a、
……
、1b、一数据验证装置2、一区块链代理人平台3及一公有区块链(public blockchain)4。数据上链装置1a、
……
、1b一对一地对应至设备10a、
……
、10b。举例而言,若数据验证系统ds应用于一制造工厂,则该制造工厂的每一条生产线的每一感测器可以设置一个对应的数据上链装置。再举例而言,若数据验证系统ds应用于二手交易市场,则每一个二手设备会有一对应的数据上链装置。图1a中,公有区块链4中的每一个黑点代表一区块链节点。
19.数据验证系统ds的运作可区分为二个面向,其中一个面向为数据上链,而另一个面向为数据验证。兹先说明数据验证系统ds中与数据上链相关的运作。由于数据上链装置1a、
……
、1b采取雷同的运作请求区块链代理人平台3协助为其数据上链,因此以下仅以数据上链装置1a为例详细说明。
20.请参图1b,其系描绘数据上链装置1a的架构及运作的示意图。数据上链装置1a包含一微控制器(microcontroller;mcu)11、一传输接口15及一传输接口19,其中传输接口15、19电性连接至微控制器11。微控制器11可为各种单晶片微控制器或本领域技术人员所知悉的其他单晶片微电脑。传输接口15可为任何能与网络中的装置进行通讯的接口,例如:
蓝牙接口、wi-fi接口,但不以此为限。传输接口19可为任何能与微控制器11搭配使用,且能传输讯号的接口,例如:串行通信接口(serial communication interface;sci)、通用异步收发器(universal asynchronous receiver/transmitter;uart),但不以此为限。
21.于本实施方式中,数据上链装置1a与设备10a(例如:生产线上的温度感测器)搭配使用。传输接口19会定期地或不定期地自设备10a接收一原始数据rd。于不同时间点所接收到的原始数据rd的值可能相同,亦可能不同。于其他实施方式中,数据上链装置1a可与搭配使用的设备整合在同一装置中,因而可不设置自外界接收原始数据rd的传输接口19。
22.于本实施方式中,数据上链装置1a的微控制器11依据一演算法对设备10a的原始数据rd产生一区块链可读取的杂凑数据hd。举例而言,微控制器11可采用一演算法将原始数据rd及原始数据rd所对应的一时间戳记t加密为杂凑数据hd。前述的演算法可为一加密演算法,例如:一进阶加密标准(advanced encryption standard;aes)演算法、一安全散列演算法(secure hash algorithm;sha)、一椭圆曲线密码学(elliptic curve cryptography;ecc)演算法及一base演算法其中之一,但不以此为限。需说明的是,本领域技术人员应熟知如何以一演算法将原始数据rd及其对应的时间戳记t加密为杂凑数据hd,兹不赘言。
23.之后,数据上链装置1a的传输接口15传送原始数据rd及杂凑数据hd至区块链代理人平台3。于本实施方式中,区块链代理人平台3可由美商亚马逊公司(amazon.com,inc.)所提供的亚马逊托管区块链(amazon managed blockchain)来实现、由国际信任机器股份有限公司(international trust machines corporation;itm)所开发的区块链信任技术来实现或由美商微软公司(microsoft corporation)所开发的azure区块链工作台(azure blockchain workbench)来实现,但不以此为限。
24.区块链代理人平台3会接收数据上链装置1a所传来的原始数据rd及杂凑数据hd,且会存储原始数据rd。此外,针对杂凑数据hd,区块链代理人平台3会等到自数据上链装置1a、
……
、1b接收到二的幂次方个杂凑数据后,建立一默克尔树(merkle tree)mt。默克尔树mt的根节点所存储的数据即是区块链代理人平台3基于原始数据rd所对应的杂凑数据hd所产生的证据数据(forensic data)r10。
25.为便于理解,请参图1c所示的默克尔树mt的一具体范例,但该具体范例并非用以限制本发明的范围。于该具体范例中,默克尔树mt具有八个叶节点l1~l8,且叶节点l1~l8各自存储了来自于数据上链装置1a、
……
、1b任一个的杂凑数据,其中叶节点l3存储了前述的杂凑数据hd。区块链代理人平台3收集到二的幂次方个杂凑数据后便建立了默克尔树mt。需说明的是,本领域技术人员应能理解区块链代理人平台3如何根据二的幂次方个杂凑数据建立一默克尔树,故不赘言。
26.区块链代理人平台3会存储此默克尔树mt。区块链代理人平台3还会将默克尔树mt所对应的证据数据r10(亦即,默克尔树mt的根节点的数据)传送至公有区块链4,使公有区块链4中的每一个区块链节点(包含区块链节点140)的智能合约(smart contract)皆存储证据数据r10。此外,区块链代理人平台3还会传送杂凑数据hd于默克尔树mt的节点切片s10至数据上链装置1a,而数据上链装置1a则由传输接口15接收节点切片s10。此节点切片s10包含基于杂凑数据hd所产生的证据数据r10,如图1c所示。
27.藉由前述运作,数据上链装置1a便透过区块链代理人平台3完成了原始数据rd所
对应的杂凑数据hd的上链。
28.需说明的是,区块链代理人平台3会不断地接收数据上链装置1a、
……
、1b所传来的原始数据及杂凑数据。区块链代理人平台3会存储这些原始数据。另外,每当区块链代理人平台3收集到二的幂次方个杂凑数据,便会建立一默克尔树并将之存储,因此区块链代理人平台3会存储多棵默克尔树。区块链代理人平台3还会将每一棵默克尔树所对应的证据数据(亦即,根节点的数据)传送至公有区块链4。公有区块链4中的每一个区块链节点的智能合约皆以区块链的形式存储这些证据数据(容后说明)。
29.在某些实施方式中,数据上链装置1a还可进一步地确认原始数据rd所对应的杂凑数据hd是否被正确地上链。于该等实施方式中,数据上链装置1a还包含一存储器13,且存储器13电性连接至微控制器11。存储器13可为一记忆体,例如:一只读存储器(read-only memory;rom)、一随机存取存储器(random access memory;ram),但不以此为限。存储器13存储微控制器11的一识别码id。
30.传输接口15传送识别码id及原始数据rd所对应的时间戳记t至公有区块链4的一区块链节点140。区块链节点140会根据识别码id及时间戳记t自智能合约撷取出证据数据r10’。接着,传输接口15再自区块链节点140接收基于识别码id及时间戳记t所撷取出的证据数据r10’。
31.数据上链装置1a的微控制器11自节点切片s10撷取出证据数据r10,且藉由比对从节点切片s10撷取出来的证据数据r10及从区块链节点140接收到的证据数据r10’,判断杂凑数据hd于该智能合约的一上链结果。若微控制器11判断证据数据r10与证据数据r10’相同,表示该上链结果为杂凑数据hd已被正确地上链于该智能合约。若微控制器11判断证据数据r10与证据数据r10’相异,表示该上链结果为杂凑数据hd未被正确地上链于该智能合约。藉此,数据上链装置1a便能确认区块链代理人平台3是否正确地将原始数据rd所对应的杂凑数据hd上链。
32.接着说明数据验证系统ds中与数据验证相关的运作。请参阅图1d,其系描绘数据验证装置2的架构及运作的示意图。数据验证装置2包含一处理器21、一存储器23及一传输接口25,其中处理器21电性连接至存储器23及传输接口25。处理器21可为各种处理器、中央处理单元(central processing unit;cpu)、微处理器或本领域技术人员所知悉的其他计算装置。存储器23可为一记忆体、一硬盘(hard disk drive;hdd)、一通用串列汇流排(universal serial bus;usb)碟、一光盘(compact disk;cd)或本领域技术人员所知的任何其他能存储数字数据的非暂态存储媒体或装置。传输接口25可为任何能与网络中的装置进行通讯的有线接口或无线接口。
33.存储器23存储一杂凑链(hash chain)记录20,且杂凑链记录20包含多个证据切片ch0、ch1、
……
、ch100。证据切片ch0、ch1、
……
、ch100的每一个为区块链中的一个区块,其中各区块包含一区块头及一区块体,且各区块体存储一个由区块链代理人平台3产生的证据数据。证据切片ch0、ch1、
……
、ch100依序地串成一个链,其中证据切片ch100为最新的证据切片。公有区块链4中的每一个区块链节点都存储着相同的杂凑链记录20。本领域技术人员应熟知区块链的架构,故不赘言。
34.兹假设有一使用者欲查询设备10a在某一时间(对应至时间戳记t)的原始数据。设备10a的拥有者会提供设备10a所对应的数据上链装置1a所存储的识别码id及时间戳记t给
该使用者,俾使用者透过数据验证装置2查询。
35.使用者将识别码id及时间戳记t输入至数据验证装置2。数据验证装置2透过传输接口25传送识别码id及时间戳记t至区块链代理人平台3。传输接口25再自区块链代理人平台3接收最新的证据数据r100以及基于识别码id与时间戳记t所撷取出的原始数据rd及默克尔树mt的节点切片s10。另外,传输接口25自公有区块链4的一区块链节点的智能合约接收最新的证据数据r100’。
36.接着,数据验证装置2的处理器21藉由比对自区块链代理人平台3所接收的最新的证据数据r100及自公有区块链4的区块链节点的智能合约所接收的最新的证据数据r100’以决定一第一验证结果。数据验证装置2会依据该第一验证结果,决定是否继续执行后续的验证。若第一验证结果为证据数据r100与证据数据r100’不一致,则处理器21不会进行后续的验证。
37.若第一验证结果为证据数据r100与证据数据r100’一致,则处理器21会进行后续的验证。具体而言,处理器21会依据同样的演算法对原始数据rd产生一杂凑数据hd’,再根据杂凑数据hd’及节点切片s10产生一证据数据r10’(亦即,将杂凑数据hd’代入节点切片s10中对应至叶节点l3的节点,即可由其他的节点推出根节点的数据作为证据数据r10’,如图1e所示)。接着,处理器21再根据证据数据r10’及杂凑链记录20中该等证据切片的至少其中之一(亦即,包含证据数据r10’的证据切片至最新的证据切片ch100)产生另一最新的证据数据(未绘示)。之后,处理器21藉由比对证据数据r100(或证据数据r100’)及处理器21所产生的最新的证据数据以决定一第二验证结果。若第二验证结果为证据数据r100(或证据数据r100’)与处理器21所产生的最新的证据数据相同,表示区块链代理人平台3所传来的原始数据rd为正确的。若第二验证结果为证据数据r100(或证据数据r100’)与处理器21所产生的最新的证据数据相异,表示区块链代理人平台3所传来的原始数据rd为错误的。
38.综上所述,在数据验证系统ds中,数据上链装置1a、
……
、1b一对一地对应至设备10a、
……
、10b。数据上链装置1a、
……
、1b的每一个可利用区块链代理人平台3将其所对应的设备的杂凑数据进行上链。藉由前述的配置,解决了习知技术无法将物联网中的大量的设备数据进行上链的技术问题。另外,数据验证系统ds中的数据验证装置2存储了一份与公有区块链4中相同的杂凑链记录20。每当有使用者欲查询或/及验证某一设备在某一时间的原始数据,数据验证装置2不需从公有区块链4下载大量的数据才能进行验证,仅需从公有区块链4的一区块链节点的智能合约下载最新的证据数据,即能完成数据的认证。因此,数据验证装置2在进行数据的验证或/及查询时,不会占用公有区块链4的频宽。
39.本发明的第二实施方式为一种数据验证方法,其主要流程图系描绘于图2。该数据验证方法适用于一电子计算装置(例如:第一实施方式中的数据验证装置2)。该电子计算装置存储一杂凑链记录,其中该杂凑链记录包含多个证据切片。该数据验证方法包含步骤s201至步骤s215。
40.具体而言,于步骤s201,由该电子计算装置传送一微控制器的一识别码及一时间戳记至一区块链代理人平台。于步骤s203,由该电子计算装置自该区块链代理人平台接收一第一证据数据与基于该识别码及该时间戳记所撷取出的一原始数据及一默克尔树的一节点切片。接着,于步骤s205,由该电子计算装置自一公有区块链的一区块链节点的一智能合约接收一第二证据数据。
41.于本实施方式中,数据验证方法于步骤s207,由该电子计算装置判断该第一证据数据与该第二证据数据一致。需说明的是,若验证结果为该第一证据数据与该第二证据数据不一致,则数据验证方法不会进行后续的验证步骤。于本实施方式中,因步骤s207判断该第一证据数据与该第二证据数据一致,因此数据验证方法会进行后续的验证步骤。
42.于步骤s209,由该电子计算装置针对该原始数据产生一杂凑数据。在某些实施方式中,步骤s209系由该电子计算装置采用一演算法将该原始数据及该时间戳记加密为该杂凑数据。该演算法可为一加密演算法,例如:一进阶加密标准演算法、一安全散列演算法、一椭圆曲线密码学演算法及一base演算法其中之一,但不以此为限。
43.另外,于步骤s211,由该电子计算装置根据该杂凑数据及该节点切片产生一第三证据数据。接着,于步骤s213,由该电子计算装置根据该第三证据数据及该等证据切片的至少其中之一产生一第四证据数据。之后,于步骤s215,由该电子计算装置藉由比对该第一证据数据及该第四证据数据以决定一验证结果。
44.若步骤s215所决定的该验证结果为该第一证据数据(或该第二证据数据)及该第四证据数据相同,表示该区块链代理人平台所传来的该原始数据为正确的。若步骤s215所决定的该验证结果为该第一证据数据(或该第二证据数据)及该第四证据数据相异,表示该区块链代理人平台所传来的该原始数据为错误的。
45.除了上述步骤,第二实施方式能执行第一实施方式所描述的数据验证装置2的所有运作及步骤,具有同样的功能,且达到同样的技术效果。本领域技术人员可直接了解第二实施方式如何基于上述第一实施方式以执行此等运作及步骤,具有同样的功能,并达到同样的技术效果,故不赘述。
46.需说明的是,于本案的说明书及权利要求中,某些用语(包含:传输接口、证据数据、验证结果等)前被冠以「第一」、「第二」、「第三」及「第四」,该等数字仅用来区分该等用语系指不同项目。
47.综上所述,本发明所提供的数据上链装置及数据验证装置可搭配区块链代理人平台及公有区块链而形成一数据验证系统。在数据验证系统中,多个数据上链装置会一对一地对应至物联网中的多个设备,且各个数据上链装置会利用区块链代理人平台将其所对应的设备的杂凑数据进行上链。本发明藉由前述的配置,解决了习知技术无法将物联网中大量的设备数据进行上链的技术问题。另外,数据验证系统中的数据验证装置会存储一份与公有区块链中相同的杂凑链记录。每当有使用者欲查询或/及验证某一设备在某一时间的原始数据,数据验证装置不需于公有区块链下载大量的数据才能进行验证,仅需从公有区块链的一个区块链节点的智能合约下载最新的证据数据,即能完成数据的认证。因此,数据验证装置在进行数据的验证或/及查询时,不会占用公有区块链的频宽。
48.上述实施方式仅为例示性说明本发明的部分实施态样,以及阐释本发明的技术特征,而非用来限制本发明的保护范畴及范围。任何熟悉此技艺的人士可轻易完成的改变或均等性的安排均属于本发明所主张的范围,本发明的权利保护范围应以权利要求为准。