自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

以數(shù)據(jù)庫思維理解區(qū)塊鏈,快來看看

區(qū)塊鏈 數(shù)據(jù)庫
作為一個數(shù)據(jù)庫行業(yè)的老兵,我看到在區(qū)塊鏈技術(shù)的熱潮下,傳統(tǒng)的IT技術(shù)同學們保持了十分理性,甚至是排斥的態(tài)度。其實不管是熱捧還是排斥,兩極觀點之下,我認為我們應(yīng)該從IT人比較能夠理解的角度探討一下區(qū)塊鏈技術(shù)。

作為一個數(shù)據(jù)庫行業(yè)的老兵,我看到在區(qū)塊鏈技術(shù)的熱潮下,傳統(tǒng)的IT技術(shù)同學們保持了十分理性,甚至是排斥的態(tài)度。其實不管是熱捧還是排斥,兩極觀點之下,我認為我們應(yīng)該從IT人比較能夠理解的角度探討一下區(qū)塊鏈技術(shù)。因為區(qū)塊鏈這個東西的本質(zhì)和數(shù)據(jù)庫技術(shù)非常相像,很多機制使用數(shù)據(jù)庫的理念去理解會非常直觀準確。

對于區(qū)塊鏈和傳統(tǒng)數(shù)據(jù)技術(shù),我認為區(qū)塊鏈技術(shù)的未來發(fā)展,主題是“融合”。我們就從數(shù)據(jù)庫這個角度來解讀區(qū)塊鏈技術(shù)體系中各個技術(shù)點,以及通過“去中心化數(shù)據(jù)庫”這個概念,把區(qū)塊鏈與數(shù)據(jù)庫技術(shù)做一個比較好的整合。

一、區(qū)塊鏈技術(shù)現(xiàn)狀

當前的區(qū)塊鏈世界有人號稱1.0、2.0、甚至已經(jīng)到了3.0時代,但是從一個產(chǎn)品或技術(shù)打磨的角度來看,我認為當前的區(qū)塊鏈也就相當于數(shù)據(jù)庫的80年代,處于百花爭鳴各種思想層出不窮的時代。

對技術(shù)人來說,這是最好的時代,各種新鮮的想法和思路大量爆發(fā),在沉悶的技術(shù)領(lǐng)域帶來新鮮的突破;同時這也是最壞的時代,沒有任何產(chǎn)品或方向肯定是未來的主流,任何新鮮的思路也許在幾個月以后就被證明不可行。

所以,我們要正確認知當前區(qū)塊鏈技術(shù)的變革和發(fā)展,那我們來對比當年數(shù)據(jù)庫所走過的道路,看看未來區(qū)塊鏈世界會怎樣發(fā)展。

1、技術(shù)演進路程

首先我認為,區(qū)塊鏈一定會從當前的專有化向通用化演進。現(xiàn)在基本所有做公鏈的產(chǎn)品都是針對某一個特定的場景來實現(xiàn)與優(yōu)化,但是我認為未來一定不會是一個應(yīng)用一條鏈,而是有一種通用的開發(fā)范式。就好像傳統(tǒng)數(shù)據(jù)庫一樣,不管大家開發(fā)什么樣的應(yīng)用程序,都可以使用這么若干有限的幾個通用性產(chǎn)品就能夠滿足大部分業(yè)務(wù)場景了。

第二,向標準化演進。對于區(qū)塊鏈技術(shù),現(xiàn)在每個鏈基本都有自己的開發(fā)范式,甚至很多公鏈還模仿以太坊嘗試自己做一個編程語言出來,這實際上是一種行業(yè)處于原始時期的標志。怎樣判斷一個行業(yè)開始走向成熟?就是業(yè)務(wù)模式基本固定、開發(fā)方式基本固定,這樣就能夠?qū)Υ罅康某绦蛉藛T進行推廣了。

第三,產(chǎn)品化和模塊化不斷加強。當前不管是以太坊、比特幣還是很多其它新的公鏈,大部分的體系結(jié)構(gòu)都是非常緊耦合的。對比起我們在大數(shù)據(jù)領(lǐng)域的Hadoop,基本每個模塊都可以作為獨立插件進行可配置可定制的插拔。所以我認為,隨著區(qū)塊鏈技術(shù)的不斷成熟和穩(wěn)定,未來一定會出現(xiàn)一款成熟產(chǎn)品,能夠通過可插拔配置與插件的方式滿足多種共識算法、安全機制等。

