何云華 李夢茹 李 紅 孫利民 肖 珂 楊 超
1(北方工業大學計算機學院 北京 100144)2(物聯網安全技術北京市重點實驗室(中國科學院信息工程研究所) 北京 100080)3 (西安電子科技大學網絡與信息安全學院 西安 710071) (heyunhua610@163.com)
群智感知是指大規模的用戶通過其攜帶具備感知、計算能力的移動終端采集并共享感知數據,對數據進行測量、分析、估計等處理后提取與公共利益相關現象或信息的技術.群智感知是物聯網與眾包思想的結合,隨著互聯網+的發展,智能手機、Pad、手環等智能終端的普及,群智感知在環境污染質量監測、環境噪音地圖、實時交通狀況、城市網絡覆蓋地圖、路邊停車位實時監測、室內定位等方面已經得到了廣泛的應用.
群智感知任務的執行依賴于大量用戶的參與,需要消耗用戶的時間精力以及其智能終端設備的電量、存儲與計算資源,并且存在泄露用戶隱私的風險.用戶應被給予相應的報酬以激勵其參與感知任務,但用戶都是自私的,可能會發起欺騙或合謀攻擊來獲取更多的獎勵.因此,設計一種安全可信的激勵機制[1]就顯得尤為重要.
現有的激勵機制主要有信譽機制、互惠機制和基于電子貨幣的機制.信譽機制[2]根據用戶信譽度為用戶提供相應的服務,但信譽機制的激勵方式不明確并且易受女巫(sybil)攻擊[3]和洗白(whitewashing)攻擊[4].而互惠機制[5]采用等價交換原則激勵用戶參與,但需要建立長期的通信或互惠關系.基于電子貨幣的激勵機制是普遍采用的方法,通過給予用戶一定數額的電子貨幣以激勵其參與感知,其電子貨幣的發行和流通由類似銀行的可信中心來管理.但可信中心通常在現實生活中是難以實現的,可能會為了利益私自出售用戶隱私數據或與參與用戶共謀,而且也容易遭受攻擊,一旦被攻擊,將導致激勵機制的混亂.
針對以上問題,本文提出一種群智感知應用中基于區塊鏈的分布式激勵機制.在該機制中,服務器發布感知任務、用戶上傳感知數據、服務器給予用戶報酬等過程都在區塊鏈中被相應記錄,有效解決了可信第三方介入帶來的安全問題.區塊鏈中的礦工擔任數據驗證工作,作為利益無關者,比由服務器驗證的方式更可信.由于礦工可能發起假冒攻擊,本文提出數字水印的方式對用戶上傳的感知數據進行保護.本文貢獻有3個方面:
1) 提出一種基于區塊鏈的分布式激勵機制,激勵高技能用戶參與感知任務的同時,避免了可信第三方帶來的安全隱患;
2) 采用數字水印技術對用戶上傳的感知數據進行處理,有效防止了礦工利用他人數據冒名領取獎勵的問題;
3) 仿真實驗表明本文提出的激勵機制的可行性和有效性.
通過設計合理的激勵方式能激勵更多的參與者參與感知任務,并提供高質可靠的感知數據,因此激勵機制是群智感知應用研究中的一個重要問題.
1) 群智感知應用中的激勵機制
群智感知應用中的激勵機制可劃分為信譽機制、互惠機制和基于電子貨幣的機制[5-8]3類.信譽機制評價用戶的信譽值,高信譽用戶可獲得更好的服務.Xie等人[6]采用信譽機制隔離感知系統中低水平工作者以激勵高水平工作者參與感知任務,從而獲得高質量的任務解決方案. Mohannad等人[7]提出一種參與者信譽值估計方法,使用RSEP(repu-tation system to evaluate participants)算法估算出最高信譽值的參與者并給予激勵,以此來提高感知應用的質量,解決了不同參與者上傳的感知數據參差不齊的問題.但信譽機制的激勵方式并不具體,較難給出新加入用戶合適的信譽值,容易受女巫(sybil)攻擊和洗白攻擊.
互惠機制根據用戶貢獻度匹配等價的服務.Gong等人[9]研究了在給定了社會信任結構的基礎上,構建基于社會信任的互惠(social trust assisted reciprocity, STAR)激勵機制,并對該激勵機制用戶的響應效率進行了深入的研究.研究表明此機制能夠在構筑的社會圖和用戶請求圖的循環流中達到效用最大化.由于互惠機制需要建立長期的通信或互惠連接,對于個性化的需求適用性較差.

