999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于區塊鏈技術的個人信息管理

2018-12-21 01:56:22黃小菊徐文起章濤宮學慶
軟件工程 2018年10期

黃小菊 徐文起 章濤 宮學慶

摘 要:現有的個人私密信息管理工具一般基于獨立的軟件或云服務,存在著數據難以共享、易被泄露等問題。區塊鏈技術具有去中心化、數據難以篡改、可追溯等特點,能用于數據管理,但目前缺乏成熟的應用模式。本文對利用以太坊智能合約存儲和管理數據的特點進行了分析,設計了一個基于區塊鏈技術的個人信息管理系統。其不依賴于任何服務商實現個人信息數據的存儲和分享,能夠有效解決數據丟失、數據泄露和數據濫用的問題,同時也為區塊鏈技術應用于數據管理提供了一種可行的解決方案。

關鍵詞:區塊鏈;智能合約;個人信息管理

中圖分類號:TP3 文獻標識碼:A

Abstract:The existing personal private information management tools are generally based on independent software or cloud services,and there are problems such as difficulty in sharing data and being easily leaked.Blockchain technology has the characteristics of decentralization,falsified data prevention,and traceability.It can be used for data management,but currently there is no mature application mode.We analyze the characteristics of using Ethereum smart contracts to store and manage data,and design a block-chain-based personal information management system.It does not rely on any service provider to store and share personal information,and can effectively solve the issues of data loss,data leakage,and data abuse.Furthermore,it provides a feasible solution for blockchain technology applied to data management.

Keywords:blockchain;smart contract;personal information management

1 引言(Introduction)

隨著互聯網和智能手機應用的普及,大量的數字化個人信息已經成為人們最重要的個人資產,如個人聯系方式、通訊錄,以及在各種APP中的用戶名和密碼等?,F有用于個人信息管理的工具難以在保證數據安全性的前提下實現便利的數據共享。

區塊鏈是基于P2P網絡、共識機制和加密算法等技術的新型應用模式,具有去中心化、數據難以篡改和可追溯等特點。區塊鏈技術的研究是當前學術界和工業界共同關注的一個熱點問題,相關研究工作不僅包括共識算法[1]和智能合約[2]等區塊鏈實現技術,還包括如何將區塊鏈技術應用于各個領域,如物聯網[3]、金融[4]和醫療[5]等。作為一種新興的技術,其應用模式還沒有公認的成熟方案,有待于進一步研究。

本文設計了一個基于以太坊[6]的個人信息管理解決方案,將個人信息數據通過以太坊的智能合約保存到區塊鏈中,不僅能夠實現數據的可靠存儲、同步和分享,還能夠避免數據泄露和數據濫用的問題。

2 區塊鏈技術(Blockchain technology)

區塊鏈技術是綜合共識機制、加密算法、智能合約、P2P網絡等技術的新興技術框架,應用范圍廣泛,但目前尚沒有公認的成熟應用模式。以太坊作為最主流的去中心化區塊鏈應用開發平臺,現有的開發框架和開發語言都相對較成熟,并且支持智能合約。本文構建的個人信息管理系統基于以太坊實現。

以太坊網絡是由運行著以太坊客戶端的節點組成的P2P網絡,結構如圖1所示。以太坊客戶端中存儲著以太坊區塊鏈和以太坊的狀態,同時也運行著EVM(Ethereum Virtual Machine)。以太坊區塊鏈是按鏈表結構組織的區塊集合,區塊中存儲著時間戳、隨機數、前一區塊數據的Hash值,以及大量的交易。交易中記錄著以太坊賬戶發生的狀態變化。以太坊狀態是區塊鏈中特定時間點上所有賬戶和數據的快照[7]。賬戶分為外部賬戶和合約賬戶兩類,賬戶地址為20字節的16進制字符串。外部賬戶類似現實世界的銀行卡賬戶,其中存儲著賬戶余額等信息。合約賬戶即智能合約,存儲著合約數據和合約代碼。EVM是能執行交易、修改以太坊狀態,其為智能合約提供了完全隔離的運行環境。

智能合約是一段運行在以太坊網絡中的腳本,可通過變量賦值、函數調用來存儲、操作數據。其中的數據存儲在以太坊節點中,具有四個重要特點:(1)公開性。任何連接到以太坊網絡的節點均可自由讀取以太坊區塊鏈中的所有數據。(2)數據管理成本較高。調用智能合約來存儲、操作數據會消耗交易發起者一定的以太幣。同時,以太坊網絡中的所有節點都需要執行該合約,消耗了大量的計算資源。(3)數據操作是異步的。執行合約過程中需要向網絡發送交易、產生新區塊。只有在這些過程完成后數據操作才算成功。(4)不易丟失、難以篡改。智能合約中的數據存儲在以太坊網絡中,使得數據難以篡改。以太坊網絡中每個節點均存儲著智能合約數據副本,保證了數據不易丟失。