最后,性能與可擴展性的提升。實際上這也是數(shù)據(jù)庫所走過的路,當前區(qū)塊鏈世界想在短短的時間之內(nèi)通過側(cè)鏈、分片等機制跨過當年數(shù)據(jù)庫幾十年來的變革。

接下來我會介紹,從數(shù)據(jù)庫的角度看待區(qū)塊鏈其最大的性能與擴展能力制約瓶頸在什么地方,以及應(yīng)當如何優(yōu)化。

2、發(fā)展現(xiàn)狀

那我們回過頭看看當前區(qū)塊鏈行業(yè)的現(xiàn)狀。

拋開區(qū)塊鏈上層的一些應(yīng)用與金融領(lǐng)域的創(chuàng)新,單獨從技術(shù)角度來看,我一直認為其最大的革新在于對等數(shù)據(jù)存儲機制的建立。

在數(shù)據(jù)庫這個行業(yè)里,大家一直遵從著主-從架構(gòu),而完全“多活”的系統(tǒng)從幾十年前的提出一直以來都是傳說中的事情,從來沒有任何產(chǎn)品真正做到多活。

而當我們以創(chuàng)新的多活數(shù)據(jù)庫來看待當前區(qū)塊鏈技術(shù)時,就會發(fā)現(xiàn)三個急需改進的問題:

  • 首先,區(qū)塊鏈的體系結(jié)構(gòu)現(xiàn)在非常混亂,大家還沒有向傳統(tǒng)數(shù)據(jù)庫一樣將其分類為事務(wù)、存儲過程、鑒權(quán)、主從同步等模塊,大部分人對區(qū)塊鏈的認知還是停留在神秘的黑盒子階段。
  • 第二,區(qū)塊鏈的開發(fā)語言完全不成體系。數(shù)據(jù)庫在經(jīng)過開始的“戰(zhàn)國時代”后,漸漸使用SQL做到了業(yè)界的大一統(tǒng)。而區(qū)塊鏈當前明顯還處于“戰(zhàn)國時代”,還沒有一個統(tǒng)一的標準開發(fā)和使用標準。
  • 第三,需求的多種多樣,有些需求或白皮書的業(yè)務(wù)介紹是靠譜的,有些則是完全異想天開不知所云。實際上這個和區(qū)塊鏈所帶來全新的業(yè)務(wù)模式相關(guān),很多人還在探索新的業(yè)務(wù)模型,從而導致需求沒有形成標準范式。

二、區(qū)塊鏈vs數(shù)據(jù)庫技術(shù):相同點

從數(shù)據(jù)庫的角度對比,區(qū)塊鏈技術(shù)即去中心化多活數(shù)據(jù)庫技術(shù),兩者之間沒有本質(zhì)區(qū)別。

這里我列舉了一些區(qū)塊鏈里面比較重要的技術(shù)點,以及這些技術(shù)點在數(shù)據(jù)庫領(lǐng)域中是以什么形式存在的。這些概念和數(shù)據(jù)庫中的技術(shù)概念一一對應(yīng)關(guān)系如下:

共識機制

一致性控制——共識機制

分布式數(shù)據(jù)庫中叫做一致性控制,包括傳統(tǒng)的主從復制、新一代的Raft、Paxos等算法。在區(qū)塊鏈中為了解決額外的拜占庭問題,將算法改進為PBFT、PoW、PoS等協(xié)議。

存儲機制

數(shù)據(jù)庫日志——賬本

區(qū)塊鏈結(jié)構(gòu)基本等價于數(shù)據(jù)庫的事務(wù)日志,其主要新增的內(nèi)容包括Merkle Tree結(jié)構(gòu)用于快速驗證數(shù)據(jù)的正確性,但是其本質(zhì)與數(shù)據(jù)庫的交易日志等價。同時數(shù)據(jù)庫在日志中更會包括事務(wù)控制等企業(yè)級能力,是區(qū)塊鏈數(shù)據(jù)結(jié)構(gòu)所不具備的。

智能合約

智能合約——存儲過程

