張桂剛 李 超 毛湘科 郝瀠婷 李雯晴 張 健 蔚 欣 邢春曉,3
(1.清華大學信息國家研究中心 北京 100084)(2.清華大學計算機系 北京 100084)(3.清華大學互聯網產業研究院 北京 100084)(4.中國科學院自動化研究所 北京 100190)
區塊鏈[1]經過幾年的發展,已經初步開始實現從理論研究階段向具體應用階段的轉變。區塊鏈最早從比特幣為代表的交易,逐步在全球各國以及各個行業掀起了應用的熱潮。不僅在金融科技[2],在物流[3]、貿易[4]、制造[5]等各個領域均開始了研究和應用。隨著各種公鏈和各種私鏈以及聯盟鏈的逐漸增加,成千上萬的區塊鏈會進行交易的交互。如何實現所有的區塊鏈之間的互聯互通,如何實現AML、KYC等分析挖掘越來越成為制約未來區塊鏈發展的障礙。且隨著區塊鏈應用范圍的逐步推廣,越來越多的企業和個人把數據存儲在鏈上,這就使得區塊鏈的隱私保護問題愈發凸顯。賬本數據在鏈上公開存儲造成的直接隱私泄露以及交易數據分析帶來的被動隱私泄露成為限制區塊鏈進一步發展的重要因素,因此有必要研究全面的區塊鏈隱私保護與評估方法。區塊鏈數據湖中存儲著多種不同類型的區塊鏈。從所涉及到的領域劃分,包含的區塊鏈可能涉及到金融、醫療健康、法律等多個不同的領域;從區塊鏈本身進行劃分,可以分為公鏈、聯盟鏈和私有鏈。同時,不同的區塊鏈,其存儲的交易數據結構和交易模式也存在著較大的差異。為了更好地對區塊鏈數據湖中各區塊鏈存儲的信息進行有效的利用,對各種類型的區塊鏈及其交易進行有效管理是區塊鏈數據湖的基礎。
本文提出了一種區塊鏈數據湖架構研究,通過該架構可以匯聚成千上萬的區塊鏈,并匯聚它們各自的原始數據,供大數據挖掘分析之用。
根據賽迪全球公有鏈評估指數,僅作為評估對象的全球主流公鏈平臺已超過30 個。實際上,全球公有鏈[6]項目遠超過這個數目,而且數量上還在不斷增加。不同區塊鏈平臺之間在設計理念和實現方面不盡相同,在區塊鏈底層架構的標準尚未達成共識之前,區塊鏈平臺技術與應用的競爭日趨激烈。公有鏈方面,以以太坊、EOS 為代表的區塊鏈平臺在全球范圍內具有極強的影響力,其技術與應用生態正得到市場的認同。國內NEO、公信寶、星云鏈等公有鏈項目提出了各自基礎架構設計理念并予以實現,同時積極推進開源社區建設和應用生態完善。但相比國外優秀公鏈項目,國內公有鏈平臺仍處于跟隨狀態。聯盟鏈平臺方面,IBM 的Fab?ric 已經成為聯盟鏈技術平臺的典范。基于Fabric的行業解決方案已經在金融、供應鏈、存證、物流等諸多領域得到廣泛應用。國內微眾銀行、萬向區塊鏈及矩陣元三方共同開發了BCOS 區塊鏈開源平臺,提供企業級應用服務。區塊鏈BaaS(區塊鏈即服務)平臺方面,國內互聯網巨頭紛紛戰略布局。2017年4月,騰訊發布區塊鏈白皮書并推出可信區塊鏈Trust SQL;2018 年3 月,京東全面啟動了區塊鏈技術在業務場景中的應用探索與研發實踐;2018年8 月,阿里云宣布發布企業級BaaS 平臺,支持一鍵快速部署區塊鏈環境,實現跨企業、跨區域的區塊鏈應用。據不完全統計,截止2018年11月,已有9 家大型互聯網企業發布BaaS 平臺。 2019 年,區塊鏈底層平臺發展百花齊放,區塊鏈底層平臺研發、應用推廣、生態培育的競爭愈發激烈。
微軟的BlockchainDB系統采用部分共識(僅參與交易的節點進行共識),目的在于提高效率,但同時也降低了安全性。IBM 區塊鏈數據庫實際上是中心化設計,將排序服務放在了中心化的服務器進行交易順序的排序。針對被動型隱私泄露問題,現有的區塊鏈系主要使用同態加密、零知識證明、安全多方計算等密碼學原語來進行隱私信息隱藏;針對主動型隱私泄露問題,主要使用地址混淆機制來防止攻擊者對賬本交易數據進行關聯分析,例如Mixcoin、Blindcoi、CoinShuffle 等。此外,在通信過程中還可使用閃電網絡、洋蔥路由等技術,實現隱私信息的鏈下計算和匿名通信。
區塊鏈數據湖的研究尚在起步階段,目前國內外沒有太多的文獻。主要有蔡維德教授在他的著作《互聯網》中提到了區塊鏈數據湖BDL 的設計理念。圖1展示了區塊鏈數據湖BDL的架構。

