安全高速轻量级的区块链系统及方法与流程

文档序号:17428957发布日期:2019-04-17 03:14阅读:615来源:国知局
安全高速轻量级的区块链系统及方法与流程

本发明涉及信息安全中的密码学技术领域,特别涉及一种安全高速轻量级的区块链系统及方法。



背景技术:

相关技术,随着区块链系统种类的增多和规模的增大,区块链系统运行消耗大量的电能,据法国《快报》周刊网站2017年11月28日报道,数据显示,造比特币一年的耗电量约为30.14太瓦时,超过了全球159个国家的年均用电量,这比19个欧洲国家和大部分非洲国家一年的用电量都高,爱尔兰一年的用电量是25太瓦时,斯洛伐克是28.3太瓦时,法国也仅为43.1太瓦时。

同时,比特币、以太坊是分布记录的节点的对等网络,并且每个节点从广播网络收集交易事务。但随着区块链网络节点的繁多和复杂,区块验证时间延迟了块的广播速率,交易确认时间也随之增多,导致区块链系统过于低效。比特币区块链每秒处理不到3笔交易,交易确认时间大约需要十分钟;以太坊做到了每秒处理5笔交易,交易确认大约需要几十秒的时间,这对用户体验而言并不友好。交易成本也会受到区块链本身交易费用的影响,因此对于小额交易而言交易成本会变得很高。另外由于区块链网络交易处理性能低下,并不能处理大并发的实时交易。



技术实现要素:

本申请是基于发明人对以下问题的认识和发现作出的:

2008年,中本聪(satoshinakamoto)首次提出并规范证明了比特币(bitcoin)的概念,比特币是一种利用对等网络和密码技术实现的密码货币系统,包括货币发行与交易,本质上是一个账单广播与管理系统。系统无任何特殊结节点,是去中心化点对点数字交易系统。系统设计绕开任何政府或其他第三方机构监管,可保护用户身份隐私。货币不可伪造性与防止双重花费由密码算法与协议保证,交易账单记录不可逆、不可伪造、不可否认、可验证。随着这种不通过金融机构的点对点交易的快速发展,比特币概念也从最早的数字货币衍生成一种去中心化的数字货币支付系统。

区块链(blockchain)技术,作为比特币交易系统中最核心的一种信息技术,可看作不需要许可的分布式数据库,维护一个持续增长、不可篡改的数据记录列表,信息或记录被记录在区块中,然后用杂凑函数(hash)与前一个区块“链接”,系统中每个节点上都有完整的数据拷贝因其交易系统的开放性、不依赖任何信任机构的去中心化性、时间戳和数字签名所保证的不可篡改性和合法交易存于区块链的永久性等特点,解决了双重消费问题和拜占庭将军问题,并实现了一种无信任的共识网络系统。

以太坊(ethereum)是一个全新开放的区块链平台,它允许任何人在平台中建立和使用通过区块链技术运行的去中心化应用。与比特币相同,以太坊不受任何个人控制,也不归任何个人所有,它是一个开放源代码项目,由全球范围内的众多参与方共同创建。和比特币协议有所不同的是,以太坊的设计十分灵活,极具适应性。在以太坊平台上创立新的应用十分简便,任何人都可以安全地使用该平台上的应用。以太坊在比特币区块链的基础上进行了重大改进:完善脚本系统,使智能合约能够应用在各种非金融领域;平衡账目实现更加精细的账目控制;使底层协议保持简单。区块链技术将众多领域内的概念和操作结合在一起,包括计算、通讯网络、密码学和人工智能等。以太坊可通过智能合约和智能资产来记录和转移更多复杂的资产类型,以区块链为基础提供了图灵完备脚本语言和图灵完备平台。

以比特币、以太坊为代表的区块链技术为了保证系统的安全性,采用工作量证明的机制生成新的区块,并对生成新区块的矿工进行奖励。区块链的数据块中存在关键数据项——随机数nonce。这串数字是一个单向函数的部分原像,由于没有高效确定性算法求单向函数的逆,因而唯一方法是不断尝试,成功者可能得到比特币奖励,所以寻找这个nonce的过程也被称为挖矿。符合要求的杂凑函数值应由n个前导零构成,零的个数决定挖矿难度。要得到成功的杂凑函数值需要经过大量的杂凑运算尝试,计算时间取决于机器的杂凑运算速度×尝试次数。