智能合約與數(shù)據(jù)庫存儲過程一樣,都是一段托管代碼。本質(zhì)上智能合約與數(shù)據(jù)庫存儲過程沒有什么區(qū)別,都是通過外部調(diào)用或虛擬機執(zhí)行一段代碼,并可以將托管代碼共享給其他用戶進行調(diào)用。

分片

數(shù)據(jù)庫分片機制早在MPP數(shù)據(jù)庫時代就已經(jīng)存在。通過將大量數(shù)據(jù)切分在不同分片中,達到限制每個分片數(shù)據(jù)總量,并提升總吞吐量和存儲空間的目的。

應(yīng)用開發(fā)接口

當前區(qū)塊鏈還處于類似數(shù)據(jù)庫當時的早期時代,接口沒有統(tǒng)一標準化。根據(jù)區(qū)塊鏈項目不同,其接口可以按照數(shù)據(jù)庫、對象存儲、API調(diào)用、甚至PaaS平臺標準進行定義。

安全

區(qū)塊鏈的安全機制與數(shù)據(jù)庫安全機制具有相似之處。數(shù)據(jù)庫安全一般分為鑒權(quán)與授權(quán)兩個模塊,分別代表用戶登錄以及訪問權(quán)限。而區(qū)塊鏈當前僅支持記錄級寫授權(quán),但是對于讀操作時完全共享的。因此,從安全策略上數(shù)據(jù)庫比當前的區(qū)塊鏈完善很多。

三、區(qū)塊鏈vs數(shù)據(jù)庫技術(shù):不同點

數(shù)據(jù)庫與區(qū)塊鏈功能架構(gòu)圖

1、功能架構(gòu)

黃色部分是區(qū)塊鏈和數(shù)據(jù)庫架構(gòu)都擁有的功能。白色的部分是目前數(shù)據(jù)庫獨有的功能。

我們在上文也有提及數(shù)據(jù)庫的SQL能力是實現(xiàn)其通用性的重要部分,SQL對于之后區(qū)塊鏈的開發(fā)模式固定下來很重要。

索引管理這塊,在數(shù)據(jù)庫中主要是提升數(shù)據(jù)管理和數(shù)據(jù)查詢的性能效率的,當具體的應(yīng)用場景出現(xiàn),性能將成為下一階段需要提升的重要部分。因此,存儲的數(shù)據(jù)的索引就成為很重要的組成了。

2、機制

在機制上,區(qū)塊鏈和數(shù)據(jù)庫的主要區(qū)別有如以下幾點:

  • 一致性

區(qū)塊鏈的設(shè)計思想,與傳統(tǒng)數(shù)據(jù)庫設(shè)計思想最大的不同就在于多活,也就是去中心化這個體系下所帶來的一致性模型的區(qū)別。

傳統(tǒng)的關(guān)系型數(shù)據(jù)庫遵循ACID強一致模型,寫入的記錄立刻可以讀到。而一些新型分布式數(shù)據(jù)庫采用最終一致性,也就是BASE模型,寫入的數(shù)據(jù)暫時不一定讀到,但是最終一定會存在。

但是,區(qū)塊鏈或者說去中心化數(shù)據(jù)庫的設(shè)計思路就存在明顯區(qū)別,也就是說任何操作不存在“永久確認”這個概念。即使類似比特幣,從核心原理上來看6個塊之前的內(nèi)容也只是“基本不會被回退”。

舉個極端的例子,如果中美之間廣域網(wǎng)出于什么原因突然斷了三天,之后恢復的話比特幣一定會出現(xiàn)大規(guī)模分叉,這個期間如果有賬號同時在中美進行大額消費的話,想要恢復一個主鏈則一定需要犧牲很大一部分人的交易才能實現(xiàn)回退。

那么,既然在對等架構(gòu)中沒有辦法保障強一致,那么區(qū)塊鏈體系中的一致性則和傳統(tǒng)數(shù)據(jù)庫存在本質(zhì)上的區(qū)別,從而引發(fā)后續(xù)一系列設(shè)計上的不同。

歸根結(jié)底,在任何傳統(tǒng)主從架構(gòu)的數(shù)據(jù)庫模型中,人們會想盡一切方法防止集群內(nèi)出現(xiàn)“腦裂”,也就是同一個集群里面兩個節(jié)點都認為自己是主節(jié)點。

