CN111881147A - 计算任务的处理方法和装置、存储介质及处理器 - Google Patents

计算任务的处理方法和装置、存储介质及处理器 Download PDF

Info

Publication number
CN111881147A
CN111881147A CN201911285440.5A CN201911285440A CN111881147A CN 111881147 A CN111881147 A CN 111881147A CN 201911285440 A CN201911285440 A CN 201911285440A CN 111881147 A CN111881147 A CN 111881147A
Authority
CN
China
Prior art keywords
verification
calculation
task
computing
node
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
CN201911285440.5A
Other languages
English (en)
Other versions
CN111881147B (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.)
Shenzhen Icarbonx Intelligent Digital Life Health Management Co ltd
Shenzhen Digital Life Institute
Original Assignee
Shenzhen Icarbonx Intelligent Digital Life Health Management Co ltd
Shenzhen Digital Life Institute
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 Shenzhen Icarbonx Intelligent Digital Life Health Management Co ltd, Shenzhen Digital Life Institute filed Critical Shenzhen Icarbonx Intelligent Digital Life Health Management Co ltd
Priority to CN201911285440.5A priority Critical patent/CN111881147B/zh
Priority to PCT/CN2020/122886 priority patent/WO2021114889A1/zh
Publication of CN111881147A publication Critical patent/CN111881147A/zh
Application granted granted Critical
Publication of CN111881147B publication Critical patent/CN111881147B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种计算任务的处理方法和装置、存储介质及处理器。其中,该方法包括:区块链上的第一计算节点接收到计算任务集合,在计算任务集合完成的情况下,第一计算节点将计算结果集合广播至区块链中的验证节点,其中,验证节点为区块链上的任意一个计算节点;随机抽取第一计算节点上已经广播的部分计算结果;通过对产生部分计算结果对应的计算任务进行重新计算,对随机抽取的部分计算结果进行验证;如果重新计算得到的验证结果与已经广播的计算结果一致,则第一计算节点发布的计算结果通过验证。本发明解决了现有技术中在区块链中存在大量的计算任务,在计算任务的处理过程中,存在计算结果无法快速验证的技术问题。

Description