本发明旨在至少在一定程度上解决相关技术中的技术问题之一。

为此,本发明的一个目的在于提出一种安全高速轻量级的区块链系统,该系统可以有效降低挖矿带来的电能损耗,并提高了区块生成速率、缩短交易确认时间,并因此减少交易手续费用。

本发明的另一个目的在于提出一种安全高速轻量级的区块链方法。

为达到上述目的,本发明一方面实施例提出了一种安全高速轻量级的区块链系统,包括:初始化模块,用于在系统初始化时运行,对所述区块链系统的相关参数进行设置,并部署点对点网络,以通过初始阶段的区块生成将系统功能初始化并达到稳定的状态;注册和交易模块,用于在用户加入此系统时,调用用户注册函数,生成用户公私钥对,并将交易单发送至区块链网络中,通过网络节点验证交易单合法性,并继续将合法的交易广播至全网;区块生成模块,用于根据系统指定的目标区块链系统中特定区块内交易参与方地址,确定当前区块的矿工候选人集合,所述矿工候选人集合内候选人利用共识机制竞争产生新区块。

本发明实施例的安全高速轻量级的区块链系统,有效解决了区块链系统中普遍存在的验证效率低下问题,通过限定矿工资格的方式降低系统整体挖矿难度和减少挖矿参与方,从而降低挖矿带来的电能损耗;同时,因为矿工数量有限,有效避免了挖矿难度较低、矿工过多和网络延迟导致的废块生成,从而提高了区块生成速率、缩短交易确认时间,并因此减少交易手续费用。

另外,根据本发明上述实施例的安全高速轻量级的区块链系统还可以具有以下附加的技术特征:

进一步地,在本发明的一个实施例中,所述初始化模块包括:第一初始化单元,用于区块链参数初始化,并设置系统寄生的主流区块链,定义所述主流区块链系统组成、函数选取、初始挖矿难度、矿工确认动态阈值比初始值,初始化创世区块数据;第二初始化单元,用于区块链结构初始化,结合初始化参数,通过挖矿方式生成创世区块,并搭建点对点对等网络,预先开始所述区块链系统运行,生成新区块,维持系统稳定运行。

进一步地,在本发明的一个实施例中,所述注册和交易模块包括:注册单元,用于接收公私钥对生成请求后,根据系统选取的参数和数字签名函数生成公私钥对,私钥发送至用户,并将公钥作为接收支付的地址;第一生成单元,用于将交易发送方地址、交易接收方地址、交易金额写入交易单中,并利用发送方的私钥对交易单进行数字签名,交易单通过点对点网络发送至网络中;验证单元,用于对所述网络中各节点对收到的交易单有效性进行验证,验证发送方余额是否充足、数字签名是否合规与输出交易单有效或无效;广播单元,用于在得到交易单有效性后,若交易单无效,则丢弃,若交易单有效,则将有效的交易单继续广播至与其相邻的周围节点。

进一步地,在本发明的一个实施例中,所述区块生成模块包括:选定单元,用于根据所述系统指定的区块链作为母体区块链,且以寄生方式产生,通过设置区块选定函数,选定预设时间段之前的区块内交易参与方作为当前区块矿工候选人,允许参与挖矿;第二生成单元,用于将希望参与挖矿的节点通过所述母体区块链进行交易,将其公钥地址作为母体区块链中交易接收方,生成矿工候选人,以使所述矿工候选人收集当前时段有效交易单,并根据当前系统共识机制和挖矿难度使新的准区块杂凑函数符合预设难度规定,根据系统区块格式要求打包生成准新区块,并广播给其他矿工候选人;第三生成单元,用于在每个矿工候选人收到准区块后验证区块有效性后,若准区块有效,则生成数字签名作为确认标记,广播给其它矿工候选人,若针对任一准区块产生的确认标记数量与矿工候选人总数的比值超过矿工确认阈值比,则准区块矿工将此准区块与所有确认标记打包广播至区块链网络中;激励单元,用于采用预设激励机制对矿工、参与确认的矿工候选人按比例进行区块生成奖励,对矿工进行交易费奖励;验证与加入单元,用于在矿工广播新区块后,各节点验证区块有效性,其中,若区块有效,则加入本地存储,并与区块链中前一区块链接。