3 系統設計(System design)

為解決現有個人信息管理工具存在的問題,提出基于以太坊的個人信息管理系統。該系統具有以下特點:(1)能存儲大量的個人數字化信息;(2)能提供可靠的數據存儲;(3)能靈活控制數據的訪問權限;(4)能實現數據共享。同時,該系統的實現也是對以太坊應用模式的探索。

3.1 系統總體架構

系統可以分為以太坊智能合約、系統節點兩個部分,架構如圖2所示。智能合約負責管理用戶重要數據、控制數據訪問權限;系統節點包含本地存儲、以太坊客戶端、數據管理服務、云存儲服務四個組件,分別負責存儲數據、連接以太坊網絡、數據處理和云存儲服務,由此管理、維護用戶所有數據。

3.2 以太坊智能合約的設計

我們設計了用于用戶個人信息存儲、訪問控制的UPC(User Profile Contract)和用于共享數據的GPC(Group Profile Contract)兩種合約,實現語言選用Solidity。GPC的數據共享類似QQ的群文件共享,以下認為有權限訪問同一個GPC數據的用戶處于一個群,群主為該GPC的創建者。

UPC、GPC及本地存儲的關系如圖3所示,UPC、GPC存儲在以太坊網絡中,本地存儲為系統節點的重要模塊。本地存儲中的數據和合約中的數據需要進行同步,用于保證數據的一致性;UPC中會記錄用戶所加入群的GPC地址,便于查找群內成員分享的數據;UPC中還會記錄好友的UPC地址,使得合約之間互相關聯,便于信息的訪問。

3.2.1 UPC

UPC由用戶創建,用于存儲和管理用戶關鍵數據,從而可保證用戶數據的可靠存儲、安全共享。結合加密算法后UPC可用于控制數據的訪問權限。

UPC的數據結構如圖3所示,包含版本、數據項信息、以太坊賬戶地址、數據列表和配置信息。版本存儲特定區塊的時間戳,該區塊中包含最近修改合約狀態的交易,由此來標記數據的更新時間;數據項信息是一個字符串,其中包含數據列表中存儲的所有數據項名,由此可從數據列表中獲取到所有數據值;以太坊賬戶地址即為用戶登錄系統的賬戶地址;數據列表中存儲著用戶所有個人數據;配置信息中記錄了好友列表信息、GPC地址列表、用戶 地址,以及用戶加密自身數據的所有密鑰列表。其中好友列表中包括好友的UPC地址、用戶提供給好友的密鑰名稱列表、好友提供給用戶的密鑰列表,由此即可查詢到用戶所有好友的信息、好友對用戶信息的訪問權限。配置信息在UPC中以加密字符串形式存儲,用于系統節點初始化、獲取合約數據。

存儲用戶數據時可以自主選擇加密策略:不加密、僅加密數據值或數據項與數據值均加密,由此可平衡數據處理效率和數據安全性的要求。

UPC中主要包括兩個方法:①setData(string_key,string_value)用于添加、更新、刪除數據。setData()中設置了自定義的onlyOwner Modifier,用于保證方法調用者只能是合約創建者。執行該方法需要向以太坊網絡發送交易,消耗以太幣;②getData(string_key)用于獲取數據,不需要向以太坊網絡發送交易,因此不消耗以太幣。

3.2.2 GPC

GPC主要用于群內成員互相分享數據。集中存儲分享給特定群的數據能減少用戶對大量無關數據的讀取、解析,提高分享效率;針對同一數據項,GPC可向不同群分享不同的數據值,由此可簡化合約中的數據存儲,并實現靈活的數據分享。

GPC的數據結構如圖3所示,包含版本、數據項信息、創建該GPC的用戶賬戶地址、數據列表和用戶列表。版本、數據項信息含義與UPC中的相同;以太坊賬戶地址即為創建該GPC的用戶賬戶地址;數據列表中存儲著群內成員分享的所有信息,它們的數據值均使用群密鑰加密。該密鑰由GPC創建者指定;用戶列表中存儲群內所有成員的賬戶地址及它們所對應的密鑰字符串。該密鑰字符串由GPC創建者使用用戶公鑰對群密鑰加密得到,群內成員可從自己的密鑰字符串中解析出群密鑰,并用該密鑰解密GPC中的數據或存儲希望分享給其他成員的數據。