但是這個問題在對等數(shù)據(jù)庫體系下時時刻刻都可能發(fā)生,而這種現(xiàn)象在區(qū)塊鏈里面叫做分叉,這是和我們傳統(tǒng)數(shù)據(jù)庫一致性模型非常不同的地方。

  • 鎖機制

其中,鎖機制可以說是區(qū)塊鏈與數(shù)據(jù)庫在保障數(shù)據(jù)一致性方面最大的區(qū)別。

所有研究過數(shù)據(jù)庫的同學不可能沒聽說過鎖。當我們做一個事務(wù)的時候,提交之前所有該會話變更的記錄都要被鎖住,不能被其他會話所修改。

而去中心化數(shù)據(jù)庫,由于每個賬本節(jié)點操作本地數(shù)據(jù),變更信息會異步地傳輸出去,因此根本不存在一個全局鎖能夠在記錄變更的時候通知其他人。因此,在無鎖的前提下,去中心化數(shù)據(jù)庫,也就是區(qū)塊鏈該怎樣保障數(shù)據(jù)一致呢?

比特幣使用的是UTXO結(jié)構(gòu),有點類似于數(shù)據(jù)庫的“樂觀鎖”的思路,也就是操作的時候不進行鎖定,只有在最后提交的過程中判斷記錄有沒有變化。

比特幣則是通過coin是否被花費的狀態(tài)來判斷是否存在交易沖突。而以太坊則是使用nonce作為每條記錄的遞增計數(shù)器來判斷是否存在針對某一賬戶的重復交易,實際上也是一種變相實現(xiàn)的行級鎖的機制。

  • 安全機制

另一個區(qū)塊鏈業(yè)界大家談?wù)摫容^多的就是安全機制。

首先,我不是加密算法專家,因此我在這里不去討論具體使用的加密算法,而是從整個存儲體系的安全模型設(shè)計上,來討論一下區(qū)塊鏈技術(shù)中如何在全對等架構(gòu)的體系下保障數(shù)據(jù)安全。

在我看來,區(qū)塊鏈的安全體系分為三個級別,記錄級、區(qū)塊級以及鏈級。

記錄級安全主要是判斷某一條操作記錄是否合法,在一些實現(xiàn)中還包括是否對不同用戶有讀可見和寫可見。

而區(qū)塊級則是當節(jié)點接收到另一個節(jié)點發(fā)送的區(qū)塊時,如何判斷這個區(qū)塊本身沒有被篡改過,那么通過默克爾樹、挖礦的結(jié)果等機制都可以做到。

最后,怎樣保證鏈的完整呢?比如每個數(shù)據(jù)塊需要包含鏈中上一個數(shù)據(jù)塊的校驗,以及當分叉發(fā)生時如何進行回退等,都是保障整個鏈條結(jié)構(gòu)的完整。

四、去中心化數(shù)據(jù)庫架構(gòu)

區(qū)塊鏈技術(shù)和數(shù)據(jù)庫技術(shù)的融合會形成怎么樣的結(jié)果呢?

我們是否能夠?qū)F(xiàn)有的區(qū)塊鏈以數(shù)據(jù)庫的架構(gòu)進行組織,分為內(nèi)核、運行庫、插件,以及SQL解析優(yōu)化等不同模塊呢?

既然數(shù)據(jù)庫的核心本質(zhì)依然是不可變更的事務(wù)日志,這一部分等同于區(qū)塊鏈的鏈結(jié)構(gòu),那么如果我們通過將SQL引擎架設(shè)在state store,甚至讓SQL引擎直接對鏈內(nèi)的數(shù)據(jù)進行訪問,是不是意味著我們就擁有了一個通用的編程和訪問接口?

又例如:對于安全組件,我們是否可以做到列級行級表級以及節(jié)點級別的安全認證,同時可以通過配置指定哪些表需要進行數(shù)字簽名,哪些表的一些字段是共享的,但其他字段是需要經(jīng)過多重簽名做加密的等。

另外,對于一致性來說,我們是否可以指定某些表是全局共享表,某些表則是本地表,這樣就可以取代現(xiàn)在區(qū)塊鏈與數(shù)據(jù)庫混用的部署方式。

我認為,未來會出現(xiàn)兩者融合而成的 “去中心化數(shù)據(jù)庫”。

去中心化數(shù)據(jù)庫基本功能

 

