CN116962058A - 应用于实时存储数据的区块链生成方法、系统及存储介质 - Google Patents
应用于实时存储数据的区块链生成方法、系统及存储介质 Download PDFInfo
- Publication number
- CN116962058A CN116962058A CN202310955996.0A CN202310955996A CN116962058A CN 116962058 A CN116962058 A CN 116962058A CN 202310955996 A CN202310955996 A CN 202310955996A CN 116962058 A CN116962058 A CN 116962058A
- Authority
- CN
- China
- Prior art keywords
- block
- proving
- nth
- hash
- information
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000013500 data storage Methods 0.000 claims abstract description 34
- 238000004364 calculation method Methods 0.000 claims abstract description 24
- 230000008569 process Effects 0.000 claims abstract description 24
- 230000010365 information processing Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 42
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 125000006850 spacer group Chemical group 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- 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/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- 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/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1065—Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT]
-
- 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
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- 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/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/34—Encoding or coding, e.g. Huffman coding or error correction
-
- 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
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Power Engineering (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了应用于实时数据存储的区块链生成方法、装置及存储介质,涉及信息处理领域,其技术方案要点是:建立区块链的第N区块,其中第N区块包含区块头、数据区和区块尾,写入区块头信息至区块头中,生成区块尾信息,区块尾信息包含一个随机数;将哈希摘要值、随机数作为参数导入工作量证明函数中进行工作量证明的计算,计算第N区块的证明结果值;在证明时间内重复执行证明结果值的计算,获得多个证明结果值;将多个证明结果值中最小证明结果值对应的随机数,写入第一区块的区块尾信息中,完成第N区块的生成,在第N区块的基础上,按照上述相同方式建立第N+1区块。本发明允许在新区块产生过程中导入当前实时数据,做到实时数据的即写即用。
Description
技术领域
本发明涉及信息处理领域,更具体地说,它涉及应用于实时存储数据的区块链生成方法、系统及存储介质。
背景技术
区块链可视为一种特殊的分布式数据库,由于引入了共识算法机制与区块链网络节点间的竞争行为,区块链具有使数据一旦上链便极难篡改的特点。
传统区块链中,构建新区块需要首先确定新区块数据区的信息内容,随后在区块链网络中运行“工作量证明共识算法”,最终找到一组使得新区块哈希摘要值小于指定哈希摘要值的随机数,并将该随机数写入新区块中。由于以上特点,传统区块链通常需要数分钟的时间构建新区块。然而,当面对诸如电力测量数据、实时交易数据、高频传感数据等对象时,传统区块链作为数据库难以达到即写即用的性能,在新区块完成构建前,对象所产生的实时数据无法被写入区块链中。
发明内容
为解决现有技术的不足之处,本发明提供了一种应用于实时数据存储的区块链生成方法、装置及存储介质,本发明允许在新区块产生过程中导入当前实时数据,做到实时数据的即写即用。
本发明的上述技术目的是通过以下技术方案得以实现的:
本申请的第一方面,提供了一种应用于实时数据存储的区块链生成方法,方法包括:
建立区块链的第N区块,其中所述第N区块包含区块头、数据区和区块尾,写入区块头信息至区块头中,当第N区块是区块链的第一区块时,所述区块头信息包含一个初始哈希摘要值,当第N区块不是区块链的第一区块时,所述区块头信息包含第N-1区块内容信息的哈希摘要值;导入需要存储的数据至所述数据区;生成区块尾信息,所述区块尾信息包含一个随机数;
将所述哈希摘要值、随机数作为参数导入工作量证明函数中进行工作量证明的计算,计算第N区块的证明结果值;
在证明时间内重复将所述哈希摘要值、不同随机数导入工作量证明函数中进行工作量证明的计算,获得第N区块的多个证明结果值;
将所述多个证明结果值中最小证明结果值对应的随机数,写入所述第N区块的区块尾信息中,完成第N区块的生成,在第N区块的基础上,建立区块链的第N+1区块,所述第N区块内容信息的哈希摘要值将被写入所述第N+1区块的区块头中;
将区块从小到大依次连接形成用于实时数据存储的区块链。
在一种实现方案中,第N-1区块内容信息的哈希摘要值的获得,包括:
基于哈希函数对第N-1区块内容信息的编码进行哈希运算,得到第N-1区块内容信息的哈希摘要值;
或者,将第N-1区块的数据区的数据按照哈希树的节点进行组织,将哈希树的根信息导入区块头中,将第N-1区块的区块头、区块尾的内容信息按照编码格式进行编码,并通过哈希函数的运算,获得表征第N-1区块内容信息的哈希摘要值。
在一种实现方案中,所述数据区的长度为定长或变长的任意一种,若数据区的长度为变长,则采用标识符对区块头、数据区和区块尾进行区分。
在一种实现方案中,所述工作量证明函数为哈希函数。
在一种实现方案中,证明时间的确定,具体为:所述第N区块的证明时间等于第N区块证明结束时间点减去第N区块证明开始时间点,其中第N区块证明开始时间点为开始建立第N区块的时间点,第N区块证明结束时间点是以定时器按固定周期发出的证明结束信号确定的,或者是以区块链收到证明过程结束信号确定的。
在一种实现方案中,所述第N区块每次执行证明结果值的计算所采用的随机数不同。
本申请的第二方面,提供了一种应用于实时数据存储的区块链生成装置,装置包括:
区块建立模块,用于建立区块链的第N区块,其中所述第N区块包含区块头、数据区和区块尾,写入区块头信息至区块头中,当第N区块是区块链的第一区块时,所述区块头信息包含一个初始哈希摘要值,当第N区块不是区块链的第一区块时,所述区块头信息包含第N-1区块内容信息的哈希摘要值;导入需要存储的数据至所述数据区;生成区块尾信息,所述区块尾信息包含一个随机数;
难度计算模块,用于将所述哈希摘要值、随机数作为参数导入工作量证明函数中进行工作量证明的计算,计算第N区块的证明结果值;
重复计算模块,用于在证明时间内重复执行证明结果值的计算,获得第N区块的多个证明结果值;
写入模块,用于将所述多个证明结果值中最小证明结果值对应的随机数,写入所述第N区块的区块尾信息中,完成第N区块的生成,在第N区块的基础上,建立区块链的第N+1区块,所述第N区块内容信息的哈希摘要值将被写入所述第N+1区块的区块头中;
生成模块,用于将区块从小到大依次连接形成用于实时数据存储的区块链。
在一种实现方案中,区块建立模块,还用于基于哈希函数对第N-1区块内容信息的编码进行哈希运算,得到第N-1区块内容信息的哈希摘要值;
或者,将第N-1区块的数据区的数据按照哈希树的节点进行组织,将哈希树的根信息导入区块头中,将第N-1区块的区块头、区块尾的内容信息按照编码格式进行编码,并通过哈希函数的运算,获得表征第N-1区块内容信息的哈希摘要值。
在一种实现方案中,重复计算模块,具体还用于所述第N区块的证明时间等于第N区块证明结束时间点减去第N区块证明开始时间点,其中第N区块证明开始时间点为开始建立第N区块的时间点,第N区块证明结束时间点是以定时器按固定周期发出的证明结束信号确定的,或者是以区块链收到证明过程结束信号确定的。
本申请的第三方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行本申请的第一方面所述的应用于实时数据存储的区块链生成方法。
与现有技术相比,本发明具有以下有益效果:
本发明提供了一种应用于实时数据存储的区块链生成方法,在新区块生成过程中,通过重复将前一区块的哈希摘要值与一个随机数导入工作量证明函数中进行工作量证明的计算,获得新区块的多个证明结果值。当定时器按固定周期发出的证明结束信号时,或区块链收到外界发送的证明过程结束信号时,将多个证明结果值中最小证明结果值对应的随机数,写入新区块的区块尾信息中,完成新区块的生成,本发明允许新区块生成速度由使用者自行决定,无须被动等待工作量证明算法满足某一特定的难度要求,能够实现实时数据的及时上链,本发明将区块链技术拓展至实时数据存储的场合,拓宽了区块链技术的应用领域。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1示出了本发明实施例提供的应用于实时数据存储的区块链生成方法的流程示意图;
图2示出了本发明实施例提供的生成新的区块的结构示意图;
图3示出了本发明实施例提供的用于实时数据存储的区块链结构示意图;
图4示出了本发明实施例提供的应用于实时数据存储的区块链生成装置的原理框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
需说明的是,可在本申请的各种实施例中使用的术语“包括”或“可包括”指示所申请的功能、操作或元件的存在,并且不限制一个或更多个功能、操作或元件的增加。此外,如在本申请的各种实施例中所使用,术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
需要理解的是,诸如术语“第一”、“第N”、第N+1”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第N”、第N+1”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
传统区块链中,构建新区块需要首先确定新区块数据区的信息内容,随后在区块链网络中运行“工作量证明共识算法”,最终找到一组使得新区块哈希摘要值小于指定哈希摘要值的随机数,并将该随机数写入新区块中。由于以上特点,传统区块链通常需要数分钟的时间构建新区块。然而,当面对诸如电力测量数据、实时交易数据、高频传感数据等对象时,传统区块链作为数据库难以达到即写即用的性能,在新区块完成构建前,对象所产生的实时数据无法被写入区块链中。
为解决现有技术的不足之处,本发明提供了一种应用于实时数据存储的区块链生成方法、装置及存储介质,本发明允许在新区块产生过程中导入当前实时数据,做到实时数据的即写即用。
下面将结合具体的实施例对本发明实施例提供的辨识方法进行详细说明,如图1所示,一种应用于实时数据存储的区块链生成方法,方法包括:
S101,建立区块链的第N区块,其中所述第N区块包含区块头、数据区和区块尾,写入区块头信息至区块头中,当第N区块是区块链的第一区块时,所述区块头信息包含一个初始哈希摘要值,当第N区块不是区块链的第一区块时,所述区块头信息包含第N-1区块内容信息的哈希摘要值;导入需要存储的数据至所述数据区;生成区块尾信息,所述区块尾信息包含一个随机数。
本实施例中,用于确定新区块的结构,包含区块头、数据区、区块尾三部分。填入区块头信息。即在区块头填入当前区块高度、编码规则等关于当前区块的各类信息,同时区块头须包含前一区块的哈希摘要值Hp。向数据区导入需要存储的数据。即将所需存储的数据按顺序填入区块的数据区中。生成区块尾信息,包含一个随机数Nr用于当前区块的工作量证明。
本实施例中,如果存在第N-1区块,则本区块的区块头须包含前一区块内容的哈希摘要值Hp。如果当前区块为第一区块,即初始区块,则将区块头哈希摘要值位置赋值为指定初始哈希摘要值H0,如0x0000 0000 0000 0000 0000 0000 0000 0000。区块头中可导入关于本区块的其他信息,如当前区块高度、区块生成时间、区块所采用算法标准等,具体信息应根据实际应用场合的特点确定,本实施例不做具体的限制。
S102,将所述哈希摘要值、随机数作为参数导入工作量证明函数中进行工作量证明的计算,计算第N区块的证明结果值。
本实施例中,所述工作量证明函数为哈希函数,即将当前区块的哈希摘要值Hp与Nr作为参数导入工作量证明函数fPoW计算当前区块的证明结果值。
S103,在证明时间内重复将所述哈希摘要值、不同随机数导入工作量证明函数中进行工作量证明的计算,获得第N区块的多个证明结果值。
本实施例中,迭代重复进行当前区块的工作量证明的计算。即在有限时间内重复工作量证明过程,获得该区块的多个证明结果值。
S104,将所述多个证明结果值中最小证明结果值对应的随机数,写入所述第N区块的区块尾信息中,完成第N区块的生成,在第N区块的基础上,建立区块链的第N+1区块,所述第N区块内容信息的哈希摘要值将被写入所述第N+1区块的区块头中。
本实施例中,证明结果值越小则证明当前区块证明结果值越高。在新区块生成过程中,生成新区块的设备不断尝试在新区块的区块尾填入不同随机数Nr来获得不同的结果值,其中最小的证明结果值HW将被写入该区块的区块尾。
完成新区块生成后,在当前区块基础上继续生成下一区块,当前区块的哈希摘要值将被写入下一区块的头部。
S105,将区块从小到大依次连接形成用于实时数据存储的区块链。
具体的,重复上述步骤S101-S104,将区块从小到大依次连接形成用于实时数据存储的区块链,区块与区块的连接形成区块链是本领域技术人员的公知技术,本实施例不做多余的解释。
综上所述,本实施例提供了一种应用于实时数据存储的区块链生成方法,在新区块生成过程中,通过不断重复尝试将前一区块的哈希摘要值与一个随机数导入工作量证明函数中进行工作量证明的计算,获得新区块的多个证明结果值。当定时器按固定周期发出的证明结束信号时,或区块链收到外界发送的证明过程结束信号时,将多个证明结果值中最小证明结果值对应的随机数,写入新区块的区块尾信息中,完成新区块的生成,本发明允许新区块生成速度由使用者自行决定,无须被动等待工作量证明算法满足某一特定的难度要求,能够实现实时数据的及时上链,本发明将区块链技术拓展至实时数据存储的场合,拓宽了区块链技术的应用领域。
依据上述步骤S101-105,本实施例提供了一种生成新的区块的结构示意图,如图2所示,包括如下步骤:
S110,新区块通过特殊标识符区分区块头。
S120,新区块通过特殊标识符区分数据区。
S130,新区块通过特殊标识符区分区块尾。
在图2所示中,区块头信息位于特殊标识符“区块头:”与“数据区:”之间,区块所存储数据位于特殊标识符“数据区:”与“区块尾:”之间,区块尾信息位于特殊标识符“区块尾:”之后。由于特殊标识对区块内不同区域进行了界定,不同区块的区块头、数据区、区块尾信息长度也可以不同。需要理解的是,也可将每个区块的区块头、数据区、区块尾信息长度设置为固定长度,此时无需通过特殊标识符进行区块内不同区域的界定。
S210,新区块的区块头包含区块高度信息。默认将初始区块的区块高度设为0,在此基础上每生成一个区块,新生成区块的区块高度等于前一区块的区块高度加一。
S220,新区块的区块头包含前一区块的哈希摘要值Hp。
将前一区块的所有内容信息作为参数,通过指定的哈希函数fh进行计算,即可得到前一区块的哈希摘要值Hp,这一数值被写入当前新区块的区块头中。
在一种实施方式中,哈希函数fh可为SHA-256算法。
S310,新区块的数据区按顺序存储了各类数据。
存储数据的顺序可以是数据生成的时间排序,也可以是按数据某一标签进行升序/降序排序后的顺序。
S320,数据区中不同数据通过数据分隔符进行区分。
数据分隔符可以是空格、逗号、分号等标点符号,也可以是特定文本形成的特殊标识符。
S410,新区块的区块尾中包含一组随机数Nr。
随机数Nr的长度不应过短,一种实施方式中,随机数Nr采用256位的随机数组。
S510,通过将Hp与Nr作为参数输入工作证明函数fPOW,可获得新区块的难度证明结果值HW。具体的,工作证明函数fPOW为单向函数,在一种实施方式中,工作证明函数fPOW采用SHA-256算法。
S520,新区块的难度证明结果值HW从大小上反映了当前区块的证明结果值。
在新区块的区块头写入上一区块的哈希摘要值Hp后,计算设备即刻开始高速生成随机数。对每一组生成的随机数Nr,将哈希摘要值Hp和随机数Nr后通过fPOW进行计算得到证明结果值HW。每一时刻,负责工作量证明的计算设备仅保存使得证明结果值HW值最小对应的随机数Nr。工作量证明过程一直持续到新区块数据区完成数据存储时,此时计算设备将当前保存的随机数Nr写入区块尾。
S710,将当前新生成的区块通过哈希函数fh计算得到当前区块的哈希摘要值。哈希函数fh为单向函数,一种实施方式中,哈希函数fh采用SHA-256算法。
S720,完成当前区块的哈希摘要值计算后,即刻开始下一区块的生成。
完成新区块生成后,在当前区块基础上继续生成下一区块,当前区块的哈希摘要值将作为Hp值被写入下一区块的区块头中。
在一个实施例中,所述区块头信息包含前一区块的哈希摘要值或第一区块所人为指定的初始哈希摘要值,具体为:所述区块若为区块链的第一区块,则第一区块的区块头包含一个人为指定的初始哈希摘要值;否则所述区块的区块头包含前一区块的哈希摘要值。
在一个实施例中,第N-1区块内容信息的哈希摘要值的获得,包括:基于哈希函数对第N-1区块内容信息的编码进行哈希运算,得到第N-1区块内容信息的哈希摘要值;或者,将第N-1区块的数据区的数据按照哈希树的节点进行组织,将哈希树的根信息导入区块头中,将第N-1区块的区块头、区块尾的内容信息按照编码格式进行编码,并通过哈希函数的运算,获得表征第N-1区块内容信息的哈希摘要值。
具体的,将前一区块的所有信息按照统一编码格式,通过指定的密码学哈希函数,得到前一区块内容的哈希摘要值Hp;或将每一区块的数据区数据按照Merkle树方式进行组织,并把Merkle树根信息导入区块头中,该情况下,只需将前一区块的区块头、区块尾按照统一编码格式通过指定的密码学哈希函数,即可得到前一区块内容的哈希摘要值Hp。
在一个实施例中,所述数据区的长度为定长或变长的任意一种,若数据区的长度为变长,则采用标识符对区块头、数据区和区块尾进行区分。
具体的,数据区可以是定长或变长的,当采用变长数据区时,需要采用特殊标识符实现数据区与区块头、区块尾的区分;数据区数据可按照Merkle树方式进行组织,此情况下建议将Merkle树根放置在区块头中,以简化区块哈希摘要值计算。
在一个实施例中,证明时间的确定,具体为:所述第N区块的证明时间等于第N区块证明结束时间点减去第N区块证明开始时间点,其中第N区块证明开始时间点为开始建立第N区块的时间点,第N区块证明结束时间点是以定时器按固定周期发出的证明结束信号确定的,或者是以区块链收到证明过程结束信号确定的。
工作量证明过程结束时,将多个证明结果值中最小证明结果值对应的随机数写入当前区块的区块尾信息;
工作量证明过程应在有限时间内结束;
将新区块中哈希摘要值Hp的生成时刻设为工作量证明过程的起始时刻,将当前区块数据区的数据写入完成时刻设为工作量证明过程的终止时刻。
在一个实施例中,所述第N区块每次执行证明结果值的计算所采用的随机数不同。
具体的,工作量证明过程中,不断采用新的随机数,计算表征当前区块的生成难度的证明结果值。
如图3所示,一种可应用于实时数据存储的区块链生成方法建立的区块链具有以下特征:
①,对于每一区块,区块头的区块高度为0,此后区块链每增加一个区块,该新增区块的区块头中区块高度在前一个区块高度基础上加1;即从初始区块往后数第N块区块的区块高度为N。
②,对于每一区块,区块头的前一区块Hash值Hp等于前一区块所有信息经密码学Hash函数计算后得到的结果;即第N块区块的哈希摘要值为第N-1块区块的所有内容经密码学Hash函数fh计算后的结果。
③,对于每一区块,数据区中所存储数据按照时序排列,各数据长度相等,带有时标,并通过间隔符进行区分;
④,对于第N块区块,区块尾中随机数Nr(N)具有足够的长度;在生成第N块区块的过程中,设备不断生成不同数值的Nr(N),并在第N块区块生成过程结束时采用使得工作量证明结果最小的Nr(N)作为最终写入区块尾的随机数值。
⑤,对于第N块区块,用于工作量证明的密码学哈希函数fPOW将串“Hp(N-1)+Nr(N)”作为输入,经计算得到该区块的证明结果值HW(N),其中“Hp(N-1)+Nr(N)”表示将Hp(N-1)的数值与Nr(N)的数值串接在一起。
⑥,指定证明结果值HW(N)越小当前区块的生成难度越高。
⑦,密码学哈希函数fh可接受任意长度的数值串作为输入,并经计算后生成固定长度的输出串;本实施例中,哈希函数fh将整个区块的内容作为输入,计算结果作为下一个区块区块头的哈希摘要值HP。
本发明还提供了一种应用于实时数据存储的区块链生成装置,该系统可用于执行本发明上述任一项实施例所述的应用于实时数据存储的区块链生成方法。
请参阅图4,图4示出了本发明实施例提供的一种应用于实时数据存储的区块链生成装置的原理框图,如图4所示,装置包括:
区块建立模块410,用于建立区块链的第N区块,其中所述第N区块包含区块头、数据区和区块尾,写入区块头信息至区块头中,当第N区块是区块链的第一区块时,所述区块头信息包含一个初始哈希摘要值,当第N区块不是区块链的第一区块时,所述区块头信息包含第N-1区块内容信息的哈希摘要值;导入需要存储的数据至所述数据区;生成区块尾信息,所述区块尾信息包含一个随机数;
难度计算模块420,用于将所述哈希摘要值、随机数作为参数导入工作量证明函数中进行工作量证明的计算,计算第N区块的证明结果值;
重复计算模块430,用于在证明时间内重复执行证明结果值的计算,获得第N区块的多个证明结果值;
写入模块440,用于将所述多个证明结果值中最小证明结果值对应的随机数,写入所述第N区块的区块尾信息中,完成第N区块的生成,在第N区块的基础上,建立区块链的第N+1区块,所述第N区块内容信息的哈希摘要值将被写入所述第N+1区块的区块头中。
生成模块450,用于将区块从小到大依次连接形成用于实时数据存储的区块链。
可选地,区块建立模块410,还用于基于哈希函数对第N-1区块内容信息的编码进行哈希运算,得到第N-1区块内容信息的哈希摘要值;或者,将第N-1区块的数据区的数据按照哈希树的节点进行组织,将哈希树的根信息导入区块头中,将第N-1区块的区块头、区块尾的内容信息按照编码格式进行编码,并通过哈希函数的运算,获得表征第N-1区块内容信息的哈希摘要值。
可选地,重复计算模块430,具体还用于所述第N区块的证明时间等于第N区块证明结束时间点减去第N区块证明开始时间点,其中第N区块证明开始时间点为开始建立第N区块的时间点,第N区块证明结束时间点是以定时器按固定周期发出的证明结束信号确定的,或者是以区块链收到证明过程结束信号确定的。
本申请实施例中的应用于实时数据存储的区块链生成装置,与上述图1所示的应用于实时数据存储的区块链生成方法是基于同一构思下的发明,通过上述对应用于实时数据存储的区块链生成方法的详细描述,本领域技术人员可以清楚的了解本实施例中的应用于实时数据存储的区块链生成装置的实施过程,所以为了说明书的简洁,在此不再赘述。
相应地,本实施例提供的应用于实时数据存储的区块链生成装置,在新区块生成过程中,通过重复将前一区块的哈希摘要值与一个随机数导入工作量证明函数中进行工作量证明的计算,获得新区块的多个证明结果值。当定时器按固定周期发出的证明结束信号时,或区块链收到外界发送的证明过程结束信号时,将多个证明结果值中最小证明结果值对应的随机数,写入新区块的区块尾信息中,完成新区块的生成,本发明允许新区块生成速度由使用者自行决定,无须被动等待工作量证明算法满足某一特定的难度要求,能够实现实时数据的及时上链,本发明将区块链技术拓展至实时数据存储的场合,拓宽了区块链技术的应用领域。
本发明再一个实施例中,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了终端的操作系统。并且,在该存储空间中还存放了适于被处理器加载并执行的一条或一条以上的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。可由处理器加载并执行计算机可读存储介质中存放的一条或一条以上指令,以实现上述实施例中有关应用于实时数据存储的区块链生成方法的相应步骤。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种应用于实时存储数据的区块链生成方法,其特征在于,方法包括:
建立区块链的第N区块,其中所述第N区块包含区块头、数据区和区块尾,写入区块头信息至区块头中,当第N区块是区块链的第一区块时,所述区块头信息包含一个初始哈希摘要值,当第N区块不是区块链的第一区块时,所述区块头信息包含第N-1区块内容信息的哈希摘要值;导入需要存储的数据至所述数据区;生成区块尾信息,所述区块尾信息包含一个随机数;
将所述哈希摘要值、随机数作为参数导入工作量证明函数中进行工作量证明的计算,计算第N区块的证明结果值;
在证明时间内重复将所述哈希摘要值、不同随机数导入工作量证明函数中进行工作量证明的计算,获得第N区块的多个证明结果值;
将所述多个证明结果值中最小证明结果值对应的随机数,写入所述第N区块的区块尾信息中,完成第N区块的生成,在第N区块的基础上,建立区块链的第N+1区块,所述第N区块内容信息的哈希摘要值将被写入所述第N+1区块的区块头中;
将区块从小到大依次连接形成用于实时数据存储的区块链。
2.根据权利要求1所述的应用于实时存储数据的区块链生成方法,其特征在于,第N-1区块内容信息的哈希摘要值的获得,包括:
基于哈希函数对第N-1区块内容信息的编码进行哈希运算,得到第N-1区块内容信息的哈希摘要值;
或者,将第N-1区块的数据区的数据按照哈希树的节点进行组织,将哈希树的根信息导入区块头中,将第N-1区块的区块头、区块尾的内容信息按照编码格式进行编码,并通过哈希函数的运算,获得表征第N-1区块内容信息的哈希摘要值。
3.根据权利要求1所述的应用于实时存储数据的区块链生成方法,其特征在于,所述数据区的长度为定长或变长的任意一种,若数据区的长度为变长,则采用标识符对区块头、数据区和区块尾进行区分。
4.根据权利要求1所述的应用于实时存储数据的区块链生成方法,其特征在于,所述工作量证明函数为哈希函数。
5.根据权利要求1所述的应用于实时存储数据的区块链生成方法,其特征在于,证明时间的确定,具体为:所述第N区块的证明时间等于第N区块证明结束时间点减去第N区块证明开始时间点,其中第N区块证明开始时间点为开始建立第N区块的时间点,第N区块证明结束时间点是以定时器按固定周期发出的证明结束信号确定的,或者是以区块链收到证明过程结束信号确定的。
6.根据权利要求1所述的应用于实时存储数据的区块链生成方法,其特征在于,所述第N区块每次执行证明结果值的计算所采用的随机数不同。
7.一种应用于实时数据存储的区块链生成装置,其特征在于,装置包括:
区块建立模块,用于建立区块链的第N区块,其中所述第N区块包含区块头、数据区和区块尾,写入区块头信息至区块头中,当第N区块是区块链的第一区块时,所述区块头信息包含一个初始哈希摘要值,当第N区块不是区块链的第一区块时,所述区块头信息包含第N-1区块内容信息的哈希摘要值;导入需要存储的数据至所述数据区;生成区块尾信息,所述区块尾信息包含一个随机数;
难度计算模块,用于将所述哈希摘要值、随机数作为参数导入工作量证明函数中进行工作量证明的计算,计算第N区块的证明结果值;
重复计算模块,用于在证明时间内重复执行证明结果值的计算,获得第N区块的多个证明结果值;
写入模块,用于将所述多个证明结果值中最小证明结果值对应的随机数,写入所述第N区块的区块尾信息中,完成第N区块的生成,在第N区块的基础上,建立区块链的第N+1区块,所述第N区块内容信息的哈希摘要值将被写入所述第N+1区块的区块头中;
生成模块,用于将区块从小到大依次连接形成用于实时数据存储的区块链。
8.根据权利要求7所述的应用于实时数据存储的区块链生成装置,其特征在于,区块建立模块,还用于基于哈希函数对第N-1区块内容信息的编码进行哈希运算,得到第N-1区块内容信息的哈希摘要值;
或者,将第N-1区块的数据区的数据按照哈希树的节点进行组织,将哈希树的根信息导入区块头中,将第N-1区块的区块头、区块尾的内容信息按照编码格式进行编码,并通过哈希函数的运算,获得表征第N-1区块内容信息的哈希摘要值。
9.根据权利要求7所述的应用于实时数据存储的区块链生成装置,其特征在于,重复计算模块,具体还用于所述第N区块的证明时间等于第N区块证明结束时间点减去第N区块证明开始时间点,其中第N区块证明开始时间点为开始建立第N区块的时间点,第N区块证明结束时间点是以定时器按固定周期发出的证明结束信号确定的,或者是以区块链收到证明过程结束信号确定的。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,其特征在于,所述计算机指令用于使计算机执行权利要求1至6任意一项所述的应用于实时数据存储的区块链生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310955996.0A CN116962058A (zh) | 2023-07-31 | 2023-07-31 | 应用于实时存储数据的区块链生成方法、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310955996.0A CN116962058A (zh) | 2023-07-31 | 2023-07-31 | 应用于实时存储数据的区块链生成方法、系统及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116962058A true CN116962058A (zh) | 2023-10-27 |
Family
ID=88448982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310955996.0A Pending CN116962058A (zh) | 2023-07-31 | 2023-07-31 | 应用于实时存储数据的区块链生成方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116962058A (zh) |
-
2023
- 2023-07-31 CN CN202310955996.0A patent/CN116962058A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110602148B (zh) | 一种区块的状态树的生成和链上数据验证的方法及装置 | |
EP3678346B1 (en) | Blockchain smart contract verification method and apparatus, and storage medium | |
US10601598B2 (en) | System and method for storing the location on a blockchain of a hash of a digital item within said digital item | |
TWI482083B (zh) | 二階段式正規表示式比對處理方法及系統 | |
US20110246779A1 (en) | Zero-knowledge proof system, zero-knowledge proof device, zero-knowledge verification device, zero-knowledge proof method and program therefor | |
CN109815226B (zh) | 基于区块链的数据存储方法、装置、设备和存储介质 | |
US20160314469A1 (en) | Method for generating off-line authentication credentials by intelligent card | |
CN104965999B (zh) | 一种中短基因片段测序的分析拼接方法及设备 | |
US8947272B2 (en) | Decoding encoded data | |
CN113238912A (zh) | 一种网络安全日志数据的聚合处理方法 | |
CN112784112A (zh) | 报文校验方法及装置 | |
CN111723360B (zh) | 凭证码处理方法、装置及存储介质 | |
CN112559482B (zh) | 一种基于分布式的二进制数据分类处理方法和系统 | |
CN116962058A (zh) | 应用于实时存储数据的区块链生成方法、系统及存储介质 | |
US9197243B2 (en) | Compression ratio for a compression engine | |
CN111507430A (zh) | 基于矩阵乘法的特征编码方法、装置、设备及介质 | |
CN106293862B (zh) | 一种可扩展标记语言xml数据的解析方法和装置 | |
CN108073709B (zh) | 一种数据记录的操作方法、装置、设备和存储介质 | |
CN113420091A (zh) | 基于区块链的用户行为采集方法及装置 | |
CN110888883A (zh) | 数据存储方法、装置、系统和存储介质 | |
CN113282776B (zh) | 用于图形引擎资源文件压缩的数据处理系统 | |
CN116633534A (zh) | 密钥分量校验方法及装置 | |
CN116243887B (zh) | 软件随机数生成方法及装置 | |
CN113890741B (zh) | 消息填充方法、芯片、装置、电子设备和存储介质 | |
CN116707714B (zh) | 支付信息传输方法、装置、计算机设备和存储介质 |
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 |