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