当前位置: 首页 > 专利查询>张超专利>正文

一种区块链的出块方法和装置制造方法及图纸

技术编号:20750580 阅读:30 留言:0更新日期:2019-04-03 11:21
本发明专利技术公开了一种区块链的出块方法和装置,其中,所述出块方法包括:接收区块链网络上的交易数据,将这些交易数据打包成一个新的区块;安全硬件使用内部封装的身份识别私钥来对所述新的区块做签名,并将所述签名信息添加在所述新的区块中生成新的签名区块;将所述新的签名区块发送到区块链网络中。利用本发明专利技术实施例的方法和装置,由于区块链的出块节点的安全硬件内封装的身份识别私钥无法被提取出来,保证了所述出块节点身份识别信息的无法复制性和唯一性,从而避免了所述出块节点利用分身复制进行的女巫攻击;区块链上的接收节点对所述新的签名区块中的签名信息做验证,就能够确定出块者的身份,从而判断此区块是否由许可节点生成。

【技术实现步骤摘要】
一种区块链的出块方法和装置
本专利技术实施例涉及区块链以及安全硬件领域,并且更具体地,涉及一种区块链上的区块出块方法和装置。
技术介绍
区块链是一种去中心化的分布式账本,它将每一笔交易都记录在区块链网络的每一个节点上。每个节点内包括所有的区块,每个区块包括若干笔交易,所有区块的集合就包含了区块链上所有交易的集合,所以区块的生成至关重要。由于区块链的去中心化机制让任何一个节点都有生成区块的机会,所以如何保障每个节点出块机会的公平和公正是至关重要的。对出块机会的设计是区块链共识机制的核心,首先想到是用软件方式出块,即在一定时间间隔内,每一个软件客户端都有一个出块机会。但是这种方式有严重的缺陷,容易受到所谓的女巫攻击,即软件客户端分身复制成多份,每份都有一个出块机会。这种缺陷导致了区块链出块机会的共识在事实上无法实现,因为每个节点为了争取最大的出块机会,都会尽量复制更多客户端直到内存或者CPU用尽。为了解决上述出块机会共识过程中软件客户端分身复制的问题,现有技术中的ProofofWork(PoW)方式使用了基于算力的共识机制,即一个软件客户端就可以用尽这台机器上的所有CPU算力或内存,使得分身复制软件客户端的办法变得无关紧要,因为出块机会是跟算力或内存成正比而不是跟软件客户端数量相关。PoW共识方式本质上是用硬件方式确定出块机会,硬件越强大,出块机会也越高,避免了软件客户端的分身复制缺陷。但是PoW方式由于消耗大量的电力和计算资源,是一种非常低效的方式。为了解决上述出块机会共识过程中软件客户端分身复制的问题,现有技术中的ProofofAuthority(PoA)方式使用了基于文件的身份标识方式,即将每个出块节点的身份标识信息存放在节点上的某个文件中,被使用来设置区块中的出块身份信息。每一个身份标识在一定时间间隔内只有一个出块机会。但是此方式由于使用文件形式存放身份标识信息,很容易被窃取,从而使得其他恶意者可以获得同样的出块机会,甚至可以替换真实节点发出的区块。综上,如何在区块的出块过程中,能以更加高效和安全的方式保证出块节点身份的唯一性和不可复制性,是区块链共识过程中保证公平和公正性的亟需解决的技术问题。
技术实现思路
本专利技术实施例中提供了一种区块链的出块方法和装置,能有效的保证出块节点身份标识的不可复制性和唯一性,从而保证了每个节点出块机会的公平和公正性。本专利技术实施例提供了以下的技术方案:第一方面,提供了一种区块链的出块方法,包括:在区块链网络上接收到新的交易数据,将所述交易数据打包生成新的区块;使用安全硬件对所述新的区块进行签名,生成数字签名,所述安全硬件内部封装了出块节点的身份识别的私钥,私钥无法被提取出来,只能在安全硬件内部使用;读取身份识别信息,与所述数字签名合成为签名信息,添加到新的区块里面生成新的签名区块;将所述新的签名区块发送到区块链网络上,从而让其他接收节点能够收到所述新的签名区块;第二方面,提供了一种区块链的区块接受方法,包括:在区块链网络中收到一个区块;读取所述区块的签名信息,从签名信息中提取出身份识别信息,判断生成所述区块的出块节点是否为许可节点;从签名信息中提取出数字签名,验证数字签名和身份识别信息的一致性和正确性;当验证为许可节点并且数字签名正确时,接受所述区块。结合第二方面,在第一种可能的实现方式中,所述使用身份识别信息判断生成所述区块的出块节点是否为许可节点,具体包括:读取预先设置的身份识别列表;将所述身份识别信息与所述身份识别列表做对比,判断是否是许可节点。结合第二方面,在第二种可能的实现方式中,所述使用身份识别信息判断生成所述区块的出块节点是否为许可节点,具体包括:获取身份识别信息的签发机构信息;读取预先设置的签发机构信息列表;将所述签发机构信息与所述预先设置的签发机构信息列表做对比,判断是否是许可节点。第三方面,提供了一种区块链的出块装置,所述装置包括:区块生成模块,用于在收到区块链上的一批交易数据后,将这些交易数据打包并生成一个新的区块;安全硬件模块,封装了节点身份识别的私钥部分,私钥无法被提取出来,仅能在安全硬件中被使用,进行签名操作生成数字签名;区块签名合成模块,用于把所述数字签名及身份识别信息合成为签名信息,添加到所述新的区块中,生成新的签名区块;区块发送模块,用于把新的签名区块通过区块链网络发送出去。在本专利技术实施例的上述技术方案中,由于出块节点标识身份识别的私钥封装在安全硬件内部,保证了私钥的不可提取和不可复制,从而避免了出块节点的分身复制,让每个出块节点有公平公正的出块机会;同时,由于私钥的不可提取和不可复制,让其他恶意者无法窃取和伪造任何一个出块节点的身份识别,从而保证了每个出块节点的安全性,避免了恶意者替换真实节点发出的区块。附图说明为了更清楚的说明本专利技术实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1示意性的示出了根据本专利技术实施例一实现的区块链的出块方法的流程图。图2示意性的示出了根据本专利技术实施例一中的安全硬件签名的流程图。图3示意性的示出了根据本专利技术实施例二实现的区块链的区块接受方法的流程图。图4示意性的示出了根据本专利技术实施例二实现的区块身份识别方法的流程图。图5示意性的示出了根据本专利技术实施例二实现的另一种区块身份识别方法的流程图。图6示意性的示出了根据本专利技术实施例三实现的区块链的出块装置的框图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例一提供了一种区块链的出块方法,如图1所示,该方法包括:步骤S101:接收区块链上的交易信息,将这些交易信息打包成一个新的区块;区块链的出块节点连接到区块链网络中,从网络中不断的接收区块链的交易数据,这些交易数据由区块链使用者生成并发送到区块链网络中;所述出块节点通过监听新收到的交易,将一批新收到的交易按照一定顺序打包成一个新的区块,所述新的区块包含了交易以及对交易和区块自身描述的元数据信息。步骤S102:安全硬件对所述新的区块做数字签名,生成签名信息并添加在所述新的区块中,生成新的签名区块;本实施例中的所述的安全硬件是内置身份识别私钥的、能对传入的数据进行数字签名的硬件,其内置的私钥无法被提取出来;当所述新的区块被打包生成之后,所述安全硬件使用内置的身份识别私钥对所述新的区块进行签名后生成数字签名;读取存放在文件系统上的身份识别信息,将所述数字签名与所述身份识别信息合并后生成签名信息,并将所述签名信息添加到所述新的区块中,生成新的签名区块;整个过程如图2所示。步骤S103:将所述新的签名区块广播到区块链网络中;把新的签名区块发送到区块链的网络中,向区块链所有节点广播,用以让其他节点都能收到此区块。需要说明的是,在本专利技术实施例提供的出块方法中,安全硬件里面的身份识别私钥由运营管理者生成并写入到安全硬件内本文档来自技高网
...

