CN113553375A - 一种面向图式区块链的分片存储装置及方法 - Google Patents

一种面向图式区块链的分片存储装置及方法 Download PDF

Info

Publication number
CN113553375A
CN113553375A CN202110787586.0A CN202110787586A CN113553375A CN 113553375 A CN113553375 A CN 113553375A CN 202110787586 A CN202110787586 A CN 202110787586A CN 113553375 A CN113553375 A CN 113553375A
Authority
CN
China
Prior art keywords
transaction
nodes
node
transactions
fragment
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
Application number
CN202110787586.0A
Other languages
English (en)
Other versions
CN113553375B (zh
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.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN202110787586.0A priority Critical patent/CN113553375B/zh
Publication of CN113553375A publication Critical patent/CN113553375A/zh
Priority to US17/806,614 priority patent/US20230009961A1/en
Application granted granted Critical
Publication of CN113553375B publication Critical patent/CN113553375B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/505Clust

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Databases & Information Systems (AREA)
  • Power Engineering (AREA)
  • Data Mining & Analysis (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种面向图式区块链的分片存储装置,其特征在于,至少包括第一分片处理模块和第二分片处理模块,其中,第一分片处理模块基于采用DAG结构组织的账本数据将具有不同资源能力的节点进行分片用以第二分片处理模块将交易分配至与其执行难度相匹配的分片,使得交易在与之对应的分片中被处理和存储。本发明将图式区块链与分片技术相结合,提出了一种面向图式区块链的分片存储方法,以缓解图式区块链系统节点的数据存储压力和交易处理压力,同时结合节点间资源的异构性,动态地划分节点、交易和数据,在进一步提升图式区块链系统性能的同时兼顾系统资源的高效利用。

Description

一种面向图式区块链的分片存储装置及方法
技术领域
本发明涉及区块链技术领域,尤其涉及一种面向图式区块链的分片存储装置及方法。
背景技术
随着物联网(IoT)技术的发展,越来越多的物联网设备走入我们的生活。通过物联网设备采集的信息具有巨大的分析和使用价值,例如应用在智能家居、自动化生产线等等。但传统的物联网模式采用中心化的数据中心来负责收集所连接的设备信息,这种方式满足不了日益增长的物联网生态体系的要求,且存在着数据安全性和隐私性的问题。区块链技术因其具有去中心化、不可篡改、透明性、匿名性等特点,受到了学术界和产业界的广泛关注。区块链提供了开放网络下新的信任模型,可以在分布式不可信环境下提供安全性高、隐私保护好的数据存储服务,这为物联网的可信数据管理提供了解决方案。但传统链式区块链在吞吐量、存储性能等方面并不具备可扩展性。主要因为其安全性依赖于区块链的高冗余分布式账本特性,即每个节点均需要处理每一笔交易,就一批交易组成的区块达成共识并存储整个交易历史。并且,传统区块链技术大多采用工作量证明机制(PoW)作为共识策略,这种策略会消耗大量资源,难以部署在资源受限的物联网设备中。因此,如何结合区块链技术为物联网设备提供可扩展的数据存储服务是一个需要解决的问题。
一种基于有向无环图(Directed Acyclic Graph,DAG)的方案被提出用以提升链式区块链的可扩展性。具体来说,基于DAG的图式区块链从数据层和共识层对传统的链式区块链系统进行了改进,以有向无环图的结构组织账本数据。与传统链式区块链只允许串行地向账本中添加区块的方案不同,DAG账本允许存储单元同时存在多条引用边,因此,多个节点可以独立并发地向账本中写入交易或区块,消除了串行写入的限制,从而能够在节点资源给定的情况下显著提升系统的吞吐量。IOTA是将图式区块链应用到物联网产业的杰出方案。IOTA基于新型的分布式账本——Tangle(缠结)。Tangle是一种直接由交易构成的有向无环图(Transaction-based DAG,TDAG),能够克服传统区块链系统的低效性。IOTA拥有实时性强、伸缩性强以及交易费用低等优点,没有区块打包和挖矿的过程,避免了大量无用的计算,对资源要求较低,因此尤其适用于物联网场景。
虽然以IOTA为代表的图式区块链为物联网提供了一种新型的数据存储方案,并能够提供比传统链式区块链更高的吞吐量和更好的可扩展性,但仍然需要网络中的每个节点处理每一笔交易,并存储整个DAG账本。因此目前图式区块链的设计仍然存在着如下问题与挑战:在节点资源能力受限以及存在异构性的应用场景下,图式区块链难以发挥出理想的提升效果。具体表现为:
1)高并发场景对区块链节点的存储、计算、通讯能力提出了更高的要求,会给资源能力受限的节点造成存储、处理等方面的压力。具体地说,全副本存储无法应对海量数据的增长带来的存储需求;采用DAG结构组织账本提升系统吞吐量的同时,更进一步加快了区块链存储消耗;大多数物联网设备的存储资源受限,无法应对高昂的存储开销。此外,节点需要处理每一笔交易,高吞吐量更加重了节点的处理负担,节点处理能力的上限会限制系统性能的进一步提升。
2)区块链系统中节点资源的分布存在不均衡性,具体表现为不同节点或设备的处理能力、带宽、存储容量各不相同,这会大大降低区块链网络中资源的利用率,从而影响系统的整体效率。
3)高昂的资源开销会降低参与者的意愿,不利于系统的去中心化和安全性。
近年来,为了提升区块链的可扩展性,基于分片的区块链解决方案受到了学术界和产业界越来越多的关注和研究。基于分片的系统从系统结构和共识层对传统区块链系统进行了改进。这种方案将网络划分为多个更小的组,称为分片,同时也将未被处理的交易划分成若干组并被定向到对应的分片中进行处理。因此每个分片可以并行地处理交易,从而实现系统吞吐量的线性提升。为了进一步解决存储可扩展性问题,整个账本数据也被划分到多个分片中,每个分片内的节点只保存和本分片相关的账本数据,这种策略被称作状态分片。因为每个节点只在更小规模的分片内达成共识,这种方案减少了单个节点的通信、计算和存储的开销,并显著提升了吞吐量。
然而,现有的基于分片的区块链系统,例如:Elastico、OmniLdeger、RapidChain、Monoxide,它们大多面向以区块为存储单元的链式结构,鲜有基于TDAG账本结构的分片策略研究。同时,现有的工作均是采用节点资源相同的静态、同构模型,即假定节点资源大致相同,形成的分片也是同质的,这难以应对资源异构的真实应用场景。例如,现有技术中公开号为CN111901350A的专利文献所提出的一种区块链系统、数据处理方法、计算机设备及存储介质,其系统包括:共识层,用以采用POA协议同步各个节点中的交易信息,其中,所述交易信息用于产生区块;数据层,用以将各个所述节点产生的区块构建为有向无环图结构,并对所述区块存储的数据进行压缩;网络层,用以采用聚合方式控制所述区块间的通信;合约层,用以采用侧链协议和分片策略控制所述区块间的数据交互。其中,分片策略是将一条完整的区块链分为多个片区,每个片区可独立验证交易,增大了链上吞吐量。采用分片策略对所述区块链中的区块进行分段,每一个分段之间相互独立,每一个分段独立验证所述分段内的通信信息。
针对以上痛点问题,亟需一种面向图式区块链的动态分片策略,减轻节点的交易处理和数据存储负担,同时充分结合节点间资源的异构性,动态地划分节点、交易和数据,实现“量体裁衣”的资源分配,提升系统的整体效率,从而应对动态异构的物联网场景。
此外,一方面由于对本领域技术人员的理解存在差异;另一方面由于申请人做出本发明时研究了大量文献和专利,但篇幅所限并未详细罗列所有的细节与内容,然而这绝非本发明不具备这些现有技术的特征,相反本发明已经具备现有技术的所有特征,而且申请人保留在背景技术中增加相关现有技术之权利。
发明内容
针对图式区块链在物联网应用场景下,现有工作不能很好地解决节点存储和处理负担且未考虑节点资源异构性的缺陷的问题,本发明将图式区块链与分片技术相结合,提出了一种面向图式区块链的分片存储装置及方法,以缓解图式区块链系统节点的数据存储压力和交易处理压力,同时结合节点间资源的异构性,动态地划分节点、交易和数据,在进一步提升图式区块链系统性能的同时兼顾资源的高效利用。
本申请提出了一种面向图式区块链的分片存储装置,至少包括第一分片处理模块和第二分片处理模块,其中,第一分片处理模块基于采用DAG结构组织的账本数据将具有不同资源能力的节点进行分片用以第二分片处理模块将交易分配至与其执行难度相匹配的分片,使得交易在与之对应的分片中被处理和存储。
根据一种优选实施方式,第一分片处理模块对各节点的资源能力进行评估并分级得到分级结果,各节点通过工作量证明解决一个哈希难题得到工作量证明结果。
根据一种优选实施方式,每个节点将自己的分级结果和工作量证明结果进行广播,以完成成员的发现以及分片的建立。
本申请还提出了一种面向图式区块链的分片存储方法,至少包括:基于采用DAG结构组织的账本数据将具有不同资源能力的节点进行分片并将交易分配至与其执行难度相匹配的分片以使交易在与之对应的分片中被处理和存储。该方法包括采用DAG结构组织账本数据。该方法包括将具有不同资源能力的节点进行分片。该方法包括将交易分配至与其执行难度相匹配的分片。该方法包括交易在与之对应的分片中被处理和存储。
根据一种优选实施方式,每一笔交易在加入DAG账本时都需要随机选取两笔Tip交易进行验证,Tip为账本末端未被验证过的交易。
根据一种优选实施方式,在DAG账本中,使用交易的累积确认值来表示直接或间接验证该交易的交易数量,当累积确认值达到一定的阈值时,则认为该交易处于确认状态。
本发明采用了基于TDAG的账本结构,其账本数据不是组织成单引用边的链式结构,而是允许每个存储单元拥有多个引用边,即每个存储单元均可以验证多个存储单元。在该DAG账本中,每个存储单元代表单笔交易,并非包含若干笔交易的区块。在该设置下,可以减少交易打包的时间,充分利用网络资源。由于不需要打包区块,交易验证的工作由参与该系统的每个用户承担。用户在发起每一笔交易时均需要随机选取账本中已经存在的两笔交易进行验证。优选地,用户在发起每一笔交易时,该用户选取未被验证过的交易进行验证。交易的累积确认值为直接或间接验证该交易的交易数量,代表了交易被网络接受的程度。当累积确认值达到一定阈值时,该交易被认为处于确认状态。
根据一种优选实施方式,进行节点分片的步骤至少包括:对各节点的资源能力进行评估并分级,得到分级结果;各节点通过工作量证明解决一个哈希难题,得到工作量证明结果;基于分级结果和工作量证明结果进行节点分片。
根据一种优选实施方式,通过将工作量证明结果的最低若干比特位和分级结果相拼接来得到节点所对应的分片编号。
根据一种优选实施方式,每个节点将自己的分级结果和工作量证明结果进行广播,以完成成员的发现以及分片的建立。
本发明在上述TDAG的基础上实施分片,首先需要确定网络节点的分片策略。网络节点拥有的资源不尽相同,在处理能力、存储能力、带宽大小方面有强有弱,若是按照传统的分片策略,将节点视为同构的个体,仅通过工作量证明或基于随机数的方式将所有节点划分到规模相同的分片中,将导致短板效应,每个分片内的共识会受限于最弱的节点。因此,一个良好的动态分片策略应当充分考虑节点间资源的异构性。基于此,本发明在划分网络分片时,充分评估每个节点所拥有的资源能力,将节点划分为多个等级,使同一分片内的节点拥有相同的资源评定等级,即“强强联合”和“弱弱联合”,从而保证同一分片中的节点具有大致相同的处理、存储能力,确保分片内共识的顺利进行。
根据一种优选实施方式,进行节点分片的步骤至少包括:对各节点的资源能力进行评估并分级,得到分级结果;各节点通过工作量证明解决一个哈希难题,得到工作量证明结果。进行节点分片的步骤还包括基于分级结果和交易的哈希值进行交易分片。
根据一种优选实施方式,每个分片仅存储部分DAG账本,每个节点仅存储其所在分片所对应的DAG账本的副本。
根据一种优选实施方式,新加入DAG账本的交易仅在与之相对应的分片内进行广播,并由该分片内的节点进行存储。
经过网络分片后,每个分片的整体处理能力各不相同。为充分利用节点的资源能力,本发明摒弃了传统的均匀划分交易的策略,而是充分考虑交易的异构性来进行交易分片。交易的异构性可以是指执行交易所需要的计算资源的多少以及存储交易所需的存储空间大小。这里,使用交易的执行难度量化表示交易的异构性。基于此,可使得由强节点组成的分片分配到数量更多的、更难执行的交易,由弱节点组成的分片分配到较易执行且数量更少的交易,从而使得每个分片的处理能力和处理交易所需的工作难度相匹配。
为减轻节点存储压力,本发明将整个DAG账本划分为若干部分,分别由相应的分片进行存储。因此,每个节点只需存储其所在的分片内的交易数据。新加入的交易只会在相应的分片内进行广播,并由相应的节点进行存储。由于在进行网络节点分片时,拥有大致相同的资源能力的节点被划分到同一分片中,因此同一分片内的DAG账本可以高效地在各个节点之间进行同步,保证了分布式账本的一致性。存储资源受限的节点也能够在其所在分片内充分参与共识过程以及数据存储工作。优选地,可以通过历史数据剪枝技术进一步优化节点的存储。在DAG账本较深处的且已经被确认的交易数据,在一些具体的使用场景中,可以通过形成检查点的形式,安全地进行删除,从而进一步减轻节点的存储负担。
根据一种优选实施方式,在本发明所提出的面向图式区块链的分片存储方法中还包括整个分片处理流程的设计。假设已经存在一种评估节点资源能力的方法F1。方法F1可以为每个节点提供安全的且可验证的资源能力评估等级。假设已经存在一种综合评估交易在执行和存储时所需资源多少的方法F2。
系统的运作按照轮次进行。在每一轮中,首先,每个节点通过调用方法F1获取其资源能力等级。资源能力大致相同的节点会被赋予相同的等级。在开放环境下,需要为每个节点建立有效的身份信息以抵抗女巫攻击。因此,为了建立身份信息,每个节点采用工作量证明的方式解决一个哈希难题。工作量证明的结果是一个可验证的哈希值,该哈希值和节点的资源能力等级相结合来确定节点位于哪一个分片。在该设置下,所有节点都根据一定的随机性以及资源能力的异构性被分配到具体的分片。继而进行分片成员的发现以及分片的建立。
根据一种优选实施方式,所述分片存储方法还包括:进行分片的重构,使得所有节点被重新分片,以开启新一轮的共识过程。
当分片建立完毕后开始处理交易。用户提交的交易可通过F2方法获取相应的执行难度评级。基于处理能力强的分片对执行难度高的交易进行处理的原则,每一笔交易会通过执行难度等级以及交易的哈希值被路由到指定的分片内进行处理,然后被附加到该分片的DAG账本中。此外,为了防止自适应节点的攻击,并乐观应对动态环境下节点的加入/离开以及节点资源能力的改变,每个轮次的最后需要对分片进行重组。
本发明还提出了一种面向图式区块链的分片存储系统,包括计算机设备,其特征在于,所述计算机设备被编程或配置以执行本发明所提出的面向图式区块链的分片存储方法的步骤,或所述计算机设备的存储介质上存储有被编程或配置以执行本发明所提出的面向图式区块链的分片存储方法的计算机程序,或所述计算机可读存储介质上存储有被编程或配置以执行本发明所提出的面向图式区块链的分片存储方法的计算机程序。
本发明还提出了一种用于数据存储的电子设备,其特征在于,包括:存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行本发明所提出的面向图式区块链的分片存储方法。
实施本发明的面向图式区块链的分片存储方法,将动态分片策略应用到图式区块链中,具有至少一个以下有益效果:可以减轻节点的处理和存储负担;充分考虑到节点间的资源异构性,能够让资源充足的强大节点以及资源受限的轻量级节点同时参与其中,提升系统容纳异构设备的能力;提高区块链网络中资源的利用率;提升系统性能。
附图说明
图1是本发明提供的账本数据结构的简化示意图;
图2是本发明提供的分片策略的整体概览示意图;
图3是本发明提供的分片处理流程的简化示意图。
具体实施方式
下面将结合附图及实例,对本发明的具体实施方式进行详细阐述。显然,所描述的实例仅仅是本发明一部分实例,而不是全部的实例。基于本发明中的实例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实例,都属于本发明保护的范围。
为了便于理解,将本发明的技术用语进行如下解释。
DAG,Directed Acyclic Graph,即有向无环图,按照数学上的定义,DAG指的是一个没有有向循环的、有限的有向图。它由有限个顶点和有向边组成,每条有向边都从一个顶点指向另一个顶点;从任意一个顶点出发都不能通过这些有向边回到原来的顶点。在计算机领域,有向无环图是一种数据结构,即一种数据组织方式。
图式区块链,其主要指的是基于DAG的区块链,也被称作DAG账本,其采用DAG数据结构组织账本数据并进行存储。DAG账本的每个顶点表示存储单元,可以是单笔交易,也可以是一段时间内的多笔交易组成的区块。一般的单链区块链是DAG账本的一种特殊情况,也即每个时间段内整个系统只能产生一个区块。不同的是,DAG账本允许不同节点按自己的节奏创建存储单元,只要每个存储单元选择一个或多个单元作为自己的子单元。DAG账本相对于传统链式区块链的优势是非常明显的,主要在于可扩展性和交易吞吐量上。由于采取DAG数据结构来组织账本,每个节点不需要再等其它节点的数据达到统一就可以处理新的交易,避免了因网络延迟和数据同步造成的时间浪费。因此,参与DAG记账的节点很容易大幅延展。此外,DAG账本的末端可以平行增加任意多的新数据,因此具有天然的高并发特性,可提供很高的交易吞吐量。这一点更是完胜链式区块链。链式区块链每次只能增加一个区块大小的数据量,所以提供的交易吞吐量有限且难以大幅提升。
TDAG,Transaction-based Directed Acyclic Graph,即基于交易的DAG账本,其账本中的存储单元为单笔交易。
女巫攻击(Sybil Attack),女巫攻击是作用于对等(Peer-to-Peer,简称P2P)网络中的一种攻击形式,攻击者利用单个节点来伪造多个身份存在于P2P网络中,从而达到削弱网络的冗余性,降低网络健壮性,监视或干扰网络正常活动等目的。在P2P网络中,为了解决来自恶意节点或者节点失效带来的安全威胁,通常会引入冗余备份机制,将运算或存储任务备份到多个节点上,或者将一个完整的任务分割存储在多个节点上。正常情况下,一个设备实体代表一个节点,一个节点由一个ID来标识身份。然而,在缺少可信赖的节点身份认证机构的P2P网络中,难以保证所备份的多个节点是不同的实体。攻击者可以通过只部署一个实体,向网络中广播多个身份ID,来充当多个不同的节点,这些伪造的身份一般被称为Sybil节点。Sybil节点为攻击者争取了更多的网络控制权,一旦用户查询资源的路径经过这些Sybil节点,攻击者可以干扰查询、返回错误结果,甚至拒绝回复。
PoW(Proof of Work,工作量证明机制),其工作机制在于:为了使区块链交易数据记录在区块链上并在一定时间内达到一致(共识),PoW提供了一种思路,即所有区块链的网络节点参与者进行竞争记账,所谓竞争记账是指,如果想生成一个新的区块并写入区块链,参与者必须通过不断地尝试随机数来解出一个哈希谜题,谁先解出答案,谁就获得记账权利,然后开始记账并将挖掘出的新区块广播给其他节点进行验证,自己则开始下一轮挖矿。如果区块的交易被其他节点参与者验证有效并且谜题的答案正确,就意味着这个答案是可信的,新区块将被验证者写入其本地账本中,同时验证者进入下一轮的竞争挖矿。
位串,由若干位(Bit)组合起来形成位串。位(Bit)是电子计算机中最小的数据单位,每一位的状态只能是0或1。
Tip交易,在本发明中主要指的是账本末端未被验证过的交易。
剪枝策略,剪枝策略属于算法优化范畴,其通常应用在DFS和BFS搜索算法中。剪枝策略即为寻找过滤条件,提前减少不必要的搜索路径。在搜索算法中优化中,剪枝,就是通过某种判断,避免一些不必要的遍历过程。应用剪枝优化的核心问题是设计剪枝判断方法,即确定哪些枝条应当舍弃,哪些枝条应当保留的方法。区块链中的账本剪枝技术是指根据某种规则,将对于验证交易和区块无用的历史数据进行裁剪,从而有效降低整个区块链的账本大小。
本发明基于一种以交易为存储单元的图式区块链账本,提出了一种面向区块链动态环境以及资源异构节点的动态分片装置及方法。本发明的分片存储装置优选地例如是:计算机、服务器等,以及其他采用分片存储装置的装置或系统。根据本发明实施例,除了第一分片处理模块和第二分片处理模块,分片存储装置还可以包括诸如中央处理器、通信单元、I/O单元的其他组件。为了简化描述仅仅示出了第一分片处理模块和第二分片处理模块,第一分片处理模块可包括资源等级评定单元,第二分片处理模块可包括执行难度单元和交易划分单元。作为示例,可以用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑、分立硬件组件或用于执行本文所述的功能的任意组合来实现或执行结合本公开所描述的各种示例性的逻辑块、模块和电路。通用处理器可以是微处理器,或者,处理器也可以是任何普通的处理器、控制器、微控制器或者状态机。处理器也可以实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP内核的结合,或者任何其它此种结构。作为示例,本公开的实施例可以在机器可执行指令的上下文中被描述,机器可执行指令诸如包括在目标的真实或者虚拟处理器上的器件中执行的程序模块中。一般而言,程序模块包括例程、程序、库、对象、类、组件、数据结构等,其执行特定的任务或者实现特定的抽象数据结构。在各实施例中,程序模块的功能可以在所描述的程序模块之间合并或者分割。用于程序模块的机器可执行指令可以在本地或者分布式设备内执行。在分布式设备中,程序模块可以位于本地和远程存储介质二者中。
该动态分片方法包括网络节点分片、交易分片以及数据分片,实现了面向物联网的轻量级、高性能的数据存储服务平台。尽管本发明具体实施方式中的动态分片方法以特定顺序被描绘,但这并不应该理解为要求此类操作以示出的特定顺序或以相继顺序完成,或者执行所有图示的操作以获取期望结果。在某些情况下,多任务或并行处理会是有益的。同样地,尽管上述讨论包含了某些特定的实施细节,但这并不应解释为限制任何发明或权利要求的范围,而应解释为对可以针对特定发明的特定实施例的描述。本说明书中在分开的实施例的上下文中描述的某些特征也可以整合实施在单个实施例中。反之,在单个实施例的上下文中描述的各种特征也可以分离地在多个实施例或在任意合适的子组合中实施。
如下先针对本发明所采用的基于TDAG的区块链账本结构进行说明:
本发明所采用的图式区块链模型是以交易为存储单元进行组织的图式区块链系统。如图1所示,图中每个圆圈代表DAG账本的基本存储单元,在本发明中存储单元是单笔交易。图1中位于各顶点之间的边代表交易之间的验证关系。例如,从交易E指向交易C的有向边代表交易E验证了交易C。
每一笔交易在加入DAG账本时都需要随机选取两笔Tip交易进行验证。每个验证都会在DAG账本中增加一条由新交易指向Tip交易的边。
由于每个存储单元都保存了被验证交易的哈希值,因此单笔交易能够直接或间接地验证通过该交易所能遍历到的所有交易。
新加入的交易通过对未被验证的交易进行验证,将会在更大的范围验证更多的交易。
使用交易的累积确认值来表示直接或间接验证该交易的交易数量。交易的累积确认值可用以代表交易被网络接受的程度。交易的累积确认值越高,说明越多的交易为该笔交易提供了验证,交易就越真实可靠。当交易的累积确认值达到一定的阈值,该交易被认为处于确认状态。
例如,如图1所示,交易M通过将交易I和交易J的哈希值包含在交易结构中,表示其对交易I和交易J的直接验证关系。通过验证关系的传递,可以得出,被交易M直接或间接验证的交易有:A、B、C、D、E、F、G、I、J,直接或间接验证交易M的交易有:O、P、Q、R、S、T、U。因此交易M的累计确认值为7。
当一个节点需要发起一笔交易时,由节点随机选择DAG账本中已有的两笔Tip交易。由节点验证这两笔交易是合法的交易且不存在冲突。由节点进行PoW运算,将交易与被验证的交易进行绑定,最后将该交易广播到网络。工作量证明(PoW)主要通过计算来猜测一个随机数,使它拼凑交易数据后的内容的Hash值满足一个规定的上限。
如下针对本发明提出的动态分片策略中所包含的网络节点分片进行说明:
本发明在将分片策略应用到上述图式区块链时,充分考虑到节点间资源的异构性,并基于此设计了相应的动态分片策略,以将网络节点划分到分片中。
目前,现有的大多数网络分片策略均假设所有节点具有同构性,拥有大小相等的算力,采用工作量证明的结果或者依靠可靠的随机源来确定节点对应的分片,然而,这种方式忽略了真实应用场景中节点资源的异构性。基于此,本发明所提出的网络分片策略将节点拥有的资源能力也作为确定其分片的一个决定因素。具体来说,假设存在一种评估节点资源能力的方法F1,通过方法F1可以为每个节点提供安全的且可验证的资源能力评估等级。资源能力大致相同的节点将拥有相同的资源能力等级。在开放环境下,需要为每个节点建立有效的身份信息以抵抗女巫攻击。每个节点采用工作量证明的方式解决一个哈希难题。工作量证明的结果和节点的资源能力等级相结合来确定节点位于哪一个分片。优选地,将结果的最低若干比特位(bit)和资源能力等级相拼接来得到该节点所在的分片编号。基于此,每个分片内节点的资源能力等级相同,并且处理、存储能力差异不大,能够充分利用网络资源。
如图2所示,图中左侧大小不一的圆圈代表资源异构的网络节点,圆圈越大代表其综合能力越强。本发明所提出的分片策略至少包括步骤一和步骤二。
步骤一:资源等级评定。每个节点通过方法F1获取自身的资源能力评级。资源能力等级为一个可验证的位串。基于此,节点在逻辑上被划分为三个等级。资源能力大致相同的节点位于同一等级。节点在逻辑上的划分具体表现在图2中每个等级中的圆圈大小大致相同。
步骤二:分片建立。每个节点通过PoW解决一个哈希难题,得到一个可验证的哈希值。该哈希值和节点的资源能力等级的组合确定了节点所在的具体分片。随后每个节点将自己的资源能力等级和PoW哈希值进行广播,完成成员的发现以及分片的建立。如图2所示,节点被划分成6个分片,每个分片内的节点位于同一资源能力等级。
如下针对本发明所提出的动态分片策略中所包含的交易分片进行说明:
交易本身也存在着异构性,例如每个交易在执行时所需的计算量多少以及所需的存储空间大小方面存在差异。本着资源能力和工作难度相匹配的原则,在对网络节点按照资源异构性进行分片后,交易也应当按照其异构性被分配到分片中处理和存储。
假设存在一种综合评估交易在执行和存储时所需资源多少的方法F2。用户提交到系统中的交易数据会通过F2获取相应的执行难度等级。利用执行难度等级和交易的哈希值来确定交易所属的分片。
本发明所提出的分片策略还包括步骤三:交易划分与处理。如图2所示,在步骤三中,交易的大小直观地反应了其执行难度等级。结合哈希值带来的随机性,难度高、更多的交易被分配到资源等级高的分片中处理。同理,难度低、更少的交易被分配到资源等级低的分片中处理。基于此,本发明所提出的分片策略可使分片处理能力和交易所需的处理难度相匹配,充分利用网络资源。
如下针对本发明所提出的动态分片策略中所包含的数据分片进行说明:
交易在特定的分片中被执行完毕后,有效的交易会被其所在分片中的所有节点存储。因此,每个分片在逻辑上只存储整个DAG账本的一部分。每个节点只存储其所在分片的DAG账本的副本。在该设置下,极大地减轻了节点的存储负担。由于同一分片内的网络节点的资源能力相当,因此各个节点存储的DAG账本副本不会存在较大差异。在该设置下,为分布式账本的数据一致性提供了保证。
如下针对本发明所提出的动态分片策略的分片处理流程进行说明:
如图3所示,本发明所提出的动态分片策略的分片处理流程至少包括:
获取节点的资源能力等级,将异构的节点进行分类;
每个节点进行PoW并获得PoW哈希值;
基于资源能力等级和PoW哈希值的组合确定节点所属的分片的编号;
进行分片内成员发现以及分片的建立;
在一定时间后,进行分片的重构。
在分片构建完毕后,系统便可以进行交易处理。用户提交的交易按照交易划分规则被路由到对应的分片中,各个分片便可以并行地处理交易。进行分片的重构,指的是确定下一轮次中所需要的随机数等信息,在下一个轮次中,所有节点将被重新分片,开启新一轮的共识过程。
需要注意的是,上述具体实施例是示例性的,本领域技术人员可以在本发明公开内容的启发下想出各种解决方案,而这些解决方案也都属于本发明的公开范围并落入本发明的保护范围之内。本领域技术人员应该明白,本发明说明书及其附图均为说明性而并非构成对权利要求的限制。本发明的保护范围由权利要求及其等同物限定。本发明说明书包含多项发明构思,诸如“优选地”、“根据一个优选实施方式”或“可选地”均表示相应段落公开了一个独立的构思,申请人保留根据每项发明构思提出分案申请的权利。

