區塊鏈資料管理必讀文獻

metal1發表於2018-04-26

原文地址:黎雨豪 學術世界

毋庸置疑,2018年最熱的詞是區塊鏈。本質上,區塊鏈是一種去中心化的P2P系統,通過運用資料加密、時間戳、分散式共識和經濟激勵等手段,在節點無需互相信任的分散式系統中實現基於去中心化信用的點對點交易、協調與協作,從而為解決中心化機構普遍存在的高成本、低效率和資料儲存不安全等問題提供解決方案。[1]


近年來,以比特幣為代表的加密貨幣系統成為區塊鏈技術應用的典型代表。但是,比特幣不等於區塊鏈。區塊鏈中還涉及很多技術問題。本文將從資料管理的視角,盤點區塊鏈資料管理領域內的重要文獻並進行導讀。

  

區塊鏈簡介

區塊鏈技術起源於2008年由化名為“中本聰”的學者在密碼學郵件組發表的奠基性論文《比特幣: 一種點對點電子現金系統》[2],目前尚未形成行業公認的區塊鏈定義。狹義來講,區塊鏈是一種按照時間順序將資料區塊以鏈條的方式組合成特定資料結構,並以密碼學方式保證的不可篡改和不可偽造的去中心化共享賬本,能夠安全儲存簡單的、有先後關係的、能在系統內驗證的資料。廣義的區塊鏈技術則是利用加密鏈式區塊結構來驗證與儲存資料、利用分散式節點共識演算法來生成和更新資料、利用自動化指令碼程式碼 (智慧合約) 來程式設計和運算元據的一種全新的去中心化基礎架構與分散式計算正規化。


區塊鏈按照其去中心化程度可分為三種:公有區塊鏈、聯盟區塊鏈和私有區塊鏈。公有區塊鏈是完全去中心化的區塊鏈,分散式系統的任何節點均可參與鏈上資料的讀寫、驗證和共識過程,並根據其PoW或PoS貢獻獲得相應的經濟激勵,比特幣是典型的公有區塊鏈。聯盟區塊鏈則是部分去中心化 (或稱多中心化) 的區塊鏈,適用於多個實體構成的組織或聯盟,其共識過程受到預定義的一組節點控制,例如生成區塊需要獲得10個預選的共識節點中的5個節點確認。私有區塊鏈則是完全中心化的區塊鏈,適用於特定機構的內部資料管理與審計等,其寫入許可權由中心機構控制,而讀取許可權可視需求有選擇性地對外開放。


[1]中將區塊鏈劃分為五層——資料層、網路層、共識層、激勵層、合約層。其中,資料層封裝了底層資料區塊以及相關的資料加密和時間戳等技術;網路層則包括分散式組網機制、資料傳播機制和資料驗證機制等;共識層主要封裝網路節點的各類共識演算法;激勵層將經濟因素整合到區塊鏈技術體系中來,主要包括經濟激勵的發行機制和分配機制等;合約層主要封裝各類指令碼、演算法和智慧合約, 是區塊鏈可程式設計特性的基礎。


區塊鏈目前面臨著四大問題尚未完全解決——安全問題、效率問題、資源問題、博弈問題。[1]

 

區塊鏈資料管理的架構

由於區塊鏈系統本質上是一種P2P系統,我們可以參考P2P資料管理的方式給出區塊鏈資料管理的架構。


[3]中提出了區域性關係模型(LRM)解決由於P2P計算引入特殊資料庫而產生的部分問題。同時,在文中總結了LRM的形式化定義,提出了原型實現的架構,並討論了一些開放式研究問題。


LRM模型中,為了與其他型別的分散式資料庫區分開,強調了P2P資料庫引入的兩個主要要求——首先,資料庫之間的對映完全是區域性的,沒有全域性模式。為了支援這一點,[3]中提出了一個用於表達節點之間對映關係的資料模型。其次,這組物件是高度動態的,需要半自動化解決以前被認為是時間設計的問題,比如建立配置和對映。這些要求導致了各種令人感興趣的研究難題,這些問題使當今的多資料庫解決方案超越了當前的侷限。


除了LRM模型外,Piazza節點資料管理專案也旨在解決P2P系統中的資料管理問題。Piazza可以以分散式和可擴充套件的方式共享異構資料。Piazza假定參與者有興趣共享資料,並且願意在他們的模式之間定義成對的對映。使用者在其首選模式上制定查詢,並且查詢應答系統遞迴地擴充套件任何與查詢相關的對映,從其他對等方檢索資料。[4]中簡要概述了Piazza專案,包括對映語言和查詢重構演算法的工作,協助使用者定義對映、索引和強制對共享資料進行訪問控制。

 

面向區塊鏈的事務處理技術

[5]中對比了傳統分散式資料庫系統的全域性事務和PDMS(Peer-to-Peer Data Management System,P2P資料管理系統)事務的提交、併發控制、恢復技術。在P2P環境中,資料模式、各節點的計算能力、網路結構及頻寬都存在很大差異,而網路中的任一節點也可以自由加入或離開,網路具有波動性;網路節點間的關係也是動態的,精確定位或推斷資源的位置也很困難,這種環境下的資料放置策略也是一個很大的挑戰,因為這涉及資料的一致性和可用性問題。


