首页> 中国专利> 区块敲定方法及系统

区块敲定方法及系统

摘要

本发明提供了一种区块敲定方法及系统,包括:步骤S1:在共识系统中每隔预设数量的区块设置检查点;步骤S2:节点S设置满足预设规则的检查点A到检查点B之间的指向;步骤S3:共识系统中其他节点对节点S设置的检查点之间的指向进行共识投票;当检查点之间的指向获得预设数量节点的共识投票,且检查点A处于justified状态时,则当前指向的检查点B达到finalized状态,检查点被敲定;当存在网络分区时,则表示检查点分叉,等待网络恢复,选择获取到最多共识投票数的链作为主链继续进行敲定;所述justified状态表示检查点的后续还存在区块,并且当前检查点的上一个检查点的后续也存在区块。

著录项

  • 公开/公告号CN114900529A

    专利类型发明专利

  • 公开/公告日2022-08-12

    原文格式PDF

  • 申请/专利权人 上海万向区块链股份公司;

    申请/专利号CN202210646534.6

  • 发明设计人 陈炫慧;杜满想;张玉坚;

    申请日2022-06-09

  • 分类号H04L67/104(2022.01);H04L41/00(2022.01);H04L43/08(2022.01);G06Q20/38(2012.01);G06Q20/40(2012.01);

  • 代理机构上海段和段律师事务所 31334;

  • 代理人黄磊

  • 地址 200086 上海市虹口区塘沽路463号1201室

  • 入库时间 2023-06-19 16:23:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-08-30

    实质审查的生效 IPC(主分类):H04L67/104 专利申请号:2022106465346 申请日:20220609

    实质审查的生效

说明书

技术领域

本发明涉及区块链技术领域,具体地,涉及区块敲定方法及系统,更为具体地,基于IBFT的区块敲定方法及系统。

背景技术

传统PoW型的区块链共识系统通过高难度的竞争出块机制来保证系统的安全性,即不会被轻易分叉。但基于这种高难度竞争的出块机制,如基于中本聪的PoW型共识系统的难度,每10分钟才会出一个区块,交易吞吐量非常的低。

专利文献CN107864198B(申请号:201711084448.6)公开了一种基于深度学习训练任务的区块链共识方法,包括,所有区块链参与节点共同维护一份账本记录,任何节点都可以发布交易,并通过P2P共识网络分发到各个节点,P2P共识网络中会存在深度学习任务节点,会将深度学习任务分发给所有的参与节点,记账节点结合深度学习任务通过节点间共识机制达成共识,完成交易确认。

发明内容

针对现有技术中的缺陷,本发明的目的是提供一种区块敲定方法及系统。

根据本发明提供的一种区块敲定方法,包括:

步骤S1:在共识系统中每隔预设数量的区块设置检查点;

步骤S2:节点S设置满足预设规则的检查点A到检查点B之间的指向;

步骤S3:共识系统中其他节点对节点S设置的检查点之间的指向进行共识投票;当检查点之间的指向获得预设数量节点的共识投票,且检查点A处于justified状态时,则当前指向的检查点B达到finalized状态,检查点被敲定;当存在网络分区时,则表示检查点分叉,等待网络恢复,选择获取到最多共识投票数的链作为主链继续进行敲定;

所述justified状态表示检查点的后续还存在区块,并且当前检查点的上一个检查点的后续也存在区块。

优选地,所述节点S设置满足预设规则的检查点之间的指向包括:源检查点的哈希值、目标检查点的哈希值、源检查点的区块高度、目标检查点的区块高度以及<源检查点的哈希值,目标检查点的哈希值,源检查点的区块高度,目标检查点的区块高度>的签名。

优选地,所述节点S设置满足预设规则的检查点之间的指向采用:所述节点S设置满足包括:不能重复设置检查点之间的指向以及不能循环设置检查点之间的指向;

所述不能重复设置检查点之间的指向是同一个节点发布的检查点之间的指向提案的目标检查点高度不能一样;

所述不能循环设置检查点之间的指向是同一个节点发布的检查点之间的指向提案的高度不能包含在之前发布的检查点之间指向提案的高度里面。

优选地,所述步骤S3采用:共识系统中其他节点对节点S设置的检查点之间的指向通过IBFT共识或BFT共识进行投票。

优选地,还包括:当节点S设置的检查点之间的指向不满足预设规则时,则节点S质押在链上的资金将会被回收。

根据本发明提供的一种区块敲定系统,包括:

模块M1:在共识系统中每隔预设数量的区块设置检查点;

模块M2:节点S设置满足预设规则的检查点A到检查点B之间的指向;

