用于链接数据的验证系统与方法与流程

文档序号:22759631发布日期:2020-10-31 09:58阅读:145来源:国知局
用于链接数据的验证系统与方法与流程

本发明涉及一种验证系统,且特别涉及一种可与区块链协作并用于链接数据的验证系统与方法。



背景技术:

在现有技术中,区块链(blockchain)采取分散式架构来达到去中心化的目的,全世界的终端电脑可藉由区块链而产生连接,任一终端电脑所传送到区块链上的数据,可通过特定的运算方式而分布在区块链上的其他终端电脑中。由于这些数据是存在于区块链上的大量终端电脑中,因此数据的正确性可通过区块链的大量终端电脑互相验证,这使得区块链数据难以被变造或窜改。

在传统的终端电脑对中心伺服器的架构中,当一台终端电脑要将数据上传到伺服器或是由伺服器下载数据,此操作只牵涉到终端电脑、中心伺服器与两者间的网络伺服器等有限装置的运作,以时下的网络速度与电脑计算能力来说,此操作可以执行得极为快速。但在区块链的架构中,当一台终端电脑要将数据上传到区块链或是由区块链下载数据时,基于区块链的特性,此操作会牵涉到区块链上其他大量的终端电脑(如矿工)的验证程序,从而导致庞大的网络传输需求及运算量,因此相对耗时,且运算成本(如矿工费用)居高不下。

一般来说,区块链是采用二元树(binarytree)或称模克树(merkletree)的树状数据结构,所有数据会经过杂凑运算而产生杂凑值(hashvalue)。所述二元树包括顶层的树根(root)与底层的多个叶节点(leafnode),每一笔数据的杂凑值会被储存在叶节点,而所有叶节点的杂凑值会经过逐层运算而最终产生位于树根的根杂凑值(roothash)。所有的二元树会储存在区块链上的各个终端电脑中,若要验证某一二元树的某一笔数据的正确性,可藉由比对此二元树在各终端电脑上的根杂凑值,来验证此二元树与其数据的正确性。



技术实现要素:

基于现有区块链,当大量读取区块链上的数据时,会造成区块链上的终端电脑的负荷,且效率不彰。此外,若大量读取数据的动作被区块链上的终端电脑当成恶意行为,轻则此次的读取要求被区块链上的终端电脑阻挡,造成数据无法读取,重则发出读取要求的网络位址被区块链上的终端电脑列入黑名单,从此无法再由此终端电脑存取区块链。

有鉴于此,本发明的目的在于提出一种用于链接数据的验证系统与方法,其目的是在解决大量读取区块链上的数据时所导致效率不彰的问题,且解决大量读取时造成区块链的网络传输需求与运算负荷过大的问题。

本发明一实施例提出一种验证系统,其适用于与区块链协作并用于链接数据。验证系统包括安全协定装置、区块链装置与数据库装置。安全协定装置接收多个纪录数据并根据杂凑函数整合该些纪录数据为多个二元树,各二元树包括树根与多个叶节点,各树根储存有根杂凑值,且各纪录数据的杂凑值分别储存于各叶节点。区块链装置位于区块链且通讯连接安全协定装置,安全协定装置传送该些二元树的该些根杂凑值至区块链装置。区块链装置包括至少一链接数据串,链接数据串包括多个以串行方式链接的数据集合,各数据集合分别包括各根杂凑值与对应的链接杂凑值,每一数据集合的链接杂凑值关联于前一数据集合的根杂凑值与链接杂凑值,且该些数据集合最前者的链接杂凑值关联于初始链接值。数据库装置在无涉于区块链的链下通讯连接安全协定装置,安全协定装置储存该些二元树与初始链接值于数据库装置。

本发明一实施例提出一种验证方法,其适用于与区块链协作。验证方法包括:在无涉于区块链的链下接收多个纪录数据;根据杂凑函数整合该些纪录数据为多个二元树,其中,各二元树包括树根与多个叶节点,各树根储存有根杂凑值,且各纪录数据的杂凑值分别储存于各叶节点;传送该些二元树的该些根杂凑值至区块链,其中,区块链上设置有至少一链接数据串,链接数据串包括多个以串行方式链接的数据集合,各数据集合分别包括各根杂凑值与对应的链接杂凑值,每一数据集合的链接杂凑值关联于前一数据集合的根杂凑值与链接杂凑值,且该些数据集合最前者的链接杂凑值关联于初始链接值;以及,在无涉于区块链的链下储存该些二元树与初始链接值。

综上所述,根据本发明实施例的验证系统与方法,在需要大量读取二元树的根杂凑值时,可通过链下数据库装置中读取这些根杂凑值,并以区块链上的链接数据串的数据集合在后者的链接杂凑值来验证由链下读取的根杂凑值的正确性,从而在维持数据的可信任度的前提下,减轻区块链的网络传输需求与运算负荷。

以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。

附图说明

图1所示为本发明一实施例的验证系统的方框示意图;

图2所示为本发明一实施例的二元树的示意图;

图3所示为本发明一实施例的链接数据串的示意图一;

图3a所示为本发明一实施例的链接数据串的示意图二;

图4所示为本发明另一实施例的验证系统的方框示意图;

图5所示为本发明又一实施例的验证系统的方框示意图;

图6所示为本发明一实施例的二元树的切片的示意图;

图7所示为本发明另一实施例的链接数据串的示意图;

图8所示为本发明一实施例的验证方法的流程图;以及

图9所示为本发明另一实施例的验证方法的流程图。

其中,附图标记

10、10a、10b验证系统

100安全协定装置

110二元树处理单元

120验证单元

130读取单元

140链接处理单元

150识别编号单元

160定位搜寻单元

170切片单元

180识别序号单元

200数据库装置

300区块链装置

310智能合约

311链接处理单元

312累计序号单元

400终端装置

410纪录数据产生单元

420识别数据产生单元

430切片验证单元

440识别编号单元

as累计序号

bt二元树

bts二元树的切片

cds链接数据串

ch链接杂凑值

ch0初始链接值

ds数据集合

h高度值

id识别数据

in识别编号

is识别序号

ln叶节点

mn中间节点

oc链下

bc区块链

r树根

rd纪录数据

rdh纪录数据的杂凑值

rh根杂凑值

rr读取要求

sec数据区段

