周雨晗 尚澤昊 耿曉晗 北方工業(yè)大學(xué)計算機(jī)學(xué)院
基于區(qū)塊鏈的手機(jī)APP點(diǎn)評系統(tǒng)
周雨晗 尚澤昊 耿曉晗 北方工業(yè)大學(xué)計算機(jī)學(xué)院
APP點(diǎn)評系統(tǒng)可幫助用戶選擇適合的App,具有廣泛的應(yīng)用前景。然而,現(xiàn)有的點(diǎn)評系統(tǒng)存在著易受DDoS攻擊、真實(shí)性驗(yàn)證缺乏問題。因此,本文設(shè)計了一種基于區(qū)塊鏈的分布式APP點(diǎn)評系統(tǒng),利用去中心化的區(qū)塊鏈,將用戶上傳的點(diǎn)評信息分別記錄到區(qū)塊鏈的不同節(jié)點(diǎn)上并進(jìn)行驗(yàn)證。該點(diǎn)評系統(tǒng)具有分布式安全、點(diǎn)評記錄真實(shí)可驗(yàn)證等特性。
區(qū)塊鏈,點(diǎn)評系統(tǒng)
隨著移動互聯(lián)網(wǎng)的迅猛發(fā)展,涌現(xiàn)了各類基于計算機(jī)的軟件和應(yīng)用程序。從社交到各種生活服務(wù),我們的生活被各種應(yīng)用占領(lǐng),尤其是移動設(shè)備。據(jù)統(tǒng)計,蘋果的AppStore應(yīng)用總數(shù)達(dá)220萬,谷歌Play商店應(yīng)用程序數(shù)量達(dá)270萬,我國App數(shù)量超過1700萬個。然而,在移動應(yīng)用市場涌現(xiàn)出的數(shù)量如此龐大的App中,僅有25%的App被用戶持續(xù)使用,其中,堅持更新版本活躍型App應(yīng)用數(shù)量占比僅為6%,而在1700多萬個App中,活躍型App占比僅為0.0046%。雖然整個APP市場大體的分類已經(jīng)形成并趨向穩(wěn)定,但隨著APP的火爆,APP的總體性能卻令人堪憂,部分APP無法滿足用戶的需求和市場的需要,因此評價一款A(yù)PP是極其必要的,不僅能夠讓開發(fā)商發(fā)現(xiàn)設(shè)計等方面存在的問題,做到進(jìn)一步的完善,也可以幫助用戶挑選更令人滿意的APP。
在現(xiàn)有的點(diǎn)評系統(tǒng)中,比如大眾點(diǎn)評,用戶可在系統(tǒng)上為其使用過的App進(jìn)行評分并給出自己對該款A(yù)pp的評價,點(diǎn)評系統(tǒng)根據(jù)現(xiàn)有用戶的評分計算一個綜合評分作為此款A(yù)pp的最終評分,在用戶選擇App時,為用戶提供一項性能的參考度量,同時,點(diǎn)評系統(tǒng)也是幫助商家收集用戶反饋的重要途徑。然而,現(xiàn)有的點(diǎn)評系統(tǒng)中存在以下問題:1)點(diǎn)評系統(tǒng)大多采用服務(wù)器集中式存儲數(shù)據(jù),一旦遭受DDoS攻擊,將導(dǎo)致系統(tǒng)無法繼續(xù)使用;2)App開發(fā)者為了搶占市場,存在對App刷評分以及惡意評價的現(xiàn)象,影響App點(diǎn)評結(jié)果的真實(shí)性。
為解決這些問題,本文設(shè)計了基于區(qū)塊鏈的分布式點(diǎn)評系統(tǒng)。在本系統(tǒng)中,用戶利用點(diǎn)評客戶端將對移動應(yīng)用App的點(diǎn)評信息上傳到區(qū)塊鏈,由區(qū)塊鏈上的節(jié)點(diǎn)共同對點(diǎn)評進(jìn)行驗(yàn)證,從而篩選出真實(shí)可信的評論進(jìn)行記錄,驗(yàn)證的點(diǎn)評被分散地存儲在區(qū)塊鏈的不同礦工節(jié)點(diǎn)上,從而有效防止DDoS攻擊,最后區(qū)塊鏈將點(diǎn)評信息反饋至移動終端,以便用戶查看。由于系統(tǒng)采用去中心化、不可偽造的區(qū)塊鏈技術(shù),使得系統(tǒng)具有更強(qiáng)的安全性,為點(diǎn)評的可信評估提供了支撐。因此,該點(diǎn)評系統(tǒng)為用戶提供了一個客觀、真實(shí)、可信的App點(diǎn)評平臺。
區(qū)塊鏈?zhǔn)欠植际綌?shù)據(jù)存儲、點(diǎn)對點(diǎn)傳輸、共識機(jī)制、加密算法等計算機(jī)技術(shù)的新型應(yīng)用模式。共識機(jī)制是區(qū)塊鏈系統(tǒng)中實(shí)現(xiàn)不同節(jié)點(diǎn)之間建立信任、獲取權(quán)益的數(shù)學(xué)算法。區(qū)塊鏈技術(shù)具有去中心化、開放性、安全性、不可偽造、弱匿名性等特性。
區(qū)塊鏈的工作流程主要包括如下步驟:
1)發(fā)送節(jié)點(diǎn)將新的數(shù)據(jù)記錄向全網(wǎng)進(jìn)行廣播;
2)接收節(jié)點(diǎn)對收到的數(shù)據(jù)記錄信息進(jìn)行檢驗(yàn),比如記錄信息是否合法,通過檢驗(yàn)后,數(shù)據(jù)記錄將被納入到一個區(qū)塊中;
3)全網(wǎng)所有接收節(jié)點(diǎn)對區(qū)塊執(zhí)行共識算法(工作量證明、權(quán)益證明等);
4)區(qū)塊通過共識算法過程后被正式納入?yún)^(qū)塊鏈中存儲,全網(wǎng)節(jié)點(diǎn)均表示接受該區(qū)塊,而表示接受的方法,就是將該區(qū)塊的隨機(jī)散列值視為最新的區(qū)塊散列值,新區(qū)塊的制造將以該區(qū)塊鏈為基礎(chǔ)進(jìn)行延長。
圖1 區(qū)塊鏈工作流程
節(jié)點(diǎn)始終都將最長的區(qū)塊鏈視為正確的鏈,并持續(xù)以此為基礎(chǔ)驗(yàn)證和延長它。如果有兩個節(jié)點(diǎn)同時廣播不同版本的新區(qū)塊,那么其他節(jié)點(diǎn)在接收到該區(qū)塊的時間上將存在先后差別,他們將在率先收到的區(qū)塊基礎(chǔ)上進(jìn)行工作,但也會保留另外一個鏈條,以防后者變成長的鏈條。
系統(tǒng)由分布式點(diǎn)評系統(tǒng)端和客戶端構(gòu)成。分布式點(diǎn)評系統(tǒng)端的主要功能是將用戶上傳的點(diǎn)評信息提交到區(qū)塊鏈,由區(qū)塊鏈上節(jié)點(diǎn)對該點(diǎn)評信息進(jìn)行驗(yàn)證,將驗(yàn)證得到的具有真實(shí)性的點(diǎn)評記錄到區(qū)塊鏈上,并將點(diǎn)評反饋到移動終端顯示??蛻舳说闹饕δ苁怯脩艨蓪ζ涫褂眠^的App的性能進(jìn)行評分,并可通過上傳評論和截圖,同時也可瀏覽各種App的相關(guān)點(diǎn)評,以便準(zhǔn)確選擇最佳App。
圖2 點(diǎn)評系統(tǒng)基本架構(gòu)
用戶通過App上傳點(diǎn)評信息到點(diǎn)評系統(tǒng)端,這些點(diǎn)評信息被提交到區(qū)塊鏈上,基于區(qū)塊鏈去中心化的優(yōu)勢,區(qū)塊鏈中的用戶節(jié)點(diǎn)可對用戶提交的點(diǎn)評信息進(jìn)行真實(shí)性驗(yàn)證,獲得大多數(shù)用戶節(jié)點(diǎn)贊同的點(diǎn)評視為是真實(shí)點(diǎn)評,由區(qū)塊鏈上的用戶節(jié)點(diǎn)共同驗(yàn)證,保證了點(diǎn)評結(jié)果的真實(shí)性,避免了傳統(tǒng)點(diǎn)評系統(tǒng)中虛假評論的產(chǎn)生。同時,對于驗(yàn)證通過的真實(shí)點(diǎn)評信息的記錄,不同于傳統(tǒng)點(diǎn)評系統(tǒng)的集中式服務(wù)器存儲,分布式點(diǎn)評系統(tǒng)將點(diǎn)評信息分散的記錄到區(qū)塊鏈中不同的礦工節(jié)點(diǎn)上,使得系統(tǒng)能過有效避免DDoS攻擊,在一個用戶節(jié)點(diǎn)受到攻擊損壞后,不影響其他節(jié)點(diǎn)的記錄,系統(tǒng)仍可繼續(xù)使用。然后更新其客戶端數(shù)據(jù),使得用戶可以查看最新的點(diǎn)評。
用戶使用此點(diǎn)評App可查看各類App的評分情況及其他用戶的評價留言,可從中獲取App的相關(guān)信息,從而選擇自己所需的最佳性能的App。同時,用戶可以選擇使用過的軟件,對其進(jìn)行點(diǎn)評,上傳評分、評論以及截圖等,由移動終端將點(diǎn)評信息提交到區(qū)塊鏈上。
點(diǎn)評鏈?zhǔn)褂脜^(qū)塊鏈技術(shù)對所有點(diǎn)評信息進(jìn)行存儲。點(diǎn)評信息由用戶填寫并提交,成功上傳后將由礦工進(jìn)行收集驗(yàn)證并加入到點(diǎn)評鏈中。點(diǎn)評信息一旦加入點(diǎn)評鏈將不可修改,用戶可以隨時下載點(diǎn)評鏈進(jìn)行檢索查看。
點(diǎn)評信息包括軟件名稱、分類、評分、截圖、評論、點(diǎn)贊數(shù)、評論摘要、用戶簽名,其中點(diǎn)贊這一項可由其他用戶進(jìn)行操作。每次對已有的點(diǎn)評信息修改將會被重新提交,按流程加入最新的點(diǎn)評鏈中。用戶檢索到的點(diǎn)評信息將是最近一次提交的點(diǎn)評信息。
圖3 點(diǎn)評鏈
1)用戶將新的點(diǎn)評記錄向全網(wǎng)進(jìn)行廣播;
2)礦工對收到的數(shù)據(jù)記錄信息的簽名進(jìn)行驗(yàn)證,通過檢驗(yàn)后,數(shù)據(jù)記錄將被納入到一個區(qū)塊中;
3)全網(wǎng)中礦工對區(qū)塊執(zhí)行共識算法(工作量證明、權(quán)益證明等),區(qū)塊通過共識算法過程后被正式納入點(diǎn)評鏈中存儲,該區(qū)塊的隨機(jī)散列值視為最新的區(qū)塊散列值,新區(qū)塊的制造將以該區(qū)塊鏈為基礎(chǔ)進(jìn)行延長。
本文設(shè)計了一種基于區(qū)塊鏈的分布式APP點(diǎn)評系統(tǒng),利用去中心化的區(qū)塊鏈,將用戶上傳的點(diǎn)評信息記錄到點(diǎn)評鏈中,由礦工驗(yàn)證點(diǎn)評信息的簽名,一段時間內(nèi)的所有點(diǎn)評信息簽名被驗(yàn)證后,執(zhí)行共識協(xié)議產(chǎn)生隨機(jī)散列值,從而生成新的點(diǎn)評區(qū)塊加入到點(diǎn)評鏈中。該點(diǎn)評系統(tǒng)消除了可信中心帶來的安全威脅,具有分布式安全、點(diǎn)評記錄真實(shí)可驗(yàn)證等特性,擁有廣闊的市場發(fā)展前景。