“因為我們相信傳統應用中對區塊鍊是有訴求的,不管是信任、溯源、數據共享、數據交易、數據交換,相信這些都是有應用點的。所以把區塊鏈技術和分佈式數據庫進行結合,希望做出新一代的數據庫系統。”

9月16日,在2019上海區塊鏈國際週Demo day的現場,CovenantSQL創始人敬宓介紹了CovenantSQL項目。並就CovenantSQL項目的特點,重點回應了去中心化數據庫較傳統數據庫相比,能有更好額應用特點。據官方介紹,CovenantSQL是應用區塊鏈技術構建的去中心化SQL雲數據庫,結合了區塊鏈、共享經濟、分佈式數據庫、密碼學的優勢,保障了數據隱私、安全性及所有權。 PANews作為合作媒體在現場進行報導。

據敬宓介紹,在CovenantSQL項目之前,團隊已經有過利用節點進行數據的存儲和傳輸的項目經歷,而這也催生了CovenantSQL的誕生——將文件的傳輸和存儲應用到數據庫領域。

敬宓表示,同IPFS相比,兩者相似相同的地方是都有非常好的開放性,都是開源的去中心化的,大量地應用了P2P的技術,能夠有很多不同語言之間的支持。而數據庫存儲有很大差別,處理的數據庫類型是基於結構化記錄進行的,不是說數據不能被篡改,只是修改歷史不能被隨意刪除。


值得注意的是,在應用場景上,敬宓指出,通過區塊鏈去中心化的數據庫,能非常容易地進行數據歷史溯源,能更好滿足在銀行、金融領域很多場景下的應用情況,每一個數據從創建表開始到表的修改、到數據的修改,每一個步驟都可以被記錄在區塊鏈數據庫上,能非常方便地之後進行查詢和修改。同時,數據庫平台還能較好適應數據共享和隱私數據保護,在管理和驗證上都能更便捷準確。

演講內容如下:

在介紹CovenantSQL之前先簡單介紹一下曾經做的一個項目。可能有部分參與的同學聽眾聽說過之前的項目,從2013年起做的迅雷水晶的項目,當時迅雷水晶是比較新的概念,2014年迅雷在美國上市路演時做的應用,講給路演IPO參與者的應用。從名字大家可以聽出來這是通過眾籌和P2P技術構建的CDN網絡,在網絡基本沒有節點,是我們自己投入眾籌的,使用節點進行數據的存儲和傳輸。

這和現在的IPFS非常相似,的確如此。但我們很早就把項目投入到商業應用中了,2015年網絡節點達到了100萬節點數量,能夠對外提供約1TB帶寬峰值的輸出,2015年網絡存儲了1PB數據量,同時比傳統的CDN降低80%的成本。迅雷水晶是很早期的項目,在項目的基礎上很早就引入了區塊鏈技術在項目裡進行共識、激勵,激勵大家把自己的節點投入到網絡中進行使用。

有了背景後我們一直在思考能不能把文件的傳輸和存儲應用到數據庫領域?從2017年開始創業做新項目,就有了CovenantSQL。隨著時間的發展,從2015年到2017年區塊鏈技術得到了非常多日新月異的發展,所以我們也在把新技術應用進來其他。

作為區塊鏈數據庫為什麼開頭有這樣的想法呢?因為我們相信傳統應用中對區塊鍊是有訴求的,不管是信任、溯源、數據共享、數據交易、數據交換,相信這些都是有應用點的。所以把區塊鏈技術和分佈式數據庫進行結合,希望做出新一代的數據庫系統。

對於傳統的區塊鏈項目而言,開發過程可能會比較複雜、性能有受限,所以在項目中更期望能夠開發新一代區塊鏈數據庫,具備非常好的性能同時也很好地應用,所以我們引入了SQL的標準,數據庫標準是完全支持SQL的,所以大家在系統裡進行存儲和查詢可以通過SQL很快地完成。

正如剛才的視頻介紹一下,這是CovenantSQL簡單的架構介紹。最開始設置成雙層鏈的結構,主鍊主要進行資源分配、錢包管理、系統治理工作。而子鏈進行真實的數據存儲,通過礦機完成,主要為用戶提供存儲和檢索的服務。系統從一開頭就是可以被拆分開應用到Layer1、Layer2的系統裡,當然自己也自成一套體系,能夠非常好地運行。

我們團隊一直在做分佈式系統方面的開發,我們也深刻地認識到如果你想做全球化分佈式項目應用的話,對網絡模擬、全球環境下的模擬都是非常重要的,所以我們自己開發了一套新工具—GNTE,可以在單台機器上很輕鬆地模擬數百個網絡節點,可以很容易地配置任意兩個節點之間網絡的連通信息,包括像延遲、丟包比例、數據包損壞比例、重複發包比例、亂序發包比例、兩節點間的帶寬。當然如果你有幾百個節點的話配置兩節點之間的信息是非常花時間的,所以我們也支持把很多個節點匯聚成整體來看,配置兩個整體間的帶寬信息。

