周雨晗 尚澤昊 耿曉晗 北方工業大學計算機學院
基于區塊鏈的手機APP點評系統
周雨晗 尚澤昊 耿曉晗 北方工業大學計算機學院
APP點評系統可幫助用戶選擇適合的App,具有廣泛的應用前景。然而,現有的點評系統存在著易受DDoS攻擊、真實性驗證缺乏問題。因此,本文設計了一種基于區塊鏈的分布式APP點評系統,利用去中心化的區塊鏈,將用戶上傳的點評信息分別記錄到區塊鏈的不同節點上并進行驗證。該點評系統具有分布式安全、點評記錄真實可驗證等特性。
區塊鏈,點評系統
隨著移動互聯網的迅猛發展,涌現了各類基于計算機的軟件和應用程序。從社交到各種生活服務,我們的生活被各種應用占領,尤其是移動設備。據統計,蘋果的AppStore應用總數達220萬,谷歌Play商店應用程序數量達270萬,我國App數量超過1700萬個。然而,在移動應用市場涌現出的數量如此龐大的App中,僅有25%的App被用戶持續使用,其中,堅持更新版本活躍型App應用數量占比僅為6%,而在1700多萬個App中,活躍型App占比僅為0.0046%。雖然整個APP市場大體的分類已經形成并趨向穩定,但隨著APP的火爆,APP的總體性能卻令人堪憂,部分APP無法滿足用戶的需求和市場的需要,因此評價一款APP是極其必要的,不僅能夠讓開發商發現設計等方面存在的問題,做到進一步的完善,也可以幫助用戶挑選更令人滿意的APP。
在現有的點評系統中,比如大眾點評,用戶可在系統上為其使用過的App進行評分并給出自己對該款App的評價,點評系統根據現有用戶的評分計算一個綜合評分作為此款App的最終評分,在用戶選擇App時,為用戶提供一項性能的參考度量,同時,點評系統也是幫助商家收集用戶反饋的重要途徑。然而,現有的點評系統中存在以下問題:1)點評系統大多采用服務器集中式存儲數據,一旦遭受DDoS攻擊,將導致系統無法繼續使用;2)App開發者為了搶占市場,存在對App刷評分以及惡意評價的現象,影響App點評結果的真實性。
為解決這些問題,本文設計了基于區塊鏈的分布式點評系統。在本系統中,用戶利用點評客戶端將對移動應用App的點評信息上傳到區塊鏈,由區塊鏈上的節點共同對點評進行驗證,從而篩選出真實可信的評論進行記錄,驗證的點評被分散地存儲在區塊鏈的不同礦工節點上,從而有效防止DDoS攻擊,最后區塊鏈將點評信息反饋至移動終端,以便用戶查看。由于系統采用去中心化、不可偽造的區塊鏈技術,使得系統具有更強的安全性,為點評的可信評估提供了支撐。因此,該點評系統為用戶提供了一個客觀、真實、可信的App點評平臺。
區塊鏈是分布式數據存儲、點對點傳輸、共識機制、加密算法等計算機技術的新型應用模式。共識機制是區塊鏈系統中實現不同節點之間建立信任、獲取權益的數學算法。區塊鏈技術具有去中心化、開放性、安全性、不可偽造、弱匿名性等特性。
區塊鏈的工作流程主要包括如下步驟:
1)發送節點將新的數據記錄向全網進行廣播;
2)接收節點對收到的數據記錄信息進行檢驗,比如記錄信息是否合法,通過檢驗后,數據記錄將被納入到一個區塊中;
3)全網所有接收節點對區塊執行共識算法(工作量證明、權益證明等);
4)區塊通過共識算法過程后被正式納入區塊鏈中存儲,全網節點均表示接受該區塊,而表示接受的方法,就是將該區塊的隨機散列值視為最新的區塊散列值,新區塊的制造將以該區塊鏈為基礎進行延長。

圖1 區塊鏈工作流程
節點始終都將最長的區塊鏈視為正確的鏈,并持續以此為基礎驗證和延長它。如果有兩個節點同時廣播不同版本的新區塊,那么其他節點在接收到該區塊的時間上將存在先后差別,他們將在率先收到的區塊基礎上進行工作,但也會保留另外一個鏈條,以防后者變成長的鏈條。
系統由分布式點評系統端和客戶端構成。分布式點評系統端的主要功能是將用戶上傳的點評信息提交到區塊鏈,由區塊鏈上節點對該點評信息進行驗證,將驗證得到的具有真實性的點評記錄到區塊鏈上,并將點評反饋到移動終端顯示。客戶端的主要功能是用戶可對其使用過的App的性能進行評分,并可通過上傳評論和截圖,同時也可瀏覽各種App的相關點評,以便準確選擇最佳App。

圖2 點評系統基本架構
用戶通過App上傳點評信息到點評系統端,這些點評信息被提交到區塊鏈上,基于區塊鏈去中心化的優勢,區塊鏈中的用戶節點可對用戶提交的點評信息進行真實性驗證,獲得大多數用戶節點贊同的點評視為是真實點評,由區塊鏈上的用戶節點共同驗證,保證了點評結果的真實性,避免了傳統點評系統中虛假評論的產生。同時,對于驗證通過的真實點評信息的記錄,不同于傳統點評系統的集中式服務器存儲,分布式點評系統將點評信息分散的記錄到區塊鏈中不同的礦工節點上,使得系統能過有效避免DDoS攻擊,在一個用戶節點受到攻擊損壞后,不影響其他節點的記錄,系統仍可繼續使用。然后更新其客戶端數據,使得用戶可以查看最新的點評。
用戶使用此點評App可查看各類App的評分情況及其他用戶的評價留言,可從中獲取App的相關信息,從而選擇自己所需的最佳性能的App。同時,用戶可以選擇使用過的軟件,對其進行點評,上傳評分、評論以及截圖等,由移動終端將點評信息提交到區塊鏈上。
點評鏈使用區塊鏈技術對所有點評信息進行存儲。點評信息由用戶填寫并提交,成功上傳后將由礦工進行收集驗證并加入到點評鏈中。點評信息一旦加入點評鏈將不可修改,用戶可以隨時下載點評鏈進行檢索查看。
點評信息包括軟件名稱、分類、評分、截圖、評論、點贊數、評論摘要、用戶簽名,其中點贊這一項可由其他用戶進行操作。每次對已有的點評信息修改將會被重新提交,按流程加入最新的點評鏈中。用戶檢索到的點評信息將是最近一次提交的點評信息。

圖3 點評鏈
1)用戶將新的點評記錄向全網進行廣播;
2)礦工對收到的數據記錄信息的簽名進行驗證,通過檢驗后,數據記錄將被納入到一個區塊中;
3)全網中礦工對區塊執行共識算法(工作量證明、權益證明等),區塊通過共識算法過程后被正式納入點評鏈中存儲,該區塊的隨機散列值視為最新的區塊散列值,新區塊的制造將以該區塊鏈為基礎進行延長。
本文設計了一種基于區塊鏈的分布式APP點評系統,利用去中心化的區塊鏈,將用戶上傳的點評信息記錄到點評鏈中,由礦工驗證點評信息的簽名,一段時間內的所有點評信息簽名被驗證后,執行共識協議產生隨機散列值,從而生成新的點評區塊加入到點評鏈中。該點評系統消除了可信中心帶來的安全威脅,具有分布式安全、點評記錄真實可驗證等特性,擁有廣闊的市場發展前景。