圖1 區塊鏈數據湖BDL架構[7~8]
一種基于區塊鏈的BDL系統,使原本互相隔離的區塊鏈實現了區塊鏈的互聯互通,并可支持復雜查詢、數據挖掘、數據分析功能,提升了數據利用效率。如圖1 所示,BDL 與其他抽象節點的區塊鏈數據可以互相持有,BDL負責利用大數據平臺處理從各個區塊鏈匯集而來的數據,同樣可以將處理結果存入BDL存證區塊鏈以及其他抽象節點,BDL系統架構,還可以打通各種同構或異構區塊鏈,實現區塊鏈數據相互融合和協同。
清華華鼎區塊鏈數據湖架構如圖2所示。

圖2 清華華鼎區塊鏈數據湖架構
清華華鼎區塊鏈數據湖架構面向可信交易場景。其核心設計思想包括如下幾條。
1)清華華鼎區塊鏈數據湖有成千上萬甚至未來幾十萬的大規模的區塊鏈需要在產業互聯網(包括互鏈網)上進行交易或者結算,下面舉例說明。
(1)中央銀行區塊鏈數據湖監管中心需要對工商銀行、農業銀行、建設銀行、交通銀行以及其它所有的股份制銀行的區塊鏈數據湖進行交易查詢、交易監管、交易溯源、AML 以及KYC 的大數據分析等。
(2)商務部區塊鏈數據湖需要對國內外的所有企業區塊鏈的交易和結算進行交易查詢、交易監管、交易溯源、AML以及KYC的大數據分析等。
(3)海關總署區塊鏈數據湖需要對所有跨境貿易區塊鏈數據湖、疫情防控區塊鏈數據湖、象牙等瀕危動物走私數據湖進行交易查詢、交易監管、交易溯源、AML以及KYC的大數據分析等。
(4)住建部的區塊鏈數據總湖需要對全國各地比如上海的住建委區塊鏈數據分湖、湖南的住建廳的區塊鏈數據分湖、四川的住建廳區塊鏈數據分湖等進行監管和查詢,數據的下載和上傳等。
2)成千上萬的區塊鏈匯聚到數據湖時,需要通過某種協議或者算法(比如雙鎖定)確保數據湖和各分數據湖以及各分支區塊鏈的數據一致性。
3)清華華鼎區塊鏈數據湖除了存儲來自成千上萬的區塊鏈的上鏈數據,還需要提取成千上萬的區塊鏈的非上鏈數據匯聚到區塊鏈數據湖中,以供后面的大數據分析使用。
4)清華華鼎區塊鏈數據湖還引入外部數據庫的數據到數據湖中,供未來的可信交易等的大數據分析之用。
5)所有在區塊鏈數據湖的任何動作(包括查詢、溯源、交易、結算、清算等)都會單獨在區塊鏈數據湖中進行記錄并放到區塊鏈數據湖存證區塊鏈(BDL存證區塊鏈)上。
主要研究以密碼為核心的新型區塊鏈數據湖自主可控關鍵技術,滿足高性能、高可信、高可用以及高智能。包括五個方面:1)區塊鏈數據湖存儲與治理研究;2)事務處理和密態數據查詢;3)密態數據智能分析和管理;4)可信智能合約[9~12]機制研究;5)區塊鏈數據湖軟件評測體系。總的思路為建立密碼為核心的新型區塊鏈數據湖軟件基礎設施,研究高可信存儲體系;建立區塊鏈事務處理和數據處理機制,滿足事務和數據處理的高性能、高可信要求;建立智能分析和管理平臺,建立智能合約機制,滿足管理和分析的高可用和高智能要求,確保底層區塊鏈數據軟件體系的可信存儲、高效處理、智能管控、安全驗證。

