CN114915404A - 一种面向物联网的区块链数据存储扩展模型构建方法 - Google Patents

一种面向物联网的区块链数据存储扩展模型构建方法 Download PDF

Info

Publication number
CN114915404A
CN114915404A CN202210524126.3A CN202210524126A CN114915404A CN 114915404 A CN114915404 A CN 114915404A CN 202210524126 A CN202210524126 A CN 202210524126A CN 114915404 A CN114915404 A CN 114915404A
Authority
CN
China
Prior art keywords
transaction
storage
node
data
block chain
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
Application number
CN202210524126.3A
Other languages
English (en)
Inventor
龙元臻泰
陆月明
郭子裕
王东滨
韩道岐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Posts and Telecommunications
Original Assignee
Beijing University of Posts and Telecommunications
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing University of Posts and Telecommunications filed Critical Beijing University of Posts and Telecommunications
Priority to CN202210524126.3A priority Critical patent/CN114915404A/zh
Publication of CN114915404A publication Critical patent/CN114915404A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种面向物联网的区块链数据存储扩展模型构建方法,属于区块链技术领域。本发明方法包括:构建区块链存储分层模型,在物联网边缘节点部署轻量节点,对交易请求进行验证,缓存交易请求,完成区块交易顺序共识,对交易执行结果进行验证,为物联网中边缘设备提供低延迟的区块链上链服务;选择物联网中存储和计算资源充沛的节点担任存储节点,负责交易执行和存储区块链账本;构建P2P分布式数据存储系统卸载区块链历史数据。本发明有效解决了物联网场景中区块链历史账本不可删除和不断增长的数据存储负载之间矛盾,有效解决面向物联网环境中区块链存储不断增长带来的负载压力,提升了区块链存储扩展性和新节点扩展的效率。

Description

