System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种面向多链环境的可验证溯源查询方法技术_技高网
当前位置: 首页 > 专利查询>东北大学专利>正文

一种面向多链环境的可验证溯源查询方法技术

技术编号:40022711 阅读:11 留言:0更新日期:2024-01-16 17:00
本发明专利技术公开一种面向多链环境的可验证溯源查询方法,涉及区块链技术领域。首先构建按属性划分且带有语义的区块链存储模型SBSM;然后构造双层区块链索引SBMI;最后,获取用户查询条件,根据双层链间索引进行查询,输出查询结果。本发明专利技术相比于传统的溯源查询方法,能够实现链间并行执行,提升查询效率,并且同时支持返回结正确性和完整性验证,尤其面对区块链数量众多时,数据的网络传输开销逐渐增加,多链溯源查询的效率将会显著提升,给与更好的用户体验。

【技术实现步骤摘要】

本专利技术属于区块链,尤其涉及一种面向多链环境的可验证溯源查询方法


技术介绍

1、区块链系统由于其去中心化、不可篡改、数据透明的优点,已经被部署在许多应用领域,如产品溯源、政府监管、责任追究等。然而,在很多场景下,并非所有参与方都能够参与到一个单一的区块链系统中。具体而言,由于单一区块链缺乏可扩展性以及参与方需要维护整个区块链系统的完整副本。若区块链中参与方过多、数据量过大,于部分参与方而言可能需要过高的存储成本以及运算成本。因此,使用多条区块链,每个区块链由部分参与方共同维护存储的部分信息,并通过跨链技术实现链间数据的互通已经成为一种趋势。

2、与单链查询相比,多链溯源查询具有三大挑战:更长的查询延迟、更多的语义支持和更难的结果验证。具体而言,首先,现有区块链大多采用键值对存储,value中各属性之间没有划分,仅能通过key查询,无法直接通过存储在value中的部分属性值进行查询。其次,现有的区块链溯源查询大多通过下游目标区块链来确定上游目标区块链,因此各目标区块链间以串行的方式执行,严重影响连接查询效率,影响用户体验。最后,恶意全节点可能返回错误的查询结果,因此查询用户需要能够对查询结果的完整性以及正确性进行验证,现有区块链系统中大多采用本地还原merkle树结构后与块头中存储的merkle根进行对比,来验证返回结果确实存在该区块中,但是不能保证其他区块中不存在符合查询条件的查询结果,即只能验证结果正确性,不能验证结果完整性。

3、以供应链场景为例,由多个区块链共同组成疫苗供应链,当用户根据疫苗上标注的疫苗vaccineid,及成产商,发出查询‘q[vaccineid1]’进行溯源时,需要返回供应链上vaccineid1的生产信息、运输信息和销售信息。现有的方法仅能先在生产链上查询获得相关生产信息数据,并得到记载其运输信息的目标区块链及transportid,再使用transportid对记载运输信息的目标区块链发起查询,以此类推以顺序方式进行查询,最后将其生产信息、运输信息、销售信息进行整合。这种查询方式随着区块链数量的增加产生了更长的查询延迟,导致用户体验较差。并且由于恶意节点的存在,返回的查询结果可能存在问题,这种查询方式的缺陷主要在于三个方面:

4、第一,查询语义较弱。由于各区块链在存储的过程中不一定使用相同的属性作为key,用户使用某一个区块链中的key进行查询时,其在其他区块链中可能仅作为属性值存储在区块链中。然而,大部分现有的区块链平台均将所有属性都存储在value中,不同类型的属性之间没有明确的划分,导致无法根据属性值进行查询。

5、第二,查询效率较低。多链环境下的溯源查询是由多个单一区块链子查询构成,但是由于用户在进行跨区块链溯源查询申请时无法准确指定完整目标区块链,致使各区块链间无法以并行方式查询。为保证完整的查询结果,现有的跨区块链溯源查询方式通常利用跨区块链交易的原子性,采用下游区块链到上游区块链的顺序进行溯源,导致查询的延迟较高。

6、第三,结果验证较差。由于计算和存储的限制,普通查询用户仅作为轻节点来接收查询结果,而将存储和查询服务委托给一个全节点。现有的验证方法中,轻节点通过本地重建的merkle根和块头中存储的merkle root来验证返回结果存在于该区块,但是不能验证别的区块不包含符合查询条件的查询结果。


技术实现思路

1、针对现有技术的不足,本专利技术提供一种面向多链环境的可验证溯源查询方法,以解决现有多链溯源查询方法查询语义弱、效率低及结果验证差的问题。

2、为达到上述目的,一种面向多链环境的可验证溯源查询方法,包括以下步骤:

3、步骤1:构建按属性划分且带有语义的区块链存储模型sbsm;

4、步骤1.1:构建区块链存储模型sbsm;所述区块链存储模型sbsm包含若干条语义区块链s,每条语义区块链s由若干个按照时间顺序组合的语义区块s-block构成,s=s-block1+s-block2+s-block3+···s-blockn,其中s-blocki为第i个语义区块,n为语义区块数量;所述语义区块s-block包含区块头s-block head和区块体s-block body两部分,区块头s-block head包含默克尔根merkle root、前块哈希prevhash、当前区块哈希值hash、时间戳time stamp和索引默克尔根index merkle root,区块体s-block body中包含大量的语义事务,语义事务存储形式为<key,columns>。

