一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于区块链的数据上链方法、装置、设备及介质与流程

2022-11-12 22:47:12 来源:中国专利 TAG:


1.本说明书涉及计算机技术领域,尤其涉及一种基于区块链的数据上链方法、装置、设备及介质。


背景技术:

2.区块链技术是是由分布式节点共同参与记账且共同维护一份完整的分布式数据库的技术,且共识机制能够确保区块链上所存储的交易信息的一致性。区块链中存储的数据具有“不可伪造”“全程留痕”“可以追溯”“公开透明”“集体维护”等特征,利用区块链技术进行数据存储也因此变得普遍起来,将数据存储到区块链中也可以称为数据上链。
3.当有新数据上链时,需要与已有数据进行比对,现缺乏一种对数据进行初筛核验的方式。


技术实现要素:

4.本说明书一个或多个实施例提供了一种基于区块链的数据上链方法、装置、设备及介质,用于解决背景技术提出的技术问题。
5.本说明书一个或多个实施例采用下述技术方案:
6.本说明书一个或多个实施例提供的一种基于区块链的数据上链方法,包括:
7.通过局部敏感哈希函数将待比对的第一数据与第二数据,分别生成第一数据指纹与第二数据指纹,所述第一数据为待上链的数据,所述第二数据为链上数据;
8.通过预先设定的数据指纹的比对方式,确定所述第一数据指纹与所述第二数据指纹之间的相似度;
9.若相似度小于预先设定的认证值,将所述第一数据上传至区块链。
10.本说明书一个或多个实施例提供的一种基于区块链的数据上链装置,所述装置包括:
11.数据指纹生成单元,通过局部敏感哈希函数将待比对的第一数据与第二数据,分别生成第一数据指纹与第二数据指纹,所述第一数据为待上链的数据,所述第二数据为链上数据;
12.相似度确定单元,通过预先设定的数据指纹的比对方式,确定所述第一数据指纹与所述第二数据指纹之间的相似度;
13.数据上链单元,若相似度小于预先设定的认证值,将所述第一数据上传至区块链。
14.本说明书一个或多个实施例提供的一种基于区块链的数据上链设备,包括:
15.至少一个处理器;以及,
16.与所述至少一个处理器通信连接的存储器;其中,
17.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
18.通过局部敏感哈希函数将待比对的第一数据与第二数据,分别生成第一数据指纹
与第二数据指纹,所述第一数据为待上链的数据,所述第二数据为链上数据;
19.通过预先设定的数据指纹的比对方式,确定所述第一数据指纹与所述第二数据指纹之间的相似度;
20.若相似度小于预先设定的认证值,将所述第一数据上传至区块链。
21.本说明书一个或多个实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
22.通过局部敏感哈希函数将待比对的第一数据与第二数据,分别生成第一数据指纹与第二数据指纹,所述第一数据为待上链的数据,所述第二数据为链上数据;
23.通过预先设定的数据指纹的比对方式,确定所述第一数据指纹与所述第二数据指纹之间的相似度;
24.若相似度小于预先设定的认证值,将所述第一数据上传至区块链。
25.本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:本说明书实施例通过将数据转化数据指纹数据,并通过一线设定的数据指纹的比对方式,将待上链的数据与链上数据进行比对,确定两者之间的相似度,若相似度符合预先设定要求时,说明该待上链数据与已上链的数据并不相同,可以将该数据进行上链操作,以此可以完成数据的初筛核验。
附图说明
26.为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
27.图1为本说明书一个或多个实施例提供的一种基于区块链的数据上链方法的流程示意图;
28.图2为本说明书一个或多个实施例提供的一种基于区块链的数据上链装置的结构示意图;
29.图3为本说明书一个或多个实施例提供的一种基于区块链的数据上链设备的结构示意图。
具体实施方式
30.本说明书实施例提供一种基于区块链的数据上链方法、装置、设备及介质。
31.数据是继物质、能源之后的第三大基础性战略资源。在推进数据资源开放共享的实践中,须解决的首要问题是:数据作为一种重要资产,其流通和应用必然涉及数据的所有权问题。明晰数据的所有权,是大数据交易的前提和基础。数据确权在大数据时代尤为关键,关系到大数据产业的创新活力及大数据交易市场的繁荣。
32.数据确权一般是确定数据的权利人,即谁拥有对数据的所有权、占有权、使用权、受益权以及对个人隐私权的保护责任等。具体地说,产生这批数据或者第一个收集这些数据的企业主体就是这批数据的所有者,通过其他任何方式(交易等)获得这批数据的企业或个人都只拥有使用权,而无所有权。
33.数据确权是在新数据申请时,需要与已有数据进行比对,在确定该新数据并非重复数据,可以对该新数据进行确权,现有技术中,缺乏一种对数据进行初筛核验的方式。
34.基于以上不足,本说明书实施例提出一种基于区块链与局部敏感哈希算法相结合的方式以解决查重初筛的不足的情况。
35.为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
36.图1为本说明书一个或多个实施例提供的一种基于区块链的数据上链方法的流程示意图,该流程可以由数据上链系统执行,该系统可以对待上链数据与已上链数据进行比对,对待上链数据进行验证,以防将重复数据上链。流程中的某些输入参数或者中间结果允许人工干预调节,以帮助提高准确性。
37.本说明书实施例的方法流程步骤如下:
38.s102,通过局部敏感哈希函数将待比对的第一数据与第二数据,分别生成第一数据指纹与第二数据指纹,所述第一数据为待上链的数据,所述第二数据为链上数据。
39.在本说明书实施例中,通过局部敏感哈希函数将待比对的第一数据与第二数据,分别生成第一数据指纹与第二数据指纹时,可以先将所述第一数据与所述第二数据进行分片,再计算每个分片的分片哈希值,得到第一数据的分片哈希值与所述第二数据的分片哈希值;然后,对所述第一数据的分片哈希值与所述第二数据的分片哈希值分别进行拼接,得到所述第一数据对应的第一数据指纹与所述第二数据对应的第二数据指纹。需要说明的是,第一数据指纹与第二数据指纹分别为第一数据的哈希值与第二数据的哈希值。
40.s104,通过预先设定的数据指纹的比对方式,确定所述第一数据指纹与所述第二数据指纹之间的相似度。
41.在本说明书实施例中,可以先确定由所述第一数据指纹变更至所述第二数据指纹的编辑距离,所述变更包括删除、增加与更改,比如,第一数据指纹为ada,第二数据指纹为abac,由第一数据指纹变更至第二数据指纹,只需要修改第二个字符,d更改为b,末尾添加一个字符c,过程中编辑次数为2,所以编辑距离为2;最后,根据所述编辑距离确定所述第一数据指纹与所述第二数据指纹之间的相似度,期间可以根据编辑距离与第一数据指纹和第二数据指纹的长度,判定第一数据指纹与第二数据指纹之间的相似度,比如,可以编辑距离为2,第一数据指纹的长度为5,第二数据指纹的长度为6,可以认定第一数据指纹与第二数据指纹的相似度为81.8%。
42.进一步的,在本说明书实施例中,确定由所述第一数据指纹变更至所述第二数据指纹的编辑距离时,还可以考虑不同变更的权重,可以先获取预先设定的各变更对应的编辑距离,比如,修改的编辑距离可以设置为2,删除与增加的编辑距离可以设置为1;根据各变更对应的编辑距离,确定由所述第一数据指纹变更至所述第二数据指纹的编辑距离。
43.在本说明书实施例中,若考虑不同变更的权重,根据所述编辑距离确定所述第一数据指纹与所述第二数据指纹之间的相似度时,可以获取所述第一数据的第一长度与所述第二数据的第二长度;根据所述第一长度、所述第二长度与所述编辑距离,确定所述第一数
据指纹与所述第二数据指纹之间的相似度。
44.进一步的,本说明书实施例还可以通过下述方式确定第一数据指纹与第二数据指纹之间的相似度,具体包括:先确定所述第一数据指纹中各分片的分片哈希值与所述第二数据指纹中各分片的分片哈希值;然后,将所述第一数据指纹中各分片的分片哈希值分别到所述第二数据指纹中各分片的分片哈希值进行匹配,确定所述第一数据指纹中各分片的匹配值,比如,对于第一数据指纹,有na个分片,其中第i个分片的分片哈希值为hi,对于第二数据指纹有nb个分片,将分片哈希值hi与nb个分片的分片哈希值分别进行匹配,确定匹配度最高的分片,并确定出匹配值,之后再确定出第一数据指纹的其他分片的匹配值。关于匹配值,比如,第一数据指纹中第i个分片的分片哈希值为hi为abcd,第二数据指纹中匹配度最高的分片j的分片哈希值为accd,相同的部分为3个字符,匹配值可以为3,通过该方法可以算出第一数据指纹其他分片的匹配值。
45.最后,根据所述第一数据指纹中各分片的匹配值与所述第一数据指纹的长度值,确定所述第一数据指纹与所述第二数据指纹之间的相似度,可以将第一数据指纹中各分片的匹配值累积求和,根据求和结果与第一数据指纹的长度值确定第一数据指纹与第二数据指纹之间的相似度,比如,可以通过求和结果除以第一数据指纹的长度值确定第一数据指纹与第二数据指纹之间的相似度。
46.进一步的,在本说明书实施例中,将所述第一数据指纹中各分片的分片哈希值分别到所述第二数据指纹中各分片的分片哈希值进行匹配,确定所述第一数据指纹中各分片的匹配值时,可以将所述第一数据指纹中各分片的分片哈希值分别到所述第二数据指纹中各分片的分片哈希值进行匹配,确定所述第一数据指纹中各分片的分片哈希值与所述第二数据指纹中匹配度最高的分片,并确定出所述第一数据指纹中各分片与所述第二数据指纹中各分片的匹配值。
47.s106,若相似度小于预先设定的认证值,将所述第一数据上传至区块链。
48.在本说明书实施例中,可以先对区块链以及其基本交易单位进行说明:
49.区块链是利用密码学和分布式系统将系统内的有效交易打包到一个只可附加型账本。区块链满足共享账本、不可篡改和分布式等基本特征。本说明书实施例可以采用hyperledger项目下的fabric区块链。采用该技术是基于以下内容考虑:1:hyperledger可以实现概念验证,是最接近商用需求(私密性、可审计等)的区块链实现;2:本说明书实施例中的区块链权属登记商业网络属于商业应用,本质上有相似的功能和非功能需求。区块链的交易结构可以如下:
50.交易头:包括一些诸如交易号码与时间戳的元数据;
51.签名:客户私钥进行的签名;
52.交易提案:这是一个函数,以某些内容为参数,生成一个交易援引的chaincode;
53.交易应答:这是由背书用户返回的仿真执行结果,如果交易成功就更新世界状态;
54.背书用户列表:存储对此交易背书的一个或者多个用户id。
55.本说明书实施例具体技术实现可以通过下述内容:
56.1、使用局部敏感哈希函数来生成数据指纹
57.此处可以采用局部敏感哈希函数来获取数据指纹。局部敏感哈希函数的核心思想为:首先将数据文件基于文件大小进行动态分片,然后计算每个分片的分片哈希值,最后对
分片哈希值进行压缩与拼接以获取文件的数据指纹。
58.(1)数据分片时,数据分片值b可以通过以下公式进行计算用以控制分片的位置:b=b
min
×2k