s101在链下自多个终端装置接收多个纪录数据

s103根据杂凑函数整合纪录数据为二元树

s105传送二元树的根杂凑值至区块链

s107产生链接数据串

s109在链下储存二元树与初始链接值

s111当接收验证要求,比对区块链上的根杂凑值与在链下储存的二元树的根杂凑值

s113当接收读取要求,读取区块链上的数据集合在后者的根杂凑值并读取在链下储存的数据集合在前者的一或多个根杂凑值

s115以区块链上的在后的数据集合的链接杂凑值验证在链下储存的在前的一或多个根杂凑值的正确性

s201在链下自多个终端装置接收多个纪录数据与多个识别数据

s203当接收识别数据之后,根据各识别数据产生分别对应于各叶节点的多个识别编号

s205根据杂凑函数整合纪录数据为二元树

s207根据各识别编号储存各纪录数据的杂凑值至对应的各叶节点

s209传送二元树的根杂凑值与识别序号至区块链

s211切割二元树为多个切片

s213在链下回传各切片至对应的各终端装置

s215验证不正确,对应的终端装置传送抗议讯息至区块链

s217验证正确,终端装置无需传送抗议讯息至区块链

s219依序产生累计序号

s221产生链接数据串

s223在链下储存二元树、初始链接值、识别序号与累计序号

s225当接收验证要求,比对区块链上的根杂凑值与在链下储存的二元树的根杂凑值

s227当接收搜寻要求,根据识别编号定位在链下储存的二元树的叶节点

s229当接收读取要求,读取区块链上的数据集合在后者的根杂凑值并读取在链下储存的数据集合在前者的一或多个根杂凑值

s231以区块链上的在后的数据集合的链接杂凑值验证在链下储存的在前的一或多个根杂凑值的正确性

具体实施方式

下面结合附图对本发明的结构原理和工作原理作具体的描述:

请参照图1,图1为本发明一实施例的验证系统10的方框示意图。在本实施例中,验证系统10适用于与区块链bc协作,区块链bc可包括公有区块链、私有区块链或其组合。验证系统10用以在链下(offchain)oc,亦即通过链下通道(off-chainchannel),通讯连接多个终端装置400,并在区块链bc与链下oc间进行协作,且各终端装置400可产生至少一笔纪录数据rd。所述链下oc是指独立于区块链bc之外的路径,即无涉于区块链bc的路径;所述在链下oc通讯连接是指在独立于区块链bc之外的路径具有通讯连接关系,即通过无涉于区块链bc的路径建立通讯连接。例如,两装置在链下oc通讯连接,意味这两装置之间可通过网络直接连接并互相传送信号而无涉于区块链bc。终端装置400例如是桌上型电脑、笔记型电脑或各种感测器,纪录数据rd例如是桌上型电脑或笔记型电脑产生的文件或交易信息或是感测器所感测的数值信息,但不限于此。

如图1所示,在本实施例中,验证系统10包括安全协定装置100、数据库装置200与区块链装置300。安全协定装置100是在无涉于区块链bc的链下oc通讯连接数据库装置200,且安全协定装置100通讯连接位于区块链bc上的区块链装置300。数据库装置200例如是独立于区块链bc之外的数据储存伺服器,区块链装置300例如是连接区块链bc的复数电脑的集合,但不限于此。在本实施例中,安全协定装置100是兼具区块链bc与链下oc的通讯能力的伺服器。举例来说,安全协定装置100是位于链下oc与区块链bc之间的中介者,其可作为终端装置400与数据库装置200以及区块链装置300之间的桥梁,容后详述。

请再参照图2,图2所示为本发明一实施例的二元树bt的示意图。如图1与图2所示,在本实施例中,各终端装置400产生纪录数据rd后,各终端装置400会在链下oc传送纪录数据rd至安全协定装置100。安全协定装置100在链下oc接收各终端装置400的该些纪录数据rd之后,安全协定装置100会根据杂凑函数整合该些纪录数据rd为至少一二元树bt。

如图2所示,在本实施例中,二元树bt包括树根r、多个中间节点mn与多个叶节点ln,以二元树bt的树状数据结构来看,树根r位于顶层、叶节点ln位于底层、而中间节点mn分布于顶层与底层之间的一或多层。每两个相邻的叶节点ln在往上一层会合而为一个中间节点mn,每一层中的每两个相邻的中间节点mn在更往上一层又会合而为一个中间节点mn,而位于最上层的两个中间节点mn会合而为树根r。每一叶节点ln分别储存各纪录数据rd的杂凑值rdh,而每一中间节点mn的杂凑值与树根r中的根杂凑值rh则关联于各纪录数据rd的杂凑值rdh。

举例来说,安全协定装置100可采用sha-256的杂凑函数将各笔纪录数据rd杂凑化而产生对应的杂凑值rdh,且安全协定装置100会将各纪录数据rd的杂凑值rdh分别储存于各叶节点ln。并且,每一组两个相邻的叶节点ln中所储存的两笔杂凑值会被连接后再被杂凑化而储存于上一层的中间节点mn,每一层中的每一组两个相邻的中间节点mn所储存的两笔杂凑值也会被连接后再被杂凑化而储存于更上一层的中间节点mn,以此类推。在本实施例中,所述两笔杂凑值被连接后再被杂凑化的实现方式,可以是将此两笔杂凑值先连接为一串编码后再对此串编码进行杂凑化,但不限于此。举例来说,第一笔杂凑值是「xxx」,第二笔杂凑值是「ooo」,此两笔杂凑值会先被连接为「xxxooo」的一串编码,而此串编码「xxxooo」会再被杂凑化而产生杂凑值。最后,位于最上层的两个中间节点mn所储存的两笔杂凑值会被连接后再被杂凑化而产生根杂凑值rh。换言之,二元树bt包括储存于各叶节点ln中的纪录数据rd的杂凑值rdh与储存于树根r的根杂凑值rh,并且,纪录数据rd是不可窜改的,这是因为只要二元树bt中任一笔纪录数据rd遭到窜改,此笔纪录数据rd的杂凑值rdh会产生变化,而只要任一叶节点ln的纪录数据rd的杂凑值rdh产生变化,则二元树bt的根杂凑值rh也会对应变化。藉由判断根杂凑值rh是否产生变化,即可验证此二元树bt对应的纪录数据rd的正确性。在不同的实施例中,单一个叶节点ln亦可储存两笔以上的纪录数据rd的杂凑值rdh,在此情况下,此叶节点ln中所储存的杂凑值rdh为两笔以上的纪录数据rd的杂凑值rdh被连接后再被杂凑化后之值。