模块M3:共识系统中其他节点对节点S设置的检查点之间的指向进行共识投票;当检查点之间的指向获得预设数量节点的共识投票,且检查点A处于justified状态时,则当前指向的检查点B达到finalized状态,检查点被敲定;当存在网络分区时,则表示检查点分叉,等待网络恢复,选择获取到最多共识投票数的链作为主链继续进行敲定;

所述justified状态表示检查点的后续还存在区块,并且当前检查点的上一个检查点的后续也存在区块。

优选地,所述节点S设置满足预设规则的检查点之间的指向包括:源检查点的哈希值、目标检查点的哈希值、源检查点的区块高度、目标检查点的区块高度以及<源检查点的哈希值,目标检查点的哈希值,源检查点的区块高度,目标检查点的区块高度>的签名。

优选地,所述节点S设置满足预设规则的检查点之间的指向采用:所述节点S设置满足包括:不能重复设置检查点之间的指向以及不能循环设置检查点之间的指向;

所述不能重复设置检查点之间的指向是同一个节点发布的检查点之间的指向提案的目标检查点高度不能一样;

所述不能循环设置检查点之间的指向是同一个节点发布的检查点之间的指向提案的高度不能包含在之前发布的检查点之间指向提案的高度里面。

优选地,所述模块M3采用:共识系统中其他节点对节点S设置的检查点之间的指向通过IBFT共识或BFT共识进行投票。

优选地,还包括:当节点S设置的检查点之间的指向不满足预设规则时,则节点S质押在链上的资金将会被回收。

与现有技术相比,本发明具有如下的有益效果:

1、本发明通过降低PoW出块难度,提高交易的吞吐量;

2、本发明通过提出的区块敲定方案每隔50个区块设置检查点,并对检查点进行敲定,在高吞吐量的同时维护了一条达到IBFT共识的最长主链,在一定程度上保障了系统的安全性且不会被分叉;

3、使用IBFT共识检查点的方式还能够降低区块敲定的时间,能将PoW型区块链区块敲定时间从传统的10分钟降到一个更小的时间单位上;

4、本发明通过将共识过程和区块敲定过程解藕,既提高了区块链系统的交易吞吐量,又保证了交易不会被分叉的安全性;

5、本发明整体提高了使用传统PoW共识算法的区块链系统的交易吞吐量,在出现分叉时能够使用IBFT算法快速决定使用哪条分叉作为最终链,并且能够解决传统PoW型分叉难以确定,以及等待敲定时间过长的问题;

6、通过vote投票模块定义了justified和finalized状态,保证了finalized的连续性,让进行PoW计算的节点能够一直在一条主链上进行计算;

7、通过作弊惩罚模块能够保证finalized状态不冲突,如果违反了作弊惩罚模块定义的规则将会受到没收资产的惩罚。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为基于IBFT的区块敲定系统框架图。

图2为vote框架示意图。

图3为敲定检查点后链的状态。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

根据本发明提供的一种区块敲定方法,包括:

步骤S1:在共识系统中每隔预设数量的区块设置检查点;

步骤S2:节点S设置满足预设规则的检查点A到检查点B之间的指向;

具体地,所述节点S设置满足预设规则的检查点之间的指向包括:源检查点的哈希值、目标检查点的哈希值、源检查点的区块高度、目标检查点的区块高度以及<源检查点的哈希值,目标检查点的哈希值,源检查点的区块高度,目标检查点的区块高度>的签名。

具体地,所述节点S设置满足预设规则的检查点之间的指向采用:所述节点S设置满足包括:不能重复设置检查点之间的指向以及不能循环设置检查点之间的指向;

所述不能重复设置检查点之间的指向是同一个节点发布的检查点之间的指向提案的目标检查点高度不能一样;

所述不能循环设置检查点之间的指向是同一个节点发布的检查点之间的指向提案的高度不能包含在之前发布的检查点之间指向提案的高度里面。

步骤S3:共识系统中其他节点对节点S设置的检查点之间的指向进行共识投票;当检查点之间的指向获得预设数量节点的共识投票,且检查点A处于justified状态时,则当前指向的检查点B达到finalized状态,检查点被敲定;当存在网络分区时,则表示检查点分叉,等待网络恢复,选择获取到最多共识投票数的链作为主链继续进行敲定;

具体地,所述步骤S3采用:共识系统中其他节点对节点S设置的检查点之间的指向通过IBFT共识或BFT共识进行投票。

所述justified状态表示检查点的后续还存在区块,并且当前检查点的上一个检查点的后续也存在区块;

所述finalized状态是在共识系统中所有节点都不能对当前指向的区块进行分叉。

具体地,还包括:当节点S设置的检查点之间的指向不满足预设规则时,则节点S质押在链上的资金将会被回收。

根据本发明提供的一种区块敲定系统,包括:

模块M1:在共识系统中每隔预设数量的区块设置检查点;

