可信区块生成方法及系统与流程

文档序号:12278991阅读:113来源:国知局
可信区块生成方法及系统与流程

本发明涉及区块链领域,尤其涉及区块链领域的可信区块生成方法及系统。



背景技术:

现有区块链技术中可信区块生成存在一些问题和缺陷,具体如下:所有节点参与区块生成,交易确认的时间长;节点通过广播的方式实现互联,区块生成时,部分交易可能未打包入块,不便于维护管理。



技术实现要素:

为了克服现有技术的不足,本发明的目的在于提供可信区块生成方法及系统,其能减少交易的确认时间,快速生成新区块,可信区块生成节点便于维护管理。

本发明的目的采用以下技术方案实现:

可信区块生成方法,包括:

区块生成节点将预设时间内的交易数据进行封装,根据封装后的交易数据生成新区块,并根据区块生成节点自身标识对所述新区块进行签名;

区块生成节点将所述新区块以及自身标识发送给验证节点;

验证节点根据区块生成节点自身标识对所述签名进行验证以及根据交易标识对新区块的交易数据进行验证,若验证通过,则将所述新区块添加到区块链中。

优选的,所述区块生成节点将预设时间内的交易数据进行封装,之前还包括:

利用公钥或CA证书对所述区块生成节点进行标识,将所述公钥或CA证书作为区块生成节点自身标识。

优选的,验证节点根据区块生成节点自身标识对所述签名进行验证以及根据交易标识对新区块的交易数据进行验证,若验证通过,则将所述新区块添加到区块链中,具体包括:

当所述验证节点为多个,则所有验证节点根据区块生成节点自身标识对所述签名进行验证以及根据交易标识对新区块的交易数据进行验证,若至少通过N个验证节点验证,则将所述新区块添加到区块链中,其中,N为大于1的自然数。

优选的,所有验证节点根据区块生成节点自身标识对所述签名进行验证以及根据交易标识对新区块的交易数据进行验证,具体包括:

所有验证节点都根据区块生成节点自身标识对所述签名进行验证,若验证通过,则根据交易标识对新区块的每条交易数据都进行验证。

优选的,所述方法还包括:

验证节点根据接收到的新增命令新增区块生成节点;或/和根据接收到的删除指令删除区块生成节点。

本发明还涉及一种可信区块生成系统,包括:

区块生成节点和验证节点,所述区块生成节点包括:封装模块、生成模块、签名模块以及发送模块;所述验证节点包括:验证模块以及添加模块;

所述封装模块,用于将预设时间内的交易数据进行封装;所述生成模块,用于根据封装后的交易数据生成新区块;所述签名模块,用于根据区块生成节点自身标识对所述新区块进行签名;所述发送模块,用于将所述新区块以及区块生成节点自身标识发送给验证节点;

所述验证模块,用于根据区块生成节点自身标识对所述签名进行验证以及根据交易标识对新区块的交易数据进行验证;所述添加模块,用于当验证通过,将所述新区块添加到区块链中。

优选的,所述系统还包括:标识单元,用于利用公钥或CA证书对所述区块生成节点进行标识,将所述公钥或CA证书作为区块生成节点自身标识。

优选的,所述验证模块,还具体用于:当所述验证节点为多个,则所有验证节点的验证模块都根据区块生成节点自身标识对所述签名进行验证以及根据交易标识对新区块的交易数据进行验证;所述添加模块还具体用于:若至少通过N个验证节点验证,则将所述新区块添加到区块链中,其中,N为大于1的自然数。

优选的,所述所有验证节点的验证模块根据区块生成节点自身标识对所述签名进行验证以及根据交易标识对新区块的交易数据进行验证,具体包括:

所有验证节点的验证模块都根据区块生成节点自身标识对所述签名进行验证,若验证通过,则根据交易标识对新区块的每条交易数据都进行验证。

优选的,所述验证节点还包括:增加模块和删除模块;

所述增加模块,用于根据接收到的新增命令新增区块生成节点;所述删除模块,用于根据接收到的删除指令删除区块生成节点。