如图1与图2所示,在本实施例中,安全协定装置100包括二元树处理单元110与验证单元120。二元树处理单元110与验证单元120例如但不限于是软件/硬件所构成的功能模块,以分别执行特定功能,且二元树处理单元110与验证单元120可以是各自独立的模块或整合为一体的模块。

在本实施例中,安全协定装置100的二元树处理单元110会自动将所接收的该些纪录数据rd进行杂凑化并整合产生二元树bt。安全协定装置100会传送二元树bt的根杂凑值rh至区块链装置300,亦即这些根杂凑值rh将会被储存到区块链bc上。此外,安全协定装置100会将二元树bt储存于数据库装置200中,亦即完整的二元树bt是储存在链下oc,而不会储存于区块链bc上。在其他实施例中,完整的二元树bt亦可同时储存于数据库装置200并传送至区块链装置300。

在本实施例中,安全协定装置100的验证单元120会验证数据库装置200所储存的二元树bt的正确性。当安全协定装置100接收一验证要求,且此验证要求是针对某一笔纪录数据rd的正确性进行验证,此时验证单元120会自动比对区块链装置300上的对应于此纪录数据rd的二元树bt的根杂凑值rh与数据库装置200储存的对应于此纪录数据rd的二元树bt的根杂凑值rh,以验证数据库装置200储存的二元树bt的正确性。若区块链装置300上的根杂凑值rh与数据库装置200储存的二元树bt的根杂凑值rh经比对是一致的,则基于区块链bc的特性,代表数据库装置200所储存的此笔纪录数据rd的二元树bt正确无误。

由于完整的二元树bt是位于链下oc的数据库装置200中,因此纪录数据rd的杂凑值rdh的存取与运算主要是在链下oc进行,可节省传统上在区块链bc进行此项操作的网络传输需求、运算量、运算时间与运算成本。并且,数据库装置200中的二元树bt的根杂凑值rh可经由与区块链装置300上的对应根杂凑值rh比对而得到验证,链下oc的数据库装置200的数据正确性也得以确保。

请参照图3,图3为本发明一实施例的链接数据串cds的示意图一。如图1与图3所示,在本实施例中,区块链装置300包括至少一链接数据串cds,链接数据串cds包括多个以串行方式链接的数据集合ds。所述串行是指由第一笔、第二笔、第三笔依序至倒数第二笔与最后一笔,且每一笔数据会关联于前一笔数据,例如第二笔数据会关联于第一笔数据、第三笔数据会关联于第二笔数据而最后一笔数据会关联于倒数第二笔数据,以此类推。在本实施例中,各数据集合ds分别包括各根杂凑值rh与对应的链接杂凑值ch,每一数据集合ds的链接杂凑值ch关联于前一数据集合ds的根杂凑值rh与链接杂凑值ch,且该些数据集合ds最前者的链接杂凑值ch关联于一初始链接值ch0。

如图1所示,在本实施例中,区块链装置300包括链接处理单元311,链接处理单元311用以产生链接数据串cds。如图1与图3所示,在本实施例中,当区块链装置300接收多个二元树bt的根杂凑值rh之后,链接处理单元311根据所接收的这些二元树bt的根杂凑值rh的产生或接收时间,依序产生数据集合ds,每一数据集合ds的链接杂凑值ch为杂凑化前一数据集合ds而产生,且最前的数据集合ds的链接杂凑值ch为杂凑化初始链接值ch0而产生。

在本实施例中,链接处理单元311会先产生所述初始链接值ch0,初始链接值ch0可以是任意数值或任意字母或数字的组合。并且,链接处理单元311会根据以下两个公式产生链接数据串cds中的多个以串行方式链接的数据集合ds:

chi=hash(rhi-1|chi-1);以及

ch1=hash(ch0)。

其中,rhi-1为根杂凑值rh,chi-1为链接杂凑值ch,且i为2至k的整数。

如图3所示,最前的数据集合ds的根杂凑值rh为rh1而链接杂凑值ch为ch1,且ch1为杂凑化ch0而产生的杂凑值。在后的(排列在最前的数据集合ds后)的第二笔数据集合ds的根杂凑值rh为rh2而链接杂凑值ch为ch2,且ch2为杂凑化连接后的rh1与ch1而产生的杂凑值。如前所述,所述杂凑化连接后的rh1与ch1的实现方式,可以是将rh1与ch1连接后再进行杂凑化,但不限于此。在后的(排列在第二笔数据集合ds后)的第三笔数据集合ds的根杂凑值rh为rh3而链接杂凑值ch为ch3,且ch3为杂凑化连接后的rh2与ch2而产生的杂凑值。最后的数据集合ds的根杂凑值rh为rhk而链接杂凑值ch为chk,且chk为杂凑化连接后的rhk-1与chk-1而产生的杂凑值。其余数据集合ds的根杂凑值rh与链接杂凑值ch则以此类推。并且,这些以串行方式链接的数据集合ds组成链接数据串cds。在本实施例中,安全协定装置100会将初始链接值ch0储存至数据库装置200,但不限于此。

如图1与图3所示,在本实施例中,安全协定装置100更包括读取单元130,读取单元130用以自区块链装置300与数据库装置200读取对应的数据。终端装置400可传送读取要求rr至安全协定装置100,以读取一或多个二元树bt的根杂凑值rh。当安全协定装置100接收读取要求rr,且此读取要求rr是要求读取多个根杂凑值rh,而这多个根杂凑值rh属于链接数据串cds的多个数据集合ds,读取单元130会自区块链装置300读取此链接数据串cds的该些数据集合ds在后者的根杂凑值rh,并自数据库装置200读取此链接数据串cds的该些数据集合ds在前者的一或多个根杂凑值rh,且安全协定装置100以区块链装置300的在后的数据集合ds的链接杂凑值ch验证数据库装置200的在前的一或多个根杂凑值rh的正确性。