计算任务的处理方法和装置、存储介质及处理器
技术领域
本发明涉及区块链技术领域,具体而言,涉及一种计算任务的处理方法和装置、存储介质及处理器。
背景技术
区块链是一个分布式的账本,区块链网络节点之间的去中心化协议维护着一条不停增长的由有序数据块组成的数据链,每一个数据区块内都有一个时间戳和一个指针,指向上一个区块,它能安全地存储数字货币或者股权,债权,版权等的交易数据,区块中的信息不可伪造和篡改。
在完成计算任务的过程中,有三个主要因素:输入数据、应用程序和计算资源。其中,应用程序发挥着非常重要的作用,它往往决定了如何使用计算资源,对输入数据进行怎样的操作。因此,为了保证计算任务的安全性,避免数据泄露或者计算资源被入侵的情况,需要对应用程序的安全性有一定的要求。
在区块链中的一个节点向其它节点广播其已经生成了新的区块后,其它节点需要对其完成的工作量进行验证,以确保该节点的确使用指定的应用程序完成了对所有输入数据的处理,产生了真实的计算结果,而不是伪造了计算结果。
传统的区块链的工作量证明方式为解决一个复杂的数学问题,例如通过哈希函数计算得到满足某些特定条件的数字。最终第一个解决该问题,并得到区块链中大多数节点验证通过的节点得到生成新的区块的权利并获得一定的奖励。但是,该种做法导致大量计算资源被浪费。
针对现有技术中在区块链中存在大量的计算任务,在计算任务的处理过程中,存在计算结果无法快速验证的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种计算任务的处理方法和装置、存储介质及处理器,以至少解决现有技术中在区块链中存在大量的计算任务,在计算任务的处理过程中,存在计算结果无法快速验证的技术问题。
根据本发明实施例的一个方面,提供了一种计算任务的处理方法,包括:区块链上的第一计算节点接收到计算任务集合,在计算任务集合完成的情况下,第一计算节点将计算结果集合广播至区块链中的验证节点,其中,验证节点为区块链上的任意一个计算节点或部分计算节点;随机抽取第一计算节点上已经广播的部分计算结果;通过对产生部分计算结果对应的计算任务进行重新计算,对随机抽取的部分计算结果进行验证;如果重新计算得到的验证结果与已经广播的计算结果一致,则第一计算节点发布的计算结果通过验证。
进一步地,通过对产生部分计算结果的计算任务进行重新计算,来对随机抽取的部分计算结果进行验证,包括:获取用于处理目标计算任务的应用程序所接收到的输入数据,和验证节点随机生成的参考数据,其中,目标计算任务为产生了部分计算结果的计算任务;验证节点使用应用程序对输入数据和参考数据进行计算,得到验证结果;将验证结果与第一计算节点上对应的计算任务产生的计算结果进行比对,来完成验证。
进一步地,基于随机数生成函数生成参考数据,参考数据用于表征验证的计算结果与第一计算节点上对应的计算任务之间的对应关系。
进一步地,区块链上进行验证的计算节点的数量超过预设阈值的情况下,随机抽取预定数量的计算节点的验证结果作为子集构成区块链的整体验证结果。
进一步地,预定数量用于确定验证节点数量,其中,基于问题复杂度m和每次验证长度n确定验证节点数量。
进一步地,在对区块链上的计算任务集合进行验证的过程中,该方法还包括:获取任意一个计算节点上用于处理计算任务的应用程序;获取区块链上的历史信息,其中,历史信息至少包括:发布应用程序的程序发布对象的信用等级,发布计算任务的任务发布对象的信用等级;基于程序发布对象的信用等级和/或任务发布对象的信用等级,确定审查等级;基于审查等级,确定验证模式,其中,验证模式用于验证计算节点发布的计算结果。
进一步地,根据发布应用程序的历史信息确定程序发布对象的信用等级,根据发布计算任务的历史通过率确定任务发布对象的信用等级。
进一步地,程序发布对象的信用等级基于历史上发布应用程序的发布次数、程序通过率、使用次数的变化而更新。
进一步地,任务发布对象的信用等级基于历史上发布计算任务的发布次数、任务通过次数、任务完成次数、任务完成率的变化而更新。
进一步地,基于审查等级,确定验证模式,其中,验证模式包括如下至少之一:
不进行片段验证和不进行数据集验证;
不进行片段验证和进行数据集验证;
降低片段验证的倍数并进行片段验证,和进行数据集验证。
进一步地,通过如下任意一种方式验证发布应用程序的平台的安全性:检测应用程序的开源代码、使用安全验证软件验证应用程序、使用安全测试程序验证应用程序。
进一步地,计算任务包括:用于处理计算任务的应用程序的程序信息,计算任务对应的输入数据的数据信息,以及完成计算任务所获得的虚拟资源。
进一步地,第一计算节点接收到计算任务集合的同时,接收计算任务的计算工作量和按照预设算法验证计算结果集合的验证工作量,其中,计算工作量基于输入数据的数据量和应用程序使用的算法的复杂度确定,验证工作量基于预设总工作量和计算工作量确定。
进一步地,多次随机抽取第一计算节点上已经广播的部分计算结果,并对每次随机抽取的部分计算结果进行验证,如果多次重新计算得到的验证结果均与已经广播的计算结果一致,则第一计算节点发布的计算结果通过验证。
进一步地,在区块链上的每个计算节点验证通过的情况下,确定更新后的区块为新区块。
根据本发明实施例的另一方面,还提供了一种计算任务的处理方法,包括:区块链上的第一计算节点接收到计算任务集合,且计算任务集合中的计算任务完成的情况下,第一计算节点将计算结果集合广播至区块链中的验证节点,其中,验证节点为区块链上的任意一个计算节点或部分计算节点;获取区块链上的历史信息,其中,历史信息至少包括:发布应用程序的程序发布对象的信用等级,发布计算任务的任务发布对象的信用等级,应用程序在任意一个计算节点上,且用于处理计算任务;基于程序发布对象的信用等级和/或任务发布对象的信用等级,确定审查等级;基于审查等级,确定验证模式,其中,验证模式用于验证计算节点发布的计算结果;随机抽取第一计算节点上已经广播的部分计算结果;通过对产生部分计算结果对应的计算任务进行重新计算,对随机抽取的部分计算结果进行验证。
进一步地,根据发布应用程序的历史信息确定程序发布对象的信用等级,根据发布计算任务的历史通过率确定任务发布对象的信用等级。
进一步地,程序发布对象的信用等级基于历史上发布应用程序的发布次数、程序通过率、使用次数的变化而更新。
进一步地,任务发布对象的信用等级基于历史上发布计算任务的发布次数、任务通过次数、任务完成次数、任务完成率的变化而更新。
进一步地,基于审查等级,确定验证模式,其中,验证模式包括如下至少之一:不进行片段验证及数据集验证、不进行片段验证且进行数据集验证、降低片段验证的倍数和进行片段验证及数据集验证。
进一步地,通过对产生部分计算结果对应的计算任务进行重新计算,对随机抽取的部分计算结果进行验证,包括:获取用于处理目标计算任务的应用程序所接收到的输入数据,和验证节点随机生成的参考数据,其中,目标计算任务为产生了部分计算结果的计算任务:验证节点使用应用程序对输入数据和参考数据进行计算,得到验证结果;将验证结果与第一计算节点上对应的计算任务产生的计算结果进行比对,来完成验证。
进一步地,基于随机数生成函数生成参考数据,参考数据用于表征验证的计算结果与第一计算节点上对应的计算任务之间的对应关系。
进一步地,区块链上进行验证的计算节点的数量超过阈值的情况下,进行验证计算节点的验证结果作为子集构成区块链的整体验证结果。
进一步地,在区块链上的每个计算节点验证通过的情况下,确定更新后的区块为新区块。
根据本发明实施例的另一方面,提供了一种计算任务的处理装置,包括:
广播模块,用于区块链上的第一计算节点接收到计算任务集合,在计算任务集合完成的情况下,第一计算节点将计算结果集合广播至区块链中的验证节点,其中,验证节点为区块链上的任意一个计算节点或部分计算节点;
抽取模块,用于随机抽取第一计算节点上已经广播的部分计算结果;
验证模块,用于通过对产生部分计算结果对应的计算任务进行重新计算,用于对随机抽取的部分计算结果进行验证;
第一确定模块,用于如果重新计算得到的验证结果与已经广播的计算结果一致,则第一计算节点发布的计算结果通过验证。
根据本发明实施例的另一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述的计算任务的处理方法。
根据本发明实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述的计算任务的处理方法。
在本发明实施例中,区块链上的第一节点接收到计算任务集合之后,会使用相应的应用程序对计算任务集合进行计算,得到计算结果集合,并将计算结果集合广播至验证节点,验证节点可以随机抽取部分计算结果,并通过对部分计算结果对应的计算任务进行重新计算,并比较重新计算得到的验证结果与已经广播的计算结果的一致性,从而确定第一计算节点发布的计算结果是否通过验证。与相关技术相比,由于每个节点仅抽取部分计算结果进行验证,因此,验证速度较快。而且每个验证节点采用随机验证部分计算结果的方式,参与计算任务的第一计算节点无法预知哪些计算结果会被验证,从而无法仅生成这些可能被验证的计算结果,而伪造其他部分的计算结果,提高了计算节点作弊的难度,进而解决了现有技术中在区块链中存在大量的计算任务,在计算任务的处理过程中,存在计算结果无法快速验证的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种计算任务的处理方法的流程图;
图2是根据本发明实施例的一种可选的计算任务的处理方法的流程图;
图3是根据本发明实施例的另一种计算任务的处理方法的流程图;
图4是根据本发明实施例的一种计算任务的处理装置的示意图;以及
图5是根据本发明实施例的另一种计算任务的处理装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,对本发明实施例中出现的技术名称或技术术语进行如下解释说明:
区块链:一个分布式的账本,区块链网络节点之间的去中心化协议维护着一条不停增长的由有序数据块组成的数据链,每一个数据区块内都有一个时间戳和一个指针,指向上一个区块,它能安全地存储数字货币或者股权,债权,版权等的交易数据,区块中的信息不可伪造和篡改,区块链也是一个开放性的账本,它永久,高效并可追溯地记录着两者之间的交易,这个账本也可以利用可编程的脚本自动地触发交易,区块链解决了拜占庭将军问题,可以极大降低社会中的信任成本,重塑了互联网价值传输的机制。
工作量证明:Proof Of Work,简称POW。通过对工作的结果进行认证来证明完成了相应的工作量。
哈希函数(Hash Function),也称为散列函数,给定一个输入x,它会算出相应的输出H(x)。
实施例1
根据本发明实施例,提供了一种计算任务的处理方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种计算任务的处理方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,区块链上的第一计算节点接收到计算任务集合,在计算任务集合完成的情况下,第一计算节点将计算结果集合广播至区块链中的验证节点,其中,验证节点为区块链上的任意一个计算节点或部分计算节点;
如图2所示,区块链上任一有计算需求的节点都可以发布计算任务,成为任务发布节点。其中,计算任务包括:用于处理计算任务的应用程序的程序信息,计算任务对应的输入数据的数据信息,以及完成计算任务所获得的虚拟资源,虚拟资源可以是存在于互联网中,并且可以被转移、使用的资源,具体的,可以是积分、礼物或网络商品等,但不仅限于此。节点发布计算任务时,可以提供如下信息:需要使用的应用程序的编号和版本号;输入数据的获取方式(包括网络爬虫获取、个人收集、公开数据等)和数据量的大小;为此计算任务支付的报酬。另外,计算任务还会附上发布的时间和发布节点的签名。
需要说明的是,区块链中每个计算节点使用的应用程序都有名称、编号和版本号,其中,每个应用程序的编号都是唯一的,编号可以是按应用程序发布的顺序自动生成的,编号可以由字母和数字组成。每个应用程序在发布或升级时,都会生成一个可以验证应用程序是否被修改过的验证码(例如哈希值)。而且,每个应用程序都有相应的发布者,每当一个应用程序被成功用于一个计算任务时,该应用程序的发布者都可以获得收益。
区块链上的一个特定节点上部署有任务管理中心,该中心负责接收区块链上各节点发布的计算任务。如图2所示,在一个交易周期内,将多个计算任务打包成计算任务集合,并向全网广播。
区块链上任一节点在接收到计算任务集合之后,如果决定进行任务计算,则该节点成为第一计算节点,首先将交易周期内的所有交易打包,然后开始任务计算。如图2所示,当节点完成工作量之后,参与计算的节点将计算结果的访问方式和已打包的交易生成一个更新后的区块,并向全网或者验证节点广播。其中,计算结果可以包括完成发布的计算任务的预期时长和实际时长。
验证节点可以由两种方式确定,在一种可选的方案中,区块链上的任一节点都是验证节点。当一个节点接收到其他节点广播的计算结果集合时,首先验证传统的工作量证明是否通过,如果通过,则验证产生该计算任务的结果的真实性。验证传统的工作量证明和验证产生该计算任务的结果的真实性,可同时进行验证或调换顺序进行验证,选择先验证传统的工作量是因为该验证很快,以最少的工作量决定是否需要进行下一个验证。传播新区块的前提是两个验证都通过。在另一种可选的方案中,验证节点可以是全体节点的子集,称为验证节点集合,可以组成验证链。该集合的选择方式包括但不限于:
1.随机选取:
a)由所有有效节点组成节点池,有效节点需具有存活性(处于活动状态的节点为存活的节点),在一个优选的实施方式中,有效节点还受节点的信用等级限制,比如,信用等级需达到某个预定的等级或以上;在其他优选实施方式中,节点的有效性在为具有存活性的前提下,还可以包括其他针对计算节点的计算能力、历史信息等限制因素,具体在此不做限定;
b)在验证阶段从节点池随机抽取需要数量的节点作为验证节点组成验证节点集合。随机选取的方式可以是对节点按顺序进行编号,再用一组随机数进行抽取。
2.竞选:
a)由所有有效节点组成节点池,有效节点需具有存活性(处于活动状态的节点为存活的节点),在一个优选的实施方式中,有效节点还受节点的信用等级限制,比如,信用等级需达到某个预定的等级或以上;在其他优选实施方式中,节点的有效性在为具有存活性的前提下,还可以包括其他针对计算节点的计算能力、历史信息等限制因素,具体在此不做限定;
b)在验证阶段,所有有效节点申报本次可投入执行计算的资源,根据各自可投入执行计算的资源数量决定是否当选本次验证节点,比如,当可投入执行计算的资源数量大于或等于预定阈值时即可当选为本次验证的;
c)验证结束后为完成任务的验证节点返还可投入执行计算资源,并提供相应的虚拟资源。
每个验证节点首先验证传统的工作量证明是否通过,如果通过,则验证产生该计算任务的结果的真实性。
步骤S104,随机抽取第一计算节点上已经广播的部分计算结果;
需要说明的是,对于同样的输入数据,使用同样的应用程序得到的计算结果应该是相同的。在此基础上,如图2所示,验证节点在验证计算结果的真实性时,可以根据更新后的区块中的计算结果的访问方式,对每个计算任务都随机抽取计算结果的一部分来验证其真实性。
需要说明的是,为了实现上述目的,该随机性要求计算任务可以随意拆分成若干份,每一份都可以单独计算而不依赖其他份的结果。
步骤S106,通过对产生部分计算结果对应的计算任务进行重新计算,对随机抽取的部分计算结果进行验证;
步骤S108,如果重新计算得到的验证结果与已经广播的计算结果为一致,则第一计算节点发布的计算结果通过验证。
验证节点可以对产生这部分计算结果的输入数据重新进行计算,并比较重新计算得到的计算结果(即上述的验证结果)和已经广播的计算结果的一致性来判断发起广播的第一计算节点是否完成了计算任务。如图2所示,如果两个计算结果一致,则确定第一计算节点完成了计算任务,该计算结果通过验证。
采用本发明上述实施例,区块链上的第一节点接收到计算任务集合之后,会使用相应的应用程序对计算任务集合进行计算,得到计算结果集合,并将计算结果集合广播至验证节点,验证节点可以随机抽取部分计算结果,并通过对部分计算结果对应的计算任务进行重新计算,并比较重新计算得到的验证结果与已经广播的计算结果的一致性,从而确定第一计算节点发布的计算结果是否通过验证。与相关技术相比,由于每个节点仅抽取部分计算结果进行验证,因此,验证速度较快。而且每个验证节点采用随机验证部分计算结果的方式,参与计算任务的第一计算节点无法预知哪些计算结果会被验证,从而无法仅生成这些可能被验证的计算结果,而伪造其他部分的计算结果,提高了计算节点作弊的难度,进而解决了现有技术中在区块链中存在大量的计算任务,在计算任务的处理过程中,存在计算结果无法快速验证的技术问题。
可选地,本发明上述实施例中,通过对产生部分计算结果对应的计算任务进行重新计算,对随机抽取的部分计算结果进行验证,包括:获取用于处理目标计算任务的应用程序所接收到的输入数据,和验证节点随机生成的参考数据,其中,输入数据和参考数据用于确定目标计算任务,目标计算任务为产生了部分计算结果的计算任务;验证节点使用应用程序对输入数据和参考数据所确定计算任务进行计算,得到验证结果;将验证结果与第一计算节点上对应的计算任务产生的计算结果进行比对,来完成验证。
本申请实施例对计算任务的任务类型不做任何限定,本实施例中,以基因组变异检测作为计算任务为例,对本发明上述实施例进行详细说明。用于该计算任务的应用程序的输入数据为基因组测序得到的短序列比对到参考基因组序列上的结果文件及其索引文件。该结果文件中包括了每一条短序列的比对情况,例如是否可以比对上,如果比对上的话,比对到参考基因组上的哪个位置、比对的质量如何、短序列包括的碱基和参考基因组上的碱基的具体差异有哪些,等等。并且该结果文件根据短序列在参考基因组中的比对位置进行了排序,例如从1号染色体到22号染色体,接下来是X染色体、Y染色体(男性特有)、线粒体染色体。而索引文件使得应用程序可以从比对结果文件中提取参考基因组中特定位置的比对结果。
因此,验证产生该计算任务的结果的真实性时,只需要随机生成一些参考基因组的位置坐标,然后把这些位置坐标、比对结果文件及其索引文件提供给应用程序,即可计算出这些位置的变异检测结果,并和计算节点发布的计算结果进行比较。如果结果一致,则证明计算节点发布的计算结果真实。
在一种可选的实施例中,可以基于随机数生成函数生成参考数据,参考数据用于表征验证的计算结果与第一计算节点上对应的计算任务之间的对应关系。
上述的随机数生成函数可以是使用C语言中的srand()函数和rand()函数相结合的方式,但不仅限于此。先给srand()函数传递一个参数,生成一个随机种子,再多次运行rand()函数来获得多个随机数,然后将多个随机数转换成参考基因组上的位置。例如,为了随机获得100个参考基因组序列上的位置,可以先获得200个随机数;然后随机分组,比如可以按如下分组方式分组:(1、2),(3、4)……(199,200)的方式把200个随机数分成100组;接下来使用每组中的第一个数字对25进行取余,获得的余数转换为该组的参考基因组序列上的染色体编号(余数0对应1号染色体,1对应2号染色体,依此类推,余数22对应X染色体,23对应Y染色体,24对应线粒体);再使用每组中的第二个数字对该组的染色体的碱基对的个数进行长度取余,获得染色体上的位置。为了获得更好的随机性,最好使得不同的验证节点传递给srand()函数的参数是不一样的。例如可以使用节点的系统时间(从世界标准时间的1970年的1月1日0时0分0秒到当前时间经过的秒数)对当前验证任务的进程id进行取余运算。运算的结果作为srand()函数的参数。
由于不同的节点进行验证任务的进程id基本都不相同,所以不同的节点传递给srand()函数的参数也基本不一样,最终导致rand()函数生成的随机数也不一样,因此不同的节点在验证的时候随机生成的位置坐标基本都是不相同的。而计算节点也不可能知道其他节点随机生成的位置坐标是什么,因此不可能采取只针对这些位置坐标进行计算,而不计算其他位置坐标的作弊行为。
需要说明的是,为了防止恶意验证或作弊行为,应隐藏选取结果时使用的随机数种子,并将相同种子分发给多个节点,以避免作弊和恶意验证。而对于恶意验证或作弊的节点减少选取的概率。
可选地,在本发明上述实施例中,区块链上进行验证的计算节点的数量超过预设阈值的情况下,随机抽取预定数量的计算节点的验证结果作为子集构成区块链的整体验证结果。
具体地,上述的预设阈值可以根据实际使用进行设定,本发明对此不作具体限定。预定数量用于确定验证节点数量,其中,基于问题复杂度m和每次验证长度n确定验证节点数量。
由于不同节点随机验证的结果子集基本都不相同,因此当有大量节点进行验证时,这些节点验证的结果子集的集合可以有效覆盖整个计算结果。
在一种可选的方案中,验证节点数量由问题复杂度m和每次验证长度n决定,计算公式如下:Q=(mk+ν0)n+ν1,其中,k是对问题复杂度m的权重,ν0、ν1是偏差,其取值范围可以根据最长长度与最大复杂度来确定,在满足0<Q<(mmaxk+ν0)nmax1时,解空间中取任意解。可以使用区间完全覆盖算法或其他算法求解出最少需要的验证节点个数P,P取值范围由区块链具体情况限制,例如限制最少101个,具体原则是:不能超过总结点数,不能少于1个,且根据任务发布方发布的要求。
可选地,在本发明上述实施例中,多次随机抽取第一计算节点上已经广播的部分计算结果,并对每次随机抽取的部分计算结果进行验证,如果多次重新计算得到的验证结果均与已经广播的计算结果一致,则第一计算节点发布的计算结果通过验证。
在一种可选的实施例中,对于每个验证节点,可以对每个计算任务随机抽取V次进行验证,其中,V大于等于2,以保证验证的覆盖度。例如,可以抽取10次,每次抽取计算结果的0.01%,然后对抽取的计算结果的计算任务进行验证。如果V次验证都通过,则单个计算任务验证通过。
可选地,在本发明上述实施例中,在区块链上的每个计算节点验证通过的情况下,确定更新后的区块为新区块。
在一种可选的实施例中,如果所有计算任务的结果的真实性都验证通过,则验证节点认可该计算节点的计算结果。验证节点在集合内广播验证结果,如果验证节点集合全部通过,则验证通过,则把该区块添加到自己记录的区块链中,并且从验证集合中选出一个验证节点打包交易周期内的任务记录产生新的区块。
需要说明的是,如果验证未通过,则拒绝该区块为新的区块,在一个可选的实施例中,验证未通过则该任务将会继续处于未完成状态不做改动。
可选地,在本发明上述实施例中,在对区块链上的计算任务集合进行验证的过程中,该方法还包括:获取任意一个计算节点上用于处理计算任务的应用程序;获取区块链上的历史信息,其中,历史信息至少包括:发布应用程序的程序发布对象的信用等级,发布计算任务的任务发布对象的信用等级;基于程序发布对象的信用等级和/或任务发布对象的信用等级,确定审查等级;基于审查等级,确定验证模式,其中,验证模式用于验证计算节点发布的计算结果。
在本申请实施例中,区块链的一个特定节点上部署有应用程序中心,应用程序可以是一个虚拟的中心,主要负责对将要上链的应用程序进行安全性审查以及验证并作为程序仓库,供查询、调用应用程序。该应用程序中心还设置有相关使用的历史信息的分析模块,该模块是应用程序中心的基础组件,也在应用程序中心的程序列表中。可以执行应用程序中心对链上程序和节点的分析计算任务,用于对应用程序和节点的任务发布行为/参与验证行为等操作进行分析计算,结果可作为对应用程序的安全/效率/频率等各方面的评价参考。另外,节点初始化或发布\接收任务时检查该程序在本地的状态(存在状态、版本校验码、完整性校验码)。
需要说明的是,应用程序中心具有安全性,为了保证应用程序安全性(对于安全性的审查,包括但不限于恶意侵占资源、篡改上链数据、攻击其他节点等),可以采用的方式包括但不限于:
可选地,在本发明上述实施例中,根据发布应用程序的历史信息确定程序发布对象的信用等级,根据发布计算任务的历史通过率确定任务发布对象的信用等级。
在一种可选的实施例中,分析模块可以分别根据历史发布应用程序信息/发布任务的通过率定义该应用程序发布者/任务发布者的信用评级,信用评级高的将会适当简化对程序审查的流程、降低审核门槛。
可选地,在本发明上述实施例中,程序发布对象的信用等级基于历史上发布应用程序的发布次数、程序通过率、使用次数的变化而更新。
在一种可选的实施例中,对于程序发布方,信用评级分为四级,也即A、B、C、D,信用评级会随着程序通过次数、程序使用次数的改变动态发生改变,并显示在程序中心。对于A级,其发布程序次数超过200次,程序通过率达到90%,程序使用累计次数达到5000次,并且单个程序使用累计次数达到100次以上的程序占50%。对于B级,其发布程序次数超过50次,程序通过率达到80%,程序使用累计次数达到500次,并且单个程序使用累计次数达到20次以上的程序占30%。对于C级,其发布程序次数超过10次,程序通过率达到80%,并且程序使用累计次数达到50次。D级为默认评级。
可选地,在本发明上述实施例中,任务发布对象的信用等级基于历史上发布计算任务的发布次数、任务通过次数、任务完成次数、任务完成率的变化而更新。
在一种可选的实施例中,对于任务发布方,信用评级分为四级,也即A、B、C、D,信用评级会随着通过次数、任务完成次数的改变动态发生改变,并显示在任务中心。对于A级,其发布任务次数超过5000次,任务通过率达到90%,并且任务完成率达到70%。对于B级,其发布任务次数超过500次,任务通过率达到80%,并且任务完成率达到60%。对于C级,其发布任务次数超过50次,任务通过率达到80%,并且任务完成率达到60%。D级为默认评级。
可选地,在本发明上述实施例中,基于审查等级,确定验证模式,其中,验证模式包括如下至少之一:不进行片段验证,和,不进行数据集验证;不进行片段验证,和,进行数据集验证;降低片段验证的倍数并进行片段验证,和,进行数据集验证。
在一种可选的实施例中,单个程序或任务所享权益将以应用程序中心审查时发布方信用评级为准,对于A级,其享受的权益为审查程序时,免除片段验证及demo数据验证。对于B级,其享受的权益为审查程序时,免除任务片段验证。对于C级,其享受的权益为审查程序时,片段验证降低为2.5倍demo数据量/时间。对于D级,不享受任何权益。
其中,对于程序发布方,demo数据集验证:发布方需要提供适量的demo数据集作为验证,验证程序的安全性;任务片段验证:验证8倍(其他倍数也可以,通常大于两倍都可以)于demo数据集/时间的随机任务数据作为抽检验证,验证程序的安全性。对于任务发布方,demo数据集验证:发布方需要提供适量的demo数据集作为验证,验证任务的安全性以及评估预估工作量的准确性;片段验证:验证8倍(其他倍数也可以,通常大于两倍都可以)于demo数据集/时间的真实数据作为验证,验证人的安全性以及评估预估工作量的准确性。
可选地,在本发明上述实施例中,通过如下任意一种方式验证发布应用程序的平台的安全性:检测应用程序的开源代码、使用安全验证软件验证应用程序、使用安全测试程序验证应用程序。
在一种可选的实施例中,程序发布方的安全策略如下:应用程序的开源审查;通用的计算机软件安全性验证;逻辑验证,从开源代码逻辑上评估程序是否具有恶意侵占资源、篡改上链数据、攻击其他节点等。上述三步验证通过,再根据信用评级选择执行demo数据验证和片段验证。
可选地,在本发明上述实施例中,第一计算节点接收到计算任务集合的同时,接收计算任务的计算工作量和按照预设算法验证计算结果集合的验证工作量,其中,计算工作量基于输入数据的数据量和应用程序使用的算法的复杂度确定,验证工作量基于预设总工作量和计算工作量确定。
具体地,上述的预设算法可以是哈希算法,但不仅限于此,预设总工作量可以是预期的总工作量。
在本申请实施例中,当一个计算任务的输入数据的数据量确定时,可以预估这个计算任务的工作量。当应用程序使用的算法确定时(不确定时不允许发布任务),可以计算其算法复杂度。例如一个算法的复杂度是O(n)(也即时间复杂度),则可以认为使用该应用程序来完成计算任务的工作量和输入数据量的大小成正比。应用程序可以附带一些测试用例,以供第三方验证其给出的算法复杂度,或者由领域经典问题(如循环算法、递归算法)制作标准数据,以测试应用程序的时间复杂度。
总的工作量由传统的工作量证明(可预估)(例如计算哈希函数)的工作量和区块链上发布的计算任务集合的工作量组成(计算以及组成)。为了维持总的工作量的稳定,以保证区块链出块的速度满足一定条件,传统的工作量证明的问题的难度可以根据计算任务集合的工作量大小进行自动调整。当计算任务集合的工作量很大时,将传统的工作量证明的问题的难度减小。当计算任务集合的工作量很小时,将传统的工作量证明的问题的难度增大。
具体来说,假设预期的区块链生成新区块的速度为N分钟/个区块,如果发布的计算任务预计需要X分钟才能完成,则预计传统的工作量证明需要(N-X)分钟来完成,其难度的计算公式为:基准难度值*(N-X)/N。其中基准难度值是没有发布的计算任务时,传统的工作量证明的难度值。该基准难度值每隔B个区块调整一次,其计算方式和比特币工作量证明中的难度值类似:新基准难度值=旧基准难度值*(过去B个区块完成传统的工作量证明所用的实际时长之和+过去B个区块完成发布的计算任务的实际时长之和-过去B个区块完成发布的计算任务的预期时长之和)/过去B个区块完成传统的工作量证明的预期时长之和。
其中,B的取值范围为任意数,取决个区块链的总个数,具体为5%的总区块链个数到总区块链个数为宜。
在一种可选的实施例中,任务管理中心可以使用预期的总的工作量减去计算任务集合的工作量,来获得传统的工作量证明的工作量(难度值)。如图2所示,最后将计算任务集合(包括其工作量)和传统的工作量证明的难度值打包向全网广播。
需要说明的是,如图2所示,计算节点在任务计算时,还会进行传统的工作量证明,计算结果中还包括完成传统的工作量证明的预期时长和实际时长。
通过上述步骤提供了一种基于区块链的工作量证明系统,提出了对参与计算任务的节点给出的结果的真实性进行快速验证的方法,并且明确提出了发布的计算任务的安全性的方法。可以在达到工作量证明的目的的同时,完成部分有实际意义的计算任务(例如生物信息领域的计算任务),从而提升计算资源的使用效率。
实施例2
根据本发明实施例,提供了一种计算任务的处理方法。
图3是根据本发明实施例的另一种计算任务的处理方法的流程图,如图3所示,该方法包括如下步骤:
步骤S302,区块链上的第一计算节点接收到计算任务集合,且计算任务集合中的计算任务完成的情况下,第一计算节点将计算结果集合广播至区块链中的验证节点,其中,验证节点为区块链上的任意一个计算节点或部分计算节点;
步骤S304,获取区块链上的历史信息,其中,历史信息至少包括:发布应用程序的程序发布对象的信用等级,发布计算任务的任务发布对象的信用等级,应用程序在任意一个计算节点上,且用于处理计算任务;
步骤S306,基于程序发布对象的信用等级和/或任务发布对象的信用等级,确定审查等级;
步骤S308,基于审查等级,确定验证模式,其中,验证模式用于验证计算节点发布的计算结果;
步骤S310,随机抽取第一计算节点上已经广播的部分计算结果;
步骤S312,通过对产生部分计算结果对应的计算任务进行重新计算,对随机抽取的部分计算结果进行验证。
采用本发明上述实施例,区块链上的第一节点接收到计算任务集合之后,会使用相应的应用程序对计算任务集合进行计算,得到计算结果集合,并将计算结果集合广播至验证节点,验证节点可以随机抽取部分计算结果,并通过对部分计算结果对应的计算任务进行重新计算,并比较重新计算得到的验证结果与已经广播的计算结果的一致性,从而确定第一计算节点发布的计算结果是否通过验证。与相关技术相比,由于每个节点仅抽取部分计算结果进行验证,因此,验证速度较快。而且每个验证节点采用随机验证部分计算结果的方式,参与计算任务的第一计算节点无法预知哪些计算结果会被验证,从而无法仅生成这些可能被验证的计算结果,而伪造其他部分的计算结果,提高了计算节点作弊的难度,进而解决了现有技术中在区块链中存在大量的计算任务,在计算任务的处理过程中,存在计算结果无法快速验证的技术问题。另外,通过区块链上的历史信息确定审查等级,进一步确定验证模式,从而保证应用程序的安全性(对于安全性的审查,包括但不限于恶意侵占资源、篡改上链数据、攻击其他节点等)。
可选地,根据发布应用程序的历史信息确定程序发布对象的信用等级,根据发布计算任务的历史通过率确定任务发布对象的信用等级。
可选地,本发明上述实施例中,程序发布对象的信用等级基于历史上发布应用程序的发布次数、程序通过率、使用次数的变化而更新。
可选地,本发明上述实施例中,任务发布对象的信用等级基于历史上发布计算任务的发布次数、任务通过次数、任务完成次数、任务完成率的变化而更新。
可选地,本发明上述实施例中,基于审查等级,确定验证模式,其中,验证模式包括如下至少之一:不进行片段验证,和,不进行数据集验证;不进行片段验证,和,进行数据集验证;降低片段验证的倍数并进行片段验证,和,进行数据集验证。
可选地,本发明上述实施例中,通过对产生部分计算结果对应的计算任务进行重新计算,对随机抽取的部分计算结果进行验证,包括:获取用于处理目标计算任务的应用程序所接收到的输入数据,和验证节点随机生成的参考数据,其中,目标计算任务为产生了部分计算结果的计算任务:验证节点使用应用程序对输入数据和参考数据进行计算,得到验证结果;将验证结果与第一计算节点上对应的计算任务产生的计算结果进行比对,来完成验证。
可选地,本发明上述实施例中,基于随机数生成函数生成参考数据,参考数据用于表征验证的计算结果与第一计算节点上对应的计算任务之间的对应关系。
可选地,本发明上述实施例中,区块链上进行验证的计算节点的数量超过阈值的情况下,进行验证计算节点的验证结果作为子集构成区块链的整体验证结果。
可选地,本发明上述实施例中,在区块链上的每个计算节点验证通过的情况下,确定更新后的区块为新区块。
需要说明的是,本申请实施例中的优选的实施例或技术方案与实施例1中相同,在此不做赘述。
实施例3
根据本发明实施例,提供了一种计算任务的处理装置。
图4是根据本发明实施例的一种计算任务的处理装置的示意图,如图4所示,该装置包括:
广播模块42,用于区块链上的第一计算节点接收到计算任务集合,在计算任务集合完成的情况下,第一计算节点将计算结果集合广播至区块链中的验证节点,其中,验证节点为区块链上的任意一个计算节点或部分计算节点;
抽取模块44,用于随机抽取第一计算节点上已经广播的部分计算结果;
验证模块46,用于通过对产生部分计算结果对应的计算任务进行重新计算,对随机抽取的部分计算结果进行验证;
确定模块48,用于如果重新计算得到的验证结果与已经广播的计算结果一致,则第一计算节点发布的计算结果通过验证。
可选地,本发明上述实施例中,验证模块包括:获取单元,用于获取用于处理目标计算任务的应用程序所接收到的输入数据,和验证节点随机生成的参考数据,其中,目标计算任务为产生了部分计算结果的计算任务;计算单元,用于使用应用程序对输入数据和参考数据进行计算,得到验证结果;比对单元,用于将验证结果与第一计算节点上对应的计算任务产生的计算结果进行比对,来完成验证。
可选地,本发明上述实施例中,抽取模块还用于基于随机数生成函数生成参考数据,参考数据用于表征验证的计算结果与第一计算节点上对应的计算任务之间的对应关系。
可选地,本发明上述实施例中,抽取模块还用于区块链上进行验证的计算节点的数量超过预设阈值的情况下,随机抽取预定数量的计算节点的验证结果作为子集构成区块链的整体验证结果。
可选地,在本发明上述实施例中,抽取模块还用于多次随机抽取第一计算节点上已经广播的部分计算结果;验证模块还用于对每次随机抽取的部分计算结果进行验证;确定模块还用于如果多次重新计算得到的验证结果均与已经广播的计算结果一致,则第一计算节点发布的计算结果通过验证。
可选地,在本发明上述实施例中,确定模块还用于在区块链上的每个计算节点验证通过的情况下,确定更新后的区块为新区块。
可选地,在本发明上述实施例中,该装置还包括:第一获取模块,用于获取任意一个计算节点上用于处理计算任务的应用程序;第二获取模块,用于获取区块链上的历史信息,其中,历史信息至少包括:发布应用程序的程序发布对象的信用等级,发布计算任务的任务发布对象的信用等级;第一确定模块,用于基于程序发布对象的信用等级和/或任务发布对象的信用等级,确定审查等级;第二确定模块,用于基于审查等级,确定验证模式,其中,验证模式用于验证计算节点发布的计算结果。
可选地,在本发明上述实施例中,第二确定模块还用于根据发布应用程序的历史信息确定程序发布对象的信用等级,根据发布计算任务的历史通过率确定任务发布对象的信用等级。
可选地,在本发明上述实施例中,验证模块还用于通过如下任意一种方式验证发布应用程序的平台的安全性:检测应用程序的开源代码、使用安全验证软件验证应用程序、使用安全测试程序验证应用程序。
可选地,在本发明上述实施例中,该装置还包括:接收模块,用于第一计算节点接收到计算任务集合的同时,接收计算任务的计算工作量和按照预设算法验证计算结果集合的验证工作量,其中,计算工作量基于输入数据的数据量和应用程序使用的算法的复杂度确定,验证工作量基于预设总工作量和计算工作量确定。
需要说明的是,本申请实施例中的优选的实施例或技术方案可参考实施例1,在此不做赘述。
实施例4
根据本发明实施例,提供了一种计算任务的处理装置。
图5是根据本发明实施例的另一种计算任务的处理装置的示意图,如图5所示,该装置包括:
广播模块52,用于区块链上的第一计算节点接收到计算任务集合,且计算任务集合中的计算任务完成的情况下,第一计算节点将计算结果集合广播至区块链中的验证节点,其中,验证节点为区块链上的任意一个计算节点或部分计算节点;
获取模块54,用于获取区块链上的历史信息,其中,历史信息至少包括:发布应用程序的程序发布对象的信用等级,发布计算任务的任务发布对象的信用等级,应用程序在任意一个计算节点上,且用于处理计算任务;
第一确定模块56,用于基于程序发布对象的信用等级和/或任务发布对象的信用等级,确定审查等级;
第二确定模块58,用于基于审查等级,确定验证模式,其中,验证模式用于验证计算节点发布的计算结果;
抽取模块510,用于随机抽取第一计算节点上已经广播的部分计算结果;
验证模块512,用于通过对产生部分计算结果对应的计算任务进行重新计算,对随机抽取的部分计算结果进行验证。
可选地,本发明上述实施例中,验证模块包括:获取单元,用于获取用于处理目标计算任务的应用程序所接收到的输入数据,和验证节点随机生成的参考数据,其中,目标计算任务为产生了部分计算结果的计算任务:计算单元,用于使用应用程序对输入数据和参考数据进行计算,得到验证结果;比对单元,用于将验证结果与第一计算节点上对应的计算任务产生的计算结果进行比对,来完成验证。
可选地,本发明上述实施例中,抽取模块还用于基于随机数生成函数生成参考数据,参考数据用于表征验证的计算结果与第一计算节点上对应的计算任务之间的对应关系。
可选地,本发明上述实施例中,该装置还包括:确定模块,用于在区块链上的每个计算节点验证通过的情况下,确定更新后的区块为新区块。
需要说明的是,本申请实施例中的优选的实施例或技术方案可参考实施例1,在此不做赘述。
实施例5
根据本发明实施例,提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述实施例1和2中的计算任务的处理方法。
实施例6
根据本发明实施例,提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述实施例1和2中的计算任务的处理方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (30)

