張小芳,朱熔熔
(廣東工業(yè)大學 自動化學院,廣東 廣州 510000)
用戶在使用網絡服務的同時會伴隨著個人數據的產生,這些數據有著極高的商業(yè)價值。作為個人數據產生的源頭,用戶若是能獲取并交易這些數據,將會產生巨大的利益。然而,用戶在使用服務的過程中,自己并沒有收集數據的能力,用戶個人數據被服務提供商所掌控,他們壟斷了這些個人數據,作為企業(yè)自身的數字資產,為企業(yè)牟利。用戶不但無法獲取個人數據帶來的利益,還需要承受企業(yè)私下交易個人數據帶來的風險。因此,需要一種合理的方式使用戶能夠獲取對數據的掌控權。
大數據時代給社會帶來機遇與便利,也給互聯網用戶帶來了對自身隱私安全的擔憂。人們的生活越來越離不開網絡,但網絡服務的強制授權、過渡索權、超范圍收集用戶個人信息的現象層出不窮,用戶的在線行為被不斷觀察和記錄,形成海量的個人數據的同時也給個人數據保護帶來了不小的挑戰(zhàn),如何保護用戶數據安全成了一大難題。
移動互聯網收集部分數據用于正常的服務無可厚非,但是,對用戶隱私數據的收集應有邊界,不分是否需要就對用戶數據一網打盡,說到底還是服務商視用戶數據為金礦的貪婪性在作祟。一方面,通過多維度收集用戶數據,能夠更精準描繪用戶行為,從而通過精準營銷和廣告推送,實現更大價值的流量變現;另一方面,有些企業(yè)設置直接通過第三方數據交易平臺售賣用戶隱私數據牟取利益[1]。
近年來,個人信息泄露事件頻發(fā),信息安全問題被推到了風口浪尖。越來越多的公民個人信息成為不法分子爭搶的資源,不法分子通過各種途徑收集到人們的隱私數據,經過篩選分析用戶特征,進行精準犯罪,輕則進行短信電話騷擾、廣告信息推送,重則從事電信詐騙等犯罪活動[2]。用戶信息的泄露一方面是由于用戶自身數據安全意識的薄弱,另一方面則歸結于服務商對用戶數據的售賣。
區(qū)塊鏈技術作為一種新型的去中心化的分布式安全存儲技術,由于安全可靠的特點,成為當前熱門的研究領域。區(qū)塊鏈是一個共享的分布式數據庫,該數據庫由區(qū)塊鏈網絡全體參與者共同記錄和驗證,按照時間順序將交易信息生成區(qū)塊,并以順序相連的方式組成一種鏈式數據結構,利用密碼學方式保證數據不可篡改和不可偽造[3]。
區(qū)塊鏈技術利用加密鏈式區(qū)塊鏈結構來驗證與存儲數據、利用分布式節(jié)點共識算法來生成和更新數據。其中,共識算法是區(qū)塊鏈系統中實現不同節(jié)點之間建立信任、獲取權益的數學算法,只有通過共識算法的驗證,生成的數據塊才可以加入區(qū)塊鏈中,并且區(qū)塊鏈中所有區(qū)塊鏈網絡的節(jié)點都負責維護該數據庫。
在區(qū)塊鏈環(huán)境下,智能合約意味著區(qū)塊鏈交易將遠不止簡單的買賣交易,將會有更加廣泛的指令可嵌入到區(qū)塊鏈當中[4]。傳統意義上的合約,就是雙方或者多方共同協商做或者不做某事來換取某些東西,合同中的每一方必須信任彼此會履行義務。智能合約的特點是,同樣的是彼此之間同意或者不同意做某事,但無須再信任彼此。這是因為智能合約不但是由代碼定義的,也是由代碼執(zhí)行的,整個系統按照預先設定的程序運行,而且有成千上萬的人見證,不管是誰都無法阻止和干擾。
以太坊是一個開放的區(qū)塊鏈平臺,它支持第三方開發(fā)者構建和發(fā)布分布式應用。更為重要的是,以太坊是一個基礎性的、開放的通用數字貨幣平臺來實現圖靈完備虛擬機(意味著他能夠運行任何腳本和數字貨幣項目)。不同于某種區(qū)塊鏈,或者運行在區(qū)塊鏈上的協議,以太坊是一個基礎平臺,可運行所有區(qū)塊鏈和協議,就像一個統一通用的開發(fā)平臺。以太坊網絡的每一個完全節(jié)點上都運行著以太坊虛擬機來無縫連接分布式應用(智能合約)。以太坊架構如圖1所示。
星際文件系統(Inter Planetary File System,IPFS)的出現就是為了解決HTTP協議的不足,希望能夠創(chuàng)建一個持久且分布式存儲和共享文件的網絡傳輸協議。通俗地講,IPFS是一個分布式的點對點文件存儲系統,用戶上傳的文件會被分散到世界各地的IPFS節(jié)點中進行分布式存儲,并可以在需要的時候快速獲取到。
與HTTP不同的是,IPFS具有去中心化的特性,而且是基于內容尋址的。也就是說,只要內容不消失,就永遠可以獲取得到。去中心化的特性也使得用戶在進行資源請求時,會有多個IPFS節(jié)點為其提供并發(fā)的內容尋址服務,很大程度上增加了資源的獲取效率。
圖1 以太坊架構
為了解決用戶個人數據泄露問題,我們提出了一種基于區(qū)塊鏈的個人數據安全平臺,該平臺在以太坊的基礎上進行了功能拓展,在提高可開發(fā)性的同時也保證了用戶數據的安全性。
系統底層運行了以太坊節(jié)點,服務端通過Web3j(一個Java庫,用于與以太坊網絡上的節(jié)點集成)與以太坊節(jié)點建立JSON-RPC(Remote Procedure Call,遠程過程連接),無須使用以太坊客戶端即可對操作以太坊節(jié)點。
服務端作為客戶端與以太坊節(jié)點的連接橋梁,需要提供API(Application Programming Interface,應用程序編程接口)供客戶端對以太坊節(jié)點進行相關操作。同時,客戶端與服務端也要向第三方開發(fā)者提供API接口,供開發(fā)者部署合約、發(fā)布運行分布式應用。
客戶端作為分布式應用的載體直接面向用戶,針對用戶使用的每一個分布式應用都會生成一對公私鑰用來加解密數據,客戶端定期將加密后的數據通過服務端上傳至數據存儲網絡,需要使用時再請求解密。
數據存儲方面,采用了分布式文件存儲系統IPFS,服務端將收集到的數據加密上傳至IPFS節(jié)點,避免了數據集中存儲帶來的安全問題。系統整體架構如圖2所示。
基于系統架構的數據交易生態(tài)圈主要包括5個部分:用戶、服務提供商、數據購買方、以太坊網絡和數據存儲網絡。用戶是使用網絡服務、產生數據的源頭;數據購買方是對數據有需求,想要購買數據的人;服務提供商為用戶提供互聯網服務,能夠埋點收集數據,對數據制定交易規(guī)則;以太坊網絡提供了智能合約部署及執(zhí)行的環(huán)境;數據存儲網絡運行了IPFS分布式存儲節(jié)點,負責存儲服務端收集的個人數據。
圖2 系統整體結構
服務提供商在平臺構建并發(fā)布服務,同時發(fā)布針對該服務的智能合約和可交易數據描述表,其中智能合約部署到以太坊網絡中。
可交易數據描述表包含:服務ID、智能合約地址、可交易數據種類標識符列表【k1, k2, k3, … , kn】,對應的每個種類的數據描述【d1, d2, d3, … , dn】和數據交易規(guī)則【r1,r2, r3, … , rn】,以一個郵件應用為例,數據描述表中的內容如表1所示。
表1 可交易數據描述表
針對可交易數據描述表中的數據種類及交易規(guī)則,生成數據交易智能合約。合約可制定用戶和服務提供商數據交易分成方式(例如交易完成,數據購買方支付的金額中的70%發(fā)送至用戶賬戶,30%發(fā)送至服務提供商賬戶),智能合約在數據交易的過程中觸發(fā)并執(zhí)行,執(zhí)行之后會自動處理用戶和數據購買方之間的交易。
用戶在使用網絡服務的過程中,服務收集的個人數據將按照可交易數據描述表中的數據種類【k1, k2, k3, … , kn】分類存儲至用戶本地(分類存儲的目的是方便數據交易,數據購買方往往希望購買某種類型的數據)。
服務每隔一段時間(例如每三天)會對每一類數據使用唯一的密鑰進行加密,之后上傳到數據存儲網絡中,并獲取對應的數據索引。之后,此過程用來加密的密鑰將不再用來加密,同時隨機產生新的密鑰用來加密下一次上傳的數據。
數據交易作為平臺的核心部分,大致包含以下幾個流程。
(1)數據購買方查詢可交易數據描述表,找到想購買的數據種類。根據可交易數據描述表中提供的智能合約地址,針對該智能合約,按照欲購買數據的交易規(guī)則并攜帶其公鑰發(fā)起交易請求到以太坊網絡中。
(2)以太坊網絡記錄該交易。
(3)用戶根據服務ID查詢以太坊網絡中存儲的交易請求。
(4)用戶根據自身數據情況篩選出符合數據購買方要求的交易請求。
(5)用戶響應交易請求到以太坊網絡,將包含滿足交易要求的數據密鑰和數據索引用數據購買方的公鑰加密發(fā)布到區(qū)塊鏈中執(zhí)行智能合約。
(6)以太坊執(zhí)行智能合約,數據購買方獲得所購買的數據的密鑰和數據索引,可以根據數據索引向數據存儲網絡獲得加密數據,再用密鑰解密加密數據獲得最終數據。
(7)數據購買方支付的貨幣則按智能合約中制定的分成規(guī)則,一部分至用戶賬戶,一部分轉至服務提供商賬戶。
圖3 數據交易流程
本文在以太坊的基礎上提出了一種包括應用開發(fā)、數據收集、數據存儲、數據交易于一體的平臺。平臺對外提供開發(fā)者接口促進了平臺應用生態(tài)的多元化,同時開發(fā)者制定數據交易分成規(guī)則,為用戶提供服務的同時也間接地刺激了開發(fā)者的開發(fā)積極性。用戶和開發(fā)者可以根據數據交易分成規(guī)則獲取數據交易帶來的收益,平臺也在應用數量及用戶數量增加的同時獲得了持續(xù)運轉的基礎,整個生態(tài)圈的發(fā)展得到了保障。