进一步地,在本发明的一个实施例中,给参与确认的矿工候选人奖励占区块生成奖励的预设比例,并平均分配给所有参与确认的矿工候选人,且所述奖励需在下一区块中包含。

为达到上述目的,本发明另一方面实施例提出了一种安全高速轻量级的区块链方法,包括以下步骤:在系统初始化时运行,对所述区块链系统的相关参数进行设置,并部署点对点网络,以通过初始阶段的区块生成将系统功能初始化并达到稳定的状态;在用户加入此系统时,调用用户注册函数,生成用户公私钥对,并将交易单发送至区块链网络中,通过网络节点验证交易单合法性,并继续将合法的交易广播至全网;根据系统指定的目标区块链系统中特定区块内交易参与方地址,确定当前区块的矿工候选人集合,所述矿工候选人集合内候选人利用共识机制竞争产生新区块。

本发明实施例的安全高速轻量级的区块链方法,有效解决了区块链系统中普遍存在的验证效率低下问题,通过限定矿工资格的方式降低系统整体挖矿难度和减少挖矿参与方,从而降低挖矿带来的电能损耗;同时,因为矿工数量有限,有效避免了挖矿难度较低、矿工过多和网络延迟导致的废块生成,从而提高了区块生成速率、缩短交易确认时间,并因此减少交易手续费用。

另外,根据本发明上述实施例的安全高速轻量级的区块链方法还可以具有以下附加的技术特征:

进一步地,在本发明的一个实施例中,所述用于在系统初始化时运行,对所述区块链系统的相关参数进行设置,并部署点对点网络,以通过初始阶段的区块生成将系统功能初始化并达到稳定的状态,进一步包括:区块链参数初始化,并设置系统寄生的主流区块链,定义所述主流区块链系统组成、函数选取、初始挖矿难度、矿工确认动态阈值比初始值,初始化创世区块数据;区块链结构初始化,结合初始化参数,通过挖矿方式生成创世区块,并搭建点对点对等网络,预先开始所述区块链系统运行,生成新区块,维持系统稳定运行。

进一步地,在本发明的一个实施例中,所述用于在用户加入此系统时,调用用户注册函数,生成用户公私钥对,并将交易单发送至区块链网络中,通过网络节点验证交易单合法性,并继续将合法的交易广播至全网,进一步包括:接收公私钥对生成请求后,根据系统选取的参数和数字签名函数生成公私钥对,私钥发送至用户,并将公钥作为接收支付的地址;将交易发送方地址、交易接收方地址、交易金额写入交易单中,并利用发送方的私钥对交易单进行数字签名,交易单通过点对点网络发送至网络中;对所述网络中各节点对收到的交易单有效性进行验证,验证发送方余额是否充足、数字签名是否合规与输出交易单有效或无效;在得到交易单有效性后,若交易单无效,则丢弃,若交易单有效,则将有效的交易单继续广播至与其相邻的周围节点。

进一步地,在本发明的一个实施例中,所述根据系统指定的目标区块链系统中特定区块内交易参与方地址,确定当前区块的矿工候选人集合,所述矿工候选人集合内候选人利用共识机制竞争产生新区块,进一步包括:根据所述系统指定的区块链作为母体区块链,且以寄生方式产生,通过设置区块选定函数,选定预设时间段之前的区块内交易参与方作为当前区块矿工候选人,允许参与挖矿;将希望参与挖矿的节点通过所述母体区块链进行交易,将其公钥地址作为母体区块链中交易接收方,生成矿工候选人,以使所述矿工候选人收集当前时段有效交易单,并根据当前系统共识机制和挖矿难度使新的准区块杂凑函数符合预设难度规定,根据系统区块格式要求打包生成准新区块,并广播给其他矿工候选人;在每个矿工候选人收到准区块后验证区块有效性后,若准区块有效,则生成数字签名作为确认标记,广播给其它矿工候选人,若针对任一准区块产生的确认标记数量与矿工候选人总数的比值超过矿工确认阈值比,则准区块矿工将此准区块与所有确认标记打包广播至区块链网络中;采用预设激励机制对矿工、参与确认的矿工候选人按比例进行区块生成奖励,对矿工进行交易费奖励;在矿工广播新区块后,各节点验证区块有效性,其中,若区块有效,则加入本地存储,并与区块链中前一区块链接。