1.一种计算任务的处理方法,其特征在于,包括:
区块链上的第一计算节点接收到计算任务集合,在所述计算任务集合完成的情况下,所述第一计算节点将计算结果集合广播至所述区块链中的验证节点,其中,所述验证节点为所述区块链上的任意一个计算节点或部分计算节点;
随机抽取所述第一计算节点上已经广播的部分计算结果;
通过对产生所述部分计算结果对应的计算任务进行重新计算,对所述随机抽取的所述部分计算结果进行验证;
如果重新计算得到的验证结果与已经广播的计算结果一致,则所述第一计算节点发布的计算结果通过验证。
2.根据权利要求1所述的方法,其特征在于,通过对产生所述部分计算结果对应的计算任务进行重新计算,对所述随机抽取的所述部分计算结果进行验证,包括:
获取用于处理目标计算任务的应用程序所接收到的输入数据,和所述验证节点随机生成的参考数据,其中,所述目标计算任务为产生了所述部分计算结果的计算任务;
所述验证节点使用所述应用程序对所述输入数据和所述参考数据进行计算,得到所述验证结果;
将所述验证结果与所述第一计算节点上对应的计算任务产生的计算结果进行比对,来完成所述验证。
3.根据权利要求2所述的方法,其特征在于,基于随机数生成函数生成所述参考数据,所述参考数据用于表征验证的计算结果与所述第一计算节点上对应的计算任务之间的对应关系。
4.根据权利要求1所述的方法,其特征在于,所述区块链上进行验证的计算节点的数量超过预设阈值的情况下,随机抽取预定数量的计算节点的验证结果作为子集构成所述区块链的整体验证结果。
5.根据权利要求4所述的方法,其特征在于,所述预定数量用于确定验证节点数量,其中,基于问题复杂度m和每次验证长度n确定所述验证节点数量。
6.根据权利要求1至5中任意一项所述的方法,其特征在于,在对区块链上的计算任务集合进行验证的过程中,所述方法还包括:
获取所述任意一个计算节点上用于处理所述计算任务的应用程序;
获取所述区块链上的历史信息,其中,所述历史信息至少包括:发布所述应用程序的程序发布对象的信用等级,发布所述计算任务的任务发布对象的信用等级;
基于所述程序发布对象的信用等级和/或所述任务发布对象的信用等级,确定审查等级;
基于所述审查等级,确定验证模式,其中,所述验证模式用于验证所述计算节点发布的计算结果。
7.根据权利要求6所述的方法,其特征在于,根据发布所述应用程序的历史信息确定所述程序发布对象的信用等级,根据发布计算任务的历史通过率确定所述任务发布对象的信用等级。
8.根据权利要求7所述的方法,其特征在于,所述程序发布对象的信用等级基于历史上发布应用程序的发布次数、程序通过率、使用次数的变化而更新;和/或所述任务发布对象的信用等级基于历史上发布计算任务的发布次数、任务通过次数、任务完成次数、任务完成率的变化而更新。
9.根据权利要求6所述的方法,其特征在于,基于所述审查等级,确定验证模式,其中,所述验证模式包括如下至少之一:
不进行片段验证和不进行数据集验证;
不进行片段验证和进行数据集验证;
降低片段验证的倍数并进行片段验证,和进行数据集验证。
10.根据权利要求6所述的方法,其特征在于,通过如下任意一种方式验证发布所述应用程序的平台的安全性:检测所述应用程序的开源代码、使用安全验证软件验证所述应用程序、使用安全测试程序验证所述应用程序。
11.根据权利要求1所述的方法,其特征在于,所述计算任务包括:用于处理所述计算任务的应用程序的程序信息,所述计算任务对应的输入数据的数据信息,以及完成所述计算任务所获得的虚拟资源。
12.根据权利要求11所述的方法,其特征在于,所述第一计算节点接收到所述计算任务集合的同时,接收所述计算任务的计算工作量和按照预设算法验证所述计算结果集合的验证工作量,其中,所述计算工作量基于所述输入数据的数据量和所述应用程序使用的算法的复杂度确定,所述验证工作量基于预设总工作量和所述计算工作量确定。
13.根据权利要求1所述的方法,其特征在于,多次随机抽取所述第一计算节点上已经广播的部分计算结果,并对每次随机抽取的部分计算结果进行验证,如果多次重新计算得到的验证结果均与所述已经广播的计算结果一致,则所述第一计算节点发布的计算结果通过验证。
14.根据权利要求1所述的方法,其特征在于,在所述区块链上的每个计算节点验证通过的情况下,确定更新后的区块为新区块。
15.一种计算任务的处理装置,其特征在于,包括:
广播模块,用于区块链上的第一计算节点接收到计算任务集合,在所述计算任务集合完成的情况下,所述第一计算节点将计算结果集合广播至所述区块链中的验证节点,其中,所述验证节点为所述区块链上的任意一个计算节点或部分计算节点;
抽取模块,用于随机抽取所述第一计算节点上已经广播的部分计算结果;
验证模块,用于通过对产生所述部分计算结果对应的计算任务进行重新计算,用于对所述随机抽取的所述部分计算结果进行验证;
第一确定模块,用于如果重新计算得到的验证结果与已经广播的计算结果一致,则所述第一计算节点发布的计算结果通过验证。
16.根据权利要求15所述的装置,其特征在于,所述验证模块包括:
获取单元,用于获取用于处理目标计算任务的应用程序所接收到的输入数据,和所述验证节点随机生成的参考数据,其中,所述目标计算任务为产生了所述部分计算结果的计算任务;
计算单元,用于使用所述应用程序对所述输入数据和所述参考数据进行计算,得到所述验证结果;
比对单元,用于将所述验证结果与所述第一计算节点上对应的计算任务产生的计算结果进行比对,来完成所述验证。
17.根据权利要求16所述的装置,其特征在于,所述抽取模块还用于基于随机数生成函数生成所述参考数据,所述参考数据用于表征验证的计算结果与所述第一计算节点上对应的计算任务之间的对应关系。
18.根据权利要求15所述的装置,其特征在于,所述抽取模块还用于所述区块链上进行验证的计算节点的数量超过预设阈值的情况下,随机抽取预定数量的计算节点的验证结果作为子集构成所述区块链的整体验证结果。
19.根据权利要求18所述的装置,其特征在于,所述预定数量用于确定验证节点数量,其中,基于问题复杂度m和每次验证长度n确定所述验证节点数量。
20.根据权利要求15至19中任意一项所述的装置,其特征在于,所述装置还包括:
第一获取模块,用于在对区块链上的计算任务集合进行验证的过程中,获取所述任意一个计算节点上用于处理所述计算任务的应用程序;
第二获取模块,用于获取所述区块链上的历史信息,其中,所述历史信息至少包括:发布所述应用程序的程序发布对象的信用等级,发布所述计算任务的任务发布对象的信用等级;
第二确定模块,用于基于所述程序发布对象的信用等级和/或所述任务发布对象的信用等级,确定审查等级;
第三确定模块,用于基于所述审查等级,确定验证模式,其中,所述验证模式用于验证所述计算节点发布的计算结果。
21.根据权利要求20所述的装置,其特征在于,所述第二确定模块还用于根据发布所述应用程序的历史信息确定所述程序发布对象的信用等级,根据发布计算任务的历史通过率确定所述任务发布对象的信用等级。
22.根据权利要求21所述的装置,其特征在于,所述程序发布对象的信用等级基于历史上发布应用程序的发布次数、程序通过率、使用次数的变化而更新;所述任务发布对象的信用等级基于历史上发布计算任务的发布次数、任务通过次数、任务完成次数、任务完成率的变化而更新。
23.根据权利要求20所述的装置,其特征在于,所述验证模式包括如下至少之一:不进行片段验证,和,不进行数据集验证;不进行片段验证,和,进行数据集验证;降低片段验证的倍数并进行片段验证,和,进行数据集验证。
24.根据权利要求20所述的装置,其特征在于,所述验证模块还用于通过如下任意一种方式验证发布所述应用程序的平台的安全性:检测所述应用程序的开源代码、使用安全验证软件验证所述应用程序、使用安全测试程序验证所述应用程序。
25.根据权利要求15所述的装置,其特征在于,所述计算任务包括:用于处理所述计算任务的应用程序的程序信息,所述计算任务对应的输入数据的数据信息,以及完成所述计算任务所获得的虚拟资源。
26.根据权利要求25所述的装置,其特征在于,所述装置还包括:
接收模块,用于所述第一计算节点接收到所述计算任务集合的同时,接收所述计算任务的计算工作量和按照预设算法验证所述计算结果集合的验证工作量,其中,所述计算工作量基于所述输入数据的数据量和所述应用程序使用的算法的复杂度确定,所述验证工作量基于预设总工作量和所述计算工作量确定。
27.根据权利要求15所述的装置,其特征在于,
所述抽取模块还用于多次随机抽取所述第一计算节点上已经广播的部分计算结果;
所述验证模块还用于对每次随机抽取的部分计算结果进行验证;
所述确定模块还用于如果多次重新计算得到的验证结果均与所述已经广播的计算结果一致,则所述第一计算节点发布的计算结果通过验证。
28.根据权利要求15所述的装置,其特征在于,所述确定模块还用于在所述区块链上的每个计算节点验证通过的情况下,确定更新后的区块为新区块。
29.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至14中任意一项所述的计算任务的处理方法。
30.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至14中任意一项所述的计算任务的处理方法。
CN201911285440.5A 2019-12-13 2019-12-13 计算任务的处理方法和装置、存储介质及处理器 Active CN111881147B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201911285440.5A CN111881147B (zh) 2019-12-13 2019-12-13 计算任务的处理方法和装置、存储介质及处理器
PCT/CN2020/122886 WO2021114889A1 (zh) 2019-12-13 2020-10-22 计算任务的处理方法和装置、存储介质及处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911285440.5A CN111881147B (zh) 2019-12-13 2019-12-13 计算任务的处理方法和装置、存储介质及处理器

