首页 / 专利库 / 资料储存系统 / 工作量证明 / 一种基于工作量证明的选举型拜占庭容错共识算法

一种基于工作量证明的选举型拜占庭容错共识算法

阅读:172发布:2020-05-08

专利汇可以提供一种基于工作量证明的选举型拜占庭容错共识算法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于 工作量证明 的选举型拜占庭容错共识 算法 ,本算法可以满足 区 块 链 的多项技术性能指标,如去中心化、效率、动态性、能耗等,能为区块链应用提供更好的服务。本发明所提方法主要包括四个部分:第一,共识算法总体架构;第二,工作量证明模块;第三,选举算法模块;第四,实用拜占庭容错模块。通过实施本发明 实施例 ,可以提高区块链的性能,使其适用于更多的领域。,下面是一种基于工作量证明的选举型拜占庭容错共识算法专利的具体信息内容。

1.一种基于工作量证明的选举型拜占庭容错共识算法,其特征在于,所述方法包括:
共识算法总体架构;
工作量证明模
选举算法模块;
实用拜占庭容错模块。
2.根据权利要求1所述一种基于工作量证明的选举型拜占庭容错共识算法,其特征在于所述的共识算法总体架构:
发明提供的共识算法总体架构如下所述:
整个区块链网络中有普通节点和共识节点,只有共识节点才允许更新处理实际业务的业务账本,在此基础上提出“共识候选人链”,专用于生成共识节点,普通节点可以通过工作量证明机制不断延长“共识候选人链”,利用最新区块上工作量证明的随机数和高度选出
21个共识节点,共识节点利用实用拜占庭容错算法更新业务账本来保证高效共识。
3.根据权利要求1所述一种基于工作量证明的选举型拜占庭容错共识算法,其特征在于所述的工作量证明模块:
本共识算法中的工作量证明与比特币中使用的工作量证明算法相似,所有节点通过不断改变随机数使区块的哈希值满足小于某个难度目标,但原有的工作量证明的算法出块时间长,且由于链分叉的问题需要至少六个区块才能真正确认交易,在此基础上,为适应“共识候选人链”的需求,对现有工作量证明模块进行三点改造:
(1)区块上记录时间戳,上一个区块的哈希值,随机数,区块高度和记账人的公钥和其对区块的签名;
(2)所有节点需要不断改变随机数来满足哈希(前一区块哈希值+随机数+区块高度)<难度值,当计算出来后,记账人需要对前一区块哈希值+随机数+区块高度进行签名并广播区块;
(3)调整难度值的生成系数,使其满足平均出块时间为85秒一个,则“共识候选人链”上约30分钟更新21个新的区块;
(4)当节点收到区块后,对随机数和记账人进行确认,如果都有效则把区块写入自己的“共识候选人链”上;
引入工作量证明模块的原因在于让所有普通节点有公平的机制争取成为共识节点,而调整难度值使得区块链的出块时间加快,以便更好的为下一步共识选举提供随机性,而出块时间也可以成为逻辑时钟,改变后的区块结构使得当根据区块高度找到区块时,能够快速确认当时及后面区块的记账人。
4.根据权利要求1所述一种基于工作量证明的选举型拜占庭容错共识算法,其特征在于所述的选举算法模块:
在工作量证明的驱动下,“共识候选人链”约30分钟可更新21个区块,因此每30分钟进行一次共识节点的更新,此时各个节点利用下式根据最新区块的随机数和高度算出新一轮共识节点中第一个节点所在的高度,选取从该高度开始以后的21个不同的节点作为新一轮的共识节点:
hnew=h-22-16+nonce%8
如当前区块的高度为h=100而随机数nonce=65834时,hnew=58,于是新一轮的21个共识节点是从高度为58的区块开始,找到对应区块的记账人,然后继续在下一区块中找到另一个记账人,直到找到21个新的共识节点。
5.根据权利要求1所述一种基于工作量证明的选举型拜占庭容错共识算法,其特征在于所述的实用拜占庭容错模块:
当共识节点确定后,在共识节点间使用实用拜占庭容错算法进行共识来进行业务账本的更新,当存在f个作恶共识节点时,共识节点总数需要超过3f+1时才能保证一致性,为了使共识算法更适用于区块链,使用改进型的只有两阶段的拜占庭算法,在该算法中节点只需对区块进行验证而不需要排序,
详细流程如下所示:
(1)系统中的每一笔交易都向全网广播;
(2)当节点收到一笔交易后,如果不是共识节点则泛洪转发,若是则验证交易的合法性,合法则写入内存;
(3)主节点在一定时间内收集交易并打包成区块,经过预设的出块时间后打包,向其他共识从节点广播共识提案消息;
(4)其他从节点收到共识提案消息后,对消息进行验证,如果有效,则向其他共识节点发送共识确认消息;
(5)任意共识节点在收到其他2f个来自不同节点的相同的确认消息后,认为共识达成并发布完整的区块;
(6)任意节点在收到完整区块后,将包含的交易从内存中删除,并开始下一轮共识;
在从节点怀疑主节点作恶或者在主节点发起共识一段时间后仍未达成共识则该从节点会触发视图更换来更换主节点,该流程与传统的实用拜占庭容错算法无异;
使用实用拜占庭容错作为业务账本的优势在于不会出现链的分叉,且完成一次共识的时间比工作证明和股权证明短,因此可以大大加快交易吞吐率。