进一步地,在本发明的一个实施例中,给参与确认的矿工候选人奖励占区块生成奖励的预设比例,并平均分配给所有参与确认的矿工候选人,且所述奖励需在下一区块中包含。

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为根据本发明一个实施例的安全高速轻量级的区块链系统的结构示意图;

图2为根据本发明一个具体实施例的安全高速轻量级的区块链系统的工作流程图;

图3为根据本发明一个实施例的区块链结构及其与母体区块链的关系图;

图4为根据本发明一个实施例的区块结构示意图;

图5为根据本发明一个实施例的安全高速轻量级的区块链系统的原理示意图;

图6为根据本发明一个实施例的安全高速轻量级的区块链方法的流程图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

下面参照附图描述根据本发明实施例提出的安全高速轻量级的区块链系统及方法,首先将参照附图描述根据本发明实施例提出的安全高速轻量级的区块链系统。

图1是本发明一个实施例的安全高速轻量级的区块链系统的结构示意图。

如图1所示,该安全高速轻量级的区块链系统10包括:初始化模块100、注册和交易模块200和区块生成模块300。

其中,初始化模块100用于在系统初始化时运行,对区块链系统的相关参数进行设置,并部署点对点网络,以通过初始阶段的区块生成将系统功能初始化并达到稳定的状态。注册和交易模块200用于在用户加入此系统时,调用用户注册函数,生成用户公私钥对,并将交易单发送至区块链网络中,通过网络节点验证交易单合法性,并继续将合法的交易广播至全网。区块生成模块300用于根据系统指定的目标区块链系统中特定区块内交易参与方地址,确定当前区块的矿工候选人集合,矿工候选人集合内候选人利用共识机制竞争产生新区块。本发明实施例的系统10有效解决了区块链系统中普遍存在的验证效率低下问题,从而可以有效降低挖矿带来的电能损耗,并提高了区块生成速率、缩短交易确认时间,并因此减少交易手续费用。

可以理解的是,本发明实施例的系统10可以在保证区块链系统安全性的前提下,通过限定矿工范围提高区块生成效率,使区块链交易速率大幅提高,并有效降低区块链挖矿难度和功耗,有效解决现有区块链系统交易速度慢、系统耗能大、交易成本高等问题。

具体地,本发明实施例的区块链是在现有主流且安全区块链系统的基础上以寄生子链的方式形成的区块链,并由矿工生成新区块,矿工由主流区块链系统中对应区块内交易完成方中竞争选出,竞争方式包括工作量证明、权益证明等,并通过上述交易完成方竞争确认的方式,对新区块实现验证和认可,实现安全前提下比现有区块链更加高速、轻量级的新型区块链系统。其中,本发明实施例以当前现存的主流区块链系统为母体区块链,以寄生子链的形式构成新型区块链。子链以寄生的模式,通过母体区块链中交易参与方的有限性来限制各时段内矿工数量,利用母体区块选定机制克服因母体区块分叉而带来的不稳定性,来确认子链中的矿工候选人、矿工确认阈值比。需要说明的是,本发明实施例基于其母体区块链的安全性和稳定性,根据倒推机制确保母体的寄生区块链未发生分叉;同时,本发明实施利用寄生区块中交易参与方有限的特性,限定此区块链各时段的矿工候选人有限,从而降低挖矿耗能,提升区块生成和交易确认速度。

本发明实施例的系统10为基于现有区块链系统的安全高效轻量寄生子链,该系统10包括初始化模块100、注册和交易模块200、区块生成模块300三部分,各模块按照“初始化模块100”→“注册和交易模块200”→“区块生成模块300”顺序执行。本发明实施例可适用于如比特币等大部分区块链系统中,在本具体实施方式中仅将以太坊作为一个实例进行阐述,下面将结合具体实施例对每一部分进行进一步阐述。

进一步地,在本发明的一个实施例中,初始化模块100包括:第一初始化单元和第二初始化单元。

其中,第一初始化单元,用于区块链参数初始化,并设置系统寄生的主流区块链,定义主流区块链系统组成、函数选取、初始挖矿难度、矿工确认动态阈值比初始值,初始化创世区块数据。第二初始化单元,用于区块链结构初始化,结合初始化参数,通过挖矿方式生成创世区块,并搭建点对点对等网络,预先开始区块链系统运行,生成新区块,维持系统稳定运行。

