CN108712486A - 工作量证明方法及装置 - Google Patents

工作量证明方法及装置 Download PDF

Info

Publication number
CN108712486A
CN108712486A CN201810449683.7A CN201810449683A CN108712486A CN 108712486 A CN108712486 A CN 108712486A CN 201810449683 A CN201810449683 A CN 201810449683A CN 108712486 A CN108712486 A CN 108712486A
Authority
CN
China
Prior art keywords
cryptographic hash
hash
node
current block
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810449683.7A
Other languages
English (en)
Other versions
CN108712486B (zh
Inventor
胡宇光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201810449683.7A priority Critical patent/CN108712486B/zh
Publication of CN108712486A publication Critical patent/CN108712486A/zh
Application granted granted Critical
Publication of CN108712486B publication Critical patent/CN108712486B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明公开了一种工作量证明方法及装置,涉及数据处理技术领域,为了解决现有技术中,在采用传统工作量证明机制的区块链系统下,选取记账节点的选取效率较低,并过度占用各个节点的计算资源的问题。本发明的方法包括:当接收到第一记账节点发送的当前区块时,根据当前区块对应的第一哈希值在预设彩虹表中查找与第一哈希值匹配的第二哈希值;将第二哈希值发送至多个其他节点,并接收各个其他节点发送的第二哈希值;通过预设算法确定多个第二哈希值中与第一哈希值之间编辑距离最小的第二哈希值,并将第二哈希值对应的节点确定为第二记账节点,以便第二记账节点生成下一区块。本发明适用于在区块链系统下,选取记账节点的过程中。

Description

工作量证明方法及装置
技术领域
本发明涉及数据处理技术领域,特别是涉及一种工作量证明方法及装置。
背景技术
区块链技术(Blockchain Technology,BT)是一种去中心化的分布式存储技术,因具有去中心化、交易过程透明、信息不可篡改、可追溯等优点,而被广泛应用于金融领域。在采用传统工作量证明机制(Proof of Work,POW)的区块链系统下,网络中的各个节点会将自身生成Coinbase交易与其他准备打包进区块的交易组成交易列表,通过Merkle Tree算法计算该交易列表对应的Merkle Root Hash,并对该Merkle Root Hash与其他相关字段组成区块头进行Hash运算,当某个节点通过变更区块头中的随机数(即nonce)的数值,使得计算出的结果值小于当前网络中的目标值时,该节点便会作为记账节点将自身打包的区块广播至网络中的其他节点中。
发明人在实现本发明的过程中,发现现有技术中,由于网络中的各个节点在竞争记账权时,为了使得计算出的结果值小于当前网络中的目标值,各个节点需要不断变更区块头中的随机数的数值,从而各个节点均需要进行大量计算,进而导致在采用传统工作量证明机制的区块链系统下,选取记账节点的选取效率较低,并过度占用各个节点的计算资源。
发明内容
有鉴于此,本发明提供的工作量证明方法及装置,主要目的在于在区块链系统下,提高选取记账节点的选取效率,并降低各个节点的计算资源占用情况。
为了解决上述问题,本发明主要提供如下技术方案:
第一方面,本发明提供了一种工作量证明方法,该方法包括:
当接收到第一记账节点发送的当前区块时,根据所述当前区块对应的第一哈希值在预设彩虹表中查找与所述第一哈希值匹配的第二哈希值;
将所述第二哈希值发送至多个其他节点,并接收各个所述其他节点发送的第二哈希值;
通过预设算法确定多个所述第二哈希值中与所述第一哈希值之间编辑距离最小的第二哈希值,并将所述第二哈希值对应的节点确定为第二记账节点,以便所述第二记账节点生成下一区块。
可选的,在所述根据所述当前区块对应的第一哈希值在预设彩虹表中查找与所述第一哈希值匹配的第二哈希值之前,所述方法还包括:
根据闲置存储空间生成多个哈希值;
根据多个所述哈希值创建所述预设彩虹表。
可选的,所述根据闲置存储空间生成多个哈希值,包括:
根据所述闲置存储空间生成多个随机数;
根据唯一身份标识及多个所述随机数生成各个所述随机数对应的哈希值。
可选的,所述预设彩虹表中包含多个哈希值;所述根据所述当前区块对应的第一哈希值在预设彩虹表中查找与所述第一哈希值匹配的第二哈希值,包括:
计算各个所述哈希值与所述第一哈希值之间的编辑距离;
将多个所述哈希值中与所述第一哈希值之间编辑距离最小的哈希值确定为所述第二哈希值。
可选的,所述预设算法为拜占庭容错PBFT算法。
可选的,所述当前区块对应的第一哈希值为所述当前区块的哈希值或所述当前区块之前第N个区块的哈希值。
第二方面,本发明还提供一种工作量证明装置,该装置包括:
查找单元,用于当接收到第一记账节点发送的当前区块时,根据所述当前区块对应的第一哈希值在预设彩虹表中查找与所述第一哈希值匹配的第二哈希值;
发送单元,用于将所述查找单元查找的所述第二哈希值发送至多个其他节点;
接收单元,用于接收各个所述其他节点发送的第二哈希值;
第一确定单元,用于通过预设算法确定多个所述第二哈希值中与所述第一哈希值之间编辑距离最小的第二哈希值;
第二确定单元,用于将所述第一确定单元确定的所述第二哈希值对应的节点确定为第二记账节点,以便所述第二记账节点生成下一区块。
可选的,所述装置还包括:
生成单元,用于在所述查找单元根据所述当前区块对应的第一哈希值在预设彩虹表中查找与所述第一哈希值匹配的第二哈希值之前,根据闲置存储空间生成多个哈希值;
创建单元,用于根据所述生成单元生成的多个所述哈希值创建所述预设彩虹表。
可选的,所述生成单元包括:
第一生成模块,用于根据所述闲置存储空间生成多个随机数;
第二生成模块,用于根据唯一身份标识及所述第一生成模块生成的多个所述随机数生成各个所述随机数对应的哈希值。
可选的,所述预设彩虹表中包含多个哈希值;所述查找单元包括:
计算模块,用于计算各个所述哈希值与所述第一哈希值之间的编辑距离;
确定模块,用于将多个所述哈希值中与所述第一哈希值之间编辑距离最小的哈希值确定为所述第二哈希值。
可选的,所述预设算法为拜占庭容错PBFT算法。
可选的,所述当前区块对应的第一哈希值为所述当前区块的哈希值或所述当前区块之前第N个区块的哈希值。
第三方面,本发明提供了一种存储介质,所述存储介质存储有多条指令,所述指令适用于由处理器加载并执行如第一方面所述的工作量证明方法。
第四方面,本发明提供了一种电子设备,所述电子设备包括存储介质和处理器;
所述处理器,适于实现各指令;
所述存储介质,适于存储多条指令;
所述指令适于由所述处理器加载并执行如第一方面所述的工作量证明方法。
借由上述技术方案,本发明提供的技术方案至少具有下列优点:
本发明提供的一种工作量证明方法及装置,与现有技术中,网络中的各个节点在竞争记账权时,为了使得计算出的结果值小于当前网络中的目标值,各个节点需要不断变更区块头中的随机数的数值,从而各个节点均需要进行大量计算相比,本发明能够在网络中的任意一个节点接收到第一记账节点发送的当前区块后,首先,根据该当前区块对应的第一哈希值在本地存储的预设彩虹表中查找与该第一哈希值匹配的第二哈希值;然后,将查找到的第二哈希值发送至网络中的多个其他节点中,并接收各个其他节点发送的第二哈希值;最后,通过预设算法确定网络中各个节点对应的第二哈希值中与第一哈希值之间编辑距离最小的第二哈希值,并将该第二哈希值对应的节点确定为第二记账节点(即确定该节点获得记账权),以便第二记账节点生成下一区块。由于,网络中的各个节点是根据各自查找出的第二哈希值与当前区块对应的第一哈希值之间的编辑距离确定记账权,因此,网络中的各个节点仅需在各自本地存储的预设彩虹表中查找与第一哈希值相似度最高的哈希值即可,从而使得网络中的各个节点在竞争记账权时,需要进行的计算量大大减少,进而提高了选取记账节点的选取效率,并降低了各个节点的计算资源占用情况。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种工作量证明方法流程图;
图2示出了本发明实施例提供的另一种工作量证明方法流程图;
图3示出了本发明实施例提供的一种工作量证明装置的组成框图;
图4示出了本发明实施例提供的另一种工作量证明装置的组成框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种工作量证明方法,如图1所示,该方法包括:
101、当接收到第一记账节点发送的当前区块时,根据当前区块对应的第一哈希值在预设彩虹表中查找与第一哈希值匹配的第二哈希值。
其中,当前区块为新生成的区块,当前区块对应的第一哈希值可以但不限于为:该当前区块的哈希值(即该当前区块的区块体对应的哈希值)或该当前区块之前第N个区块的哈希值(即该当前区块之前第N个区块的区块体对应的哈希值),其中,N为正整数;预设彩虹表中包含多个32位的哈希值。需要说明的是,对于本发明实施例的执行主体可以为区块链系统下的任意一个节点。
在本发明实施例中,当第一记账节点将当前区块(即新生成的区块)打包完毕后,会将该当前区块广播至全网,网络中的任意一个节点在接收到该当前区块后,会根据该当前区块对应的第一哈希值在本地存储的预设彩虹表中查找与该第一哈希值匹配的第二哈希值,即该节点在包含多个哈希值的预设彩虹表中查找与该第一哈希值相似度最高的哈希值,将该哈希值确定为该节点对应的第二哈希值。
102、将第二哈希值发送至多个其他节点,并接收各个其他节点发送的第二哈希值。
在本发明实施例中,网络中的任意一个节点在经过步骤101查找得到该节点对应的第二哈希值后,便会将该节点对应的第二哈希值发送至网络中的多个其他节点中,并接收各个其他节点发送的各个其他节点对应的第二哈希值,此时,网络中的所有节点中均包含各个节点对应的第二哈希值(即包含各个节点本地存储的预设彩虹表中与当前区块对应的第一哈希值相似度最高的哈希值)。
103、通过预设算法确定多个第二哈希值中与第一哈希值之间编辑距离最小的第二哈希值,并将第二哈希值对应的节点确定为第二记账节点,以便第二记账节点生成下一区块。
其中,预设算法可以但不限于为:拜占庭容错PBFT算法。
在本发明实施例中,网络中的任意一个节点在经过步骤102接收到网络中的各个其他节点发送的各个其他节点对应的第二哈希值后,通过预设算法确定网络中各个节点对应的第二哈希值中与第一哈希值之间编辑距离最小的第二哈希值,并将该第二哈希值对应的节点确定为第二记账节点(即确定该节点获得记账权),以便该第二记账节点生成下一区块。
具体的,在本步骤中,当网络中的任意一个节点通过拜占庭容错PBFT算法确定网络中各个节点对应的第二哈希值中与第一哈希值之间编辑距离最小的第二哈希值时,该节点首先确定各个节点对应的第二哈希值中与第一哈希值之间编辑距离最小的第二哈希值,即分别计算各个节点对应的第二哈希值与第一哈希值之间的编辑距离,其中,在分别计算各个节点对应的第二哈希值与第一哈希值之间的编辑距离时,可以采用现有技术中的编辑距离计算公式进行计算,本发明实施例对此不再赘述;然后,将自身确定的、与第一哈希值之间编辑距离最小的第二哈希值发送至网络中的多个其他节点中,并接收各个其他节点发送的各个其他节点确定的、与第一哈希值之间编辑距离最小的第二哈希值;其次,当该节点确定接收到2f个其他节点发送的第二哈希值与自身确定的第二哈希值相同时,向多个其他节点发送commit消息,并接收各个其他节点发送的commit消息,其中,f为可容忍拜占庭节点数;最后,当该节点接收到各个其他节点发送的commit消息达到2f+1条时,该节点确定自身确定的第二哈希值为网络中各个节点对应的第二哈希值中与第一哈希值之间编辑距离最小的第二哈希值,但不限于此。
本发明实施例提供的一种工作量证明方法,与现有技术中,网络中的各个节点在竞争记账权时,为了使得计算出的结果值小于当前网络中的目标值,各个节点需要不断变更区块头中的随机数的数值,从而各个节点均需要进行大量计算相比,本发明实施例能够在网络中的任意一个节点接收到第一记账节点发送的当前区块后,首先,根据该当前区块对应的第一哈希值在本地存储的预设彩虹表中查找与该第一哈希值匹配的第二哈希值;然后,将查找到的第二哈希值发送至网络中的多个其他节点中,并接收各个其他节点发送的第二哈希值;最后,通过预设算法确定网络中各个节点对应的第二哈希值中与第一哈希值之间编辑距离最小的第二哈希值,并将该第二哈希值对应的节点确定为第二记账节点(即确定该节点获得记账权),以便第二记账节点生成下一区块。由于,网络中的各个节点是根据各自查找出的第二哈希值与当前区块对应的第一哈希值之间的编辑距离确定记账权,因此,网络中的各个节点仅需在各自本地存储的预设彩虹表中查找与第一哈希值相似度最高的哈希值即可,从而使得网络中的各个节点在竞争记账权时,需要进行的计算量大大减少,进而提高了选取记账节点的选取效率,并降低了各个节点的计算资源占用情况。
进一步的,依据图1所示的方法,本发明实施例提供了另一种工作量证明方法,具体如图2所示,该方法包括:
201、根据闲置存储空间创建预设彩虹表。
在本发明实施例中,由于一个节点本地存储的预设彩虹表中包含的哈希值越多,该节点在预设彩虹表中查找得到的第二哈希值为网络中各个节点对应的第二哈希值中与第一哈希值之间编辑距离最小的第二哈希值的概率越大,因此网络中的任意一个节点为了提高自身在预设彩虹表中查找得到的第二哈希值为网络中各个节点对应的第二哈希值中与第一哈希值之间编辑距离最小的第二哈希值的概率,需要根据自身的闲置存储空间创建预设彩虹表。以下将对网络中的任意一个节点如何根据自身的闲置存储空间创建预设彩虹表进行详细说明。
(1)根据闲置存储空间生成多个哈希值。
其中,由于当前区块对应的第一哈希值(该当前区块的区块体对应的哈希值或该当前区块之前第N个区块的区块体对应的哈希值)为32位,因此网络中的任意一个节点根据闲置存储空间生成多个哈希值也为32位。
在本发明实施例中,网络中的任意一个节点在根据自身闲置存储空间生成多个哈希值时,首先根据自身的闲置存储空间确定待生成哈希值的数量,例如,节点A的闲置存储空间为1TB,由于一个待生成哈希值占用存储空间32B,因此节点A可以确定待生成哈希值的数量为1*1024*1024*1024*1024/32=1099511627776/32=34359738368个;然后,该节点生成对应数量的多个哈希值。具体的,在本步骤中,网络中的任意一个节点在根据自身闲置存储空间生成多个哈希值时,可以首先根据自身的闲置存储空间生成多个随机数,即先根据自身的闲置存储空间确定待生成随机数的数量,再生成对应数量的多个随机数;然后根据自身对应的唯一身份标识及生成的多个随机数生成各个随机数对应的哈希值,其中,该节点对应的唯一身份标识可以但不限于为:该节点在区块链系统中的地址,但不限于此。
需要进行说明的是,网络中的任意一个节点在根据自身闲置存储空间生成多个哈希值时,可以采用现有技术中的哈希算法进行计算,本发明实施例对此不再赘述。
(2)根据多个哈希值创建预设彩虹表。
在本发明实施例中,网络中的任意一个节点在经过步骤(1)根据自身的闲置存储空间生成多个哈希值后,根据生成的多个哈希值创建预设彩虹表。
202、当接收到第一记账节点发送的当前区块时,根据当前区块对应的第一哈希值在预设彩虹表中查找与第一哈希值匹配的第二哈希值。
在本发明实施例中,当第一记账节点将当前区块打包完毕后,会将该当前区块广播至全网,网络中的任意一个节点在接收到该当前区块后,会根据该当前区块对应的第一哈希值在本地存储的预设彩虹表中查找与该第一哈希值匹配的第二哈希值。以下将对网络中的任意一个节点如何根据当前区块对应的第一哈希值在预设彩虹表中查找与该第一哈希值匹配的第二哈希值进行详细说明。
(1)计算各个哈希值与第一哈希值之间的编辑距离。
在本发明实施例中,网络中的任意一个节点在本地存储的预设彩虹表中查找与第一哈希值匹配的第二哈希值,即在包含多个哈希值的预设彩虹表中查找与该第一哈希值相似度最高的哈希值时,该节点需要分别计算预设彩虹表中包含的各个哈希值与该第一哈希值之间的编辑距离。
需要进行说明的是,在分别计算预设彩虹表中包含的各个哈希值与该第一哈希值之间的编辑距离时,可以采用现有技术中的编辑距离计算公式进行计算,本发明实施例对此不再赘述。
(2)将多个哈希值中与第一哈希值之间编辑距离最小的哈希值确定为第二哈希值。
在本发明实施例中,网络中的任意一个节点在经过步骤(1)计算获得预设彩虹表中包含的各个哈希值与第一哈希值之间的编辑距离后,将多个哈希值中与该第一哈希值之间编辑距离最小的哈希值确定为该节点对应的第二哈希值。
203、将第二哈希值发送至多个其他节点,并接收各个其他节点发送的第二哈希值。
其中,关于203、将第二哈希值发送至多个其他节点,并接收各个其他节点发送的第二哈希值,可以参考图1对应部分的描述,本发明实施例此处将不再赘述。
204、通过拜占庭容错PBFT算法确定多个第二哈希值中与第一哈希值之间编辑距离最小的第二哈希值,并将第二哈希值对应的节点确定为第二记账节点,以便第二记账节点生成下一区块。
在本发明实施例中,网络中的任意一个节点在经过步骤203接收到网络中的各个其他节点发送的各个其他节点对应的第二哈希值后,该节点首先通过拜占庭容错PBFT算法确定网络中各个节点对应的第二哈希值中与第一哈希值之间编辑距离最小的第二哈希值:(1)确定各个节点对应的第二哈希值中与第一哈希值之间编辑距离最小的第二哈希值,即分别计算各个节点对应的第二哈希值与第一哈希值之间的编辑距离,其中,在分别计算各个节点对应的第二哈希值与第一哈希值之间的编辑距离时,可以采用现有技术中的编辑距离计算公式进行计算,本发明实施例对此不再赘述;(2)将自身确定的、与第一哈希值之间编辑距离最小的第二哈希值发送至网络中的多个其他节点中,并接收各个其他节点发送的各个其他节点确定的、与第一哈希值之间编辑距离最小的第二哈希值;(3)当该节点确定接收到2f个其他节点发送的第二哈希值与自身确定的第二哈希值相同时,向多个其他节点发送commit消息,并接收各个其他节点发送的commit消息,其中,f为可容忍拜占庭节点数;(4)当该节点接收到各个其他节点发送的commit消息达到2f+1条时,该节点确定自身确定的第二哈希值为网络中各个节点对应的第二哈希值中与第一哈希值之间编辑距离最小的第二哈希值。然后,将该第二哈希值对应的节点确定为第二记账节点(即确定该节点获得记账权),以便该第二记账节点生成下一区块。
进一步的,作为对上述图1及图2所示方法的实现,本发明另一实施例还提供了一种工作量证明装置。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。该装置应用于在区块链系统下,提高选取记账节点的选取效率,并降低各个节点的计算资源占用情况,具体如图3所示,该装置包括:
查找单元31,用于当接收到第一记账节点发送的当前区块时,根据所述当前区块对应的第一哈希值在预设彩虹表中查找与所述第一哈希值匹配的第二哈希值;
发送单元32,用于将查找单元31查找的所述第二哈希值发送至多个其他节点;
接收单元33,用于接收各个所述其他节点发送的第二哈希值;
第一确定单元34,用于通过预设算法确定多个所述第二哈希值中与所述第一哈希值之间编辑距离最小的第二哈希值;
第二确定单元35,用于将第一确定单元34确定的所述第二哈希值对应的节点确定为第二记账节点,以便所述第二记账节点生成下一区块。
进一步的,如图4所示,该装置还包括:
生成单元36,用于在查找单元31根据所述当前区块对应的第一哈希值在预设彩虹表中查找与所述第一哈希值匹配的第二哈希值之前,根据闲置存储空间生成多个哈希值;
创建单元37,用于根据生成单元36生成的多个所述哈希值创建所述预设彩虹表。
进一步的,如图4所示,生成单元36包括:
第一生成模块361,用于根据所述闲置存储空间生成多个随机数;
第二生成模块362,用于根据唯一身份标识及第一生成模块361生成的多个所述随机数生成各个所述随机数对应的哈希值。
进一步的,如图4所示,所述预设彩虹表中包含多个哈希值;查找单元31包括:
计算模块311,用于计算各个所述哈希值与所述第一哈希值之间的编辑距离;
确定模块312,用于将多个所述哈希值中与所述第一哈希值之间编辑距离最小的哈希值确定为所述第二哈希值。
进一步的,如图4所示,所述预设算法为拜占庭容错PBFT算法。
进一步的,如图4所示,所述当前区块对应的第一哈希值为所述当前区块的哈希值或所述当前区块之前第N个区块的哈希值。
本发明实施例提供的一种工作量证明装置,与现有技术中,网络中的各个节点在竞争记账权时,为了使得计算出的结果值小于当前网络中的目标值,各个节点需要不断变更区块头中的随机数的数值,从而各个节点均需要进行大量计算相比,本发明实施例能够在网络中的任意一个节点接收到第一记账节点发送的当前区块后,首先,根据该当前区块对应的第一哈希值在本地存储的预设彩虹表中查找与该第一哈希值匹配的第二哈希值;然后,将查找到的第二哈希值发送至网络中的多个其他节点中,并接收各个其他节点发送的第二哈希值;最后,通过预设算法确定网络中各个节点对应的第二哈希值中与第一哈希值之间编辑距离最小的第二哈希值,并将该第二哈希值对应的节点确定为第二记账节点(即确定该节点获得记账权),以便第二记账节点生成下一区块。由于,网络中的各个节点是根据各自查找出的第二哈希值与当前区块对应的第一哈希值之间的编辑距离确定记账权,因此,网络中的各个节点仅需在各自本地存储的预设彩虹表中查找与第一哈希值相似度最高的哈希值即可,从而使得网络中的各个节点在竞争记账权时,需要进行的计算量大大减少,进而提高了选取记账节点的选取效率,并降低了各个节点的计算资源占用情况。同时,本发明实施例能够使网络中的各个节点根据各自的闲置存储空间创建对应的预设彩虹表,由于一个节点的闲置存储空间越大,该节点根据自身的闲置存储空间创建的预设彩虹表中包含的哈希值的数量越多,从而该节点在预设彩虹表中查找得到的第二哈希值为网络中各个节点对应的第二哈希值中与第一哈希值之间编辑距离最小的第二哈希值的概率越大,进而使得网络中拥有越大闲置存储空间越大的节点成为记账节点的概率越大。
进一步的,依据上述方法实施例,本发明的另一个实施例还提供了一种存储介质,所述存储介质存储有多条指令,所述指令适用于由处理器加载并执行如上所述的工作量证明方法。
本发明实施例提供的工作量证明存储介质中的指令,能够在网络中的任意一个节点接收到第一记账节点发送的当前区块后,首先,根据该当前区块对应的第一哈希值在本地存储的预设彩虹表中查找与该第一哈希值匹配的第二哈希值;然后,将查找到的第二哈希值发送至网络中的多个其他节点中,并接收各个其他节点发送的第二哈希值;最后,通过预设算法确定网络中各个节点对应的第二哈希值中与第一哈希值之间编辑距离最小的第二哈希值,并将该第二哈希值对应的节点确定为第二记账节点(即确定该节点获得记账权),以便第二记账节点生成下一区块。由于,网络中的各个节点是根据各自查找出的第二哈希值与当前区块对应的第一哈希值之间的编辑距离确定记账权,因此,网络中的各个节点仅需在各自本地存储的预设彩虹表中查找与第一哈希值相似度最高的哈希值即可,从而使得网络中的各个节点在竞争记账权时,需要进行的计算量大大减少,进而提高了选取记账节点的选取效率,并降低了各个节点的计算资源占用情况。同时,本发明实施例能够使网络中的各个节点根据各自的闲置存储空间创建对应的预设彩虹表,由于一个节点的闲置存储空间越大,该节点根据自身的闲置存储空间创建的预设彩虹表中包含的哈希值的数量越多,从而该节点在预设彩虹表中查找得到的第二哈希值为网络中各个节点对应的第二哈希值中与第一哈希值之间编辑距离最小的第二哈希值的概率越大,进而使得网络中拥有越大闲置存储空间越大的节点成为记账节点的概率越大。
进一步的,依据上述方法实施例,本发明的另一个实施例还提供了一种电子设备,所述电子设备包括存储介质和处理器;
所述处理器,适于实现各指令;
所述存储介质,适于存储多条指令;
所述指令适于由所述处理器加载并执行如上所述的工作量证明方法。
本发明实施例提供的工作量证明电子设备,能够在网络中的任意一个节点接收到第一记账节点发送的当前区块后,首先,根据该当前区块对应的第一哈希值在本地存储的预设彩虹表中查找与该第一哈希值匹配的第二哈希值;然后,将查找到的第二哈希值发送至网络中的多个其他节点中,并接收各个其他节点发送的第二哈希值;最后,通过预设算法确定网络中各个节点对应的第二哈希值中与第一哈希值之间编辑距离最小的第二哈希值,并将该第二哈希值对应的节点确定为第二记账节点(即确定该节点获得记账权),以便第二记账节点生成下一区块。由于,网络中的各个节点是根据各自查找出的第二哈希值与当前区块对应的第一哈希值之间的编辑距离确定记账权,因此,网络中的各个节点仅需在各自本地存储的预设彩虹表中查找与第一哈希值相似度最高的哈希值即可,从而使得网络中的各个节点在竞争记账权时,需要进行的计算量大大减少,进而提高了选取记账节点的选取效率,并降低了各个节点的计算资源占用情况。同时,本发明实施例能够使网络中的各个节点根据各自的闲置存储空间创建对应的预设彩虹表,由于一个节点的闲置存储空间越大,该节点根据自身的闲置存储空间创建的预设彩虹表中包含的哈希值的数量越多,从而该节点在预设彩虹表中查找得到的第二哈希值为网络中各个节点对应的第二哈希值中与第一哈希值之间编辑距离最小的第二哈希值的概率越大,进而使得网络中拥有越大闲置存储空间越大的节点成为记账节点的概率越大。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求防护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求防护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的工作量证明方法及装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明还公开了如下技术方案:
A1、一种工作量证明方法,包括:
当接收到第一记账节点发送的当前区块时,根据所述当前区块对应的第一哈希值在预设彩虹表中查找与所述第一哈希值匹配的第二哈希值;
将所述第二哈希值发送至多个其他节点,并接收各个所述其他节点发送的第二哈希值;
通过预设算法确定多个所述第二哈希值中与所述第一哈希值之间编辑距离最小的第二哈希值,并将所述第二哈希值对应的节点确定为第二记账节点,以便所述第二记账节点生成下一区块。
A2、根据A1所述的方法,在所述根据所述当前区块对应的第一哈希值在预设彩虹表中查找与所述第一哈希值匹配的第二哈希值之前,所述方法还包括:
根据闲置存储空间生成多个哈希值;
根据多个所述哈希值创建所述预设彩虹表。
A3、根据A2所述的方法,所述根据闲置存储空间生成多个哈希值,包括:
根据所述闲置存储空间生成多个随机数;
根据唯一身份标识及多个所述随机数生成各个所述随机数对应的哈希值。
A4、根据A1所述的方法,所述预设彩虹表中包含多个哈希值;所述根据所述当前区块对应的第一哈希值在预设彩虹表中查找与所述第一哈希值匹配的第二哈希值,包括:
计算各个所述哈希值与所述第一哈希值之间的编辑距离;
将多个所述哈希值中与所述第一哈希值之间编辑距离最小的哈希值确定为所述第二哈希值。
A5、根据A1-A4中任一项所述的方法,所述预设算法为拜占庭容错PBFT算法。
A6、根据A1-A4中任一项所述的方法,所述当前区块对应的第一哈希值为所述当前区块的哈希值或所述当前区块之前第N个区块的哈希值。
B7、一种工作量证明装置,所述装置包括:
查找单元,用于当接收到第一记账节点发送的当前区块时,根据所述当前区块对应的第一哈希值在预设彩虹表中查找与所述第一哈希值匹配的第二哈希值;
发送单元,用于将所述查找单元查找的所述第二哈希值发送至多个其他节点;
接收单元,用于接收各个所述其他节点发送的第二哈希值;
第一确定单元,用于通过预设算法确定多个所述第二哈希值中与所述第一哈希值之间编辑距离最小的第二哈希值;
第二确定单元,用于将所述第一确定单元确定的所述第二哈希值对应的节点确定为第二记账节点,以便所述第二记账节点生成下一区块。
B8、根据B7所述的装置,所述装置还包括:
生成单元,用于在所述查找单元根据所述当前区块对应的第一哈希值在预设彩虹表中查找与所述第一哈希值匹配的第二哈希值之前,根据闲置存储空间生成多个哈希值;
创建单元,用于根据所述生成单元生成的多个所述哈希值创建所述预设彩虹表。
B9、根据B8所述的装置,所述生成单元包括:
第一生成模块,用于根据所述闲置存储空间生成多个随机数;
第二生成模块,用于根据唯一身份标识及所述第一生成模块生成的多个所述随机数生成各个所述随机数对应的哈希值。
B10、根据B7所述的装置,所述预设彩虹表中包含多个哈希值;所述查找单元包括:
计算模块,用于计算各个所述哈希值与所述第一哈希值之间的编辑距离;
确定模块,用于将多个所述哈希值中与所述第一哈希值之间编辑距离最小的哈希值确定为所述第二哈希值。
B11、根据B7-B10中任一项所述的装置,所述预设算法为拜占庭容错PBFT算法。
B12、根据B7-B10中任一项所述的装置,所述当前区块对应的第一哈希值为所述当前区块的哈希值或所述当前区块之前第N个区块的哈希值。
C13、一种存储介质,所述存储介质存储有多条指令,所述指令适用于由处理器加载并执行如A1-A6中任一项所述的工作量证明方法。
D14、一种电子设备,所述电子设备包括存储介质和处理器;
所述处理器,适于实现各指令;
所述存储介质,适于存储多条指令;
所述指令适于由所述处理器加载并执行如A1-A6中任一项所述的工作量证明方法。

Claims (10)

1.一种工作量证明方法,其特征在于,包括:
当接收到第一记账节点发送的当前区块时,根据所述当前区块对应的第一哈希值在预设彩虹表中查找与所述第一哈希值匹配的第二哈希值;
将所述第二哈希值发送至多个其他节点,并接收各个所述其他节点发送的第二哈希值;
通过预设算法确定多个所述第二哈希值中与所述第一哈希值之间编辑距离最小的第二哈希值,并将所述第二哈希值对应的节点确定为第二记账节点,以便所述第二记账节点生成下一区块。
2.根据权利要求1所述的方法,其特征在于,在所述根据所述当前区块对应的第一哈希值在预设彩虹表中查找与所述第一哈希值匹配的第二哈希值之前,所述方法还包括:
根据闲置存储空间生成多个哈希值;
根据多个所述哈希值创建所述预设彩虹表。
3.根据权利要求2所述的方法,其特征在于,所述根据闲置存储空间生成多个哈希值,包括:
根据所述闲置存储空间生成多个随机数;
根据唯一身份标识及多个所述随机数生成各个所述随机数对应的哈希值。
4.根据权利要求1所述的方法,其特征在于,所述预设彩虹表中包含多个哈希值;所述根据所述当前区块对应的第一哈希值在预设彩虹表中查找与所述第一哈希值匹配的第二哈希值,包括:
计算各个所述哈希值与所述第一哈希值之间的编辑距离;
将多个所述哈希值中与所述第一哈希值之间编辑距离最小的哈希值确定为所述第二哈希值。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述预设算法为拜占庭容错PBFT算法。
6.根据权利要求1-4中任一项所述的方法,其特征在于,所述当前区块对应的第一哈希值为所述当前区块的哈希值或所述当前区块之前第N个区块的哈希值。
7.一种工作量证明装置,其特征在于,所述装置包括:
查找单元,用于当接收到第一记账节点发送的当前区块时,根据所述当前区块对应的第一哈希值在预设彩虹表中查找与所述第一哈希值匹配的第二哈希值;
发送单元,用于将所述查找单元查找的所述第二哈希值发送至多个其他节点;
接收单元,用于接收各个所述其他节点发送的第二哈希值;
第一确定单元,用于通过预设算法确定多个所述第二哈希值中与所述第一哈希值之间编辑距离最小的第二哈希值;
第二确定单元,用于将所述第一确定单元确定的所述第二哈希值对应的节点确定为第二记账节点,以便所述第二记账节点生成下一区块。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
生成单元,用于在所述查找单元根据所述当前区块对应的第一哈希值在预设彩虹表中查找与所述第一哈希值匹配的第二哈希值之前,根据闲置存储空间生成多个哈希值;
创建单元,用于根据所述生成单元生成的多个所述哈希值创建所述预设彩虹表。
9.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适用于由处理器加载并执行如权利要求1-6中任一项所述的工作量证明方法。
10.一种电子设备,其特征在于,所述电子设备包括存储介质和处理器;
所述处理器,适于实现各指令;
所述存储介质,适于存储多条指令;
所述指令适于由所述处理器加载并执行如权利要求1-6中任一项所述的工作量证明方法。
CN201810449683.7A 2018-05-11 2018-05-11 工作量证明方法及装置 Active CN108712486B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810449683.7A CN108712486B (zh) 2018-05-11 2018-05-11 工作量证明方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810449683.7A CN108712486B (zh) 2018-05-11 2018-05-11 工作量证明方法及装置

Publications (2)

Publication Number Publication Date
CN108712486A true CN108712486A (zh) 2018-10-26
CN108712486B CN108712486B (zh) 2021-10-08

Family

ID=63868961

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810449683.7A Active CN108712486B (zh) 2018-05-11 2018-05-11 工作量证明方法及装置

Country Status (1)

Country Link
CN (1) CN108712486B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109698750A (zh) * 2018-11-08 2019-04-30 平安科技(深圳)有限公司 区块链的区块生成方法、装置、设备及可读存储介质
CN111125718A (zh) * 2019-12-24 2020-05-08 北京三快在线科技有限公司 越权漏洞的检测方法、装置、设备及存储介质
CN111327436A (zh) * 2018-12-13 2020-06-23 北京果仁宝软件技术有限责任公司 预测区块链出块节点的方法、装置和系统

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106506638A (zh) * 2016-11-04 2017-03-15 江苏通付盾科技有限公司 区块链中的区块存储方法及装置
CN106682907A (zh) * 2016-12-10 2017-05-17 江苏恒为信息科技有限公司 区块链数据对比及共识方法
CN106878000A (zh) * 2017-03-06 2017-06-20 中钞信用卡产业发展有限公司北京智能卡技术研究院 一种联盟链共识方法及系统
CN106952082A (zh) * 2017-03-06 2017-07-14 钱德君 一种基于股份证明的量子链共识机制方法
US20170212781A1 (en) * 2016-01-26 2017-07-27 International Business Machines Corporation Parallel execution of blockchain transactions
CN107005574A (zh) * 2016-12-23 2017-08-01 深圳前海达闼云端智能科技有限公司 区块生成方法、装置和区块链网络
CN107423962A (zh) * 2017-07-11 2017-12-01 成都励睿德企业管理有限公司 基于奖惩的数据区块链授权参与共识的拜占庭容错方法及其奖惩方法
CN107423961A (zh) * 2017-07-11 2017-12-01 北京泛融科技有限公司 一种基于随机相关性分析的优化共识方法
CN107450981A (zh) * 2017-05-31 2017-12-08 阿里巴巴集团控股有限公司 一种区块链共识方法及设备
CN107566124A (zh) * 2017-08-24 2018-01-09 深圳市易成自动驾驶技术有限公司 基于抽签机制的共识建立方法、区块链系统及存储介质
CN107807984A (zh) * 2017-10-31 2018-03-16 上海分布信息科技有限公司 一种分区的区块链网络及其实现分区共识的方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170212781A1 (en) * 2016-01-26 2017-07-27 International Business Machines Corporation Parallel execution of blockchain transactions
CN106506638A (zh) * 2016-11-04 2017-03-15 江苏通付盾科技有限公司 区块链中的区块存储方法及装置
CN106682907A (zh) * 2016-12-10 2017-05-17 江苏恒为信息科技有限公司 区块链数据对比及共识方法
CN107005574A (zh) * 2016-12-23 2017-08-01 深圳前海达闼云端智能科技有限公司 区块生成方法、装置和区块链网络
CN106878000A (zh) * 2017-03-06 2017-06-20 中钞信用卡产业发展有限公司北京智能卡技术研究院 一种联盟链共识方法及系统
CN106952082A (zh) * 2017-03-06 2017-07-14 钱德君 一种基于股份证明的量子链共识机制方法
CN107450981A (zh) * 2017-05-31 2017-12-08 阿里巴巴集团控股有限公司 一种区块链共识方法及设备
CN107423962A (zh) * 2017-07-11 2017-12-01 成都励睿德企业管理有限公司 基于奖惩的数据区块链授权参与共识的拜占庭容错方法及其奖惩方法
CN107423961A (zh) * 2017-07-11 2017-12-01 北京泛融科技有限公司 一种基于随机相关性分析的优化共识方法
CN107566124A (zh) * 2017-08-24 2018-01-09 深圳市易成自动驾驶技术有限公司 基于抽签机制的共识建立方法、区块链系统及存储介质
CN107807984A (zh) * 2017-10-31 2018-03-16 上海分布信息科技有限公司 一种分区的区块链网络及其实现分区共识的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
韩璇: ""区块链技术中的共识机制研究"", 《信息网络安全》 *
黄秋波: ""一种改进PBFT算法作为以太坊共识机制的研究与实现"", 《计算机应用与软件》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109698750A (zh) * 2018-11-08 2019-04-30 平安科技(深圳)有限公司 区块链的区块生成方法、装置、设备及可读存储介质
CN109698750B (zh) * 2018-11-08 2021-06-11 平安科技(深圳)有限公司 区块链的区块生成方法、装置、设备及可读存储介质
CN111327436A (zh) * 2018-12-13 2020-06-23 北京果仁宝软件技术有限责任公司 预测区块链出块节点的方法、装置和系统
CN111327436B (zh) * 2018-12-13 2023-04-07 北京果仁宝软件技术有限责任公司 预测区块链出块节点的方法、装置和系统
CN111125718A (zh) * 2019-12-24 2020-05-08 北京三快在线科技有限公司 越权漏洞的检测方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN108712486B (zh) 2021-10-08

Similar Documents

Publication Publication Date Title
CN109034809A (zh) 区块链的生成方法、装置、区块链节点及存储介质
CN108712486A (zh) 工作量证明方法及装置
CN104915285B (zh) 一种容器进程监控方法、装置及系统
CN107688591B (zh) 一种精算处理方法和装置
CN109324793A (zh) 支持算法组件化的处理系统及方法
CN110471949A (zh) 数据血缘分析方法、装置、系统、服务器及存储介质
CN107203424A (zh) 一种在分布式集群中调度深度学习作业的方法和装置
CN109697500A (zh) 数据处理方法、装置、电子设备及存储介质
CN108737109A (zh) 数据持有证明方法、装置及系统
CN106155724A (zh) 一种升级方法及装置
CN110046704A (zh) 基于数据流的深度网络加速方法、装置、设备及存储介质
CN106648664A (zh) 自助终端业务流程的更新方法及装置
CN109118353A (zh) 风控模型的数据处理方法和装置
CN109447253A (zh) 显存分配的方法、装置、计算设备及计算机存储介质
CN108280227A (zh) 基于缓存的数据信息处理方法及装置
CN104966190A (zh) 一种网络支付方法和装置
CN107329834A (zh) 用于执行计算任务的方法和装置
CN109634714A (zh) 一种智能调度的方法及装置
CN108241503A (zh) 注释说明的生成方法及装置
CN107204998A (zh) 处理数据的方法和装置
CN106598747B (zh) 网络数据包的并行处理方法及装置
CN109766515A (zh) 矩阵分解处理装置及方法
CN107515916A (zh) 数据查询的性能优化方法及装置
CN105224649A (zh) 一种数据处理方法和装置
CN108062224A (zh) 基于文件句柄的数据读写方法、装置及计算设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant