曹亞波
(四川大學計算機學院,成都 610065)
近年來隨著互聯網和和大數據的快速發展,尤其是移動互聯網已經進入到人們生活中的方方面面。互聯網影響著人們的生活方式,人們通過互聯網可以進行購物、社交聊天、游戲等。全世界各行各業每天產生的數據總量是非常巨大的,通過相關技術對這些數據進行挖掘和分析,可以預測行業發展情況進行相應的行業規劃,從而帶來巨大的利益,具有非常大的實際意義和經濟價值。但由于數據都掌握在各行各業之間,必須要將這些數據在各行業乃至各個國家之間進行開放和共享,才能最大限度地推動數據的研究與分析,使數據的價值達到最大。
然而由于互聯網的虛擬性以及開放性,人們在享受互聯網帶來的便捷服務下,同時也面臨著隱私泄露,商業詐騙,虛假信息欺騙等數據安全和信任所帶來的問題。這些問題嚴重阻礙了數據開放和共享的發展,成為大數據研究發展的瓶頸之一。
區塊鏈以分布式存儲、點對點傳輸、共識機制與加密算法等技術,屏蔽了底層復雜的連接建立機制,通過上層的對等直聯、安全通信和匿名保護,加速打破“信息孤島”的行業堅冰,加快各行業信用數據的匯聚沉淀,加強用戶數據的隱私保護。而且區塊鏈技術具有去中心化的特點,能夠減少中心化服務器存儲過于集中所帶來的管理上的壓力以及服務器宕機造成的數據丟失等問題。本文則正是基于區塊鏈特有的技術優勢,最終設計了一個數據開放和共享的技術模型。
在19世紀中葉的股票交易中,就有了數據交易的基本雛形,數據被當成一種商品在相應的交易平臺上進行交易,這是最早的數據流通方式。現如今,數據流通的方式基本上可以分為三種:數據交易、數據開放和共享和數據租賃。其中數據開放和共享是最基本的數據流通方式,人們通過開放和共享數據來實現數據的流通,以獲得自己需要的數據。例如程序員將自己的代碼和博文開放共享到到相應的開源網站。
數據開放和共享的相同點可以總結為以下三點[1]:
(1)可獲取性和可讀性。任何人都可以通過某些方式獲取完整的數據,并且數據的格式受某些設備如計算機的支持。
(2)可復用性。提供數據可被多次整合利用的許可協議。
(3)可互用性。數據可以在不同的設備或者團體間協同操作。
其不同點主要表現在:數據開放具有非歧視性[2],遵循“公開,公平,人人皆可參與”的價值觀念,主要是表明開放的數據人人可以使用,不會對數據使用者產生歧視,做到公平和公正;數據共享一般要限制在特定的條件下,例如個人原創數據,未經本人同意不得進行商業轉載等限制。
數據開放和共享的概念模型如圖1可以分為數據獲取層、數據處理層和數據展示層三個部分。其中信息獲取層主要是用于獲取數據信息,獲取數據信息的方式可以分為三種:(1)開源網站上獲取開源數據,(2)通過相應的爬蟲技術爬取網頁數據信息,(3)國家或者相應的部門企業以及個人共享的數據。數據處理層主要是對獲取的數據進行格式化處理、數據分類和聚類、以及數據清洗操作。數據展示層主要是將處理好的數據通過特定得視覺化處理,將處理的結果展示給用戶。

圖1 數據開放和共享的概念模型
區塊鏈是一種去中心的協議,能夠安全的存儲比特幣或者交易數據,存儲的數據不能被輕易篡改和偽造,區塊鏈的概念最初是由中本聰提出來的。總的來說,區塊鏈是一種新型的分布式數據庫。顧名思義,在區塊鏈技術中,數據以區塊的方式永久儲存。區塊按時間順序逐個先后生成并連接成鏈,每一個區塊記錄了創建期間發生的所有交易信息。區塊通過時間戳特性保證歷史數據的完整性,而且還包含了經過共識算法驗證的、區塊創建過程中產生的所有交易信息。所以使用區塊鏈存儲的數據,才不會被輕易篡改和偽造。
區塊鏈技術的基礎架構如圖1所示。一般來說,區塊鏈系統一般由六部分組成,由下到上分別是數據層、網絡層、共識層、激勵層、合約層和應用層組。其中,數據層包括數據區塊和時間戳以及哈希函數和加密算法;網絡層則包括P2P網絡、數據驗證機制和傳播機制等;共識層主要包含了各種共識機制,例如基于PoW、PoS和PBFT;激勵層主要包括分配機制和發行機制等,用以激勵;合約層主要包括各種腳本代碼、算法機制和智能合約,是區塊鏈用于編程的基礎;應用層則包括了可編程貨幣、可編程金融等應用場景和案例。

