[0001]
技术领域
[0002] 本
发明涉及
人工智能技术领域,具体地说是一种基于深度学习训练任务的区块链共识方法。
背景技术
[0003] 近年来,
比特币等
电子货币开始流行,与大多数货币不同,比特币等电子货币不依靠特定的货币发行机构,使用整个P2P网络中众多
节点完成
分布式账本的
交易记录,其结合
密码学技术确保了货币流通各个环节安全性,并利用P2P的去中心化特性与共识
算法,保证了无法通过大量制造比特币来人为操控币值,形成了一个去中心化的
支付系统。
[0004]
支撑比特币的核心技术是区块链技术,又称为“
分布式账本技术”,是一种去中心化、集体维护分布式账本的技术方案,其本质是由多个节点集体参与通过多方存储、多方计算的方式来实现数据不可篡改、计算结果可信的分布式
数据库系统。区块链不是一种单一的技术,而是多种技术整合的结果,利用区块链技术维护一个可靠的、难以篡改的账本记录,可以降低信任的
风险,并能有效的降低众参与方协作的维护成本。
[0005] 随着人工智能技术的发展,特别是对深度学习技术更加深入的研究,未来深度学习的算法将会更加成熟,并形成标准化的深度学习
框架和算法,其推理的准确率主要依赖于训练模型的好坏,也就是依赖于训练的输入集合。这样对于深度学习的训练时间以及模型的优劣主要也就依赖于计算能
力的大小。
[0006] 比特币是采用区块链技术的公有链,这种基于区块链的电子货币,其去中心信任化的实现核心是要解决谁来负责记账,构造新的区块并能实现分布式账本的一致性问题。这类公有链大多采用的是
工作量证明(即Proof-Of-Work,简写为POW)共识机制,简单的说就是“通过工作以获得
指定成果,用成果来证明曾经付出的努力”,而工作量证明方法是采用
哈希算法计算出符合要求的哈希结果来获得记账权,其最大的缺点就是浪费
能源,工作量证明的过程仅仅是为了获取记账权。在这种情况下,如何能够结合深度学习有效的利用区块链工作量证明过程中的计算力成为一个亟需解决的问题。
[0007] 发明内容本发明的技术任务是提供一种解决了深度学习模型训练问题的基于深度学习训练任务的区块链共识方法。
[0008] 本发明的技术任务是按以下方式实现的:一种基于深度学习训练任务的区块链共识方法,包括,
所有区块链参与节点共同维护一份账本记录,任何节点都可以发布交易,并通过P2P共识网络分发到各个节点,P2P共识网络中会存在深度学习任务节点,会将深度学习任务分发给所有的参与节点,记账节点结合深度学习任务通过节点间共识机制达成共识,完成交易确认。
[0009] 所述的参与节点负责将节点间交易发布到区块链中。
[0010] 所述的深度学习任务节点也是区块链的参与节点,负责发布深度学习任务。
[0011] 所述的P2P共识网络是没有中心节点,通过用户群进行消息交换的网络体系。
[0012] 所述的记账节点负责分布式账本的记账任务,其通过工作量证明方式来获得记账权利,并进行广播确认,在P2P共识网络上达成共识,生成新的区块的生成。
[0013] 所述的方法用于区块链记账达成共识操作步骤如下:步骤1)所述的深度学习任务节点产生深度学习任务,同时标识出通过本任务得到的代币奖励;
步骤2)所述的深度学习任务节点将步骤1)产生的任务全网广播,所有参与节点将获取到深度学习任务集合;
步骤3)所述的参与节点发起代币交易,并通过P2P网络全网广播;
步骤4)所述的记账节点选择共识算法;
步骤5)所述的记账节点获取所有的交易信息,生成Merkle树,并产生
区块头,计算满足区块的记账难度的新区块头的哈希值,并计算下一次的记账难度,生成新的区块,并全网广播,转到步骤11);
步骤6)所述的记账节点记录第一条交易为普通记账的奖励,如果采用深度学习任务计算方法,则增加第二条记账奖励记录,为完成深度学习任务的代币奖励;
步骤7)所述的记账节点完成深度学习训练计算任务,获取所有的交易信息,生成Merkle树;
步骤8)所述的记账节点计算下一次的记账难度;
步骤9)所述的记账节点将新生成的区块在全网广播;
步骤10)所述的记账节点对新生成区块中的深度学习任务进行验证,将使用本地的验证集合进行模型认证,验证通过,则确认该深度学习任务有效;
步骤11)多个所述的记账节点验证新生成的区块是否满足哈希记账难度要求,如果多个记账节点确认记账记录,则完成新区块的生成;
步骤12)所述的P2P共识网络中的各个所述的参与节点更新本地账本;
步骤13)重复步骤1)-步骤12),持续产生区块链的新区块。
[0014] 所述的步骤1)中,任务中包含采用的数据集、使用的深度学习训练算法、算法的计算难度以及相应的验证集合。
[0015] 所述的步骤4)中,记账节点选择共识算法,包括,如果采用传统POW哈希方法,则使用原有公有链的计算难度,转到步骤5);如果采用带深度学习任务的POW共识方法,则降低哈希挑战POW方法的难度,将深度学习任务难度与哈希难度结合,转到步骤6)。
[0016] 所述的步骤7)中,所述的记账节点完成深度学习训练计算任务,获取所有的交易信息,生成Merkle树;包括,并且同时产生区块头,最终计算降低哈希记账难度后的结果,更新到区块头中。
[0017] 所述的步骤8)中,所述的记账节点计算下一次的记账难度,包括,如果深度学习任务已经被解决,则
锁定任务,并全网广播。
[0018] 本发明的一种基于深度学习训练任务的区块链共识方法和
现有技术相比,具有以下特点:1)结合人工智能和深度学习技术,将区块链共有链
挖矿过程的工作量证明加入深度学习任务,有效的解决传统以哈希挑战方式获得记账权的能源浪费问题,并且一定程度上解决了深度学习模型训练问题;
2)同时挖矿过程的工作量证明保留了部分利用哈希算法SHA256的挑战部分,这保证了挖矿过程的随机性,避免深度学习的巨头垄断记账权;
3)保护了原有记账节点的利益,另一方面,又增加深度学习任务挑战,避免了原有记账节点的计算资源集中化,同时提供深度学习任务激励措施,引导记账节点向深度学习任务等有意义的计算资源倾斜,更好的节约能源。
附图说明
[0019] 附图1为
实施例2基于深度学习训练任务的区块链共识方法的流程示意图。
[0020] 附图2为实施例2区块链节点组成示意图。
[0021] 附图3为实施例2的区块链结构示意图。
具体实施方式
[0022] 实施例1:一种基于深度学习训练任务的区块链共识方法,包括,
所有区块链参与节点共同维护一份账本记录,任何节点都可以发布交易,并通过P2P共识网络分发到各个节点,P2P共识网络中会存在深度学习任务节点,会将深度学习任务分发给所有的参与节点,记账节点结合深度学习任务通过节点间共识机制达成共识,完成交易确认。
[0023] 所述的参与节点负责将节点间交易发布到区块链中;所述的深度学习任务节点也是区块链的参与节点,负责发布深度学习任务;所述的P2P共识网络是没有中心节点,通过用户群进行消息交换的网络体系;所述的记账节点负责分布式账本的记账任务,其通过工作量证明方式来获得记账权利,并进行广播确认,在P2P共识网络上达成共识,生成新的区块的生成。
[0024] 所述的方法用于区块链记账达成共识操作步骤如下:步骤1)所述的深度学习任务节点产生深度学习任务,任务中包含采用的数据集、使用的深度学习训练算法、算法的计算难度以及相应的验证集合,同时标识出通过本任务得到的代币奖励;
步骤2)所述的深度学习任务节点将步骤101产生的任务全网广播,所有参与节点将获取到深度学习任务集合;
步骤3)所述的参与节点发起代币交易,并通过P2P网络全网广播;
步骤4)所述的记账节点选择共识算法,如果采用传统POW哈希方法,则使用原有公有链的计算难度,转到步骤5);如果采用带深度学习任务的POW共识方法,则降低哈希挑战POW方法的难度,将深度学习任务难度与哈希难度结合,转到步骤6);
步骤5)所述的记账节点获取所有的交易信息,生成Merkle树,并产生区块头,计算满足区块的记账难度的新区块头的哈希值,并计算下一次的记账难度,生成新的区块,并全网广播,转到步骤11);
步骤6)所述的记账节点记录第一条交易为普通记账的奖励,如果采用深度学习任务计算方法,则增加第二条记账奖励记录,为完成深度学习任务的代币奖励;
步骤7)所述的记账节点完成深度学习训练计算任务,获取所有的交易信息,生成Merkle树,并产生区块头,最终计算降低哈希记账难度后的结果,更新到区块头中;
步骤8)所述的记账节点计算下一次的记账难度,如果深度学习任务已经被解决,则锁定任务,并全网广播;
步骤9)所述的记账节点将新生成的区块在全网广播;
步骤10)所述的记账节点对新生成区块中的深度学习任务进行验证,将使用本地的验证集合进行模型认证,验证通过,则确认该深度学习任务有效;
步骤11)多个所述的记账节点验证新生成的区块是否满足哈希记账难度要求,如果多个记账节点确认记账记录,则完成新区块的生成;
步骤12)所述的P2P共识网络中的各个所述的参与节点更新本地账本;
步骤13)重复步骤1)-步骤12),持续产生区块链的新区块。
[0025] 实施例2:如图1中所示,所有区块链参与节点共同维护一份账本记录,任何节点都可以发布交易(transaction),并通过P2P共识网络分发到各个节点,P2P共识网络中会存在深度学习任务节点,会将深度学习任务分发给所有的参与节点,记账节点结合深度学习任务通过节点间共识机制达成共识,完成交易确认。其中,
所述的参与节点负责将节点间交易发布到区块链中;所述的深度学习任务节点也是区块链的参与节点,负责发布深度学习任务;所述的P2P共识网络是没有中心节点、通过用户群进行消息交换的网络体系;所述的记账节点负责分布式账本的记账任务,其通过工作量证明方式来获得记账权利,并进行广播确认,在P2P共识网络上的达成共识,生成新的区块的生成。
[0026] 为了描述清楚,假设在本实施例中,使用图2所示区块链结构,区块(Block)结构如下:版本号:描述区块链的版本;
时间戳:本次区块生成的时间;
目标值:本区块生成满足记账难度所达成的目标值的特征,用于矿工工作量证明;
交易Merkle树根
摘要:本区块的所有交易生成Merkle树的树根摘要值;
随机数:工作量证明参数;
交易数量:记录本区块所有的交易数量;
前区块摘要值:上一区块链的摘要值
深度学习任务标识:记账计算用到的深度学习任务。
[0027] 交易(transaction)分为多条记录,第一条记录为记账奖励交易,第二条记录为深度学习任务标识。本领域技术人员将理解的是,除了使用以上结构表示方法之外,根据本发明的实施方式的构造也能够应用于其他数据表示方法之上。
[0028] 下面将结合具体的实施例对本发明提供的方法过程进行详细的说明。为了描述方便,以下过程中采用SHA256作为摘要算法,ECDSA作为签名算法。
[0029] 区块链记账达成共识:参考图3,区块链记账达成共识包括以下步骤:
步骤1)所述的深度学习任务节点产生深度学习任务,任务中包含采用的数据集、使用的深度学习训练算法、算法的计算难度以及相应的验证集合,同时标识出通过本任务得到的代币奖励;
步骤2)所述的深度学习任务节点将步骤101产生的任务全网广播,所有参与节点将获取到深度学习任务集合;
步骤3)所述的参与节点发起代币交易,并通过P2P网络全网广播;
步骤4)所述的记账节点选择共识算法,如果采用传统POW哈希方法,则使用原有公有链的计算难度,转到步骤5);如果采用带深度学习任务的POW共识方法,则降低哈希挑战POW方法的难度,将深度学习任务难度与哈希难度结合,转到步骤6);
步骤5)所述的记账节点获取所有的交易信息,生成Merkle树,并产生区块头,计算满足该区块的记账难度的新区块头的哈希值,并计算下一次的记账难度,生成新的区块,并全网广播,转到步骤111;
步骤6)所述的记账节点记录第一条交易为普通记账的奖励,如果采用深度学习任务计算方法,则增加第二条记账奖励记录,为完成深度学习任务的代币奖励;
步骤7)所述的记账节点完成深度学习训练计算任务,获取所有的交易信息,生成Merkle树,并产生区块头,最终计算降低哈希记账难度后的结果,更新到区块头中;
步骤8)所述的记账节点计算下一次的记账难度,如果深度学习任务已经被解决,则锁定任务,并全网广播。
[0030] 步骤9)所述的记账节点将新生成的区块在全网广播;步骤10)所述的记账节点对新生成区块中的深度学习任务进行验证,将使用本地的验证集合进行模型认证,验证通过,则确认该深度学习任务有效;
步骤11)多个所述的记账节点验证新生成的区块是否满足哈希记账难度要求,如果多个记账节点确认记账记录,则完成新区块的生成;
步骤12)所述的P2P共识网络中的各个所述的参与节点更新本地账本;
步骤13)重复步骤1)-步骤12),持续产生区块链的新区块。
[0031] 通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的几种具体实施方式。在公开的实施方式的
基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。