CN113055431A - 一种基于区块链的工业大数据文件高效上链方法及装置 - Google Patents
一种基于区块链的工业大数据文件高效上链方法及装置 Download PDFInfo
- Publication number
- CN113055431A CN113055431A CN202110040381.6A CN202110040381A CN113055431A CN 113055431 A CN113055431 A CN 113055431A CN 202110040381 A CN202110040381 A CN 202110040381A CN 113055431 A CN113055431 A CN 113055431A
- Authority
- CN
- China
- Prior art keywords
- data
- industrial big
- mercker
- data file
- big data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种基于区块链的工业大数据文件高效上链方法、装置、终端设备及计算机可读介质,所述方法包括:对工业大数据文件进行分块,得到各个数据块;计算所述数据块的哈希值,并对所述数据块进行签名,得到签名信息;分别对所述数据块的哈希值和所述签名信息构建默克尔哈希树,并将所述默克尔哈希树的默克尔根作为所述工业大数据文件的元数据储存到区块链上。通过本发明实施例,可将工业大数据文件高效地上链到区块链上。
Description
技术领域
本发明属于区块链技术领域,具体是涉及到一种基于区块链的工业大数据文件高效上链方法、装置、终端设备及计算机可读介质。
背景技术
工业互联网可以看作企业数字化转型过程中的使能技术,从生产和运营的角度来看,数据、模型和应用是工业互联网技术的三大功能要素。工业数据是工业领域各类资源的核心载体,通过汇聚、处理、分析、共享和应用各类数据资源,推动工业经济全要素、全产业链、全价值链的数据流通共享,实现对工业领域各类资源的统筹管理和调配。近年来我国工业互联网数据资源总量呈爆炸性增长,同时也带来了大量的问题和挑战,借助于区块链技术可以有针对性地解决工业互联网平台数据流通共享模式中存在数据确权难、隐私保护难、数据权益分配和数据交易流程复杂、资源负载严重等问题。
区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证,不可篡改和不可伪造的分布式数据库。但是基于区块链的特点,区块的容量被设计的很小,在比特币中一个区块的最大容量只用1MB左右,HyperledgerFabric (一个开源的联盟链技术平台)中一个区块的最大容量也只有100M左右。由于区块容量小的原因,不可能将工业大数据文件本身存储到区块链,因此有必要设计一种针对工业大数据文件上链存储的方法,使区块链技术能更好的与工业互联网相结合,充分发挥工业互联网在数据流通、数据交易方面的优势,让数据的价值在更大的范围内得到更加有效利用。
发明内容
有鉴于此,本发明实施例提供一种基于区块链的工业大数据文件高效上链方法、装置、终端设备及计算机可读介质,能够将工业大数据文件高效地上链到区块链上。
本发明实施例的第一方面提供了一种基于区块链的工业大数据文件高效上链方法,包括:
对工业大数据文件进行分块,得到各个数据块;
计算所述数据块的哈希值,并对所述数据块进行签名,得到签名信息;
分别对所述数据块的哈希值和所述签名信息构建默克尔哈希树,并将所述默克尔哈希树的默克尔根作为所述工业大数据文件的元数据储存到区块链上。
本发明实施例的第二方面提供了一种基于区块链的工业大数据文件高效上链装置,包括:
分块模块,用于对工业大数据文件进行分块,得到各个数据块;
计算模块,用于计算所述数据块的哈希值,并对所述数据块进行签名,得到签名信息;
上链模块,用于分别对所述数据块的哈希值和所述签名信息构建默克尔哈希树,并将所述默克尔哈希树的默克尔根作为所述工业大数据文件的元数据储存到区块链上。
本发明实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于区块链的工业大数据文件高效上链方法的步骤。
本发明实施例的第四方面提供了一种计算机可读介质,所述计算机可读介质存储有计算机程序,所述计算机程序被处理执行时实现上述基于区块链的工业大数据文件高效上链方法的步骤。
本发明实施例提供的基于区块链的工业大数据文件高效上链方法中,可对工业大数据文件进行分块,得到各个数据块,计算所述数据块的哈希值,并对所述数据块进行签名,得到签名信息,然后分别对所述数据块的哈希值和所述签名信息构建默克尔哈希树,并将所述默克尔哈希树的默克尔根作为所述工业大数据文件的元数据储存到区块链上,从而可将工业大数据文件高效地上链到区块链上。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例提供的一种区块链数据上链前处理阶段和上链处理阶段的流程示意图;
图2是本发明实施例提供的一种基于区块链的工业大数据文件高效上链方法的流程图;
图3是本发明实施例提供的构建数据块和数据块签名信息的默克尔哈希树的示意图;
图4是本发明实施例提供的另一种基于区块链的工业大数据文件高效上链方法的流程图;
图5是本发明实施例提供的数据供需双方对数据进行完整性验证的流程示意图;
图6为本发明实施例提供的的恢复默克尔根的示意图;
图7是本发明实施例提供的一种基于区块链的工业大数据文件高效上链装置的结构示意图;
图8是图7中的计算模块的细化结构示意图;
图9是本发明实施例提供的另一种基于区块链的工业大数据文件高效上链装置的结构示意图;
图10是图9中的验证模块的细化结构示意图;
图11是本发明实施例提供的终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
在区块链中,数据上链的流程如图1所示,主要包括上链前处理阶段和上链处理阶段。在上链前处理阶段,有业务数据处理和数字签名两个处理步骤。业务数据处理的业务数据可以是任意的内容,比如物流信息、商品交易或工厂设备上传的数据或者对应数据的哈希值等等。这些业务数据既可以通过服务器处理,也可通过物联网设备的边缘计算系统处理;在上链处理阶段,有广播、打包、共识等处理步骤。在上链前处理阶段和上链处理阶段中,每一个处理手段都对数据上链的效率有一定的影响。由于不同的区块链有不同的广播协议、不同的共识机制等,所以本方案主要针对工业大数据文件如何上链存储的问题以及数据供需双方间的数据完整性验证。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
请参阅图2,图2是本发明实施例提供的一种基于区块链的工业大数据文件高效上链方法的流程图。如图2所示,本实施例的基于区块链的工业大数据文件高效上链方法包括以下步骤:
S201:对工业大数据文件进行分块,得到各个数据块。
在本发明实施例中,假设工业大数据文件都是存储在本地。对工业大数据文件的原始数据进行分块主要基于两个方面:(1)由于本方案采用SHA256作为哈希函数来计算数据块的哈希值,所以在对工业大数据文件进行分块时,分块的大小首先由SHA256的原理确定;(2)本方案采用GPU对数据块哈希值的计算进行加速,所以分块的大小还应基于GPU 的性能。
利用SHA256对数据计算哈希值主要有五个步骤:(1)对数据进行填充;(2)首先,将填充后的数据划分成N个512位的数据块;然后,依次对512位的数据转换成16个32 位的无符号整数,总共可以得到16N个32位的无符号整数;(3)依次对上一步生成的16 个无符号整数进行扩展,扩展成64个32位的无符号整数,总共可以得到64N个32位的无符号整数;(4)循环N次,每次基于64个32位的无符号整数,更新计算哈希值。假设一个数据M的数据长度以二进制位数计算为L,对该数据M进行填充的方法分为三步:(1) 对该数据进行填充的步骤主要包括:在该数据M的末尾填充一个二进制数1;(2)在所述二进制数1后填充l个二进制数0,l是同余方程L+1+l≡448mod 512的最小非负解;(3) 可将该数据M的长度用64位二进制数表示,并将所述64位二进制数填充到所述l个二进制数0中的最后一个二进制数0的尾部,使得该数据M在完成上述3次填充后的数据长度是512的倍数。假设一个数据M的数据长度L可以用下面等式表示:
L=512k+b
其中,k,b都是非负整数。那么对于b的不同取值范围可包括如下两种情形:
情形1:如果0<=b<448,那么首先我们需要填充一个二进制数1和448–b–1个二进制数0,此时数据的长度是512k+b+1+448–b–1=512k+448,接着再填充原始数据长度L。填充后数据的最终长度为:
L*=512k+b+1+(448–b–1)+64=512(k+1)
情形2:如果448<=b<512,那么我们需要填一个二进制数1和512–b–1+448个二进制数0,此时数据的长度是512k+b+512–b–1+448=512(k+1)+448,再填充原始数据长度L。填充后数据的最终长度为:
L*=512k+b+1+(512-b-1+448)+64=512(k+2)
由此可知,情形2比情形1多了512位的数据,根据SHA256的原理,这在之后计算该数据M的哈希值的过程中,会多一次数据转换和多一次的哈希值更新计算的过程。如果将一个大数据文件分成n个块,每个分块的长度是上述情形2的情况,那么对于每个块都需要多一次数据转换和一次哈希值更新计算,而对该大数据文件则总共需要多2n次计算。所以,在对工业大数据文件进行分块时,我们必须保障其分块后的数据块的大小(数据长度)L'满足情形1的情况,以减少计算次数,即满足方程:
L'=512k+b,且0<=b<448
其中,k,b都是非负整数。
在通过SHA256原理对工业大数据文件进行初步分块之后,还可基于GPU性能对分块做进一步调整。在基于GPU性能进行分块方面,通常需要考虑内核的性能特性和GPU资源的限制。首先,由数据结构cudaDeviceProp得到GPU的SM(流式多处理器)的数量multiProcessorCount、每个SM并发线程束的最大数量maxThreadsPerMultiProcessor,由此可以得到GPU理论上最大并发线程的数量T:
T=multiProcessorCount×maxThreadsPerMultiProcessor
由此可知,在本方案采取只进行一次主机向设备和设备向主机传输数据以及每个线程处理一个数据块的情况下,理论上原始数据M'分块后的一个数据块的最小长度以二进制位数表示是Lp/T,其中Lp是原始数据M'以二进制位数表示的长度。但是,SM能并发的线程数还取决于共享内存、寄存器数量等参数,通过实验分析可以得到最终的分块后的数据块大小。
S202:计算所述数据块的哈希值,并对所述数据块进行签名,得到签名信息。
在本发明实施例中,利用GPU对工业大数据文件的数据块进行哈希值计算,主要依赖于GPU中内核网格和线程块的配置和全局内存访问模式等。在配置网格和块的大小时,依据的准则主要有:(1)保持每个数据块中线程数量是线程束大小的倍数;(2)每个数据块至少要有256个线程;(3)数据块的数量要远远大于SM的数量,保障在GPU中有足够多的并行;(4)一个数据块中最内层的维数(即blockDim.x)应该是线程束大小的倍数。在全局内存访问方面:(1)读取全局内存数据时,采用对齐内存访问;(2)针对各个数据块的哈希值的存储,采用SoA(结构体数据)的内存布局,以实现对全局内存更高效的利用。
假设对所述工业大数据文件的原始数据M'进行分块后,得到n个数据块m1,m2,...,mn。其中,mi∈ZP,1≤i≤n,p是一个大素数;e:G×G→GT为一个双线性映射,g是G 的生成元。H为哈希函数,满足H:{0,1}*→G。首先,所述工业大数据文件的数据提供方随机选择一个随机数α∈ZP并计算,把α作为私钥,v作为公钥。然后,数据提供方可随机选择u∈G,并计算所述原始数据M'={m1,m2,...,mn}的签名信息Φ={σ1,σ2,...,σn},其中,i=1,2,...,n,H(mi)为数据块i的哈希值。
S203:分别对所述数据块的哈希值和所述签名信息构建默克尔哈希树,并将所述默克尔哈希树的默克尔根作为所述工业大数据文件的元数据储存到区块链上。
在本发明实施例中,可构建基于所述数据块的哈希值的默克尔哈希树T1,得到默克尔根R1,并且构建基于所述签名的默克尔哈系树T2,得到默克尔根R2。最后可将所述默克尔根R1和默克尔根R2作为所述工业大数据文件的元数据储存到区块链上。所述工业大数据文件的元数据还可包括所述数据块的大小、数据块的总数量、数据块的签名信息、所述生成元g和公钥v。具体的构建默克尔哈希树的过程如图3所示。以构建默克尔哈希树T1为例,首先,通过GPU计算各个数据块的哈希值H(m1)、H(m2)、...、H(mn);然后将相邻数据块的哈希值两两拼接在一起计算哈希值,例如,将H(m1)和H(m2)拼接在一起计算哈希值H12,将H(mi-1)和H(mi)拼接在一起计算哈希值H(i-1)i,再将相邻的两两拼接计算出的哈希值再次拼接在一起计算哈希值,例如,将H12和H34拼接在一起计算哈希值H1234,如此循环,直到得到唯一的哈希值即默克尔根R1。默克尔哈希树T2的构建过程与T1相似,最终同样可以得到默克尔根R2。
在图2提供的基于区块链的工业大数据文件高效上链方法中,可对工业大数据文件进行分块,得到各个数据块,计算所述数据块的哈希值,并对所述数据块进行签名,得到签名信息,然后分别对所述数据块的哈希值和所述签名信息构建默克尔哈希树,并将所述默克尔哈希树的默克尔根作为所述工业大数据文件的元数据储存到区块链上,从而可解决区块链中因为区块容量小,不能存储大数据文件的问题,且可高效地基于GPU计算工业大数据文件哈希值,进而大大地提高了工业大数据文件上链的效率。
请参阅图4,图4是本发明实施例提供的另一种基于区块链的工业大数据文件高效上链方法的流程图。图4所示的另一种基于区块链的工业大数据文件高效上链方法是在图2所示的基于区块链的工业大数据文件高效上链方法的基础上经过优化得来的。图4中的步骤1 与图2中的S201对应,图4中的步骤2和3与图2中的S202对应,图4中的步骤4与图2 中的S203对应,故在此不再赘述。
对数据块进行签名和构建基于数据块哈希值的默克尔树T1和基于数据块签名信息的默克尔哈希树T2的意义在于工业大数据文件在数据共享双方间流通和交易时能够验证数据的完整性,保障大数据文件和一般数据文件一样也能够拥有不可篡改的特点。与一般数据完整性验证不同的是,本发明实施例提供的的数据完整性验证是两方模型,验证者是数据需求方,证明者是数据提供方,并且数据提供方拥有数据块签名的私钥。由于证明者拥有签名私钥这一特殊情况,如果在不采取任何保障措施的前提下,即使原始数据已经被改动甚至已经消失不存在,数据提供方仍然可以利用私钥在数据完整性验证过程中向数据需求方提供能够通过验证的证明信息。所以,在本发明实施例中,数据提供方必须将数据块签名信息的默克尔哈希树的根存储到区块链并且必须由数据需求方计算,借助区块链不可篡改的优势,防止数据提供方在数据完整性验证的过程中弄虚作假。具体地,在图4的步骤5中,数据需求方可将数据完整性验证的挑战信息Chal发送给数据提供方。在图4的步骤6中,数据提供方根据所述挑战信息Chal返回相应的证明信息Prof给数据需求方。在图4的步骤7中,数据需求方根据所述证明信息Prof与区块链上的默克尔根R1和R2,验证数据的完整性,即验证所述工业大数据文件的原始数据在数据供求双方的数据共享和交易过程中的完整性是否发生变化。
更为具体地,可参看图5,图5示出了本发明实施例提供的通过所述数据块的哈希值、签名信息和所述默克尔根对所述工业大数据文件对应的原始数据的完整性进行验证的细化流程图。该数据完整性验证的细化流程包括以下步骤:
步骤(1):所述工业大数据文件对应的数据需求方在集合{1,...,n}中,随机选择c个元素,组成子集S={s1,s2,...,sc},其中,1≤s1≤s2≤...≤sc≤n,对于每一个si∈S,在ZP中随机选择一个数vi与si对应,
步骤(2):所述数据需求方将挑战信息Chal={S,V}发送给所述工业大数据文件的数据提供方。
步骤(3):数据提供方计算:
步骤(4):所述数据提供方将证明信息Prof={H(mi),Ωi,Φ',Ψi,Δ}发送给数据需求方,其中,s1≤i≤sc,为数据块mi的哈希值,Φ'为数据块s1~sc的签名信息,Ωi为默克尔树T1的叶子节点到默克尔根R1路径上的兄弟节点,Ψi为默克尔树T2的叶子节点H(σi)到默克尔根R2路径上的兄弟节点。
步骤(5):所述数据需求方验证由所述证明信息Prof恢复得到的默克尔根R1'和R2'是否与区块链上存储的的所述默克尔根R1和R2相等。图6为本发明实施例提供的的恢复默克尔根的示意图,解释了由叶子节点(可从所述证明信息Prof中可获取)恢复默克尔根所需的兄弟节点信息,并最终恢复默克尔根的过程。假设默克尔树T1的叶子节点为H(m2),则其到默克尔根R1的兄弟节点为H(m1)和H34,在示例中Ωi={H(m1),H34}。由H(m1)和H34可以计算出H12,然后由H12和H34可恢复得到默克尔根R1'。由默克尔树T2的叶子结点H(σi) 恢复默克尔根R2'的方法类似,故在此不再赘述。因此,通过所述证明信息Prof恢复默克尔根R1'和R2'之后,可将恢复的默克尔根R1'和R2'与区块链上储存的的默克尔根R1和R2 进行对比。如果不相等,则可确定所述工业大数据文件对应的原始数据已被改动。
然后,所述数据需求方可根据所述σ、生成元g、公钥v和Δ验证等式e(σ,g)=e(Δ,v) 是否成立,如果成立,则可确定所述工业大数据文件对应的原始数据是完整的;如果不成立,则可确定所述工业大数据文件对应的原始数据已经被改动。
在图4提供的基于区块链的工业大数据文件高效上链方法中,可通过本发明实施例提供的数据供需双方验证模型,并利用数据块哈希值、签名信息、默克尔根等信息验证工业大数据文件在数据共享双方间流通和交易时数据的完整性从而可以防止不良数据数据提供方以次充好、弄虚作假等情况。
请参阅图7,图7是本发明实施例提供的一种基于区块链的工业大数据文件高效上链装置的结构示意图。如图7所示,本实施例的基于区块链的工业大数据文件高效上链装置70 包括分块模块701、计算模块702和上链模块703。分块模块701、计算模块702和上链模块703分别用于执行图2中的S201、S202和S203中的具体方法,详情可参见图2的相关介绍,在此仅作简单描述:
分块模块701,用于对工业大数据文件进行分块,得到各个数据块。
计算模块702,用于计算所述数据块的哈希值,并对所述数据块进行签名,得到签名信息。
上链模块703,用于分别对所述数据块的哈希值和所述签名信息构建默克尔哈希树,并将所述默克尔哈希树的默克尔根作为所述工业大数据文件的元数据储存到区块链上。
进一步地,假设对所述工业大数据文件的原始数据M'进行分块后,得到n个数据块m1, m2,...,mn。其中,mi∈ZP,1≤i≤n,p是一个大素数;e:G×G→GT为一个双线性映射, g是G的生成元,H为哈希函数,满足H:{0,1}*→G。可参见图8,计算模块702可具体包括:
计算单元7021,用于基于GPU分别计算所述n个数据块的哈希值。
签名单元7022,用于随机选择一个随机数α∈ZP并计算,把α作为私钥,v作为公钥,随机选择u∈G,并计算原始数据M'={m1,m2,...,mn}的签名信息Φ={σ1,σ2,...,σn},其中,i=1,2,...,n,H(mi)为数据块i的哈希值。
图7提供的基于区块链的工业大数据文件高效上链装置可对工业大数据文件进行分块,得到各个数据块,计算所述数据块的哈希值,并对所述数据块进行签名,得到签名信息,然后分别对所述数据块的哈希值和所述签名信息构建默克尔哈希树,并将所述默克尔哈希树的默克尔根作为所述工业大数据文件的元数据储存到区块链上,从而可解决区块链中因为区块容量小,不能存储大数据文件的问题,且可高效地基于GPU计算工业大数据文件哈希值,进而大大地提高了工业大数据文件上链的效率。
请参阅图9,图9是本发明实施例提供的另一种基于区块链的工业大数据文件高效上链装置的结构示意图。图9所示的基于区块链的工业大数据文件高效上链装置90是在图7提供的基于区块链的工业大数据文件高效上链装置70的基础上经过优化得来的。基于区块链的工业大数据文件高效上链装置90除了包含基于区块链的工业大数据文件高效上链装置70 中的分块模块701、计算模块702和上链模块703之外,还包括:
验证模块901,用于通过所述哈希值、签名信息和所述默克尔根对所述工业大数据文件对应的原始数据进行完整性验证。
进一步地,如图10所示,验证模块901可具体包括:
选择单元9011,用于使所述工业大数据文件对应的数据需求方在集合{1,...,n}中,随机选择c个元素,组成子集S={s1,s2,...,sc},其中,1≤s1≤s2≤...≤sc≤n,对于每一个si∈S,在ZP中随机选择一个数vi与si对应,
发送单元9012,用于使所述数据需求方将挑战信息Chal={S,V}发送给所述工业大数据文件的数据提供方。
证明信息计算单元9013,用于使数据提供方计算:
返回单元9014,用于使所述数据提供方将证明信息Prof={H(mi),Ωi,Φ',Ψi,Δ}发送给数据需求方,其中,s1≤i≤sc,为数据块mi的哈希值,Φ'为数据块s1~sc的签名信息,Ωi为默克尔树T1的叶子节点到默克尔根R1路径上的兄弟节点,Ψi为默克尔树T2的叶子节点H(σi)到默克尔根R2路径上的兄弟节点。
默克尔根验证单元9015,用于使所述数据需求方验证由所述证明信息Prof恢复得到的默克尔根R1'和R2'是否与区块链上存储的的所述默克尔根R1和R2相等,如果不相等,则确定所述工业大数据文件对应的原始数据已被改动。
所述签名验证单元9016还用于使所述数据需求方根据所述σ、生成元g、公钥v和Δ验证等式e(σ,g)=e(Δ,v)是否成立,如果成立,则确定所述工业大数据文件对应的原始数据是完整的,如果不成立,则确定所述工业大数据文件对应的原始数据已经被改动。
图9提供的基于区块链的工业大数据文件高效上链装置,可通过本发明实施例提供的数据供需双方验证模型,并利用数据块哈希值、签名信息、默克尔根等信息验证工业大数据文件在数据共享双方间流通和交易时数据的完整性从而可以防止不良数据数据提供方以次充好、弄虚作假等情况。
图11是本发明一实施例提供的终端设备的示意图。如图11所示,该实施例的终端设备11包括:处理器110、存储器111以及存储在所述存储器111中并可在所述处理器110 上运行的计算机程序112,例如进行湍流图像复原的程序。所述处理器110执行所述计算机程序112时实现上述方法实施例中的步骤,例如,图2所示的S201至S203。或者,所述处理器110执行所述计算机程序112时实现上述各装置实施例中各模块/单元的功能,例如图 7所示模块701至703的功能。
示例性的,所述计算机程序112可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器111中,并由所述处理器110执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序112在终端设备11中的执行过程。例如,所述计算机程序112可以被分割成分块模块701、计算模块702和上链模块703。(虚拟装置中的模块),各模块具体功能如下:
分块模块701,用于对工业大数据文件进行分块,得到各个数据块。
计算模块702,用于计算所述数据块的哈希值,并对所述数据块进行签名,得到签名信息。
上链模块703,用于分别对所述数据块的哈希值和所述签名信息构建默克尔哈希树,并将所述默克尔哈希树的默克尔根作为所述工业大数据文件的元数据储存到区块链上。
所述终端设备11可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。终端设备11可包括,但不仅限于,处理器110、存储器111。本领域技术人员可以理解,图11仅仅是终端设备11的示例,并不构成对终端设备11的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所述处理器110可以是中央处理单元(Central Processing Unit,CPU),还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA) 或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器111可以是终端设备11的内部存储单元,例如终端设备11的硬盘或内存。所述存储器111也可以是终端设备11的外部存储设备,例如所述终端设备11上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器111还可以既包括终端设备11的内部存储单元也包括外部存储设备。所述存储器111用于存储所述计算机程序以及终端设备11所需的其它程序和数据。所述存储器111还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器 (RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于区块链的工业大数据文件高效上链方法,其特征在于,包括:
对工业大数据文件进行分块,得到各个数据块;
计算所述数据块的哈希值,并对所述数据块进行签名,得到签名信息;
分别对所述数据块的哈希值和所述签名信息构建默克尔哈希树,并将所述默克尔哈希树的默克尔根作为所述工业大数据文件的元数据储存到区块链上。
2.根据权利要求1所述的基于区块链的工业大数据文件高效上链方法,其特征在于,所述对工业大数据文件进行分块,得到各个数据块,包括:
通过SHA256原理对工业大数据文件进行初步分块,使分块后的各个数据块的数据长度L'以二进制计算满足:
L'=512k+b,且0<=b<448
其中,k,b都是非负整数;
基于GPU的性能最终确定各个数据块的大小。
3.根据权利要求1所述的基于区块链的工业大数据文件高效上链方法,其特征在于,假设对所述工业大数据文件的原始数据M'进行分块后,得到n个数据块m1,m2,...,mn。其中,mi∈ZP,1≤i≤n,p是一个大素数;e:G×G→GT为一个双线性映射,g是G的生成元,H为哈希函数,满足H:{0,1}*→G,所述计算所述数据块的哈希值,并对所述数据块进行签名,得到签名信息,包括:
基于GPU分别计算所述n个数据块的哈希值;
4.根据权利要求1~3中任一项所述的基于区块链的工业大数据文件高效上链方法,其特征在于,所述分别对所述数据块的哈希值和所述签名信息构建默克尔哈希树,并将所述默克尔哈希树的默克尔根作为所述工业大数据文件的元数据储存到区块链上,包括:
构建基于所述数据块的哈希值的默克尔哈希树T1,得到默克尔根R1;
构建基于所述签名的默克尔哈系树T2,得到默克尔根R2;
将所述默克尔根R1和默克尔根R2作为所述工业大数据文件的元数据储存到区块链上。
5.根据权利要求3所述的基于区块链的工业大数据文件高效上链方法,其特征在于,所述工业大数据文件的元数据还包括所述数据块的大小、数据块的总数量、数据块的签名信息、生成元g和公钥v;所述分别对所述数据块的哈希值和所述签名构建默克尔哈希树,并将所述默克尔哈希树对应的两个默克尔根作为所述工业大数据文件的元数据储存到区块链上之后,还包括:
通过所述哈希值、签名信息和所述默克尔根对所述工业大数据文件对应的原始数据进行完整性验证;
所述通过所述哈希值、签名信息和所述默克尔根对所述工业大数据文件对应的原始数据进行完整性验证,包括:
所述工业大数据文件对应的数据需求方在集合{1,...,n}中,随机选择c个元素,组成子集S={s1,s2,...,sc},其中,1≤s1≤s2≤...≤sc≤n,对于每一个si∈S,在ZP中随机选择一个数vi与si对应,
所述数据需求方将挑战信息Chal={S,V}发送给所述工业大数据文件的数据提供方;数据提供方计算:
所述数据提供方将证明信息Prof={H(mi),Ωi,Φ',Ψi,Δ}发送给数据需求方,其中,s1≤i≤sc,为数据块mi的哈希值,Φ'为数据块s1~sc的签名信息,Ωi为默克尔树T1的叶子节点到默克尔根R1路径上的兄弟节点,Ψi为默克尔树T2的叶子节点H(σi)到默克尔根R2路径上的兄弟节点;
所述数据需求方验证由所述证明信息Prof恢复得到的默克尔根R1'和R2'是否与区块链上存储的的所述默克尔根R1和R2相等,如果不相等,则确定所述工业大数据文件对应的原始数据已被改动;
所述数据需求方根据所述σ、生成元g、公钥v和Δ验证等式e(σ,g)=e(Δ,v)是否成立,如果成立,则确定所述工业大数据文件对应的原始数据是完整的,如果不成立,则确定所述工业大数据文件对应的原始数据已经被改动。
6.一种基于区块链的工业大数据文件高效上链装置,其特征在于,包括:
分块模块,用于对工业大数据文件进行分块,得到各个数据块;
计算模块,用于计算所述数据块的哈希值,并对所述数据块进行签名,得到签名信息;
上链模块,用于分别对所述数据块的哈希值和所述签名信息构建默克尔哈希树,并将所述默克尔哈希树的默克尔根作为所述工业大数据文件的元数据储存到区块链上。
7.根据权利要求6所述的基于区块链的工业大数据文件高效上链装置,其特征在于,假设对所述工业大数据文件的原始数据M'进行分块后,得到n个数据块m1,m2,...,mn。其中,mi∈ZP,1≤i≤n,p是一个大素数;e:G×G→GT为一个双线性映射,g是G的生成元,H为哈希函数,满足H:{0,1}*→G;所述计算模块包括:
计算单元,用于基于GPU分别计算所述n个数据块的哈希值;
8.根据权利要求7所述的基于区块链的工业大数据文件高效上链装置,其特征在于,所述工业大数据文件的元数据还包括所述数据块的大小、数据块的总数量、数据块的签名信息、生成元g和公钥v;所述基于区块链的工业大数据文件高效上链装置还包括:
验证模块,用于通过所述哈希值、签名信息和所述默克尔根对所述工业大数据文件对应的原始数据进行完整性验证;
所述验证模块包括:
选择单元,用于使所述工业大数据文件对应的数据需求方在集合{1,...,n}中,随机选择c个元素,组成子集S={s1,s2,...,sc},其中,1≤s1≤s2≤...≤sc≤n,对于每一个si∈S,在ZP中随机选择一个数vi与si对应,
发送单元,用于使所述数据需求方将挑战信息Chal={S,V}发送给所述工业大数据文件的数据提供方;
证明信息计算单元,用于使数据提供方计算:
返回单元,用于使所述数据提供方将证明信息Prof={H(mi),Ωi,Φ',Ψi,Δ}发送给数据需求方,其中,s1≤i≤sc,Hmi为数据块mi的哈希值,Φ'为数据块s1~sc的签名信息,Ωi为默克尔树T1的叶子节点到默克尔根R1路径上的兄弟节点,Ψi为默克尔树T2的叶子节点H(σi)到默克尔根R2路径上的兄弟节点;
默克尔根验证单元,用于使所述数据需求方验证由所述证明信息Prof恢复得到的默克尔根R1'和R2'是否与区块链上存储的的所述默克尔根R1和R2相等,如果不相等,则确定所述工业大数据文件对应的原始数据已被改动;
所述签名验证单元还用于使所述数据需求方根据所述σ、生成元g、公钥v和Δ验证等式e(σ,g)=e(Δ,v)是否成立,如果成立,则确定所述工业大数据文件对应的原始数据是完整的,如果不成立,则确定所述工业大数据文件对应的原始数据已经被改动。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-5中任一项所述方法的步骤。
10.一种计算机可读介质,所述计算机可读介质存储有计算机程序,其特征在于,所述计算机程序被处理执行时实现如权利要求1-5中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110040381.6A CN113055431B (zh) | 2021-01-13 | 2021-01-13 | 一种基于区块链的工业大数据文件高效上链方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110040381.6A CN113055431B (zh) | 2021-01-13 | 2021-01-13 | 一种基于区块链的工业大数据文件高效上链方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113055431A true CN113055431A (zh) | 2021-06-29 |
CN113055431B CN113055431B (zh) | 2022-08-09 |
Family
ID=76508262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110040381.6A Active CN113055431B (zh) | 2021-01-13 | 2021-01-13 | 一种基于区块链的工业大数据文件高效上链方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113055431B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114153658A (zh) * | 2021-11-22 | 2022-03-08 | 成都飞机工业(集团)有限责任公司 | 工业设备的数据存储方法、装置、终端设备以及存储介质 |
CN115086067A (zh) * | 2022-07-19 | 2022-09-20 | 江西农业大学 | 一种数据处理方法、网关、传感器及系统 |
CN115439118A (zh) * | 2022-08-02 | 2022-12-06 | 上海网商电子商务有限公司 | 一种基于区块链的数字存证管理方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104978239A (zh) * | 2014-04-08 | 2015-10-14 | 重庆邮电大学 | 一种实现多备份数据动态更新的方法、装置及系统 |
CN105095794A (zh) * | 2015-07-20 | 2015-11-25 | 武汉科技大学 | 一种基于平衡的梅肯哈希树的动态云数据完整性验证方法 |
CN105593872A (zh) * | 2013-07-01 | 2016-05-18 | 三星电子株式会社 | 数据认证的方法和设备 |
US20170163425A1 (en) * | 2015-12-04 | 2017-06-08 | Verisign, Inc. | Hash-based electronic signatures for data sets such as dnssec |
KR101924026B1 (ko) * | 2017-11-10 | 2018-11-30 | 부산대학교 산학협력단 | 해시 기반 서명 기법을 적용한 블록체인 시스템 및 방법 |
CN111309523A (zh) * | 2020-02-16 | 2020-06-19 | 西安奥卡云数据科技有限公司 | 数据读写方法、数据远程复制方法及装置、分布式存储系统 |
CN111783148A (zh) * | 2020-06-30 | 2020-10-16 | 中国工商银行股份有限公司 | 一种支持公正的轻量级多副本数据云审计方法及装置 |
CN111835526A (zh) * | 2020-06-30 | 2020-10-27 | 北京泰尔英福网络科技有限责任公司 | 一种生成匿名凭证的方法及系统 |
-
2021
- 2021-01-13 CN CN202110040381.6A patent/CN113055431B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105593872A (zh) * | 2013-07-01 | 2016-05-18 | 三星电子株式会社 | 数据认证的方法和设备 |
CN104978239A (zh) * | 2014-04-08 | 2015-10-14 | 重庆邮电大学 | 一种实现多备份数据动态更新的方法、装置及系统 |
CN105095794A (zh) * | 2015-07-20 | 2015-11-25 | 武汉科技大学 | 一种基于平衡的梅肯哈希树的动态云数据完整性验证方法 |
US20170163425A1 (en) * | 2015-12-04 | 2017-06-08 | Verisign, Inc. | Hash-based electronic signatures for data sets such as dnssec |
KR101924026B1 (ko) * | 2017-11-10 | 2018-11-30 | 부산대학교 산학협력단 | 해시 기반 서명 기법을 적용한 블록체인 시스템 및 방법 |
CN111309523A (zh) * | 2020-02-16 | 2020-06-19 | 西安奥卡云数据科技有限公司 | 数据读写方法、数据远程复制方法及装置、分布式存储系统 |
CN111783148A (zh) * | 2020-06-30 | 2020-10-16 | 中国工商银行股份有限公司 | 一种支持公正的轻量级多副本数据云审计方法及装置 |
CN111835526A (zh) * | 2020-06-30 | 2020-10-27 | 北京泰尔英福网络科技有限责任公司 | 一种生成匿名凭证的方法及系统 |
Non-Patent Citations (2)
Title |
---|
QIAN WANG ET AL: "Enabling Public Auditability and Data Dynamics for Storage Security in Cloud Computing", 《IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS》 * |
缪俊敏等: "面向公有云的数据完整性公开审计方案", 《计算机应用》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114153658A (zh) * | 2021-11-22 | 2022-03-08 | 成都飞机工业(集团)有限责任公司 | 工业设备的数据存储方法、装置、终端设备以及存储介质 |
CN115086067A (zh) * | 2022-07-19 | 2022-09-20 | 江西农业大学 | 一种数据处理方法、网关、传感器及系统 |
CN115086067B (zh) * | 2022-07-19 | 2022-11-15 | 江西农业大学 | 一种数据处理方法、网关、传感器及系统 |
CN115439118A (zh) * | 2022-08-02 | 2022-12-06 | 上海网商电子商务有限公司 | 一种基于区块链的数字存证管理方法 |
CN115439118B (zh) * | 2022-08-02 | 2023-11-21 | 上海网商电子商务有限公司 | 一种基于区块链的数字存证管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113055431B (zh) | 2022-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113055431B (zh) | 一种基于区块链的工业大数据文件高效上链方法及装置 | |
JP7208989B2 (ja) | ブロックチェーン上に検証鍵を記録するためのシステム | |
Xie et al. | zkbridge: Trustless cross-chain bridges made practical | |
CN116561789B (zh) | 隐私数据的处理方法、装置、电子设备及可读存储介质 | |
TW201928755A (zh) | 用以安全分享密碼材料之系統及方法 | |
Frederiksen et al. | Fast and maliciously secure two-party computation using the GPU | |
US20190305968A1 (en) | Human-solved puzzles as proof-of-work for blockchain | |
CN111008863A (zh) | 一种基于区块链的抽奖方法及系统 | |
US20210409188A1 (en) | Countermeasures for side-channel attacks on protected sign and key exchange operations | |
CN113489671A (zh) | 一种跨联盟链通讯方法、装置、计算机设备及存储介质 | |
JP7312293B2 (ja) | デジタル署名方法、署名情報の検証方法、関連装置及び電子機器 | |
CN111064583A (zh) | 一种门限sm2数字签名方法、装置、电子设备及存储介质 | |
CN115840787B (zh) | 基于区块链的供应链数据共享方法、装置、设备及介质 | |
CN111523889B (zh) | 多重签名实现方法、装置、设备和存储介质 | |
CN112152784A (zh) | 用于基于散列的签名算法的并行处理技术 | |
CN111385096B (zh) | 一种区块链网络系统、签名处理方法、终端及存储介质 | |
CN111259370A (zh) | 一种fpga程序安全验证方法、系统、终端及存储介质 | |
CN110515591B (zh) | 基于区块链的随机数生成方法及装置 | |
CN111859424A (zh) | 物理管理平台的数据加密方法、系统、终端及存储介质 | |
CN104298897A (zh) | 基于混沌技术的嵌入式版权认证方法及专用处理器 | |
CN110100409B (zh) | 产生安全散列值的方法和设备 | |
KR102019558B1 (ko) | 내재적 인증서를 사용하는 전자서명에 대한 효율적인 서명 검증 방법 | |
CN114026586A (zh) | 用于授予对加密资产的访问权的零知识或有支付协议 | |
US20190319805A1 (en) | Digital signature verification engine for reconfigurable circuit devices | |
CN112887097A (zh) | 基于sm2椭圆曲线的签名方法、相关装置、及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |