CN111082922B - 一种区块链的数据处理方法及相关设备 - Google Patents

一种区块链的数据处理方法及相关设备 Download PDF

Info

Publication number
CN111082922B
CN111082922B CN201811217994.7A CN201811217994A CN111082922B CN 111082922 B CN111082922 B CN 111082922B CN 201811217994 A CN201811217994 A CN 201811217994A CN 111082922 B CN111082922 B CN 111082922B
Authority
CN
China
Prior art keywords
value
calculation
preset
consensus
hash
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.)
Active
Application number
CN201811217994.7A
Other languages
English (en)
Other versions
CN111082922A (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 Tiannengbo Information Technology Co ltd
Original Assignee
Beijing Tiannengbo Information 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 Tiannengbo Information Technology Co ltd filed Critical Beijing Tiannengbo Information Technology Co ltd
Priority to CN201811217994.7A priority Critical patent/CN111082922B/zh
Publication of CN111082922A publication Critical patent/CN111082922A/zh
Application granted granted Critical
Publication of CN111082922B publication Critical patent/CN111082922B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种区块链的任务处理方法及相关设备,方法包括:共识计算器确定计算任务的第一哈希值的最高位值;返回满足第一预设条件的最高值所对应的随机数至共识服务器;通过校验模块确定满足第二预设条件的最高位值所对应的计算任务的第二哈希值;返回满足第三预设条件的第二哈希值所对应的随机数至共识服务器。本发明实施例只筛选出最高位值与预设最高位值满足第二预设条件的计算任务进行进一步验证计算,因此能减少对最高位值与预设最高位值不满足第二预设条件的计算任务的完整哈希值的验证计算,在计算任务较繁重的区块链领域,能大大减少共识计算器的计算量。

Description

一种区块链的数据处理方法及相关设备
技术领域
本发明涉及区块链的技术领域,特别是涉及一种区块链的数据处理方法及相关设备。
背景技术
近年来,区块链得到越来越多的应用,在区块链中,任务发布设备发布区块链任务,此设备称之为“矿池”,任务处理设备处理区块链任务,此设备称之为“矿机”。随着区块链技术的不断发展,区块链中的计算任务成指数增长,在区块链中负责计算任务的是共识计算器。
现有技术中,共识计算器对添加了随机数的计算任务进行哈希计算,得到哈希值,并将得到的哈希值与这次任务的目标值作比较,如果得到的哈希值小于或等于目标值,则把计算任务中的随机数返回给共识服务器。
发明人发现现有技术中存在如下问题,随着共识计算器计算时间的推移,计算难度越来越高,目标值越来越小,大于目标值的计算任务也越来越多,使得共识计算器的计算量越来越大。
发明内容
本发明实施例提出了一种区块链的数据处理方法及相关设备,以解决共识计算器计算量过大的问题。
依据本发明的一个方面,提供了一种区块链的任务处理方法,应用在区块链的共识计算器,所述共识计算器包括哈希碰撞模块和校验模块,所述方法包括:
共识计算器获取设置有随机数的计算任务;
共识计算器通过所述哈希碰撞模块确定所述计算任务的第一哈希值的最高位值;
在所述最高位值与所述预设目标值的预设最高位值满足第一预设条件的情况下,所述共识计算器返回满足所述第一预设条件的最高值所对应的随机数至共识服务器;
在所述最高位值与预设目标值的预设最高位值满足第二预设条件的情况下,所述共识计算器通过所述校验模块确定满足所述第二预设条件的最高位值所对应的计算任务的第二哈希值;
在所述第二哈希值与所述预设目标值满足第三预设条件的情况下,所述共识计算器返回满足所述第三预设条件的第二哈希值所对应的随机数至所述共识服务器。
根据本发明的另一方面,提供了一种区块链的数据处理设备,应用在区块链的共识计算器,所述共识计算器包括哈希碰撞模块和校验模块;
所述共识计算器用于:
获取设置有随机数的计算任务;
通过所述哈希碰撞模块确定所述计算任务的第一哈希值的最高位值;
在所述最高位值与所述预设目标值的预设最高位值满足第一预设条件的情况下,返回满足所述第一预设条件的最高值所对应的随机数至所述共识服务器;
在所述最高位值与预设目标值的预设最高位值满足第二预设条件的情况下,通过所述校验模块确定满足所述第二预设条件的最高位值所对应的计算任务的第二哈希值;
在所述第二哈希值与所述预设目标值满足第三预设条件的情况下,返回满足所述第三预设条件的第二哈希值所对应的随机数至所述共识服务器。
根据本发明的另一方面,提供了一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现所述的区块链的数据处理方法的步骤。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现所述的区块链的数据处理方法的步骤。
本发明实施例包括以下优点:
在本发明实施例中,任务处理设备的共识计算器包括哈希碰撞模块和校验模块,共识计算器得到设置了随机数的计算任务,共识计算器首先通过哈希碰撞模块,只确定出计算任务对应的第一哈希值的最高位值,因为最高位值通常能反映数据的大小范围,所以通过将该最高位值与预设目标值的预设最高位值进行比较,可以直接将最高位值小于预设最高位值的第一哈希值对应的随机数返回给共识服务器,且可以筛选出很大一部分的计算任务的第一哈希值最高位值大于预设目标值的预设最高位值,这很大一部分的计算任务和已经返回随机数给共识服务器的计算任务,不需要进行哈希值全部值的计算,只是计算出最高位值,因此能大大减少共识计算器的计算量;然后通过验证模块,只计算满足第二预设条件的最高位值所对应的计算任务的第二哈希值,并将与预设目标值满足预设第三预设条件的第二哈希值所对应的随机数返回给共识服务器。在本发明实施例中,因为在验证模块计算哈希值之前,先通过哈希碰撞模块筛选出最高位值与预设最高位值满足第一预设条件的计算任务,直接返回给服务器,只筛选出最高位值与预设最高位值满足第二预设条件的计算任务进行进一步验证计算,因此能减少对最高位值与预设最高位值不满足第二预设条件的计算任务的完整哈希值的验证计算,在计算任务较繁重的区块链领域,能大大减少共识计算器的计算量。
附图说明
图1是本发明一个实施例的一种区块链的数据处理方法的步骤流程图;
图2是本发明一个实施例的另一种区块链的数据处理方法的步骤流程图;
图3是本发明一个实施例的一种区块链的数据处理装置的结构框图;
图4是本发明实施例中电子设备的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明一个实施例的一种区块链的数据处理方法的步骤流程图,应用在区块链的共识计算器,,所述共识计算器包括哈希碰撞模块和校验模块,所述方法具体可以包括如下步骤:
步骤101,共识计算器获取设置有随机数的计算任务。
在本发明实施例中,共识计算器负责处理设置有随机数的计算任务。哈希碰撞模块用于确定出计算任务对应哈希值的最高位值,并将最高位值等于预设目标值的目标最高位值的计算任务给校验模块,校验模块计算接收到的计算任务的哈希值后,确定出需要返回给共识服务器的随机数。
具体应用中,任务处理设备的共识服务器负责与任务发布设备进行通信。任务处理设备的共识服务器在任务发布设备中注册为合法的身份,从而可以从任务发布设备获取计算任务。
需要说明的是,任务处理设备与任务发布设备之间的协议较多,例如,stratum、GBT(getblocktemplate)、getwork、getwork with rollntime extension,等等,本发明实施例对此不加以限制。
步骤102,共识计算器通过所述哈希碰撞模块确定所述计算任务的第一哈希值的最高位值。
本发明实施例中,共识计算器通过哈希碰撞模块只需要确定出计算任务对应第一哈希值的最高位值,不需要计算出计算任务对应的完整哈希值,因此,在哈希碰撞模块在进行计算任务的第一哈希值的最高位值的计算时,可以不进行与该最高位值无关的计算,从而可以大大减少共识计算器的计算量。
步骤103,在所述最高位值与所述预设目标值的预设最高位值满足第一预设条件的情况下,所述共识计算器返回满足所述第一预设条件的最高值所对应的随机数至共识服务器。
本发明实施例中,预设目标值可以根据本次计算任务而确定,具体应用中,如果计算任务的哈希值小于或等于该预设目标值,则在计算任务里加入的随机数nonce就是共识计算器的需要返回给共识服务器的nonce。
可以理解,数据的最高位值通常能相当大概率的反映数据的大小,因此,如果通过步骤102计算出的最高位值小于预设目标值的预设最高位值,则该最高位值对应的第一哈希值,必然小于预设目标值,因此,就可以确定该最高位值对应的计算任务中的随机数就是共识计算器需要返回给共识服务器的nonce,因此,共识计算器返回满足所述第一预设条件的最高值所对应的随机数至共识服务器。
具体应用中,所述最高位值与所述预设目标值的预设最高位值满足第一预设条件可以是,所述最高位值小于所述预设目标值的预设最高位值。
可以理解,如果所述最高位值大于所述预设目标值的预设最高位值,则该最高位值对应的第一哈希值,必然大于预设目标值,因此,就可以确定该最高位值对应的计算任务中的随机数不是共识计算器需要返回给共识服务器的nonce,因此,就可以过滤掉该最高位值大于所述预设目标值的预设最高位值的第一哈希值对应的计算任务。
步骤104,在所述最高位值与预设目标值的预设最高位值满足第二预设条件的情况下,所述共识计算器通过所述校验模块确定满足所述第二预设条件的最高位值所对应的计算任务的第二哈希值。
本发明实施例中,对应于步骤103的记载,如果所述最高位值等于所述预设目标值的预设最高位值,则该最高位值对应的第一哈希值,可能大于预设目标值,也可能小于预设目标值,如果将该最高位值对应的随机数直接返回给共识服务器,则可能存在有不符合要求的nonce,因此,可以将该部分最高位值对应的计算任务交给校验模块,进一步校验该计算任务的完整哈希值(即第二哈希值)与预设目标值的大小。
具体应用中,所述最高位值与所述预设目标值的预设最高位值满足第二预设条件可以是,所述最高位值等于所述预设目标值的预设最高位值。
步骤105,在所述第二哈希值与所述预设目标值满足第三预设条件的情况下,所述共识计算器返回满足所述第三预设条件的第二哈希值所对应的随机数至所述共识服务器。
本发明实施例中,若第二哈希值小于或等于预设目标值,则该第二哈希值对应的计算任务的nonce就是共识计算器需要返回给共识服务器的nonce,因此,可以返回该部分第二哈希值所对应的随机数给共识服务器。
具体应用中,所述第二哈希值与所述预设目标值满足第三预设条件可以是,所述第二哈希值小于或等于所述预设目标值。
可以理解,第一哈希值、第二哈希值只是为区别不同的计算步骤,并不代表计算任务有两个哈希值。
综上所述,在本发明实施例中,任务处理设备的共识计算器包括哈希碰撞模块和校验模块,共识计算器得到设置了随机数的计算任务,共识计算器首先通过哈希碰撞模块,只确定出计算任务对应的第一哈希值的最高位值,因为最高位值通常能反映数据的大小范围,所以通过将该最高位值与预设目标值的预设最高位值进行比较,可以直接将最高位值小于预设最高位值的第一哈希值对应的随机数返回给共识服务器,且可以筛选出很大一部分的计算任务的第一哈希值最高位值大于预设目标值的预设最高位值,这很大一部分的计算任务和已经返回随机数给共识服务器的计算任务,不需要进行哈希值全部值的计算,只是计算出最高位值,因此能大大减少共识计算器的计算量;然后通过验证模块,只计算满足第二预设条件的最高位值所对应的计算任务的第二哈希值,并将与预设目标值满足预设第三预设条件的第二哈希值所对应的随机数返回给共识服务器。在本发明实施例中,因为在验证模块计算哈希值之前,先通过哈希碰撞模块筛选出最高位值与预设最高位值满足第一预设条件的计算任务,直接返回给服务器,只筛选出最高位值与预设最高位值满足第二预设条件的计算任务进行进一步验证计算,因此能减少对最高位值与预设最高位值不满足第二预设条件的计算任务的验证计算,在计算任务较繁重的区块链领域,能大大减少共识计算器的计算量。
参照图2,示出了本发明一个实施例的另一种区块链的数据处理方法的具体步骤流程图,应用在区块链的任务处理设备中,任务处理设备包括共识服务器与共识计算器,所述共识计算器包括哈希碰撞模块和校验模块,该方法具体可以包括如下步骤:
步骤201:共识计算器获取设置有随机数的计算任务。
步骤202,共识计算器通过所述哈希碰撞模块对所述计算任务进行最后一轮blake256计算时,只进行与V7和VF相关的G_BLOCK运算,得到所述计算任务的第一哈希值的最高位值h7
具体应用中,所述共识计算器的核心算法为blake256R14;所述blake256R14算法为14轮blake256运算,每轮blake256运算进行16次G_BLOCK计算,每次G_BLOCK计算中,所述G_BLOCK的算法模型采用5个输入变量:Mj,a,b,c,d,所述G_BLOCK的算法模型表示为Gj(Mj,a,b,c,d),其中j为0-15的整数。
本发明实施例中,Gj(Mj,a,b,c,d)只是列出了“Mj,a,b,c,d”的5个输入变量,具体应用中,在Gj(Mj,a,b,c,d)的算法模型中,还可以根据实际需求加入相应的常量。
考虑到在常规的数据计算中,核心算法需要14*16=224单元的硬件资源。每个G_BLOCK算法需要的资源为:3个输入变量的加法器一个,2个输入变量的加法器一个,保存中间结果的32位寄存器四个,32位的双变量异或处理器两个,32位的变量与常数的异或处理器一个。本发明实施例中,在哈希碰撞模块中,只计算出计算任务的最高位值,在blake256R14运算中最后一轮的blake256计算中,只需要进行与V7和VF相关的G_BLOCK运算,就可以得到第一哈希值的最高位值h7,从而能减少blake256R14运算中最后一轮的blake256计算中G_BLOCK计算的次数,因此可以大大降低共识计算器的运算量,也能节省硬件资源的需求,减少成本降低功耗。
作为本发明实施例的一种优选实施方式,所述Mj对应于M0至MF 16个数值;所述a、b、c和d对应于V0至VF 16个数值。
具体应用中,共识计算器中每一轮blake256的16次G_BLOCK的算法模型表示为:
G7(M7,cst9,16,12,V0,V4,V8,VC);
G9(M9,cst7,8,7,V0,V4,V8,VC);
G3(M3,cst1,16,12,V1,V5,V9,VD);
G1(M1,cst3,8,7,V1,V5,V9,VD);
GD(MD,cstC,16,12,V2,V6,VA,VE);
GC(MC,cstD,8,7,V2,V6,VA,VE);
GB(MB,cstE,16,12,V3,V7,VB,VF);
GE(ME,cstB,8,7,V3,V7,VB,VF);
G2(M2,cst6,16,12,V0,V5,VA,VF);
G6(M6,cst2,8,7,V0,V5,VA,VF);
G5(M5,cstA,16,12,V1,V6,VB,VC);
GA(MA,cst5,8,7,V1,V6,VB,VC);
G4(M4,cst0,16,12,V2,V7,V8,VD);
G0(M0,cst4,8,7,V2,V7,V8,VD);
GF(MF,cst8,16,12,V3,V4,V9,VE);
G8(M8,cstF,8,7,V3,V4,V9,VE)。
其中,M0至MF及V0至VF是G_BLOCK的算法模型中的32个变量,在G_BLOCK的算法模型中除了32个变量外,其余为算法白皮书规定的常量。
每两次G_BLOCK赋值运算中,通过下述计算模型进行运算后,得到新的计算数据a,b,c,d值,所以其中i为0-7的整数,可以理解,因为计算模型中的常量是固定的,不会随着赋值运算而改变,因此在下述计算模型中省略掉常量,使得计算模型更加清楚易懂:
G2i(M2i,a,b,c,d):
Figure BDA0001834044540000081
其中,C为blake256R14算法白皮书中定义的常量,该公式表示,a为本次计算赋值中,下述三个值的和:a、b、以及M(2i)异或C(2i+1)
Figure BDA0001834044540000082
该公式表示:d为本次计算赋值中,d异或a后循环右移16位。
c←c+d;
该公式表示:c为本次计算赋值中,c与d的和。
Figure BDA0001834044540000083
该公式表示:b为本次计算赋值中,b异或c后循环右移12位。
G2i+1(M2i+1,a,b,c,d):
Figure BDA0001834044540000084
Figure BDA0001834044540000091
c←c+d;
Figure BDA0001834044540000092
该四个模型与上述模型原理相似,在此不再赘述。
作为本发明实施例的一种优选方式,所述随机数为0至0xffffffff之间的任意数,所述第一哈希值包括8位双字类型数据,所述第一哈希值的每一位值通过下述公式计算:
hi=hi^Vi^V(i+8)
该公式表示:第一哈希值的第i位值为:第i位值,异或,Vi,异或,V(i+8)
具体应用中,随机数可以为0至0xffffffff数据空间里的任意数,通过共识计算器计算出计算任务的完整哈希值通常是32字节数据,也就是8个双字类型的数据,计算任务哈希值的最高位值通常包括4个字节。则相应的所述第一哈希值的最高位值为h7,所述h7包括4个字节。
可以理解,因为只需要计算出第一哈希值的最高位值h7,h7对应上述公式可以得出,计算h7,只需要计算V7和VF,因此可以在最后一轮blake256中,将与V7和VF不相关的G_BLOCK运算优化掉,不进行计算。
对应于上述G_BLOCK算法模型,可以将G5(M5,cstA,16,12,V1,V6,VB,VC);GA(MA,cst5,8,7,V1,V6,VB,VC);GF(MF,cst8,16,12,V3,V4,V9,VE);G8(M8,cstF,8,7,V3,V4,V9,VE)的运算优化去掉,不再计算;从而可以减少4次完整的G_BLOCK计算。
可以理解,在GD(MD,cstC,16,12,V2,V6,VA,VE);GC(MC,cstD,8,7,V2,V6,VA,VE)中的V6,在G2(M2,cst6,16,12,V0,V5,VA,VF);G6(M6,cst2,8,7,V0,V5,VA,VF)中的V5,VA,也是可以不用计算的,从而可以优化G_BLOCK部分计算步骤,大约可以减少0.5次加上大约0.5次的计算。
综上,在上述例子中,在最后一轮blake256中,可以优化大约5次的G_BLOCK计算,按常规一个内核需要做14*16=224个G_BLOCK运算,每个芯片有y个内核,原本需要224*y的计算资源,那么去除上述优化掉的G_BLOCK计算,优化计算资源后只需要(224-(4+0.5+约0.5))*y,每个nonce计算可以节省大约5个G_BLOCK,那么0-0xffffffff次碰撞可以节约的资源量就非常大了。
步骤203,在所述最高位值与所述预设目标值的预设最高位值满足第一预设条件的情况下,所述共识计算器返回满足所述第一预设条件的最高值所对应的随机数至所述共识服务器。
步骤204,在所述最高位值与预设目标值的预设最高位值满足第二预设条件的情况下,所述共识计算器通过所述校验模块确定满足所述第二预设条件的最高位值所对应的计算任务的第二哈希值。
步骤205,在所述第二哈希值与所述预设目标值满足第三预设条件的情况下,所述共识计算器返回满足所述第三预设条件的第二哈希值所对应的随机数至所述共识服务器。
本发明实施例中,预设目标值是可以是32字节的数据,将h7与预设目标值的最高四位比较,可以筛选出需要进一步通过校验模块确定的计算任务,无效的计算任务在校验模块中会被检验出来而抛弃,从而减轻了无效计算任对共识服务器和共识计算器传输的IO(输入输出)压力和共识服务器得计算工作量。
在本发明实施例中,任务处理设备的共识计算器包括哈希碰撞模块和校验模块,共识计算器得到设置了随机数的计算任务,共识计算器首先通过哈希碰撞模块,只确定出计算任务对应的第一哈希值的最高位值,因为最高位值通常能反映数据的大小范围,所以通过将该最高位值与预设目标值的预设最高位值进行比较,可以直接将最高位值小于预设最高位值的第一哈希值对应的随机数返回给共识服务器,且可以筛选出很大一部分的计算任务的第一哈希值最高位值大于预设目标值的预设最高位值,这很大一部分的计算任务和已经返回随机数给共识服务器的计算任务,不需要进行哈希值全部值的计算,只是计算出最高位值,因此能大大减少共识计算器的计算量;然后通过验证模块,只计算满足第二预设条件的最高位值所对应的计算任务的第二哈希值,并将与预设目标值满足预设第三预设条件的第二哈希值所对应的随机数返回给共识服务器。在本发明实施例中,因为在验证模块计算哈希值之前,先通过哈希碰撞模块筛选出最高位值与预设最高位值满足第一预设条件的计算任务,直接返回给服务器,只筛选出最高位值与预设最高位值满足第二预设条件的计算任务进行进一步验证计算,因此能减少对最高位值与预设最高位值不满足第二预设条件的计算任务的验证计算,在计算任务较繁重的区块链领域,能大大减少共识计算器的计算量。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图3,示出了本发明一个实施例的一种区块链的数据处理设备的结构框图,应用在区块链共识计算器;所述共识计算器包括哈希碰撞模块310和校验模块320;
所述共识计算器用于:
获取设置有随机数的计算任务;
通过所述哈希碰撞模块310确定所述计算任务的第一哈希值的最高位值;
在所述最高位值与所述预设目标值的预设最高位值满足第一预设条件的情况下,返回满足所述第一预设条件的最高值所对应的随机数至共识服务器;
在所述最高位值与预设目标值的预设最高位值满足第二预设条件的情况下,通过所述校验模块320确定满足所述第二预设条件的最高位值所对应的计算任务的第二哈希值;
在所述第二哈希值与所述预设目标值满足第三预设条件的情况下,返回满足所述第三预设条件的第二哈希值所对应的随机数至所述共识服务器。
在本发明的一个优选实施例中,所述共识计算器的核心算法为blake256R14;所述blake256R14算法为14轮blake256运算,每轮blake256运算进行16次G_BLOCK计算,每次G_BLOCK计算中,所述G_BLOCK的算法模型采用5个输入变量:Mj,a,b,c,d,所述G_BLOCK的算法模型表示为Gj(Mj,a,b,c,d),其中j为0-15的整数;
所述Mj对应于M0至MF 16个数值;所述a、b、c和d对应于V0至VF 16个数值;每两次G_BLOCK赋值运算中,通过下述计算模型进行运算后,得到新的计算数据a,b,c,d值,所以其中i为0-7的整数:
G2i(M2i,a,b,c,d):
Figure BDA0001834044540000121
Figure BDA0001834044540000122
c←c+d;
Figure BDA0001834044540000123
G2i+1(M2i+1,a,b,c,d):
Figure BDA0001834044540000124
Figure BDA0001834044540000125
c←c+d;
Figure BDA0001834044540000126
其中,C为blake256R14算法白皮书中定义的常量;
所述随机数为0至0xffffffff之间的任意数,所述第一哈希值包括8个双字类型数据,所述第一哈希值的每一位值通过下述公式计算:
hi=hi^Vi^V(i+8)
所述第一哈希值的最高位值为h7,所述h7包括4个字节。
所述共识计算器320还用于:
通过所述哈希碰撞模块对所述计算任务进行最后一轮blake256计算时,只进行与V7和VF相关的G_BLOCK运算,得到所述计算任务的第一哈希值的最高位值h7
对于设备实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在本发明实施例中,任务处理设备的共识计算器包括哈希碰撞模块和校验模块,共识计算器得到设置了随机数的计算任务,共识计算器首先通过哈希碰撞模块,只确定出计算任务对应的第一哈希值的最高位值,因为最高位值通常能反映数据的大小范围,所以通过将该最高位值与预设目标值的预设最高位值进行比较,可以直接将最高位值小于预设最高位值的第一哈希值对应的随机数返回给共识服务器,且可以筛选出很大一部分的计算任务的第一哈希值最高位值大于预设目标值的预设最高位值,这很大一部分的计算任务和已经返回随机数给共识服务器的计算任务,不需要进行哈希值全部值的计算,只是计算出最高位值,因此能大大减少共识计算器的计算量;然后通过验证模块,只计算满足第二预设条件的最高位值所对应的计算任务的第二哈希值,并将与预设目标值满足预设第三预设条件的第二哈希值所对应的随机数返回给共识服务器。在本发明实施例中,因为在验证模块计算哈希值之前,先通过哈希碰撞模块筛选出最高位值与预设最高位值满足第一预设条件的计算任务,直接返回给服务器,只筛选出最高位值与预设最高位值满足第二预设条件的计算任务进行进一步验证计算,因此能减少对最高位值与预设最高位值不满足第二预设条件的计算任务的验证计算,在计算任务较繁重的区块链领域,能大大减少共识计算器的计算量。
图4是本发明实施例中电子设备的结构示意图。该电子设备400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)422(例如,一个或一个以上处理器)和存储器432,一个或一个以上存储应用程序442或数据444的存储介质430(例如一个或一个以上海量存储设备)。其中,存储器432和存储介质430可以是短暂存储或持久存储。存储在存储介质430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对电子设备中的一系列指令操作。更进一步地,中央处理器422可以设置为与存储介质430通信,在电子设备400上执行存储介质430中的一系列指令操作。
电子设备400还可以包括一个或一个以上电源426,一个或一个以上有线或无线网络接口450,一个或一个以上输入输出接口458,一个或一个以上键盘456,和/或,一个或一个以上操作系统441,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
优选的,本发明实施例还提供一种电子设备,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述区块链的数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述区块链的数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random AccessMemory,简称RAM)、磁碟或者光盘等。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种区块链的数据处理方法及相关设备,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种区块链的数据处理方法,其特征在于,应用在区块链的共识计算器,所述共识计算器包括哈希碰撞模块和校验模块,所述方法包括:
共识计算器获取设置有随机数的计算任务;
共识计算器通过所述哈希碰撞模块确定所述计算任务的第一哈希值的最高位值;
在所述最高位值与预设目标值的预设最高位值满足第一预设条件的情况下,所述共识计算器返回满足所述第一预设条件的所述最高位值所对应的随机数至共识服务器;
在所述最高位值与预设目标值的预设最高位值满足第二预设条件的情况下,所述共识计算器通过所述校验模块确定满足所述第二预设条件的最高位值所对应的计算任务的第二哈希值;
在所述第二哈希值与所述预设目标值满足第三预设条件的情况下,所述共识计算器返回满足所述第三预设条件的第二哈希值所对应的随机数至所述共识服务器。
2.根据权利要求1所述的方法,其特征在于,所述共识计算器的核心算法为blake256R14;所述blake256R14算法为14轮blake256运算,每轮blake256运算进行16次G_BLOCK计算,每次G_BLOCK计算中,所述G_BLOCK的算法模型采用5个输入变量:Mj,a,b,c,d,其中,所述Mj对应于M0至MF 16个数值,所述M0至MF是G_BLOCK的算法模型中的16个变量,所述a、b、c和d对应于V0至VF 16个数值,所述V0至VF是所述G_BLOCK的算法模型中的16个变量,所述G_BLOCK的算法模型表示为Gj(Mj,a,b,c,d),其中j为0-15的整数。
3.根据权利要求2所述的方法,其特征在于,所述Mj对应于所述M0至MF 16个数值,所述M0至MF是所述G_BLOCK的算法模型中的16个变量;所述a、b、c和d对应于所述V0至VF 16个数值,所述V0至VF是所述G_BLOCK的算法模型中的16个变量;每两次G_BLOCK赋值运算中,通过下述计算模型进行运算后,得到新的计算数据a,b,c,d值,所以其中i为0-7的整数:
G2i(M2i,a,b,c,d):
Figure FDA0003228766670000021
Figure FDA0003228766670000022
c←c+d;
Figure FDA0003228766670000023
G2i+1(M2i+1,a,b,c,d):
Figure FDA0003228766670000024
Figure FDA0003228766670000025
c←c+d;
Figure FDA0003228766670000026
其中,C、C(2i)、C(2i+1)为blake256R14算法白皮书中定义的常量,其中i为0-7的整数,因为计算模型中的常量是固定的,所以不会随着赋值运算而改变。
4.根据权利要求3所述的方法,其特征在于,所述随机数为0至0xffffffff之间的任意数,所述第一哈希值包括8位双字类型数据,所述第一哈希值的每一位值通过下述公式计算:
hi=hi^Vi^V(i+8)
所述第一哈希值的最高位值为h7,所述h7包括4个字节。
5.根据权利要求4所述的方法,其特征在于,所述共识计算器通过所述哈希碰撞模块确定所述计算任务的第一哈希值的最高位值,包括:
共识计算器通过所述哈希碰撞模块对所述计算任务进行最后一轮blake256计算时,得到所述计算任务的第一哈希值的最高位值h7
6.一种区块链的数据处理设备,其特征在于,应用在区块链的共识计算器,所述共识计算器包括哈希碰撞模块和校验模块;
所述共识计算器用于:
获取设置有随机数的计算任务;
通过所述哈希碰撞模块确定所述计算任务的第一哈希值的最高位值;
在所述最高位值与预设目标值的预设最高位值满足第一预设条件的情况下,返回满足所述第一预设条件的所述最高位值所对应的随机数至共识服务器;
在所述最高位值与预设目标值的预设最高位值满足第二预设条件的情况下,通过所述校验模块确定满足所述第二预设条件的最高位值所对应的计算任务的第二哈希值;
在所述第二哈希值与所述预设目标值满足第三预设条件的情况下,返回满足所述第三预设条件的第二哈希值所对应的随机数至所述共识服务器。
7.根据权利要求6所述的数据处理设备,其特征在于,所述共识计算器的核心算法为blake256R14;所述blake256R14算法为14轮blake256运算,每轮blake256运算进行16次G_BLOCK计算,每次G_BLOCK计算中,所述G_BLOCK的算法模型采用5个输入变量:Mj,a,b,c,d,所述G_BLOCK的算法模型表示为Gj(Mj,a,b,c,d),其中j为0-15的整数;
所述Mj对应于M0至MF 16个数值,所述M0至MF是所述G_BLOCK的算法模型中的16个变量,所述a、b、c和d对应于V0至VF 16个数值,所述V0至VF是所述G_BLOCK的算法模型中的16个变量;每两次G_BLOCK赋值运算中,通过下述计算模型进行运算后,得到新的计算数据a,b,c,d值,所以其中i为0-7的整数:
G2i(M2i,a,b,c,d):
Figure FDA0003228766670000031
Figure FDA0003228766670000032
c←c+d;
Figure FDA0003228766670000041
G2i+1(M2i+1,a,b,c,d):
Figure FDA0003228766670000042
Figure FDA0003228766670000043
c←c+d;
Figure FDA0003228766670000044
其中,C、C(2i)、C(2i+1)为blake256R14算法白皮书中定义的常量,其中i为0-7的整数,因为计算模型中的常量是固定的,所以不会随着赋值运算而改变;
所述随机数为0至0xffffffff之间的任意数,所述第一哈希值包括8位双字类型数据,所述第一哈希值的每一位值通过下述公式计算:
hi=hi^Vi^V(i+8)
所述第一哈希值的最高位值为h7,所述h7包括4个字节。
8.根据权利要求7所述的数据处理设备,其特征在于,所述共识计算器还用于:
通过所述哈希碰撞模块对所述计算任务进行最后一轮blake256计算,得到所述计算任务的第一哈希值的最高位值h7
9.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至5中任一项所述的区块链的数据处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的区块链的数据处理方法的步骤。
CN201811217994.7A 2018-10-18 2018-10-18 一种区块链的数据处理方法及相关设备 Active CN111082922B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811217994.7A CN111082922B (zh) 2018-10-18 2018-10-18 一种区块链的数据处理方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811217994.7A CN111082922B (zh) 2018-10-18 2018-10-18 一种区块链的数据处理方法及相关设备

