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