举例来说,当安全协定装置100接收读取要求rr,此读取要求rr是要求读取如图3的链接数据串cds的rh1至rhk的k个根杂凑值rh,读取单元130会自区块链装置300读取此链接数据串cds的该些数据集合ds最后一笔的数据集合ds的根杂凑值rh与链接杂凑值ch(即rhk与chk),并且,读取单元130会自数据库装置200读取在前的数据集合ds的根杂凑值rh(即rh1至rhk-1),并且,验证单元120会以最后一笔的数据集合ds的rhk来验证数据库装置200的在前的数据集合ds的rh1至rhk-1的正确性。验证单元120可使用前述两个公式,并以数据库装置200储存的初始链接值ch0与rh1至rhk-1进行杂凑与链接运算而推算出chk,并以推算出的chk来比对区块链装置300上的chk。若推算出的chk与区块链装置300上的chk一致,则表示数据库装置200储存的rh1至rhk-1与区块链装置300上的rh1至rhk-1也会一致。因为基于杂凑运算,只要数据库装置200储存的rh1至rhk-1中任一个根杂凑值rh与区块链装置300上的rh1至rhk-1中的对应根杂凑值rh不一致,则推算出的chk就会不同于区块链装置300上的chk。

请参照图3a,图3a为本发明一实施例的链接数据串cds的示意图二。图3a的链接数据串cds实质上同于图3的链接数据串cds,但为了便于说明,图3a的链接数据串cds示出一个连续的数据集合ds的数据区段sec。如图3a所示,在本实施例中,安全协定装置100还可读取链接数据串cds的任一数据区段sec的数据集合ds,并以此数据区段sec的最后一笔数据集合ds进行验证。举例来说,当安全协定装置100接收读取要求rr,此读取要求rr是要求读取如图3的链接数据串cds的数据区段sec的rhx-10至rhx共十一个根杂凑值rh,其中x小于k且大于等于10,读取单元130会自区块链装置300读取此数据区段sec的该些数据集合ds最后一笔的数据集合ds的根杂凑值rh与链接杂凑值ch(即rhx与chx),并且,读取单元130会自数据库装置200读取此数据区段sec的在前的数据集合ds的根杂凑值rh(即rhx-10至rhx-1),并且,验证单元120会以数据区段sec的最后一笔的数据集合ds的rhx来验证数据库装置200的数据区段sec在前的数据集合ds的rhx-10至rhx-1的正确性。

在一些实施例中,初始链接值ch0可不储存于数据库装置200中。取而代之地,当安全协定装置100接收读取要求rr,读取单元130会自区块链装置300读取链接数据串cds的初始链接值ch0以及该些数据集合ds在后者的数据集合ds的根杂凑值rh,并自数据库装置200读取链接数据串cds的该些数据集合ds在前者的一或多个根杂凑值rh。

请参照图4,图4为本发明另一实施例的验证系统10a的方框示意图。图1与图4的验证系统10、10a相同或相似的元件、连接关系与功能不再赘述,图4的验证系统10a相较于图1的验证系统10的差异之一在于,图4的验证系统10a的安全协定装置100更包括链接处理单元140,而区块链装置300则不具有链接处理单元。在安全协定装置100的二元树处理单元110产生多个二元树bt之后,安全协定装置100的链接处理单元140会根据这些二元树bt的多个根杂凑值rh依序产生数据集合ds,并根据前述两个公式产生链接数据串cds,而安全协定装置100会将链接数据串cds传送至区块链装置300。也就是说,安全协定装置100传送至区块链bc的数据已是具有链接数据串cds的数据结构。

请参照图5,图5为本发明又一实施例的验证系统10b的方框示意图。图1与图5的验证系统10、10b相同或相似的元件、连接关系与功能不再赘述,图5的验证系统10b相较于图1的验证系统10的差异之一在于,图5的验证系统10b包括安全协定装置100、数据库装置200、区块链装置300与多个终端装置400,安全协定装置100通讯连接位于区块链bc的区块链装置300并在链下oc通讯连接数据库装置200与各终端装置400,且各终端装置400还通讯连接区块链装置300。安全协定装置100包括二元树处理单元110、验证单元120、读取单元130、识别编号单元150、定位搜寻单元160、切片单元170与识别序号单元180,其中二元树处理单元110、验证单元120、读取单元130、识别编号单元150、定位搜寻单元160、切片单元170与识别序号单元180例如但不限于是软件/硬件所构成的功能模块,以分别执行特定功能,且二元树处理单元110、验证单元120、读取单元130、识别编号单元150、定位搜寻单元160、切片单元170与识别序号单元180可以是各自独立的模块或整合为一体的模块。

如图5所示,在本实施例中,区块链装置300包括至少一个智能合约(smartcontract)310,安全协定装置100传送至区块链装置300的根杂凑值rh会储存在对应的智能合约310中。在不同实施例中,区块链装置300亦可包括不同于智能合约的程序架构或介面,而根杂凑值rh可对应于不同的程序架构或介面而储存在区块链装置300中。

如图5所示,在本实施例中,各终端装置400包括纪录数据产生单元410、识别数据产生单元420与切片验证单元430。纪录数据产生单元410、识别数据产生单元420与切片验证单元430例如但不限于是软件/硬件所构成的功能模块,以分别执行特定功能,且纪录数据产生单元410、识别数据产生单元420与切片验证单元430可以是各自独立的模块或整合为一体的模块。纪录数据产生单元410用以产生前述的纪录数据rd,并且,当各终端装置400的纪录数据产生单元410产生纪录数据rd时,各终端装置400的识别数据产生单元420还会产生分别对应于各纪录数据rd的多个识别数据id,使得各纪录数据rd会具有对应的识别数据id。终端装置400会将纪录数据rd与对应的识别数据id同时传送给安全协定装置100。在一些实施例中,终端装置400可将纪录数据rd与对应的识别数据id整合为同一笔整合数据并传送此笔整合数据至安全协定装置100。在一些实施例中,识别数据id为明码。

如图5所示,在本实施例中,安全协定装置100会接收该些纪录数据rd与该些对应的识别数据id,且安全协定装置100根据各识别数据id储存各纪录数据rd的杂凑值rdh至对应的各叶节点ln。举例来说,当安全协定装置100接收该些识别数据id之后,安全协定装置100的识别编号单元150会根据各识别数据id产生分别对应于各叶节点ln的多个识别编号in,且安全协定装置100会根据各识别编号in储存各纪录数据rd的杂凑值rdh至对应的各叶节点ln。在此情况下,每个识别编号in在任一二元树bt中是唯一的,且各识别编号in会分别对应二元树bt中的各叶节点ln。因此,各纪录数据rd的杂凑值rdh可藉由对应的识别编号in而被定位于各叶节点ln,容后详述。

