你知道什么是區(qū)塊鏈數(shù)據(jù)庫嗎
2012年,我去建設銀行證券業(yè)務部開通買股票的賬戶。七七八八簽了一大堆文件,我一張紙都沒看,柜臺小妹讓我在哪簽字我就簽哪。最后我問,“這些文件我可不可以扔了?”人家回答,按相關法規(guī),我們需要至少保存20年。
我國的證券登記結算管理辦法規(guī)定,“證券登記結算機構應當妥善保存登記、存管和結算的原始憑證及有關文件和資料。其保存期限不得少于20年?!?/p>
我很困惑,這么多證券公司,這么多資料文件,浩如煙海,怎么能做到完整保存20年?事實上,我辦理銀行卡,辦手機卡,買保險……各種開戶資料,沒有一份能完整保存1年的。我都看都不帶看就撕了扔了。
比特幣第一筆交易發(fā)生在2009年1月4日2點15分5秒。到今天,超過10年了。在這10多年的過程中,比特幣網(wǎng)絡上發(fā)生的所!有!交易,全都完整地保存了下來。任何人都可以下載查閱比特幣所!有!的歷史交易。更牛X的是,比特幣網(wǎng)絡還沒有專門的人去維護,沒有專門的法規(guī)去約束誰要保存這些交易。它就這樣穩(wěn)定安全地保存了10年的交易數(shù)據(jù)。
區(qū)塊鏈或許命中注定承擔保存那些需要長期、安全、穩(wěn)定、數(shù)量龐大的數(shù)據(jù)。
區(qū)塊鏈數(shù)據(jù)庫,這個名字聽起來太拗口,很難理解。遇到這個名詞,我腦子里一直無法想象出一個對應的“視覺化圖景”。說數(shù)據(jù)庫,我們能想象出一張表;說區(qū)塊鏈,我們能想象出一個一個區(qū)塊首尾相連。但區(qū)塊鏈數(shù)據(jù)庫是個什么玩意?
在2018年初,我去南方科技大學拜訪,幾個朋友正在討論一個區(qū)塊鏈項目,叫“VEE——Blockchain Database Cloud”。這個項目就是現(xiàn)在的vsys。
當時我就被里面講到的區(qū)塊鏈數(shù)據(jù)庫的概念吸引了。為了搞明白這個概念,我追著這個項目研究了很久。
我們熟悉的數(shù)據(jù)庫都是為特定要求定制開發(fā)的。比如你自己做一張Excel表,用來記錄你的炒幣交易紀錄,這就是一個數(shù)據(jù)庫。一般的定義是,數(shù)據(jù)庫是一定數(shù)據(jù)格式存儲的,和應用獨立的數(shù)據(jù)集合。用戶可以對數(shù)據(jù)庫進行增、刪、改、查等操作。
而區(qū)塊鏈是一種不可刪除的分布式賬本,對區(qū)塊鏈數(shù)據(jù)的“增”只能以“交易”這種方式來執(zhí)行。就這兩特性就和我們熟悉的數(shù)據(jù)庫相差太遠了。
我們需要把理解下沉一層,把區(qū)塊鏈當成是“數(shù)據(jù)庫的數(shù)據(jù)庫”。或者可以這樣理解,“區(qū)塊鏈”是沒有精煉的原油,而“數(shù)據(jù)庫”是石油精煉后的汽油。
對區(qū)塊鏈的操作,只有一條指令——交易。而對數(shù)據(jù)庫的操作,有四條指令——增、刪、改、查。要把區(qū)塊鏈當成數(shù)據(jù)庫來使用,需要將對數(shù)據(jù)庫的操作指令都封裝成交易,一個交易對應一個數(shù)據(jù)庫操作。區(qū)塊鏈網(wǎng)絡會以交易的形式記錄下所有對數(shù)據(jù)庫的操作,而且會記錄交易的時間順序。
在區(qū)塊鏈上沉淀了的交易后,再設計一個“應用”,或者叫“算法”,“應用”會從區(qū)塊鏈網(wǎng)絡的初始塊開始讀取相關的交易,來獲取數(shù)據(jù)庫需要的所有相關交易,并且對交易再執(zhí)行數(shù)據(jù)庫的增刪改查操作,最后形成一張表,或者說形成一個特定的數(shù)據(jù)庫。而且“應用”會實時掃描區(qū)塊鏈,以檢查是否有新的數(shù)據(jù)庫操作。
用戶以發(fā)交易的方式對區(qū)塊鏈發(fā)起操作,區(qū)塊鏈會記錄所有的交易,“應用”在區(qū)塊鏈上讀取提煉相關交易,形成特定功能的數(shù)據(jù)庫。
使用區(qū)塊鏈這種方式來設計數(shù)據(jù)庫有什么好處呢?
區(qū)塊鏈網(wǎng)絡會記錄對數(shù)據(jù)庫的所有歷史操作,歷史操作不可更改。完美滿足證券登記結算管理辦法規(guī)定的數(shù)據(jù)需要保證20年。
傳統(tǒng)的數(shù)據(jù)庫管理員,或者黑客對數(shù)據(jù)歷史記錄的修改是一個經常爆發(fā)的問題。在2014年,幣圈有一個交易所被黑客入侵。黑客壞的很,幣沒偷著,但把交易所后臺數(shù)據(jù)庫給刪了。導致交易所賬戶系統(tǒng)沒了,都不知道自己有哪些用戶了,更不知道幣該歸誰了。朋友L在里面存了幣,最后依靠所有的郵件歷史記錄,和客服溝通,取回了當時充值的金額,至于中間是否通過交易虧損還是掙了,就不給他算了。
區(qū)塊鏈會記錄交易的時序,所以數(shù)據(jù)可以在任意時間恢復到任意位置。
幣圈交易所有時候會搞“回滾”,被黑客攻擊了,可能就會“回滾”。你去google搜一下,主流交易所都干過這事。這就需要數(shù)據(jù)庫記錄下所有的歷史操作和時序。
區(qū)塊鏈數(shù)據(jù)庫可以做到公開透明,也可以通過數(shù)據(jù)加密的方式做到保密。完美。
區(qū)塊鏈數(shù)據(jù)庫可以做到無需授權即接入。使用傳統(tǒng)的數(shù)據(jù)庫技術,一定會有嚴重的權限等級,誰是管理員,誰是一般用戶。但區(qū)塊鏈數(shù)據(jù)庫,可以不需要權限等級,讓任何用戶都無障礙進接入進來,不需要授權,不需要注冊。因為這玩意是去中心化的。
當然區(qū)塊鏈數(shù)據(jù)庫也有很多缺點了。
能承接的數(shù)據(jù)量嚴重有限。傳統(tǒng)數(shù)據(jù)庫,你想搞多大就搞多大。現(xiàn)在BTC網(wǎng)絡,10分鐘也就處理1M的數(shù)據(jù),運行了10年,積累了280G的數(shù)據(jù)。
使用區(qū)塊鏈很貴,成本很高。用戶寫一筆交易都要花一筆礦工費?,F(xiàn)在往BTC寫數(shù)據(jù)要超過50塊錢1KB。當然也有便宜的,BCH平均是2分錢1KB。什么數(shù)據(jù)都往鏈上整的想法,就要受到成本的約束。傳統(tǒng)的數(shù)據(jù)庫,相對來說價格可以忽略不計。
利用區(qū)塊鏈來設計數(shù)據(jù)庫,需要找到獨特的場景,金融領域是一個不錯的選擇。
來源: 閃電HSL