可以理解的是,如图2所示,该模块在系统初始化时运行,主要对区块链系统相关参数进行设置,并部署点对点网络,通过初始阶段的区块生成,将系统功能初始化并达到相对稳定的状态。该模块功能的具体实现分为两步:

步骤1:区块链参数初始化,设置系统寄生的主流区块链,定义此区块链系统组成、函数选取、初始挖矿难度、矿工确认动态阈值比初始值等参数,初始化创世区块数据。

步骤2:区块链结构初始化,结合初始化参数,通过挖矿方式生成创世区块,并搭建点对点对等网络,预先开始区块链系统运行,生成新区块,维持系统稳定运行。

具体而言,模块一:初始化模块100具体由两个步骤实现:

步骤1:本系统选取区块链初始化参数,声明本区块链与代币名称,采用与以太坊相同的初始化步骤,选取与以太坊相同的系统参数、签名函数、杂凑函数,设定低难度的初始挖矿难度,设定矿工确认动态阈值比初始值为k=1%,初始化创世区块相关参数。预先设定本寄生子链开始寄生的母体区块链区块数n和区块倒推数d,设定单位母体区块链间隔内本寄生子链生成区块数m,表示自以太坊第n区块开始初始化本寄生子链。

步骤2:区块链结构初始化,设定全节点通信与挖矿网络,搭建全节点矿工参与初步挖矿。本系统初始阶段前m个区块的矿工候选人从第n-d号区块内交易参与方中选择。如n=5,000,000,d=5,760,m=8,表示自从以太坊第5,000,000时刻(约2018年2月1日)开始生成创世区块,创世区块和前8个区块的矿工候选人是以太坊第4,994,240号区块中的所有交易参与方。

进一步地,在本发明的一个实施例中,注册和交易模块200包括:注册单元、第一生成单元、验证单元和广播单元。

其中,注册单元,用于接收公私钥对生成请求后,根据系统选取的参数和数字签名函数生成公私钥对,私钥发送至用户,并将公钥作为接收支付的地址;第一生成单元,用于将交易发送方地址、交易接收方地址、交易金额写入交易单中,并利用发送方的私钥对交易单进行数字签名,交易单通过点对点网络发送至网络中;验证单元,用于对网络中各节点对收到的交易单有效性进行验证,验证发送方余额是否充足、数字签名是否合规与输出交易单有效或无效;广播单元,用于在得到交易单有效性后,若交易单无效,则丢弃,若交易单有效,则将有效的交易单继续广播至与其相邻的周围节点。

可以理解的是,如图2所示,该模块200在用户加入此系统时,需调用用户注册函数,生成用户公私钥对。交易单发送至区块链网络中,网络节点可验证交易单合法性,并继续将合法交易广播至全网。该模块200功能的实现分四步:

步骤3:公私钥对注册,假设节点用户为alice请求生成公私钥对,则根据系统选取的参数和数字签名函数生成alice的公私钥对,alice秘密保存私钥,并将公钥作为接收支付的地址。

步骤4:交易单生成,交易发送方地址、交易接收方地址、交易金额写入交易单中,并利用发送方私钥对交易单进行数字签名,交易单通过点对点网络发送至网络中。

步骤5:交易单验证,网络中各节点对收到的交易单有效性进行验证,验证发送方余额是否充足、数字签名是否合规,输出交易单有效/无效。

步骤6:交易单广播,在步骤5之后节点得到交易单有效性,若交易单无效则丢弃,若交易单有效则将此交易单继续广播至与其相邻的周围节点。

具体而言,模块二:注册和交易模块具体由四个步骤实现:

步骤3:公私钥对注册,用户节点请求加入本区块链系统时,需使用本系统参数,运行系统选取的数字签名算法中的公私钥对生成函数,即用户可运行与以太坊中ecdsa中相同的注册算法,生成该用户的公钥地址和私钥,公钥地址作为用户可用于存储、支付和接收交易的地址,私钥可下载到用户本地,用户将私钥妥善保管。

步骤4:交易单生成,当交易行为发生时,发送方需保证其公钥地址中拥有足以支付该金额和手续费的余额,发送方将其公钥地址作为支付地址,接收方公钥地址作为接收地址,将支付金额从支付地址余额转移至接收地址总金额,声明交易手续费并从支付地址扣除相应金额,并利用发送方的私钥运行ecdsa数字签名算法签名函数生成此交易的数字签名,组成交易单,通过网络广播至与其相邻的节点。

