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