相比现有技术,本发明的有益效果在于:根据区块生成节点自身标识对新区块进行签名,多个验证节点根据区块生成节点自身标识对所述签名以及新区块的交易数据进行验证,其能减少交易的确认时间,快速生成新区块。各验证节点根据接收到的新增命令新增区块生成节点;或/和根据接收到的删除指令删除区块生成节点。可信区块生成节点便于维护管理。

附图说明

图1为本发明第一实施例中一可信区块生成方法流程示意图;

图2为本发明第二实施例中一可信区块生成方法流程示意图;

图3为本发明所述可信区块生成系统的区块生成节点结构示意图;

图4为本发明所述可信区块生成系统的验证节点结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1为本发明第一实施例提供的可信区块生成方法流程示意图,

如图1所示,该方法包括以下步骤:

步骤S101:区块生成节点将预设时间内的交易数据进行封装,根据封装后的交易数据生成新区块,并根据区块生成节点自身标识对所述新区块进行签名。

具体的,区块生成节点将预设时间内(比如1分钟、2分钟或者10分钟内,具体的,可以根据实际情况进行设定,在此不做限定)的交易数据按照交易数据的类型进行封装打包,然后根据封装后的交易数据生成新区块,区块生成节点根据区块生成节点的标识对新区块进行签名。

本步骤中,区块生成节点属于验证节点群,需要根据算法从验证节点群中选出一个区块生成节点.。选举区块生成节点的方法为:在预先定义的验证节点群中,每个验证节点按照预先定义的顺序获得一个序号(0到N-1),N是指验证节点总数;每个验证节点都会计算出一个区块生成节点序号M,计算公式:M=(区块链高度H%验证节点总数N);在每个验证节点上,假如当前区块生成节点的序号M和当前验证节点的序号相同,那么当前验证节点就被选举为区块生成节点,其他的验证节点则不是区块生成节点。

步骤S102:区块生成节点将所述新区块以及自身标识发送给验证节点。

优选的,区块生成节点可以通过广播方式将所述新区块以及自身标识发送给验证节点。

步骤S103:验证节点根据区块生成节点自身标识对所述签名进行验证以及根据交易标识对新区块的交易数据进行验证,若验证通过,则所述新区块添加到区块链中。

本步骤中,当所述验证节点为多个,则所有验证节点都根据区块生成节点自身标识对所述签名进行验证以及根据交易标识对新区块的交易数据进行验证。所有验证节点都根据区块生成节点自身标识对所述签名进行验证,若验证通过,则根据交易标识对新区块的每条交易数据都进行验证,若验证通过,验证节点向区块生成节点发送验证通过消息,否则向区块生成节点发送验证不通过消息。区块生成节点接受所有验证节点的响应信息,若至少通过N个验证节点验证,则将所述新区块添加到区块链中,其中,N为大于1的自然数。比如,若所述通过验证节点验证的对应验证节点的个数大于所有验证节点数量的2/3,则说明新区块被2/3以上的验证节点验证通过,则将新区块添加到区块链中。

优选的,所述交易标识为每条交易中包含的交易发送方的公钥地址。

根据区块生成节点自身标识对新区块进行签名,多个验证节点根据区块生成节点自身标识对所述签名进行验证以及根据交易标识对新区块的交易数据进行验证,其能减少交易的确认时间,快速生成新区块。

如图2,本发明第二实施例提供的可信区块生成方法,包括以下步骤:

步骤S201:利用公钥或CA证书对所述区块生成节点进行标识,将所述公钥或CA证书作为区块生成节点自身标识。

此步骤中,优选的,使用非对称椭圆曲线算法secp256k1在本地生成公钥和私钥,生成的公钥具有唯一的特性,不会出现不同私钥而公钥相同的情况。因此,使用公钥来标识节点身份可以保证节点唯一性。公钥可以使用CA证书替代,CA证书可以向区块链CA管理中心申请,届时将获取一份自签名根证书(CA证书)和CA私钥,该CA证书将是全网唯一一份证书,不会出现CA私钥不同而CA证书相同的情况。

步骤S202:区块生成节点将预设时间内的交易数据进行封装,根据封装后的交易数据生成新区块,并根据区块生成节点自身标识对所述新区块进行签名。

