CN110674533A - 基于大规模科学核心计算的区块链共识激励***与方法 - Google Patents
基于大规模科学核心计算的区块链共识激励***与方法 Download PDFInfo
- Publication number
- CN110674533A CN110674533A CN201910911485.2A CN201910911485A CN110674533A CN 110674533 A CN110674533 A CN 110674533A CN 201910911485 A CN201910911485 A CN 201910911485A CN 110674533 A CN110674533 A CN 110674533A
- Authority
- CN
- China
- Prior art keywords
- calculation
- task
- worker
- punishment
- result
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于大规模科学核心计算的区块链共识激励***和方法,包括雇主,其发布计算任务,设计并提供Map和Reduce程序函数、任务运行时间限制、快速验证算法以及奖惩制度;工人,其质押城市保证金,并领取计算子任务进行计算;验证者,其根据快速验证算法对子任务计算结果进行验证计算;数据库,其存储雇主提交的计算任务数据和工人提供的计算结果数据;混淆器,对雇主、工人以及验证者的身份信息进行掩盖,并行子任务的随机分发;智能合约,其用于实现计算任务上链、计算任务分发、计算任务的计算与验证、工人的奖惩。该区块链共识激励***和方法解决了志愿者积极性不高、可能存在篡改数据、缺乏共识等问题。
Description
技术领域
本发明涉及大规模科学计算与区块链的结合应用领域,尤其涉及一种基于大规模科学核心计算的区块链共识激励***与方法。
背景技术
计算机的出现大大加速了科学计算的运算过程,然而经过几十年的发展,计算机技术在不断进步,科学计算的数据规模也在急剧增加。就目前的发展情况而言,单台计算机的性能是远远不能满足现有大规模科学计算应用需求的,例如:分析阿雷西博射电望远镜采集的无线电信号以搜寻地外文明的科学计算应用,研究蛋白质折叠、误折、聚合及由此引起的相关疾病的科学计算应用,高能物理研究粒子相互作用的格点QCD科学计算应用等等。
为解决单机性能不足的问题,***研究人员逐渐研究发展出了大规模集群、超级计算机等运算力超强的计算机结构,但使用这些大规模计算机来运行科学计算程序,不仅极其浪费水电等资源,很多科研单位根本无力承担如此高昂的硬件成本与运行维护成本。于是,研究人员想出了利用互联网的优势,将分布在世界各地千百万的个人计算机利用起来从而提供强大的计算能力,这就是大名鼎鼎的志愿计算。志愿计算利用分布式技术将世界上数量极其庞大的个人计算机或服务器整合起来为科学研究提供更强大的运算能力,而这种运算能力是通过其他方式无法获得的,且这种优势会随着时间的进展而增加,同时可缓解个人计算机闲置时浪费电力资源的问题。
这种计算模式虽然给科学计算带来了极大的便利,但因其“志愿公益性”也带来了一些问题,如志愿参加的人数并不很庞大,且因为匿名性,志愿者是不需要对项目负责的,若志愿者存在某些不端的行为(如特意使计算的结果错误),项目方也是不可以起诉或惩戒志愿者本人的。
将科学计算任务分发到不同的志愿者机器上去运行,需要保证志愿者机器运行得到的结果确实是科学计算任务所需要的,不存在欺骗,需要验证与共识。同时,提供科学计算任务的科研机构需要给予志愿者一定的奖励,以此来激发其积极性,因此这里需要有一定的经济激励机制。为解决上述出现的问题,纵观现有的技术,目前火热的区块链技术是一种去中心化的分布式账本数据库,基于密码学技术构建在点对点的分布式网络***上,并通过共识达成数据不可篡改、信息公开透明等特性的技术。区块链技术可以满足志愿计算原有的分布式特性,且其刚好可以提供防伪、共识以及激励三个特性,因此可以很好的解决上述问题。反观区块链技术,其常用的POW工作量证明共识机制因其极其耗时的哈希计算而极大地浪费电力资源。若可将科学计算中的某些核心计算任务(即计算过程耗费时间长,消耗CPU、内存等硬件资源多,例如超大规模矩阵运算)提取出来替代POW中的哈希计算,那么就可将原本纯粹浪费资源的无意义计算变成了有意义的为科学研究做贡献的科学计算。这样一来,科学计算也可服务于区块链技术。
区块链技术与科学计算领域可以相互促进、相辅相成,二者结合可以碰撞出新的火花。
发明内容
针对现有志愿计算中存在的志愿者积极性不高、可能存在篡改数据、缺乏共识等问题,以及现有POW工作量证明共识机制中的哈希运算极大浪费资源的问题,本发明提出一种基于大规模科学核心计算的区块链共识激励***与方法。
本发明的技术方案为:
一方面,一种基于大规模科学核心计算的区块链共识激励***,包括:
雇主,其发布计算任务,设计并提供Map和Reduce程序函数、任务运行时间限制、快速验证算法以及奖惩制度;
工人,其质押诚实保证金,并领取计算子任务进行计算;
验证者,其根据快速验证算法对子任务计算结果进行验证计算;
数据库,其存储雇主提交的计算任务数据和工人提供的计算结果数据;
混淆器,对雇主、工人以及验证者的身份信息进行掩盖,并行子任务的随机分发;
智能合约,其用于实现计算任务上链、计算任务分发、执行MapReduce程序、工人领取计算任务上链、数据库权限开放和时间控制、工人的奖惩。
优选地,所述智能合约包括:
计算任务上链合约,用于提取计算任务的哈希码,并将所述哈希码作为该计算任务的唯一标识码,雇主的身份信息经混淆器混淆后,与计算任务的唯一标识码生成一条交易记录,未来将记录在区块中;
MapReduce合约,用于根据雇主提供的Map程序函数,将计算任务划分为不同的可并行计算的子任务;在各子任务都得到由工人计算得出的子结果后,根据雇主提供的Reduce程序函数将各子结果进行汇总合并,得出计算任务的最终结果;
计算任务分发合约,将划分好的计算子任务分别提取哈希码,作为哈希索引;依据雇主设定的任务运行时间限制,为每一个子任务设置运行时间限制;通过混淆器将不同的子任务随机分发给不同的接受了计算任务的工人,且同一个子任务可分发给不同的工人;
工人领取计算任务上链合约,在工人领取计算子任务后,将工人经混淆器混淆后的身份信息与计算子任务的哈希索引生成一条交易记录,未来将记录在区块中;
数据库权限开放和时间控制合约,以各计算子任务的哈希索引为数据库访问索引,存放各子任务计算所需的数据,并控制何时开放给工人进行读取;当有工人计算得出子结果后,按计算子任务的哈希索引对子结果进行存放,并控制何时开放给其他相同子任务计算工人进行验证;
奖惩合约,对工人成功计算得出正确结果、得到错误结果或未在规定时间内得出结果,以及验证者验证出计算结果有错误存在的情况进行相应的奖惩,并形成相应的交易记录,未来将记录在区块中。
另一方面,一种基于大规模科学核心计算的区块链共识激励方法,实现所述区块链共识激励方法应用上述区块链共识激励***,所述区块链共识激励方法包括以下阶段:
计算任务提交阶段,雇主发布计算任务,设计并提供Map和Reduce程序函数、任务运行时间限制、快速验证算法以及奖惩制度;
任务领取与分发阶段,工人进行子任务领取,MapReduce合约依据Map程序函数对计算任务划分子任务,混淆器对子任务进行分发;
工人计算阶段,工人对领取的子任务进行计算;
结果验证阶段,验证者依据快速验证算法对计算结果进行验证;
奖惩阶段,依据计算结果和验证结果对工人和验证者按照奖惩制度进行奖励或惩罚;
子任务结果合并阶段,根据Reduce程序函数将验证正确的子任务结果进行合并,形成最终计算结果;
区块上链阶段,将最终计算结果记录在区块中,将所述区块链接到区块链***。
优选地,所述计算任务提交阶段包括以下步骤:
S101,所述雇主将计算任务、时间限制、快速验证算法、奖励金及惩罚力度形成明文信息广播到全网,并质押奖励金;
S102,所述混淆器对雇主身份信息进行混淆得到混淆身份信息;所述计算任务上链合约计算所述计算任务的哈希码,并根据所述哈希码与所述混淆信息生成一条交易信息;
S103,所述雇主将编写好的Map函数与Reduce函数提交至所述MapReduce合约;所述MapReduce合约将计算任务划分为多个可并行计算的子任务;
S104,所述雇主将计算任务所需的数据传至数据库,并触发所述数据库权限开放和时间控制合约,所述数据库权限开放和时间控制合约暂时锁定所述数据。
优选地,所述任务领取与分发阶段包括以下步骤:
S201,所述工人收到广播的明文信息后,对内容进行读取并根据自身条件做出决定;愿意接受计算任务的工人向提交确认领取请求,并质押数额大于雇主设置的惩罚数额的诚实保证金;
S202,所述计算任务分发合约对各子任务分别提取哈希码作为哈希索引,并依据所述雇主设定的时间限制为每个子任务设置一个运行时间限制;所述混淆器将不同的子任务随机分发给不同的接受计算任务的工人;
S203,所述数据库合约根据各子任务的哈希索引对其各自所需的数据建立访问索引,并对具有相同子任务哈希索引的工人开放对应的数据访问权限。
优选地,所述工人计算阶段包括以下步骤:
S301,所述工人访问数据库并获取相应数据后,开始进行子任务的计算;
S302,所述工人根据自己计算任务的状态,执行验证操作或接受惩罚;若没有工人计算出结果,则进行惩罚阶段,接受惩罚;若有一个工人Me计算出一个结果,则执行以下步骤:
S302-1,工人Me将计算结果明文用自己的私钥进行签名后并依据子任务哈希索引将签名后的计算结果存储到相应的数据库访问索引位置上;触发数据库合约对签名后的计算结果进行锁定;
S302-2,工人Me向全网广播包含计算结果和公钥的明文信息;其他具有相同子任务哈希索引的工人收到所述明文信息后便停止自己的计算;数据库合约依据所述明文信息开放计算结果的访问;
S302-3,其他工人去数据库相应索引位置访问结果,并利用工人Me的公钥从中解得计算结果,然后开始下一阶段的验证工作。
优选地,所述结果验证阶段包括以下步骤:
S401,***若没有收到任何一个子任务的可能结果,则触发所述奖惩合约直接转到奖惩阶段,此时工人可选择保存自己当前的计算进度;
S402,***每收到任一子任务的可能结果,均按以下步骤进行验证:
S402-1,与工人Me具有相同子任务哈希索引的其他工人作为验证者停止自己的计算过程,可选择保存自己当前的计算进度,并从所述数据库中解得计算结果后,开始用雇主提供的快速验证算法对计算结果进行验证;
S402-2,若全部验证者对此计算结果验证全部通过,说明共识达成,则触发奖惩合约,跳转到奖惩阶段;
S402-3,若其中任一验证者Mb对此计算结果验证有异议,说明共识未达成,则进行以下步骤:
验证者Mb将问题位置以明文形式广播给其他验证者;其他验证者就此问题位置开始验证;
若其他验证者全部声明此问题位置不存在错误,则触发奖惩合约,跳转到奖惩阶段;
若其他验证者全部声明此问题位置存在错误,则触发奖惩合约,跳转到奖惩阶段;
若有部分验证者声明此问题位置存在错误,则触发奖惩合约,跳转到奖惩阶段。
优选地,所述奖惩阶段包括:
当***判定子任务没有计算结果得出,则对所有进行此子任务的所有工人依雇主设定的惩罚力度做出惩罚,并形成相应的交易记录,然后,***跳转到任务领取与分发阶段,适当增加此子任务的运行时间限制,由工人们自己选择重新或继续计算;
***判定工人Me的计算结果正确,则依所述雇主设定的奖金对工人Me给予奖励,并形成相应的交易记录;
***判定验证者Mb发现的问题位置并不存在错误,则依所述雇主设定的惩罚力度对验证者Mb做出惩罚,并形成相应的交易记录;然后,***跳转到结果验证阶段,对此子任务重新进行验证;
***判定验证者Mb发现的问题位置确实存在错误,则依所述雇主设定的奖励力度对验证者Mb给予奖励,及对工人Me做出相应程度的惩罚,并形成各自相应的交易记录;然后,***跳转到任务领取与分发阶段,由工人们自己选择重新或继续计算;
***判定验证者Mb发现的问题位置可能存在错误,则依所述雇主设定的奖励力度对验证者给予奖励,并形成相应的交易记录;然后,***跳转到任务领取与分发阶段,由工人们自己选择重新或继续计算。
优选地,所述子任务结果合并阶段包括:
每个子任务均得出正确计算结果后,将所述正确计算结果提交至MapReduce合约;MapReduce合约中的Reduce函数将所有正确计算结果进行合并得出整个计算任务的最终结果。
优选地,所述区块上链阶段包括:
在获得整个计算任务的最终结果后,将最终结果记录到区块中,并将该区块链接到区块链***中,所述区块包括区块体和区块头,其中,所述区块体包括交易记录,所述交易记录通过Merkel树结构进行组织;
所述区块头包括区块链***版本信息、前一区块头的头哈希、时间戳、各子任务的正确计算结果及其所属工人信息、整个计算任务的最终结果、Merkel根以及由区块体Merkel树的顶点哈希与区块头中其它信息一起进行2次哈希计算得到的头哈希。
与现有技术相比,本发明具有的有益效果为:
本发明首次将将科学计算领域与区块链技术进行了结合,解决了彼此存在的问题,两者相辅相成、相得益彰;
本发明将区块链技术应用于志愿计算,解决了其因志愿公益性而存在欺骗、缺乏共识与激励的问题痛点;
本发明首次将大规模科学核心计算应用于区块链技术,替代区块链目前常用的POW工作量证明共识机制,使得原本用于无意义哈希计算而要浪费的算力和电力资源可用在有意义的科学难题求解上;
区块链***作为一个去中心化的***具备一定的自治性,其不由一个独立的第三方进行操控维护,而是由众多的普通用户一起来构建维护,从而省去了庞杂的***维护成本;有计算任务需求的用户可利用此区块链***实现问题求解,而无需自己耗费多余财力购买先进硬件来提供足额的算力;***中提供算力的普通用户因有机会可得到激励奖励,从而会诚实地进行计算任务的求解。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动前提下,还可以根据这些附图获得其他附图。
图1为基于大规模科学核心计算的区块链共识激励***的结构示意图;
图2为利用区块链共识激励***进行计算任务求解总流程图;
图3为利用区块链共识激励***进行计算任务提交阶段流程图;
图4为利用区块链共识激励***进行计算任务领取及分发阶段流程图;
图5为利用区块链共识激励***进行计算任务工人计算阶段流程图;
图6为利用区块链共识激励***进行计算任务验证者验证阶段流程图;
图7为区块链***区块结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
针对现有志愿计算中存在的志愿者积极性不高、可能存在篡改数据、缺乏共识等问题,以及现有POW工作量证明共识机制中的哈希运算极大浪费资源的问题,本实施例提供了一种基于大规模科学核心计算的区块链共识激励***,如图1所示,该区块链共识激励***包括雇主模块、工人模块、验证者模块、混淆器模块、数据库模块以及智能合约模块六个模块,这六个模块的协同配合的作用下,实现了大规模数据计算任务的求解,且能够避免篡改数据,对工人进行奖惩,降低维护成本。
雇主模块是为雇主设定的模块,雇主即为有科学核心计算的需求但算力不足而发布计算任务者,区块链共识激励***中的雇主需要满足以下要求:
(a)雇主需根据MapReduce框架原则设计Map和Reduce程序函数,以便将大规模计算需求划分为若干可并行计算的部分。
(b)同时,还需根据算法复杂度原则设计评测算法评估出每部分计算程序的理论时间下限,可适当根据自己的应用需求增加时间以设置运行时间限制。
(c)雇主还需提供对各子任务进行快速验证的算法。
(d)雇主提供计算任务的同时也要给出相应的得出正确计算结果的价值奖励,例如,比特币;设置其它情况的奖惩力度,例如,正确结果奖励的0.5%,以惩处未在规定时间内计算出结果、结果出错或故意作恶的工人行为以及奖励验证出计算结果有错误存在的验证者。
工人模块是为工人设定的模块,工人即为可提供额外算力而接收计算任务者。区块链共识激励***中的工人需满足以下要求:
(a)工人在加入某个计算任务中时,需质押数额大于雇主设置的惩罚数额的诚实保证金,以便在出现未在规定时间内计算出结果、结果出错或故意作恶行为时对雇主进行赔偿。
(b)在工人确认加入到某个计算任务中后,由相应的智能合约将雇主划分好的计算子任务随机分配给工人。不同工人领取到相同的计算子任务,会得到智能合约相应分配的相同索引标识。
验证者模块为验证者设定的模块。验证者亦为接收了计算任务的工人,但未在规定时间内计算出结果,而对某个工人在规定时间内得出的计算结果进行快速验证。验证者需满足以下要求:
(a)验证者根据雇主提供的快速验证算法对某一工人计算得出的结果进行验证。
(b)某一验证者在声明计算结果有错误后,经由其他验证者集体否决后,要受到相应的惩罚。
数据库模块。数据库用于存放雇主提交的计算任务所涉及的庞大数据及工人提交的计算结果。区块链共识激励***中的数据库需满足以下要求:
(a)数据库的开放有相应的权限和时间控制,具体由相应的智能合约来控制。
混淆器模块。混淆器会将雇主、工人以及验证者的身份信息进行掩盖,避免他们之间进行串通共谋;还用于为并行子任务的分发增添随机性。具体说明如下:
由于雇主与工人、雇主与验证者或工人与验证者之间都有可能串谋作恶,所以借助混淆器可以将彼此的身份信息进行掩盖,达到计算任务从发布到结束,以及期间的奖惩都是在匿名状态下完成的。
为了避免工人与其所领取的计算任务之间产生关联性,混淆器可在相关智能合约驱动下随机地给工人分配计算子任务。
本实施例中,混淆器可利用TOR技术进行实现。
智能合约模块。智能合约为通过程序代码来实现一些特定功能,具体地,根据实现功能,智能合约主要包含以下几种合约:
(a)计算任务上链合约:提取计算任务的sha256哈希码,并将此哈希码作为该计算任务的唯一标识码。雇主的身份信息经混淆器匿名后,与计算任务哈希码一同生成一条交易记录,未来将记录在区块中。
(b)MapReduce合约:根据雇主提供的Map程序函数,将计算任务划分为不同的可并行计算的子任务;在各子任务都得到由工人计算得出的结果后,根据雇主提供的Reduce程序函数将各结果进行汇总合并,得出总计算任务的最终结果。
(c)计算任务分发合约:将划分好的计算子任务分别提取sha256哈希码,作为哈希索引;依据雇主评测设定的时间限制,为每一个子任务设置运行时间限制;通过混淆器将不同的子任务随机分发给不同的接受了计算任务的工人,且同一个子任务可分发给不同的工人。
(d)工人领取计算任务上链合约:在工人接收到分发的计算子任务后,将工人经混淆器混淆后的身份信息与计算子任务的哈希索引一同生成一条交易记录,未来将记录在区块中。
(e)数据库权限开放和时间控制合约:以下简称数据库合约,其以各计算子任务的哈希索引为数据库访问索引,存放各子任务计算所需的数据,并控制何时开放给工人进行读取。当有工人计算得出结果后,按计算子任务的哈希索引进行存放,并控制何时开放给其他相同子任务计算工人(此时其为验证者)进行验证。
(f)奖惩合约:对工人成功计算得出正确结果、得到错误结果或未在规定时间内得出结果,以及验证者验证出计算结果有错误存在的情况进行相应的奖惩,并形成相应的交易记录,未来将记录在区块中。
在上述区块链共识激励***的基础上,实施例还提供了一种基于大规模科学核心计算的区块链共识激励方法,如图2所示,包括以下计算任务提交阶段、任务领取与分发阶段、工人计算阶段、结果验证阶段、奖惩阶段、子任务结果合并阶段以及区块上链阶段7个阶段,下面针对每个阶段进行详细说明。
阶段一:任务提交阶段
雇主E有一超大规模矩阵相乘的计算任务X,但由于没有足够的硬件算力,故向上述区块链共识激励***发出了请求,进行任务广播和提交,如图3所示,具体步骤包括:
S101,雇主将计算任务X的内容、时间限制T、快速验证算法(如Freivalds’Algorithm)、奖励金(如2个比特币)及惩罚力度(如奖励金的0.5%)等明文信息广播到全网,并质押奖励金2个比特币;
S102,混淆器将雇主E的身份进行混淆,得混淆身份信息Em;计算任务上链合约提取计算任务的哈希码H(X),并将该哈希码H(X)与雇主的混淆身份信息Em一同生成一条交易信息T(XEm);
S103,雇主E将自己编写好的Map函数Map_X与Reduce函数Reduce_X提交至MapReduce合约;MapReduce合约据此将计算任务X划分为m个可并行计算的子任务X1、X2、······、Xm;
S104,雇主E将计算任务X所需的数据D传至数据库中,并触发数据库合约,暂时将数据锁定,至此,任务提交完成。
阶段二:任务领取与分发阶段
在阶段一任务提交阶段的基础上,进行任务领取与分发,如图4所示,具体步骤包括:
S201,工人们收到广播的明文信息后,对内容进行读取并根据自身条件做出决定。
假设有M1、M2、···M10m等10m个工人愿意接受此计算任务,并向***提交了确认领取请求,分别质押了数额大于雇主E设置的惩罚数额(0.01个比特币)的诚实保证金。
S202,***触发计算任务分发合约,此计算任务分发合约对各子任务(X1、X2、···Xm)分别提取哈希码作为哈希索引(H(X1)、H(X2)、···H(Xm)),并依据雇主评测设定的时间限制,为每个子任务设置一个运行时间限制(L(X1)、L(X2)、···L(Xm)),然后通过混淆器将不同的子任务随机分发给不同的接受了计算任务的工人(M1、M2、···M10m);
S203,***触发数据库合约,此数据库合约根据各子任务的哈希索引对其各自所需的数据(D1、D2···Dm)建立访问索引,并对具有相同子任务哈希索引的工人开放对应的数据访问权限。
阶段三:工人计算阶段
工人计算阶段主要是工人领取计算子任务后进行计算,这里以其中一个子任务Xn(1≤n≤M)被混淆器随机分发给Ma、Mb、Mc、Md、Me、Mf、Mg、Mh、Mi、Mj(1<=a,b,c,···j<=10m)10个工人为例来说明,如图5所示,具体过程包括:
S301,这10个工人按访问索引访问数据库并获取相应数据Dn后,开始进行子任务Xn的计算;
S302,工人根据自己计算任务的状态,执行验证操作或接受惩罚。
在限定时间内,对于这个10个工人而言,可能有一个工人计算出一个结果,也可能没有工人计算出结果。
当10个工人均未计算出一个结果,则进行惩罚阶段,接受惩罚。
假设其中的一个工人Me计算出了一个结果R,则继续进行以下的步骤:
(a)工人Me先将计算结果R明文用自己的私钥Kpri进行签名并依据子任务哈希索引H(Xn)将签名后的计算结果存储到相应的数据库访问索引位置上;触发数据库合约将签名后的计算结果进行锁定;
(b)工人Me再向全网广播一条明文信息,格式为“工人Me计算出子任务<H(Xn)>的结果+公钥Kpub”;其他具有相同子任务哈希索引的工人收到此信息后便停止自己的计算;数据库合约开放计算结果R的访问;
(c)其他工人去数据库相应索引位置访问结果R,并利用计算出结果R的工人Me的公钥Kpub从中解得计算结果明文,然后开始下一阶段的验证工作。
阶段四:结果验证阶段
在工人计算阶段结束后,需要对工人的计算结果进行验证,如图6所示,针对工人Me计算出子任务Xn的一个结果Rn的验证共识过程进行说明,具体过程包括:
S401,若此阶段***没有收到任何一个子任务的可能结果,则触发奖惩合约,直接转到奖惩阶段,此时工人们(Ma、Mb、···Mj)可选择保存自己当前的计算进度;
S402,***收到了工人Me计算出的一个可能结果Rn,按以下步骤进行验证:
S4021,除工人Me之外的其他工人停止自己的计算过程,此时成为验证者,可选择保存自己当前的计算进度,从数据库中解得计算结果明文后,开始用雇主E提供的快速验证算法对其进行验证;
S4022,若全部验证者对此计算结果验证全部通过,说明共识达成,则触发奖惩合约,跳转到奖惩阶段;
S4023,若其中一个验证者(例如Mb)对此计算结果验证有异议,说明共识未达成,则进行以下步骤:
S4023-1,验证者Mb将问题位置(例如第k行m列的结果Rn(k*m))以明文形式广播给其他验证者;
S4023-2,其他验证者就此问题位置Rn(k*m)开始验证;
S4023-3,若其他验证者全部声明此问题位置Rn(k*m)不存在错误,则触发奖惩合约,跳转到奖惩阶段;
S4023-4,若其他验证者全部声明此问题位置Rn(k*m)存在错误,则触发奖惩合约,跳转到奖惩阶段;
S4023-5,若有部分验证者声明此问题位置Rn(k*m)存在错误,则触发奖惩合约,跳转到奖惩阶段。
阶段五:奖惩阶段
针对验证者对工人Me计算得出的结果Rn的不同验证情况,***的判别和奖惩情况也不同,具体包括:
对于S401的情况,***判定子任务Xn没有计算结果得出,则对所有进行子任务Xn的所有工人依雇主设定的惩罚力度做出惩罚(0.01个比特币),并形成相应的交易记录Tpunish((Ma+Mb+···+Mj)*0.01BTC);接下来,***跳转到S202,适当增加此子任务的运行时间限制,由工人们自己选择重新或继续计算。
对于S4022的情况,***判定得出计算结果R的工人Me计算正确,则依雇主设定的奖金对此工人给予奖励(2个比特币),并形成相应的交易记录Treward(Me*2BTC);接下来,***跳转到子任务结果合并阶段。
对于S4023-3的情况,***判定验证者Mb发现的问题位置Rn(k*m)并不存在错误,则依雇主设定的惩罚力度对此验证者做出惩罚(0.01个比特币),并形成相应的交易记录Tpunish(Mb*0.01BTC);接下来,***跳转到S402阶段,对此子任务重新进行验证。
对于S4023-4的情况,***判定验证者Mb发现的问题位置Rn(k*m)确实存在错误,则依雇主设定的奖励力度对此验证者给予奖励(0.01个比特币),及对得出计算结果Rn的工人Me做出相应程度的惩罚(0.01个比特币),并形成各自相应的交易记录Treward(Mb*0.01BTC)和Tpunish(Me*0.01BTC);接下来,***跳转到S202,由工人们自己选择重新或继续计算。
对于S4023-5的情况,***判定验证者Mb发现的问题位置Rn(k*m)可能存在错误,则依雇主设定的奖励力度对此验证者给予奖励(0.01个比特币),并形成相应的交易记录Treward(Mb*0.01BTC);接下来,***跳转到S202阶段,由工人们自己选择重新或继续计算。
阶段六:子任务结果合并阶段
在进行奖惩结束后,则进行子任务结果合并,对于计算任务X而言,当其所有的子任务X1、X2、···Xm都通过验证得到正确计算结果(R1、R2、···Rm)后,均提交至MapReduce合约;MapReduce合约中的Reduce函数Reduce_X将所有正确计算结果进行合并得出整个计算任务的最终结果R。
阶段七:区块上链阶段
经过以上阶段计算任务X得到最终正确结果R后,需将其记录到一个区块中,并链接到区块链***中。同时,区块还需包含其它的相关信息,分为区块体和区块头两部分,如图7所示。
区块体包含以上各阶段过程中形成的各项交易记录(如T(XEm)、Treward(Me*2BTC)等)通过Merkel树结构进行组织;
区块头包含:区块链***版本信息、前一区块头的头哈希、时间戳、各子任务的正确计算结果及其所属工人信息、整个任务的最终计算结果、Merkel根、头哈希:由区块体Merkel树的顶点哈希与区块头中其它信息一起进行两次sha256得到的哈希值。
以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于大规模科学核心计算的区块链共识激励***,其特征在于,包括:
雇主,其发布计算任务,设计并提供Map和Reduce程序函数、任务运行时间限制、快速验证算法以及奖惩制度;
工人,其质押诚实保证金,并领取计算子任务进行计算;
验证者,其根据快速验证算法对子任务计算结果进行验证计算;
数据库,其存储雇主提交的计算任务数据和工人提供的计算结果数据;
混淆器,对雇主、工人以及验证者的身份信息进行掩盖,并行子任务的随机分发;
智能合约,其用于实现计算任务上链、计算任务分发、执行MapReduce程序、工人领取计算任务上链、数据库权限开放和时间控制、工人的奖惩。
2.如权利要求1所述的基于大规模科学核心计算的区块链共识激励***,其特征在于,所述智能合约包括:
计算任务上链合约,用于提取计算任务的哈希码,并将所述哈希码作为该计算任务的唯一标识码,雇主的身份信息经混淆器混淆后,与计算任务的唯一标识码生成一条交易记录,未来将记录在区块中;
MapReduce合约,用于根据雇主提供的Map程序函数,将计算任务划分为不同的可并行计算的子任务;在各子任务都得到由工人计算得出的子结果后,根据雇主提供的Reduce程序函数将各子结果进行汇总合并,得出计算任务的最终结果;
计算任务分发合约,将划分好的计算子任务分别提取哈希码,作为哈希索引;依据雇主设定的任务运行时间限制,为每一个子任务设置运行时间限制;通过混淆器将不同的子任务随机分发给不同的接受了计算任务的工人,且同一个子任务可分发给不同的工人;
工人领取计算任务上链合约,在工人领取计算子任务后,将工人经混淆器混淆后的身份信息与计算子任务的哈希索引生成一条交易记录,未来将记录在区块中;
数据库权限开放和时间控制合约,以各计算子任务的哈希索引为数据库访问索引,存放各子任务计算所需的数据,并控制何时开放给工人进行读取;当有工人计算得出子结果后,按计算子任务的哈希索引对子结果进行存放,并控制何时开放给其他相同子任务计算工人进行验证;
奖惩合约,对工人成功计算得出正确结果、得到错误结果或未在规定时间内得出结果,以及验证者验证出计算结果有错误存在的情况进行相应的奖惩,并形成相应的交易记录,未来将记录在区块中。
3.一种基于大规模科学核心计算的区块链共识激励方法,其特征在于,实现所述区块链共识激励方法应用权利要求1或2所述的区块链共识激励***,所述区块链共识激励方法包括以下阶段:
计算任务提交阶段,雇主发布计算任务,设计并提供Map和Reduce程序函数、任务运行时间限制、快速验证算法以及奖惩制度;
任务领取与分发阶段,工人进行子任务领取,MapReduce合约依据Map程序函数对计算任务划分子任务,混淆器对子任务进行分发;
工人计算阶段,工人对领取的子任务进行计算;
结果验证阶段,验证者依据快速验证算法对计算结果进行验证;
奖惩阶段,依据计算结果和验证结果对工人和验证者按照奖惩制度进行奖励或惩罚;
子任务结果合并阶段,根据Reduce程序函数将验证正确的子任务结果进行合并,形成最终计算结果;
区块上链阶段,将最终计算结果记录在区块中,将所述区块链接到区块链***。
4.如权利要求3所述的基于大规模科学核心计算的区块链共识激励方法,其特征在于,所述计算任务提交阶段包括以下步骤:
S101,所述雇主将计算任务、时间限制、快速验证算法、奖励金及惩罚力度形成明文信息广播到全网,并质押奖励金;
S102,所述混淆器对雇主身份信息进行混淆得到混淆身份信息;所述计算任务上链合约计算所述计算任务的哈希码,并根据所述哈希码与所述混淆信息生成一条交易信息;
S103,所述雇主将编写好的Map函数与Reduce函数提交至所述MapReduce合约;所述MapReduce合约将计算任务划分为多个可并行计算的子任务;
S104,所述雇主将计算任务所需的数据传至数据库,并触发所述数据库权限开放和时间控制合约,所述数据库权限开放和时间控制合约暂时锁定所述数据。
5.如权利要求4所述的基于大规模科学核心计算的区块链共识激励方法,其特征在于,所述任务领取与分发阶段包括以下步骤:
S201,所述工人收到广播的明文信息后,对内容进行读取并根据自身条件做出决定;愿意接受计算任务的工人向提交确认领取请求,并质押数额大于雇主设置的惩罚数额的诚实保证金;
S202,所述计算任务分发合约对各子任务分别提取哈希码作为哈希索引,并依据所述雇主设定的时间限制为每个子任务设置一个运行时间限制;所述混淆器将不同的子任务随机分发给不同的接受计算任务的工人;
S203,所述数据库合约根据各子任务的哈希索引对其各自所需的数据建立访问索引,并对具有相同子任务哈希索引的工人开放对应的数据访问权限。
6.如权利要求4所述的基于大规模科学核心计算的区块链共识激励方法,其特征在于,所述工人计算阶段包括以下步骤:
S301,所述工人访问数据库并获取相应数据后,开始进行子任务的计算;
S302,所述工人根据自己计算任务的状态,执行验证操作或接受惩罚;若没有工人计算出结果,则进行惩罚阶段,接受惩罚;若有一个工人Me计算出一个结果,则执行以下步骤:
S302-1,工人Me将计算结果明文用自己的私钥进行签名后并依据子任务哈希索引将签名后的计算结果存储到相应的数据库访问索引位置上;触发数据库合约对签名后的计算结果进行锁定;
S302-2,工人Me向全网广播包含计算结果和公钥的明文信息;其他具有相同子任务哈希索引的工人收到所述明文信息后便停止自己的计算;数据库合约依据所述明文信息开放计算结果的访问;
S302-3,其他工人去数据库相应索引位置访问结果,并利用工人Me的公钥从中解得计算结果,然后开始下一阶段的验证工作。
7.如权利要求4所述的基于大规模科学核心计算的区块链共识激励方法,其特征在于,所述结果验证阶段包括以下步骤:
S401,***若没有收到任何一个子任务的可能结果,则触发所述奖惩合约直接转到奖惩阶段,此时工人可选择保存自己当前的计算进度;
S402,***每收到任一子任务的可能结果,均按以下步骤进行验证:
S402-1,与工人Me具有相同子任务哈希索引的其他工人作为验证者停止自己的计算过程,可选择保存自己当前的计算进度,并从所述数据库中解得计算结果后,开始用雇主提供的快速验证算法对计算结果进行验证;
S402-2,若全部验证者对此计算结果验证全部通过,说明共识达成,则触发奖惩合约,跳转到奖惩阶段;
S402-3,若其中任一验证者Mb对此计算结果验证有异议,说明共识未达成,则进行以下步骤:
验证者Mb将问题位置以明文形式广播给其他验证者;其他验证者就此问题位置开始验证;
若其他验证者全部声明此问题位置不存在错误,则触发奖惩合约,跳转到奖惩阶段;
若其他验证者全部声明此问题位置存在错误,则触发奖惩合约,跳转到奖惩阶段;
若有部分验证者声明此问题位置存在错误,则触发奖惩合约,跳转到奖惩阶段。
8.如权利要求4所述的基于大规模科学核心计算的区块链共识激励方法,其特征在于,所述奖惩阶段包括:
当***判定子任务没有计算结果得出,则对所有进行此子任务的所有工人依雇主设定的惩罚力度做出惩罚,并形成相应的交易记录,然后,***跳转到任务领取与分发阶段,适当增加此子任务的运行时间限制,由工人们自己选择重新或继续计算;
***判定工人Me的计算结果正确,则依所述雇主设定的奖金对工人Me给予奖励,并形成相应的交易记录;
***判定验证者Mb发现的问题位置并不存在错误,则依所述雇主设定的惩罚力度对验证者Mb做出惩罚,并形成相应的交易记录;然后,***跳转到结果验证阶段,对此子任务重新进行验证;
***判定验证者Mb发现的问题位置确实存在错误,则依所述雇主设定的奖励力度对验证者Mb给予奖励,及对工人Me做出相应程度的惩罚,并形成各自相应的交易记录;然后,***跳转到任务领取与分发阶段,由工人们自己选择重新或继续计算;
***判定验证者Mb发现的问题位置可能存在错误,则依所述雇主设定的奖励力度对验证者给予奖励,并形成相应的交易记录;然后,***跳转到任务领取与分发阶段,由工人们自己选择重新或继续计算。
9.如权利要求4所述的基于大规模科学核心计算的区块链共识激励方法,其特征在于,所述子任务结果合并阶段包括:
每个子任务均得出正确计算结果后,将所述正确计算结果提交至MapReduce合约;MapReduce合约中的Reduce函数将所有正确计算结果进行合并得出整个计算任务的最终结果。
10.如权利要求4所述的基于大规模科学核心计算的区块链共识激励方法,其特征在于,所述区块上链阶段包括:
在获得整个计算任务的最终结果后,将最终结果记录到区块中,并将该区块链接到区块链***中,所述区块包括区块体和区块头,其中,所述区块体包括交易记录,所述交易记录通过Merkel树结构进行组织;
所述区块头包括区块链***版本信息、前一区块头的头哈希、时间戳、各子任务的正确计算结果及其所属工人信息、整个计算任务的最终结果、Merkel根以及由区块体Merkel树的顶点哈希与区块头中其它信息一起进行2次哈希计算得到的头哈希。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910911485.2A CN110674533B (zh) | 2019-09-25 | 2019-09-25 | 基于大规模科学核心计算的区块链共识激励***与方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910911485.2A CN110674533B (zh) | 2019-09-25 | 2019-09-25 | 基于大规模科学核心计算的区块链共识激励***与方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110674533A true CN110674533A (zh) | 2020-01-10 |
CN110674533B CN110674533B (zh) | 2021-04-06 |
Family
ID=69078954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910911485.2A Active CN110674533B (zh) | 2019-09-25 | 2019-09-25 | 基于大规模科学核心计算的区块链共识激励***与方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110674533B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111445163A (zh) * | 2020-04-15 | 2020-07-24 | 中国银行股份有限公司 | 一种任务发布方法、任务处理方法及装置 |
CN111475287A (zh) * | 2020-03-24 | 2020-07-31 | 浙江大学 | 基于区块链的多机器人协作多目标点负载均衡搜索方法及*** |
CN111563237A (zh) * | 2020-03-24 | 2020-08-21 | 博雅正链(北京)科技有限公司 | 一种智能合约安全增强方法 |
CN112131304A (zh) * | 2020-02-10 | 2020-12-25 | 北京天德科技有限公司 | 一种基于区块链技术的新型计算及存储架构 |
CN112835855A (zh) * | 2021-02-22 | 2021-05-25 | 北京众享比特科技有限公司 | 一种基于区块链的文件存储方法和*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107864198A (zh) * | 2017-11-07 | 2018-03-30 | 济南浪潮高新科技投资发展有限公司 | 一种基于深度学习训练任务的区块链共识方法 |
US20180144340A1 (en) * | 2016-11-21 | 2018-05-24 | International Business Machines Corporation | Triggering actions responsive to blockchain transactions |
CN108647974A (zh) * | 2018-05-11 | 2018-10-12 | 北京奇虎科技有限公司 | 一种基于区块链的信息验证方法、装置及*** |
CN108650291A (zh) * | 2018-03-26 | 2018-10-12 | 南京思利华信息科技有限公司 | 一种基于算力的gpu任务共识方法及装置 |
CN108769145A (zh) * | 2018-05-11 | 2018-11-06 | 北京奇虎科技有限公司 | 一种资源贡献量证明方法、装置及*** |
-
2019
- 2019-09-25 CN CN201910911485.2A patent/CN110674533B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180144340A1 (en) * | 2016-11-21 | 2018-05-24 | International Business Machines Corporation | Triggering actions responsive to blockchain transactions |
CN107864198A (zh) * | 2017-11-07 | 2018-03-30 | 济南浪潮高新科技投资发展有限公司 | 一种基于深度学习训练任务的区块链共识方法 |
CN108650291A (zh) * | 2018-03-26 | 2018-10-12 | 南京思利华信息科技有限公司 | 一种基于算力的gpu任务共识方法及装置 |
CN108647974A (zh) * | 2018-05-11 | 2018-10-12 | 北京奇虎科技有限公司 | 一种基于区块链的信息验证方法、装置及*** |
CN108769145A (zh) * | 2018-05-11 | 2018-11-06 | 北京奇虎科技有限公司 | 一种资源贡献量证明方法、装置及*** |
Non-Patent Citations (1)
Title |
---|
元家昕: "TrueBit***解读", 《简书》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112131304A (zh) * | 2020-02-10 | 2020-12-25 | 北京天德科技有限公司 | 一种基于区块链技术的新型计算及存储架构 |
CN112131304B (zh) * | 2020-02-10 | 2021-05-04 | 北京天德科技有限公司 | 一种基于区块链技术的新型计算及存储架构 |
CN111475287A (zh) * | 2020-03-24 | 2020-07-31 | 浙江大学 | 基于区块链的多机器人协作多目标点负载均衡搜索方法及*** |
CN111563237A (zh) * | 2020-03-24 | 2020-08-21 | 博雅正链(北京)科技有限公司 | 一种智能合约安全增强方法 |
CN111475287B (zh) * | 2020-03-24 | 2023-05-02 | 浙江大学 | 基于区块链的多机器人协作多目标点负载均衡搜索方法及*** |
CN111563237B (zh) * | 2020-03-24 | 2023-08-08 | 博雅正链(北京)科技有限公司 | 一种智能合约安全增强方法 |
CN111445163A (zh) * | 2020-04-15 | 2020-07-24 | 中国银行股份有限公司 | 一种任务发布方法、任务处理方法及装置 |
CN112835855A (zh) * | 2021-02-22 | 2021-05-25 | 北京众享比特科技有限公司 | 一种基于区块链的文件存储方法和*** |
Also Published As
Publication number | Publication date |
---|---|
CN110674533B (zh) | 2021-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110674533B (zh) | 基于大规模科学核心计算的区块链共识激励***与方法 | |
Xu et al. | Improvement of the DPoS consensus mechanism in blockchain based on vague sets | |
Zhuang et al. | Proof of reputation: A reputation-based consensus protocol for blockchain based systems | |
KR102250810B1 (ko) | 트랜잭션 증명 방식의 합의 알고리즘이 적용된 블록체인 시스템 및 그 방법 | |
CN111090892B (zh) | 一种基于vrf和门限签名的区块链共识方法和装置 | |
US20190370793A1 (en) | Hybrid consensus for blockchain using proof of work and proof of stake | |
De Pedro et al. | Witnet: A decentralized oracle network protocol | |
US10708071B1 (en) | Consensus protocols in distributed computing systems | |
CN112073483B (zh) | 基于信誉与委员会背书机制的权威证明共识方法及*** | |
Liu et al. | Fork-free hybrid consensus with flexible proof-of-activity | |
Das et al. | Yoda: Enabling computationally intensive contracts on blockchains with byzantine and selfish nodes | |
CN111563786A (zh) | 一种基于区块链的虚拟电厂调控平台及运行方法 | |
CN110599213A (zh) | 一种基于区块链网络的物品管理方法、装置及电子设备 | |
Platt et al. | Sybil attacks on identity-augmented Proof-of-Stake | |
CN114362987A (zh) | 一种基于区块链和智能合约的分布式投票***及方法 | |
CN111126086B (zh) | 融合翻译术语认证与修改溯源的区块链*** | |
Vakilinia et al. | An incentive-compatible mechanism for decentralized storage network | |
Yin et al. | Proof of continuous work for reliable data storage over permissionless blockchain | |
KR102610531B1 (ko) | 비-랜덤 합의체 증명 기반 블록 체인 네트워크를 이용하여 구축되는 뉴럴 합의체 증명 기반 블록 체인 네트워크 플랫폼 시스템 | |
Wang et al. | Achieving reliable and anti-collusive outsourcing computation and verification based on blockchain in 5G-enabled IoT | |
TW202016807A (zh) | 事件預測方法及裝置、電子設備 | |
US20230198773A1 (en) | Voting using choice coin on a blockchain | |
CN114119278A (zh) | 一种基于区块链技术的多站融合电力资源管理*** | |
Byers | Combating Front-Running in the Blockchain Ecosystem | |
Özkan et al. | A Decentralized Resource Management System Proposal For Disasters: NGO-RMSD (STK-AKYS) |
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 |