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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/294031.html
標籤:區塊鏈