在本实施例中,安全协定装置100的识别编号单元150会自各识别数据id的杂凑值中取出多个预定位元以产生各识别编号in。并且,所述预定位元的数量可关联于对应的二元树bt的高度值h。在二元树bt具有高度值h的情况下,二元树bt会具有2(h-1)个叶节点ln。为使此二元树bt的各叶节点ln具有对应且专属唯一的识别编号in,则该些预定位元是自各识别数据id的杂凑值取出的至少h-1个位元,如此一来,这h-1个位元的排列组合将可满足叶节点ln的数量,使得对应于叶节点ln的识别编号in不会重复而具有唯一性。在本实施例中,这h-1个位元例如但不限于是识别数据id的杂凑值中的前h-1个位元。在其他实施例中,所述h-1个位元可以是取自识别数据id的杂凑值中的后h-1个位元或任意位置的h-1个位元。

举例来说,图2的二元树bt的高度值h为5,且此二元树bt具有2(5-1)个叶节点ln,亦即二元树bt具有16个叶节点ln。假设对应于某一纪录数据rd的识别数据id为「e1534391」,则识别编号单元150会将此识别数据id以sha-256的杂凑函数进行杂凑化,而产生杂凑值「dbb9ed8b677468b4834d2f634a77ea1e6663431bf1ee7523041467ff8023fa64」,接着识别编号单元150会取出此杂凑值转换为二进位后的位元数列的前4个位元「1101」,并转换1101为十进位值「13」,从而产生识别编号in为「13」。识别编号单元150可将此二元树bt的所有16个叶节点ln依序设定为编号1至16的叶节点ln,而识别编号in为13的纪录数据rd的杂凑值rdh则储存于编号13的叶节点ln中。在一些实施例中,不同的识别数据id可能产生相同的识别编号in,或者不同的纪录数据rd可能具有相同的识别数据id而产生相同的识别编号in,在此情况下,多笔纪录数据rd的杂凑值rdh可对应于相同的识别编号in而储存于相同的叶节点ln中。在一些实施例中,二元树bt的每一叶节点ln可储存两笔以上的纪录数据rd的杂凑值rdh,且对应于某一叶节点ln的两笔以上的纪录数据rd的杂凑值rdh会被连接后再被杂凑化而产生杂凑值,此对应于两笔以上的纪录数据rd的杂凑值会储存于此叶节点ln中。

如图5所示,在本实施例中,安全协定装置100的定位搜寻单元160可藉由识别编号in而能定位纪录数据rd的杂凑值rdh。当使用者需要寻找或验证数据库装置200中的对应于某一二元树bt中的某一笔纪录数据rd的杂凑值rdh时,使用者可通过安全协定装置100进行上述操作。此时,安全协定装置100的定位搜寻单元160会通过识别编号in以定位此笔纪录数据rd的杂凑值rdh的位置(即所储存的叶节点ln),并直接由对应于此识别编号in的二元树bt的叶节点ln中取出此笔纪录数据rd的杂凑值rdh,达到可快速定位与搜寻数据的目的。并且,若要验证某笔纪录数据rd不存在,亦可藉由识别编号in来完成,安全协定装置100无须取得完整的二元树bt中的所有杂凑值,安全协定装置100的定位搜寻单元160可通过对应于此笔纪录数据rd的识别编号in以定位此笔纪录数据rd的杂凑值rdh的位置,即对应的叶节点ln,并可直接确认此纪录数据rd的杂凑值rdh是否存在于此叶节点ln中。若此叶节点ln没有此笔纪录数据rd的杂凑值rdh,即可验证此笔纪录数据rd不存在。如此一来,整个验证操作所耗费的网络传输需求、运算量、运算时间与运算成本可大幅降低。

如前所述,在一些实施例中,不同的纪录数据rd的识别数据id可能产生相同的识别编号in,在此情况下,某一笔纪录数据rd的杂凑值rdh可能被定位至两个以上的叶节点ln,若需要验证此笔纪录数据rd,安全协定装置100可由数据库装置200取得此两个以上的叶节点ln中的杂凑值rdh并进行验证。在本实施例中,重复的识别编号in的机率相对低,即使某一笔纪录数据rd的杂凑值rdh被定位至两个以上的叶节点ln,这些被定位的叶节点ln的数量仍是小于或远小于所有叶节点ln的数量,整个验证操作所耗费的网络传输需求、运算量、运算时间与运算成本仍可大幅降低。

如图5所示,在本实施例中,终端装置400更包括识别编号单元440,终端装置400的识别编号单元440与安全协定装置100的识别编号单元150具有相同的功能,识别编号单元440亦可根据纪录数据rd的识别数据id而产生识别编号in,且终端装置400可通过识别编号单元440验证安全协定装置100是否从正确的叶节点ln取得数据。举例来说,若终端装置400需要验证某一纪录数据rd,且此纪录数据rd的识别数据id为「e1534391」(请参照前述例子),当终端装置400传送此验证要求至安全协定装置100,安全协定装置100的定位搜寻单元160可通过对应于此笔纪录数据rd的识别编号in以定位此笔纪录数据rd的杂凑值rdh的位置,并找出其是位于数据库装置200中的二元树bt的编号13的叶节点ln中,且回传编号13的叶节点ln中的杂凑值rdh至终端装置400,以让终端装置400进行验证。终端装置400的识别编号单元440同样可根据此纪录数据rd的识别数据id为「e1534391」而产生识别编号in,并根据识别编号in可推算此纪录数据rd的杂凑值rdh应是储存于编号13的叶节点ln中,藉此,终端装置400可确认安全协定装置100所回传的纪录数据rd的杂凑值rdh是否来自于正确的位置(即编号13的叶节点ln)。