一种面向物联网的区块链数据存储扩展模型构建方法
技术领域
本发明属于区块链技术领域,涉及一种面向物联网(Internet of Things,简称IoT)的区块链数据存储扩展模型构建方法。
背景技术
近年来,随着信息化基础设施的快速建设与物联网设备的蓬勃发展极大扩展了物联网的服务范畴。许多学者将区块链技术引入到物联网中,用于解决物联网中设备集中化管理、物联网数据共享、数据安全、访问控制、设备接入等问题。但是传统的区块链模型主要针对加密货币或者互联网应用场景,而物联网中设备数量大、异构性强、计算和存储等资源有限,一些区块链需要一定的算力支持交易共识和加密计算,物联网下的数据将远远大于现有互联网数据体量,对于区块链的上链效率和吞吐量都提出更高的要求。
传统的区块链模型为了保证不可篡改性,不支持删除历史数据。随着数据量的上升,区块数据存储负载将成为系统的瓶颈。将面临的挑战包括了:①当新节点加入到区块链网络中需要下载大量的数据,以保持和区块链的数据同步,不利于新节点的扩展;②数据量的增加将会提升区块链节点的负担,存储空间有限的节点将会退出区块链网络,从而破坏了区块链的去中心化特性;③区块链中的每个节点都参与计算和存储,导致了数据冗余和资源浪费。
物联网与区块链技术融合中,若是将区块链部署在远离物联网的云端上,物联网应用只是作为区块链的客户端,并不参与区块链事务,区块链的运作不受物联网设备控制,将导致物联网和区块链之间存在信任隔阂,访问区块链接口存在较大的时延。因此,当前区块链技术无法与物联网场景进行高效融合,面向物联网环境中时存在区块链存储负载压力大、节点接入效率低、存储扩展性差等问题。
发明内容
针对当前区块链技术无法与物联网场景进行高效融合,为了帮助区块链技术在物联网环境成功落地,本发明提出了一种面向物联网的区块链存储扩展模型构建方法,通过解耦区块链中共识和数据存储提升区块链的扩展性,使得各个模块独立优化。对边缘节点上的历史账本数据进行存储卸载,基于向量承诺树保证存储数据完整性,同时向量承诺还可压缩验证信息,使得边缘节点只需要存储定量的证明信息,就能实现与保持完整账本数据相同的效果,从而有效解决区块链技术于物联网深度融合过程中边缘节点存储压力大、节点接入效率低、存储扩展性差等问题。
本发明提出的一种面向物联网的区块链数据存储扩展模型构建方法,包括如下步骤:
(1)建立区块链存储分层模型,包括轻量层和存储层;轻量节点负责收集交易数据,对交易进行共识,对执行结果进行验证;存储节点负责交易历史数据和状态数据的存储;
(2)构建轻量节点。依据物联网的网络结构,将属于同一地理范围的网络分区中的本地节点组成一个一主多从的簇,主节点作为轻量节点。所述轻量节点实现如下:
(2.1)轻量节点收集所在网络分区的物联网设备发出的交易请求,验证发送者的身份是否合法,检查交易请求中地址是否合法,检查交易是否存在重播行为,防止造成资源浪费和遭受恶意攻击。轻量节点检查通过的交易请求会被加入到轻量节点的交易池中进行缓存,方便后续快速提取交易和及时响应客户端请求。
(2.2)轻量节点进行交易共识。若轻量节点的交易池中交易请求量达到共识协议的最大时延或者区块最大交易量上限,轻量节点从本地交易池中提取交易ID,根据ID和共识协议对区块中交易请求按照时间顺序排序打包成共识请求列表,广播给其他轻量节点。轻量节点将共识一致的交易打包生成模拟执行区块,通过异步网络将区块发送给存储节点。
(3)构建存储节点。预先通过配置文件设定物联网中作为存储节点的物理节点。所述存储节点实现如下:
(3.1)存储节点执行交易。存储节点接收到区块后,验证轻量节点身份以及区块中交易请求的数字签名,验证通过后调用智能合约执行交易,智能合约的输入是状态数据读集合和交易请求txi,输出是状态数据写集合和状态码;读集合{stateread}记录交易txi中已提交的状态键值,写集合{statewrite}记录交易txi更新的状态键值;状态码记录交易执行结果的状态;
(3.2)存储节点对执行区块中的有序交易,依次以q个交易一组,分组计算向量承诺值,构建向量承诺树;q为正整数;对交易txi,存储节点分别使用{statewrite}和{stateread}中的状态键值计算向量承诺值,得到证明信息φwrite和φread
(3.3)存储节点使用私钥对〈φread,Coldwrite〉进行签名生成证明φsig,向轻量节点返回执行结果resultexec=<txi,{stateread},{statewrite},φsig>;其中Cold表示在交易txi执行之前的向量承诺树的根值;
区块经轻量节点验证通过后,存储节点再根据{statewrite}更新对应账号下的状态数据,将更新的状态数据以及状态码上传到区块链中存储。
(4)轻量节点对执行结果进行验证,包括:
在存储节点执行完以后,对交易生成验证数据信息,和交易的读写集一起作为执行结果广播给轻量节点;轻量节点保存最近K个区块中最新状态数据及其向量承诺树,对存储节点发来的执行结果,基于本地保存的向量承诺树,验证交易的读集合中的旧数据,基于写集合重新执行交易生成新的向量承诺值,验证交易的写集合和来自存储节点的验证信息的正确性。最后当验证通过时,轻量节点将更新本地的向量承诺树,缓存最新的区块链状态数据。
(5)存储节点通过P2P分布式数据存储系统对区块链数据卸载备份。
区块链交易执行过程中依赖于最新状态数据,存储节点对于区块链的历史数据包括历史账本和数据的修改记录,进行分片切割,对区块链数据分片进行对称加密,将加密以后的数据存储到分布式部署的P2P存储系统中,并对各个分片的数据建立路由表,方便下载数据。
本发明方法构建了一种安全、可扩展的区块链存储模型,通过建立轻量层和存储层,轻量节点负责对接物联网中终端设备,存储节点负责区块链数据分布式存储,解耦了传统区块链模型中共识和数据存储、验证等过程,有效解决了物联网和区块链技术结合过程中,存在的数据存储压力大、节点扩展难等问题。相较现有的面向物联网的区块链模型,本发明方法的优点与积极效果在于:
(1)本发明方法实现了轻量、安全的可扩展的模型,通过解耦区块链中共识和数据存储,使得各个模块独立优化,轻量节点资源要求低,有利于区块链技术在物联网环境的水平扩展和边缘设备的融合;本发明方法为物联网和区块链技术的深度融合提供了高效、可行的部署方式。
(2)本发明方法中所构建的轻量节点部署在物联网中边缘节点,为物联网中边缘设备提供低延迟的区块链上链服务,对交易请求进行验证,缓存交易请求,完成区块交易顺序共识,对交易执行结果进行验证,降低了访问区块链接口的延迟,增强了物联网上链数据的可信度。
(3)本发明方法选择物联网中存储和计算资源充沛的节点担任存储节点,负责交易的执行和完整的区块链账本存储,为物联网提供历史数据的溯源服务,与轻量节点结合,保证区块链的安全性,同时对区块链节点存储轻量化设计,减少新加入节点的数据下载量,有利于提升区块链在物联网中的扩展效率。
(4)本发明方法构建了基于向量承诺树的数据完整性验证方案,轻量节点基于向量承诺树实现对存储节点交易执行结果的验证,向量承诺可压缩验证信息大小,降低节点之间传输验证信息的所占带宽,同时又可保证数据完整性;本发明方法基于向量承诺技术在保证区块链基本特性的前提下,实现区块链历史数据的分布式存储,减少传统区块链设计中所有节点都存储完整账本带来的计算和存储资源的浪费。
(5)本发明方法还构建P2P分布式数据存储系统,进一步减轻存储节点的存储负载和数据冗余度,通过对称加密技术和数据分片存储,同时构建了区块和交易存储位置的访问映射表,保证了数据存储的安全性、可扩展性、高效性。
(6)本发明方法有效解决了物联网场景中区块链历史账本不可删除和不断增长的数据存储负载之间矛盾,有效解决面向物联网环境中区块链存储不断增长带来的负载压力,提升了区块链存储扩展性和新节点扩展的效率。
附图说明
图1是本发明面向物联网的区块链存储扩展模型构建的流程示意图;
图2是本发明的面向物联网的区块链存储扩展模型的整体示意图;
图3是本发明分层存储扩展模型的执行流程示意图;
图4是本发明建立的向量承诺树的结构示意图;
图5是本发明区块链交易验证过程示例图;
图6是本发明向量承诺树节点更新流程图;
图7是本发明存储节点数据卸载流程图。
具体实施方式
下面将结合附图和实施例对本发明作进一步的详细说明。
图1阐述了构建本发明的存储扩展模型的5个关键步骤。步骤1,在物联网场景中构建区块链数据存储分层扩展模型,它涉及物联网设备、轻量节点、存储节点、分布式存储系统等四类主要角色,包括了访问控制、交易共识、执行引擎、数据存储、交易验证等区块链组件,通过这些组件协同处理来自物联网设备的交易请求,实现物联网数据存证上链和区块链数据存储分层扩展;步骤2,轻量节点收集交易,它收集来自本传感器网络区域内的物联网设备的交易请求,对设备连接进行访问控制,对交易请求进行验证,为本区域内物联网设备提供区块链服务;步骤3,区块链模型共识生成新区块,轻量节点将区块数据广播给存储节点,由存储节点负责完整区块交易执行;步骤4,轻量节点通过剪枝算法和向量承诺技术构建数据完整性验证算法,存储节点向轻量节点发送代表交易执行结果的读写集和验证信息,轻量节点根据本地的存储的向量承诺树和状态信息验证交易的执行结果,保证交易被正确执行;步骤5,存储节点通过数据卸载技术和P2P分布式存储系统,将区块链中历史数据加密分片,通过群加密技术将区块链数据分散存储到P2P存储系统,进一步降低存储节点的存储负担,减少存储节点上的数据冗余备份。下面结合图2至图6详细说明本发明的模型构建方法的各步骤。
步骤1:建立区块链数据存储扩展模型,整体如图2和图3所示。
本发明建立了一种新的面向物联网的区块链存储扩展模型,在保证区块交易安全可验证的前提下,对区块链的账本数据进行重新编码、将区块链中交易状态数据存储、交易执行与验证过程进行解耦。整个模型中划分为两层,如图2和图3所示,分为轻量层和存储层。轻量层节点,简称轻量节点,主要负责收集交易数据,对交易进行共识,对执行结果进行验证。存储层节点,简称存储节点,主要负责交易历史数据、状态数据存储。存储节点又可通过数据卸载技术将区块链数据加密存储到分布式存储系统。具体构建区块链存储分层模型包括如下步骤101~104。
步骤101:构建安全认证机制。
物联网设备要想接入到区块链系统中,需要向区块链注册账户,获得数据上链的权限。再由系统管理员授权,认证中心颁发数字证书。认证中心会向客户端派发证书、公钥pk和私钥prvk,由公钥计算产生身份id(pk)。设备通过对交易请求签名来生成交易的提案,未经授权的请求会被区块链拒接。授权访问控制机制,可以防范区块链接入接口遭受恶意攻击、防止区块链计算、存储资源的浪费,增强区块链健壮性。
步骤102:构建区块链轻量节点。
轻量节点主要负责区块链交易执行结果的验证,收集来自物联网设备的交易,打包生成新区块,对区块内的交易进行排序共识。根据物联网中数据时序特点,物联网中最重要的是最近的数据,轻量节点中仅维护最近K个区块和相关的区块数据、用于验证数据完整性的向量承诺树。共识节点的轻量部署方式,为物联网终端设备低时延区块链服务,同时在边缘终端完成部分的区块链数据处理,实现了区块链技术和物联网的深度融合和上链数据的真实可信。K为正整数。
步骤103:构建区块链数据存储节点。
存储节点负责交易的模拟执行、维护交易产生的状态数据、索引数据,支持的交易历史数据查询和区块数据下载功能。选择物联网中存储和算力比较充裕的节点担任区块链的存储节点,同时为了防止破坏区块链的去中心化特性,将区块链的交易共识和存储进行分离,由轻量节点负责交易共识、交易执行结果验证。该策略既保证了区块链的基本特性的同时,也实现了区块链数据存储的扩展,同时还有有利于物联网环境中扩展新的轻量节点,增强区块链的扩展性和安全性。
步骤104:构建P2P分布式数据存储系统。
P2P分布式数据存储系统负责存储加密分片以后的区块链历史数据,通过分布式存储技术和分片加密进一步提升存储节点的存储扩展性,降低物联网中存储节点的存储压力。存储节点通过对区块链的历史数据进行分片切割,和对称加密技术,定时将本地中历史数据卸载到远端的P2P分布式存储系统中,并为分片建立从数据分片到存储节点的映射表。在保证区块链数据加密安全的前提下,分片降低区块链数据冗余存储度。
步骤2:物联网数据上链存储,包括如下步骤201~206,如图3所示。
步骤201:依据物联网的网络结构特点,以一定地理范围的节点建立的物联网传感网络划分为一个网络分区Region,分区内若干个本地节点组成一个一主多从的簇,其中的主节点成为区块链轻量节点,称为簇头节点。簇头节点主要负责处理本Region范围内的交易。
步骤202:IoT设备通过SDK(软件开发工具包)接口发送交易请求<txinput,sigtx>到本地的轻量区块链节点。其中,txinput表示交易请求,sigtx表示数字签名,交易请求txinput中包含了IoT设备要访问的账户地址、交易序列号、账户状态数据。
步骤203:轻量节点验证发送者的身份是否合法、交易地址是否合法,检查交易请求中序列号是否存在重播行为,防止造成资源浪费和遭受恶意攻击。
步骤204:验证通过的交易请求会被加入到轻量节点的交易缓存池中,方便后续快速提取交易和及时响应客户端请求。本发明实施例,当交易请求的数量达到了PBFT共识协议的最大出块上限时,由轻量节点从交易池中提取交易ID,以时间顺序打包成共识请求列表,将其广播给网络中的其他轻量节点。
步骤205:其他轻量节点收到共识请求以后,先验证请求者的身份证书是否合法,验证共识请求中交易序列号、创建时间戳是否在有效期范围内。验证成功以后,将给发出共识请求的轻量节点发送共识成功消息,并在响应消息中附上自己的签名。
步骤206:轻量节点将共识一致的交易请求打包成模拟执行区块,并批量转发给存储节点,由存储节点执行区块链中交易,并更新交易对应的状态数据。
步骤3:存储节点执行交易,包括如下步骤301~304。
本发明优先选择存储资源较充沛的物联网节点作为存储节点,通过预先设置配置文件,来设定物联网中哪些物理节点担任存储节点的角色。
步骤301:存储节点验证模拟执行区块中的交易请求的数字签名,在验证轻量节点身份的真实性后,存储节点调用本地的智能合约,合约驱动存储节点的执行引擎执行交易。
步骤302:执行合约的输入为状态数据读集合{stateread}和交易请求txi,输出为写集合{statewrite}和状态码。其中,{stateread}读取交易请求中依赖的状态数据键值,{statewrite}为交易更新的状态数据键值。状态码记录了交易执行结果的状态,包括:失败、更新、删除和新增。状态码也被记录到区块链账本中,标识了当前交易更新数据的方式。针对交易中的删除操作,将对应的状态数据标记为删除delete状态,若状态数据有多次更新,则以最后的状态为准。
交易tx的执行过程中生成读写集{stateread}和{statewrite},读数据用下标read表示,修改数据用下标write表示。区块将若干交易tx组装生成区块。对每个区块将计算一棵以交易为叶子的向量承诺树。使用状态树为区块链账户下的状态数据建立数据索引,本发明中的状态树为一棵向量承诺树,结构和区块的向量承诺树一样。
步骤303:存储节点针对所执行的区块建立向量承诺树。
轻量节点并不能够完全信任存储节点,为了保证存储数据完整性。轻量节点作为验证者,存储节点对应了证明者,验证者负责验证证明者的某条数据是否与自己的保持一致,本发明中使用向量承诺值,作为证据。存储节点提供证词,轻量节点利用这些信息重新计算检查是否与自己的证据一致。证词如下resultexec表示:
resultexec=<txi,{stateread},{statewrite},φsig>
其中,{stateread},{statewrite}分别为交易txi的状态数据读集合和写集合,φsig表示存储节点对于交易txi的证明。证据的获取根据向量承诺树得到。
本发明向量承诺计算中所涉及到的参数含义如表1所述。
表1参数含义说明
参数 描述
k 安全参数
pp 公共参数
C 向量承诺值
aux 辅助信息
q 向量(m<sub>1</sub>,…,m<sub>q</sub>)的大小
m<sub>i</sub> 向量承诺计算参数(m<sub>1</sub>,…,m<sub>q</sub>)的第i个值
C<sub>old</sub> 旧的向量承诺值
λ<sub>i</sub> m<sub>i</sub>的证明值
C′ 新的向量承诺值
U 更新信息
λ′<sub>j</sub> 消息m<sub>j</sub>位置对应的更新证明值
首先,生成计算向量承诺值的公共参数pp←VC.KenGen(1k,q),其中←为赋值符号,1k表示k个0,1字符串序列,安全参数k为随机指定的值,VC.KenGen为向量承诺的原语,此处表示计算公共参数的过程。具体公共参数的计算方式如下:
Figure BDA0003643339120000071
Figure BDA0003643339120000072
是两个乘法循环群,它们的阶都为素数p。此外满足双线性映射e:
Figure BDA0003643339120000073
Figure BDA0003643339120000074
定义
Figure BDA0003643339120000075
一个随机生成器,从整数循环群
Figure BDA0003643339120000076
上随机取数值z1,z2,…,zq,计算中间参数
Figure BDA0003643339120000077
其中i=1,2,…,q。同时设置中间参数
Figure BDA0003643339120000078
其中i,j=1,2,…,q,i≠j。则生成公共参数集合pp={g,{hi}i∈[1,q],{hi,j}i,j∈[1,q],i≠j}。
其次,对执行区块中的有序交易以递归方式构建向量承诺树。
向量承诺树中,父节点是其子节点的向量承诺值,在叶子节点上输入一个交易计算承诺值
Figure BDA0003643339120000079
计算向量承诺树第ni层中分支编号为i的节点
Figure BDA00036433391200000710
的值。使用哈希来计算交易tx1的摘要值m1,即m1=hash(tx1)。aux为额外的辅助信息。
Figure BDA00036433391200000711
是根据计算原语Compp计算得到,可表示为:(C,aux)←VC.Compp(m1,…,mq)。VC.Compp即计算原语Compp,表示相应的计算过程,对应的具体计算过程表示如下:
Figure BDA00036433391200000712
其中C为向量承诺值。
如图4所示,为建立的一棵向量承诺树,每个叶子节点对应一个交易,叶子节点存储的是状态数据;区块中将q个交易一组计算生成一个向量承诺值C;对每个交易计算摘要,q个交易的摘要表示为m1,m2…,mq;q同时也是树的分支数。图中prefix表示key的前缀索引,树的每个分支表示不同的key前缀,从向量承诺树的根出发通过key的前缀索引可以定位到交易请求tx。一般key可以使用哈希函数计算得到。
图4中,父节点将子节点值作为输入计算Compp(m1,…,mq),产生向量承诺值,图中的Ci,j表示向量承诺树中位于第i层分支编号为j的节点。
在验证过程中,如验证交易txn,存储节点将它的向量承诺值φ发送给轻量节点。φ是一个路径上的所有承诺值,如图4中为(C0,1,Ci,q,Cn-1,q),轻量节点根据向量承诺值对数据验证。若交易涉及到修改状态值,将会更新向量承诺值,因此会有更新承诺值和更新证明的操作。
步骤304:存储节点使用{statewrite}和{stateread}中状态数据键值计算向量承诺值C,这些短的向量承诺值C取代原来默克尔树节点中的哈希值。
计算{stateread}中的承诺值Cread为:调用生成证明函数计算pp←VC.KeyGen(1k,q),(Cread,aux)←VC.Compp({stateread}),下标read表示输入值类型;得到证明φread={Cread},φread表示树叶子节点(交易)到根节点路径上所有向量承诺值。
同理可计算{statewrite}中的所有承诺值φwrite
步骤305:最后存储节点使用私钥对〈φread,Coldwrite〉进行签名生成证明φsig,向多个轻量节点返回执行结果resultexec,表示交易被正确运行。只有收到超过半数以上轻量节点的验证签名背书,存储节点才被认为正确执行了交易,正式提交区块到区块链账本中。Cold表示在交易执行之前的向量承诺树的根值。
如图5所示,存储节点对接收到的区块进行验证,调用智能合约执行交易,然后计算承诺值,更新状态数据,发布执行结果给轻量节点。
步骤4:轻量节点对执行结果进行验证。
步骤401:存储节返回交易执行结果f({txi})→resultexec,轻量节点对交易执行结果进行验证,主要检查交易中数字签名是否合法,计算结果是否正确,存储状态数据是否被篡改。向量承诺树上的验证信息就相当于一个区块链账户数据库的快照,当前账户历史数据的快照对应承诺树中根节点Croot。f表示存储节点的执行模型,对输入的交易txi执行,返回执行结果resultexec
步骤402:轻量节点执行验证函数verify(λ,resultexecold),φold表示轻量节点中的向量承诺树路径上的向量承诺值。轻量节点基于本地向量承诺树,验证{φread}中的向量承诺值与本地保存的向量承诺值φold是否一致,重新计算{statewrite}验证是否正确执行。
Figure BDA0003643339120000081
e(x,y)=gx*y
Figure BDA0003643339120000091
Figure BDA0003643339120000092
其中,λi是mi的证明值,用于验证resultexec中向量承诺值是否正确。判断上面第3行公式中等式两边是否相等,若相等表示正确执行,验证通过,否则验证不通过。
每个轻量节点在本地存储最近K个区块状态数据,对应每个区块也会生成一颗向量承诺树,轻量节点将根据存储节点返回的执行结果信息对应更新本地的向量承诺树。通过为每个区块计算一棵向量承诺树,减少了轻量节点的存储数据,同时保证了数据在存储节点上都可被验证,保证了数据的安全。
步骤403:验证通过以后,轻量节点向存储节点返回验证成功签名,同时更新本地的向量承诺树中的验证信息。设nodei、nodej表示向量承诺树中的叶子节点,更新向量承诺值如下:
(C′,U)←UpdatePP(C,nodej,nodei,{statewrite}i,i),
Figure BDA0003643339120000093
其中,C′表示新的向量承诺值,U表示更新信息,m′、m分别表示更新后和更新前的状态数据的摘要。
步骤404:为支持轻量节点的存储负载量最小化,不要求轻量节点存储完整验证的状态数据,只需要维持过去K个区块的状态数据和向量承诺树验证信息。基于滑动窗口更新过去K个块的向量承诺树和区块数据内容。收到存储节点执行结果,将过去的第K+1个区块从窗口中清除,超出窗口范围内的状态数据和验证信息也被从树中裁剪删除。
如图6所示,为向量承诺树更新过程,检查新的区块交易开始执行,若检测到与其他交易冲突,则跳过该交易,继续获取下一个新的交易,否则根据写集合{statewrite}计算交易tx向量承诺值Ctx,根据Key前缀定位向量承诺树中的插入位置,检测是否为新账户数据,若是,更新向量承诺树节点的Ctx和账户下状态值,否则,插入向量承诺树新叶子节点,计算新区块的向量承诺树根值,更新区块索引。
步骤405:轻量节点将交易的执行结果反馈给物联网终端设备,并在结果中附上自己的签名,方便终端设备检查执行结果的真实性。
步骤5:存储节点数据卸载,如图7所示,包括如下子步骤。
步骤501:存储节点启动数据卸载协议,当本地存储的区块链账本数据超过协议阈值,将过去的n个区块文件及其状态数据打包成数据分片Bucket,建立Bucket的信息映射表Map。
步骤502:通过AES加密算法生成公钥和私钥对,在本地保存当前的密码对,使用加密算法对Bucket数据文件进行加密,将数据分片Bucket发送给IPFS进行分布式存储。
步骤503:IPFS先检查数据上传者的身份,验证通过以后对加密文本进行存储,并创建IPFS对象。数据成功存储以后,IPFS会返回数据哈希串,用于IPFS内容寻址访问。
步骤504:依据该哈希串更新数据散列表,数据映射表Map中以Bucket名为索引,数据值为IPFS访问路径、区块号和交易ID。
步骤505:存储节点通过映射表查询Bucket访问路径,与IPFS交互触发下载请求,使用同态解密算法对Bucket进行解密。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。本发明省略了对公知组件和公知技术的描述,以避免赘述和不必要地限制本发明。上述实施例中所描述的实施方式也并不代表与本申请相一致的所有实施方式,在本发明技术方案的基础上,本领域技术人员不需要付出创造性的劳动即可做出的各种修改或变形仍在本发明的保护范围内。

Claims (5)

1.一种面向物联网的区块链数据存储扩展模型构建方法,其特征在于,包括如下步骤:
步骤1)建立区块链存储分层模型,该模型包括轻量层和存储层;轻量层负责收集交易数据,对交易进行共识,对执行结果进行验证;存储层负责交易历史数据和状态数据的扩展存储;
步骤2)构建轻量节点,包括:
(2.1)依据物联网的网络结构,将属于同一地理范围的网络分区中的本地节点组成一个一主多从的簇,主节点作为轻量节点;
(2.2)轻量节点收集交易请求,包括:轻量节点收集所在网络分区的物联网设备发出的交易请求,验证发送者的身份是否合法,检查交易请求中地址是否合法,检查交易是否存在重播行为,将通过检查的交易请求加入到轻量节点的交易池中缓存;
(2.3)轻量节点进行交易共识,包括:若轻量节点的交易池中交易请求量达到共识协议的最大时延或者区块最大交易量上限,轻量节点从本地交易池中提取交易ID,根据交易ID和共识协议对区块中交易请求按照时间顺序排序后打包成共识请求列表,广播给其他轻量节点;轻量节点将共识一致的交易请求打包,生成模拟执行区块,并发送给存储节点;
步骤3)构建存储节点,包括:
(3.1)预先通过配置文件设置物联网中哪些物理节点作为存储节点;
(3.2)存储节点接收到区块后,验证轻量节点身份以及区块中交易请求的数字签名,验证通过后,调用本地智能合约执行交易;所述智能合约的输入是状态数据读集合和交易请求txi,输出是状态数据写集合和状态码,所述读集合{stateread}记录交易txi中已提交的状态键值,所述写集合{statewrite}记录交易txi更新的状态键值,所述状态码记录交易txi执行结果的状态;
(3.3)存储节点对执行区块中的有序交易,依次以q个交易一组,分组计算向量承诺值,构建向量承诺树;q为正整数;对交易txi,存储节点分别使用{statewrite}和{stateread}中的状态键值计算向量承诺值,得到证明信息φwrite和φread
(3.4)存储节点使用私钥对〈φread,Coldwrite〉进行签名生成证明φsig,向轻量节点返回执行结果resultexec=<txi,{stateread},{statewrite},φsig>;其中Cold表示在交易txi执行之前的向量承诺树的根值;
存储节点将轻量节点验证通过的区块的状态数据以及状态码上传到区块链中存储;
步骤4)轻量节点对执行结果进行验证,包括:
所述轻量节点保存最近K个区块中最新状态数据及其向量承诺树,对存储节点发来的执行结果,根据本地存储的对应区块的向量承诺树,验证交易的读集合中的数据,基于读集合重新执行交易生成新的向量承诺值,验证交易的写集合以及存储节点的执行结果;当验证通过时,轻量节点将更新本地的向量承诺树,缓存最新的状态数据;K为正整数;
步骤5)存储节点通过P2P分布式数据存储系统对区块链数据卸载备份。
2.根据权利要求1所述的方法,其特征在于,所述的步骤(2.3)中,网络中其他轻量节点收到共识请求后,先验证请求者的身份证书是否合法,验证共识请求中交易序列号、创建时间戳是否在有效期范围内,当验证成功后,将返回共识成功的响应消息给发出共识请求的轻量节点,并在响应消息中附上自己的签名。
3.根据权利要求1所述的方法,其特征在于,所述的步骤(3.3)中,存储节点对每个区块计算一个向量承诺树,向量承诺树的分支数为q,每个分支表示不同的key前缀,key表示状态数据的键;每个叶子节点对应一个交易,首先对每个交易计算摘要,然后根据摘要计算向量承诺值;存储节点以递归方式构建向量承诺树,父节点是其子节点的向量承诺值。
4.根据权利要求1所述的方法,其特征在于,所述的步骤4中,轻量节点基于滑动窗口维持过去K个区块的状态数据和向量承诺树,当收到存储节点执行结果后,将过去第K+1个区块从窗口中清除,删除超出窗口范围内的区块的状态数据和向量承诺树验证信息。
5.根据权利要求1所述的方法,其特征在于,所述的步骤5中,存储节点对区块链的历史数据进行分片切割,对分片进行对称加密,将加密以后的数据存储到分布式部署的P2P存储系统中,并对各个分片的数据建立路由表。
CN202210524126.3A 2022-05-13 2022-05-13 一种面向物联网的区块链数据存储扩展模型构建方法 Pending CN114915404A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210524126.3A CN114915404A (zh) 2022-05-13 2022-05-13 一种面向物联网的区块链数据存储扩展模型构建方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210524126.3A CN114915404A (zh) 2022-05-13 2022-05-13 一种面向物联网的区块链数据存储扩展模型构建方法