具体的,区块生成节点将预设时间内(比如1分钟、2分钟或者10分钟内,具体的,可以根据实际情况进行设定,在此不做限定)的交易数据按照交易数据的类型进行封装打包,然后根据封装后的交易数据生成新区块,区块生成节点根据区块生成节点的标识对新区块进行签名。具体的,使用区块生成节点私钥对新区块进行签名。选举区块生成节点的方法与第一实施例中所述方法相同,在此不再赘述。

步骤S203:区块生成节点将所述新区块以及自身标识发送给验证节点。

具体的,区块生成节点通过广播方式将所述新区块以及自身标识发送给验证节点。

步骤S204:验证节点根据区块生成节点自身标识对所述签名进行验证以及根据交易标识对新区块的交易数据进行验证,若验证通过,则所述新区块添加到区块链中。此步骤与第一实施例所述方法中的步骤S103相同,在此不再赘述。

优选的,所述方法还包括:验证节点根据接收到的新增命令新增区块生成节点;或/和根据接收到的删除指令删除区块生成节点。

新增可信区块生成者方法如下:

超级管理员向各验证节点发送新增命令和新增的可信区块生成节点的公钥。各验证节点接受到超级管理员发送的新增命令和新增的可信区块生成节点的公钥。每个验证节点将新增的可信区块生成节点的公钥保存到本地的可信区块生成者列表中。

删除可信区块生成者方法如下:

超级管理员向各验证节点发送删除命令和删除的可信区块生成节点的公钥。各验证节点接受超级管理员发送的删除命令和删除的可信区块生成节点的公钥。每个验证节点从本地的可信区块生成节点列表中查找到需要删除的可信区块生成节点的公钥,并将之从列表中去除。

上述超级管理员,可以是服务器节点等,通过超级超级管理员向各验证节点发送新增和删除命令来新增和删除可信区块生成节点,可信区块生成节点便于维护管理。

进一步的,本发明实施例还提供了一种可信区块生成系统,该系统包括:区块生成节点和验证节点。

如图3所示,所述区块生成节点包括:封装模块11、生成模块12、签名模块13以及发送模块14。封装模块11用于将预设时间内的交易数据进行封装;生成模块12用于根据封装后的交易数据生成新区块;签名模块13用于根据区块生成节点自身标识对所述新区块进行签名;发送模块14用于将所述新区块以及区块生成节点自身标识发送给验证节点。

如图4所示,所述验证节点包括:验证模块21以及添加模块22。

验证模块21用于根据区块生成节点自身标识对所述签名进行验证以及根据交易标识对新区块的交易数据进行验证;当所述验证节点为多个,则所有验证节点的验证模块都根据区块生成节点自身标识对所述签名进行验证以及根据交易数据对新区块的交易数据进行验证,所有验证节点的验证模块都根据区块生成节点自身标识对所述签名进行验证,若验证通过,则根据交易标识对新区块的每条交易数据都进行验证。

添加模块22用于当所述验证通过,将所述新区块添加到区块链中。具体的,若至少通过N个验证节点验证,则将所述新区块添加到区块链中,其中,N为大于1的自然数。

根据区块生成节点自身标识对新区块进行签名,多个验证节点根据区块生成节点自身标识对所述签名进行验证以及根据交易标识对新区块的交易数据进行验证,其能减少交易的确认时间,快速生成新区块。

优选的,所述系统还包括:标识单元,用于利用公钥或CA证书对所述区块生成节点进行标识,将所述公钥或CA证书作为区块生成节点自身标识。

优选的,所述验证节点还包括:增加模块和删除模块;

所述增加模块,用于根据接收到的新增命令新增区块生成节点;所述删除模块,用于根据接收到的删除指令删除区块生成节点。

本实施例中的系统与前述实施例中的可信区块生成方法是基于同一发明构思下的两个方面,在前面已经对方法实施过程作了详细的描述,所以本领域技术人员可根据前述描述清楚地了解本实施例中的系统的结构及实施过程,为了说明书的简洁,在此就不再赘述。

对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。

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