请再参照图6,图6为本发明一实施例的二元树bt的切片bts的示意图。如图5与图6所示,在本实施例中,当安全协定装置100传送二元树bt的根杂凑值rh至区块链装置300时,安全协定装置100的切片单元170会自动切割二元树bt为多个切片(slice)bts且回传各切片bts至对应的各终端装置400,而各终端装置400的切片验证单元430会验证所接收的各切片bts的正确性。如图2与图6所示,在本实施例中,每一切片bts为二元树bt的树根r、对应的两个叶节点ln与必要的中间节点mn所组成的模克证明(merkleproof)。此组叶节点ln中储存的纪录数据rd的杂凑值rdh,可经由前述的运算过程,而得到位于树根r的根杂凑值rh,而切片bts的根杂凑值rh应与完整二元树bt的根杂凑值rh一致。举例来说,某一终端装置400将某一笔纪录数据rd与识别数据id传送至安全协定装置100后,安全协定装置100会将此纪录数据rd的杂凑值rdh储存至某一二元树bt的某一叶节点ln中且会回传此叶节点ln所对应的切片bts至此终端装置400,而此终端装置400会比对此切片bts的叶节点ln中的此笔纪录数据rd的杂凑值rdh与此终端装置400所产生的原始纪录数据rd的原始杂凑值rdh是否一致,若一致则表示验证正确,若不一致则表示验证不正确。若验证不正确,对应的终端装置400可传送一抗议讯息至区块链装置300,以进行后续数据修正或无效等程序。

在本实施例中,各终端装置400包括区块链芯片,所述区块链芯片例如但不限于是可自动在区块链bc与验证系统10、10b之间互相传送信号的积体电路(ic)。藉由区块链芯片,终端装置400可设计得更加轻薄短小,且终端装置400可更容易设置于任何物件上或整合至任何电子装置中。举例来说,终端装置400可设置或整合至电池(如电动或油电混合的公车或汽车用的大电池组)、电表、汽车大灯、汽车本体(如通过5g联网的汽车的行车电脑)或画框,且终端装置400会自动且持续上传各物件的纪录数据rd,这些纪录数据rd例如但不限于是电池、电表或汽车大灯的每时或每日(依据上传预定间隔而定)历史使用状况,或汽车本体各感测器信息(如引擎、里程表、启动次数…等)的每时或每日的历史感测数据,或画框上的感测器所感测的每时或每日的湿湿度变化历史感测数据与画者原始数据等,而安全协定装置100可将这些纪录数据rd的杂凑值rdh储存至链下oc的数据库装置200,并将根杂凑值rh上传至区块链装置300。

基于验证系统10、10a、10b,除了可藉由链下oc的数据库装置200来达到各种数据的快速定位与搜寻之外,也可藉由区块链bc的验证来达到数据的不可否认性。且基于终端装置400的搭配应用,物件的状况可获得保证,而物件的价值也得以提高。例如原本长程车用的中古大电池组在使用一定程度后可转给短程车用,而短程车用的中古大电池组在使用一定程度后又可转给诸如渔塭等场所作为备用发电电池。而这之间每一次转换都可经过诸如中古买卖平台进行交易,而每次交易都可藉由验证系统10、10a、10b来验证物件的状况,从而提高物件品质的信赖度与物件价值。

如图5所示,在本实施例中,区块链装置300的智能合约310更包括链接处理单元311与累计序号单元312。安全协定装置100的识别序号单元180用以产生识别序号is,区块链装置300的累计序号单元312用以产生累计序号as,而链接处理单元311用以产生链接数据串cds。

请参照图7,图7为本发明另一实施例的链接数据串cds的示意图。如图5与图7所示,在本实施例中,链接数据串cds的每一笔数据集合ds包括根杂凑值rh、识别序号is、累计序号as与链接杂凑值ch,每一数据集合ds的链接杂凑值ch关联于前一数据集合ds的根杂凑值rh、识别序号is、累计序号as与链接杂凑值ch,且该些数据集合ds最前者的链接杂凑值ch关联于初始链接值ch0。在一些实施例中,链接数据串cds的每一笔数据集合ds包括根杂凑值rh、识别序号is与链接杂凑值ch,但不包括累计序号as,而每一数据集合ds的链接杂凑值ch关联于前一数据集合ds的根杂凑值rh、识别序号is与链接杂凑值ch。在本实施例中,每一数据集合ds的链接杂凑值ch为杂凑化前一数据集合ds而产生,且最前的数据集合ds的链接杂凑值ch为杂凑化初始链接值ch0而产生。

如图5与图7所示,在本实施例中,链接数据串cds的各数据集合ds的识别序号is分别对应于各根杂凑值rh。当安全协定装置100传送该些根杂凑值rh至区块链装置300,安全协定装置100还会对应产生并传送该些识别序号is至区块链装置300。举例来说,识别序号is包括时间戳记,时间戳记关联于对应的该根杂凑值rh,当安全协定装置100在一特定时间点产生某一笔根杂凑值rh时,识别序号单元180会对应于此特定时间点而产生识别序号is,此识别序号is即包括对应此特定时间点的时间戳记。换句话说,不同时间点产生的根杂凑值rh必定会对应于不同的识别序号is,且时间是不断推进,在后产生的根杂凑值rh的识别序号is的时间戳记所对应的时间点必定会晚于在前产生的根杂凑值rh的识别序号is的时间戳记所对应的时间点。相应的,在链接数据串cds中,在后的数据集合ds的识别序号is的时间戳记所对应的时间点必定会晚于在前的数据集合ds的识别序号is的时间戳记所对应的时间点。藉此,可加强链接数据串cds的数据集合ds的不可修改性,使链接数据串cds的数据难以被窜改。

如图5与图7所示,在本实施例中,链接数据串cds的各数据集合ds的累计序号as分别对应于各根杂凑值rh,且每一数据集合ds的累计序号as为前一数据集合ds的累计序号as的累计值。当安全协定装置100传送该些根杂凑值rh与该些识别序号is至区块链装置300,区块链装置300的累计序号单元312会对应于该些根杂凑值rh与该些识别序号is而依序产生该些累计序号as。举例来说,当区块链装置300接收到第一笔根杂凑值rh与对应的识别序号is,累计序号单元312会产生值为整数1的累计序号as,而链接处理单元311会整合第一笔数据集合ds,其中包括第一笔根杂凑值rh、对应的识别序号is、值为整数1的累计序号as与对应的链接杂凑值ch。而当安全协定装置100接收到第二笔根杂凑值rh与对应的识别序号is,累计序号单元312会累加1至前一笔累计序号as而产生值为整数2的累计序号as,而链接处理单元311会整合第二笔数据集合ds,其中包括第二笔根杂凑值rh、对应的识别序号is、值为整数2的累计序号as与对应的链接杂凑值ch。换句话说,累计序号as是不断累加的,而在后产生的数据集合ds的累计序号as必定会大于在前产生的数据集合ds的累计序号as。并且,累计序号as是由区块链上的区块链装置300产生,其具有不可否认性。藉此,可加强链接数据串cds的数据集合ds的不可修改性,使链接数据串cds的数据难以被窜改。