说明书全文

一种基于工作量证明的选举型拜占庭容错共识算法

技术领域

[0001] 本发明涉及信号处理领域,尤其涉及链的共识算法。

背景技术

[0002] 近年来,比特币作为去中心化加密货币,受到了广泛的关注,区块链作为其底层技术,也迅速引发了各国政府机关、科研机构及技术团队对这一新兴技术的研究。
[0003] 区块链具有分布式账本和去中心化的特性,拥有革新各领域的潜,可应用于除数字货币之外一切与价值转移相关的场景:在数字版权领域,可利用区块链技术对知识产权进行确权,证明产品的存在性、真实性和唯一性;在医疗领域,可运用区块链技术保护患者的医疗记录;在教育领域利用区块链技术对学生的学历进行存储从而解决信息不对称的问题。
[0004] 当前的区块链技术技术仍有不少可以进行改善的地方,如作为核心引擎的共识算法则有更多可以改进的空间,比如当前比特币采用的工作量证明算法存在耗费能源的问题,而HyperledgerFabric架构所采用的拜占庭容错共识算法存在节点难以扩展的问题。各种共识算法都在去中心化、效率、动态性、能耗等多个指标上有所倾侧,且现有共识算法大多依赖数字货币等金融实体,不利于将区块链扩展成更通用的技术。
[0005] 因此,为进一步提高区块链技术的应用范围,需要有更好的共识算法出现,能更好覆盖在各个技术指标上需求,为区块链应用提供更好的服务,本发明提供了一种基于工作量证明的选举型拜占庭容错共识算法。

发明内容