Publications (1)

Publication Number Publication Date
CN114915404A true CN114915404A (zh) 2022-08-16

Family

ID=82766451

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210524126.3A Pending CN114915404A (zh) 2022-05-13 2022-05-13 一种面向物联网的区块链数据存储扩展模型构建方法

Country Status (1)

Country Link
CN (1) CN114915404A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115186035A (zh) * 2022-09-13 2022-10-14 腾讯科技(深圳)有限公司 一种区块处理方法、相关系统及存储介质和服务器
CN115766745A (zh) * 2023-01-09 2023-03-07 杭州安碣信息安全科技有限公司 一种区块链节点内存池交易数据收集、广播的方法和装置
CN115865673A (zh) * 2022-11-30 2023-03-28 上海佰贝网络工程技术有限公司 区块链数据分发加速方法、装置、设备及可读存储介质
CN117319422A (zh) * 2023-11-28 2023-12-29 天津市城市规划设计研究总院有限公司 一种城市规划领域物联网数据的区块链成块方法及系统
CN117376352A (zh) * 2023-10-07 2024-01-09 山东山科智能科技有限公司 基于区块链的物联网系统
CN117424813A (zh) * 2023-12-11 2024-01-19 北京云成金融信息服务有限公司 一种用于区块链的节点扩充方法
CN117880331A (zh) * 2024-03-13 2024-04-12 北京邮电大学 一种海洋卫星物联网区块链数据共享方法及装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115186035A (zh) * 2022-09-13 2022-10-14 腾讯科技(深圳)有限公司 一种区块处理方法、相关系统及存储介质和服务器
CN115865673A (zh) * 2022-11-30 2023-03-28 上海佰贝网络工程技术有限公司 区块链数据分发加速方法、装置、设备及可读存储介质
CN115865673B (zh) * 2022-11-30 2024-05-24 上海佰贝网络工程技术有限公司 区块链数据分发加速方法、装置、设备及可读存储介质
CN115766745A (zh) * 2023-01-09 2023-03-07 杭州安碣信息安全科技有限公司 一种区块链节点内存池交易数据收集、广播的方法和装置
CN117376352A (zh) * 2023-10-07 2024-01-09 山东山科智能科技有限公司 基于区块链的物联网系统
CN117376352B (zh) * 2023-10-07 2024-03-12 山东山科智能科技有限公司 基于区块链的物联网系统
CN117319422A (zh) * 2023-11-28 2023-12-29 天津市城市规划设计研究总院有限公司 一种城市规划领域物联网数据的区块链成块方法及系统
CN117319422B (zh) * 2023-11-28 2024-02-02 天津市城市规划设计研究总院有限公司 一种城市规划领域物联网数据的区块链成块方法及系统
CN117424813A (zh) * 2023-12-11 2024-01-19 北京云成金融信息服务有限公司 一种用于区块链的节点扩充方法
CN117424813B (zh) * 2023-12-11 2024-03-22 北京云成金融信息服务有限公司 一种用于区块链的节点扩充方法
CN117880331A (zh) * 2024-03-13 2024-04-12 北京邮电大学 一种海洋卫星物联网区块链数据共享方法及装置
CN117880331B (zh) * 2024-03-13 2024-05-24 北京邮电大学 一种海洋卫星物联网区块链数据共享方法及装置