Publications (2)

Publication Number Publication Date
CN111881147A true CN111881147A (zh) 2020-11-03
CN111881147B CN111881147B (zh) 2023-09-22

Family

ID=73153882

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911285440.5A Active CN111881147B (zh) 2019-12-13 2019-12-13 计算任务的处理方法和装置、存储介质及处理器

Country Status (2)

Country Link
CN (1) CN111881147B (zh)
WO (1) WO2021114889A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113672680A (zh) * 2021-07-19 2021-11-19 哈尔滨工业大学(深圳) 区块链中的轻量级概率验证方法、装置、区块链节点及介质
CN113938483A (zh) * 2021-10-29 2022-01-14 北京京航计算通讯研究所 一种分布式ai协同计算系统的节点身份验证方法和系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108848056A (zh) * 2018-05-03 2018-11-20 南京理工大学 基于验证的区块链共识方法
CN109993004A (zh) * 2019-04-10 2019-07-09 广州蚁比特区块链科技有限公司 基于信用机制的区块链自治方法及系统
CN110222537A (zh) * 2019-06-17 2019-09-10 北京艾摩瑞策科技有限公司 应用于区块链节的验证方法及装置
CN110225044A (zh) * 2019-06-17 2019-09-10 北京艾摩瑞策科技有限公司 在区块链上的验证方法及装置
CN110224839A (zh) * 2019-06-17 2019-09-10 北京艾摩瑞策科技有限公司 应用于区块链上的验证方法及装置
US20190287107A1 (en) * 2018-03-15 2019-09-19 International Business Machines Corporation Resource equity for blockchain
CN110287205A (zh) * 2019-06-21 2019-09-27 中国银联股份有限公司 一种区块链跨分片交易数据处理方法及装置
US20190311125A1 (en) * 2015-04-16 2019-10-10 Cloud Raxak, Inc. Trust in Block-Chain Implementations Using Compute Resource Configuration and Verification Systems and Methods

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190311125A1 (en) * 2015-04-16 2019-10-10 Cloud Raxak, Inc. Trust in Block-Chain Implementations Using Compute Resource Configuration and Verification Systems and Methods
US20190287107A1 (en) * 2018-03-15 2019-09-19 International Business Machines Corporation Resource equity for blockchain
CN108848056A (zh) * 2018-05-03 2018-11-20 南京理工大学 基于验证的区块链共识方法
CN109993004A (zh) * 2019-04-10 2019-07-09 广州蚁比特区块链科技有限公司 基于信用机制的区块链自治方法及系统
CN110222537A (zh) * 2019-06-17 2019-09-10 北京艾摩瑞策科技有限公司 应用于区块链节的验证方法及装置
CN110225044A (zh) * 2019-06-17 2019-09-10 北京艾摩瑞策科技有限公司 在区块链上的验证方法及装置
CN110224839A (zh) * 2019-06-17 2019-09-10 北京艾摩瑞策科技有限公司 应用于区块链上的验证方法及装置
CN110287205A (zh) * 2019-06-21 2019-09-27 中国银联股份有限公司 一种区块链跨分片交易数据处理方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113672680A (zh) * 2021-07-19 2021-11-19 哈尔滨工业大学(深圳) 区块链中的轻量级概率验证方法、装置、区块链节点及介质
CN113938483A (zh) * 2021-10-29 2022-01-14 北京京航计算通讯研究所 一种分布式ai协同计算系统的节点身份验证方法和系统
CN113938483B (zh) * 2021-10-29 2023-06-16 北京京航计算通讯研究所 一种分布式ai协同计算系统的节点身份验证方法和系统