[0006] 本发明的目的在于克服现有技术的不足,提供一种基于工作量证明的选举型拜占庭容错共识算法,可以有效提高共识算法的效率、减少能耗。
[0007] 为了解决目前方法存在的问题,本发明提供一种基于工作量证明的选举型拜占庭容错共识算法,所述方法包括:
[0008] 共识算法总体架构;
[0009] 工作量证明模块;
[0010] 选举算法模块;
[0011] 实用拜占庭容错模块。
[0012] 优选地,对所述的共识算法总体架构描述如下:
[0013] 本发明提供的共识算法总体架构如下所述:
[0014] 整个区块链网络中有普通节点和共识节点,只有共识节点才允许更新处理实际业务的业务账本,在此基础上提出“共识候选人链”,专用于生成共识节点。普通节点可以通过工作量证明机制不断延长“共识候选人链”,利用最新区块上工作量证明的随机数和高度选出21个共识节点,共识节点利用实用拜占庭容错算法更新业务账本来保证高效共识。
[0015] 优选地,对所述的工作量证明模块描述如下:
[0016] 本共识算法中的工作量证明与比特币中使用的工作量证明算法相似,所有节点通过不断改变随机数使区块的哈希值满足小于某个难度目标,但原有的工作量证明的算法出块时间长,且由于链分叉的问题需要至少六个区块才能真正确认交易。在此基础上,为适应“共识候选人链”的需求,对现有工作量证明模块进行三点改造:
[0017] (1)区块上记录时间戳,上一个区块的哈希值,随机数,区块高度和记账人的公钥和其对区块的签名。
[0018] (2)所有节点需要不断改变随机数来满足哈希(前一区块哈希值+随机数+区块高度)<难度值,当计算出来后,记账人需要对前一区块哈希值+随机数+区块高度进行签名并广播区块。
[0019] (3)调整难度值的生成系数,使其满足平均出块时间为85秒一个,则“共识候选人链”上约30分钟更新21个新的区块。
[0020] (4)当节点收到区块后,对随机数和记账人进行确认,如果都有效则把区块写入自己的“共识候选人链”上。
[0021] 引入工作量证明模块的原因在于让所有普通节点有公平的机制争取成为共识节点,而调整难度值使得区块链的出块时间加快,以便更好的为下一步共识选举提供随机性,而出块时间也可以成为逻辑时钟。改变后的区块结构使得当根据区块高度找到区块时,能够快速确认当时及后面区块的记账人。
[0022] 优选地,对所述的选举算法模块描述如下:
[0023] 在工作量证明模块的驱动下,“共识候选人链”约30分钟可更新21个区块,因此每30分钟进行一次共识节点的更新。此时各个节点利用下式根据最新区块的随机数和高度算出新一轮共识节点中第一个节点所在的高度,选取从该高度开始以后的21个不同的节点作为新一轮的共识节点:
[0024] hnew=h-22-16+nonce%8
[0025] 如当前区块的高度为h=100而nonce=65834时,hnew=58,于是新一轮的21个共识节点是从高度为58的区块开始,找到对应区块的记账人,然后继续在下一区块中找到另一个记账人,直到找到21个新的共识节点。
[0026] 优选地,对所述的实用拜占庭容错模块描述如下:
[0027] 当共识节点确定后,在共识节点间使用拜占庭容错算法进行共识来进行业务账本的更新,当存在f个作恶共识节点时,共识节点总数需要超过3f+1时才能保证一致性。为了使共识算法更适用于区块链,使用改进型的只有两阶段的拜占庭容错算法,在该算法中节点只需对区块进行验证而不需要排序。
[0028] 详细流程如下所示:
[0029] (1)系统中的每一笔交易都向全网广播;
[0030] (2)当节点收到一笔交易后,如果不是共识节点则泛洪转发,若是则验证交易的合法性,合法则写入内存。
[0031] (3)主节点在一定时间内收集交易并打包成区块,经过预设的出块时间后打包,向其他共识从节点广播共识提案消息。
[0032] (4)其他从节点收到共识提案消息后,对消息进行验证,如果有效,则向其他共识节点发送共识确认消息。
[0033] (5)任意共识节点在收到其他2f个来自不同节点的相同的确认消息后,认为共识达成并发布完整的区块。
[0034] (6)任意节点在收到完整区块后,将包含的交易从内存中删除,并开始下一轮共识。
[0035] 在从节点怀疑主节点作恶或者在主节点发起共识一段时间后仍未达成共识则该从节点会触发视图更换来更换主节点,该流程与传统的实用拜占庭容错方法无异。
[0036] 使用实用拜占庭容错方法作为业务账本的优势在于不会出现链的分叉,且完成一次共识的时间比工作量证明模块和股权证明模块短,因此可以大大加快交易吞吐率。附图说明
[0037] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用附图作简单地介绍,显而易见的,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0038] 图1是本发明实施了一种基于工作量证明的选举型拜占庭容错共识算法结构示意图。

具体实施方式