GPC中的主要方法包括setData(string_key, string_value)、getData(string_key)、setUser(address_friend,string_keystring)、getKeyString(address_friend)。其中setData()向Mapping寫入數據時會在參數_key前加上調用者的賬戶地址,由此確定數據所有者。getData()和getKeyString()和UPC中的實現基本相同。

3.3 系統節點

由于以太坊智能合約中數據管理成本高,系統中較復雜的數據運算、大量數據的存儲和處理都需在系統節點中完成,其開發使用Truffle框架完成。

3.3.1 數據管理服務

數據管理服務負責維護系統中的所有數據,實現安全、可靠的數據管理,其三個功能模塊之間的交互如圖2所示。具體功能如下:

(1)用戶交互模塊負責為用戶提供數據管理界面,由此向用戶展示有訪問權限的數據、收集用戶提交的新數據。

(2)數據處理模塊負責數據的加密、解密,以保證數據安全存儲和共享。根據UPC中對數據類型的分類,對數據采用不同的加密算法處理。私密數據要求較高的安全性,需要使用非對稱加密方法進行加密;對于模式公開數據,綜合考慮安全性和數據處理效率,一般使用對稱加密方法加密,使得用戶向好友分享密鑰即可實現分享數據。

當用戶選擇啟用云存儲服務時,對于部分安全性要求高且有共享需求的數據,可選用代理重加密方法進行加密。好友在線下向用戶提出數據共享請求,用戶即可使用重加密密鑰生成算法產生重加密密鑰,并通過云存儲服務提交給云服務器。云服務器對數據密文完成重加密后,好友即可用自己的私鑰解密獲取的數據密文。由此可提供更高的數據安全性,并提高數據處理效率。

(3)用戶數據管理模塊提供了getData(string_key)、setData(string_key,string_value)兩個數據訪問接口,由此向本節點或其他節點的用戶交互模塊提供數據,由此實現數據的共享。同時,用戶數據管理模塊通過調用智能合約、本地存儲的數據操作方法來存取、更新數據,以保證系統中所有數據的一致性。

數據管理模塊中對于數據的加密粒度,以及加密方式都給了用戶較大的選擇空間,使得用戶可以根據自身的需要在數據安全性和處理效率間權衡,帶來較高的數據處理靈活性。

3.3.2 以太坊客戶端

以太坊客戶端將系統節點連接到以太坊網絡,從而完成發送交易、部署合約、調用合約函數等功能,本文使用的是go-ethereum客戶端和MetaMask。

以太坊客戶端會在用戶首次登錄時對用戶提供的以太坊賬戶地址、密鑰對進行檢查,以此實現身份認證。之后,用戶從系統節點發出的所有交易都由該賬戶發起,并由該賬戶提供發起交易所需的以太幣。

3.3.3 本地存儲

本地存儲用于在本地存儲用戶數據,從而提高系統數據管理效率。為實現與智能合約數據的同步且保證數據查詢、更新效率,我們選用鍵值數據庫HBase實現。

將存儲在UPC和GPC上的數據分別存放在userProfileTable和groupProfileTable表中,并在合約地址、賬戶地址列上設置索引以便于查找。userProfileTable包含兩個列族:contractInfo用于存儲合約地址、版本、配置信息等合約相關信息;dataInfo用于存儲用戶個人數據。groupProfileTable包括contractInfo、dataInfo、userInfo三個列族,前兩個內容與userProfileTable中的相同,userInfo中存儲GPC的用戶列表信息。

以上數據庫模式的設計使得本地存儲與智能合約進行交互時能快速實現數據的同步,同時支持大量數據的存儲、查詢、更新。

3.3.4 云存儲服務

云存儲服務為可選功能模塊,主要負責云服務器數據的管理,保證數據的可靠存儲和安全共享。其三個功能模塊的關系如圖2所示。具體功能如下:

(1)云數據存取模塊可連接云服務器,為數據管理服務提供管理云端數據的標準接口,包括getDataHash(string_key)、getData(string_key)、setData(string_key,string_value)、reEncrypto(string_key,string_encrptokey),分別用于獲取數據Hash值、獲取完整數據、更新數據、重加密數據。

(2)數據驗證模塊負責對從云服務器中獲取的數據進行驗證,以減少無效數據的傳輸。使用云數據存取提供的getDataHash()從云服務器中獲取數據Hash值,確定和數據管理服務提供的Hash值相同時,再調用getData()請求完整數據,并返回給數據管理服務。