Fig. 1 Crowdsensing network model圖1 群智感知網絡模型
基于電子貨幣的激勵機制使用電子貨幣激勵用戶參與群智感知任務.Zhang等人[10]提出一種將波普法和EM算法有效結合的2階算法以實現對多類人群的標識;Wang等人[11]提出一種群智感知中基于質量的綜合定價機制,可以根據感知質量水平得到工作者的客觀排名;Peng等人[8]提出的激勵機制,解決了用戶上傳的感知數據質量參差不齊而影響感知網絡的服務質量的問題.他們提出以貢獻程度為支付標準來設計激勵機制,有效地提高了理性參與者上傳高質量感知數據的積極性.以擴展的經典的期望最大化算法(EM算法)估算感知數據質量,并通過消除信號傳輸中的噪音降低數據信息的不確定性來量化用戶的貢獻,以此為標準給予用戶相應的最合適報酬.但這些激勵機制都依賴可信中心,會面臨著安全與隱私威脅.一方面,可信中心可能會濫用職權或出售隱私數據,使其利益最大化;另一方面,可信中心故障或被攻擊,都會影響激勵機制的實施,造成系統的混亂.
2) 分布式激勵機制
基于區塊鏈的激勵機制是一種優選的可證安全的分布式激勵[12-13],當前主要用于安全多方計算以保證公平性.Andrychowicz等人[14]提出基于Bit-coin的限時承諾機制:在某個限定時間內完成承諾的任務,若未履行承諾則進行懲罰.將該限時承諾機制用于實現在線的多人彩票協議,保證了賭徒遵守協議的規定,能夠保證彩票協議的公平性.在另一篇文獻中Andrychowicz等人[15]對該Bitcoin交易語法進行了擴展,使其支持限時承諾功能,并且能夠適用于兩方安全計算的所有計算函數;Kumaresan等人[16]提出了一個更通用比特幣的激勵框架,可以實現對安全計算中違反協議方進行懲罰.
Li等人[17]提出一種群智感知應用中基于區塊鏈的激勵框架CrowdBC,CrowdBC設置了應用層、區塊鏈層和存儲層3層,應用層利用智能合約進行用戶管理和任務管理,區塊鏈層利用礦工驗證感知數據,存儲層存儲任務和解決方案的數據.但是沒有給出具體的質量估計報酬分配方案.
本文不同于先前的工作,采用基于區塊鏈的激勵機制解決群智感知應用中的安全激勵問題,而且考慮了礦工發起篡改攻擊、假冒攻擊、共謀攻擊等情形.

激勵機制的設計直接決定著參與用戶的積極性及感知任務質量,是群智感知模型的最重要的研究內容之一.激勵機制設計會面臨著3種挑戰:
1) 完全可信的第三方在現實生活中往往是不存在的,可能會受利益驅使濫用其信息托管權,出售用戶隱私信息;
2) 感知平臺也可能與某些用戶合謀而發起共謀攻擊以求無償或最小化代價地得到感知數據;
3) 托管信息的第三方本身就是感知網絡模型中安全最薄弱的環節,最易受攻擊者攻擊,一旦用戶信息被攻擊者竊取就會導致混亂.

Server給予上傳感知數據用戶獎勵的過程可看作一個交易,此次交易產生的區塊經由礦工驗證后接入區塊鏈中.礦工們驗證每筆新的交易并把它們記錄在總賬簿上.每隔一段時間就會有1個新的區塊被“挖掘”出來,每個區塊里包含著從上一個區塊產生到目前這段時間內發生的所有交易,這些塊被依次添加到區塊鏈中.包含在區塊內且被添加到區塊鏈上的交易被稱為“確認”交易,交易經過“確認”之后,所有交易都無法更改,從而保證了感知過程的可靠性.該激勵架構不依賴可信第三方,擺脫了可信中心帶來的安全隱患.
由于感知任務的驗證工作由礦工(Miner)負責,礦工可能利用看到的交易內容進行假冒攻擊或者合謀攻擊來冒名頂替感知數據提供者而非法獲取報酬.針對這個問題,本文使用數字水印[21](digital watermarking)的方法對感知數據加水印處理,從而Server能夠檢查水印確定感知數據宿主,防止礦工將驗證的感知數據據為己有領取報酬.

