会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 资料储存系统 / 工作量证明 / 用于区块链网络中的区块生成方法和网络节点

用于区块链网络中的区块生成方法和网络节点

阅读:881发布:2020-07-21

IPRDB可以提供用于区块链网络中的区块生成方法和网络节点专利检索,专利查询,专利分析的服务。并且本公开提供了一种用于区块链网络中的区块生成方法和实现该方法的网络节点。该方法包括:获取该区块链网络的网络节点的交易池;确定该网络节点的交易池是否为空;响应于确定该网络节点的交易池为非空,基于区块链中的最后一个区块的区块头和该区块链网络设定的用于工作量证明的哈希谜题的难度值,求解该哈希谜题;以及响应于成功解出该哈希谜题,生成下一区块,该下一区块包含该交易池中的所有交易。,下面是用于区块链网络中的区块生成方法和网络节点专利的具体信息内容。

1.一种用于区块链网络中的区块生成方法,包括:获取所述区块链网络的网络节点的交易池;

确定所述网络节点的交易池是否为空;

响应于确定所述网络节点的交易池为非空,基于区块链中的最后一个区块的区块头和所述区块链网络设定的用于工作量证明的哈希谜题的难度值,求解所述哈希谜题;以及响应于成功解出所述哈希谜题,生成下一区块,所述下一区块包含所述交易池中的所有交易。

2.如权利要求1所述的方法,还包括:

在获取网络节点的交易池之前,确定所述区块链网络是否满足预定条件;并且获取网络节点的交易池包括:响应于确定所述区块链网络满足所述预定条件,获取所述网络节点的交易池。

3.如权利要求2所述的方法,其中确定所述区块链网络是否满足预定条件包括:确定所述区块链网络的总交易量是否低于预定阈值。

4.如权利要求2所述的方法,其中确定所述区块链网络是否满足预定条件包括:确定所述区块链网络是否处于预定时间段内。

5.如权利要求1所述的方法,其中获取网络节点的交易池包括:确定所述网络节点处是否存在本地发起的交易;以及响应于确定所述网络节点处存在本地发起的交易,将所述本地发起的交易放入所述网络节点的交易池中。

6.如权利要求1所述的方法,其中获取网络节点的交易池包括:确定所述网络节点处是否接收到从所述区块链网络中的其他网络节点广播的交易;以及响应于确定所述网络节点处接收到从所述区块链网络中的其他网络节点广播的交易,将从所述其他网络节点广播的交易放入所述网络节点的交易池中。

7.如权利要求1所述的方法,其中获取网络节点的交易池包括:确定所述网络节点处是否接收到从所述区块链网络中的其他网络节点广播的网络区块;

响应于确定所述网络节点处接收到从所述区块链网络中的其他网络节点广播的网络区块,确定所述网络区块是否为有效区块;以及响应于确定所述网络区块为有效区块,从所述网络节点的交易池中移除与所述网络区块中相同的交易。

8.如权利要求1所述的方法,还包括:

在生成下一区块之后,清空所述交易池中的所有交易。

9.一种用于区块链网络中的区块生成的网络节点,包括:存储器,其中存储有计算机程序代码;以及

处理器,其被配置为运行所述存储器中存储的计算机程序,以获取所述区块链网络的网络节点的交易池;

确定所述网络节点的交易池是否为空;

响应于确定所述网络节点的交易池为非空,基于区块链中的最后一个区块的区块头和所述区块链网络设定的哈希谜题的难度值,求解所述哈希谜题;以及响应于成功解出所述哈希谜题,生成下一区块,所述下一区块包含所述交易池中的所有交易。

10.如权利要求9所述的网络节点,其中所述处理器还被配置为运行所述存储器中存储的计算机程序代码,以在获取网络节点的交易池之前,确定所述区块链网络是否满足预定条件;并且响应于确定所述区块链网络满足所述预定条件,获取所述网络节点的交易池。

11.如权利要求10所述的网络节点,其中所述处理器还被配置为运行所述存储器中存储的计算机程序代码,以确定所述区块链网络的总交易量是否低于预定阈值。

12.如权利要求10所述的网络节点,其中所述处理器还被配置为运行所述存储器中存储的计算机程序代码,以确定所述区块链网络是否处于预定时间段内。