去中心化數(shù)據(jù)庫的基本特性:

  • 去中心化:架構(gòu)是完全的去中心化的,不存在中心的控制節(jié)點,每個節(jié)點都具備讀寫的功能,每個節(jié)點的數(shù)據(jù)都是一致的;
  • 無全局鎖:由于采用廣域網(wǎng)上的對等架構(gòu),去中心化數(shù)據(jù)庫不可能實現(xiàn)全局鎖,因此系統(tǒng)只能使用在某種程度上弱化鎖與一致性,來滿足高可用的需求;
  • 非固定節(jié)點生成日志:非固定節(jié)點生成日志,日志是整個數(shù)據(jù)庫的日志,在去中心化的體系結(jié)構(gòu)中任何節(jié)點都有權(quán)記錄日志,這樣就形成了去中心化沒有主節(jié)點的架構(gòu),任何節(jié)點都有機會臨時成為記賬節(jié)點出塊;
  • 異步事務(wù)確認:由于不存在全局鎖,與傳統(tǒng)數(shù)據(jù)庫相比一些事務(wù)機制必須得到調(diào)整。將事務(wù)的提交回滾做到異步可能是一種比較可行的思路;
  • 一致性策略調(diào)整:在多活的區(qū)塊鏈狀態(tài)下,數(shù)據(jù)的一致性策略會與傳統(tǒng)的數(shù)據(jù)庫一致性機制有所不同;
  • 行級別安全性和觸發(fā)器:對于數(shù)據(jù)安全,去中心化數(shù)據(jù)庫將會保證到行級甚至列級的數(shù)據(jù)安全性。

五、區(qū)塊鏈和數(shù)據(jù)庫技術(shù)融合:中心化數(shù)據(jù)庫

對于區(qū)塊鏈和傳統(tǒng)數(shù)據(jù)技術(shù),我認為區(qū)塊鏈技術(shù)的未來發(fā)展,主題是“融合”!

現(xiàn)在區(qū)塊鏈的業(yè)務(wù)理念飛速發(fā)展,但是從技術(shù)本身來看,我認為當前區(qū)塊鏈的技術(shù)仍然和上世紀“80年代”的數(shù)據(jù)庫技術(shù)階段類似,在技術(shù)的成長期。如我們上文所提到,區(qū)塊鏈技術(shù)在通用性、標準化上還有很長的路要走。

 

而基于技術(shù)路線和架構(gòu)設(shè)計的類似,數(shù)據(jù)庫技術(shù)與區(qū)塊鏈技術(shù)的融合其實是大勢所趨。 而通過區(qū)塊鏈技術(shù)和機制的引入,去中心化數(shù)據(jù)庫,將可能是未來技術(shù)發(fā)展的一個重要方向。  

責任編輯:龐桂玉 來源: DBAplus社群
相關(guān)推薦

2018-03-06 09:54:48

數(shù)據(jù)庫備份恢復

2018-02-24 14:59:39

區(qū)塊鏈公共區(qū)塊鏈私有區(qū)塊鏈

2018-01-30 17:54:37

數(shù)據(jù)庫MySQLSQL Server

2024-06-03 00:00:06

高性能數(shù)據(jù)傳輸應(yīng)用程序

2020-04-16 09:35:53

數(shù)據(jù)科學機器學習數(shù)據(jù)分析

2017-11-24 08:00:55

前端JSCSS

2018-05-02 15:41:27

JavaScript人臉檢測圖像識別

2025-01-13 00:00:05

2025-01-13 07:10:00

前端開發(fā)

2018-03-12 10:35:01

LinuxBash快捷鍵

2021-04-19 09:23:26

數(shù)字化

2020-06-08 15:06:33

Pandas可視化數(shù)據(jù)

2020-08-04 07:02:00

TCPIP算法

2018-05-30 10:31:10

2018-05-03 20:55:47

區(qū)塊鏈分布式數(shù)據(jù)庫

2018-09-27 16:15:10

區(qū)塊鏈數(shù)據(jù)庫

2019-03-14 09:30:35

區(qū)塊鏈數(shù)據(jù)庫存儲

2018-02-10 19:12:14

區(qū)塊鏈數(shù)據(jù)庫解決方案

2017-07-19 07:27:39

區(qū)塊鏈ICO監(jiān)管

2020-09-06 08:20:10

區(qū)塊鏈分布式比特幣
點贊
收藏

51CTO技術(shù)棧公眾號