一种同构双模主副链的区块链系统及其区块生产方法与流程

文档序号:18030390发布日期:2019-06-28 22:35阅读:330来源:国知局
一种同构双模主副链的区块链系统及其区块生产方法与流程

本发明涉及区块链技术领域,具体涉及一种同构双模主副链的区块链系统及其区块生产方法。



背景技术:

互联网技术的应用逐渐向人类活动的各领域渗透。2008年11月1日,署名中本聪的作者发表论文,详细描述了如何创建一套不需要创建在交易双方相互信任的基础之上去中心化的电子交易体系,并将这套体系命名为比特币。随着比特币的诞生,其核心区块链技术一度成为科学研究的重点和各行业应用热点。

区块链技术的应用领域所涉及的行业广泛且具有极高的安全性要求,在应用环境中,区块链的安全被提升到了一个十分必要的高度。现有的区块链技术尽管不断得到研究、应用,却依旧存在着一定的局限,面临诸多挑战。

本申请发明人在实施本发明的过程中,发现现有技术的方法,至少存在如下技术问题:

现有的区块链系统,通常采用的方法是通过增大挖矿难度、控制新区块的产生速度,来解决现实网络环境的不稳定与网络时延的影响。然而,相比于传统数据库系统,更慢的区块产生速度意味着区块链系统数据更新的延缓。针对一些对时效性敏感且同时需要区块链系统不可篡改性保证的数据而言,不确定且偏长的产块时间期望将会给区块链系统的使用者造成极大不便。

由此可知,现有技术中存在稳定性与及时性的矛盾,即稳定性和及时性无法兼顾。



技术实现要素:

有鉴于此,本发明提供了一种同构双模主副链的区块链系统及其区块生产方法,用以解决或者至少部分解决现有技术中稳定性和及时性无法兼顾的技术问题。

本发明第一方面提供了一种同构双模主副链的区块链系统,包括数据层和共识层,

数据层设置双区块指针,采用两个存储区域分别存储上一个主模式区块的哈希值与上一个主模式区块后最新的副模式区块的哈希值;

共识层,通过双区块指针形成同构双模的主副链架构,包括逻辑主链和逻辑副链,且主模式下采用预设单链架构工作量证明难度更新机制,副模式下采用与主模式具有倍数关系的工作量证明难度更新机制,

其中,主模式下工作量证明难度更新时间的数学期望与主模式工作量证明难度更新周期d和主模式区块产生时间的期望t的关系为:

主模式工作量证明难度更新时间=d×t

主模式下新难度的计算公式为:

新难度=旧难度×(产生前d个区块的实际总时间/(d×t))

其中,旧难度用以表征上一时间片的难度,新难度用以表征下一时间片的难度;

副模式工作量证明难度的计算方式如下:

副模式工作量证明难度=主模式工作量证明难度/k

其中,k为预设值;

主链上的主模式区块负责对外提供数据库服务,副链上的副模式区块负责对内提供及时更新的辅助信息挂载。

在一种实施方式中,共识层采用长链原则与唯一原则并存的分叉处理机制。

在一种实施方式中,采用长链原则与唯一原则并存的分叉处理机制具体包括:

主链模式中采用最长链原则对分叉进行处理,从而产生确定的主链区块,副模式中采用每一个主链区块确定后,其与上一个主链区块间的副链通过副哈希指针唯一确定。

基于同样的发明构思,本发明第二方面提供了一种基于第一方面所述的区块链系统的区块生产方法,包括:

步骤s1:接入区块链网络,将区块链网络现有的全部的区块信息至主机;

步骤s2:收集客户端记账请求,存入待生成区块;

步骤s3:根据需求确定辅助信息,其中,辅助信息包括转账附言、指令信息、辅助性安全认证信息、管理信息,存入待生成区块;

步骤s4:实时更新区块链网络中最新生成的区块信息,根据最新合法区块信息,将待生成区块的主哈希指针指向全网中最新生成的主模式区块,将待生成区块的副哈希指针指向全网中最新生成的副模式区块,对最新确定的待生成区块计算整体区块的哈希值与目标难度对比,进行工作量证明;

步骤s5:实时根据最新区块信息与难度更新规则更新目标难度值,对比目标难度值与每次哈希尝试的结果,确定是否产生新的合法区块,若符合主模式难度机制,则向全网公布为新的主模式区块,如符合副模式难度机制,则向全网公布为新的副模式区块。

在一种实施方式中,交易数据验证方式采用只认可主模式区块上记录的交易数据的方式,管理信息验证方式采用同时认可主副模式区块上的辅助信息的方式。

