趙 姣,趙 則,范海龍
(江蘇大學(xué)計算機科學(xué)與通信工程學(xué)院,江蘇鎮(zhèn)江 212013)
近年來隨著區(qū)塊鏈技術(shù)的高速發(fā)展以及文獻[1]的發(fā)布,區(qū)塊鏈技術(shù)在各行各業(yè)的落地實踐已經(jīng)展開。伴隨著外賣市場的火爆,信用評價問題也日益尖銳。不少商家為牟取利益,雇人刷單、刷評,嚴(yán)重阻礙外賣電商的發(fā)展。
各個行業(yè)面臨著信用危機,但是現(xiàn)有的基于傳統(tǒng)數(shù)據(jù)庫的系統(tǒng)還存在著不小的問題,集中的數(shù)據(jù)庫只記錄當(dāng)前的信息,不跟蹤以前記錄的信息,這就導(dǎo)致一旦信息被篡改,將無法溯源。并且傳統(tǒng)數(shù)據(jù)庫沒有去中心化,還需要一個集中管理人員(機構(gòu)),這意味著可以付出很小的代價來賄賂中心人員(機構(gòu))從而篡改信息。
因此,利用區(qū)塊鏈的去中心化、分布式、匿名性等特點,創(chuàng)新性地提出了一種結(jié)合智能合約技術(shù)進行數(shù)據(jù)過濾的存儲和共享方案,該方案可以在保護用戶隱私的情況下將用戶對商家的評價哈希上鏈并實現(xiàn)安全透明的數(shù)據(jù)存儲及共享。其立足區(qū)塊鏈底層技術(shù),將區(qū)塊鏈不可篡改、不可偽造及可溯源的特性用于外賣評價機制行業(yè),對即將上鏈的數(shù)據(jù)進行過濾,使已上鏈的數(shù)據(jù)難以被篡改,讓所查詢到的數(shù)據(jù)得到可信度驗證。鑒于提出的模型所需,選擇支持智能合約的以太坊平臺進行開發(fā)。
基于評價信任機制來說,國內(nèi)外目前對于各平臺評價機制的研究[2-4]也不在少數(shù)。其中,文獻[3]提出的建立于區(qū)塊鏈技術(shù)基礎(chǔ)上的共識信任可在疫情隔離期間提高了公共服務(wù)與市場交易的可獲得性、可持續(xù)性和便利性;文獻[4]則對比現(xiàn)有信任評價機制的優(yōu)點與不足,設(shè)計了基于霧計算模式的新型信任評價模型,并對其進行了驗證。
自從2016 年,工業(yè)和信息化部發(fā)布了《中國區(qū)塊鏈技術(shù)與應(yīng)用發(fā)展白皮書》以來,我國對于區(qū)塊鏈的各種應(yīng)用研究[5-8]也相繼展開。其中,文獻[6]提出了一種基于區(qū)塊鏈的中草藥質(zhì)量安全管理模型,通過利用區(qū)塊鏈的不可篡改、可追溯等特性整合中草藥的生產(chǎn)、加工、交易等流程并進行管理。文獻[7]利用Hyperledger Fabric 以及哈希算法等技術(shù)解決了教育領(lǐng)域數(shù)據(jù)“上鏈”的可信問題,實現(xiàn)了安全高效的數(shù)據(jù)共享,對該項目具有較大指導(dǎo)意義,但其是在Hyperledger Fabric 上實現(xiàn)的,而基于該項目需要加入自寫智能合約的特性,選擇了以太坊平臺,它不像Hyperledger Fabric 平臺有很高的模塊集成性,而是更加靈活可編譯。另外還有文獻[8]發(fā)表了區(qū)塊鏈的隱私保護方法,對該文有較大幫助。
該文擬搭建一個基于區(qū)塊鏈技術(shù)的評價存儲共享平臺。該平臺分為四個層,分別是應(yīng)用層、合約層、區(qū)塊層和數(shù)據(jù)層。其中應(yīng)用層又包含三個模塊:消費者模塊、商家模塊和管理員模塊。合約層則是負責(zé)數(shù)據(jù)上鏈前對數(shù)據(jù)進行篩選過濾,先從源頭提高評論數(shù)據(jù)的有效性和可信度。區(qū)塊層(區(qū)塊鏈體系結(jié)構(gòu)如圖1)則負責(zé)將評論信息(包括顧客信息、商家信息、顧客實時可信賴值、評論內(nèi)容)的哈希值上鏈,利用區(qū)塊鏈去中心化、分布式、可溯源等特性可以有效抵擋數(shù)據(jù)篡改等網(wǎng)絡(luò)攻擊。數(shù)據(jù)層則是存儲具體評論內(nèi)容的地方,能在收到用戶的查詢請求時,將所查詢結(jié)果的哈希值與鏈上哈希值進行對比驗證,結(jié)果的一致性可以確保被分享的數(shù)據(jù)是真實有效的。整體模型架構(gòu)如圖2 所示。
圖1 區(qū)塊鏈體系結(jié)構(gòu)圖
圖2 整體模型架構(gòu)圖
應(yīng)用層中的消費者模塊設(shè)計有注冊、上傳評論和查詢功能。商家模塊可以實現(xiàn)注冊、查詢功能。管理者模塊則是負責(zé)整個系統(tǒng)平臺的運營維護以及負責(zé)保管作為區(qū)塊鏈備份的數(shù)據(jù)庫的運維。其中,在消費者上傳評論前,引入了智能合約技術(shù)[9-10],消費者的評論必須滿足合約中事先寫好的約束條件,才能被順利上鏈。
合約層中計劃部署的合約如下:
1)當(dāng)上傳的評論中含有敏感詞或大量重復(fù)字詞時,合約將其定為無效評論,不予上鏈。
2)當(dāng)顧客上傳的評論超過規(guī)定字?jǐn)?shù)時(假設(shè)為100),合約判定評論無效,不予上鏈。
3)每當(dāng)顧客成功發(fā)表一條評論,合約啟動,更新當(dāng)前用戶的可信賴值。
區(qū)塊層中的每個區(qū)塊即一條評論,整個區(qū)塊的數(shù)據(jù)包括用戶信息和評論內(nèi)容所生成的哈希值。又由于區(qū)塊鏈本身的特性,確保了區(qū)塊鏈上的數(shù)據(jù)幾乎是不可篡改的,這也就保證了鏈上數(shù)據(jù)的有效性和完整性[11]。但由于哈希運算是一項不可逆的過程,只能通過驗證哈希值來確定數(shù)據(jù)是正確有效的。所以又在評論通過智能合約篩選時,把有效數(shù)據(jù)拷貝到了數(shù)據(jù)庫中,以便用戶查詢。
數(shù)據(jù)庫層中,當(dāng)用戶申請查詢某家店的歷史評論時,數(shù)據(jù)庫接到請求會返回對應(yīng)的評論,但是在展示給用戶前,數(shù)據(jù)庫中返回的結(jié)果都需要進行哈希運算,并與對應(yīng)區(qū)塊鏈上的哈希值進行對比,如果對比結(jié)果一致,則說明數(shù)據(jù)無誤,可被分享給用戶;如果結(jié)果不一致,則說明數(shù)據(jù)庫中的數(shù)據(jù)已被篡改,評論無效[12]。
在該項目平臺中,理論上認(rèn)為可以在上鏈前把評價機制事先部署在智能合約上,由智能合約自動完成每個區(qū)塊上評價信息的篩選過濾,從而保證鏈上數(shù)據(jù)的可信度[13]。其中,在評價機制中,規(guī)定一個可信賴值T。
在平臺上注冊時間更長、成功評論次數(shù)更多、每次成功評論的字?jǐn)?shù)相對更多、均單消費更多的用戶能得到更多的信賴值,表明該用戶的評價是更值得推薦和信賴的。并將這些因素通過加權(quán)方式計算出一個具體的可信賴值T,用戶評價可信賴值表如表1 所示。
表1 用戶評價可信賴值表
用戶可信賴值T=T1+T2+T3+T4。假設(shè)當(dāng)每次評價信息上鏈前,智能合約都會自動計算出當(dāng)前時刻該用戶的可信賴值,可信賴值T高的用戶評價會被更多的人看到,以此提高評價的可信度[14]。
文中采用哈希存證方式進行數(shù)據(jù)上鏈,以便于在用戶查詢時,與數(shù)據(jù)庫中存儲內(nèi)容的哈希值作比較,驗證信息是否真實可信。由于區(qū)塊鏈的公開透明性以及上鏈數(shù)據(jù)中包含有用戶的個人數(shù)據(jù),所以采用哈希存證方式上鏈。利用哈希算法的不可逆性以及區(qū)塊鏈的防篡改性,可以有效防止個人隱私數(shù)據(jù)的泄露以及評論信息被篡改,大大提高了數(shù)據(jù)的安全性和真實性。
用戶查詢評論并可驗證所得信息是否真實有效,其具體步驟如下:
1)用戶登錄,并輸入商家名進行查詢,發(fā)送查詢請求。
2)從數(shù)據(jù)庫中查詢到有關(guān)商家歷史評論。
3)將數(shù)據(jù)庫中查到的數(shù)據(jù)進行哈希運算,假設(shè)得到哈希值a。
4)提取區(qū)塊鏈中對應(yīng)數(shù)據(jù)的哈希值b,如果a=b,則驗證數(shù)據(jù)有效完整,可共享;如果a≠b,則說明數(shù)據(jù)庫被篡改,以區(qū)塊鏈數(shù)據(jù)為準(zhǔn)。用戶查詢模塊模擬流程如圖3 所示。
圖3 用戶查詢模塊模擬流程
1)用戶注冊
用戶注冊時只需要填寫自己的以太坊地址和用戶名,系統(tǒng)會自己記錄下注冊時間以及序號,并把用戶信息保存在用戶數(shù)據(jù)表中,確保每一個用戶名都可以映射到對應(yīng)的地址上。同時調(diào)用isExistUserAddress和isExistUsername 函數(shù),判斷用戶地址和用戶名是否已經(jīng)存在/注冊。若存在,則調(diào)用createUser 函數(shù)創(chuàng)建用戶并把用戶信息保存到列表中。此外,還設(shè)置了findUserAddressByUsername 函數(shù),可以通過用戶名來查找其地址,進而通過findUser 函數(shù)來獲取用戶的所有注冊信息,其目的在于對某些不當(dāng)言論進行追溯,正式使用時會將電話號碼加入注冊信息,使溯源更為真實。商家注冊的流程基本一致,不再贅述。
2)評價機制
最重要的部分是評價機制,首先設(shè)置了顧客和商家兩個簡單的結(jié)構(gòu)體,只需要包括他們各自的地址和用戶名,接著設(shè)置評論結(jié)構(gòu)體,主要由三個字段組成:來源地址、目的地址、評論內(nèi)容。它在用戶和商家間建立了聯(lián)系,并允許用戶添加評論給商家,用戶可以調(diào)用newAssess 函數(shù)發(fā)布評論,也可以使用viewAssess 函數(shù)查看所有評論。
1)創(chuàng)建新用戶,創(chuàng)建用戶數(shù)據(jù)流向表如表2所示。
表2 創(chuàng)建用戶數(shù)據(jù)流向表
2)通過用戶名檢索對應(yīng)地址信息,檢索地址信息數(shù)據(jù)流向表如表3 所示。
表3 檢索地址信息數(shù)據(jù)流向表
3)寫新評論(來源地址、目的地址、評論內(nèi)容),新評論上鏈數(shù)據(jù)流向表如表4 所示。
表4 新評論上鏈數(shù)據(jù)流向表
該文提出的平臺評價存儲模型與傳統(tǒng)的數(shù)據(jù)庫相比,在安全性方面有了很大推進,如下:
1)在區(qū)塊鏈技術(shù)中,如果有結(jié)點想對區(qū)塊鏈發(fā)起攻擊(篡改信息),那么其必須至少掌握全鏈51%的算力,這使得鏈上數(shù)據(jù)的防篡改性能大大提高,也就確保了用戶發(fā)表的評論信息真實有效。其次,該模型運用的哈希存證上鏈方式,利用哈希算法的不可逆性及唯一性,可在數(shù)據(jù)被共享時再一次驗證其真實有效性。
2)利用智能合約自動進行數(shù)據(jù)上鏈前的篩選,并且計算出個人信用度量值,實時更新在個人信息中,可以幫助平臺高效推薦優(yōu)質(zhì)評價。
區(qū)塊鏈技術(shù)的去中心化、分布式和防篡改性等特性讓它能很好地應(yīng)用于數(shù)據(jù)的存儲與共享等方面。該文提出的基于區(qū)塊鏈技術(shù)的外賣平臺評價機制模型也可以應(yīng)用于一般平臺。它利用了區(qū)塊鏈的特性和智能合約[15]對評價信息的自動過濾篩選,從個人來講,能更好地保護用戶的個人隱私以及時刻提醒用戶個人信用的情況;從平臺來講,能幫助平臺更好地運營,幫助客戶從大量評價中選出更優(yōu)結(jié)果[16]。當(dāng)然,該文提出的模型在可信賴值的計算上還有待改善,理論上還有比之更高效可信的算法模型。