Energy-recycling Blockchain with Proof-of-Deep-Learning
Posted Neil-Yale
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Energy-recycling Blockchain with Proof-of-Deep-Learning相关的知识,希望对你有一定的参考价值。
Energy-recycling Blockchain with Proof-of-Deep-Learning
用深度学习代替区块链中工作量证明的哈希碰撞达到环保目的
传统的BTC这种,大家新闻也看的不少,什么我们国家的矿工去了什么四川重庆水多的地方,找了个电费便宜的水电站,买了一堆的矿机,几百万几千万的砸进去,就在那做哈希碰撞,电表倒转,疯狂的浪费资源。就算是有容量证明这种东西,但是这种不要算力,他要硬盘,而且挖完了,硬盘也就报废了,也是一种浪费。还有不做哈希计算,做质数查找啥的,意义都不太大
作者就提出了他们的深度学习证明(Proof-of-Deep-Learning, PoDL),让矿工把资源放到深度学习上去,而不是无用的计算。这个是让矿工通过进行深度学习训练,然后提交训练好了的模型作为证明。
摘要
由于矿工必须进行大量的计算,在流行的区块链应用程序(例如基于PoW的加密货币)所采用的工作量证明(PoW)机制中浪费了大量的能量。因此,能源浪费不仅稀释了区块链的价值,而且阻碍了区块链的进一步应用,这是一个日益严重的问题。在本文中,我们提出了一种新的区块链设计,完全回收促进和维护它所需的能量,再投资到深度学习的计算中。我们通过提出深度学习证明(PoDL)来实现这一点,当且仅当产生适当的深度学习模型时,可以生成新区块的有效证明。我们提出了PoDL的概念验证设计,它与大多数基于散列的PoW机制的加密货币兼容。我们的基准测试和仿真结果表明,所提出的设计对于各种流行的加密货币,如比特币、比特币现金(Bitcoin Cash)和莱特币(Litecoin)是可行的
引言
在过去的十年中,区块链技术已经成功地应用于不同的领域,并有潜力在更关键的领域得到应用。然而,目前的机制在进行维护系统安全保障所需的计算时耗费了大量的精力,引起了各种各样的担忧。“这种加密货币每年使用的二氧化碳相当于100万次跨大西洋航班。我们需要把它作为一种气候威胁来认真对待。”根据福布斯[11]的说法,由于这些担忧,“比特币对电力的需求是它的致命弱点”。根据[3],比特币的能源消耗一直在稳步增长,直到2018年11月下旬,比特币价格突然下跌。即使在比特币价格下跌之后,仅为维持区块链基础的比特币,每年也要消耗超过50太瓦时(万亿瓦特小时)。这个数字仅来自比特币,所有基于区块链的应用程序的总能耗将远远超过这个数字。
主要问题是,所有的能源都在某种程度上被浪费了。基于PoW的区块链的哈希计算消耗了大部分能量。容量证明(Proof-of-Capacity,PoC)被提出以解决这个问题(例如,Burstcoin[4]),但是它并没有完全解决这个问题,因为存储资源反而被浪费了。
Primecoin[17]使用质数查找代替hash计算作为PoW,挖掘者寻找特殊的质数序列(Cunningham链)。然而,这些数字在密码协议中的应用是有限的。Gridcoin[1]、Golem[7]和FoldingCoin[6]是根据矿工执行的科学计算量向他们发放奖励的加密货币。虽然相似,但本文提出的深度学习证明(proof -of- deep learning, PoDL)与它们有很大的不同。矿工的计算能力并不能保证区块链在这些系统中的安全性,但是PoDL是一种改进的类似PoW的共识机制,诚实矿工的深度学习能力提供了防篡改能力。因此,PoDL可以部署在任何基于PoW的区块链应用程序中,回收矿工的能量用于深度学习。权益证明(Proof-of-Stake)(例如,Nxt[5])或重要证明(Proof-of-Important)(例如,NEM[8])是能源消耗较少的替代性共识机制。然而,它们的原理与PoW的原理是正交的,“挖矿”不涉及计算。因此,这些与我们的工作是正交的。
我们提出了区块链的新设计,将维护区块链所消耗的能量重新投入于深度学习的计算任务。这是通过引入深度学习证明(Proof- of- deep learning, PoDL)机制来实现的,该机制迫使挖掘者执行深度学习训练,并将训练后的模型作为证明。本文的贡献总结如下。
(1)我们提出了第一种共识机制PoDL,该机制通过深度学习而不是无用的哈希计算来维护区块链;(2)我们的PoDL可以应用于任何基于PoW机制的加密货币,因为我们只增加了块头的组件(components to block headers);(3)实验表明,该设计对于区块间隔大于10秒的加密货币是可行的。
预置知识
Proof of Work(PoW)和挖矿
工作量证明(PoW)[12]通常用于许多加密货币(比特币,ZCash, Monero,莱特币等),矿工需要找到一个比某个阈值更小的哈希值,这涉及到在大搜索空间的暴力搜索。因此,这些加密货币的PoW机制需要大量的计算资源。挖矿是创建一个有有效哈希值(即小于一个小阈值)的块的过程。创建这些块的矿工将因其工作获得奖励。更具体地说,他们被允许插入一个Coinbase交易,创建并发送一定数量的区块奖励到矿工指定的任何地址。
深度学习及训练
深度学习在许多领域显著优于传统机器学习算法。要实现一个合适的DL模型,需要提供一个数据集(称为训练数据集)并训练模型。训练由两种算法组成,前馈和反向传播,可互换执行。当对训练数据集中的每条记录进行一次精确的前馈和反向传播时,我们说一个epoch结束了。在训练中重复多个epoch,可以使用另一个数据集(称为测试数据集)测试训练模型的准确性。这种训练是一种在整个模型参数空间中寻找局部最优的基于爬山的近似算法。找到全局最优的有效算法还不知道,这是我们的PoDL的核心。
OUR ENERGY-RECYCLING BLOCKCHAIN WITH PODL
我们提出通过引入带深度学习训练的深度学习(PoDL)来回收挖矿所消耗的能量。即,我们让矿工训练DL模型,训练出合适DL模型的矿工生成的块将被全节点接受。在使用PoDL的区块链中,除了矿工和全节点外,我们还有一个额外的利益相关者(stakeholder):模型请求者,他将DL模型训练外包给挖掘者。本文的目标是提出一个概念验证设计,我们考虑最简单的模型,其中只有一个模型请求者提供描述所需模型的训练/测试数据集。因为模型请求者的目标是获得最好的DL模型,所以我们假设他/她将是一个不与任何人勾结的半诚实的对手。
Overview of New Blockchain with PoDL
- *Block acceptance policy.*当矿工提交区块和区块头时,我们让他们提交训练过的DL模型。然后,我们让全节点选择有效的区块,当使用测试数据集验证时,该区块也具有最高的准确性。要求全节点在测试数据集上自行验证模型,以计算精度。为了防止拒绝服务攻击,我们让矿工自我验证他们的模型并报告他们的模型的准确性。要求全节点首先从精度最高的模型开始验证,并在发现第一个验证精度与声明的模型相同的模型时停止验证。这将替换PoW验证,并且我们不需要区块头的散列值小于阈值。为了绑定块和DL模型,对模型进行哈希,并且哈希值被包含在块头中。
- *Preventing model overfitting.*如果测试数据集对挖掘者是可用的,他们会有动机通过直接在测试数据集上训练DL模型来作弊,也就是过拟合模型。为了防止这种情况,我们在区块之间设置了两个阶段。在第一阶段,模型请求者向挖掘者发布训练数据集,直到第二阶段他们才发布测试数据集。矿工在第一阶段结束后才提交模型到完整的节点,在第二阶段的时候才能够验证他们的准确性。以下机制将阻止矿工在第二阶段继续训练。
- *Preventing model stealing and training in the second phase.*矿工可以通过(1)窃取他人在第二阶段发布的DL模型,或(2)用发布的测试数据集进一步训练DL模型以获得更高的精度(即模型过拟合)进行欺骗。为了防止这些,如果矿工想在第二阶段竞争,我们要求矿工在第一阶段发布区块头,并且用header作为他们的模型的commitment。在第二阶段,全节点将验证仅在第一阶段提交了区块头的区块和模型。通过这样做,如果矿工窃取他人的模型或重新训练他们的模型,他们的新模型的哈希值将会不同,并且他们的区块头将会与全节点在第一阶段接收到的区块头不同。
- *Blockchain verification:*为了验证整个区块链(例如,当开始下载初始块时),全节点必须确保接受的DL模型仅从训练数据集训练,并且它们在测试数据集中的准确性与声明的相同。为了提供这种可验证性,矿工被要求提交重复训练过程所需的参数:超参数、初始权值、epoch数等。有了这些,全节点可以重复训练过程,以确定是否可以仅从训练数据集重建接受到的模型。此外,他们可以用测试数据集验证矿工宣称的准确性。
Blockchain Description with PoDL
**Phase 1 for determining block bt at height t:**给定模型请求者发布的训练数据集,矿工训练DL模型时不知道测试数据集是PoDL的一部分。矿工通过遵循底层区块链系统的规则(例如,在加密货币中生成区块的交易和默克尔树)并包括经过哈希的模型来生成区块和头部,并在阶段1结束时将区块头部提交给全节点。
**Phase 2 for determining block bt at height t:**模型请求者发布测试数据集,矿工验证他们训练过的模型,并将精确度最高的模型连同区块和区块头一起提交给全节点。然后,全节点选择并验证提交的DL模型的准确性,并按照矿工声明精度的递减顺序,接受第一个具有声明精度的模型(以及相应的块和头)。在平局的情况下,全节点遵循底层区块链系统的策略(例如,接受较早到达的比特币)。全节点忽略所有在第一阶段没有接收到区块头的模型,并且一旦bt的第二阶段完成,全节点不接受其他高度为t的区块。
**Dealing with short training time:**在许多加密货币系统中,区块生成速率被控制为平均恒定(例如,比特币10分钟,莱特币2.5分钟)。因此,矿工仅在阶段1进行短时间的训练,导致精度增量较低。我们提出了两种机制来解决这个问题。首先,模型请求者直到多个块后模型精度没有显著提高时才收集模型,并针对不同的块发布新的测试数据集。通过这样做,一个DL模型的训练跨越多个块,最终得到一个足够好的模型。另外,bt的第2阶段和bt+1的第1阶段可能同时发生。即,在验证了训练模型对bt的准确性后(这是bt的第二阶段),矿工立即开始对bt+1的训练(这是bt+1的第一阶段)。只要模型请求者为每个块提供新的测试数据集,这是可以接受的。注意,一个训练数据集可以跨多个块重用,因此矿工只需要对每个模型访问一次训练数据集。
区块链的其余部分保持不变。最后,我们在图1中展示了一个示例区块链,其中MT表示Merkle树的根。
Properties of Our Design with PoDL
**Block reversibility: **由于我们的块接受策略,接受的DL模型在较早的块中精度较低,而DL模型在较晚的块中精度较高。因此,提出一个精度高于公认精度的模型就变得更加具有挑战性。因此,只有在区块链中出现了足够精度的模型后,之前的块才变得不可逆。因此,区块是否可逆并不取决于确认的次数。相反,它依赖于沿着块的模型的最高精度。
**Hardness of double spending: **首先,当且仅当区块的头在阶段1中被接收时,区块链中的全节点才会接受阶段2中的区块。因此,即使对手在区块bt被确认后可以访问测试数据集,他们也无法提交带有新模型的新区块,因为只要全节点是诚实的,对应的区块头在bt的Phase 1列表中就不存在。
即使大多数全节点与矿工勾结,在没有51%计算资源的情况下,双花仍然是一个低概率事件。由于没有已知的算法能够找到全局最优解,所以训练算法总是具有一定的随机性来寻找局部最优解。因此,如果只接受精度最高的模型,就很难进一步提高精度(如下图)。如果对手希望通过控制大部分全节点来进行双花攻击,他们必须提供更长的块序列,其中所有块必须包含精度更高的DL模型。此外,DL模型的训练必须在训练数据集上具有可重复性。由于训练性能的随机性依赖于超参数和初始权值的随机选择,我们推测除非对手拥有超过51%的DL训练计算资源,否则这是极具挑战性的。有好的超参数的对手在反转区块方面可能有优势,但是这些参数也会被发布给其他矿工,使其很难再次反转区块
**Datasets provision:**DL的训练和测试数据集可能有很大的容量,但是这些是区块链验证所必需的。如果数据集存储在区块链中,那么存储负担将会高得多,因此我们假设模型请求者将以合适的方式提供数据集(即,通过遵循不同块的释放时间)。模型请求者有动机扮演这个角色,因为他们的目标是获得最好的模型。
**Storage burden:**DL模型的大小从100KB到10GB不等,存储所有模型参数(包括用于重复训练过程的参数)可能是一个巨大的负担。但是,我们可以使用各种技术来缩小尺寸,而不会太影响精度[14],[15],我们可以将模型尺寸限制在一个普通的尺寸,例如[14],[15]中的10MB/模型。此外,因为只有高精度的模型才能保证防篡改,我们可以通过删除精度低的模型来释放存储空间。之后带有高精度模型的块仍将防止双重花费。
**Network delay: **提交给全节点的块包含DL模型和训练参数,因此全节点会经历额外的网络延迟。此外,由于训练/测试数据集的检索,矿工也会经历额外的延迟。但是,请注意,相同的训练数据集用于多个块,而不需要对每个块进行检索。每个阶段2都需要检索新的测试数据集,但这与下一个区块的阶段1重叠,只要网络延迟小于区块间隔,则不影响区块生成速率。此外,区块是否被接收取决于DL模型的准确性而不是模型的到达时间(捆绑模型除外),测试数据集网络延迟的影响是非常小的。
**Impact to ASIC devices: **ASIC传统上被认为对区块链生态系统不利,但实际上它在区块链与PoDL中是有益的,因为ASIC设备将被设计用于深度学习训练,它将有助于更好的硬件的开发。
FEASIBILITY VALIDATION BY EXPERIMENTS
Experiment Setting
在Intel i7-6700笔记本电脑上进行了块生成和验证实验。在Python 3.6中,我们基于[13]实现了区块链函数(例如,交易/块生成,哈希计算)。深度学习实验是在i7-6850K、24GB RAM、2块GTX 1080Ti gpu的台式机上进行的。使用TensorFlow使用包含105,000个音频样本[19]的数据集训练单字命令识别模型。
Benchmark Tests
矿工将在区块链中不断地进行DL训练,而不是不断地计算哈希值。因此,DL训练本身是哈希暴力运算的对等物,而不是现有区块链系统的额外开销。新的PoDL机制带来的额外计算任务有:(1)第1阶段矿工对H(模型)的哈希计算;(2)第2阶段全节点精度排序;(3)第2阶段全节点验证H(模型)的正确性并搜索区块报头;(4)第二阶段矿工精度确定;(5)第二阶段全节点精度验证;(6)初始块下载时全节点的完全验证。由于缺乏足够的数据,我们省略了需要大量模型及其训练参数的(6)的评估。由于(6)是一次性的过程,其影响要比其他的小得多。对于其余的任务,我们测量执行这些任务所消耗的时间,并将其与普通块间隔进行比较,这就解释了有多少矿工的时间用于DL训练,即我们的能量回收的有效性。
(1)涉及哈希计算;(2)需要排序;在(3)中需要排序和搜索。对于这些,我们在表I中展示了现有的基准测试结果,以显示它们的开销。注意[10]中哈希表的负载因子是α = 0.38。一般来说,与任何加密货币的块间隔相比,它们的额外开销可以忽略不计。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AMTpB7N5-1635918594474)(讨论班.assets/image-20211012094744661.png)]
(4)和(5)涉及DL模型的前馈。矿工需要对测试数据集中的每一条记录运行一次前馈算法。全节点需要为每个记录运行算法的次数与它们在阶段2中需要验证的模型数量一样多,但这将是很小的,因为完整节点一旦发现具有声明的准确性的模型,就会停止验证模型。我们在图2中给出了模型验证所需的时间。超过1000块重复验证,其平均时间是1.96秒,这是微不足道的块间隔的一些流行的加密货币相比(例如,10分钟对比特币和比特币现金,2.5分钟Litecoin),这意味着PoDL适用于这些加密货币,因为大多数能力可以回收。如果块间隔更小(例如,以太坊10-19秒),PoDL的效果就会更差。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-18N1Rb3Z-1635918594475)(讨论班.assets/image-20211012095014194.png)]
- 矿工要在阶段一给模型算哈希值—哈希计算
- 全节点要在阶段二对提交的模型按照报告的精度排序——排序
- 全节点要在阶段二按照排序验证模型的正确性并搜索区块头——排序和搜索
- 矿工要在阶段二确定自己模型的准确性——模型前馈计算
- 所有节点要在阶段二验证模型的精度——模型前馈计算
- 下载全节点时要对全链做验证——模型前馈计算和反向传播计算*
Simulation for Accuracy Growth
我们还进行了一个模拟,看看模型的准确性如何随着区块链的增长而增加。具体来说,我们通过每400个epoch测量模型的精度来测量DL训练中沿epoch的精度增量,这大约需要100秒。在比特币中,这相当于每2400个epoch有1个区块,结果如图3所示。对于更复杂的模型,训练将跨越更多的块。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UWu3dVSz-1635918594477)(讨论班.assets/image-20211012095059396.png)]
CONCLUSION AND FUTURE WORK
我们提出了一个概念验证设计的能力回收区块链与我们的新PoDL机制。矿工执行深度学习的训练任务,而不是哈希计算,他们提出训练的DL模型作为深度学习的证明。我们采用分阶段的区块接受策略来防止模型窃取和过拟合。如果没有占多数的DL训练能力,即使大部分的全节点都是恶意的,也很难实现双花攻击。
我们的概念验证设计还有很大的改进空间。模型请求者可以泛化为多个恶意请求者,这些请求者可能与矿工串通。此外,还需要对区块提交的现实模式和更多DL模型/数据集进行更广泛的研究。进一步完善和完善PoDL机制是我们今后的工作。
以上是关于Energy-recycling Blockchain with Proof-of-Deep-Learning的主要内容,如果未能解决你的问题,请参考以下文章
Energy-recycling Blockchain with Proof-of-Deep-Learning
会议新闻| Blockchain Impact Investment Summit