步骤5:交易单验证,网络节点在接收到交易单之后,利用发送方的公钥地址运行ecdsa数字签名算法的签名验证函数,验证交易点数字签名有效性,并验证支付地址、接收地址、交易金额变化是否有效,若均验证有效,则本步骤输出有效,否则输出无效。

步骤6:交易单广播,在步骤5之后得到交易单有效性,若交易单验证输出为有效,则进一步通过网络将交易单广播,若无效则丢弃该交易单。

进一步地,在本发明的一个实施例中,区块生成模块300包括:选定单元、第二生成单元、第三生成单元、激励单元和验证与加入单元。

其中,选定单元,用于根据系统指定的区块链作为母体区块链,且以寄生方式产生,通过设置区块选定函数,选定预设时间段之前的区块内交易参与方作为当前区块矿工候选人,允许参与挖矿;第二生成单元,用于将希望参与挖矿的节点通过母体区块链进行交易,将其公钥地址作为母体区块链中交易接收方,生成矿工候选人,以使矿工候选人收集当前时段有效交易单,并根据当前系统共识机制和挖矿难度使新的准区块杂凑函数符合预设难度规定,根据系统区块格式要求打包生成准新区块,并广播给其他矿工候选人;第三生成单元,用于在每个矿工候选人收到准区块后验证区块有效性后,若准区块有效,则生成数字签名作为确认标记,广播给其它矿工候选人,若针对任一准区块产生的确认标记数量与矿工候选人总数的比值超过矿工确认阈值比,则准区块矿工将此准区块与所有确认标记打包广播至区块链网络中;激励单元,用于采用预设激励机制对矿工、参与确认的矿工候选人按比例进行区块生成奖励,对矿工进行交易费奖励;验证与加入单元,用于在矿工广播新区块后,各节点验证区块有效性,其中,若区块有效,则加入本地存储,并与区块链中前一区块链接。

其中,在本发明的一个实施例中,给参与确认的矿工候选人奖励占区块生成奖励的预设比例,并平均分配给所有参与确认的矿工候选人,且奖励需在下一区块中包含。

可以理解的是,如图2所示,区块生成模块300,根据系统指定的现有区块链系统中特定区块内交易参与方地址,确定本系统当前区块矿工候选人集合,此集合内候选人利用共识机制(如工作量证明、权益证明等)竞争产生新区块,在此系统中所设挖矿难度低、区块生成时间短。模块300功能分为五步实现:

步骤7:母体区块链内区块选定,根据系统指定的区块链作为母体区块链,此区块链以寄生方式产生,通过设置区块选定函数,本系统选定一定时间段之前的区块内交易参与方作为当前区块矿工候选人,因此此时段内只有此类矿工候选人可以参与挖矿。

步骤8:准区块生成,即挖矿。希望参与挖矿的节点首先通过母体区块链进行交易,可将其公钥地址作为母体区块链中交易接收方,从而在之后的某时段内称为矿工候选人。矿工候选人收集当前时段有效交易单,根据当前系统共识机制和挖矿难度,使新的准区块杂凑函数符合难度规定,根据系统区块格式要求打包生成准新区块,并广播给其他矿工候选人。

需要说明的是,初始化阶段确立准区块模式以及新型激励机制,并提出准区块概念和矿工候选人确认阈值比等激励机制保证区块生成过程中提升速率和降低废块率。

步骤9:新区块生成,各矿工候选人收到准区块后验证区块有效性,包括交易单有效性、挖矿结果有效性,若准区块有效则对此区块生成一个数字签名作为确认标记,广播给其它矿工候选人。若针对某准区块产生的确认标记数量与矿工候选人总数的比值超过矿工确认阈值比,则准区块矿工将此准区块与所有确认标记打包广播至区块链网络中。

步骤10:激励机制,本系统采用与现有区块链系统类似的激励机制,即总量有限、定期减半,对矿工、参与确认的矿工候选人按比例进行区块生成奖励,对矿工进行交易费奖励。其中,给参与确认的矿工候选人奖励占区块生成奖励的一定比例,并平均分配给所有参与确认的矿工候选人,这一奖励需在下一区块中包含,即每个区块应包含上一区块中各个参与确认的矿工候选人所获得的奖励。