本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:

本发明提供的一种同构双模主副链的区块链系统,采用的是一种兼顾分布式数据库服务的稳定性以及内部管理信息更新及时性的新型区块链技术架构。通过设计主副两个区块链指针,利用倍数难度关系的主副挖矿模式,回收废旧算力,将区块链拟合为一条逻辑上的主链和一条逻辑上的副链。其中主链上的主模式区块负责对外提供稳定的数据库服务,副链上的副模式区块负责对内提供及时更新的辅助信息挂载。

本发明通过对区块链系统的结构优化,形成了一套逻辑上的双链结构,通过主链外服务、副链内管理实现区块链稳定服务与快速生产区块能力的兼顾,解决了现有技术中稳定性和及时性无法兼顾的技术问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中同构双模主副链结构示意图;

图2为一种具体示例中双哈希指针结构示意图;

图3为本发明实施例中难度更新机制的示意图;

图4是一种具体示例中同构双模的主副链区块链系统的架构图;

图5为本发明实施例中副模式分叉处理机制示意图;

图6是本发明实施例中区块生产方法的流程图。

具体实施方式

本发明的目的在于提供一种同构双模主副链的区块链系统及其区块生产方法,用以改善现有技术中存在的稳定性和及时性无法兼顾的技术问题。

本发明的主要构思如下:

提供了一种兼顾分布式数据库服务的稳定性以及内部管理信息更新及时性的新型区块链技术架构。通过设计主副两个区块链指针,利用倍数难度关系的主副挖矿模式,回收废旧算力,将区块链拟合为一条逻辑上的主链和一条逻辑上的副链。其中主链上的主模式区块负责对外提供稳定的数据库服务,副链上的副模式区块负责对内提供及时更新的辅助信息挂载。本发明的实现方案具体包括倍数关系的难度更新机制、同构双模的主副链架构和长链原则与唯一原则并存的分叉处理机制。本发明通过对区块链系统的结构优化,形成了一套逻辑上的双链结构,通过主链外服务、副链内管理实现区块链稳定服务与快速产块能力的兼顾。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

本实施例提供了一种同构双模主副链的区块链系统,包括数据层和共识层,

数据层设置双区块指针,采用两个存储区域分别存储上一个主模式区块的哈希值与上一个主模式区块后最新的副模式区块的哈希值;

共识层,通过双区块指针形成同构双模的主副链架构,包括逻辑主链和逻辑副链,且主模式下采用预设单链架构工作量证明难度更新机制,副模式下采用与主模式具有倍数关系的工作量证明难度更新机制,

其中,主模式下工作量证明难度更新时间的数学期望与主模式工作量证明难度更新周期d和主模式区块产生时间的期望t的关系为:

主模式工作量证明难度更新时间=d×t

主模式下新难度的计算公式为:

新难度=旧难度×(产生前d个区块的实际总时间/(d×t))

其中,旧难度用以表征上一时间片的难度,新难度用以表征下一时间片的难度;

副模式工作量证明难度的计算方式如下:

副模式工作量证明难度=主模式工作量证明难度/k

其中,k为预设值;

主链上的主模式区块负责对外提供数据库服务,副链上的副模式区块负责对内提供及时更新的辅助信息挂载。

具体来说,本发明在数据层的创新是双区块指针设计。具体通过对区块存储结构的设计实现区块的双哈希指针结构,为同构双模主副链架构的逻辑实现奠定基础。区块的数据结构中,除原有记录前一个区块的哈希值的存储区域(指向前一个区块的指针)外,添加一个新的记录之前区块哈希值的存储区域。采用这两个存储区域分别存储上一个主模式区块的哈希值与上一个主模式区块后最新的副模式区块的哈希值。请参见图2,为双哈希指针结构的示意图。

在图2中,本发明以现有广泛应用的单链区块链系统(以比特币区块链为例)中区块结构为基础,对本发明中双哈希指针的设计进行了示意。在现有主流的单链区块链系统中,区块结构主要分为区块头与交易列表。区块头中包含存储上一个区块的哈希值的字段作为哈希指针等相关区块链结构特性的数据结构,交易列表中存储区块链中所记录的重要交易数据。交易列表通过默克尔哈希树(merkletree)的方式连接在区块头上。默克尔哈希树(merkletree)是为了解决多重一次签名中的认证问题而产生的,默克尔哈希树(merkletree)结构具有一次签名大量认证的优点,在认证方面具有显著的优势。本发明将区块头中的哈希指针结构优化为双指针结构。