圖2 區塊鏈技術分層示意圖
區塊鏈技術具有去安全可信、去中心化、可編程和集體維護等特點。首先是去安全可信:區塊鏈技術使用非對稱加密算法和共識算法來保證數據不被篡改和偽造,所以具有很高的安全性。其次是去中心化:區塊鏈數據的記賬、驗證和存儲等過程都是在分布式的系統結構基礎上進行的,而不是使用傳統的中心化結構方式,從而形成了去中心化的可信任的分布式系統。可編程:區塊鏈提供了完整的腳本代碼,并支持創建不同類型的智能合約。最后是集體維護:區塊鏈系統有完整的經濟激勵機制來保證分布式系統的所有節點均可參與數據區塊的驗證過程,并通過共識算法來選擇特定的節點將新區塊添加到區塊鏈。
本文在區塊鏈的技術基礎上設計了如下的數據開放和共享的模型,主分為區塊鏈層、數據層、視圖層和控制層,即MVC-B模式。

圖3 MVC-B設計模式
(1)區塊鏈層:提供區塊鏈的技術支持,包括分布式數據庫、時間戳技術和P2P網絡;
(2)數據層:對系統的數據和應用程序進行封裝和抽象建模;
(3)視圖層:顯示數據處理的結果;
(4)控制層:是處理用戶交互的部分,負責從視圖讀取數據,控制用戶輸入用相應接口。
為了使數據開放和共享模型更加低耦合和高內聚,依照上述MVC-B模式,本文將整個模型分為了三個部分。分別是視圖層部分、智能合約部分和區塊鏈層部分,模型的整體結構圖如圖4所示。
●視圖層:視圖層用來顯示處理后的數據,是整個模型中負責人機交互的部分,主要包括數據展示和數組操作。一般為一個手機端應用軟件或者是一個網站,當用戶進入數據開放和共享模型時,視圖層會將該用戶權限相符的數據通過相關頁面展示給用戶,用戶也可以通過視圖層的其他功能按鈕進行其他操作。
●智能合約層:智能合約層主要包括個人管理、身份認證、數據管理和時間管理等功能,智能合約層是整個模型中最重要的部分也是最核心的部分。對于用戶而言,他可以對數據進行瀏覽操作,并在相應的權限內對數據進行操作。用戶通過視圖層對數據進行相應的操作,然后通過智能合約層對操作作出相應的相應。此外,智能合約層還負責了數據開放和共享模型中的功能實現和業務邏輯。
●區塊鏈層:主要包括分布式數據庫、P2P網絡和時間戳技術。區塊鏈層主要是對整個模型提供區塊鏈的技術支持,保證整個模型運行。

圖4 數據開放和共享的整體架構
本文在區塊鏈的技術基礎上,利用了區塊鏈去中心化,不可篡改和偽造的技術優勢,設計了一個數據開放和共享的模型。緩解了當前在互聯網快速發展的背景下,數據開放和共享的過程中,所遇到的數據隱私泄露、虛假信息和信息偽造的諸多問題。從而保障了在數據開放和共享過程中,用戶數據的安全可靠以及可溯源。從而推動了數據進一步的共享和開放。
參考文獻:
[1]邢超,石玲.開放數據:大數據時代的發展趨勢研究[J].全球科技經濟瞭望,2016,31(10):68-72.
[2]高豐.開放數據:概念、現狀與機遇[J].大數據,2015,1(2):9-18.
[3]Zheng Z,Xie S,Dai H N,et al.Blockchain Challenges and Opportunities:A Survey[J].2016.
[4]Oleg Mazonka,What is Blockchain:a Gentle Introduction.2016.12.11
[5]Blockchain.https://en.wikipedia.org/wiki/Blockchain_(database).
[6]Yuan Y,Wang F Y.Blockchain:The State of the Art and Future Trends[J].Acta Automatica Sinica,2016.
[7]楊保華.區塊鏈技術指南[EB/OL].https://github.com/yeasy/blockchain_guide.