CN109039646A - 一种基于节点能力的区块链区块打包和验证方法及系统 - Google Patents
一种基于节点能力的区块链区块打包和验证方法及系统 Download PDFInfo
- Publication number
- CN109039646A CN109039646A CN201810764938.9A CN201810764938A CN109039646A CN 109039646 A CN109039646 A CN 109039646A CN 201810764938 A CN201810764938 A CN 201810764938A CN 109039646 A CN109039646 A CN 109039646A
- Authority
- CN
- China
- Prior art keywords
- node
- block
- chain
- packaged
- super
- 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
Links
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/32—Cryptographic 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/3247—Cryptographic 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Economics (AREA)
- Signal Processing (AREA)
- Development Economics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于节点能力的区块链区块打包和验证方法及系统,涉及区块链、虚拟货币及人工智能领域;其方法包括步骤1:将各节点进行分类获取不同类型的节点;步骤2:计算链条难度值总和确定权威链;步骤3:根据权威链上区块在设定周期内的位置,分配挖矿权给不同类型的节点;步骤4:获取挖矿权的不同类型的节点结合交易进行打包和交替产生新区块后,将新区块广播至各节点;步骤5:各节点根据产生新区块的节点类型对新区块进行验证;本发明解决了现有区块链区块打包和验证效率低、无法保证去中心化的问题,达到了提高节点区块挖掘与交易记录的高效与准确性、实现去中心化保证公平性的效果。
Description
技术领域
本发明涉及区块链、虚拟货币及人工智能领域,尤其是一种基于节点能力的区块链区块打包和验证方法及系统。
背景技术
目前,比特币区块链系统一年的耗电量相当于秘鲁全国一年的用电量,并且还处于快速增长过程中;而这些巨量的计算和耗电量,除了产生比特币区块外,对人类社会没有其他价值,造成资源的浪费。在现有的比特币区块链系统中,采用工作量证明POW(Proof ofWork)共识机制,工作量证明方式使得比特币区块链系统的计算资源集中在少数几个矿池中,让比特币区块链系统形成中心化程度较高的社区,这种共识机制下所有节点均进行计算,一方面会消耗大量的计算资源和能量资源;另一方面,比特币区块链系统平均每十分钟产生一个区块,一笔交易从被记入区块到被确认需要一个小时,效率较低。
为了解决比特币区块链系统的计算资源浪费问题,BM设计并提出了DPoS系统,在该系统中,所有持有比特股的人进行投票产生101位代表即101个超级节点,EOS网络每3秒产生一个数据块,其速度是比特币区块链网络的200倍,处理效率大大提高;EOS网络采取投票机制,选取得票率最高的前20个节点直接作为超级节点,而第21名节点从剩余节点中随机挑选一个节点作为第21个区块工作者,EOS网络每63秒选举一轮超级节点;这种方法一方面提供了记账速度,另一方面节省了整个系统的电能资源。但是,DPoS系统无法保证去中心化,人为因素起到主导作用。
现有技术中的验证方式采用全网节点验证,存在部分节点无法验证、部分验证节点的计算能力差、网络差延长验证时间等问题,效率低,同时全网节点验证方式固定,导致整个区块验证和打包的安全性低;由于网络问题,部分交易容易同时被多个节点打包和出块,导致链路分叉;因此需要一种区块链区块打包和验证方法保证去中心化的同时提高计算效率,降低能源消耗。
发明内容
本发明的目的在于:本发明提供了一种基于节点能力的区块链区块打包和验证方法及系统,解决了现有区块链区块打包和验证效率低、无法保证去中心化的问题。
本发明采用的技术方案如下:
一种基于节点能力的区块链区块打包和验证方法,包括如下步骤:
步骤1:将各节点进行分类获取不同类型的节点;
步骤2:计算链条难度值总和确定权威链;
步骤3:根据权威链上区块在设定周期内的位置,分配挖矿权给不同类型的节点;
步骤4:获取挖矿权的不同类型的节点结合交易进行打包和交替产生新区块后,将新区块广播至各节点;
步骤5:各节点根据产生新区块的节点类型对新区块进行验证;
所述步骤1中不同类型节点包括验证节点、超级节点、挖矿节点和数据同步节点。
优选地,所述节点中确定超级节点和挖矿节点包括如下步骤:
步骤a:计算各节点的能力值后并排序,选取前Ns个节点作为超级节点,计算公式如下:
Scorei=α∑Ni+βNtr+γNpower+δNend
其中,Scorei表示第i个节点得分,Ni表示区块个数,Ntr表示交易数量,Npower表示耗电量,Nend表示计算终端数量,并且α+β+γ+δ=1;
步骤b:将超级节点进行评分后排序,将低于评分阈值的超级节点作为挖矿节点。
优选地,所述节点中确定验证节点和数据同步节点包括如下步骤:
步骤aa:各节点进行投票,选取排名前Nv个节点作为N轮验证节点(N≥1);
步骤bb:N+1轮验证节点每隔一个投票周期通过N轮验证节点投票进行更新;
步骤cc:节点池中除挖矿节点、超级节点和验证节点以外的剩余节点作为数据同步节点。
优选地,所述步骤2中包括如下步骤:
步骤2.1:计算链条难度值总和D,计算公式如下:
其中,D1表示验证节点IN TURN validator node出块难度值,D2表示验证节点OUTTURN validator node出块难度值,D3表示超级节点IN TURN super node出块难度值,D4表示超级节点出块阶段OUT TURN super node出块难度值,D5超级节点表示出块阶段Minernode挖矿出块难度值,D6表示挖矿节点POW挖矿出块难度值,N1~N6表示链上各个不同难度块的个数;
步骤2.2:将选取难度数值总和D最大的链条为权威链。
优选地,所述步骤3包括如下步骤:
步骤3.1:根据数据块量设定区块链区块打包和验证的周期;
步骤3.2:获取权威链上最新区块的序列号;
步骤3.3:根据序列号获取其在周期内的位置,若该区块为本周期的最后一块,将其挖矿权分配给验证节点,若该区块为本周期的倒数第二块,将其挖矿权分配给挖矿节点,若该区块为本周期的其他区块数据,将其挖矿权分配给超级节点。
优选地,所述步骤4中若由验证节点出块,包括如下步骤:
步骤4.1:验证节点随机排序,将第一个节点作为In turn validator node,其余节点作为out turn validator nodes,判断作为In turn validator node的第一个节点一秒内是否出块,若是,则结合交易进行打包后产生新区块,并将新区块广播至各节点;若否,则等待三秒后跳至步骤4.2;
步骤4.2:作为out turn validator nodes的所有节点到达出块等待时间后获得出块权,结合交易进行打包后产生新区块,并将新区块广播至各节点和写入权威链。
优选地,所述步骤4中若由超级节点出块,包括如下步骤:
步骤4.1:判断超级节点的in turn super node在一秒内是否出块,若是,则使用其私钥对区块头部数据进行签名后,结合交易进行打包后产生新区块,并将新区块广播至各节点;若否,则等待五秒后跳至步骤4.2;
步骤4.2:权威链将挖矿权分配给作为out turn super nodes的所有节点中链条难度数值总和最大的节点后跳至步骤4.3;
步骤4.3:判断五秒内超级节点是否出块,若是,则超级节点结合交易进行打包后产生新区块,并将新区块广播至各节点,若否,则将挖矿权分配给挖矿节点,挖矿节点结合交易进行打包后产生新区块,并将新区块广播至各节点。
优选地,所述步骤5包括如下步骤:
步骤5.1:判断新区块是否存在父块,若存在则获取区块信息后跳至步骤5.2;若不存在,则验证失败,淘汰新区块;
步骤5.2:根据区块信息判断产生新区块的节点签名是否正确,若正确,则验证成功;若错误,则淘汰新区块。
一种基于节点能力的区块链区块打包和验证系统,包括
交易池模块,用于存储交易;
权威链模块,用于计算链条难度值总和确定权威链;
打包模块,用于将各节点分为不同类型的节点,并根据权威链上区块在周期中的位置分配挖矿权给不同类型的节点,获得挖矿权的节点结合交易进行打包和交替产生新区块;
区块验证模块,用于各节点根据节点类型对新区块进行验证;
同步模块,用于将所有交易和区块操作进行同步记录和广播。
优选地,所述区块验证模块包括父块验证单元、区块信息获取单元、信息验证单元和存储单元。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1.本发明将节点进行分类,确定权威链后基于权威链上区块在周期中的位置,将挖矿权分配给不同类型的节点,基于节点能力选择节点保证去中心化,分配挖矿权给不同类型的节点,解决了现有区块链区块打包和验证效率低、无法保证去中心化的问题,达到了提高节点区块挖掘与交易记录的高效与准确性、实现去中心化保证公平性的效果;
2.本发明通过确定权威链后判断其上的区块在周期内的位置后再分配挖矿权,克服交易被多个节点同时打包和出块的问题,提高了区块验证和打包的准确性和效率;
3.本发明的根据其在周期内的位置分配挖矿权给不同类型节点,一方面加快验证和打包效率,降低能耗,另一方面,定时更新周期,出块采用节点交替方式,防止黑客攻击,提高了区块验证和打包的安全性;
4.本发明的验证除了新区块的基本信息外,还需要验证新区块是否对应产生其的节点即签名验证,防止黑客攻击,有利于提高区块验证的安全性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明的方法中区块打包流程图;
图2为本发明的方法中出块节点选择方法流程图;
图3为本发明的区块结构示意图;
图4为本发明的方法中验证方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,即所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
技术问题:解决了现有区块链区块打包和验证效率低、无法保证去中心化的问题。
技术手段:
一种基于节点能力的区块链区块打包和验证方法,包括如下步骤:
步骤1:将各节点进行分类获取不同类型的节点;
步骤2:计算链条难度值总和确定权威链;
步骤3:根据权威链上区块在设定周期内的位置,分配挖矿权给不同类型的节点;
步骤4:获取挖矿权的不同类型的节点结合交易进行打包和交替产生新区块后,将新区块广播至各节点;
步骤5:各节点根据产生新区块的节点类型对新区块进行验证;
步骤1中不同类型节点包括验证节点、超级节点、挖矿节点和数据同步节点。
节点中确定超级节点和挖矿节点包括如下步骤:
步骤a:计算各节点的能力值后并排序,选取前Ns个节点作为超级节点,计算公式如下:
Scorei=α∑Ni+βNtr+γNpower+δNend
其中,Scorei表示第i个节点得分,Ni表示区块个数,Ntr表示交易数量,Npower表示耗电量,Nend表示计算终端数量,并且α+β+γ+δ=1;
步骤b:将超级节点进行评分后排序,将低于评分阈值的超级节点作为挖矿节点。
节点中确定验证节点和数据同步节点包括如下步骤:
步骤aa:各节点进行投票,选取排名前Nv个节点作为N轮验证节点(N≥1);
步骤bb:N+1轮验证节点每隔一个投票周期通过N轮验证节点投票进行更新;
步骤cc:节点池中除挖矿节点、超级节点和验证节点以外的剩余节点作为数据同步节点。
步骤2中包括如下步骤:
步骤2.1:计算链条难度值总和D,计算公式如下:
其中,D1表示验证节点IN TURN validator node出块难度值,D2表示验证节点OUTTURN validator node出块难度值,D3表示超级节点IN TURN super node出块难度值,D4表示超级节点出块阶段OUT TURN super node出块难度值,D5超级节点表示出块阶段Minernode挖矿出块难度值,D6表示挖矿节点POW挖矿出块难度值,N1~N6表示链上各个不同难度块的个数;
步骤2.2:将选取难度数值总和D最大的链条为权威链。
步骤3包括如下步骤:
步骤3.1:根据数据块量设定区块链区块打包和验证的周期;
步骤3.2:获取权威链上最新区块的序列号;
步骤3.3:根据序列号获取其在周期内的位置,若该区块为本周期的最后一块,将其挖矿权分配给验证节点,若该区块为本周期的倒数第二块,将其挖矿权分配给挖矿节点,若该区块为本周期的其他区块数据,将其挖矿权分配给超级节点。
步骤4中若由验证节点出块,包括如下步骤:
步骤4.1:验证节点随机排序,将第一个节点作为In turn validator node,其余节点作为out turn validator nodes,判断作为In turn validator node的第一个节点一秒内是否出块,若是,则结合交易进行打包后产生新区块,并将新区块广播至各节点;若否,则等待三秒后跳至步骤4.2;
步骤4.2:作为out turn validator nodes的所有节点到达出块等待时间后获得出块权,结合交易进行打包后产生新区块,并将新区块广播至各节点和写入权威链。
步骤4中若由超级节点出块,包括如下步骤:
步骤4.1:判断超级节点的in turn super node在一秒内是否出块,若是,则使用其私钥对区块头部数据进行签名后,结合交易进行打包后产生新区块,并将新区块广播至各节点;若否,则等待五秒后跳至步骤4.2;
步骤4.2:权威链将挖矿权分配给作为out turn super nodes的所有节点中链条难度数值总和最大的节点后跳至步骤4.3;
步骤4.3:判断五秒内超级节点是否出块,若是,则超级节点结合交易进行打包后产生新区块,并将新区块广播至各节点,若否,则将挖矿权分配给挖矿节点,挖矿节点结合交易进行打包后产生新区块,并将新区块广播至各节点。
步骤5包括如下步骤:
步骤5.1:判断新区块是否存在父块,若存在则获取区块信息后跳至步骤5.2;若不存在,则验证失败,淘汰新区块;
步骤5.2:根据区块信息判断产生新区块的节点签名是否正确,若正确,则验证成功;若错误,则淘汰新区块。
一种基于节点能力的区块链区块打包和验证系统,包括
交易池模块,用于存储交易;
权威链模块,用于计算链条难度值总和确定权威链;
打包模块,用于将各节点分为不同类型的节点,并根据权威链上区块在周期中的位置分配挖矿权给不同类型的节点,获得挖矿权的节点结合交易进行打包和交替产生新区块;
区块验证模块,用于各节点根据节点类型对新区块进行验证;
同步模块,用于将所有交易和区块操作进行同步记录和广播。
区块验证模块包括父块验证单元、区块信息获取单元、信息验证单元和存储单元。
步骤4中若由挖矿节点出块,出块采用POW机制。
验证节点不超过Nv个(Nv≤10),超级节点不超过Ns个(Ns≤10),挖矿节点无限制;数据同步节点用于数据同步,接入区块网络中使用。
技术效果:将节点进行分类,确定权威链,根据其上的区块在周期中的位置,将挖矿权分配给不同类型的节点,基于节点能力选择节点保证去中心化,分配挖矿权给不同类型的节点,解决了现有区块链区块打包和验证效率低、无法保证去中心化的问题,达到了提高节点区块挖掘与交易记录的高效与准确性、实现去中心化保证公平性的效果;通过确定权威链后判断其对应区块在周期内的位置后再分配挖矿权,克服交易被多个节点同时打包和出块的问题,提高了区块验证和打包的准确性和效率。
以下结合实施例对本发明的特征和性能作进一步的详细描述。
实施例1
如图1-4所示,一种基于节点能力的区块链区块打包和验证方法,包括如下步骤:
步骤1:将各节点进行分类获取不同类型的节点;
步骤2:计算链条难度值总和确定权威链;
步骤3:根据权威链上区块在设定周期内的位置,分配挖矿权给不同类型的节点;
步骤4:获取挖矿权的不同类型的节点结合交易进行打包和交替产生新区块后,将新区块广播至各节点;
步骤5:各节点根据产生新区块的节点类型对新区块进行验证。
节点中确定超级节点和挖矿节点包括如下步骤:
步骤a:计算各节点的能力值后并排序,选取前Ns个节点作为超级节点,计算公式如下:
Scorei=α∑Ni+βNtr+γNpower+δNend
其中,Scorei表示第i个节点得分,Ni表示区块个数,Ntr表示交易数量,Npower表示耗电量,Nend表示计算终端数量,并且α+β+γ+δ=1;
步骤b:将超级节点进行评分后排序,将低于评分阈值的超级节点作为挖矿节点。
节点中确定验证节点和数据同步节点包括如下步骤:
步骤aa:各节点进行投票,选取排名前Nv个节点作为N轮验证节点(N≥1);
步骤bb:N+1轮验证节点每隔一个投票周期通过N轮验证节点投票进行更新;
步骤cc:节点池中除挖矿节点、超级节点和验证节点以外的剩余节点作为数据同步节点。
步骤2中包括如下步骤:
步骤2.1:计算链条难度值总和D,计算公式如下:
其中,D1表示验证节点IN TURN validator node出块难度值,D2表示验证节点OUTTURN validator node出块难度值,D3表示超级节点IN TURN super node出块难度值,D4表示超级节点出块阶段OUT TURN super node出块难度值,D5超级节点表示出块阶段Minernode挖矿出块难度值,D6表示挖矿节点POW挖矿出块难度值,N1~N6表示链上各个不同难度块的个数;
步骤2.2:将选取难度数值总和D最大的链条为权威链。
步骤3包括如下步骤:
步骤3.1:根据数据块量设定区块链区块打包和验证的周期;
步骤3.2:获取权威链上最新区块的序列号;
步骤3.3:根据序列号获取其在周期内的位置,若该区块为本周期的最后一块,将其挖矿权分配给验证节点,若该区块为本周期的倒数第二块,将其挖矿权分配给挖矿节点,若该区块为本周期的其他区块数据,将其挖矿权分配给超级节点。
步骤4中若由验证节点出块,包括如下步骤:
步骤4.1:验证节点随机排序,将第一个节点作为In turn validator node,其余节点作为out turn validator nodes,判断作为In turn validator node的第一个节点一秒内是否出块,若是,则结合交易进行打包后产生新区块,并将新区块广播至各节点;若否,则等待三秒后跳至步骤4.2;
步骤4.2:作为out turn validator nodes的所有节点到达出块等待时间后获得出块权,结合交易进行打包后产生新区块,并将新区块广播至各节点和写入权威链。
所有节点进行分类获得不同类型的节点,下一个区块由哪一个节点产生,关键在于将挖矿权分配给哪一个节点,将节点分为验证节点、超级节点、挖矿节点和数据同步节点四种节点,验证节点不超过Nv个,验证节点的身份标志为其公钥或公钥计算出的地址,超级节点不超过Ns,通过计算链条难度值总和D确定权威链,确定权威链是为了防止部分交易同时被多个节点打包或者出块,根据权威链上的区块在周期中的位置,将挖矿权分配给不同类型的节点,若该区块为本周期的最后一块,将其挖矿权分配给验证节点;验证节点根据设置的出块方式并结合交易进行打包、交替出块,并广播至其他节点,交替出块可防止黑客攻击,保证验证和打包的安全性;各节点对接收到的新区块进行验证,完成区块的打包和验证。综上,基于节点能力选择节点保证去中心化,将节点分类,根据实际情况轮换节点出块,加快区块打包和验证的速度,降低能耗,解决了现有区块链区块打包和验证效率低、无法保证去中心化的问题;确定权威链防止因网络带来的交易被多个节点同时打包和出块,采用交替出块防止黑客攻击,提高区块打包和验证的安全性。
实施例2
如图1-4所示,基于实施例1若由超级节点出块,具体如下:
若由超级节点出块,包括如下步骤:
步骤4.1:判断超级节点的in turn super node在一秒内是否出块,若是,则使用其私钥对区块头部数据进行签名后,结合交易进行打包后产生新区块,并将新区块广播至各节点;若否,则等待五秒后跳至步骤4.2;
步骤4.2:权威链将挖矿权分配给作为out turn super nodes的所有节点中链条难度数值总和最大的节点后跳至步骤4.3;
步骤4.3:判断五秒内超级节点是否出块,若是,则超级节点结合交易进行打包后产生新区块,并将新区块广播至各节点,若否,则将挖矿权分配给挖矿节点,挖矿节点结合交易进行打包后产生新区块,并将新区块广播至各节点。
交替出块解决了出块的效率和安全性,当某个节点被攻击或者矿机当机,此时就轮换节点出块,保证出块的效率。
实施例3
如图1-4所示,基于实施例1或者2,设定区块打包或者验证的周期,定时更新,可以防止黑客攻击,有利于提高区块验证和打包的安全性。
实施例4
如图1-4所示,基于实施例1或者2,各节点根据产生新区块的节点类型对新区块进行验证,比如难度值验证,出块时间验证等,同时验证新区块是否由产生其的节点产生即签名验证,进一步保证验证的安全性。
验证如下:
步骤5.1:判断新区块是否存在父块,若存在则获取区块信息后跳至步骤5.2;若不存在,则验证失败,淘汰新区块;
步骤5.2:根据区块信息判断产生新区块的节点签名是否正确,若正确,则验证成功;若错误,则淘汰新区块。区块信息包括区块的序号、区块头部数据和时间戳,如图3所示,根据区块头部数据获得区块的出块节点的数字签名或公钥,根据区块头部数据中的节点的数字签名,获得节点的类型;根据区块的序号判断其为某周期中的第几个区块后获得产生其的节点类型,根据两者的节点类型判断出块节点与区块序号是否匹配,若匹配则验证成功,之后还可以判断是否为节点更新时刻,若是,则全部更新节点池中的节点,若不是,则更新in turn和out turn中的节点,定时更新节点,利于提高区块打包和验证的效率和安全性。
实施例5
如图1-4所示,一种基于节点能力的区块链区块打包和验证系统,包括
交易池模块,用于存储交易;
权威链模块,用于计算链条难度值总和确定权威链;
打包模块,用于将各节点分为不同类型的节点,并根据权威链上区块在周期中的位置分配挖矿权给不同类型的节点,获得挖矿权的节点结合交易进行打包和交替产生新区块;
区块验证模块,用于各节点根据节点类型对新区块进行验证;
同步模块,用于将所有交易和区块操作进行同步记录和广播。
区块验证模块包括父块验证单元、区块信息获取单元、信息验证单元和存储单元。
系统对应的流程图如图1所示的大矩形框,本发明将节点进行分类,确定权威链后基于权威链上区块在周期中的位置,将挖矿权分配给不同类型的节点,基于节点能力选择节点保证去中心化,分配挖矿权给不同类型的节点,解决了现有区块链区块打包和验证效率低、无法保证去中心化的问题,达到了提高节点区块挖掘与交易记录的高效与准确性、实现去中心化保证公平性的效果。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于节点能力的区块链区块打包和验证方法,其特征在于:包括如下步骤:
步骤1:将各节点进行分类获取不同类型的节点;
步骤2:计算链条难度值总和确定权威链;
步骤3:根据权威链上区块在设定周期内的位置,分配挖矿权给不同类型的节点;
步骤4:获取挖矿权的不同类型的节点结合交易进行打包和交替产生新区块后,将新区块广播至各节点;
步骤5:各节点根据产生新区块的节点类型对新区块进行验证;
所述步骤1中不同类型节点包括验证节点、超级节点、挖矿节点和数据同步节点。
2.根据权利要求1所述的一种基于节点能力的区块链区块打包和验证方法,其特征在于:所述节点中确定超级节点和挖矿节点包括如下步骤:
步骤a:计算各节点的能力值后并排序,选取前Ns个节点作为超级节点,计算公式如下:
Scorei=α∑Ni+βNtr+γNpower+δNend
其中,Scorei表示第i个节点得分,Ni表示区块个数,Ntr表示交易数量,Npower表示耗电量,Nend表示计算终端数量,并且α+β+γ+δ=1;
步骤b:将超级节点进行评分后排序,将低于评分阈值的超级节点作为挖矿节点。
3.根据权利要求1所述的一种基于节点能力的区块链区块打包和验证方法,其特征在于:所述节点中确定验证节点和数据同步节点包括如下步骤:
步骤aa:各节点进行投票,选取排名前Nv个节点作为N轮验证节点(N≥1);
步骤bb:N+1轮验证节点每隔一个投票周期通过N轮验证节点投票进行更新;
步骤cc:节点池中除挖矿节点、超级节点和验证节点以外的剩余节点作为数据同步节点。
4.根据权利要求1所述的一种基于节点能力的区块链区块打包和验证方法,其特征在于:所述步骤2中包括如下步骤:
步骤2.1:计算链条难度值总和D,计算公式如下:
其中,D1表示验证节点IN TURN validator node出块难度值,D2表示验证节点OUT TURNvalidator node出块难度值,D3表示超级节点IN TURN super node出块难度值,D4表示超级节点出块阶段OUT TURN super node出块难度值,D5超级节点表示出块阶段Miner node挖矿出块难度值,D6表示挖矿节点POW挖矿出块难度值,N1~N6表示链上各个不同难度块的个数;
步骤2.2:将选取难度数值总和D最大的链条为权威链。
5.根据权利要求4所述的一种基于节点能力的区块链区块打包和验证方法,其特征在于:所述步骤3包括如下步骤:
步骤3.1:根据数据块量设定区块链区块打包和验证的周期;
步骤3.2:获取权威链上最新区块的序列号;
步骤3.3:根据序列号获取其在周期内的位置,若该区块为本周期的最后一块,将其挖矿权分配给验证节点,若该区块为本周期的倒数第二块,将其挖矿权分配给挖矿节点,若该区块为本周期的其他区块数据,将其挖矿权分配给超级节点。
6.根据权利要求5所述的一种基于节点能力的区块链区块打包和验证方法,其特征在于:所述步骤4中若由验证节点出块,包括如下步骤:
步骤4.1:验证节点随机排序,将第一个节点作为In turn validator node,其余节点作为out turn validator nodes,判断作为In turn validator node的第一个节点一秒内是否出块,若是,则结合交易进行打包后产生新区块,并将新区块广播至各节点;若否,则等待三秒后跳至步骤4.2;
步骤4.2:作为out turn validator nodes的所有节点到达出块等待时间后获得出块权,结合交易进行打包后产生新区块,并将新区块广播至各节点和写入权威链。
7.根据权利要求5所述的一种基于节点能力的区块链区块打包和验证方法,其特征在于:所述步骤4中若由超级节点出块,包括如下步骤:
步骤4.1:判断超级节点的in turn super node在一秒内是否出块,若是,则使用其私钥对区块头部数据进行签名后,结合交易进行打包后产生新区块,并将新区块广播至各节点;若否,则等待五秒后跳至步骤4.2;
步骤4.2:权威链将挖矿权分配给作为out turn super nodes的所有节点中链条难度数值总和最大的节点后跳至步骤4.3;
步骤4.3:判断五秒内超级节点是否出块,若是,则超级节点结合交易进行打包后产生新区块,并将新区块广播至各节点,若否,则将挖矿权分配给挖矿节点,挖矿节点结合交易进行打包后产生新区块,并将新区块广播至各节点。
8.根据权利要求6或者7所述的一种基于节点能力的区块链区块打包和验证方法,其特征在于:所述步骤5包括如下步骤:
步骤5.1:判断新区块是否存在父块,若存在则获取区块信息后跳至步骤5.2;若不存在,则验证失败,淘汰新区块;
步骤5.2:根据区块信息判断产生新区块的节点签名是否正确,若正确,则验证成功;若错误,则淘汰新区块。
9.一种基于节点能力的区块链区块打包和验证系统,其特征在于:包括
交易池模块,用于存储交易;
权威链模块,用于计算链条难度值总和确定权威链;
打包模块,用于将各节点分为不同类型的节点,并根据权威链上区块在周期中的位置分配挖矿权给不同类型的节点,获得挖矿权的节点结合交易进行打包和交替产生新区块;
区块验证模块,用于各节点根据节点类型对新区块进行验证;
同步模块,用于将所有交易和区块操作进行同步记录和广播。
10.根据权利要求9所述的一种基于节点能力的区块链区块打包和验证系统,其特征在于:所述区块验证模块包括父块验证单元、区块信息获取单元、信息验证单元和存储单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810764938.9A CN109039646B (zh) | 2018-07-12 | 2018-07-12 | 一种基于节点能力的区块链区块打包和验证方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810764938.9A CN109039646B (zh) | 2018-07-12 | 2018-07-12 | 一种基于节点能力的区块链区块打包和验证方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109039646A true CN109039646A (zh) | 2018-12-18 |
CN109039646B CN109039646B (zh) | 2021-07-27 |
Family
ID=64642083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810764938.9A Active CN109039646B (zh) | 2018-07-12 | 2018-07-12 | 一种基于节点能力的区块链区块打包和验证方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109039646B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109787867A (zh) * | 2019-02-28 | 2019-05-21 | 矩阵元技术(深圳)有限公司 | 区块生成方法、装置、计算机设备和存储介质 |
CN109993511A (zh) * | 2019-04-01 | 2019-07-09 | 北京众享比特科技有限公司 | 一种区块验证方法 |
CN110084061A (zh) * | 2019-03-29 | 2019-08-02 | 南京星链高科技发展有限公司 | 基于议会制度的区块链共识机制 |
CN110247773A (zh) * | 2019-06-17 | 2019-09-17 | 北京艾摩瑞策科技有限公司 | 在区块链上的打包方法及装置 |
CN111061735A (zh) * | 2019-12-13 | 2020-04-24 | 上海优扬新媒信息技术有限公司 | 一种基于单链区块链的扩容方法及装置 |
WO2020133326A1 (zh) * | 2018-12-29 | 2020-07-02 | 北京建极练科技有限公司 | 区块链生成方法、系统、计算机存储介质和电子设备 |
CN111611311A (zh) * | 2020-05-11 | 2020-09-01 | 芜湖明轩科技有限公司 | 去中心化分布式数据库的形成方法及系统、电子设备及计算机可读存储介质 |
CN111741067A (zh) * | 2020-05-20 | 2020-10-02 | 广州市格利网络技术有限公司 | 基于区块链的餐具流通信息管理方法及装置、区块链系统 |
CN113110925A (zh) * | 2021-04-09 | 2021-07-13 | 杭州复杂美科技有限公司 | 一种基于并行执行的区块打包方法、设备及储存介质 |
CN113806440A (zh) * | 2020-06-15 | 2021-12-17 | 富泰华工业(深圳)有限公司 | 区块链的区块打包方法、电子装置及存储介质 |
CN113841359A (zh) * | 2019-04-12 | 2021-12-24 | 区块链控股有限公司 | 用于在区块链网络中传播区块的方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160098723A1 (en) * | 2014-10-01 | 2016-04-07 | The Filing Cabinet, LLC | System and method for block-chain verification of goods |
CN106203178A (zh) * | 2016-08-26 | 2016-12-07 | 杨鹏 | 一种区块链的写入权限分配方法及系统 |
CN106296191A (zh) * | 2016-08-13 | 2017-01-04 | 深圳市樊溪电子有限公司 | 一种区块链功耗感知的PoW共识机制 |
CN107733651A (zh) * | 2017-09-11 | 2018-02-23 | 联动优势科技有限公司 | 一种区块链生成方法、节点及系统 |
CN108234470A (zh) * | 2017-12-28 | 2018-06-29 | 江苏通付盾科技有限公司 | 区块链网络中区块打包方法及系统、电子设备、存储介质 |
-
2018
- 2018-07-12 CN CN201810764938.9A patent/CN109039646B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160098723A1 (en) * | 2014-10-01 | 2016-04-07 | The Filing Cabinet, LLC | System and method for block-chain verification of goods |
CN106296191A (zh) * | 2016-08-13 | 2017-01-04 | 深圳市樊溪电子有限公司 | 一种区块链功耗感知的PoW共识机制 |
CN106203178A (zh) * | 2016-08-26 | 2016-12-07 | 杨鹏 | 一种区块链的写入权限分配方法及系统 |
CN107733651A (zh) * | 2017-09-11 | 2018-02-23 | 联动优势科技有限公司 | 一种区块链生成方法、节点及系统 |
CN108234470A (zh) * | 2017-12-28 | 2018-06-29 | 江苏通付盾科技有限公司 | 区块链网络中区块打包方法及系统、电子设备、存储介质 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020133326A1 (zh) * | 2018-12-29 | 2020-07-02 | 北京建极练科技有限公司 | 区块链生成方法、系统、计算机存储介质和电子设备 |
CN109787867A (zh) * | 2019-02-28 | 2019-05-21 | 矩阵元技术(深圳)有限公司 | 区块生成方法、装置、计算机设备和存储介质 |
CN110084061A (zh) * | 2019-03-29 | 2019-08-02 | 南京星链高科技发展有限公司 | 基于议会制度的区块链共识机制 |
CN109993511A (zh) * | 2019-04-01 | 2019-07-09 | 北京众享比特科技有限公司 | 一种区块验证方法 |
CN109993511B (zh) * | 2019-04-01 | 2021-07-06 | 北京众享比特科技有限公司 | 一种区块验证方法 |
CN113841359A (zh) * | 2019-04-12 | 2021-12-24 | 区块链控股有限公司 | 用于在区块链网络中传播区块的方法和装置 |
CN110247773A (zh) * | 2019-06-17 | 2019-09-17 | 北京艾摩瑞策科技有限公司 | 在区块链上的打包方法及装置 |
CN111061735A (zh) * | 2019-12-13 | 2020-04-24 | 上海优扬新媒信息技术有限公司 | 一种基于单链区块链的扩容方法及装置 |
CN111061735B (zh) * | 2019-12-13 | 2023-07-25 | 度小满科技(北京)有限公司 | 一种基于单链区块链的扩容方法及装置 |
CN111611311A (zh) * | 2020-05-11 | 2020-09-01 | 芜湖明轩科技有限公司 | 去中心化分布式数据库的形成方法及系统、电子设备及计算机可读存储介质 |
WO2021227867A1 (zh) * | 2020-05-11 | 2021-11-18 | 徐皓 | 去中心化分布式数据库的形成方法及系统、电子设备及计算机可读存储介质 |
CN111611311B (zh) * | 2020-05-11 | 2023-09-08 | 徐皓 | 去中心化分布式数据库的形成方法及系统、电子设备及计算机可读存储介质 |
CN111741067A (zh) * | 2020-05-20 | 2020-10-02 | 广州市格利网络技术有限公司 | 基于区块链的餐具流通信息管理方法及装置、区块链系统 |
CN111741067B (zh) * | 2020-05-20 | 2022-08-12 | 广州市格利网络技术有限公司 | 基于区块链的餐具流通信息管理方法及装置、区块链系统 |
CN113806440A (zh) * | 2020-06-15 | 2021-12-17 | 富泰华工业(深圳)有限公司 | 区块链的区块打包方法、电子装置及存储介质 |
CN113110925A (zh) * | 2021-04-09 | 2021-07-13 | 杭州复杂美科技有限公司 | 一种基于并行执行的区块打包方法、设备及储存介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109039646B (zh) | 2021-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109039646A (zh) | 一种基于节点能力的区块链区块打包和验证方法及系统 | |
CN109819022A (zh) | 一种基于信用评价的区块链共识方法 | |
CN110796547A (zh) | 一种基于联盟区块链的改进的实用拜占庭容错系统 | |
CN108512652B (zh) | 基于时间证明的去中心化共识方法、系统及区块链系统 | |
CN109165945B (zh) | 代表节点设备选举方法、装置、计算机设备及存储介质 | |
CN111090892B (zh) | 一种基于vrf和门限签名的区块链共识方法和装置 | |
CN108717630A (zh) | 一种出块方法及其实现系统 | |
CN108492103B (zh) | 一种联盟区块链共识方法 | |
CN110493148B (zh) | 一种区块处理、区块共识和区块同步方法及装置 | |
CN110348248B (zh) | 一种区块链技术中分布式记账权生成方法 | |
CN109951474A (zh) | 一种实现区块链共识出块的方法 | |
CN108665359A (zh) | 区块链处理方法、记账节点及验证节点 | |
CN111445247B (zh) | 用于防止区块链分叉的方法和设备 | |
CN109831509A (zh) | 一种用于实现相同权重随机出块的共识算法 | |
CN110650321A (zh) | 基于区块链技术的视频内容防篡改、防丢失及恢复的方法 | |
CN112468255B (zh) | 基于网络共识结合vrf算法的区块链节点时间同步方法 | |
CN109919760A (zh) | 基于投票机制的拜占庭容错共识算法 | |
TW202040963A (zh) | 用於鏈接資料的方法與裝置 | |
CN110120936A (zh) | 基于区块链的分布式网络攻击检测和安全测量系统及方法 | |
CN109858961A (zh) | 基于区块链的打卡奖励方法、装置、设备和可读存储介质 | |
CN112286963A (zh) | 一种区块链终端数据可信查询系统及其实现方法 | |
CN106650496A (zh) | 一种数据处理方法及装置 | |
CN109872159B (zh) | 一种区块链共识方法及架构 | |
CN110930158A (zh) | 一种基于奖惩机制的区块链DPoS共识方法 | |
CN110460471A (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20190122 Address after: Room 121807, Room 121, Room 2, 15th Floor, Building 3, No. 1 Courtyard, Futong East Street, Chaoyang District, Beijing Applicant after: Beijing Yi Intelligent Technology Co., Ltd. Address before: 100102 Beijing Chaoyang District, Chaoyang District, Futong East Street, No. 1 Courtyard, Building 2, Unit 15, Layer 121806 Applicant before: Beijing chain enjoy Future Technology Co., Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |