Blockchain-based Edge Computing for Deep Neural Network Applications学习笔记

Blockchain-based Edge Computing for Deep Neural Network Applications学习笔记


一、文献翻译

知云文献翻译

基于区块链的边缘计算在深度神经网络中的应用

摘要:深度神经网络(DNN)应用需要大量的计算,因此物联网设备等硬件有限的嵌入式设备无法自行运行应用。一种解决方案是将DNN计算从客户端设备卸载到附近的边缘服务器[1],请求使用其强大的硬件执行DNN计算。然而,该解决方案存在几个问题。一个是可用性问题,即我们如何为边缘服务器提供一些激励来运行客户端应用。另一个是可伸缩性问题,即当有更多DNN请求时,我们如何使用更多的服务器。最后,还有一个关于诚信的问题,即客户端如何信任来自匿名边缘服务器的结果。我们认为区块链技术可以解决这些问题,使边缘计算更加实用。提出了一种基于区块链技术的DNN边缘计算体系结构。现有的区块链,如以太坊,不支持执行复杂的程序,因此我们提出了修改的区块链结构和协议,以克服这一限制。

一、引言

由于网络流量或用户数据隐私的优势,使用边缘服务器卸载DNN计算有望补充当前基于云的DNN计算智慧[2]。然而,如摘要中所述,DNN边缘计算将受到三个基本问题的影响,如可用性、可伸缩性和可信性。本文提出了区块链算法来解决这些边缘计算问题。由于区块链的参与对任何人都是开放的,由于基于数字资产的激励结构可以吸引边缘服务器参与网络,我们可以实现可用性和可伸缩性。此外,区块链的一个重要特性保证了可信性,该特性是区块链网络上所有数据的相互验证。

二、背景

A.边缘计算
边缘计算是利用相邻边缘服务器的概念,是对使用远程云服务器的云计算的补充。边缘计算可以解决云计算存在的网络延迟、带宽利用率低、数据隐私等问题。另一方面,边缘计算也存在可用性、可伸缩性和程序执行的完整性等问题。

B.区块链
区块链是一个去中心化的公共数据库,在许多被称为节点的计算机上存储交易记录,使其难以篡改记录。记录被捆绑在块中,每个块引用前面块的不同值,称为header,这就形成了一个链[3]。此外,人们引入程序状态作为记录,以保证程序执行的完整性。通过使用虚拟机对执行前后的程序状态进行比较,实现节点之间的相互验证。这些节点会因为他们的工作而获得奖励,比如存储、验证和捆绑从区块链生成的硬币中的记录。

C.数字签名
数字签名是一种使用公钥加密或非对称加密技术[4]的验证工具。密钥对有两种,一种是可以广泛传播的公钥,另一种是只有所有者知道的私钥。用私钥加密的消息只能用相应的公钥解密。区块链使用帐户的公钥,并将用私钥加密的签名附加到将数字资产从该帐户转移到另一个帐户的交易中,以便只有该帐户的所有者才能生成交易。

D.智能合约
智能合约是部署在区块链上的程序,具有自己的程序状态。与重复事务类似,部署的智能合约由所有参与节点共享。如果有人执行了部署的智能合约,区块链中的每个节点都会通过比较执行[5]之前和之后的程序状态来验证执行情况。
图1. 架构行为

三、提出基于区块链的边缘计算

A.修改区块链架构
现有的区块链,特别是以太坊,不支持执行复杂的程序,所以我们提出了一个修改的区块链结构和协议来克服这一限制。具体来说,我们替换了以太坊虚拟机(EVM),该虚拟机使用node.js处理智能合约,包括V8 JavaScript虚拟机,并将其与块生成部分分离。相反,我们运行一个独立的node.js进程与区块链并行运行,以执行像DNN应用程序这样的复杂程序。当一个节点接收到触发智能合约的事务时,它将事务和智能合约的存储程序状态都传递给node.js进程执行。如果完成了,则将更改后的程序状态和结果返回给区块链进程,以块的形式存储,不会影响块生成速度。其余部分几乎与以太坊[6]相同。

B.区块链的边缘计算过程
如图1所示,基于区块链的边缘计算平台的行为如下:
1)定金:所有嵌入式设备和边缘服务器都必须向区块链支付定金,参与边缘计算平台。
2)请求一个工作负载:嵌入式设备通过服务器的签名请求一个工作负载,并向区块链发送一个“要求”交易和赏金。
3)返回结果:当边缘服务器完成工作负载的执行时,它们将结果返回到嵌入式设备,并向区块链发送一个带有每个签名的“完整”事务。
4)链上验证:一段时间后,参与块挖掘的其他节点执行工作负载,并验证边缘服务器记录的结果。为了减少存储占用,只记录结果的哈希值。
5)奖励流程:链上验证后,首先记录边缘服务器赢得游戏,通过“奖励”交易进行奖励,以激励边缘服务器。

C.攻击场景及防护
可能会有几种攻击场景。我们将介绍其中一些,并解释如何保护它们。
1)完整性攻击:如果边缘服务器返回不正确的结果怎么办?
A:结果将通过链上验证进行验证,如果结果是错误的,边缘服务器先前投入的押金将被削减,以施加惩罚。
2)恶意行为攻击:如果恶意边缘服务器给嵌入式设备的结果是错误的,并且没有向区块链发送‘require’事务,该怎么办?
A:我们认为收集随机选择的边缘服务器的结果可以提供一定的安全性。如果结果都是一样的,那么它可能是正确的。但如果结果不同,大多数结果可能是正确的。如果想要提高正确性,可以请求更多的边缘服务器来获取更多的样本。
3)无赏金攻击:如果嵌入式设备不发送赏金并得到执行结果怎么办?
A:边缘服务器可以挑战嵌入式设备,以证明“要求”交易中包含的签名不是由设备生成的。如果它不能证明这不是它的签名,设备的保证金将被削减作为罚款。

四、初步评价结果

我们使用JavaScript实现区块链进行边缘计算。我们已经实现了执行层,但在实现p2p网络的过程中。由于将区块链引入边缘计算的目的是克服可用性、可伸缩性和完整性问题,区块链的p2p网络层可能不会影响边缘计算的性能,但链上验证时间除外。因此,我们仅对使用深度学习[7]的人脸检测应用的边缘计算速度进行评估。我们评估了Raspberry Pi 3用于嵌入式设备、带有i7 2.6GHz 4核CPU和16GB RAM的边缘服务器以及LAN网络环境的笔记本电脑。深度学习模型大小为10.7MB,输入图像大小约为30KB ~ 40KB。因为所设计的体系结构是基于区块链的,所以应用程序应该部署所有边缘服务器(如智能合约),因此评估不包括模型传输时间。应用程序的执行时间为嵌入式设备约1秒,边缘计算约40ms,传输时间约30ms。当我们用Amazon EC2 t2在云服务器上做同样的工作时。在首尔地区的微实例中,传输时间约为40ms。总之,边缘计算可以比本地服务器和云服务器更好,区块链将有助于实现边缘计算服务。取决于网络拓扑状态的链上验证时间或安全性仍然是未来的工作。

REFERENCES
[1] SHI, Weisong, et al. Edge computing: Vision and challenges. IEEE Internet of Things Journal, 2016, 3.5: 637-646
[2] KUMAR, Karthik, et al. A survey of computation offloading for mobile systems. Mobile Networks and Applications, 2013, 18.1: 129-140.
[3] NAKAMOTO, Satoshi. Bitcoin: A peer-to-peer electronic cash system. 2008.
[4] RIVEST, Ronald L.; SHAMIR, Adi; ADLEMAN, Leonard. A method for obtaining digital signatures and public-key cryptosystems. Communications of the ACM, 1978, 21.2: 120-126.
[5] BUTERIN, Vitalik, et al. A next-generation smart contract and decentralized application platform. white paper, 2014.
[6] WOOD, Gavin. Ethereum: A secure decentralised generalised transaction ledger. Ethereum project yellow paper,2014, 151: 1-32.
[7] https://github.com/justadudewhohacks/opencv4nodejs, July, 2018

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值