步骤11:新区块验证与加入,在矿工广播新区块后,各节点验证区块有效性,包括交易单有效性、挖矿结果有效性、矿工确认阈值比及奖励分配,若区块有效,则将该区块加入本地存储,并与区块链中前一区块链接。

具体而言,结合图3和图4所示,区块生成模块300具体由五个步骤实现:

步骤7:母体区块链内区块选定,设本区块链中当前生成区块为t,则第t个区块的矿工候选人来自以太坊区块链第q个区块,其中如n=5,000,000,d=5,760,m=8,t=100,表示本区块链中第100个区块的矿工候选人为以太坊第4,994,252号区块中的交易参与方,其公钥地址组成矿工候选人集合s={s0,…sn},按照当前以太坊区块生成时间15秒计算,此矿工候选人区块约为24小时前的稳定区块,因此可以基本排除分叉、废块的问题。

步骤8:准区块生成(挖矿),任何希望参与本区块链系统第t个区块挖矿的节点需参与以太坊第q个区块的交易,如将其地址作为该区块中交易单的接收地址,即步骤7中所获矿工候选人集合s中的矿工候选人可参与当前区块t的挖矿。s收集并验证当前时段内有效交易单,利用默克尔树结构对交易单进行杂凑函数运算并得到杂凑函数根,并将上一区块杂凑函数值、交易单杂凑函数根、时间戳等放入区块头中,利用工作量证明的机制得到符合系统难度规定的随机数,打包生成当前时段的准区块,并广播给其他矿工候选人。

步骤9:新区块生成,集合s中的矿工候选人收到最先到达的准区块后,验证交易单有效性、挖矿结果有效性,若该准区块有效,则该候选人生成一个该准区块的数字签名作为确认标记b,并将b反馈给生成准区块的矿工。若矿工收集到b的个数超过k×|s|,则矿工将b与准区块打包广播至区块链网络中。

步骤10:激励机制,本系统激励机制与以太坊类似,对每个区块矿工和参与确认的矿工候选人奖励与以太坊矿工相同的奖励,其中矿工可获得80%,参与确认的矿工候选人获得20%,交易费用奖励矿工。同时,每当生成新区块时,需将上一区块给予矿工候选人的奖励写入新区块中。

步骤11:新区块验证与加入,网络节点收到新区块后,验证准区块有效性、验证确认标记b的个数超过k×|s|,若新区块有效,则将新区块存储,链接到区块链中,并将新区块进一步广播至网络。

下面根据图5对安全高速轻量级的区块链系统的原理进行进一步说明。

s101,该系统以当前现存的主流区块链系统为母体区块链,以寄生子链的形式构成新型区块链,通过母体区块链中交易参与方的有限性来限制各时段内矿工数量;

s102,利用母体区块选定机制克服因母体区块分叉而带来的不稳定性,并提出矿工候选人、矿工确认阈值比、准区块模式、以及新型激励机制;

s103,实现在降低区块生成难度和时间间隔的同时保障区块链系统的安全性和稳定性,从而解决当前区块链系统低效率、高耗能的问题。

综上,本发明实施例提出一种在现有安全区块链系统的基础上以寄生子链的形式搭建的高速轻量区块链系统,其安全性、稳定性基于其母体区块链的安全性和稳定性,并根据倒推机制确保其寄生区块未发生分叉,利用寄生区块中交易参与方有限的特性,限定此区块链各时段的矿工候选人有限,从而降低挖矿耗能,提升区块生成和交易确认速度,同时,提出准区块概念和矿工候选人确认阈值比等激励机制保证区块生成过程中提升速率和降低废块率。

根据本发明实施例提出的安全高速轻量级的区块链系统,有效解决了区块链系统中普遍存在的验证效率低下问题,通过限定矿工资格的方式降低系统整体挖矿难度和减少挖矿参与方,从而降低挖矿带来的电能损耗;同时,因为矿工数量有限,有效避免了挖矿难度较低、矿工过多和网络延迟导致的废块生成,从而提高了区块生成速率、缩短交易确认时间,并因此减少交易手续费用。

其次参照附图描述根据本发明实施例提出的安全高速轻量级的区块链方法。

图6是本发明一个实施例的安全高速轻量级的区块链方法的流程图。