Fig. 2 Blockchain-based incentive framework圖2 基于區塊鏈的激勵框架

如圖3所示交易任務語法格式.


Fig. 3 Task announcement
圖3 任務公告
這一階段用戶評估感知代價,決定是否執行感知任務并上傳感知數據.用戶讀取Server發布的感知任務Task-Claim,并評估感知代價.用戶ui需將購置安裝智能設備和聲音收錄裝置的代價、花費的時間、精力代價、執行感知任務花費的設備計算和存儲代價,流量費用等相加的總代價ci與感知報酬比較.假定參與者的感知代價服從概率分布,有一個概率分布函數f(ci)以及一個累積分布函數F(c).理性的用戶只有在預計上傳感知數據后獲得的感知報酬大于或等于c時才會執行感知任務.一般情況下,用戶的智能設備和聲音收錄裝置都是已有資本,無需為執行感知任務重新購置安裝,這部分代價為0.

用戶最大化自己的利益,即花最小的代價得到最大的利益.用戶實際所得利益為
(1)
當用戶期望的感知報酬rexpect≥ci(代價)時用戶執行感知任務,采集噪音,上傳感知數據給礦工(Miner).礦工驗證用戶上傳的感知數據質量,將驗證結果告知感知平臺(Server).
用戶將感知數據上傳,由礦工對感知數據的質量進行驗證.礦工(Miner)首先估計感知數據的質量以作為Server給予用戶報酬的標準,數據質量劃分的等級越多,質量估計越精細,其激勵機制越精確.Server會通過權衡精度和復雜性來最大化自己的利益,給出不同的質量標準等級,根據不同的質量進行報酬分配,鼓勵用戶上傳高質量的數據.



E-step:計算似然函數的期望值,相對于P的條件分布給定了E的當前估計下的觀測值S,
(2)
(3)
迭代步驟E-step和M-step直到估計值收斂.具體步驟如下:

(4)
(5)
真實的噪音區間分布為
(6)

i=1,2,…,n.
(7)

1) 貢獻量化
給定了感知數據時,信息不確定性hb為
(8)

(9)
其中,a=1,2,…,n且a≠b.

(10)
0 lg 0=0,質量qk=1的感知數據會有最小的不確定性,hn(1)=0,最大的貢獻cn(1)=lgn.雖然從不出錯和一個總是出錯的二進制信道對于通信同樣有效,但這里只考慮和獎勵感知數據質量在范圍[0.5,1]之間的.
Miner將量化后的貢獻量發給Server,然后Server依之將對應的感知報酬發給用戶ui.
2) 報酬分配
對于Server來講,任務Task-Claim的價值量為V,用戶獲得報酬為r.由感知代價概率密度函數f(ci)以及累積分布函數F(c)得Server獲得的利益為

(11)
ci的分布獨立于感知價值V和報酬r,期望收益計算為


(12)
因此求函數ProfitServer(r)的一階導數并求解,Server得到最合適的報酬r*來最大化收益:
(13)

因此Server獲得利潤ProfitServer為
(14)
基于獎勵的最佳質量由r*決定:
(15)


(16)