模块M2:节点S设置满足预设规则的检查点A到检查点B之间的指向;

具体地,所述节点S设置满足预设规则的检查点之间的指向包括:源检查点的哈希值、目标检查点的哈希值、源检查点的区块高度、目标检查点的区块高度以及<源检查点的哈希值,目标检查点的哈希值,源检查点的区块高度,目标检查点的区块高度>的签名。

具体地,所述节点S设置满足预设规则的检查点之间的指向采用:所述节点S设置满足包括:不能重复设置检查点之间的指向以及不能循环设置检查点之间的指向;

所述不能重复设置检查点之间的指向是同一个节点发布的检查点之间的指向提案的目标检查点高度不能一样;

所述不能循环设置检查点之间的指向是同一个节点发布的检查点之间的指向提案的高度不能包含在之前发布的检查点之间指向提案的高度里面。

模块M3:共识系统中其他节点对节点S设置的检查点之间的指向进行共识投票;当检查点之间的指向获得预设数量节点的共识投票,且检查点A处于justified状态时,则当前指向的检查点B达到finalized状态,检查点被敲定;当存在网络分区时,则表示检查点分叉,等待网络恢复,选择获取到最多共识投票数的链作为主链继续进行敲定;

具体地,所述模块M3采用:共识系统中其他节点对节点S设置的检查点之间的指向通过IBFT共识或BFT共识进行投票。

所述justified状态表示检查点的后续还存在区块,并且当前检查点的上一个检查点的后续也存在区块;

所述finalized状态是在共识系统中所有节点都不能对当前指向的区块进行分叉。

具体地,还包括:当节点S设置的检查点之间的指向不满足预设规则时,则节点S质押在链上的资金将会被回收。

实施例2是实施例1的优选例

一种基于IBFT的区块敲定系统,包括:vote投票模块、作弊惩罚模块和分叉选择模块。具体框架图如图1所示:

在整个共识系统中,每隔50个区块会设置一个检查点,即,检查点必须是50的倍数。Genesis block是第一个检查点(某一个区块),检查点的高度(区块高度)记为h(c)。网络中的所有节点都会对一个vote消息进行投票,vote的内容如表1所示。vote本质上是一个link,即两个检查点之间的一个指向,从源检查点指向目标检查点,如图3所示。vote具体内容如下:

表1.vote的内容

vote投票模块中每个节点都可以发起一个提议,这个提议就是这个vote。然后每个节点基于这个vote进行IBFT投票。同时,发起的提议必须不能违反作弊惩罚模块中定义的规则,如果违反了规则,节点质押在链上的资金将会被回收。在vote投票模块中,可以不使用IBFT作为vote的验证方式,可以使用传统的BFT共识作为选举的机制,可以简化检查点共识的流程。

作弊惩罚模块定义了节点提议vote的规则,通过这个规则,可以保证最终选出来的检查点不会产生冲突。

分叉选择模块处理网络分区时的问题,一旦有检查点分叉,那么等待这些不能通信的节点恢复相互之间的通信,再选择获取到最多投票数的那条链作为主链继续进行敲定。所述网络分区是指网络中有的节点由于网络连接问题处于不同的网络状态下,不能互相通信,则表示网络分区;

如图2所示,genesis是根,是第一个检查点,c1代表检查点,c1”是c1的冲突的一个检查点,由于PoW出块时难度值被设置的非常小,因此出块速率非常快,经常会出现检查点冲突的情况。h是检查点点高度,如genesis的高度h是0,c1的高度为1。link其实就是一个vote,节点会提议link,对该link进行IBFT共识。

作弊惩罚模块可以解决上述finalized状态冲突的问题。即节点在发布vote提案时,不能违背以下原则,否则将会被没收所有质押在链上的资产:

1.不能重复vote:同一个节点发布的vote提案的目标检查点高度不能一样。即h(t1)=h(t2).

2.不能循环vote:同一个节点发布的vote提案的高度不能包含在他之前发布的vote提案高度里面。即h(s1)

如果节点违反了以上规则,那么该节点所有质押在链上的资金都将会被没收。在小于1/3作恶节点的情况下,作弊惩罚模块可以保证一定程度上的活性。即,组合所有的supermajority路径,最后一定可以找到一条所有检查点都处于finalized状态的的路径。共识节点会基于这条路径进行共识。

分叉选择模块中因为每个参与IBFT共识的节点都在链上质押了资产,假设验证者集合个数是确定的。如果网络分区了,那么在每个区上,原先的pow共识还可以继续进行,但是由于拿不到2/3的确认,因此没有节点会被finalized,只能等待网络恢复。网络恢复之后,分叉选择模块会选择最高的justified最高的,最长的链继续pow出块。

本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号