Publications (2)

Publication Number Publication Date
CN111082922A CN111082922A (zh) 2020-04-28
CN111082922B true CN111082922B (zh) 2021-11-19

Family

ID=70308820

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811217994.7A Active CN111082922B (zh) 2018-10-18 2018-10-18 一种区块链的数据处理方法及相关设备

Country Status (1)

Country Link
CN (1) CN111082922B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021244206A1 (zh) 2020-06-03 2021-12-09 华为技术有限公司 报文处理方法、设备、系统及存储介质
CN112984722A (zh) * 2021-02-02 2021-06-18 广东积微科技有限公司 风管机静压的识别方法、装置、计算机设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105245327A (zh) * 2015-08-21 2016-01-13 北京比特大陆科技有限公司 比特币工作量证明哈希计算芯片优化的方法、装置和电路
CN106296191A (zh) * 2016-08-13 2017-01-04 深圳市樊溪电子有限公司 一种区块链功耗感知的PoW共识机制
WO2017204944A1 (en) * 2016-05-24 2017-11-30 Mastercard International Incorporated Method and system for desychronization recovery for permissioned blockchains using bloom filters
EP3364354A1 (en) * 2017-02-17 2018-08-22 Accenture Global Services Limited Hardware blockchain corrective consensus operating procedure enforcement

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105245327A (zh) * 2015-08-21 2016-01-13 北京比特大陆科技有限公司 比特币工作量证明哈希计算芯片优化的方法、装置和电路
WO2017204944A1 (en) * 2016-05-24 2017-11-30 Mastercard International Incorporated Method and system for desychronization recovery for permissioned blockchains using bloom filters
CN106296191A (zh) * 2016-08-13 2017-01-04 深圳市樊溪电子有限公司 一种区块链功耗感知的PoW共识机制
EP3364354A1 (en) * 2017-02-17 2018-08-22 Accenture Global Services Limited Hardware blockchain corrective consensus operating procedure enforcement

Also Published As

Publication number Publication date
CN111082922A (zh) 2020-04-28

Similar Documents

Publication Publication Date Title
TWI823571B (zh) 用於在定點算術運算系統中實施神經網路之方法、系統及電腦儲存媒體
TWI825596B (zh) 用於執行類神經網路計算之電路、方法及非暫時性機器可讀儲存裝置
US11531926B2 (en) Method and apparatus for generating machine learning model by using distributed computing framework
CN110009486B (zh) 一种欺诈检测的方法、系统、设备及计算机可读存储介质
WO2023065632A1 (zh) 数据脱敏方法、数据脱敏装置、设备及存储介质
CN111082922B (zh) 一种区块链的数据处理方法及相关设备
CN110929860B (zh) 一种卷积加速运算方法、装置、存储介质及终端设备
US20170193220A1 (en) Method and apparatus for trusted measurement
CN112214402B (zh) 一种代码验证算法的选择方法、装置及存储介质
CN110807529A (zh) 一种机器学习模型的训练方法、装置、设备及存储介质
CN113987182A (zh) 基于安全情报的欺诈实体识别方法、装置及相关设备
CN115221475A (zh) 以可扩展的方式对软件代码进行聚类
CN109615080B (zh) 无监督模型评估方法、装置、服务器及可读存储介质
CN113609345A (zh) 目标对象关联方法和装置、计算设备以及存储介质
CN114492370B (zh) 网页识别方法、装置、电子设备和介质
JP6835407B2 (ja) 画像処理装置、画像処理方法及びプログラム
WO2021037284A2 (zh) 一种螺旋桨翼型的设计方法及终端设备
CN110795227A (zh) 一种区块链的数据处理方法及相关设备
CN110969527B (zh) 一种区块链的数据处理方法及相关设备
JP7137067B2 (ja) 演算処理装置、学習プログラム及び学習方法
CN113420841B (zh) 有毒样本数据生成方法及装置
CN109190039B (zh) 确定相似对象的方法、装置及计算机可读存储介质
Chen et al. Nonlinear boundary problem of first order impulsive integro-differential equations
CN113114119B (zh) 新型反馈控制器的噪声干扰水平的在线判断方法及系统
CN114615092B (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