(3)本地數據同步模塊用于檢查云服務器和本地存儲中數據的一致性,以防止云服務器或本地存儲中的數據被篡改。同步在系統節點空閑時進行,通過驗證數據Hash值的一致性來實現。

該模塊的引入能在保證數據安全性的同時保證數據存儲、分享的效率。

4 場景分析(Scenario analysis)

為完整描述利用智能合約完成數據存儲、分享的過程,假設場景:A、B為好友,分別使用系統節點A和系統節點B將他們的個人數據存儲在智能合約上。A、B均未啟用云存儲服務功能。B可訪問A的“辦公電話”“學習經歷”等信息?,F假設系統節點A發生故障,本地數據全部丟失,用戶A僅記錄了以太坊賬戶、密鑰、UPC地址。系統節點B在本地存儲了所有可訪問的數據,且用戶B記錄了、、。在此場景下進行實驗,以驗證系統的有效性,圖4描述了用戶A,B使用系統進行數據管理的實驗流程。

系統節點初始化:圖4中第①到③步描述的是用戶A初始化系統節點、獲取數據的三個關鍵步驟。

①用戶A向系統節點提供和,由系統節點對其進行驗證,確認正確之后進入第二步,否則初始化失敗。

②系統節點使用可訪問A的UPC由此讀取A的所有數據,并將其解密。解密后的數據包含A的個人信息列表、好友B的UPC地址,以及對應的密鑰等,被存儲到節點的本地存儲中。

③根據上一步得到的合約地址可讀取出其他用戶分享給A的所有數據,并將其存儲到本地。系統節點讀取的數據展示給用戶,初始化過程結束。

該初始化過程保證了用戶在不丟失合約地址的情況下,關鍵數據不會丟失。

更新數據:用戶A的“學習經歷”信息中數據量較大,完整數據存儲在本地存儲中,智能合約中僅存儲了該信息的Hash值?,F需更新該數據,流程如圖4中第④到⑥步所示。

④系統節點調用函數將加密的新數據同步到合約中。合約執行成功后,將最新的數據Hash更新到本地存儲中。

⑤系統節點B定期從中讀取A的版本信息,當發現其本地版本低于UPC中的版本時,重新讀取合約數據,并進行解密。

⑥對于“學習經歷”等存儲在A節點中的數據,B向A節點的數據管理服務發送獲取數據的請求。得到的數據密文由B使用解密,并更新到系統節點B的本地存儲中。

通過監控合約狀態,用戶可獲取到好友的實時最新數據;通過標準的數據訪問接口可以實現數據的分享。

群內共享數據:B希望向A分享“地址”“郵箱”等信息,但他不想分享中存儲的私人地址和郵箱。因此,他使用GPC來向A分享數據,具體流程如圖4中第⑦到⑧步所示。

⑦用戶B通過系統節點的以太坊客戶端新建GPC,得到的地址為,并指定群密鑰為中。B使用調用addUser()將、使用加密的群密鑰添加到GPC的用戶列表中。

⑧用戶B在線下向A發送。用戶A即可使用該地址創建GPC實例,從而讀取B分享的數據,并能使用GPC提供的方法管理數據。

上述分享過程使得用戶訪問好友數據時不需讀取、解析好友UPC中的所有的信息,提高了數據訪問效率。同時,對群成員來說,獲取群內其他成員分享的信息僅需讀取一個合約數據即可實現,數據分享、訪問更加便利。

收回共享權限:A不希望再向B分享自己的“辦公電話”信息,收回訪問權限過程如圖4中⑨所示。

⑨A將“辦公電話”信息使用新的密鑰進行加密,并更新到合約中。成功后,A向其他對“辦公電話”信息有訪問權限的好友發送。由此,數據訪問權限被收回。

上述過程中被更新的合約數據量較少且過程簡單,實現成本較低,并且能保證數據訪問權限被徹底收回。

5 結論(Conclusion)

互聯網及手機應用的普及為人們帶來大量的數字化個人信息,而現有的個人信息管理工具存在著數據難以分享、易被泄露等問題。區塊鏈技術具有去中心化、數據難以篡改、可追溯等特點,能為解決個人信息管理中的問題提供新思路。本文提出的基于以太坊的個人信息管理解決方案將個人信息數據存儲到以太坊智能合約上,并由系統節點對數據進行組織和維護,由此可實現大量的個人數字化信息的可靠存儲、安全共享,并確保用戶對數據訪問權限的控制。

參考文獻(References)

[1] Mingxiao D,Xiaofeng M,Zhe Z,et al.A review on con-sensus algorithm of blockchain[C].Systems,Man,and Cy-bernetics(SMC),2017 IEEE International Conference on.IEEE,2017:2567-2572.

[2] Delmolino K,Arnett M,Kosba A,et al.Step by step to-wards creating a safe smart contract:Lessons and insights from a cryptocurrency lab[C].International Conference on Financial Cryptography and Data Security.Springer,Berlin,Heidelberg,2016:79-94.

[3] Huh S,Cho S,Kim S.Managing IoT devices using block-chain platform[C].Advanced Communication Technology(ICACT),2017 19th International Conference on.IEEE,2017:464-467.

[4] Porru S,Pinna A,Marchesi M,et al.Blockchain-oriented software engineering:challenges and new directions[C].Proceedings of the 39th International Conference on Software Engineering Companion.IEEE Press,2017:169-171.

[5] Azaria A,Ekblaw A,Vieira T,et al.Medrec:Using blockchain for medical data access and permission management[C].Open and Big Data(OBD),International Conference on.IEEE,2016:25-30.

[6] 李赫,孫繼飛,楊泳,等.基于區塊鏈2.0的以太坊初探[J].中國金融電腦,2017(6):57-60.

[7] Saito K,Yamada H.What's So Different about Blockchain?—Blockchain is a Probabilistic State Machine[C].IEEE,International Conference on Distributed Computing Systems Workshops.IEEE,2016:168-175.

作者簡介:

黃小菊(1995-),女,碩士生.研究領域:區塊鏈技術,分布式數據管理系統.

徐文起(1995-),男,碩士生.研究領域:區塊鏈技術,分布式數據管理系統.

章 濤(1995-),男,碩士生.研究領域:區塊鏈技術,分布式數據管理系統.

宮學慶(1974-),男,博士,教授.研究領域:區塊鏈技術,分布式數據管理系統.

主站蜘蛛池模板: 99国产精品国产高清一区二区| 狠狠色香婷婷久久亚洲精品| 福利视频99| 亚洲天堂区| 婷婷丁香在线观看| 国产精品久久久久婷婷五月| 国产成人精品一区二区| 欧美在线网| 久久亚洲国产视频| 特级aaaaaaaaa毛片免费视频| 99精品国产自在现线观看| 农村乱人伦一区二区| 麻豆精选在线| 国产三级毛片| 欧洲熟妇精品视频| 国产女人18毛片水真多1| 亚洲日韩国产精品综合在线观看| 全色黄大色大片免费久久老太| 青青网在线国产| 97se亚洲综合| 亚洲福利视频网址| 国产精品网址在线观看你懂的| 久久婷婷人人澡人人爱91| 九九热精品在线视频| 永久成人无码激情视频免费| 毛片在线播放网址| 99久久99视频| 日韩精品中文字幕一区三区| 国产一级毛片网站| 青草91视频免费观看| 亚洲欧洲一区二区三区| 熟妇丰满人妻av无码区| 美女被躁出白浆视频播放| 97精品久久久大香线焦| 中文字幕亚洲专区第19页| 欧美精品高清| 蜜桃视频一区二区| 99久久99这里只有免费的精品| 亚洲综合精品第一页| 国产第一色| 波多野结衣一区二区三区四区| 国产精品网曝门免费视频| 国产自无码视频在线观看| 欧美午夜精品| 中文国产成人精品久久| 国产小视频a在线观看| 亚洲激情区| 亚洲Av激情网五月天| 国产午夜小视频| 天堂网亚洲综合在线| 亚洲成人免费看| 国产在线观看精品| 亚洲第一成人在线| 男人天堂亚洲天堂| 亚洲成人免费看| 亚洲天堂日本| 青青草原国产| 婷婷综合色| 欧美亚洲激情| 一级毛片免费的| 国产青青操| 亚洲 欧美 日韩综合一区| 天天色天天操综合网| 美女扒开下面流白浆在线试听| 99精品免费在线| 日本高清在线看免费观看| 99热这里只有免费国产精品 | 成人无码一区二区三区视频在线观看 | 中文成人无码国产亚洲| 国产精品自在线拍国产电影| 久久99国产综合精品1| 国产欧美日韩综合一区在线播放| 精品综合久久久久久97超人| 日韩区欧美区| 国产欧美日韩视频一区二区三区| 亚洲熟妇AV日韩熟妇在线| 狼友av永久网站免费观看| 国产一级毛片在线| 欧美人人干| 国产一区二区网站| 亚亚洲乱码一二三四区| 久久午夜夜伦鲁鲁片不卡|