[5]中提出了一些解決方案,以解決P2P系統中的事務處理問題,以事務的提交為例,保證事務原子性是傳統提交協議的正確性標準,傳統事務的原子性是指一個事務所包含的所有操作要麼全做,要麼全不做;對分散式事務,原子性是指事務的所有子事務要麼全部提交,要麼全部夭折。


而在P2P環境下,一個子事務的夭折可能不會導致全域性事務的夭折。例如,對只讀事務A,若有另一個可完成同樣功能的事務B,那麼即使A夭折,只要B可以提交,則事務將不必夭折。所以[5]中提出了在P2P環境下,對事務原子性放寬的要求。

 

區塊鏈的安全性問題及解決方案

安全性威脅是區塊鏈迄今為止所面臨的最重要的問題。其中,基於PoW共識過程的區塊鏈主要面臨的是51% 攻擊問題,即節點通過掌握全網超過 51% 的算力就有能力成功篡改和偽造區塊鏈資料。 以比特幣為例,據統計中國大型礦池的算力已佔全網總算力的 60 % 以上,理論上這些礦池可以通過合作實施 51 % 攻擊,從而實現比特幣的雙重支付。雖然實際系統中為掌握全網 51 % 算力所需的成本投入遠超成功實施攻擊後的收益,但 51 % 攻擊的安全性威脅始終存在。基於 PoS 共識過程在一定程度上解決了 51 % 攻擊問題,但同時也引入了區塊分叉時的N@S (Nothing at stake) 攻擊問題。


[6]中提出了對核心密碼學原語的改進方案,通過嚴格的語義安全定義來形式化安全概念。

 

區塊鏈效能評價

區塊鏈的系統架構、共識演算法、協議引數都會對區塊鏈的效能產生影響。具體影響原因及結果可參見[7]。


由於不同區塊鏈的效能不盡相同,我們需要選擇適合當前系統的區塊鏈技術,則勢必要對不同的區塊鏈進行效能評估。[8]中介紹了私有區塊鏈的效能評估框架:BLOCKBENCH。BLOCKBENCH是第一個私有區塊鏈的基準測試框架,提供了用於整體效能評估的巨集觀評價基準和用於每層效能評估的微觀評價基準,評估結果可以幫助我們更深入地理解不同的系統設計選擇。


[8]對三種主流的私有區塊鏈——以太坊、Parity、超級賬本進行了評價,我們發現,這三種私有區塊鏈的效能並沒有分散式資料庫的效能理想。為此,[8]中參考分散式資料庫的設計給出了私有區塊鏈的設計改進意見——解耦各層並分別優化、使用新的硬體原語、分割槽、支援宣告性的語言。這些改進方案在[9、10、11、12]中均有實踐。


針對公有區塊鏈,[13]中提出了一種基於Docker的容器化公有區塊鏈效能評估框架。在[14]中給出了公有區塊鏈效能改進的鏈上解決方案,在[15]中給出了鏈下解決方案。

 

區塊鏈資料管理系統例析

由於區塊鏈技術的去中心化、不可篡改、共識機制等特點,在身份認證、隱私保護等方面,區塊鏈成為了重要的技術。下面給出基於區塊鏈的三種重要系統——身份管理系統、隱私保護系統、資料管理系統的文獻導讀。


資料管理系統是其他兩個系統的底層基礎,無論是身份管理還是隱私保護,都與資料儲存讀取相關。由於區塊鏈各個節點需要儲存和讀取大量歷史運算元據,這些資料如何以一種高效且安全的方式儲存成為了一個重要的課題。資料管理系統利用區塊鏈技術進行資料儲存,解決了傳統資料庫中心化、易被攻擊篡改的問題,同時由於區塊鏈本身資料儲存的方式,因此出現了必須解決的一些問題,[16]中對ProvChain架構進行了介紹。ProvChain用於解決雲上的資料溯源問題,而資料溯源問題對於雲端計算系統管理員除錯系統,防止網路的入侵起著至關重要的作用。


由於區塊鏈本身的特點,作為身份管理系統和隱私保護系統的重要技術也就不足為奇了。區塊鏈技術能夠為使用者提供一個公認的、唯一的、真實的身份,甚至在政策允許的情況下,能夠替代身份證、護照等身份認證實體工具。[17]中展示了大量正在進行、已經完成或已經夭折的基於區塊鏈的身份管理系統,可以幫助我們概要了解區塊鏈在身份管理當中的應用。


目前區塊鏈技術在身份管理系統、加密貨幣等系統的實際應用中,大多數系統存在隱私保護的問題,即使用者在現實中的身份與區塊鏈中的身份存在一個對映關係,該對映關係可能導致使用者身份的洩露。隱私保護系統旨在解決區塊鏈技術實際應用中的隱私問題,即在與其他使用者分享使用者相關敏感資料時,不會對映到身份,同時能夠驗證該使用者身份符合篩選條件。[18]通過醫療資料安全的案例介紹了HDG架構,用於保障醫療資料安全。[19]中介紹了用於區塊鏈身份隱私保護的ChainAnchor架構,用於確保區塊鏈系統中的真實匿名性。


