区块链,一个糟糕的数据库
小仙女是龍泉寺俗家弟子,廟里財務系統就是小仙女開發的,也一直給廟里遠程維護著數據庫。
小仙女今天得到通知,要做區塊鏈經書研習,一大早就趕路,剛過響午就到了山上,這剛到山門口,就看到快70歲的慧能師叔拿了本《區塊經》正在搖頭晃腦的品讀,看著師叔腦袋晃出了波動性的效果,小仙女心想:出家前師叔好像在歐洲跟隨玻兒研習量子力學。
小仙女:師叔,區塊經,是講什么的?
老和尚:講區塊鏈
小仙女:區塊鏈是什么?
老和尚:一個類型的數據庫,可以叫區塊鏈數據庫。
小仙女:數據庫?
老和尚:那考考你,關系數據庫有什么功能?數據庫查詢SQL語言主要做什么?
小仙女:主要是關系數據的 --
1)增加
2)刪除
3)修改
4)查詢
5)再加個觸發器編程。
老和尚:區塊鏈數據庫的功能,和關系數據庫很像,對數據的 --
1)增加
2)查詢
3)智能合約編程
4)??不能刪除
5)??不能修改
區塊鏈就是一個失去了刪除和修改能力的數據庫。
?
小仙女:除了功能,關系數據庫,和區塊鏈數據庫,還有什么區別?
老和尚:主流關系數據庫性能如何?
小仙女:一秒能寫入幾千條數據,區塊鏈數據庫呢?
老和尚:主流區塊鏈數據庫能做到10秒寫入1條。
小仙女:這慢了上萬倍!那這個數據庫寫入性能太糟糕了!
老和尚:太糟糕了?當佛祖為你關上一扇門的時候,自然會打開另一扇門。
小仙女:打開了哪扇門?
老和尚:增加了兩個特性--
1)數據幾乎永遠不丟失
2)數據幾乎永遠不能被修改
小仙女:師叔,數據永遠不丟失,這是怎么做到的?
老和尚:區塊鏈數據庫,底層是部署在全球/全國的上百、上千、上萬、上十萬的服務器做支撐。每份數據會在每個服務器上放置一份。就像這部《金剛經》全球的寺廟里都有一份,除非全球的《金剛經》同時丟失了,否則這份智慧會一直傳下去。
說著,慧能從袖子里取出了一部泛黃的經書拿在左手。
小仙女:難怪寫入速度這么慢!為了保障數據不可刪除、丟失,付出了這么大代價!每次加入一點數據,就像要去給全球所有寺廟的每部《金剛經》后面追加一句話一樣,得跑遍全球。而且能寫入的數據總量也不能超過單臺服務器的存儲容量。
老和尚:并且為了更好傳遞信息,區塊鏈上的每份數據,對加入存放的單位都是透明可見的,信息可見度透明性更強。就像我們龍泉寺加入了“藏經閣”計劃,納入藏經閣列表的經書,都要保證全球1000個寺廟都必須存檔一份,這些寺廟都能隨意查看。
小仙女:看來要把一本經書放入“藏經閣”是一份大工程!要跑遍全球1000個寺廟。
老和尚:是的,我正發愁,“藏經閣”委員會讓我負責把《區塊經》存放進入藏經閣!我明天要出差環游世界。
小仙女若有所悟:師叔,藏經閣是有一個會長么?還是有一個委員會?
老和尚:沒有會長,有一個全員都參與的1000個委員的委員會,每次投票超過一半通過,就算委員會通過決議。
小仙女:要是有寺廟想加入怎么辦?
老和尚:自愿申請,全員委員會投票通過就行。
小仙女嘴角露出了一絲微笑,一定是悟到了點什么。
小仙女繼續問道:數據永遠不能修改,這個是怎么保證的?是佛祖一直看著每份數據?不準人去修改?
老和尚:佛祖的事情,凡人不可猜測議論。但算法的事情,除了量子力學,都可以研習,這個能力是算法保證的。所有數據都使用非常復雜算法進行加密解密及數字簽名,除非有超過一半的服務器同時修改一個數據,數據才會被修改。為了這個簽名,需要耗費極其多的電費,比如現在運行的幾個公有BTC、ETH、LTC區塊鏈數據庫,每年耗電量估計能占到全球總發電量的1%!
小仙女:為什么要耗費如此大的代價,不讓數據被修改?
老和尚:你想想,最重要的信息,比如《金剛經》,能讓每個寺廟自己修改么?
小仙女:肯定不能!看來區塊鏈數據庫適合存放最重要的數據!
老和尚:定當如此!現在來看,區塊鏈數據庫特性你基本都掌握了,只剩最后一個關鍵點了,你還記得什么是觸發器么?
小仙女:就是數據庫數據變更時候,系統自動觸發執行的一段程序代碼,這段代碼能夠對數據庫數據進行操作。
老和尚:智能合約編程和觸發器編程你可以認為是一樣的,只有一點點不同。
小仙女:哪一點呢?
老和尚:智能合約代碼也存放在區塊鏈數據庫中的!并且只能追加數據。
說著老和尚用清澈深邃的眼鏡盯著小仙女:你猜猜這會帶來什么問題?
小仙女:那就是智能合約代碼也不能修改?
老和尚:很聰明。
小仙女:好奇怪的特性!
老和尚:你猜猜,數據不丟不改,智能合約也不能修改,是為什么?
小仙女押了口茶,看著壁畫陷入了沉思。
好一會兒,小仙女抬起頭:為了向善,為了信任!
老和尚露出了微笑:是的,歷史數據,要公開,不能刪,不能改,數據可信!智能合約,自動根據數據做規則操作,也公開開放,人人能審計,規則透明,規則可信!
小仙女:這太好了,大家不用花很多時間去判斷人是否可信,大家都信任數據、信任自動合約代碼規則就行了!那以后人們之間不用那么多懷疑,人和人的關系也就更簡單,更單純,更善良了!
接著,小仙女又露出了一絲疑惑的眼神:智能合約代碼是好,但如果程序寫錯了,也沒有修改的機會,這是一個超級大問題!要是有安全問題,就更麻煩了!
老和尚:這就是佛祖打開了區塊鏈信任大門,又打開了另一扇安全隱患之門呀。
切記不要讓10年編程工齡以下的人編寫智能合約代碼。還得找專業團隊反復進行代碼審計才能提交。
傳統程序,安全問題是大敵,智能合約任何BUG都是大敵。
好了,關于區塊鏈我能告訴你的就這么多了。
時間不早了,我們該進廟去了。
小仙女:我得整理下思路,看來區塊鏈數據庫就是一個寫入速度極慢、花費成本極高、寫入數量很小、數據不可刪除、不可修改的、數據不丟失的、透明度更高的數據庫!
和傳統關系數據庫相比較,有這些不同:
老和尚露出了微笑:學的不錯!我能傳授給你的都傳授完了。
走,我要準備出差去了,這趟大概要10年才能回來,如果我還活著的話。
小仙女依依不舍:師叔,最后還有一個問題,這么奇特的數據庫,什么場景會需要?
老和尚:關系數據庫誕生后,什么產業得到了發展?
小仙女:幾乎所有計算機信息化的產業,都得到了應用。尤其是互聯網產業以關系數據庫為業務關鍵基礎之一,得到了極大發展。
老和尚:那么哪個領域需要一個數據存放成本極高、寫入成本極高、性能極慢的、不丟失數據的、不可修改數據的、透明數據的數據庫?
小仙女陷入了冥思,過了一會兒睜開眼睛,露出了清朗的笑容:師叔,你明天不用出差了!
老和尚抬起右手,手心向上攤開,用拇指和食指做一拈花狀,和小仙女相視,會心一笑。
小仙女雙手合十:我佛慈悲!
老和尚雙手合十:我佛慈悲!
注:圖片來自百度。
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的区块链,一个糟糕的数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 点赞功能,用 MySQL?还是 Redi
- 下一篇: 救命,Linux正在吃掉我的内存!