PaymentServer→ui: (in DepositServer)In-script: SigSKMiner(Payments→ui), n,r?,SigSKui(Hash(Dataui)),Dataui,eui;Out-script: Ver(SigSKMiner(Payments→ui)),qui=g(eui)= ∑nl=1euill∕n,SigSKMiner(qui);Value: rui=r?×lgn+quilgqui+(1-qui)lg((1-qui)∕(n-1));Time-lock: τ.
Fig. 4 Crowdsensing payment
圖4 感知報酬
Server根據不同質量給出不同報酬(定價機制).Server付報酬rui給用戶ui.Server和User之間的交易由Miner驗證,通過后與其他在某段時間之內的所有交易形成區塊,接入區塊鏈.
在分布式交易中,Server和User作為交易雙方進行交易,其交易數據D′(區別于感知數據D)被打包到一個“數據塊”或“區塊”(block)中.D′中包含感知數據D.
但是在這個激勵框架里,礦工在擔任驗證感知數據的任務,眾所周知:區塊鏈的結構沒有控制交易的中央機構,所有的交易清單都是公開的,因此攻擊者是可以輕易獲取用戶的身份信息和用戶上傳數據,所以礦工可能發起假冒攻擊冒名頂替用戶領取報酬.因此,需設計一個合理的激勵機制打消用戶在執行感知任務時被冒名頂替的顧慮,從而更好地激勵用戶的參與.這里使用數字水印來杜絕攻擊者發起的假冒攻擊,竊取用戶信息冒名頂替用戶領取感知報酬.
本文以音頻水印為例說明水印的作用[27].嵌入算法Embed和檢測算法Detect可采用互為可逆的算法.也可以采用不可逆的水印算法,如嵌入算法中采用多對一的映射函數使得算法不可逆.Detect和Embed互不可逆時具有很高的安全性.
水印信號W定義為
(17)

1) 水印嵌入
水印信號的嵌入過程為
A′=A⊕Embed(A,W,K),
(18)
A為音頻數字媒體,W為所有的水印信號集合,K為水印密鑰.

當信號為隨機信號或偽隨機信號時,相似度檢驗可以證明檢測信號就是水印信號.
通過:
或