5、步骤1.2:定义语义事务的组成,得到最终的按属性划分且带有语义的区块链存储模型sbsm。所述语义事务的组成为:key为语义事务的唯一标识,表示该语义事务的属性;colum包含属性语义和属性语义对应的语义事务属性值,columns={ts=v1,senid=v2,recid=v3,tname=v4,attributesx},其中ts为语义事务的时间戳,senid为语义事务的发起者,recid为语义事务的接收者,tname为语义事务类型,vi为语义事务属性值;attributesx为用户自定义的应用级属性集合且attributesx={attr1=v5,attr2=v6,···,attrn=vm},其中attrj为语义事务属性,vi为语义事务属性值,m为语义事务属性数量;针对不同应用场合和语义事务类型,设定为不同的属性集合。

6、步骤2:构造双层区块链索引sbmi;所述双层区块链索引由链间索引s-bitmapindex和链内索引s-gtt index组成。

7、步骤2.1:遍历区块链内存储的语义事务,构建链间索引s-bitmap index;

8、所述每个链间索引s-bitmap index对应一个语义事务属性,链间索引中包括若干个bitmap且每个bitmap对应一个语义事务属性值,其中第v-th bitmap表示每条语义区块链中是否存在attrj为v-th值的语义事务,第i bit为‘0’表示第i条语义区块链不存在attrj为v-th值的语义事务,为‘1’表示第i条语义区块链存在attrj为v-th值的语义事务;

9、步骤2.2:遍历区块链内语义事务,按照默克尔前缀树结构,根据attrj的v-th值的大小,构建链内索引s-gtt index;

10、所述链内索引包括若干叶子节点,所述叶子节点为attrj取v-th值的语义事务的位置信息,包括block-id语义区块号,pn语义区块中位置。

11、步骤3:获取用户查询条件,根据双层链间索引进行查询,输出查询结果。

12、步骤3.1:输入可验证溯源查询q=[key,track],key为用户溯源查询对象的唯一标识,track表示溯源查询;

13、步骤3.2:根据可验证溯源查询q=[key,track]进行链间查询,获取key对应语义事务属性的s本文档来自技高网...

【技术保护点】

1.一种面向多链环境的可验证溯源查询方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的一种面向多链环境的可验证溯源查询方法,其特征在于,所述双层区块链索引由链间索引S-Bitmap Index和链内索引S-GTT Index组成。

3.根据权利要求1所述的一种面向多链环境的可验证溯源查询方法,其特征在于,步骤1具体包括如下步骤:

4.根据权利要求1所述的一种面向多链环境的可验证溯源查询方法,其特征在于,步骤2具体包括如下步骤:

5.根据权利要求1所述的一种面向多链环境的可验证溯源查询方法,其特征在于,步骤3具体包括如下步骤:

6.根据权利要求3所述的一种面向多链环境的可验证溯源查询方法,其特征在于,步骤1.1中所述区块链存储模型SBSM包含若干条语义区块链S,每条语义区块链S由若干个按照时间顺序组合的语义区块S-Block构成,S=S-Block1+S-Block2+S-Block3+···S-Blockn,其中S-Blocki为第i个语义区块,n为语义区块数量;所述语义区块S-Block包含区块头S-Block head和区块体S-Block body两部分,区块头S-Block head包含默克尔根Merkle Root、前块哈希PrevHash、当前区块哈希值Hash、时间戳Time Stamp和索引默克尔根Index Merkle Root,区块体S-Block body中包含大量的语义事务,语义事务存储形式为<Key,Columns>。

7.根据权利要求3所述的一种面向多链环境的可验证溯源查询方法,其特征在于,步骤1.2中所述语义事务的组成为:Key为语义事务的唯一标识,表示该语义事务的属性;Colum包含属性语义和属性语义对应的语义事务属性值,Columns={Ts=v1,SenID=v2,RecID=v3,Tname=v4,Attributesx},其中Ts为语义事务的时间戳,SenID为语义事务的发起者,RecID为语义事务的接收者,Tname为语义事务类型,vi为语义事务属性值,m为语义事务属性数量;Attributesx为用户自定义的应用级属性集合且Attributesx={attr1=v5,attr2=v6,···,attrn=vm},其中attrj为语义事务属性,vi为语义事务属性值;针对不同应用场合和语义事务类型,设定为不同的属性集合。

...

【技术特征摘要】

1.一种面向多链环境的可验证溯源查询方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的一种面向多链环境的可验证溯源查询方法,其特征在于,所述双层区块链索引由链间索引s-bitmap index和链内索引s-gtt index组成。

3.根据权利要求1所述的一种面向多链环境的可验证溯源查询方法,其特征在于,步骤1具体包括如下步骤:

4.根据权利要求1所述的一种面向多链环境的可验证溯源查询方法,其特征在于,步骤2具体包括如下步骤:

5.根据权利要求1所述的一种面向多链环境的可验证溯源查询方法,其特征在于,步骤3具体包括如下步骤:

6.根据权利要求3所述的一种面向多链环境的可验证溯源查询方法,其特征在于,步骤1.1中所述区块链存储模型sbsm包含若干条语义区块链s,每条语义区块链s由若干个按照时间顺序组合的语义区块s-block构成,s=s-block1+s-block2+s-block3+···s-blockn,其中s-blocki为第i个语义区块,n为语义区块数量;所述语义区块s-block包含区块头s-block head和区块体s-block body两部分,...

【专利技术属性】
技术研发人员:信俊昌崔婷钰郝琨姚钟铭闻亮王之琼
申请(专利权)人:东北大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1