59.其中,b
min
为最小切分单位,此数值会影响后续hash的精确性,通常设置为16,k值为ds为用kb计算的数据大小。以上可以获得一个基于文件大小的动态切片方法。
60.(2)分片哈希值可以使用alder-32计算一个在一个滑动窗口内的字符串的32位校验码ck。当校验码满足ck mod b=b-1的时候,在此进行分片。b值计算在(1)中得以体现。
61.alder-32作为一个弱hash算法,生成的值是在0-2
32-1之间,而b的值是2的次方,因此这个余数会均匀地分布在log2bd二进制字符串空间内。因此满足分片函数的等式概率为1/b确保最后实际的分片数向b收敛。
62.(3)压缩切片:当完成切片后,使用32位fnv(fowler-noll-vo)的强hash算法对每个部分进行hash计算得到hash值,hi其中1≤i≤n,n为分的片数。数据指纹h则是将所有的分片hi拼接起来即h=h1||h2||h3||

||hi||

||hn,考虑到存储计算等开销,可以使用每片最后6位取代整个hash值,这样数字指纹h的大小就是6n。
63.2、数据指纹的两种比对方式:
64.(1)editmatch:设数据文件a的长度为l1,数据文件b的长度的l2,对应数据指纹分别为h1与h2,则h1与h2的加权编辑距离可以用于判断两个数据文件的相似程度。编辑距离是指,从字符串h1变换到字符串h2需要的操作数。假设增删改都是1个操作数,则ada到abac的编辑距离为2(修改第二个字符为b,末尾添加一个字符c)。加权编辑距离是指可以给增删改设置不同的操作数,比如修改可以设置成2,则ada到abac的编辑距离为3.
65.则对于数据文件a与b,两者之间的相似度可以满足以下公式:
[0066][0067]
其中,b为一个常数,e(h1,h2)为h1与h2的最小加权编辑距离,em(a,b)为数据文件a与b之间的相似度,其结果越靠近100说明两个文件越相似。
[0068]
(2)hashmatch:
[0069]
对于文件a,有na个分片,其中第i个分片的hash值为hi,对文件b有nb个分片,若确定第j个分片为文件a第i个分片匹配度最高的分片,确定第j个分片的hash值为hj,并确定第i个分片与第j个分片哈希值的匹配值,比如第i个分片的哈希值为abc,第j个分片的哈希值为adc,相同的部分第一个和第三个字符,匹配值为2,依照上述可以确定出文件a的所有匹配值,再将结果累加,最后转换成一个百分比的值,同样100表示完全一致,0表示完全不一致,具体方程如下
[0070][0071]
数据文件a与文件b对应数据指纹分别为ha与hb,len(ha)表示数据指纹ha的长度,hm(a,b)为数据文件a与b之间的相似度。
[0072]
3、基于区块链的认证、储存机制设计
[0073]
系统架构可以分成三个部分:用户、区块链网络以及区块链账本,其中区块链的技术可以使用hyperledger fabric
[0074]
用户:每个用户可以看做是区块链的一个peer,在上链之前需要安装一个安全组件的sdk,其中包括:(1)生成用户的公钥;(2)利用lsh提取数据的数据指纹;(3)chaincode接口;(4)数据交易确认提案的提交。
[0075]
sdk处于提高系统功效的目的,可以选择在本机使用,前提是整体的区块链要处于一个较为安全的环境从而不用考虑执行严格的安全策略。
[0076]
区块链网络:
[0077]
鉴于区块链上数据是对所有成员可见的,成员间的数据交换是有必要进行加密的,此处用的加密方式为:先使用非对称加密交换双方使用的aes key,再利用词aeskey加密正式文件将其广播出去。此外,在区块链网络上的peer基于他们的身份会存在不同的权限,需要对区块链网络上的用户进行组织化管理。
[0078]
分布式记账:
[0079]
所有区块链用户维护同一个分布式账本,使用键值对数据库存储交易记录与状态。用户通过交易确认来实现用户身份与数据资产的绑定,当交易通过并记录在区块链上之后,数据资产将通过数据指纹h标明隶属关系。其具体操作步骤如下:
[0080]
(1)用户通过安全sdk获得数据的数据指纹h,并且生成交易提案,交易参考前置内容1,提案的输入参数包括h以及由ca颁发的用户数字认证uid。
[0081]
(2)当收到交易合约之后,背书用户确认发起交易用户的数字证书的有效性,然后执行确认chaincode的代码confirm.go,并且将自己的id添加到背书用户列表中。
[0082]
(3)当确认此提案有足够的背书用户之后,提出交易的用户讲词交易打包成最新的区块且在区块链中进行广播,
[0083]
(3)在一段时间内如果没有用户对此有疑问,交易将最终确认,此区块将上链。
[0084]
confirm.go可以使用时间戳与用户的uid作为key,数据的数据指纹作为value存入数据库,这样就可以作为如果日后产生数据权争端之后,查询数据拥有者的参考依据。当数据侵权者使用区块链以外的其他数据时,数据的拥有者可以通过计算侵权数据的数据指纹以及匹配数据链上数据指纹来发现数据侵权。此外,用户也可以通过上述提到的数据交换来发起挑战,将数据资产加密与背书用户交换,让背书用户投票决定是否侵权。
[0085]
图2为本说明书一个或多个实施例提供的一种基于区块链的数据上链装置的结构示意图,所述装置包括:数据指纹生成单元202、相似度确定单元204与数据上链单元206。
[0086]
数据指纹生成单元202,通过局部敏感哈希函数将待比对的第一数据与第二数据,分别生成第一数据指纹与第二数据指纹,所述第一数据为待上链的数据,所述第二数据为链上数据;
[0087]
相似度确定单元204,通过预先设定的数据指纹的比对方式,确定所述第一数据指纹与所述第二数据指纹之间的相似度;
[0088]
数据上链单元206,若相似度小于预先设定的认证值,将所述第一数据上传至区块链。
[0089]
图3为本说明书一个或多个实施例提供的一种基于区块链的数据上链设备的结构示意图,包括:
[0090]
至少一个处理器;以及,
[0091]
与所述至少一个处理器通信连接的存储器;其中,
[0092]
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
[0093]
通过局部敏感哈希函数将待比对的第一数据与第二数据,分别生成第一数据指纹与第二数据指纹,所述第一数据为待上链的数据,所述第二数据为链上数据;
[0094]
通过预先设定的数据指纹的比对方式,确定所述第一数据指纹与所述第二数据指纹之间的相似度;
[0095]
若相似度小于预先设定的认证值,将所述第一数据上传至区块链。
[0096]
本说明书一个或多个实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
[0097]
通过局部敏感哈希函数将待比对的第一数据与第二数据,分别生成第一数据指纹与第二数据指纹,所述第一数据为待上链的数据,所述第二数据为链上数据;
[0098]
通过预先设定的数据指纹的比对方式,确定所述第一数据指纹与所述第二数据指纹之间的相似度;
[0099]
若相似度小于预先设定的认证值,将所述第一数据上传至区块链。
[0100]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、非易失性计算机存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0101]
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0102]
以上所述仅为本说明书的一个或多个实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书的一个或多个实施例可以有各种更改和变化。凡在本说明书的一个或多个实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献