音頻水印嵌入與檢測的具體過程如下:
有M個樣本的音頻信號x(i),i=0,1,…,M,音頻信號平均分成Ns段,每段N個樣本,第k段的數據樣本為Xk(i)=X(kN+i),i=0,1,…,N-1,k=0,1,…,Ns-1水印信號w為0均值、單位方差的高斯隨機數.
通過對相應的各子帶掩蔽閾值和安靜掩蔽閾值求和得到全局掩蔽閾值Tg(i):
(19)
其中,Tq(i)表示頻率i處的安靜閾值,Ttm(i,l),Tnm(i,m)為音調與非音調成分的掩蔽閾值,L和M分別為音調與非音調成分的子帶數.
對第k段音頻信號Xk(i)( 0≤i i=0,1,…,Nw-1. (20) (21) (22) 2) 水印檢測 (23) 劃線部分均值濾波后近似為0.提取的水印為 (24) 用密鑰產生原始水印信號w(t),計算w(t)與v(t)的互相關值: (25) 1) 防篡改攻擊 在群智感知的激勵框架中,數字簽名的使用能夠有效防止惡意的數據篡改.用戶成功領取報酬需要身份和數據的雙重認證.數據質量的認證由礦工(Miner)負責.而身份信息由用戶ui以數字簽名的方式發給Server,如果Server解簽名成功則成功認證ui的身份,然后給予用戶報酬,否則不給予報酬,這樣就完成了用戶ui身份認證的工作.另外Server收到密文和數字簽名后計算明文的摘要并用公鑰解密數字簽名,然后將用ui的公鑰解密后的摘要與計算的摘要比較,如果一致則說明數據沒有被篡改.這樣就完成了感知數據完整性的認證,能夠有效防止數據篡改.反過來User驗證Server報酬信息時也是如此. 2) 防假冒攻擊 數字水印具有魯棒性和脆弱性,魯棒性能夠保證數據信息的完整性,從而保證了數據質量不會因為添加水印而太大的變化.脆弱性使得感知數據無法被篡改.數字水印的身份特征使得每一份感知數據對應其原始作者,擔任驗證工作的礦工無法發起假冒攻擊而損害感知用戶的利益,有效防止冒名領取報酬的行為. 3) 防共謀攻擊 本文主要考慮了3類共謀攻擊: ① 用戶之間的共謀.假設用戶A與用戶B在本次感知中發起共謀攻擊,感知數據都由歷史感知質量高的一方來上傳,以獲得更高的感知報酬.但這會影響下次用戶感知數據質量的評估,當獲得的額外報酬不超過其質量評估損失時,共謀攻擊將導致A和B整體利益受損; ② 礦工與用戶的共謀攻擊.礦工抬高用戶的感知數據質量水平來獲取一定的共謀報酬,但這需要用戶與礦工事先協商,而本方案中感知數據質量評估是隨機分配給礦工的,很難成功發起共謀.即使協商成功,其他礦工也會對該用戶的感知數據質量進行評估,當發現評估結果超出正常波動范圍時也可究查出該礦工的作弊行為; ③ Server與礦工的共謀.Server可能與礦工發起共謀攻擊,通過礦工降低感知數據質量水平以最小的代價得到最多高質量的感知數據.但該類共謀攻擊需要網絡中絕大多數礦工與Server達成共識,這是很難實現的,而且用戶若獲得相應的報酬就會打擊其積極性,違反了激勵機制設計的初衷.這里僅對共謀攻擊進行簡單闡述,詳細理論性的證明將在我們后續的工作中進行闡述. 4) 系統健壯性 基于區塊鏈的群智感知模型得益于區塊鏈本身的結構特性,無第三方,因而能夠保證群智感知激勵模型中由于第三方的存在而產生的安全薄弱點.在有第三方的系統中第三方被攻克就會導致整個系統癱瘓,而區塊鏈無此風險,因而具有足夠的健壯性.區塊鏈中的節點都是平等的,因而當系統中某些參與節點或礦工被攻擊不會影響系統其他節點,系統可以繼續工作.區塊鏈的結構特征也能夠有效防止數據被篡改和竊取.另外,傳統感知模型中Server是驗證感知數據的一方,也是付給用戶感知報酬的一方,因此作為利益相關一方,用戶有理由懷疑Server會惡意降低感知數據的質量水平估計結果少付報酬給用戶從而損害用戶的利益.而基于區塊鏈的感知模型由利益無關的礦工來驗證數據能夠有效避免用戶可能受到的不公平待遇. 我們在Linux環境下模擬了EM算法不同的參數(種子集群數、感知矩陣、迭代次數)的影響:感知矩陣En×n,n=1,2,…的每一行為觀察值,每一列是特征值,在EM算法的第4步迭代計算期望值時的邊界值為ε.這里設定邊界值ε=0.001,對已知數據群集S,迭代次數I,和矩陣的階數n模擬測試其對計算代價的影響: Fig. 5 The impact of clusters圖5 集群的影響 由圖5可知隨著集群數量的增大,不同的迭代次數I其運行代價(runtime)不斷增大,但是在集群數為10~15時其代價幾乎不變.為此,考查10~15的集群數的影響,結果如圖6所示,集群數為11時EM算法代價最低.因此數據集訓練時集群數選擇為11時最合適. Fig. 6 The impact of clusters(10~15)圖6 集群的影響(10~15) En×n的感知矩陣在階數n不斷變化時隨著迭代次數的增大,算法代價不斷增大,由圖7可知當迭代次數I=3時,n≤40時代價增長相對緩慢,而n>40時增漲幅度較大,而隨著迭代次數的增大(I=10,20),增幅變大的拐點左移,當I=20時拐點已經降到n=10.因此當感知矩陣比較小(n≤10)時可以增大迭代次數來提高感知數據質量的估計精確度;當感知矩陣比較大時(n>40)如果降低迭代次數是性價比較高的選擇. Fig. 7 The impact of crowdsensing matrix圖7 感知矩陣的影響 當迭代次數不斷增大時,運行代價線性遞增,并且隨著感知矩陣階數的增大,增幅系數越大.圖8中可以看出矩陣為n=50時其代價系數非常大,相對于n=20的相對增幅要遠大于n=20比n=3的相對增幅.因此出于代價的考慮應該選擇合適的迭代次數. Fig. 8 The impact of iteration number圖8 迭代次數的影響 本文針對群智感知中的激勵問題,提出了無第三方交易控制中心的基于區塊鏈的激勵機制.針對此分布式激勵機制中礦工發起假冒攻擊的問題,本文采用數字水印的方式防止礦工及其他人員利用或濫用感知數據.通過仿真實驗驗證了基于區塊鏈的激勵機制的有效性和可行性.




4 安全性和性能分析
4.1 安全性分析
4.2 性能分析





5 總 結