一种区块链系统上的节点加入方法和装置与流程

文档序号:19495584发布日期:2019-12-24 14:54阅读:1472来源:国知局
一种区块链系统上的节点加入方法和装置与流程

本发明实施例涉及区块链领域,并且更具体地,涉及一种区块链系统上的节点加入方法和装置。



背景技术:

区块链是由去中心化的分布式网络节点组成,每个节点都能接收每一笔交易,同时每个节点都能发送交易及生成区块。由于这些交易数据和区块数据对所有节点都是公开的,所以对节点加入区块链系统的控制就至关重要。现有的一些区块链系统没有加入控制,比如比特币和以太坊,每个节点都可以随时加入,随时发送交易数据和区块数据。但是有些区块链系统对访问控制有要求,需要有方法来控制一个节点是否可以加入到区块链系统中,并将所有已加入的节点存放在每个节点的许可列表中。只有在许可列表中的节点发送的交易数据、区块数据和元数据才能被其他节点所接受,避免了恶意节点混入区块链网络发送虚假数据和信息。

最简单的一个维护许可列表的方法是提供一个中心服务器,将每个节点的加入请求发送到中心服务器上,然后中心服务器再发送到所有节点上,同步每个节点上的许可列表。但是这种中心服务器的方法与区块链的去中心化的思路相反,容易被中心服务器的管理者所控制,也会被恶意者作为攻击的目标对象,在安全上存在较大的隐患。

为了解决上述区块链系统的节点加入问题,现有技术中的hyperledgerfabric采用了多方许可的方法,节点的加入请求被发送给区块链系统中的现有节点,现有节点的管理员人工审核此加入请求,当区块链系统中的多数节点审核并许可后,此请求节点被加入到区块链的许可列表中。

为了解决上述区块链系统的节点加入问题,现有技术中的proofofauthority(poa)方式采用了多方请求的方法,即区块链网系统的现有节点的管理员的都可以为此节点提交加入请求,当区块链系统中的多数节点都提交了加入请求后,此请求节点被加入到区块链的许可列表中。

综上两种现有解决方法,都需要现有节点的管理员对请求节点是否应该被允许加入到区块链系统中做出判断,一般要通过社区化的方式向其他节点的管理员求证,直到多数人都确认请求节点的真实性和目的性。



技术实现要素:

本发明实施例中提供了一种区块链系统上的节点加入方法和装置,由于使用了加入特征,使得节点的加入过程完全自动化而无需人工判断,效率更高且避免了出错的可能。本发明实施例提供了以下的技术方案:

第一方面,提供了一种区块链系统上的节点加入方法,包括:

请求节点在加入区块链系统时生成一个加入请求,加入请求包含加入指令和加入特征;

请求节点使用内部封装的身份识别私钥对所述加入请求执行数字签名生成签名信息;

请求节点将所述加入请求、所述签名信息和身份识别证书合成为签名加入请求,并将所述签名加入请求发送到区块链网络中;

区块链网络上的其他节点接收到所述签名加入请求,使用权威机构的数字证书验证所述身份识别证书是否为已认证的真实身份,利用所述身份识别证书验证所述签名信息的正确性,对加入请求中的所述加入特征做验证,判断特征属性是否满足区块链系统的许可条件,当所有验证都通过之后,将所述请求节点的节点标识加入到本地的许可列表中;

当所有节点都将请求节点的节点标识加入到本地的许可列表中后,请求节点加入区块链系统完成;

需要注意的是,当一个区块链节点发出交易和区块数据时,其他节点需要利用所述许可列表来判断此节点是否已经加入了区块链系统,如果所述许可列表包含了此节点的节点标识,则接受此数据,否则直接丢弃。

结合第一方面,在第一种可能的实现方式中,所述加入特征为节点本身的特征属性,具体包括但不限于节点的完整性度量值、物理地址、网络地址、区块链地址、用户标识等信息。

结合第一方面,在第二种可能的实现方式中,所述内部封装的身份识别私钥对所述加入请求执行数字签名生成签名信息,具体包括:

所述身份识别私钥被封装在节点内部的数字签名模块中,只能在节点内部被使用;

