CN113254980B - 一种用于深度学习的工作量证明共识方法及系统 - Google Patents
一种用于深度学习的工作量证明共识方法及系统 Download PDFInfo
- Publication number
- CN113254980B CN113254980B CN202110764728.1A CN202110764728A CN113254980B CN 113254980 B CN113254980 B CN 113254980B CN 202110764728 A CN202110764728 A CN 202110764728A CN 113254980 B CN113254980 B CN 113254980B
- Authority
- CN
- China
- Prior art keywords
- verification
- node
- training
- nodes
- block chain
- 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
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/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06315—Needs-based resource requirements planning or analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0639—Performance analysis of employees; Performance analysis of enterprise or organisation operations
- G06Q10/06393—Score-carding, benchmarking or key performance indicator [KPI] analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- General Engineering & Computer Science (AREA)
- Educational Administration (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Tourism & Hospitality (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Game Theory and Decision Science (AREA)
- Computer Hardware Design (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种用于深度学习的工作量证明共识方法及系统,利用智能合约编写代码调用组件库中的组件,构建深度学习的网络结构。如果要进行监督学习就可以构建适用于监督学习的网络结构,如果要进行无监督学习就可以构建适用于无监督学习的网络结构,按需配置,非常灵活,几乎适用于所有深度学习模型的训练。有效解决了现有技术中在共识系统中嵌入深度学习模型训练器,使得深度学习的网络结构被固化,缺乏灵活配置特性的问题。
Description
技术领域
本发明涉及区块链技术领域,特别涉及一种用于深度学习的工作量证明共识方法及系统。
背景技术
目前很多的公有链区块链平台通常采用工作量证明共识算法来决定区块记账权,进而投入算力较高的节点获得记账权的概率就越大,这种机制通过算力来实现信任的建立和价值共识。然而,目前诸如比特币等采用工作量证明共识算法的区块链应用,在挖矿过程中会耗费大量的算力和能源,造成资源浪费。
为了解决上述问题,一些人开始采用引入深度学习模型训练器的方式来进行算力的共识,深度学习即学习样本数据的内在规律和表示层次,利用深度学习能够极大地提高算力的利用率。
然而,目前公开的方法仍然存在一些缺陷。第一,现有技术中进行模型训练过程主要采用AutoML技术进行网络结构和参数的调整,由于AutoML技术并不成熟,导致其模型训练过程缺少灵活性;第二,已知的方法均是针对监督学习(具有标记的训练样本)而言,对于无监督学习(未标记的训练样本)缺少支持,通常来说无监督学习需要的算力比监督学习要大得多,现有方案无法满足更大算力需求;第三,现有方案存在记账权竞争的问题,例如,有两个或两个以上的节点同时完成了模型训练过程,并且训练的模型均符合各阈值的要求,此时易导致区块链产生硬分叉,使区块链社区分裂。
发明内容
本申请提供了一种用于深度学习的工作量证明共识方法及系统,以解决现有技术缺乏灵活性、存在记账权竞争的问题。
第一方面,本申请提供了一种用于深度学习的工作量证明共识方法,包括:
需求方节点根据业务需求生成深度学习任务;所述深度学习任务包括任务指标和深度学习的网络结构;所述任务指标包括模型准确率、模型召回率以及任务难度系数;
需求方节点根据所述深度学习任务编写智能合约,并根据智能合约调用算法组件库,组建深度学习的网络结构;所述网络结构根据所述任务指标设定;
需求方节点将所述网络结构和任务指标发布至区块链网络;
区块链网络中的训练节点对所述网络结构开始深度学习模型的训练,当训练的模型的各指标量达到所述任务指标时,生成待验证区块发布至区块链网络;所述待验证区块包括将模型参数、训练完成时间以及算力付出打包生成的区块头,以及将交易信息打包生成的区块体;
区块链网络中的验证节点验证所有待验证区块中模型的准确率,对准确率最高并且符合任务指标的区块签名,并将带有签名的验证结果发送至对应的训练节点;
收到带有签名的验证结果的数量达到预设值的训练节点生成验证区块,并将验证区块在区块链网络发布;
区块链网络中的所有节点验证所述验证区块中的签名信息,若验证通过,则将验证区块加入到区块链中。
在一些实施例中,所述方法还包括:
需求方节点向区块链网络发布数据集;所述数据集包括训练集和测试集;
所述训练节点根据所述训练集对所述网络结构开始深度学习模型的训练;
所述验证节点根据所述测试集验证待验证区块中模型的准确率。
在一些实施例中,所述数据集中的测试集采用对称加密算法加密后发布;所述方法还包括:
当区块链网络中的节点接收到第一预设数量的待验证区块后,停止接收训练节点再发布的待验证区块,并向需求方节点发送第一指令;
需求方节点根据所述第一指令,向区块链网络发布解密所述测试集的密钥;
验证节点根据所述密钥对加密的测试集解密,得到测试集明文。
在一些实施例中,所述智能合约中包括需求方节点提供的担保数字资产;所述方法还包括:
验证区块对应的训练节点获得算力付出对应的数字资产;
需求方节点从训练节点获取深度学习模型,并回收剩余的担保数字资产。
在一些实施例中,所述方法还包括:
根据区块链网络中任意节点发送的更新请求更新算法组件库。
在一些实施例中,所述更新算法组件库的步骤包括:
区块链网络中任意节点编写预更新组件,并将预更新组件发布至区块链网络;
获取区块链网络中所有节点对所述预更新组件的校验结果;
若第二预设数量的节点的校验结果为校验通过,则将该预更新组件加入到算法组件库中。
在一些实施例中,在需求方节点根据所述深度学习任务编写智能合约后,所述方法还包括:
需求方节点测试智能合约代码,若代码无误,则将智能合约上链发布。
第二方面,本申请还提供了一种对应于第一方面所述方法的共识系统,包括位于同一区块链网络中的需求方节点、多个训练节点以及验证节点,还包括算法组件库;其中,
所述需求方节点被配置为根据业务需求生成深度学习任务;所述深度学习任务包括任务指标和深度学习的网络结构;所述任务指标包括模型准确率、模型召回率以及任务难度系数;根据所述深度学习任务编写智能合约,并根据智能合约调用算法组件库,组建深度学习的网络结构;所述网络结构根据所述任务指标设定;将所述网络结构和任务指标发布至区块链网络;
所述训练节点被配置为对所述网络结构开始深度学习模型的训练,当训练的模型的各指标量达到所述任务指标时,生成待验证区块发布至区块链网络;所述待验证区块包括将模型参数、训练完成时间以及算力付出打包生成的区块头,以及将交易信息打包生成的区块体;收到带有签名的验证结果的数量达到预设值的训练节点生成验证区块,并将验证区块在区块链网络发布;
所述验证节点被配置为验证所有待验证区块的准确率,对准确率最高并且符合任务指标的区块签名,并将带有签名的验证结果发送至对应的训练节点;
区块链网络中的所有节点被配置为验证所述验证区块中的签名信息,若验证通过,则将验证区块加入到区块链中。
在一些实施例中,所述系统还被配置为:
需求方节点向区块链网络发布数据集;所述数据集包括训练集和测试集;
所述训练节点根据所述训练集对所述网络结构开始深度学习模型的训练;
所述验证节点根据所述测试集验证待验证区块中模型的准确率;
当区块链网络中的节点接收到第一预设数量的待验证区块后,停止接收训练节点再发布的待验证区块,并向需求方节点发送第一指令;
需求方节点根据所述第一指令,向区块链网络发布解密所述测试集的密钥;
验证节点根据所述密钥对加密的测试集解密,得到测试集明文。
在一些实施例中,所述系统还配置为:
区块链网络中任意节点编写预更新组件,并将预更新组件发布至区块链网络;
获取区块链网络中所有节点对所述预更新组件的校验结果;
若第二预设数量的节点的校验结果为校验通过,则将该预更新组件加入到算法组件库中。
本申请提供的方法及系统具有下列有益效果:
1、本发明方案将现今区块链工作量证明算法改进,将区块链的争夺记账权所耗费的算力用于深度学习模型的训练,有效提高了资源的利用率,降低了成本,提高了记账奖励。
2、本发明提供灵活按照需求方的要求配置深度学习网络结构的功能,且各节点可以自主设置训练参数,有利于算法效率的提高;
3、本发明提供自主更新的组件库,可以根据技术进展与时俱进,保持共识算法的先进性;
4、本发明的共识算法有很强的扩展性和灵活性;
5、本发明节约了社会资源,将算力用到了有意义的工作上。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一种用于深度学习的工作量证明共识方法应用场景图;
图2为本申请一种用于深度学习的工作量证明共识方法的流程图;
图3为一种可行性实施例中建立的网络结构图。
具体实施方式
参见图1,为本申请一种用于深度学习的工作量证明共识方法应用场景图;本申请的方案是应用在由需求方节点、训练节点、验证节点构成的区块链网络中的,其中,需求方节点、训练节点、验证节点仅是以在执行方法中所提供不同功能进行划分的,并非图中所限定的一个节点仅可作为一种节点出现,应当理解为,区块链网络中的任何一个节点当需要提出共识需求时,其均可以作为需求方节点出现,除了提出需求的需求方节点之外的所有节点均可作为训练节点出现,当一个训练节点发布待验证区块时,除了该训练节点之外的所有节点均可作为验证节点出现,也就是说,需求方节点也可能同时作为验证节点而出现,训练节点同时也可以是对另一个训练节点的验证节点。
基于上述技术场景,本申请提供了一种用于深度学习的工作量证明共识方法,如图2所示,所述方法包括:
S100:需求方节点根据业务需求生成深度学习任务;所述深度学习任务包括任务指标和深度学习的网络结构;所述任务指标包括模型准确率、模型召回率、F值以及任务难度系数;
在本实施例中,深度学习模型的训练任务都是由需求方的,训练模型的具体要求也由需求方提出,需求方所在的终端可以通过区块链节点发布需求,其所在节点即为需求方节点;需求方的需求包括任务指标,即设定的完成标准、预支付的费用等等。需要说明的是,对于不同的深度学习任务,其要求是不同的,相应的,在进行模型准确率Precision、模型召回率Recal、F值及任务难度系数M指定时,具有多种配置,因此,本申请提供的方法可以根据需求方的不同需求相应执行不同类型训练模型的深度学习,更具备灵活性。
其中,F值(F-Measure)是Precision(P)和Recall(R)加权调和平均,即:
当参数α=1时,就是最常见的F1,也即:
可知F1综合了P和R的结果,当F1较高时则能说明模型比较有效,因此F值是衡量模型有效性的关键依据,也是重要的任务指标。
S200:需求方节点根据所述深度学习任务编写智能合约,并根据智能合约调用算法组件库,组建深度学习的网络结构;所述网络结构根据所述任务指标设定;
其中,算法组件库是一种例如JAVA或者Python等很多语言提供的算法库,算法组件库中的每一个组件都是算法组件,提供了某种功能的标准算法,比如卷积组件,就是深度学习中常用的进行卷积操作使用的算法,除此之外,本实施例中还包括其它常规算法,在此不予限制。需要说明的是,这些算法组件可以是提前配置在算法组件库中的,也可以是由区块链各节点位置的终端通过共识过程传入的,对于算法组件库的更新、增加操作在后文中再详细阐述。
在本实施例中,根据深度学习任务组建深度学习的网络结构是通过智能合约自动执行的,需求方节点在生成智能合约后,可以先对生成的智能合约代码进行测试,若测试代码无误,再将智能合约上链发布,即开始执行智能合约,在上链智能合约的同时,需求方还要在智能合约中设置用于支付的担保数字资产;这里的数字资产是指最终给予的奖励,其可以是与某种代币等价的资产包,也可以是基于特定规则下的可交易货币,例如,对于以太网来说,相当于燃料的概念,在一次消息发送(与比特币不同,以太坊中消息不一定是交易)中,消息被矿工打包进区块并传递,燃料则作为支付给矿工的费用。燃料以以太币(Ether)计价,这也是以太坊中以太币的用途。
在本实施例中,所建立的深度学习的网络结构一般可被配置为多层,图3示出的为其中一种可行性实施例中建立的网络结构图,应当理解的是,也可以根据需求方的不同需求建立其它结构形式的网络结构。输入层、卷积层、池化层、全连接层、激活函数等,由这些不同的层可以灵活地构建不同性能、功能的深度学习网络结构。
S300:需求方节点将所述网络结构和任务指标发布至区块链网络,区块链网络中的各个节点均可作为训练节点进行深度学习模型的训练,在接收到网络结构和任务指标时,训练节点可先对其进行校验,校验内容不限于包括需求方节点身份信息等,当校验无误后,可以开始模型训练。
在执行步骤S300的同时或前后,需求方节点还需要向区块链网络发布数据集;所述数据集包括训练集和测试集;其中,训练集用于训练节点对所述网络结构开始深度学习模型的训练;测试集用于验证节点验证待验证区块的准确率。
为了避免某些矿工节点直接利用测试集训练模型,需求方节点发布的数据集中,测试集通常应采用加密后发布的方式,加密方法可采用对称解密的方法,密钥为Key,加密之后即为D(Test,Key),这样,需求方可以选择在训练节点利用训练集生成待验证区块以后,再发布解密密钥,用于验证的节点才能通过获取解密密钥来验证待验证区块的准确性,这种方式可以有效提高准确率,避免了矿工节点作弊的情况。
S400:区块链网络中的训练节点对所述网络结构开始深度学习模型的训练,当训练的模型的各指标量达到所述任务指标时,生成待验证区块发布至区块链网络;所述待验证区块包括将模型参数、训练完成时间以及算力付出打包生成的区块头,以及将交易信息打包生成的区块体;
需要说明的是,区块链网络中的所有节点(除了需求方节点外)均可作为训练节点执行步骤S400,也就是说,发布在区块链网络中的待验证区块可能有多个,然而,根据不同节点的完成时间长短不同、算力付出也不同,需要对多个训练节点执行筛选,因此,在一种可行性实施例中,所述方法还包括:
当区块链网络中的节点接收到第一预设数量的待验证区块后,停止接收训练节点再发布的待验证区块,例如,区块链网络中有100个节点,当第一预设数量为10个时,意味着先执行完步骤S400的前十个训练节点具备竞争最终奖励的资格,十名开外的训练节点即使生成了待验证区块,也无法参数后续共识步骤,这就对训练节点高效性提出了要求。
具体的,训练节点执行训练的过程可简述为:任意节点i根据实际训练情况以及燃料(以以太坊为例)调节学习率、迭代次数等训练参数,当节点i训练的模型的各指标量均达到或者超过智能合约中设定的任务指标时,根据各算法组件的调用次数计算算力付出Si,之后,节点i再将模型参数、当前时间以及算力付出Si打包成区块头,将节点位置通常设置的缓冲池中执行的交易打包成区块体,形成待验证区块Block_i,将Block_i进行全网广播,并等待其它节点对待验证区块的验证结果。
在执行步骤S500之前,由于验证需要用到测试集,而测试集一般经过加密处理,因此需要先执行解密的操作步骤:
S401:当区块链网络中的节点接收到第一预设数量的待验证区块后,向需求方节点发送第一指令;
S402:需求方节点根据所述第一指令,向区块链网络发布解密所述测试集的密钥;
S403:验证节点根据所述密钥对加密的测试集解密,得到测试集明文。
之后,再继续执行步骤S500:区块链网络中的验证节点验证所有待验证区块中模型的准确率,对准确率最高并且符合任务指标的区块签名,并将带有签名的验证结果发送至对应的训练节点;
其中,区块链网络中的所有节点均可作为所述的验证节点,对于每一个验证节点来说均要执行步骤S500,利用测试集对不同的待验证区块进行验证,将得到每一个待验证区块对应的准确率值,从高到低排序后,当前验证节点可对其中准确率最高的待验证区块提供签名,并反馈验证结果给准确率最高的训练节点。
S600:收到带有签名的验证结果的数量达到预设值的训练节点生成验证区块,并将验证区块在区块链网络发布;其中,验证区块中应包括所有签名信息、签名节点信息等;这里预设值可以根据实际需求设定,例如区块链节点i如果收到超过区块链网络中50%节点的验证签名,则视为得到了所有节点的共识,此时可以认为这个节点(训练节点)是全网共识的最终预获得奖励的节点。
S700:区块链网络中的所有节点验证所述验证区块中的签名信息,即验证签名的有效性,若验证通过,则将验证区块加入到区块链中,此时,表明共识过程已结束,需求方节点以确定深度学习模型来源。
对应于前述提到的在智能合约中设置担保数字资产,当工作量共识结束后,需要对训练节点给予相应报酬,此时就可以从担保数字资产中分配部分或全部给训练节点,所述方法还包括:
S800:验证区块对应的训练节点获得算力付出对应的数字资产;
S900:需求方节点从训练节点获取深度学习模型,并回收剩余的担保数字资产;例如,需求方节点在指定智能合约中设置担保数字资产为100(货币单位),训练节点获得算力对应的数字资产为80(货币单位),则此时在对训练节点支付后,剩余的20(货币单位)将被返还给需求方节点。
进一步的,由前述可知,本申请由于设置了算法组件库,可以通过智能合约调用算法组件库中的不同算法组件来满足各种各样的需求,因此就要求算法组件库应尽量包含多种算法组件,为了保证算法组件的多样性,需要对算法组件库不定时地更新,因此,本申请提供的方法还包括对算法组件库进行更新的步骤:
根据区块链网络中任意节点发送的更新请求更新算法组件库。
具体的,上述步骤包括:
区块链网络中任意节点编写预更新组件,并将预更新组件发布至区块链网络;
获取区块链网络中所有节点对所述预更新组件的校验结果;其它节点可以根据已有模型结构、参数、测试集等对算法组件进行校验,若结果满足预设要求,则可给出校验成功的结果,若出现错误,则可以返回校验不通过的结果。
若第二预设数量的节点的校验结果为校验通过,则将该预更新组件加入到算法组件库中。第二预设数量可以设置为,当有超过2/3的节点投票通过时,则将该组件加入到算法组件库中,另外,每一个新加入到算法组件库中的算法组件可相应给予编号,便于调用及管理。
由上述技术方案可知,本申请提供了一种用于深度学习的工作量证明共识方法,利用智能合约编写代码调用组件库中的组件,构建深度学习的网络结构。如果要进行监督学习就可以构建适用于监督学习的网络结构,如果要进行无监督学习就可以构建适用于无监督学习的网络结构,按需配置,非常灵活,几乎适用于所有深度学习模型的训练。有效解决了现有技术中在共识系统中嵌入深度学习模型训练器,使得深度学习的网络结构被固化,缺乏灵活配置特性的问题。
对应于上述方法,本申请还提供了一种应用上述方法的系统,包括:位于同一区块链网络中的需求方节点、多个训练节点以及验证节点,还包括算法组件库;其中,
所述需求方节点被配置为根据业务需求生成深度学习任务;所述深度学习任务包括任务指标和深度学习的网络结构;所述任务指标包括模型准确率、模型召回率以及任务难度系数;根据所述深度学习任务编写智能合约,并根据智能合约调用算法组件库,组建深度学习的网络结构;所述网络结构根据所述任务指标设定;将所述网络结构和任务指标发布至区块链网络;
所述训练节点被配置为对所述网络结构开始深度学习模型的训练,当训练的模型的各指标量达到所述任务指标时,生成待验证区块发布至区块链网络;所述待验证区块包括将模型参数、训练完成时间以及算力付出打包生成的区块头,以及将交易信息打包生成的区块体;收到带有签名的验证结果的数量达到预设值的训练节点生成验证区块,并将验证区块在区块链网络发布;
所述验证节点被配置为验证所有待验证区块的准确率,对准确率最高并且符合任务指标的区块签名,并将带有签名的验证结果发送至对应的训练节点;
区块链网络中的所有节点被配置为验证所述验证区块中的签名信息,若验证通过,则将验证区块加入到区块链中。
进一步的,所述系统还被配置为:
需求方节点向区块链网络发布数据集;所述数据集包括训练集和测试集;
所述训练节点根据所述训练集对所述网络结构开始深度学习模型的训练;
所述验证节点根据所述测试集验证待验证区块中模型的准确率;
当区块链网络中的节点接收到第一预设数量的待验证区块后,停止接收训练节点再发布的待验证区块,并向需求方节点发送第一指令;
需求方节点根据所述第一指令,向区块链网络发布解密所述测试集的密钥;
验证节点根据所述密钥对加密的测试集解密,得到测试集明文。
进一步的,所述系统还配置为:
区块链网络中任意节点编写预更新组件,并将预更新组件发布至区块链网络;
获取区块链网络中所有节点对所述预更新组件的校验结果;
若第二预设数量的节点的校验结果为校验通过,则将该预更新组件加入到算法组件库中。
上述系统在执行方法过程中的作用效果可参见上述方法中的说明,在此不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由本申请的权利要求指出。
Claims (3)
1.一种用于深度学习的工作量证明共识方法,其特征在于,所述方法包括:
需求方节点根据业务需求生成深度学习任务;所述深度学习任务包括任务指标和深度学习的网络结构;所述任务指标包括模型准确率、模型召回率以及任务难度系数;
需求方节点根据所述深度学习任务编写智能合约,并根据智能合约调用算法组件库,组建深度学习的网络结构;需求方节点测试智能合约代码,若代码无误,则将智能合约上链发布;
需求方节点将所述网络结构和任务指标发布至区块链网络;
需求方节点向区块链网络发布数据集;所述数据集包括训练集和测试集;所述数据集中的测试集采用对称加密算法加密后发布;
区块链网络中的训练节点根据所述训练集对所述网络结构开始深度学习模型的训练,当训练的模型的各指标量达到所述任务指标时,生成待验证区块发布至区块链网络;所述待验证区块包括将模型参数、训练完成时间以及算力付出打包生成的区块头,以及将交易信息打包生成的区块体;
当区块链网络中的节点接收到第一预设数量的待验证区块后,停止接收训练节点再发布的待验证区块,并向需求方节点发送第一指令;
需求方节点根据所述第一指令,向区块链网络发布解密所述测试集的密钥;
验证节点根据所述密钥对加密的测试集解密,得到测试集明文;
区块链网络中的验证节点根据所述测试集验证所有待验证区块中模型的准确率,对准确率最高并且符合任务指标的区块签名,并将带有签名的验证结果发送至对应的训练节点;
收到带有签名的验证结果的数量达到预设值的训练节点生成验证区块,并将验证区块在区块链网络发布;
区块链网络中的所有节点验证所述验证区块中的签名信息,若验证通过,则将验证区块加入到区块链中;
所述方法还包括:
根据区块链网络中任意节点发送的更新请求更新算法组件库;
所述更新算法组件库的步骤包括:
区块链网络中任意节点编写预更新组件,并将预更新组件发布至区块链网络;
获取区块链网络中所有节点对所述预更新组件的校验结果;
若第二预设数量的节点的校验结果为校验通过,则将该预更新组件加入到算法组件库中。
2.根据权利要求1所述的方法,其特征在于,所述智能合约中包括需求方节点提供的担保数字资产;所述方法还包括:
验证区块对应的训练节点获得算力付出对应的数字资产;
需求方节点从训练节点获取深度学习模型,并回收剩余的担保数字资产。
3.一种用于深度学习的工作量证明共识系统,其特征在于,所述系统包括位于同一区块链网络中的需求方节点、多个训练节点以及验证节点,还包括算法组件库;其中,
所述需求方节点被配置为根据业务需求生成深度学习任务;所述深度学习任务包括任务指标和深度学习的网络结构;所述任务指标包括模型准确率、模型召回率以及任务难度系数;根据所述深度学习任务编写智能合约,并根据智能合约调用算法组件库,组建深度学习的网络结构;所述网络结构根据所述任务指标设定;将所述网络结构和任务指标发布至区块链网络;需求方节点测试智能合约代码,若代码无误,则将智能合约上链发布;
所述训练节点被配置为对所述网络结构开始深度学习模型的训练,当训练的模型的各指标量达到所述任务指标时,生成待验证区块发布至区块链网络;所述待验证区块包括将模型参数、训练完成时间以及算力付出打包生成的区块头,以及将交易信息打包生成的区块体;收到带有签名的验证结果的数量达到预设值的训练节点生成验证区块,并将验证区块在区块链网络发布;
所述验证节点被配置为验证所有待验证区块的准确率,对准确率最高并且符合任务指标的区块签名,并将带有签名的验证结果发送至对应的训练节点;
区块链网络中的所有节点被配置为验证所述验证区块中的签名信息,若验证通过,则将验证区块加入到区块链中;
所述系统还被配置为:
需求方节点向区块链网络发布数据集;所述数据集包括训练集和测试集;
所述训练节点根据所述训练集对所述网络结构开始深度学习模型的训练;
所述验证节点根据所述测试集验证待验证区块中模型的准确率;
当区块链网络中的节点接收到第一预设数量的待验证区块后,停止接收训练节点再发布的待验证区块,并向需求方节点发送第一指令;
需求方节点根据所述第一指令,向区块链网络发布解密所述测试集的密钥;
验证节点根据所述密钥对加密的测试集解密,得到测试集明文;
所述系统还配置为:
区块链网络中任意节点编写预更新组件,并将预更新组件发布至区块链网络;
获取区块链网络中所有节点对所述预更新组件的校验结果;
若第二预设数量的节点的校验结果为校验通过,则将该预更新组件加入到算法组件库中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110764728.1A CN113254980B (zh) | 2021-07-07 | 2021-07-07 | 一种用于深度学习的工作量证明共识方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110764728.1A CN113254980B (zh) | 2021-07-07 | 2021-07-07 | 一种用于深度学习的工作量证明共识方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113254980A CN113254980A (zh) | 2021-08-13 |
CN113254980B true CN113254980B (zh) | 2022-02-15 |
Family
ID=77190823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110764728.1A Active CN113254980B (zh) | 2021-07-07 | 2021-07-07 | 一种用于深度学习的工作量证明共识方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113254980B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115118653A (zh) * | 2022-08-26 | 2022-09-27 | 南京可信区块链与算法经济研究院有限公司 | 一种基于多任务学习的实时业务流量分类方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111680793A (zh) * | 2020-04-21 | 2020-09-18 | 广州中科易德科技有限公司 | 一种基于深度学习模型训练的区块链共识方法和系统 |
CN111832606A (zh) * | 2020-05-27 | 2020-10-27 | 东南大学 | 基于机器学习竞赛的区块链架构 |
CN112613601A (zh) * | 2020-12-24 | 2021-04-06 | 暨南大学 | 神经网络模型更新方法、设备及计算机存储介质 |
-
2021
- 2021-07-07 CN CN202110764728.1A patent/CN113254980B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111680793A (zh) * | 2020-04-21 | 2020-09-18 | 广州中科易德科技有限公司 | 一种基于深度学习模型训练的区块链共识方法和系统 |
CN111832606A (zh) * | 2020-05-27 | 2020-10-27 | 东南大学 | 基于机器学习竞赛的区块链架构 |
CN112613601A (zh) * | 2020-12-24 | 2021-04-06 | 暨南大学 | 神经网络模型更新方法、设备及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113254980A (zh) | 2021-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10554407B1 (en) | Protocols for decentralized networks | |
JP7128111B2 (ja) | ブロックチェーンを介して資産関連活動を制御するシステム及び方法 | |
CN109165092B (zh) | 一种基于有效算力贡献的共识方法、装置及系统 | |
CN110991622B (zh) | 基于区块链网络的机器学习模型处理方法及节点 | |
CN109035019A (zh) | 票据交易方法、系统、计算机设备和存储介质 | |
CN113434269A (zh) | 基于区块链的分布式隐私计算方法及装置 | |
Dorsala et al. | Fair payments for verifiable cloud services using smart contracts | |
CN111049806B (zh) | 一种联合权限控制方法、装置、电子设备和存储介质 | |
CN110599348B (zh) | 股权激励的方法、装置、设备及存储介质 | |
CN113221191B (zh) | 基于区块链的数据存证方法、装置、设备和存储介质 | |
CN113486407B (zh) | 基于区块链的存单管理系统和方法 | |
CN113987080A (zh) | 基于信誉共识的区块链激励方法、装置及相关产品 | |
CN112182101A (zh) | 一种区块链中的成员准入方法及系统 | |
CN113344535A (zh) | 一种基于区块链的软件开发外包控制系统及实现方法 | |
CN113254980B (zh) | 一种用于深度学习的工作量证明共识方法及系统 | |
CN112241891A (zh) | 一种基于联盟链的充电交易管理系统 | |
CN110572457B (zh) | 基于区块链的资源申请方法及装置、电子设备、存储介质 | |
WO2020011010A1 (zh) | 一种算力交易方法及计算通道 | |
US20200310929A1 (en) | Methods and apparatus for verifying processing results and/or taking corrective actions in response to a detected invalid result | |
CN111861737B (zh) | 基于区块链的风控模型优化方法、装置和计算机设备 | |
CN110727735B (zh) | 基于区块链技术协作完成任务事件的方法、装置及设备 | |
CN111222885B (zh) | 数据处理请求背书方法、装置、计算机设备及存储介质 | |
US11570001B1 (en) | Protocols for decentralized networks | |
KR20210027012A (ko) | 피어 노드와 그 정보 처리 방법 및 블록체인 플랫폼 시스템 | |
CN112200570A (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 |