區塊鏈數據庫到底有多大?

比特幣第一筆交易發生在2009年1月4日2點15分5秒。到今天,超過10年了。在這10多年的過程當中,比特幣網絡上發生的所!有!交易,全都完整地保存了下來。任何人均可如下載查閱比特幣所!有!的歷史交易。更牛X的是,比特幣網絡尚未專門的人去維護,沒有專門的法規去約束誰要保存這些交易。它就這樣穩定安全地保存了10年的交易數據。算法

區塊鏈或許命中註定承擔保存那些須要長期、安全、穩定、數量龐大的數據。數據庫

區塊鏈數據庫,這個名字聽起來太拗口,很難理解。遇到這個名詞,我腦子裏一直沒法想象出一個對應的「視覺化圖景」。說數據庫,咱們能想象出一張表;說區塊鏈,咱們能想象出一個一個區塊首尾相連。但區塊鏈數據庫是個什麼玩意?數組

一、數據庫

傳統數據庫是用來存儲信息的數據結構。這包含可以用來製做支持各種商業,金融和管理決定的報告,所須要的數據。政府也會使用數據庫來存儲大型數據,能夠會有幾百萬個記錄。數據庫從文件分級系統開始,提供了最基本的信息獲取和存儲功能。而後,數據庫使用相關的模型,經過將多個數據庫進行相關,能夠有更多複雜的方式來得到數據。存儲在數據庫中的信息可使用管理系統來進行管理。簡單的數據庫被存儲在數據行列中,被稱爲表格。表格中包含不一樣領域,用來定義不一樣記錄的種類,存儲數據被稱爲屬性。每一個領域包含列和航,表明存儲的記錄。安全

數據庫是被管理員能夠修改,管理和控制的。數據庫老是會有管理員,而且能夠徹底控制數據庫。他們能夠建立,刪除,修改數據庫中的任何記錄。他們能優化數據庫的性能和大小。越大的數據庫就會有更慢的性能,因此管理員可使用方法來優化。管理員也能夠把這個身份轉給別人。例如,管理員能夠把身份轉給另外的用戶,讓他們來進行數據庫備份。可是,問題也會有,外匯跟單:www.gendan5.com例如服務器跨了,惟一的方法就是從備份恢復。數據庫也是遞歸的,也就是說你能夠回去重複某個任務,或者說刪除任務。若是信息已經備份,那麼管理員就會刪除以前的記錄和其餘過時信息。好比你在如今數據庫寫入了「John Smith」,如今須要更新住址。可是如今已經有「John Smith」的備份了,因此你能夠經過現有數據庫的新地址進行更新。服務器

二、區塊鏈

對於區塊鏈的描述,咱們會想到比特幣。可是也有不少在企業環境下運行的私有鏈。區塊鏈在2009年誕生,比特幣是基於它的第一個系統。在比特幣系統中,區塊鏈是不可更改的數字帳本,而且也是逐漸增加的加密分佈式數據庫。區塊鏈會在同等大小的區塊中存儲信息。每一個區塊都會包含前個區塊的哈希信息,從而提供加密安全性。這個哈希的信息就是前個區塊中的數據和簽名,而且前個區塊的哈希會回到區塊鏈的首個區塊,被稱爲「創世區塊」。整個信息就會經過哈希經過,而且指向下個區塊的地址。區塊鏈數據結構,例如默克爾樹,是頗有效地數據驗證方式。網絡

爲了讓區塊可以加入到區塊鏈上,整個過程當中包含了博弈論。網絡中做爲節點的計算機被稱爲「礦工」,必需要競爭來從nonce中找出正確的數值。礦工必需要用計算資源來解決這個數值,並且這也須要計算機硬件。區塊鏈內置的協議,能夠經過全網算力來得出解決難題的難易程度。這意味着若是有越多的礦工,解決問題的難度也就越高。這是由於若是有更多礦工,網絡上就會有更多的計算資源,同時提升了哈希力,也就是h/s。一旦礦工驗證了區塊,他們會由於提供算力而得到獎勵。這部分激勵就是推進節點來挖礦的動力,由於他們會得到交易費用和代幣。在比特幣中,這也被稱爲工做量證實算法。數據結構

三、區塊鏈與傳統數據庫的區別

  經過設計和定義,區塊鏈定義了一個特定類型的數據庫。數據庫中的每一個記錄叫作區塊,含有像交易時間戳和前一個塊的連接等詳細信息。這使得沒有任何人能夠追溯修改記錄。所以,區塊鏈是不可變的,只要網絡存在一天,信息就保持着原樣一天。另外,因爲同一交易的記錄被存儲在多個分佈式數據庫系統上,這個技術在設計上講是安全的。數據庫設計

  這種數據庫不一樣於傳統的數據庫,在傳統數據庫中,數據是存儲在特定的數據結構中(如數組或表格),擁有 CRUD(Creat——建立,Read——讀,Update——更新,Delete——刪除)操做,經過中心管理功能來控制,這是由管理員用戶(即默認管理員用戶)提供的。這種方法把整個系統開放給最終用戶,並要求用戶對該系統負責(包括安全、訪問控制和分配 CRUD 功能)。分佈式

  而區塊鏈定義的數據庫是一次寫入只讀數據庫。那就意味着,它們被設計成只能建立,不能修改和刪除的數據庫。這讓它們不可變(即不能改變),而且歷史準確(即在某個時間點數據被輸入且被固定)。你能夠把它想成一個永遠增加的期刊,隨着時間的推移,不斷地加入新的頁面。這是區塊鏈數據庫設計上的優點,可是隨着容量的增加,區塊鏈會變得愈來愈昂貴。區塊鏈的另外一個核心特徵是,它由複雜的數學確保安全,而且由於是分佈式的(不少數據副本被存儲在不一樣的位置),使得複製或利用變得困難(幾乎是不可能的)。性能

  若是你理解這些基本差別,那把區塊鏈用做數據庫 / 數據存儲就不難了。事實上,對於某些用例(如比特幣),區塊鏈是完美的數據庫,由於它們不信任中央行動者(central actors)(好比像銀行這樣的金融機構)

相關文章
相關標籤/搜索