13.如权利要求9所述的网络节点,其中所述处理器还被配置为运行所述存储器中存储的计算机程序代码,以确定所述网络节点处是否存在本地发起的交易;以及响应于确定所述网络节点处存在本地发起的交易,将所述本地发起的交易放入所述网络节点的交易池中。

14.如权利要求9所述的网络节点,其中所述处理器还被配置为运行所述存储器中存储的计算机程序代码,以确定所述网络节点处是否接收到从所述区块链网络中的其他网络节点广播的交易;以及响应于确定所述网络节点处接收到从所述区块链网络中的其他网络节点广播的交易,将从所述其他网络节点广播的交易放入所述网络节点的交易池中。

15.如权利要求9所述的网络节点,其中所述处理器还被配置为运行所述存储器中存储的计算机程序代码,以确定所述网络节点处是否接收到从所述区块链网络中的其他网络节点广播的网络区块;

响应于确定所述网络节点处接收到从所述区块链网络中的其他网络节点广播的网络区块,确定所述网络区块是否为有效区块;以及响应于确定所述网络区块为有效区块,从所述网络节点的交易池中移除与所述网络区块中相同的交易。

16.如权利要求9所述的网络节点,其中所述处理器还被配置为运行所述存储器中存储的计算机程序代码,以在生成下一区块之后,清空所述交易池中的所有交易。

说明书全文

用于区块链网络中的区块生成方法和网络节点

技术领域

[0001] 本公开涉及互联网技术,更具体地,涉及一种用于区块链网络中的区块生成方法和实现这种方法的网络节点。

背景技术

[0002] 区块链(Blockchain)是比特币的一个重要概念,其本质上是一个去中心化的数据库,同时作为比特币的底层技术。区块链是一串使用密码学方法相关联产生的数据区块(即区块),每一个数据区块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
[0003] 狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。
[0004] 每当有加密交易产生时,网络中有强大运算能力的节点(即矿工(Miner))就开始竞争解一个哈希谜题,竞争成功的节点获得产生新的区块的权利以构造出新的区块来记录最新的交易,这也被称为工作量证明(Proof-of-Work,PoW)方式。新的区块按照时间顺序线性地被补充到原有的区块链末端,这个帐本就会不停的增长和延长。
[0005] 图1示出了一种传统的中心化网络100的结构示意图。如图1中所示,网络100包括一个中心服务器10和多个网络节点11-16。中心服务器10用于管理和维护网络100的总账本,网络节点11-16中的每一个分别与中心服务器10相连,用于管理和维护其自身的账本。当其中一个网络节点产生新的交易时,该网络节点将该交易记录发送给中心服务器10,中心服务器10验证该交易并将交易记录保存在总账本中。
[0006] 在这种传统的中心化网络100中,对中心服务器10的有效攻击可能会破坏整个网络。并且,由于每个交易都由中心服务器10验证,对于包含大量网络节点的网络来说,整个网络的处理效率将会不可避免地变得很低。
[0007] 图2示出了一种去中心化的区块链网络200的结构示意图。如图2中所示,区块链网络200不包括中心服务器,而仅仅包括多个网络节点21-25,网络节点21-25中的每一个与其他网络节点中的至少一个相连。例如,当网络中产生新的交易时,网络中有强大运算能力的所有节点21-25(即矿工(Miner))都会根据当前区块链的状态(即前一区块的区块头)以及系统所设定的哈希谜题难度值,对该哈希谜题求解。第一个解出哈希谜题的节点(例如节点21)将获得产生新区块的权利以将待处理的交易包含在该新产生的区块内,这也被称为工作量证明(Proof-of-Work,PoW)方式。接下来,节点21将新区块广播给网络中的所有节点以进行处理和验证。达成一致的新区块将被补充到原有的区块链末端,从而总账本就会不停的延长。

发明内容