Claims (10)

1.一种面向图式区块链的分片存储装置,其特征在于,至少包括第一分片处理模块和第二分片处理模块,其中,第一分片处理模块基于采用DAG结构组织的账本数据将具有不同资源能力的节点进行分片用以第二分片处理模块将交易分配至与其执行难度相匹配的分片,使得交易在与之对应的分片中被处理和存储。
2.根据权利要求1所述的分片存储装置,其特征在于,第一分片处理模块对各节点的资源能力进行评估并分级得到分级结果,各节点通过工作量证明解决一个哈希难题得到工作量证明结果。
3.根据权利要求2所述的分片存储装置,每个节点将自己的分级结果和工作量证明结果进行广播,以完成成员的发现以及分片的建立。
4.一种面向图式区块链的分片存储方法,其特征在于,至少包括:
基于采用DAG结构组织的账本数据将具有不同资源能力的节点进行分片并将交易分配至与其执行难度相匹配的分片以使交易在与之对应的分片中被处理和存储。
5.根据权利要求4所述的分片存储方法,其特征在于,进行节点分片的步骤至少包括:
对各节点的资源能力进行评估并分级,得到分级结果;
各节点通过工作量证明解决一个哈希难题,得到工作量证明结果。
6.根据权利要求4或5所述的分片存储方法,其特征在于,每个分片仅存储部分DAG账本,每个节点仅存储其所在分片所对应的DAG账本的副本。
7.根据权利要求4~6任一项所述的分片存储方法,其特征在于,新加入DAG账本的交易仅在与之相对应的分片内进行广播,并由该分片内的节点进行存储。
8.根据权利要求4~7任一项所述的分片存储方法,其特征在于,所述分片存储方法还包括:
进行分片的重构,使得所有节点被重新分片,以开启新一轮的共识过程。
9.根据权利要求4~8任一项所述的分片存储方法,其特征在于,每一笔交易在加入DAG账本时都需要随机选取两笔Tip交易进行验证,Tip为账本末端未被验证过的交易。
10.根据权利要求4~9任一项所述的分片存储方法,其特征在于,在DAG账本中,使用交易的累积确认值来表示直接或间接验证该交易的交易数量,当累积确认值达到一定的阈值时,则认为该交易处于确认状态。
CN202110787586.0A 2021-07-12 2021-07-12 一种面向图式区块链的分片存储装置及方法 Active CN113553375B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110787586.0A CN113553375B (zh) 2021-07-12 2021-07-12 一种面向图式区块链的分片存储装置及方法
US17/806,614 US20230009961A1 (en) 2021-07-12 2022-06-13 Graphic-blockchain-orientated sharding storage apparatus and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110787586.0A CN113553375B (zh) 2021-07-12 2021-07-12 一种面向图式区块链的分片存储装置及方法