如图6所示,该安全高速轻量级的区块链方法包括以下步骤:

在步骤s601中,在系统初始化时运行,对区块链系统的相关参数进行设置,并部署点对点网络,以通过初始阶段的区块生成将系统功能初始化并达到稳定的状态。

在步骤s602中,在用户加入此系统时,调用用户注册函数,生成用户公私钥对,并将交易单发送至区块链网络中,通过网络节点验证交易单合法性,并继续将合法的交易广播至全网。

在步骤s603中,根据系统指定的目标区块链系统中特定区块内交易参与方地址,确定当前区块的矿工候选人集合,矿工候选人集合内候选人利用共识机制竞争产生新区块。

进一步地,在本发明的一个实施例中,用于在系统初始化时运行,对区块链系统的相关参数进行设置,并部署点对点网络,以通过初始阶段的区块生成将系统功能初始化并达到稳定的状态,进一步包括:区块链参数初始化,并设置系统寄生的主流区块链,定义主流区块链系统组成、函数选取、初始挖矿难度、矿工确认动态阈值比初始值,初始化创世区块数据;区块链结构初始化,结合初始化参数,通过挖矿方式生成创世区块,并搭建点对点对等网络,预先开始区块链系统运行,生成新区块,维持系统稳定运行。

进一步地,在本发明的一个实施例中,用于在用户加入此系统时,调用用户注册函数,生成用户公私钥对,并将交易单发送至区块链网络中,通过网络节点验证交易单合法性,并继续将合法的交易广播至全网,进一步包括:接收公私钥对生成请求后,根据系统选取的参数和数字签名函数生成公私钥对,私钥发送至用户,并将公钥作为接收支付的地址;将交易发送方地址、交易接收方地址、交易金额写入交易单中,并利用发送方的私钥对交易单进行数字签名,交易单通过点对点网络发送至网络中;对网络中各节点对收到的交易单有效性进行验证,验证发送方余额是否充足、数字签名是否合规与输出交易单有效或无效;在得到交易单有效性后,若交易单无效,则丢弃,若交易单有效,则将有效的交易单继续广播至与其相邻的周围节点。

进一步地,在本发明的一个实施例中,根据系统指定的目标区块链系统中特定区块内交易参与方地址,确定当前区块的矿工候选人集合,矿工候选人集合内候选人利用共识机制竞争产生新区块,进一步包括:根据系统指定的区块链作为母体区块链,且以寄生方式产生,通过设置区块选定函数,选定预设时间段之前的区块内交易参与方作为当前区块矿工候选人,允许参与挖矿;将希望参与挖矿的节点通过母体区块链进行交易,将其公钥地址作为母体区块链中交易接收方,生成矿工候选人,以使矿工候选人收集当前时段有效交易单,并根据当前系统共识机制和挖矿难度使新的准区块杂凑函数符合预设难度规定,根据系统区块格式要求打包生成准新区块,并广播给其他矿工候选人;在每个矿工候选人收到准区块后验证区块有效性后,若准区块有效,则生成数字签名作为确认标记,广播给其它矿工候选人,若针对任一准区块产生的确认标记数量与矿工候选人总数的比值超过矿工确认阈值比,则准区块矿工将此准区块与所有确认标记打包广播至区块链网络中;采用预设激励机制对矿工、参与确认的矿工候选人按比例进行区块生成奖励,对矿工进行交易费奖励;在矿工广播新区块后,各节点验证区块有效性,其中,若区块有效,则加入本地存储,并与区块链中前一区块链接。

进一步地,在本发明的一个实施例中,给参与确认的矿工候选人奖励占区块生成奖励的预设比例,并平均分配给所有参与确认的矿工候选人,且奖励需在下一区块中包含。

需要说明的是,前述对方法实施例的解释说明也适用于该实施例的装置,此处不再赘述。

根据本发明实施例提出的安全高速轻量级的区块链方法,有效解决了区块链系统中普遍存在的验证效率低下问题,通过限定矿工资格的方式降低系统整体挖矿难度和减少挖矿参与方,从而降低挖矿带来的电能损耗;同时,因为矿工数量有限,有效避免了挖矿难度较低、矿工过多和网络延迟导致的废块生成,从而提高了区块生成速率、缩短交易确认时间,并因此减少交易手续费用。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

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