[0008] 在上述方案中,无论当前网络中是否有交易,网络中的所有节点都会对哈希谜题求解以竞争生成区块的权利,一个节点是否能够竞争成功仅仅取决于该节点的计算能力。然而,在系统中总的交易量较少的时段内,在某些时刻,虽然节点仍然会依靠其强大的计算能力竞争并生成和广播区块,但是该区块中可能不包含任何交易。在这种情况下,大量的计算、存储和网络带宽资源将被浪费在这种无效的区块生成竞争中,从而导致巨大的浪费。
[0009] 针对上述问题中的至少一个,本公开提出了一种用于区块链网络中的区块生成方法以及用于该方法的网络节点,以避免生成不包含任何交易的新区块。
[0010] 根据本公开的一个方面,提供了一种用于区块链网络中的区块生成方法。该方法包括:获取该区块链网络的网络节点的交易池;确定该网络节点的交易池是否为空;响应于确定该网络节点的交易池为非空,基于区块链中的最后一个区块的区块头和该区块链网络设定的用于工作量证明的哈希谜题的难度值,求解该哈希谜题;以及响应于成功解出该哈希谜题,生成下一区块,该下一区块包含该交易池中的所有交易。
[0011] 根据本公开的另一个方面,提供了一种用于区块链网络中的区块生成的网络节点。该网络节点包括:存储器,其中存储有计算机程序代码;以及处理器,其被配置为运行该存储器中存储的计算机程序,以获取该区块链网络的网络节点的交易池;确定该网络节点的交易池是否为空;响应于确定该网络节点的交易池为非空,基于区块链中的最后一个区块的区块头和该区块链网络设定的哈希谜题的难度值,求解该哈希谜题;以及响应于成功解出该哈希谜题,生成下一区块,该下一区块包含该交易池中的所有交易的交易列表。
[0012] 利用本公开的方案,通过使得只有包含待处理的交易时,网络节点才能竞争生成区块的权利,避免了生成不包含交易的区块所造成的能量、存储空间和网络带宽资源的浪费。

附图说明

[0013] 通过参考下列附图所给出的本公开的具体实施方式的描述,将更好地理解本公开,并且本公开的其他目的、细节、特点和优点将变得更加显而易见,其中:
[0014] 图1示出了一种传统的中心化网络的结构示意图;
[0015] 图2示出了一种去中心化的区块链网络的结构示意图;
[0016] 图3示出了区块结构的示意图;
[0017] 图4示出了根据本公开的实施方式的用于区块链网络中的区块生成方法的流程图;
[0018] 图5示出了根据本公开的用于区块链网络中的区块生成的装置的方框图;以及[0019] 图6示出了适合实现本公开的实施例的设备的方框图。

具体实施方式