【技术保护点】
1.一种区块链出块方法,其特征在于,包括:从区块链网络上接收新的交易数据,并将交易数据打包成新的区块;使用安全硬件对所述新的区块执行数字签名操作,并将签名信息添加在所述新的区块中生成新的签名区块;将所述新的签名区块在区块链网络内广播。

【技术特征摘要】
1.一种区块链出块方法,其特征在于,包括:从区块链网络上接收新的交易数据,并将交易数据打包成新的区块;使用安全硬件对所述新的区块执行数字签名操作,并将签名信息添加在所述新的区块中生成新的签名区块;将所述新的签名区块在区块链网络内广播。2.根据权利要求1所述的方法,其特征在于,所述安全硬件使用内部封装的身份识别私钥对所述新的区块执行数字签名,具体包括:将所述新的区块传入所述安全硬件;所述安全硬件使用内部封装的身份识别私钥对所述新的区块进行数字签名;生成签名信息并添加到新的区块中,生成新的签名区块。3.根据权利要求2所述的方法,其特征在于,安全硬件内部封装的身份识别私钥无法被提取出来,避免了使用分身复制方式进行的女巫攻击。4.根据权利要求2所述的方法,其特征在于,安全硬件在做签名时需要使用内部封装的身份识别私钥,对所述新的区块进行数字签名。5.根据权利要求2所述的方法,其特征在于,生成签名信息并添加到新的区块中,生成新的签名区块,具体包括:获取所述安全硬件对所述新的区块签名后生成的数字签名;读取身份识别信息;将所述数字签名和所述身份识别信息合成为签名信息;将所述签名信息添加在所述新的区块中,生成新的签名区块。6.一种区块链区块接受方法,其特征在于,所述方法包括如下步骤:在区块链网络中收到一个区块;检查所述区块的签名信息,判断生成所述区块的出块节点是否为许可节点;当所述区块的出块节点为许可节点时,接受所述区块。7.根据权利要求6所述的方法,其特征在于,检查所述区块的签名信息,判断生成所述区块的出块节点是否为许可节点,...

【专利技术属性】
技术研发人员:张超
申请(专利权)人:张超
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1