在本实施例中,链接处理单元311会根据以下两个公式产生链接数据串cds中的多个以串行方式链接的数据集合ds:

chi=hash(rhi-1|isi-1|i-1|chi-1);以及

ch1=hash(ch0)。

其中,rhi-1为根杂凑值rh,isi-1为识别序号is,i-1为累计序号as,chi-1为链接杂凑值ch,且i为2至k的整数。

如图7所示,最前的数据集合ds的根杂凑值rh为rh1、识别序号is为is1、累计序号as为1而链接杂凑值ch为ch1,且ch1为杂凑化ch0而产生的杂凑值。在后的(排列在最前的数据集合ds后)的第二笔数据集合ds的根杂凑值rh为rh2、识别序号is为is2、累计序号as为2而链接杂凑值ch为ch2,且ch2为杂凑化连接后的rh1、is1、1与ch1而产生的杂凑值。在后的(排列第二笔数据集合ds后)的第三笔数据集合ds的根杂凑值rh为rh3、识别序号is为is3、累计序号as为3而链接杂凑值ch为ch3,且ch3为杂凑化连接后的rh2、is2、2与ch2而产生的杂凑值。最后的数据集合ds的根杂凑值rh为rhk、识别序号is为isk、累计序号as为k而链接杂凑值ch为chk,且chk为杂凑化连接后的rhk-1、isk-1、k-1与chk-1而产生的杂凑值。其余数据集合ds的根杂凑值rh、识别序号is、累计序号as与链接杂凑值ch则以此类推。并且,这些以串行方式链接的数据集合ds组成链接数据串cds。

如图5与图7所示,在本实施例中,安全协定装置100除了会将二元树bt与初始链接值ch0储存到数据库装置200中,安全协定装置100也会将对应于各二元树bt的各根杂凑值rh(或对应于链接数据串cds的各数据集合ds)的识别序号is与累计序号as储存到数据库装置200中。当安全协定装置100接收读取要求rr,且此读取要求rr是要求读取多个根杂凑值rh,而这多个根杂凑值rh属于某一链接数据串cds的多个数据集合ds,读取单元130会自区块链装置300读取此链接数据串cds的该些数据集合ds在后者的根杂凑值rh,并自数据库装置200读取此链接数据串cds的该些数据集合ds在前者的一或多个根杂凑值rh,且安全协定装置100以区块链装置300的在后的数据集合ds的链接杂凑值ch验证数据库装置200的在前的一或多个根杂凑值rh的正确性。

举例来说,当安全协定装置100接收读取要求rr,此读取要求rr是要求读取如图7的链接数据串cds的rh1至rhk的k个根杂凑值rh,读取单元130会自区块链装置300读取此链接数据串cds的该些数据集合ds最后一笔的数据集合ds的根杂凑值rh与链接杂凑值ch(即rhk与chk),并且,读取单元130会自数据库装置200读取在前的数据集合ds的根杂凑值rh(即rh1至rhk-1)、识别序号is(即is1至isk-1)与累计序号as(即1至k-1),并且,验证单元120会以最后一笔的数据集合ds的rhk来验证数据库装置200的在前的数据集合ds的rh1至rhk-1的正确性。验证单元120可使用前述两个公式,并以数据库装置200储存的初始链接值ch0、rh1至rhk-1、is1至isk-1与1至k-1进行杂凑与链接运算而推算出chk,并以推算出的chk来比对区块链装置300上的chk。若推算出的chk与区块链装置300上的chk一致,则表示数据库装置200储存的rh1至rhk-1与区块链装置300上的rh1至rhk-1也会一致。因为基于杂凑运算,只要数据库装置200储存的rh1至rhk-1中任一个根杂凑值rh与区块链装置300上的rh1至rhk-1中的对应根杂凑值rh不一致,则推算出的chk就会不同于区块链装置300上的chk。

在不同实施例中,验证系统10、10a与10b中的各元件可任意组合。例如,验证系统10b可不包括终端装置400;或者,验证系统10、10a可包括类似于验证系统10b的终端装置400,但不限于此。

请参照图8,图8为本发明一实施例的验证方法的流程图。在本实施例中,验证方法可通过图1或图4所示的验证系统10、10a实现,但不限于此。验证方法适用于与区块链bc协作。在步骤s101中,安全协定装置100会在链下oc自多个终端装置400接收多个纪录数据rd。在步骤s103中,安全协定装置100会根据杂凑函数整合该些纪录数据rd为至少一二元树bt,且各纪录数据rd的杂凑值rdh分别储存于二元树bt的各叶节点ln。在步骤s105中,安全协定装置100会传送二元树bt的根杂凑值rh至区块链bc,且区块链装置300会储存这些根杂凑值rh。在步骤s107中,区块链装置300或安全协定装置100会根据前述公式产生链接数据串cds。

在步骤s109中,安全协定装置100会在链下oc储存二元树bt与初始链接值ch0,即安全协定装置100会将完整的二元树bt与初始链接值ch0储存于链下oc的数据库装置200。在不同实施例中,初始链接值ch0可不储存于数据库装置200中;当有需要时,安全协定装置100可自区块链装置300读取初始链接值ch0。

在步骤s111中,当安全协定装置100接收一验证要求,安全协定装置100会比对位于区块链bc上的区块链装置300中的根杂凑值rh与在链下oc的数据库装置200中储存的二元树bt的根杂凑值rh,以验证在链下oc储存的二元树bt的正确性。在步骤s113中,当安全协定装置100接收读取要求rr,且此读取要求rr要求读取链接数据串cds中的多个数据集合ds的多个根杂凑值rh,安全协定装置100会读取区块链bc上的数据集合ds在后者的根杂凑值rh并读取在链下oc储存的数据集合ds在前者的一或多个根杂凑值rh。在步骤s115中,安全协定装置100会以区块链bc上的在后的数据集合ds的链接杂凑值ch验证在链下oc储存的在前的一或多个根杂凑值rh的正确性。