Publications (2)

Publication Number Publication Date
CN113553375A true CN113553375A (zh) 2021-10-26
CN113553375B CN113553375B (zh) 2022-07-01

Family

ID=78131656

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110787586.0A Active CN113553375B (zh) 2021-07-12 2021-07-12 一种面向图式区块链的分片存储装置及方法

Country Status (2)

Country Link
US (1) US20230009961A1 (zh)
CN (1) CN113553375B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114168086A (zh) * 2021-12-22 2022-03-11 长沙理工大学 一种区块链数据存储方法、装置、设备及存储介质
CN114219477A (zh) * 2021-11-03 2022-03-22 重庆邮电大学 基于链上存储的区块链数据存储扩展方法
CN116846916A (zh) * 2023-09-01 2023-10-03 武汉趣链数字科技有限公司 数据同步方法、装置、电子设备及计算机可读存储介质
WO2024004792A1 (ja) * 2022-06-28 2024-01-04 京セラ株式会社 ブロックチェーンシステム、ノード、及びプログラム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116012164B (zh) * 2023-03-17 2023-06-30 安徽中科晶格技术有限公司 基于虚拟账户的区块链跨分片交易方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109150972A (zh) * 2018-07-17 2019-01-04 湖南宸瀚信息科技有限责任公司 一种双层分片的高效区块链的共识机制及其工作方法
CN110431579A (zh) * 2019-01-08 2019-11-08 张季恒 基于结构化有向无环图的交易分配方法和装置
US20200026548A1 (en) * 2018-07-20 2020-01-23 Ezblock Ltd. Blockchain sharding with parallel threads
CN110941647A (zh) * 2019-11-11 2020-03-31 华中科技大学 一种基于dag的区块链的跨链交互方法和系统
CN111127013A (zh) * 2019-12-24 2020-05-08 深圳大学 基于区块链的去中心化数据交易方法、装置、设备及介质
US20200322162A1 (en) * 2019-04-06 2020-10-08 David Alan Beberman Distributed Proof-of-Work for Sharded or Parallel Blockchains
CN111861459A (zh) * 2019-04-28 2020-10-30 常州一仙智能科技有限公司 一种基于DPoS共识算法的Iota账本优化系统及方法
CN112260836A (zh) * 2020-09-28 2021-01-22 电子科技大学 一种基于分片技术提升区块链吞吐量的方法
CN112788139A (zh) * 2021-01-12 2021-05-11 北京工业大学 一种区块链存储容量优化方法及系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109150972A (zh) * 2018-07-17 2019-01-04 湖南宸瀚信息科技有限责任公司 一种双层分片的高效区块链的共识机制及其工作方法
US20200026548A1 (en) * 2018-07-20 2020-01-23 Ezblock Ltd. Blockchain sharding with parallel threads
CN110431579A (zh) * 2019-01-08 2019-11-08 张季恒 基于结构化有向无环图的交易分配方法和装置
US20200322162A1 (en) * 2019-04-06 2020-10-08 David Alan Beberman Distributed Proof-of-Work for Sharded or Parallel Blockchains
CN111861459A (zh) * 2019-04-28 2020-10-30 常州一仙智能科技有限公司 一种基于DPoS共识算法的Iota账本优化系统及方法
CN110941647A (zh) * 2019-11-11 2020-03-31 华中科技大学 一种基于dag的区块链的跨链交互方法和系统
CN111127013A (zh) * 2019-12-24 2020-05-08 深圳大学 基于区块链的去中心化数据交易方法、装置、设备及介质
CN112260836A (zh) * 2020-09-28 2021-01-22 电子科技大学 一种基于分片技术提升区块链吞吐量的方法
CN112788139A (zh) * 2021-01-12 2021-05-11 北京工业大学 一种区块链存储容量优化方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JIAN CHANG; JUNPEI NI; JIANG XIAO; XIAOHAI DAI; HAI JIN: "SynergyChain: A Multichain-based Data Sharing Framework with Hierarchical Access Control", 《 IEEE INTERNET OF THINGS JOURNAL》 *
WENHUI YANG; XIAOHAI DAI; JIANG XIAO; HAI JIN: "LDV: A Lightweight DAG-Based Blockchain for Vehicular Social Networks", 《 IEEE TRANSACTIONS ON VEHICULAR TECHNOLOGY》 *
刘曦子: "全球区块链技术与应用创新现状、趋势和启示", 《科技中国》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114219477A (zh) * 2021-11-03 2022-03-22 重庆邮电大学 基于链上存储的区块链数据存储扩展方法
CN114219477B (zh) * 2021-11-03 2022-09-16 重庆邮电大学 基于链上存储的区块链数据存储扩展方法
CN114168086A (zh) * 2021-12-22 2022-03-11 长沙理工大学 一种区块链数据存储方法、装置、设备及存储介质
WO2024004792A1 (ja) * 2022-06-28 2024-01-04 京セラ株式会社 ブロックチェーンシステム、ノード、及びプログラム
CN116846916A (zh) * 2023-09-01 2023-10-03 武汉趣链数字科技有限公司 数据同步方法、装置、电子设备及计算机可读存储介质
CN116846916B (zh) * 2023-09-01 2023-12-08 武汉趣链数字科技有限公司 数据同步方法、装置、电子设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN113553375B (zh) 2022-07-01
US20230009961A1 (en) 2023-01-12