區塊鏈資料管理系統實踐

[20]中提出了一個區塊鏈資料分析通用框架的設計實現。該框架無縫支援比特幣和以太坊的資料分析(這兩種是目前最重要的加密貨幣)。這樣的框架允許我們將相關的區塊鏈資料與來自其他資料來源的資料進行整合,並將其組織到資料庫中,無論是SQL還是NoSQL。文中通過一系列重要用例來說明方法的顯著特點,這些特徵可以讓將該框架與其他相關工作進行比較,並評估資料庫選擇對可擴充套件性的影響。


資料密集型應用程式導致對成本效益型資源共享方法的需求增加。然而,為大量使用者提供高效的廣泛分散式資料存在著相當大的挑戰。大多數現有的網格系統都是集中管理的,因此阻礙了其可擴充套件的擴充套件。[21]引入了一個新的分散式、自適應和可伸縮的中介軟體,它提供對資料網格中資料的透明訪問。文中的方法依賴動態技術,使副本建立適應不斷變化的網路連線和使用者行為。根據[21]中模擬和部署中介軟體的結果表明,該解決方案比靜態方法具有更好的資料訪問效能。


參考文獻列表

[1] 袁勇, 王飛躍. 區塊鏈技術發展現狀與展望[J]. 自動化學報, 2016, 42(4): 481-494.

[2] Nakamoto S. Bitcoin: A peer-to-peer electronic cash system[J]. 2008.

[3] Bernstein P A, Giunchiglia F, Kementsietsidis A, et al. Data management for peer-to-peer computing: A vision[R]. University of Trento, 2002.

[4] Tatarinov I, Ives Z, Madhavan J, et al. The Piazza peer data management project[J]. ACM Sigmod Record, 2003, 32(3): 47-52.

[5] 周維. P2P 資料管理系統中的事務技術研究[D]. 中南大學, 2008.

[6] Halpin H, Piekarska M. Introduction to Security and Privacy on the Blockchain[C]//Security and Privacy Workshops (EuroS&PW), 2017 IEEE European Symposium on. IEEE, 2017: 1-3.

[7] Chen C, Qi Z, Liu Y, et al. Using Virtualization for Blockchain Testing[C]//International Conference on Smart Computing and Communication. Springer, Cham, 2017: 289-299.

[8] Dinh T T A, Wang J, Chen G, et al. BLOCKBENCH: A Framework for Analyzing Private Blockchains[C]//Proceedings of the 2017 ACM International Conference on Management of Data. ACM, 2017: 1085-1100.

[9] Goodman L M. Tezos: A Self-Amending Crypto-Ledger Position Paper[J]. 2014.

[10] Dinh A, Wang J, Wang S, et al. UStore: a distributed storage with rich semantics[J]. arXiv preprint arXiv:1702.02799, 2017.

[11] Tan K L, Cai Q, Ooi B C, et al. In-memory databases: Challenges and opportunities from software and hardware perspectives[J]. ACM SIGMOD Record, 2015, 44(2): 35-40.

[12] Brown R G, Carlyle J, Grigg I, et al. Corda: An Introduction[J]. R3 CEV, August, 2016.

[13] Yue X, Wang H, Jin D, et al. Healthcare data gateways: found healthcare intelligence on blockchain with novel privacy risk control[J]. Journal of medical systems, 2016, 40(10): 218.

[14] Back A, Corallo M, Dashjr L, et al. Enabling blockchain innovations with pegged sidechains[J]. URL: http://www. opensciencereview. com/papers/123/enablingblockchain-innovations-with-pegged-sidechains, 2014.

[15] Bano S, Al-Bassam M, Danezis G. The Road to Scalable Blockchain Designs[J]. USENIX; login: magazine, 2017.

[16] Liang X, Shetty S, Tosh D, et al. Provchain: A blockchain-based data provenance architecture in cloud environment with enhanced privacy and availability[C]//Proceedings of the 17th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing. IEEE Press, 2017: 468-477.

[17] Jacobovitz O. Blockchain for identity management[J]. 2016.

[18] Yue X, Wang H, Jin D, et al. Healthcare data gateways: found healthcare intelligence on blockchain with novel privacy risk control[J]. Journal of medical systems, 2016, 40(10): 218.

[19] Hardjono T, Smith N, Pentland A S. Anonymous Identities for Permissioned Blockchains[J]. 2016.

[20] Bartoletti M, Bracciali A, Lande S, et al. A general framework for blockchain analytics[J]. arXiv preprint arXiv:1707.01021, 2017.

[21] Lamehamedi H, Szymanski B K. Decentralized data management framework for data grids[J]. Future Generation Computer Systems, 2007, 23(1): 109-115.

相關文章