圖3 清華區塊鏈數據湖研究內容邏輯關系
清華區塊鏈數據湖關鍵技術主要包括如下七點。
3.2.1 區塊鏈數據總湖與子湖共建共享關鍵技術
未來的區塊鏈湖會形成分布式的湖,會有總湖和眾多的子湖,如何實現總湖和子湖的數據的共建(包括各自分別創立數據上鏈到各自的湖中)與共享(總湖和子湖之間、子湖和子湖之間的數據共享等),將是一個關鍵的研究問題。基于數據湖的區塊鏈可信存儲技術借助數據湖數據共享的優勢,在其上進行多鏈存儲、訪問,打造基于數據湖的高效、高可用、可信、智能存儲[13]和高效交互的區塊鏈基礎設施。具體需要研究如下幾個方面:1)易查詢存儲方式:突破現有的區塊鏈系統不能直接查詢交易內數據字段的具體細節。2)存儲可信保證:數據湖是一種可以存儲任意格式海量數據的共享數據庫。在實現數據共享的同時,要求增加和修改數據時保障其安全性。3)多鏈存儲及跨鏈訪問:為了能夠實現數據共享,要求數據湖具備多鏈存儲和跨鏈訪問功能。
3.2.2 基于語義的異構區塊鏈融合關鍵技術
區塊鏈數據湖需要匯聚成千上萬甚至上十萬百萬的區塊鏈,這些區塊鏈各自采用不同的協議和共識算法等,形成了一個巨大的異構現狀。如何通過語義計算技術實現這些海量的異構區塊鏈本身的融合以及存儲在它們各自鏈上的數據融合是一個巨大的挑戰,也是關系到清華華鼎區塊鏈能否成功的核心關鍵技術。
3.2.3 區塊鏈數據湖查詢關鍵技術
對區塊鏈數據湖中多條鏈進行有效管理的基礎是能夠進行高效的交易數據查詢[14~16]。受限于區塊鏈采用鏈式結構來存儲交易數據實現防篡改的設計,現有的許多區塊鏈僅提供一些簡單的交易查詢方法。在面對溯源、區間等復雜類型的查詢時,往往需要通過回放交易的方式進行實現,這樣的做法顯然是低效的。尤其是考慮到區塊鏈數據湖中區塊鏈的多樣性、交易的多樣性和查詢的復雜性等因素時,目前許多區塊鏈本身的查詢算法難以滿足區塊鏈數據湖中高效管理交易數據的需求。因此,考慮區塊鏈數據湖中區塊鏈的特點設計高效的查詢方法是十分必要的。
考慮到區塊鏈數據湖中多條區塊鏈的復雜性,整個區塊鏈數據湖將從交易索引、區塊索引和鏈索引三個不同層次進行索引構建。根據交易所包含的內容,可以為每條交易賦予一個或多個標簽,以實現對具有同類型標簽的交易數據進行管理,這也將傳統的索引構建轉換為對交易標簽的生成和管理。交易索引是根據區塊鏈上的每條交易的標簽進行構建的。交易標簽的生成方法,可以是在用戶發起交易時,鼓勵用戶給出每條交易的標簽,或利用類似于眾包的方式給予每條交易一個或多個標簽。等區塊鏈上的交易數量達到一定規模時,可以根據交易和人工給出的標簽信息進行模型的訓練,從而為交易推薦標簽信息。區塊的索引是基于區塊內所有的交易進行構建的,根據交易的標簽信息,生成對整個區塊中的交易信息的總體描述作為區塊的標簽。鏈的索引是根據區塊的索引構建的,鏈標簽是為了更好地對各鏈所屬的領域,包含的交易類型等進行區分,是對整條鏈的交易和區塊更高層次的抽象,同時,隨著區塊鏈上區塊數量的增加,鏈索引也會隨之更改。在根據用戶的查詢條件進行交易信息查詢時,可以先根據用戶的查詢條件在鏈級別過濾掉一些與查詢條件不相關的區塊鏈,縮小查詢的范圍。然后在余下的鏈中,根據區塊索引確定滿足查詢條件的區塊。最后根據區塊內的交易索引獲取最終的查詢結果。如果在查詢中涉及到的鏈過多,可以采用并行查詢的方式增快查詢的速度。
區塊鏈經常被用于存證溯源等任務,例如在商品的加工供應、版權更替、物流運輸等業務領域。對于溯源類型的查詢任務,其查詢的交易之間通常具有依賴關系。為了提高溯源的效率,可以采用圖數據結構對交易之間的依賴關系進行重構。涉及到具體的查詢時,只需要利用在重構的圖上執行廣度優先搜索或者深度優先搜索算法即可獲得溯源的完整路徑。由于使用區塊鏈之外的數據結構對交易進行重構,加快了溯源查詢的速度。但是,區塊鏈之外的數據結構并不具備防篡改性,因此只有確保圖中重構的的交易與區塊鏈上的交易是一致的,才能夠確保圖上溯源結構的完整性和可信性。為解決圖中的數據和鏈上的數據的一致性,可以采用智能合約將區塊鏈上的交易重構成圖,然后將存儲圖文件的Hash 值重新存儲在一條特殊的鏈上。每當從文件中加載圖至內存中時,先驗證存儲圖文件的Hash 值是否與之前鏈上存儲的Hash 值一致,如果一致則可信,否則需要對圖進行更新。
對于區間查詢,通常是根據區塊鏈中交易本身的屬性進行查詢,例如查詢某段時間內的交易信息,可以根據交易的時間戳屬性進行查詢。鑒于關系數據庫中屬性查詢的高效性,可以將交易所包含的屬性值存儲至數據庫的表中,將原本區塊鏈上的查詢轉換成數據庫表中的屬性查詢。同樣,外置的數據庫表并不具備數據防篡改的機制,為了確保查詢結果的可信性和完整性,需要設置跟溯源查詢方案中類似的一致性校驗機制。
除了上述常見的應用場景,面對不同的業務需求,區塊鏈數據湖可以提供特殊的查詢解決方案來支持對交易數據的高效管理。
3.2.4 異構數據湖大圖壓縮、劃分、并行處理關鍵技術
異構區塊鏈數據湖會形成各種巨大的圖數據庫,例如AML 的大圖數據庫、KYC 的大圖數據庫、智能合約網的大圖數據庫。這些大圖數據庫甚至有幾千萬上億甚至幾十億個節點,幾億甚至上十億百億條關系邊,如何處理這些異構的數據湖大圖并提高其性能,這些圖的壓縮、劃分、并行處理技術顯得尤其重要。
3.2.5 區塊鏈數據湖大數據挖掘分析技術
清華華鼎區塊鏈數據湖不僅匯聚了來自成千上萬的區塊鏈上的上鏈數據,更多包括了這些區塊鏈的全量數據以及來自外部的數據庫數據。全量的數據為區塊鏈大數據湖的分析提供了充足的原材料。如何在上鏈數據和非上鏈數據進行大數據的挖掘和分析,是未來亟需解決的關鍵核心技術。尤其需要實現高質量的分區策略,構造適合基于同態加密的加密機器學習算法的協議,實現智能優化、學習型優化器和學習型索引等。未來需要研究:1)基于數據湖的聯邦學習和計算。通過技術手段將機構之間的建模過程聯系在一起,同時又保持機構之間的數據獨立,解決傳統手段下數據安全防控的問題。2)基于借助同態加密的加密機器學習的分析與調優。3)數據智能分片,智能組件設計。
3.2.6 區塊鏈數據湖監管、安全、隱私保護等關鍵技術
區塊鏈數據湖,尤其是面向交易和結算的區塊鏈數據湖,會存在大量的查詢、監管、安全、隱私等需求,如何解決它們,是清華華鼎區塊鏈數據湖面臨的關鍵技術。區塊鏈數據湖中存儲有大量的交易數據,其中包含用戶的隱私信息,且傳統的隱私保護技術無法直接適用于區塊鏈數據湖的架構,因此其隱私泄露問題尤為突出。研究適用于區塊鏈的主流隱私保護技術,并結合區塊鏈數據湖的特性和需求加以改進,對區塊鏈數據湖應用得以推廣使用有著重要的意義。
3.2.7 可信監管下的智能合約關鍵技術
清華華鼎區塊鏈數據湖需要實現在可監管的智能合約框架下,設計全新的合約語言,并實現合約的形式化驗證工具及合約引擎,構建具有獨立性和擴展性的面向監管的智能合約基礎設施,并通過同態加密技術保證合約的安全性和隱私性。具體未來需要研究如下內容。1)研究區塊鏈的可監管性。即實現賬本與交易分離,數據與算法分離,構建可監管的區塊鏈系統架構;并通過合約模型標準化、合約功能專門化等手段,來保證區塊鏈基礎設施的獨立性和擴展性。2)構建可監管的區塊鏈架構,重構合約語言框架,包括源語言的文法、編譯過程中的詞法語法語義分析、目標語言引擎的數學模型等。
數字時代,傳統的知識共享服務已向“互聯網+”數字知識共享服務轉型。一直以來,數字知識共享平臺存在“各自為政、條塊分割、信息孤島”等問題。如何利用區塊鏈技術所具有的不可篡改性、可溯源性這些原生特性,對數據知識進行存儲、授權、處理、使用和監管,以保證數據知識的真實性和安全性、加工處理和授權可追溯、并支持高效監管。課題組在基于清華華鼎區塊鏈數據架構的基礎上,在數據共享和存儲上面已經初步研發了一個基于區塊鏈數據湖的文件共享系統。基于區塊鏈的知識共享科技服務平臺功能介紹,包括登錄、數據上傳者、數據標注者/加工者、數據利用者,數據監管者。該系統:1)硬件設施為Ubuntu 服務器;2)操作系統:Ubuntu 18.04;3)開發軟件為Visual Stu?dio 2017。主要包括如下幾個模塊。
用戶通過輸入用戶名和密碼,進入服務平臺。如圖4所示。

圖4 登錄頁
數據提供者為服務平臺提供結構/非結構的數據,并有權利上傳數據到服務平臺。數據是以json文件的格式上傳,可以選擇是否加密。上傳的數據類型包括金融、政務、電子存證、醫療、物聯網、商品防偽溯源等方面。如圖5所示。

圖5 數據提供者
數據標注者/加工者有權利從服務平臺讀取數據并進行數據加工,數據加工可手動標注,也可通過自動化工具進行標注。如圖6所示。

圖6 數據標注者/加工者
數據利用者可以根據各自的需求,從服務平臺下載所需的數據,存儲到本地。如圖7所示。

圖7 數據利用者
數據監管者對服務平臺的專家、專家操作記錄進行管理,如圖8~9所示。

圖8 專家列表

圖9 專家操作記錄
本文研究一種區塊鏈數據湖架構,通過該架構成千上萬的區塊鏈會匯聚成區塊鏈數據湖,通過區塊鏈數據湖不僅實現成千上萬的區塊鏈本身的共享,也實現區塊鏈數據以及區塊鏈的各種原始數據的共享,從而為未來全量區塊鏈大數據的分析提供了一種可行的架構和機制。