Similar Documents

Publication Publication Date Title
CN113553375B (zh) 一种面向图式区块链的分片存储装置及方法
Zamani et al. Rapidchain: Scaling blockchain via full sharding
CN109493050B (zh) 基于区块链主链加并行多子链的转账方法
Xu et al. SlimChain: Scaling blockchain transactions through off-chain storage and parallel processing
CN109472572B (zh) 基于区块链主链加并行多子链的合约系统
Bonomi et al. B-coc: A blockchain-based chain of custody for evidences management in digital forensics
CN111131209B (zh) 一种改进的高效共识方法、系统、计算机设备及存储介质
CN112041872A (zh) 在分区区块链网络中维护区块链的区块
Hong et al. Scaling blockchain via layered sharding
CN111371905B (zh) 一种基于云计算的区块链分层共识证明系统与方法
CN109493052B (zh) 一种基于主链加并行多子链的跨链合约系统
CN113626875B (zh) 一种区块链分片赋能的知识图谱文件存储方法
Sohrabi et al. ZyConChain: A scalable blockchain for general applications
CN114567554B (zh) 一种基于节点信誉和分区共识的区块链构建方法
CN113157450A (zh) 在区块链系统中执行区块的方法及装置
CN116668313A (zh) 基于分片的可拓展区块链网络模型
Wan et al. AnonymousFox: An efficient and scalable blockchain consensus algorithm
Han et al. Analysing and improving shard allocation protocols for sharded blockchains
CN111026711A (zh) 基于区块链数据存储方法、装置、计算机设备及存储介质
CN114520812A (zh) 用于区块链分片系统的存储轮换方法、系统、设备及应用
Khacef et al. A Dynamic Sharding Model Aware Security and Scalability in Blockchain
CN116668135A (zh) 一种移动边缘设备参与的区块链共识方法、系统与装置
Mu et al. EfShard: Toward Efficient State Sharding Blockchain via Flexible and Timely State Allocation
Kim et al. Byzantine fault tolerance based multi-block consensus algorithm for throughput scalability
CN114637472A (zh) 基于dht的区块链存储扩展方法、电子设备及存储介质

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