将所述加入请求发送到数字签名模块执行数字签名,生成所述签名信息。

第二方面,提供了一种区块链系统上的节点加入装置,所述装置包括:

加入请求生成模块,用于生成一个包含加入指令和加入特征的加入请求;

数字签名模块,封装了节点身份识别的私钥部分,当数字签名模块需要对所述加入请求做数字签名时,读取私钥,并使用签名算法生成签名信息;

签名加入请求合成模块,用于读取节点文件系统中存放的身份识别证书,与加入请求和签名信息合成为签名加入请求,并将所述签名加入请求发送到区块链网络中;

加入请求验证模块,用于提取身份识别证书、加入请求和签名信息,验证所述身份识别证书是否为已认证的真实身份,利用所述身份识别证书验证所述签名信息的正确性,验证所述加入特征是否满足区块链系统的许可条件,当所有验证通过之后,将所述节点的节点标识加入到本地的许可列表中。

附图说明

为了更清楚的说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示意性的示出了根据本发明实施例一实现的区块链系统上的节点加入方法的流程图。

图2示意性的示出了根据本发明实施例一实现的合成为签名加入请求的流程图。

图3示意性的示出了根据本发明实施例一实现的验证加入请求是否被许可的流程图。

图4示意性的示出了根据本发明实施例二实现的区块链系统上的节点加入装置的框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例一提供了一种区块链系统上的节点加入方法,如图1所示,该方法包括:

步骤s101:请求节点生成加入区块链系统的加入请求,加入请求包含加入指令和加入特征;

加入指令告知区块链系统上的其他节点,有节点希望加入到区块链系统中,以便其他节点能够对加入请求做出特殊的处理,例如加入请求无需验证是否已经在许可列表中;加入特征为节点的特征属性,包含但不限于节点的完整性度量值、物理地址、网络地址、区块链地址、用户标识等信息。

步骤s102:请求节点使用内部封装的身份识别私钥对加入请求做数字签名,生成签名信息;

本实施例中请求节点内置数字签名模块,身份识别私钥封装在数字签名模块中,保证了私钥的安全性;加入请求被发送给数字签名模块,使用身份识别私钥执行数字签名,生成签名信息。

步骤s103:请求节点将所述加入请求、所述签名信息和身份识别证书合成为签名加入请求,并将所述签名加入请求发送到区块链网络中,如图2所示。

步骤s104:其他节点收到签名加入请求后,验证加入请求是否被许可;

本实施例中节点使用权威机构的数字证书验证签名加入请求中的身份识别证书是否为已认证的真实身份,利用所述身份识别证书验证所述签名信息的正确性,对加入请求中的所述加入特征做验证,判断特征属性值是否满足区块链系统的加入条件,当所有验证通过之后,将此节点的节点标识加入到本地的许可列表中,如图3所示;

需要说明的是,当一个区块链节点发出交易和区块数据时,其他节点从数据中提取此节点的节点标识,并与本地的许可列表做比较,如果许可列表包含了此节点标识则接受此数据,否则直接丢弃。

基于上述思想,本发明实施例二提供了一种区块链系统上的节点加入装置,如图4所示,该装置300包括:

加入请求生成模块301,用于生成一个包含加入指令和加入特征的加入请求;

数字签名模块302,它里面封装了节点身份识别的私钥部分,当数字签名模块需要对所述加入请求做数字签名时,读取私钥,并使用签名算法生成签名信息;

签名加入请求合成模块303,读取节点文件系统中存放的身份识别证书,与加入请求和签名信息合成为签名加入请求,并将所述签名加入请求发送到区块链网络中;

加入请求验证模块304,提取签名加入请求中的身份识别证书、加入请求和签名信息,验证所述身份识别证书是否为已认证的真实身份,利用所述身份识别证书验证所述签名信息的正确性,验证所述加入特征是否满足区块链系统的许可条件,当所有验证通过之后,将所述节点标识加入到本地的许可列表中。

本发明上述实施例中的装置是与本发明上述实施例中的方法对应的产品,本发明上述实施例中的方法的每一个步骤均由本发明上述实施例中的装置的部件或模块完成,因此对于相同的部分不再进行赘述。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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