就像右邊圖一樣,如果需要模擬中國、日本、歐洲三個地區的網絡情況,可以把節點分成三個大地區,分別設定兩個地區間網絡連通的情況,再設置其中每個節點網絡連通的情況。這會非常方便大家在大型分佈式網絡的開發中調試和嘗試網絡不太可靠的情況,去檢測系統是否真實可用。

開始做CovenantSQL的時候很多人都會問我們和IPFS之間的差別,像剛剛我講到的IPFS和之前做的迅雷水晶系統更相似一些,其中IPFS針對的存儲對像是以文件為對象的,主要處理的是靜態文件數據情況。大家都知道數據一旦存放到IPFS網絡之後文件就不可以再進行修改了,同時對偏存儲和數據傳輸類型的項目,對存儲和帶寬的佔用是非常高的,所以帶寬的消耗非常重要,IPFS的工作量證明通過從存儲的角度出發來解決共識的問題。

數據庫存儲有很大差別,處理的數據庫類型是基於結構化記錄進行的,不是說數據不能被篡改,只是修改歷史不能被隨意刪除。工作量證明使用訴求主要是計算資源和存儲資源,所以工作量證明是從存儲和計算兩個角度出發的。這兩者相似相同的地方是都有非常好的開放性,都是開源的去中心化的,大量地應用了P2P的技術,能夠有很多不同語言之間的支持。

去年的時候Amazon開發了新的服務——“Qusantum Ledger Database”QLDB,從某種角度來講,CovenantSQL和QLDB是非常相似的,相似的點是都有不可篡改日誌,都支持SQL的查詢接口,也有很好的擴展性,並且都支持像Serverless的開發特性。

但是也有很大的差別,今天QLDB還是閉源的系統,而CovenantSQL是開源的系統,從某種角度上大家可以理解為開源的QLDB正因為開源性所以允許大家自行進行修改滿足自己的需求。如果你要使用QLDB的話只能在AWS範圍內使用,缺少自定義的能力,包括到今天為止AWS中國區還沒有引入QLDB的使用,使用QLDB的話需要預約和通過審核,但CovenantSQL可以直接使用的狀態。

在GitHub上的截圖,這個圖已經有一段時間了。從一開始的時候就開放了所有的代碼,現在項目的代碼大約10萬行左右,對系統的工程技術要求還是很高的,所以現在系統的代碼覆蓋度大約在80%左右,也應用了第三方的服務隊項目情況進行檢測,同時也支持了很多不同的語言,使得大家在用不同語言進行開發的時候可以很容易地對接進來。

這一頁是大家講的比較多的應用架構,在去中心化應用架構裡,CovenantSQL能夠作為數據庫的存在替代掉傳統的MYSQL、MongoDB、PgSQL等database應用,能成為真正的數據存儲,能基於CovenantSQL進行新去中心化特性的應用開發。

今天是Demoday,所以大家很關注應用場景。這一頁的應用是現在金融銀行系統裡的應用,銀行一直以來有對數據變遷追踪的需求,在傳統的銀行大數據應用系統裡叫“數據血脈”,過去大家都是使用SAP、Oracle進行數據血脈的追踪,因為每個人的數據在銀行的系統裡經過不同部門處理的時候打上了不同的標籤,但事後大家需要開發以及在銀行應用的時候需要追踪是什麼時候給這個人打上了什麼標籤,是為什麼給他打上標籤。所以“數據血脈”在銀行內部是大家一直以來都有的需求。

過去都是用中心化的數據庫解決,現在主要在使用區塊鏈進行解決,大家都知道區塊鏈的特點是可以非常容易地進行數據歷史溯源,所以需求從技術上來說是非常好地滿足了在銀行、金融領域很多場景下的應用情況,對一個數據從創建表開始到表的修改、到數據的修改,每一個步驟都可以被記錄在區塊鏈數據庫上,能非常方便地之後進行查詢和修改,並且同時銀行里涉及到的部門特別多,各個部門也能夠通過查詢自己管理節點的數據很容易地獲取到整體數據的修改情況。

這是我們的另外一個應用,主要是在數據共享方面使用數據庫平台。大家都知道區塊鏈有很多節點,比如現在在和中科院大學附屬醫院進行應用,在醫院裡有不同的分支機構,有很多分支醫院、不同部門有EMR數據需要共同進行存儲,同時又有數據交換出於科研和解決病人醫療信息的需求,需要有數據的交換,所以通過區塊鏈數據庫允許在不同的醫院間部署各自的節點,方便地進行數據交換。

但又考慮到病人隱私的保護,所以應用區塊鏈技術和密碼學技術可以非常好地進行數據脫敏,但又能夠很容易地訪問到不同的數據。為了應用又增加了行和列權限的管理,使得系統能夠非常方便地滿足在權限管理方面的訴求。

和物流公司進行合作,大家都知道物流涉及到客戶、監管,所以這也是有不同的參與方很容易地存儲和訪問到整體的數據,同時也能夠很容易地驗證拿到的數據是否是真實的數據。