[0039] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0040] 图1是本发明实施例,一种基于工作量证明的选举型拜占庭容错共识算法示意图,该方法包括:
[0041] S11:共识算法总体架构;
[0042] S12:工作量证明模块;
[0043] S13:选举算法模块;
[0044] S14:实用拜占庭容错模块。
[0045] 对S11进一步说明:
[0046] 本发明提供的共识算法总体架构如下所述:
[0047] 整个区块链网络中有普通节点和共识节点,只有共识节点才允许更新处理实际业务的业务账本,在此基础上提出“共识候选人链”,专门用于生成共识节点。普通节点可以通过工作量证明机制不断延长“共识候选人链”,利用最新区块上工作量证明的随机数和高度选出21个共识节点,共识节点利用实用拜占庭容错算法更新业务账本来保证高效共识。
[0048] 对S12进一步说明:
[0049] 本共识算法中的工作量证明与比特币中使用的工作量证明算法相似,所有节点通过不断改变随机数使区块的哈希值满足小于某个难度目标,但原有的工作量证明的算法出块时间长,且由于链分叉的问题需要至少六个区块才能真正确认交易。在此基础上,为适应“共识候选人链”的需求,对现有工作量证明模块进行三点改造:
[0050] (1)区块上记录时间戳,上一个区块的哈希值,随机数,区块高度和记账人的公钥和其对区块的签名。
[0051] (2)所有节点需要不断改变随机数来满足哈希(前一区块哈希值+随机数+区块高度)<难度值,当计算出来后,记账人需要对前一区块哈希值+随机数+区块高度进行签名并广播区块。
[0052] (3)调整难度值的生成系数,使其满足平均出块时间为85秒一个,则“共识候选人链”上约30分钟更新21个新的区块。
[0053] (4)当节点收到区块后,对随机数和记账人进行确认,如果都有效则把区块写入自己的“共识候选人链”上。
[0054] 引入工作量证明模块的原因在于让所有普通节点有公平的机制争取成为共识节点,而调整难度值使得区块链的出块时间加快,以便更好的为下一步共识选举提供随机性,而出块时间也可以成为逻辑时钟。改变后的区块结构使得当根据区块高度找到区块时,能够快速确认当时及后面区块的记账人。
[0055] 对S13进一步说明:
[0056] 在工作量证明模块的驱动下,“共识候选人链”约30分钟可更新21个区块,因此每30分钟进行一次共识节点的更新。此时各个节点利用下式根据最新区块的随机数和高度算出新一轮共识节点中第一个节点所在的高度,选取从该高度开始以后的21个不同的节点作为新一轮的共识节点:
[0057] hnew=h-22-16+nonce%8
[0058] 如当前区块的高度为h=100而nonce=65834时,hnew=58,于是新一轮的21个共识节点是从高度为58的区块开始,找到对应区块的记账人,然后继续在下一区块中找到另一个记账人,直到找到21个新的共识节点。
[0059] 对S14进一步说明:
[0060] 当共识节点确定后,在共识节点间使用拜占庭容错算法进行共识来进行业务账本的更新,当存在f个作恶共识节点时,共识节点总数需要超过3f+1时才能保证一致性。为了使共识算法更适用于区块链,使用改进型的只有两阶段的拜占庭容错算法,在该算法中节点只需对区块进行验证而不需要排序。
[0061] 详细流程如下所示:
[0062] (1)系统中的每一笔交易都向全网广播;
[0063] (2)当节点收到一笔交易后,如果不是共识节点则泛洪转发,若是则验证交易的合法性,合法则写入内存。
[0064] (3)主节点在一定时间内收集交易并打包成区块,经过预设的出块时间后打包,向其他共识从节点广播共识提案消息。
[0065] (4)其他从节点收到共识提案消息后,对消息进行验证,如果有效,则向其他共识节点发送共识确认消息。
[0066] (5)任意共识节点在收到其他2f个来自不同节点的相同的确认消息后,认为共识达成并发布完整的区块。
[0067] (6)任意节点在收到完整区块后,将包含的交易从内存中删除,并开始下一轮共识。
[0068] 在从节点怀疑主节点作恶或者在主节点发起共识一段时间后仍未达成共识则该从节点会触发视图更换来更换主节点,该流程与传统的实用拜占庭容错方法无异。
[0069] 使用实用拜占庭容错方法作为业务账本的优势在于不会出现链的分叉,且完成一次共识的时间比工作量证明模块和股权证明模块短,因此可以大大加快交易吞吐率。
[0070] 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,ReadOnly Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。
[0071] 另外,以上对本发明实施例所提供的一种基于工作量证明的选举型拜占庭容错共识算法进行了详细介绍,本文中应采用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