下面介绍共识层,采用了倍数关系的难度更新机制,

具体来说,本发明在主模式环境中采用与单链架构的一般区块链系统一致的工作量证明难度更新机制,而对于副模式难度更新机制,本发明提出与主模式工作量证明难度更新机制具有恒定关系且具有直接的数学倍数关系的副模式工作量证明难度更新机制。其中,应用者根据自身系统应用环境确定主模式区块产生时间的期望t,每隔d个区块,所有的节点重新更新比特币的挖矿难度目标。

在具体的实施过程中,由于每一个区块链系统中的挖矿难度都在时刻更新,旧难度指上一时间片(例:在比特币区块链系统中挖矿难度每2016个区块更新一次,因此,以比特币为例上一时间片即指在难度更新前的2016个区块产生的时间片)中各节点进行工作量证明(挖矿)的难度,新难度即指下一个时间片所更新的难度,其中的变量d即可由系统的运用者根据自身实际所确定的难度更新周期。

假设每次哈希计算结果服从均匀分布,对同一数据结构的区块进行逆向哈希求解的工作量证明时,工作量证明难度与下一区块的生成时间的数学期望成正比例关系。

基于此,本发明将生成副链区块的难度值要求设定为基于主链难度值更新机制得到的难度值的k倍,以确保副链产生区块数量稳定于主链区块数量数学期望的k倍。本实施例采用如下的副模式工作量证明难度更新机制:

副模式工作量证明难度采取与当前时刻主模式工作量证明难度恒定k倍的倍数关系。

副模式难度=主模式难度/k

在区块头数据上的体现为:

副模式目标值=主模式目标值×k

其中,图3示出了难度更新机制原理。

在图3中,本发明以现有广泛应用的单链区块链系统(以比特币区块链为例)中难度更新机制为基础,对本发明中双链结构下主副模式区块的难度更新机制进行了示意。在现有主流单链结构的区块链系统中,系统中各节点进行工作量证明的目标难度每产生d个区块更新一次,其更新的基本原则是不断适应全网节点算力的变化,不断使得区块产生的时间趋近于t分钟的期望。而根据难度更新机制中主副模式区块难度的恒定倍数k的关系,在t分钟内产生副模式区块的期望则为k个。

除了采用了倍数关系的难度更新机制之外,共识层还形成了同构双模的主副链架构。

具体地,由双指针结构分别串连并以主副模式下工作量证明难度为唯一标识的主副模式区块组成的同构双模的区块架构。依据数据层的部署,本发明可以在已有数据结构与共识协议的基础上,在新结构下的区块上串连起一条逻辑上的主链和一条逻辑上的副链,形成同构双模的主副链架构的区块链系统。其中,逻辑上的主副链结构如图1所示,此外,图4为一种具体示例中同构双模的主副链区块链系统的架构图。

在图4中,本发明在图2的基础上以全景视图展示了本发明的一种具体实例中的应用方式。图左侧是从下向上生长的一条同构多模的主副链架构区块链的示意。在实例中,区块结构与图2相同,即以区块头以及通过默克尔哈希树(merkletree)连接的交易列表组成。在现有单链结构的区块链系统中,交易列表中的第一笔交易不记录实际交易,而是作为币基交易(coinbase)记录版本号等所属区块链系统的属性与辅助信息,币基交易中的币基数据中存在存储结构上的较大冗余。因而,本发明在此实例中将副模式区块的相关信息以及存储数据存放在币基交易(coinbase)中币基数据字段。其中包括了主模式区块高度、副模式区块高度与辅助信息列表等内容,通过这样的设计实现了现有主流区块链结构中冗余的利用,同时可以最大限度地保护现行稳定的区块链系统核心结构,以防止衍生的不稳定因素产生。

在一种实施方式中,共识层采用长链原则与唯一原则并存的分叉处理机制。

其中,采用长链原则与唯一原则并存的分叉处理机制具体包括:

主链模式中采用最长链原则对分叉进行处理,从而产生确定的主链区块,副模式中采用每一个主链区块确定后,其与上一个主链区块间的副链通过副哈希指针唯一确定。

具体来说,在现实网络环境下,为确保区块链系统本身的去中心化部署,本发明中主模式处理潜在的副链分叉的基本原则依然遵循最长链原则。然而,副模式由于其本身的不确定性且不能干扰主模式的稳定运行,因此,本发明以唯一原则对副模式分叉进行处理。即两个合法的主模式区块间只有唯一一条由副指针一一连接的副模式区块链。其中,图5示出了副模式分叉处理机制。

在图5中,对本发明中双链结构下副模式区块的分叉处理机制进行了示意。与在现有主流单链结构的区块链系统分叉处理的“最长链原则”不同,本发明中副模式分叉的处理依赖于下一个合法的主模式区块的确定。无论在产生下一个合法的主模式区块之前副模式区块链发生多少分叉,在主模式区块产生后,沿副哈希指针方向,在相邻的前后两个主模式区块之间,可以确定唯一的一条副模式区块链,而不在这条副模式区块链上的区块则为非法副模式区块(即图5中深色填充的区块),应当舍弃。

本发明的技术方案对区块链系统的修改包括以下结构创新:

1.1数据层:增加双哈希指针结构的设计;

2.1共识层:倍数关系的难度更新机制;

2.2共识层:同构双模的主副链架构;

2.3共识层:长链原则与唯一原则并存的分叉处理机制。

本发明相比现有技术,其优点和积极效果主要体现在以下几个方面:

1.为区块链系统提供了数据分层的逻辑存储结构,满足区块链技术使用者的数据分层需求。

2.满足现实网络环境下服务稳定性的同时提供管理与辅助信息更新的及时性。

3.实现挖矿中间结果的回收利用,恒定倍数的主副模式难度关系下,单链结构中被舍弃的符合一定难度要求但不符合高难度要求的区块被回收,从而兼顾稳定性的同时提供及时更新的信息挂载方案而不额外消耗算力。

4.本发明的架构可提供区块链系统的安全防御方案,提高区块链系统的安全性。

基于同一发明构思,本申请还提供了基于实施例一中同构双模主副链的区块链系统实现的区块生产方法,详见实施例二。

实施例二

本实施例提供了一种基于实施例一所述的同构双模主副链的区块链系统的区块生产方法,请参见图6,该方法包括:

步骤s1:接入区块链网络,将区块链网络现有的全部的区块信息至主机;

步骤s2:收集客户端记账请求,存入待生成区块;

步骤s3:根据需求确定辅助信息,其中,辅助信息包括转账附言、指令信息、辅助性安全认证信息、管理信息,存入待生成区块;

步骤s4:实时更新区块链网络中最新生成的区块信息,根据最新合法区块信息,将待生成区块的主哈希指针指向全网中最新生成的主模式区块,将待生成区块的副哈希指针指向全网中最新生成的副模式区块,对最新确定的待生成区块计算整体区块的哈希值与目标难度对比,进行工作量证明;

步骤s5:实时根据最新区块信息与难度更新规则更新目标难度值,对比目标难度值与每次哈希尝试的结果,确定是否产生新的合法区块,若符合主模式难度机制,则向全网公布为新的主模式区块,如符合副模式难度机制,则向全网公布为新的副模式区块。

在具体的实施过程中,步骤s2循环执行,收集客户端记账请求,存入并更新待生成区块。步骤s3中,辅助信息可以根据使用者的自身需求选择对稳定性要求不高但对及时性要求很高的依赖区块链系统不可篡改性的信息,包括但不限于转账附言、指令信息、辅助性安全认证信息、管理信息。且步骤s3也往复执行,将辅助信息存入待生成区块。

步骤s4中,通过在主哈希指针上记录最新主模式区块的哈希值的方式,将待生成区块的主哈希指针指向全网中最新生成的主模式区块,通过在副哈希指针上记录最新副模式区块的哈希值的方式,将待生成区块的副哈希指针指向全网中最新生成的副模式区块。需要说明的是,区块链系统中存在很多节点,因此全网区块每分每秒都在更新,步骤s1中的全网区块是指在节点加入时刻的全网现存区块,此时新的区块还在产生,需要将加入的节点实时更新,对系统本身而言当然越频繁越好,但考虑到网络资源有限,更新频率可有节点自身决定。步骤s4和步骤s5也往复执行,从而不断生产出新的区块。

在一种实施方式中,交易数据验证方式采用只认可主模式区块上记录的交易数据的方式,管理信息验证方式采用同时认可主副模式区块上的辅助信息的方式。

由于本发明实施例二所介绍的区块生产方法,为基于本发明实施例一中的同构双模主副链的区块链系统所实现的方法,故而基于本发明实施例一所介绍的同构双模主副链的区块链系统,本领域所属人员能够了解该方法的具体实施过程,故而在此不再赘述。凡是本发明实施例一的同构双模主副链的区块链系统所实现的方法都属于本发明所欲保护的范围。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1