[0020] 下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0021] 图3示出了区块结构300的示意图。如图3中所示,区块300主要包括区块头310和该区块所包含的交易列表320。通常,区块头310的大小为80字节,包括版本号311(4字节)、区块链中的上一区块的哈希值312(32字节)、Merkel根哈希值313(hashMerkelRoot,32字节)、时间戳314(4字节)、该区块的哈希谜题的难度值315(4字节)和随机数Nonce 316(4字节)。交易列表320包括多个交易Tx。
[0022] 图4示出了根据本公开的实施方式的用于区块链网络中的区块生成方法400的流程图。方法400可以在区块链网络200中的任一网络节点处执行,该节点例如可以是如图2中所示的网络200中的节点21至25中的任一个。以下参考图2和图3对方法400进行描述。
[0023] 如图4中所示,方法400从410开始,其中网络200中的任一节点(如节点21)获取该节点的交易池。交易池用于暂时存放将要放入区块中的交易。
[0024] 在第一种实现中,步骤410可以包括:节点21确定是否存在本地发起的交易。为此,节点21可以开启一个本地交易监听进程以例如周期性地监听是否存在本地发起的交易。响应于确定存在本地发起的交易,节点21将该交易放入交易池中。
[0025] 在第二种实现中,步骤410可以包括:节点21确定是否接收到从网络200中的其他节点广播的交易。为此,节点21可以开启一个网络交易监听进程以例如周期性地监听是否接收到网络中的其他节点发起的交易。响应于确定接收到从其他节点广播的交易,节点21将该交易放入交易池中。
[0026] 在第三种实现中,步骤410可以包括:节点21确定是否接收到从网络200中的其他节点广播的网络区块。为此,节点21可以开启一个网络区块监听进程以例如周期性地监听是否接收到网络中的其他节点广播的区块。响应于确定接收到从其他节点广播的区块,节点21从其交易池中移除与接收到的区块中相同的交易。
[0027] 本领域技术人员可以理解,可以根据需要选择以上三种实现方式中的任一种或多种。例如,可以仅仅使用第一种或第二种实现或者使用二者的结合。这是因为,在第一种或第二种实现中,只要节点21确定网络中存在由该节点自身发起的交易或者由网络中的其他节点发起的交易,则可以确保产生的新区块不会是空区块(即,包含有交易)。此外,还可以将第一种和/或第二种实现与第三种实现相结合。通过这种方式,能够避免同一交易被包含在两个不同区块中。
[0028] 在420,节点21确定交易池是否为空。
[0029] 如果交易池为空(420中判断为“否”),则节点21等待预定时间并返回步骤410。
[0030] 另一方面,如果交易池为非空(420中判断为“是”),则在430,节点21可以基于区块链中的最后一个区块的区块头和网络200设定的用于工作量证明的哈希谜题的难度值,求解该哈希谜题。
[0031] 在区块链技术中,求解用于工作量证明的哈希谜题的关键要素包括工作量证明函数、前一区块以及难度值。工作量证明函数是求解哈希谜题的计算方法,前一区块决定了求解的输入数据,而难度值决定了求解所需的工作量。
[0032] 在当前的区块链技术中,工作量证明函数通常是安全散列算法(Secure Hash Algorithm,SHA)256函数。SHA是一个密码散列函数家族,这一组函数由美国国家安全局(National  Security Agency,NSA)设计,美国国家标准与技术研究院(National Institute of Standards and Technology,NIST)发布,主要适用于数字签名标准。SHA256是这个函数家族中的一个,是输出值为256位的哈希算法。到目前为止,还没有出现对SHA256算法的有效攻击。
[0033] 80字节的固定长度的前一区块的区块头310是求解用于工作量证明的哈希谜题的输入数据。
[0034] 难度值是矿工(即节点)们挖矿的重要参考指标,其决定了矿工大约需要经过多少次哈希运算才能产生一个合法的区块。当前,区块链网络中大约10分钟左右产生一个新的区块,而难度值被设定为不管整个网络的运算能力如何,都能够将新区块的产生速度保持在10分钟一个。在当前的区块链技术中,每经过2016个区块,网络中的所有节点都将根据最近的2016个区块所花费的实际时长与期望时长(期望时长为20160分钟)的比值自动调整其难度值。也就是说,如果区块的产生速度比10分钟快,则难度值增加;而如果区块的产生速度比10分钟慢,则难度值降低。
[0035] 通常,工作量证明需要设定一个目标值,该目标值与难度值成反比。工作量证明的达成就是矿工计算出来的区块的哈希值小于目标值。
[0036] 因此,工作量证明的过程即是通过变换不同的区块头310(即变换区块头310中的随机数Nonce 316的值)作为输入进行SHA256运算,将运算结果与特定目标值进行比较。当运算结果小于目标值时,则认为成功解出了哈希难题。
[0037] 在步骤440,节点21确定是否解出了该哈希谜题。
[0038] 如果确定节点21解出了该哈希谜题(步骤440中判断为“是”),则节点21成功竞争得到了产生新区块的权利,因此,在450,节点21生成新区块作为区块链的下一区块,该区块中将包含交易池中的所有交易。
[0039] 接下来,在460,节点21清空交易池中的所有交易,以等待下次竞争。
[0040] 不管网络中的总交易量如何,都可以应用上述方法400。然而,在一些实现中,可以仅在区块链网络满足预定条件(例如网络中总的交易量较少的时段)的情况下应用方法400,而在其他情况下采用传统的方法(即所有节点都对哈希谜题求解以竞争生成区块的权利)。为此,在步骤410之前,方法400还可以包括:确定网络200是否满足预定条件,并且仅在网络200满足预定条件时,执行步骤410。例如,该预定条件可以是网络的总交易量低于某一预定阈值。或者,该预定条件也可以是预定时间段。该预定时间段例如可以是本领域技术人员根据已有的统计数据或经验得到的。
[0041] 图5示出了根据本公开的用于区块链网络中的区块生成的装置500的方框图。装置500例如可以实现在如图2中所示的网络节点21-25中的任一个中。以下以装置500位于节点
21中为例并参考图2和图3来进行描述。
[0042] 如图5中所示,装置500可以包括获取模块510,其被配置为获取区块链网络200的网络节点21的交易池。装置500还可以包括确定模块520,其被配置为确定网络节点21的交易池是否为空。装置500还可以包括哈希求解模块530,其被配置为响应于确定网络节点21的交易池为非空,基于区块链中的最后一个区块的区块头和区块链网络200设定的哈希谜题的难度值,求解该哈希谜题。装置500还可以包括区块生成模块540,其被配置为响应于成功解出该哈希谜题,生成下一区块。该下一区块包含交易池中的所有交易。
[0043] 在一种实现中,装置500还可以包括判断模块(图中未示出),其被配置为在获取网络节点21的交易池之前,确定区块链网络200是否满足预定条件。在这种情况下,获取模块510还被配置为响应于确定区块链网络200满足预定条件,获取网络节点21的交易池。
[0044] 在一种实现中,判断模块被配置为确定区块链网络200的总交易量是否低于预定阈值。
[0045] 在另一种实现中,判断模块被配置为确定区块链网络200是否处于预定时间段内。
[0046] 在一种实现中,获取模块510还被配置为确定网络节点21处是否存在本地发起的交易,并且响应于确定网络节点21处存在本地发起的交易,将该本地发起的交易放入网络节点21的交易池中。
[0047] 在另一种实现中,获取模块510还被配置为确定网络节点21处是否接收到从区块链网络200中的其他网络节点(如节点22至25)广播的交易,并且响应于确定网络节点21处接收到从区块链网络200中的其他网络节点广播的交易,将从其他网络节点广播的交易放入网络节点21的交易池中。
[0048] 在又一种实现中,获取模块510还被配置为确定网络节点21处是否接收到从区块链网络200中的其他网络节点(如节点22至25)广播的网络区块,响应于确定网络节点21处接收到从区块链网络200中的其他网络节点广播的网络区块,确定该网络区块是否为有效区块,并且响应于确定该网络区块为有效区块,从网络节点21的交易池中移除与该网络区块中相同的交易。
[0049] 在一种实现中,装置500还可以包括清除模块(未示出),其被配置为在生成下一区块之后,清空交易池中的所有交易。
[0050] 图6示出了适合实现本公开的实施例的设备600的方框图。设备600可以用来实现如图2中所示的网络节点21-25中的任一个。
[0051] 如图6中所示,设备600包括处理器610。处理器610控制设备600的操作和功能。例如,在某些实施例中,处理器610可以借助于与其耦合的存储器620中所存储的计算机程序代码或指令630来执行各种操作。存储器620可以是适用于本地技术环境的任何合适的类型,并且可以利用任何合适的数据存储技术来实现,包括但不限于基于半导体的存储器件、磁存储器件和系统、光存储器件和系统。尽管图6中仅仅示出了一个存储器单元,但是在设备600中可以有多个物理不同的存储器单元。
[0052] 处理器610可以是适用于本地技术环境的任何合适的类型,并且可以包括但不限于通用计算机、专用计算机、微控制器、数字信号控制器(DSP)以及基于控制器的多核控制器架构中的一个或多个多个。设备600也可以包括多个处理器610。处理器610与通信接口640相连,以通过通信接口640实现信息的接收和发送。
[0053] 利用本公开的方案,只有当系统中有交易时,区块链网络中的节点才开始启动竞争生成区块的作业,从而避免生成不包含任何交易的区块,降低处理交易所产生的能源消耗。另一方面,由于避免了不包含任何交易的区块的生成,网络节点所存储和广播的区块数量都能得到有效减少,从而降低存储及网络资源的开销。
[0054] 在一个或多个示例性设计中,可以用硬件、软件、固件或它们的任意组合来实现本申请所述的功能。例如,如果用软件来实现,则可以将所述功能作为一个或多个指令或代码存储在计算机可读介质上,或者作为计算机可读介质上的一个或多个指令或代码来传输。
[0055] 本文公开的装置的各个单元可以使用分立硬件组件来实现,也可以集成地实现在一个硬件组件,如处理器上。例如,可以用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑、分立硬件组件或用于执行本文所述的功能的任意组合来实现或执行结合本公开所描述的各种示例性的逻辑块、模块和电路。
[0056] 本领域普通技术人员还应当理解,结合本申请的实施例描述的各种示例性的逻辑块、模块、电路和算法步骤可以实现成电子硬件、计算机软件或二者的组合。
[0057] 本公开的以上描述用于使本领域的任何普通技术人员能够实现或使用本公开。对于本领域普通技术人员来说,本公开的各种修改都是显而易见的,并且本文定义的一般性原理也可以在不脱离本公开的精神和保护范围的情况下应用于其它变形。因此,本公开并不限于本文所述的实例和设计,而是与本文公开的原理和新颖性特性的最广范围相一致。
高效检索全球专利

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

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

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用