Also Published As

Publication number Publication date
CN111881147B (zh) 2023-09-22
WO2021114889A1 (zh) 2021-06-17

Similar Documents

Publication Publication Date Title
CN109039648B (zh) 一种区块链的创建方法、设备及可读存储介质
Song et al. Proof-of-Contribution consensus mechanism for blockchain and its application in intellectual property protection
CN109964446B (zh) 一种基于投票的共识方法
Miller et al. Nonoutsourceable scratch-off puzzles to discourage bitcoin mining coalitions
CN110580653B (zh) 一种基于交易的区块链共识机制
US11017036B2 (en) Publicly verifiable proofs of space
US11418402B1 (en) Robust and secure proof of space based mining
WO2017082238A1 (ja) ブロックチェーン生成装置、ブロックチェーン生成方法、ブロックチェーン検証装置、ブロックチェーン検証方法およびプログラム
WO2017082237A1 (ja) ブロックチェーン生成装置、ブロックチェーン生成方法、ブロックチェーン検証装置、ブロックチェーン検証方法およびプログラム
Feng et al. Towards random-honest miners selection and multi-blocks creation: Proof-of-negotiation consensus mechanism in blockchain networks
US20190303622A1 (en) Bicameral framework for fast and tamper-resistant blockchain validation
JP2020509680A (ja) 分散型ブロックチェーンコンセンサスネットワークにおいて新しいブロックに署名する方法
CN111567009B (zh) 声明式智能合约
KR20190093012A (ko) 블록 체인 시스템에서의 블록 생성 및 검증 방법
WO2018104728A1 (en) Random number generation
Cheng et al. Polynomial-based modifiable blockchain structure for removing fraud transactions
CN110298641B (zh) 区块链的规则更新方法、装置、区块链节点及网络
CN111612600A (zh) 区块链拍卖方法、设备、存储介质及区块链系统
CN111881147B (zh) 计算任务的处理方法和装置、存储介质及处理器
Platt et al. Sybil attacks on identity-augmented Proof-of-Stake
Gupta et al. A hybrid POW-POS implementation against 51 percent attack in cryptocurrency system
CN111865595A (zh) 一种区块链的共识方法及装置
CN112235109B (zh) 一种基于区块链的账户恢复方法及系统
Hsueh et al. EPoW: Solving blockchain problems economically
Huang et al. Incentive assignment in hybrid consensus blockchain systems in pervasive edge environments

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