Similar Documents

Publication Publication Date Title
CN114915404A (zh) 一种面向物联网的区块链数据存储扩展模型构建方法
CN109360100B (zh) 基于区块链技术的交易快速确认方法及装置
Zamani et al. Rapidchain: Scaling blockchain via full sharding
US11170114B2 (en) Electronic storage system and a method of data management
EP3545665B1 (en) System and method for detecting replay attack
CN110597911A (zh) 一种区块链网络的证书处理方法、装置、电子设备及存储介质
CN113312574A (zh) 一种基于区块链的云数据完整性审计方法
CN109525403B (zh) 一种支持用户全动态并行操作的抗泄露公开云审计方法
CN109493052B (zh) 一种基于主链加并行多子链的跨链合约系统
EP3869376B1 (en) System and method for blockchain based decentralized storage with dynamic data operations
CN106991148B (zh) 一种支持全更新操作的数据库验证系统及方法
Sohrabi et al. ZyConChain: A scalable blockchain for general applications
CN113824563A (zh) 一种基于区块链证书的跨域身份认证方法
CN103067363A (zh) 一种用于公开数据完整性校验的索引转换方法
CN112565264B (zh) 一种基于区块链的云存储数据完整性检测方法
Wu et al. Robust and auditable distributed data storage with scalability in edge computing
CN113901528A (zh) 基于区块链的云端数据完整性审计方法
CN116827957B (zh) 基于多区块链的信息处理方法、装置、设备以及介质
CN112039837B (zh) 一种基于区块链和秘密共享的电子证据保全方法
CN117201031A (zh) 一种基于同态哈希树的文件分布式存储共享方法
KR102349014B1 (ko) 고속 동기화 가능 탈중앙화 분산 데이터베이스 구성 방법 및 시스템
CN116668456A (zh) 一种基于dag多节点共识的区块生成方法、装置及系统
Kim et al. Byzantine fault tolerance based multi-block consensus algorithm for throughput scalability
CN115085972A (zh) 一种支持完整性审计的高效可验证区块链编辑方法
Li et al. Blockchain-based auditing with data self-repair: From centralized system to distributed storage

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