金 韜 莊麗婉 張 晨 黃 韜
1(東南大學網(wǎng)絡空間安全學院 南京 210096)
2(網(wǎng)絡通信與安全紫金山實驗室 南京 211111)
3(北京郵電大學 北京 100876)
(cat_jintao@seu.edu.cn)
在近十幾年的科技發(fā)展中,云計算在效益、規(guī)模、自動化、互操作性和集中性等方面能為企業(yè)帶來許多好處,因此許多互聯(lián)網(wǎng)公司的服務完全存在于云上或在很大程度上依賴于云.但隨著云計算不斷發(fā)展,邊緣應用數(shù)量急速增長,數(shù)據(jù)來源廣,數(shù)據(jù)量龐大[1],僅靠云計算無法高效敏捷地解決復雜多樣的生產(chǎn)生活場景,因此云邊協(xié)同成為新的技術(shù)浪潮.云計算與邊緣計算相結(jié)合,可實現(xiàn)實時或更快速的數(shù)據(jù)處理和分析,節(jié)省網(wǎng)絡資源,離線運行并支持斷點續(xù)傳,提高本地數(shù)據(jù)的安全性等[2].
云計算與邊緣計算需要通過緊密協(xié)同才能更好地滿足各種需求場景的匹配,從而最大化體現(xiàn)云計算與邊緣計算的應用價值[3].云邊協(xié)同平臺是云計算與邊緣計算緊密協(xié)同的應用之一.云邊協(xié)同平臺實現(xiàn)了用戶空閑資源的充分利用,同時節(jié)約資源需求方的資源使用成本.結(jié)合云邊協(xié)同平臺的自動化配置與動態(tài)調(diào)度能力,用戶可以通過云邊協(xié)同技術(shù)將應用或計算任務動態(tài)便捷地部署在云服務商的資源設(shè)備上,相比于傳統(tǒng)的云服務,可實現(xiàn)秒級調(diào)度,動態(tài)靈活地收縮擴容資源,同時降低獲取資源服務的成本.但在該場景下,目前資源的調(diào)度與資費結(jié)算通常由云邊協(xié)同平臺負責,無法向用戶與云服務商保證調(diào)度的公平性與透明性,因此用戶在使用云服務時面臨著用戶、云邊協(xié)同平臺、云服務商三者互不信任的問題,這在一定程度上制約了云邊協(xié)同的發(fā)展.
區(qū)塊鏈(blockchain)是一種由多方共同維護,利用密碼學來保證傳輸和訪問安全,能夠?qū)崿F(xiàn)數(shù)據(jù)一致存儲、難以篡改、防止抵賴的分布式賬本技術(shù)[4].區(qū)塊鏈本質(zhì)的特征就是在一個分布式系統(tǒng)中無須通過中心節(jié)點的控制即可使各節(jié)點保持數(shù)據(jù)的一致性,因此具有高可靠性、透明可信、不可偽造和防篡改的優(yōu)勢.
區(qū)塊鏈系統(tǒng)中包含共識機制、存儲機制、P2P(peer-to-peer)通信機制以及智能合約技術(shù),其中智能合約技術(shù)在區(qū)塊鏈系統(tǒng)中扮演重要的角色.智能合約是一種能夠自動執(zhí)行條款的數(shù)字合約,可以被預定事件觸發(fā)后自動執(zhí)行,并且執(zhí)行結(jié)果不可被篡改[5].智能合約理論上用戶可以實現(xiàn)任何想要實現(xiàn)的業(yè)務功能,并且智能合約的運行不需要人為干預,具有一定的自治性、強制性與自我驗證性[6].
根據(jù)不同應用場景和設(shè)計體系,區(qū)塊鏈系統(tǒng)采用不同的開放共享和節(jié)點準入方案.區(qū)塊鏈系統(tǒng)有3種部署模式:公有鏈、聯(lián)盟鏈和私有鏈[8].其中公有鏈開放程度高,共識效率低,所有節(jié)點都可參與共識與數(shù)據(jù)讀寫,地位平等,且可隨時加入與退出;聯(lián)盟鏈開放程度較低,共識效率較高[9],由一群具有共同利益或需求的組織組成委員會共同維護,只有特定節(jié)點才能參與共識與數(shù)據(jù)讀寫.
比特幣[9]與以太坊[10]為公有鏈的知名項目.比特幣目前已運行12年.2021年初,比特幣突破4萬美元,全球超過1萬個全節(jié)點.以太坊是一個開源的有智能合約功能的公共區(qū)塊鏈平臺,2018年,以太幣成為市值第二高的加密貨幣.以太坊采用外部賬戶和合約賬戶,能夠高效查詢用戶余額和歷史交易記錄.Hyperledger Fabric[11],F(xiàn)ISCO BCOS[12]為聯(lián)盟鏈的知名項目.Fabric面向企業(yè)級應用場景的許可區(qū)塊鏈,目的是為解決企業(yè)主體之間互不信任問題,降低業(yè)務流轉(zhuǎn)間的信任成本,實現(xiàn)數(shù)據(jù)、資源共享.FISCO BCOS是國內(nèi)企業(yè)主導研發(fā)、對外開源、安全可控的企業(yè)級金融聯(lián)盟鏈底層平臺.
對于云邊協(xié)同技術(shù)而言,可信性、可靠性、公平性是云邊協(xié)同發(fā)展亟需解決的三大問題.雖然相較于傳統(tǒng)的云服務,云邊協(xié)同可實現(xiàn)秒級調(diào)度,動態(tài)靈活地收縮擴容資源,但云邊協(xié)同平臺的資源調(diào)度對用戶與云服務商而言仍是不透明的,并且由于調(diào)度的不透明性導致計費與結(jié)算的依據(jù)無法追溯.區(qū)塊鏈技術(shù)以去中心化、匿名性以及數(shù)據(jù)不可篡改為主要特征,與云邊協(xié)同技術(shù)長期發(fā)展目標不謀而合.通過區(qū)塊鏈技術(shù)可保證云邊協(xié)同調(diào)度的公平性、透明性,計費結(jié)算的可靠性、可追溯性.因此云邊協(xié)同技術(shù)和區(qū)塊鏈的技術(shù)之間的相互融合可以較好地解決用戶、云服務商與云邊協(xié)同平臺三者互不信任的問題.
目前國內(nèi)已在云邊協(xié)同領(lǐng)域進行了深入地探索.將云平臺資源(計算資源、存儲資源等)封裝為一種服務提供給用戶,在此類服務模式下云邊平臺可以看作一個巨大的資源池,用戶可以動態(tài)靈活地部署自己的應用.但隨著云服務的不斷發(fā)展,大量云服務出現(xiàn),云服務商魚龍混雜,用戶隱私受到侵犯的同時云服務商也面臨惡意用戶的威脅.因此伴隨著云服務的不斷壯大,雙方迫切地需要一種適應云環(huán)境下的可控監(jiān)管體系,以促進云服務良性發(fā)展.文獻[13]提出了一種基于第三方監(jiān)管的可控云計算平臺服務模型.文獻[14]根據(jù)三權(quán)分立的理論設(shè)計了一種云審計數(shù)據(jù)的可追蹤歸責方案.但這類監(jiān)管方式往往過于中心化,用戶與云服務商只能選擇相信中心第三方的數(shù)據(jù)信息,并且監(jiān)管審計過程需要人工介入,效率較低.而此類缺陷卻是區(qū)塊鏈的天然優(yōu)勢,在不需要三方間強信任關(guān)系的條件下不僅可以保證數(shù)據(jù)的真實性、可溯源性,也可以做到監(jiān)管審查的公平透明.文獻[15]指出區(qū)塊鏈保存的電子證據(jù)具有證據(jù)能力及證明力的決定性因素,闡述了區(qū)塊鏈電子證據(jù)應用之必然.
國外在此云服務場景也有類似的研究,其中伯克利開放式網(wǎng)絡計算平臺BOINC(Berkeley Open Infrastructure for Network Computing)是當前最大的網(wǎng)格計算平臺,是由加州大學伯克利分校計算機系于2002年開發(fā)上線的大型分布式計算系統(tǒng)[16].BOINC將全球大量自愿提供的閑置資源應用于計算密集型科研項目.但隨著超算、云計算、邊緣計算等現(xiàn)代技術(shù)的不斷涌現(xiàn),BOINC也面臨著應用場景有限、分布區(qū)域失衡、缺乏激勵機制等問題.因此BOINC積極引入代幣經(jīng)濟機制、區(qū)塊鏈以及無服務器運算(serverless computing)等新興技術(shù),通過價值算力證明PoVC(proof of valuable computing)共識機制與BOINC代幣(COP),致力于打造下一代分布式云計算的基礎(chǔ)設(shè)施,將計算資源更高效地應用至實際意義的場景,實現(xiàn)算力的社會價值.
本文提出了基于區(qū)塊鏈的云邊協(xié)同業(yè)務系統(tǒng)及其實現(xiàn)方法,首先引入第三方作為中立的云邊協(xié)同平臺,通過云邊協(xié)同平臺的資源調(diào)度控制器為用戶實現(xiàn)多個云服務商的資源動態(tài)調(diào)度,充分整合各個云服務商的資源,為用戶提供定制化云服務,解除了單一云服務商鎖定的問題,同時可為用戶進行自動化的資源優(yōu)選.其次是利用區(qū)塊鏈與智能合約技術(shù),設(shè)計云邊協(xié)同平臺的簽約、調(diào)度、采集、結(jié)算等業(yè)務流程,可實現(xiàn)云邊協(xié)同平臺資源優(yōu)化調(diào)度過程中數(shù)據(jù)的透明與不可篡改,可有效解決用戶面對多個云服務商時的互不信任問題,同時提出信譽機制,為云邊協(xié)同平臺的運行提供重要保障.
本文提出了一種基于區(qū)塊鏈的云邊協(xié)同業(yè)務系統(tǒng),使用聯(lián)盟鏈的部署模式,提供準入功能,通過智能合約進行簽約結(jié)算,降低成本提高效率.從業(yè)務主體上看,本系統(tǒng)共有用戶、云服務商和云邊協(xié)同平臺三大主體.從系統(tǒng)模塊組件上看,可以分為非區(qū)塊鏈部分與區(qū)塊鏈部分,模塊組成如圖1所示.
本系統(tǒng)采用聯(lián)盟鏈的部署模式,區(qū)塊鏈的參與主體有用戶、云服務商和云邊協(xié)同平臺.區(qū)塊鏈主要負責合約簽訂、調(diào)度指令記錄、資源計量信息記錄、賬單記錄、信用記錄.
2.1.1 區(qū)塊鏈部署模式
智能合約是運行在區(qū)塊鏈虛擬機或容器中的一段代碼,用于控制交易過程,保證交易數(shù)據(jù)的一致性、完整性.在本系統(tǒng)中,用于實現(xiàn)用戶、云服務商與云邊協(xié)同平臺之間的簽約與結(jié)算、身份校驗授權(quán)、信用懲處等業(yè)務功能.智能合約按功能劃分,具體如下:
1) 身份校驗、授權(quán)鑒權(quán)模塊.負責鑒定三方讀寫權(quán)限.
2) 簽約模塊.負責多方合同的簽訂.
3) 記賬模塊.負責在資源調(diào)度過程中記錄調(diào)度信息以及計量結(jié)算信息.
4) 結(jié)算模塊.負責結(jié)算用戶(或云服務商)與云邊協(xié)同平臺之間的賬單流程.
5) 信用模塊.負責記錄云服務商、云邊協(xié)同平臺和用戶的違規(guī)情況,用作后期懲罰的憑證.
2.1.2 區(qū)塊鏈信息記錄
在調(diào)度過程中,云邊協(xié)同平臺中調(diào)度器進行調(diào)度時將調(diào)度指令上傳區(qū)塊鏈.在采集過程中,云服務商定時構(gòu)建資源視圖(視圖中包含計量信息)經(jīng)過用戶與云邊協(xié)同平臺簽名后將該資源視圖上傳區(qū)塊鏈.在結(jié)算過程中,云邊協(xié)同平臺生成賬單,經(jīng)過用戶(或云服務商)確認后轉(zhuǎn)賬,轉(zhuǎn)賬完成后將賬單與轉(zhuǎn)賬憑證上傳區(qū)塊鏈.
區(qū)塊鏈根據(jù)選取的共識算法保證上鏈信息的正確性.區(qū)塊鏈的鏈式結(jié)構(gòu)保證上鏈信息的不可篡改性和可追溯性.因此調(diào)度指令上鏈可保證調(diào)度的公平性,資源計量信息上鏈可保證結(jié)算賬單數(shù)據(jù)來源的可靠性,賬單與轉(zhuǎn)賬憑證上鏈可保證轉(zhuǎn)賬記錄的不可篡改性.
非區(qū)塊鏈部分包括用戶模塊、云服務商模塊與云邊協(xié)同服務模塊三大模塊.
用戶模塊包含用戶客戶端,用戶客戶端為用戶實現(xiàn)與區(qū)塊鏈和云邊協(xié)同平臺服務端交互的功能.用戶可通過客戶端獲取鏈上數(shù)據(jù),也可向云邊協(xié)同平臺提交資源需求藍圖.
云服務商模塊包含云服務商客戶端以及資源設(shè)備.其中云服務商客戶端為云服務商管理員實現(xiàn)與區(qū)塊鏈和云邊協(xié)同平臺服務端交互的功能,云服務商管理員可通過客戶端獲取鏈上數(shù)據(jù)也可向云邊協(xié)同平臺提交資源參數(shù);資源設(shè)備為用戶提供云計算服務支持.
圖2 許可管理功能模塊
云邊協(xié)同服務模塊負責根據(jù)簽約數(shù)據(jù)以及資源池情況進行智能化的資源調(diào)度.組件可分為平臺設(shè)備、平臺服務端、區(qū)塊鏈訪問控制器三大部分.平臺設(shè)備包含調(diào)度器、分布式鍵值對存儲系統(tǒng)(ETCD)、Prometheus(普羅米修斯)——開源監(jiān)控告警系統(tǒng)、時間序列數(shù)據(jù)庫(time series database, TSDB).調(diào)度器負責對空閑資源進行調(diào)度,調(diào)度指令寫入ETCD;ETCD主要負責存儲合法的藍圖、可提供資源參數(shù)與調(diào)度指令信息,定時發(fā)送給區(qū)塊鏈訪問控制器;Prometheus執(zhí)行計量操作,定時將結(jié)算數(shù)據(jù)發(fā)送給TSDB;TSDB存儲計量信息,定量發(fā)送給區(qū)塊鏈訪問控制器.平臺服務端主要有業(yè)務展示、注冊、認證、簽約等功能.區(qū)塊鏈訪問控制器實現(xiàn)平臺設(shè)備與區(qū)塊鏈平臺的交互.
本系統(tǒng)功能模塊可分為許可管理、簽約、調(diào)度采集、資費結(jié)算4個環(huán)節(jié),具體展開如下.
認證與授權(quán)是聯(lián)盟鏈平臺不可或缺的功能,基于區(qū)塊鏈的云邊協(xié)同業(yè)務系統(tǒng)旨在搭建聯(lián)盟鏈平臺,控制用戶、應用、節(jié)點的準入,對想要加入平臺的區(qū)塊鏈用戶及其部署的節(jié)點進行身份認證與權(quán)限管理,打造可信的交易環(huán)境.用戶與節(jié)點需要通過準入證書,在區(qū)塊鏈中進行簽名認證;用戶登錄區(qū)塊鏈的設(shè)備應用,如客戶端與節(jié)點設(shè)備需要加載通信許可、服務許可等證書頒發(fā)機構(gòu)(certificate authority, CA)證書才能在區(qū)塊鏈中進行通信,提供服務.
在系統(tǒng)中,認證即加入到區(qū)塊鏈的所有用戶以及他們所擁有的節(jié)點進行身份信息審核,包括身份證號、機構(gòu)代碼、相關(guān)資質(zhì)等,審核通過后調(diào)用CA系統(tǒng)為用戶或節(jié)點頒發(fā)證書,賦予其進入?yún)^(qū)塊鏈網(wǎng)絡的權(quán)限.如圖2所示為本系統(tǒng)的許可管理功能模塊設(shè)計圖.
首先云服務商進行區(qū)塊鏈許可管理流程,通過客戶端連接到區(qū)塊鏈平臺,當云服務商加入系統(tǒng)時,云服務商與云邊協(xié)同平臺簽署資源提供合同,合同記錄了云服務商可提供的資源參數(shù)信息,簽署完成后云服務商即加入本系統(tǒng),合同上傳至區(qū)塊鏈平臺.
其次用戶進行區(qū)塊鏈許可管理流程,通過客戶端連接到區(qū)塊鏈平臺,當用戶加入系統(tǒng)時,用戶與云邊協(xié)同平臺簽署資源需求合同,合同記錄了用戶的資源需求參數(shù),簽署完成后用戶即加入本系統(tǒng),合同上傳至區(qū)塊鏈平臺.至此用戶、云服務商均加入本系統(tǒng).
簽約完成后,云邊協(xié)同平臺調(diào)度模塊(調(diào)度器、ETCD)負責根據(jù)簽約數(shù)據(jù)和全局資源視圖進行智能化的資源調(diào)度.調(diào)度完成后云邊協(xié)同平臺將調(diào)度指令、平臺方簽名上傳區(qū)塊鏈,同時云邊協(xié)同平臺采集模塊(Prometheus,TSDB)收集全局資源視圖與資源使用視圖.全局資源視圖用于智能化調(diào)度的依據(jù),資源使用視圖用于資費結(jié)算的依據(jù).資源使用視圖采集流程如圖3所示:
圖3 云邊協(xié)同采集與調(diào)度
云服務商定時構(gòu)建資源使用視圖(視圖中包含該段時間內(nèi)資源計量信息、云服務商簽名)并發(fā)送給用戶與云邊協(xié)同平臺.云邊協(xié)同平臺與用戶驗證資源使用視圖,如正確則簽名,并發(fā)回給云服務商.云服務商收到簽名后,將資源使用視圖、平臺方簽名、云服務商簽名、用戶簽名上傳至區(qū)塊鏈.
本系統(tǒng)依據(jù)簽約的流程可將資費結(jié)算分為2類:用戶資費結(jié)算、云服務商資費結(jié)算.其中賬單由資源使用視圖生成.
3.4.1 用戶資費結(jié)算
云邊協(xié)同平臺發(fā)起結(jié)算申請并生成賬單發(fā)送給用戶(賬單中包含云邊協(xié)同平臺簽名),用戶若同意該賬單,則與云邊協(xié)同平臺進行線下轉(zhuǎn)賬,轉(zhuǎn)賬成功后,云邊協(xié)同平臺將賬單、轉(zhuǎn)賬憑證上傳至區(qū)塊鏈.至此資費結(jié)算信息上鏈,用戶結(jié)算流程完成.
圖4 資費結(jié)算流程
3.4.2 云服務商資費結(jié)算
云服務商資費結(jié)算與用戶結(jié)算不同,由于云服務商為收款方,因此由云服務商向云邊協(xié)同平臺發(fā)起結(jié)算申請.發(fā)起結(jié)算申請后云邊協(xié)同平臺生成賬單信息并簽名,發(fā)送給云服務商(賬單中包含云邊協(xié)同平臺簽名),云服務商若同意該賬單,云邊協(xié)同平臺向云服務商線下轉(zhuǎn)賬,轉(zhuǎn)賬成功后,云服務商將賬單、轉(zhuǎn)賬憑證上傳至區(qū)塊鏈.至此資費結(jié)算信息上鏈,云服務商結(jié)算流程完成,資費結(jié)算如圖4所示.
針對本系統(tǒng)本文還提出了一種信譽機制,它用于表示云服務商的信用情況,近期信譽文本可影響該云服務商被調(diào)度概率,同時可用作后期懲處的憑證.信譽值增加來源包含提供服務時資源貢獻情況以及用戶評價,用戶差評或資源計量信息故意上報錯誤等則會觸發(fā)懲處流程.信譽值與懲處記錄均上傳至區(qū)塊鏈平臺.
由于資源提供情況與用戶評價之間量級差距較大,可能出現(xiàn)“大數(shù)吃小數(shù)”的錯誤,從而導致信譽值計算不合理.由于原始數(shù)據(jù)的分布可以近似為高斯分布,因此采用標準差法對資源提供的數(shù)據(jù)進行歸一化處理,信譽模型如下所示:
其中,S(xi)為完成任務xi后增加的信譽數(shù);Z(xi)=((xi-μ1)σ1)×10,Z(xi)表示資源提供方在完成任務時消耗的資源歸一化后的表達式,其中表示樣本均值,表示樣本方差;M(xi)表示資源提供方的平均在線時間,即活躍度函數(shù);P(xi)表示用戶對xi的評分,P(xi)∈[0,10];t1+t2+t3=1,t1,t2,t3的具體取值要根據(jù)場景來決定;F表示影響因子.
近期平均信譽值RAC[16]:
RAC(new)為新的近期信譽值;RAC(old)為之前的信譽值;d(t)為衰減函數(shù);t是從上一次RAC更新到本次RAC之間的以秒計的時間間隔(常量604 800指1周的總秒數(shù));credit(new)為完成任務或定時結(jié)算后增加的信譽數(shù)(即S(xi)).此處假設(shè)1周算1個周期,新加入的用戶會被分配基礎(chǔ)信譽值.
為了更好地維護云邊協(xié)同平臺與區(qū)塊鏈系統(tǒng),將對一些惡意牟利或破壞行為進行懲處.對于一些作惡行為懲處力度的衡量依據(jù)為作惡行為對云邊協(xié)同平臺與區(qū)塊鏈的影響.
如表1中有物理層面故意破壞、計量數(shù)據(jù)故意上報錯誤、用戶嚴重差評等行為會觸發(fā)信譽懲處.每一種作惡行為對系統(tǒng)的影響因子不同,如當云服務商對物理層面進行破壞時,如頻繁斷電、實際調(diào)度時與申報的可提供資源參數(shù)不符等情況,將云服務商設(shè)備部署資源大小與云服務商信譽多少作為扣除信譽的權(quán)重,對云服務商進行懲處,若云服務商在系統(tǒng)中承擔更多的任務,發(fā)生作惡行為時懲處力度也更大.
表1 信譽懲處
本文提出了一種基于區(qū)塊鏈的云邊協(xié)同業(yè)務系統(tǒng),并通過云邊協(xié)同與區(qū)塊鏈技術(shù)相結(jié)合給出了具體的系統(tǒng)架構(gòu).思路上,利用區(qū)塊鏈對于數(shù)據(jù)存證的不可篡改的特性,對于多方間的調(diào)度、采集和賬單數(shù)據(jù)進行可信存證,解決了云邊協(xié)同主體間資源調(diào)度時的互不信任問題.這需要對于云邊協(xié)同的簽約、調(diào)度、采集和結(jié)算等業(yè)務功能模塊與接口流程等方面進行重構(gòu).另外本文還提出了一種信譽懲處機制,該機制可以動態(tài)地衡量云服務商的服務質(zhì)量并對違規(guī)行為作出相應措施,同時有利于市場良性競爭,保持云邊協(xié)同生態(tài)的穩(wěn)定發(fā)展.
本系統(tǒng)中區(qū)塊鏈與云邊協(xié)同采取松耦合的設(shè)計,由云邊協(xié)同平臺負責統(tǒng)一資源調(diào)度.雖然松耦合的方式下兼容性較高,但目前云邊調(diào)度平臺掌控所有資源分布,以資源利用率、調(diào)度效率為導向統(tǒng)一進行調(diào)度.首先去中心化程度仍能進一步優(yōu)化,可采用分布式調(diào)度子系統(tǒng)進行集群管理的模式.其次云邊協(xié)同平臺調(diào)度算法并未實現(xiàn)上鏈,未來將考慮通過智能合約的方式可信地運行云邊調(diào)度算法.但分布式調(diào)度子系統(tǒng)會影響資源利用率和調(diào)度效率,基于智能合約的調(diào)度模式由于算法的復雜性會導致調(diào)度算法性能的大幅度降低.未來的工作方向可基于以上問題進行深入研究.
另外,在系統(tǒng)的安全隱私[17]等方面,后續(xù)可將零知識證明、同態(tài)加密等技術(shù)與系統(tǒng)融合,實現(xiàn)數(shù)據(jù)加密與身份隱匿,提高系統(tǒng)的隱私性;以及許可管理多級CA的具體架構(gòu)、黑名單與白名單的詳細設(shè)計等問題.