请参照图9,图9为本发明另一实施例的验证方法的流程图。在本实施例中,验证方法可通过图5所示的验证系统10b实现,但不限于此。在步骤s201中,安全协定装置100会在链下oc自多个终端装置400接收多个纪录数据rd与多个识别数据id,各识别数据id是分别对应于各纪录数据rd。在步骤s203中,当安全协定装置100接收该些识别数据id之后,安全协定装置100会根据各识别数据id产生分别对应于各叶节点ln的多个识别编号in,二元树bt的每一叶节点ln会对应于专属的识别编号in。举例来说,安全协定是自各识别数据id的杂凑值中取出多个预定位元以产生各识别编号in,并且,若二元树bt具有一高度值h,该些预定位元为各识别数据id的杂凑值的前h-1个位元。在步骤s205中,安全协定装置100会根据杂凑函数整合该些纪录数据rd为至少一二元树bt。在步骤s207中,安全协定装置100会根据各识别编号in,储存各纪录数据rd的杂凑值rdh至对应的各叶节点ln。在步骤s209中,安全协定装置100会传送二元树bt的根杂凑值rh与对应的识别序号is至区块链bc,且区块链装置300会储存这些根杂凑值rh与对应的识别序号is。在步骤s211中,安全协定装置100会将二元树bt切割为多个切片bts。在步骤s213中,安全协定装置100会在链下oc回传各切片bts至对应的各终端装置400。

接着,各终端装置400会验证所接收的各切片bts的正确性。在步骤s215中,当切片bts验证为不正确,对应的终端装置400传送抗议讯息至区块链bc。在步骤s217中,当切片bts验证为正确,终端装置400无需传送抗议讯息至区块链bc。

在步骤s219中,区块链bc的区块链装置300对应于根杂凑值rh与识别序号is,而依序产生累计序号as。在步骤s221中,区块链bc的区块链装置300会根据根杂凑值rh、识别序号is与累计序号as而产生链接数据串cds。在步骤s223中,安全协定装置100会在链下oc将二元树bt、初始链接值ch0、识别序号is与累计序号as储存至数据库装置200。

在步骤s225中,当安全协定装置100接收一验证要求,安全协定装置100会比对位于区块链bc上的区块链装置300中的根杂凑值rh与在链下oc的数据库装置200中储存的二元树bt的根杂凑值rh,以验证在链下oc储存的二元树bt的正确性。在步骤s227中,当安全协定装置100接收一搜寻要求,且此搜寻要求是针对某一纪录数据rd,安全协定装置100会根据对应此纪录数据rd的识别编号in而定位在链下oc储存的二元树bt的叶节点ln,以搜寻对应于此识别编号in的叶节点ln并由此叶节点ln取得此纪录数据rd的杂凑值rdh,或验证此纪录数据rd的杂凑值rdh不存在此叶节点ln中。

在步骤s229中,当安全协定装置100接收读取要求rr,且此读取要求rr要求读取链接数据串cds中的多个数据集合ds的多个根杂凑值rh,安全协定装置100会读取区块链bc上的数据集合ds在后者的根杂凑值rh并读取在链下oc储存的数据集合ds在前者的一或多个根杂凑值rh。在步骤s231中,安全协定装置100会以区块链bc上的在后的数据集合ds的链接杂凑值ch验证在链下oc储存的在前的一或多个根杂凑值rh的正确性。

藉由验证系统10、10a与10b,在有需要读取大量数据时,可在基于链接数据串cds的架构下,由链下oc读取相对大量的数据,而仅需由区块链bc读取相对少量的数据,并以区块链bc的数据来验证链下oc的数据,从而可兼顾效率与可信度。举例来说,一个公司中,各员工的每日上下班打卡纪录的杂凑值会对应储存在二元树bt中的各叶节点ln中,且每一二元树bt即是此间公司的所有员工单日上下班打卡纪录。那么,所有员工一整年的打卡纪录会累积成数百笔数据,即数百个二元树bt,而这些数据都会基于验证系统10、10a或10b加以储存与运用。如果有一天,此公司的内控部门需要调出某位员工数年来的打卡纪录,验证系统10、10a或10b不需要对区块链bc进行大量读取,只须读取区块链bc上的每个链接数据串cds的最后一笔数据集合ds的根杂凑值rh与链接杂凑值ch,而各链接数据串cds的其余根杂凑值rh皆可由链下oc的数据库装置200读取,并可由区块链bc上的最后一笔数据集合ds的链接杂凑值ch来验证数据库装置200的其余根杂凑值rh的正确性。如此一来,可大幅减轻区块链的网络传输需求与运算负荷,同时也可经过验证而确保链下oc数据的正确性。

综上所述,现有的区块链架构是将数据全部传送到区块链上,再通过区块链矿工对数据进行验证,如此将耗费大量的区块链运算资源。根据本发明实施例的验证系统与方法,在维持数据的可信任度(不可否认性)的前提下,可将大部分数据设置于链下数据库装置中,并通过安全协定装置比对链下数据库装置的二元树的根杂凑值与区块链的对应根杂凑值,来验证二元树的正确性,藉此将主要运算转为在链下执行,大幅减少区块链的负荷。此外,安全协定装置可根据识别编号定位纪录数据,藉此可快速搜寻数据库装置中的纪录数据的杂凑值所储存的叶节点,并可快速验证纪录数据是否不存在。藉由本发明实施例的验证系统与方法,可降低系统整体的运算量、运算时间与运算成本。并且,具有区块链芯片的终端装置可设置或整合至各种物件中,在实际应用上更加简单方便,且可提高物件品质的信赖度与物件价值。

除此之外,藉由本发明实施例的验证系统与方法的链接数据串,在需要大量读取二元树的根杂凑值时,可通过链下数据库装置中读取这些根杂凑值,并以区块链上的链接数据串的数据集合在后者的链接杂凑值来验证由链下读取的根杂凑值的正确性,从而在维持数据的可信任度的前提下,减轻区块链的网络传输需求与运算负荷。

当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1