精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

當前位置:區塊鏈行業動態 → 正文

區塊鏈是個數據庫 但數據庫不是區塊鏈

責任編輯:zsheng |來源:企業網D1Net  2018-09-06 08:32:33 本文摘自:太平洋電腦網

在談到什么是區塊鏈及其與數據庫的區別時,我們得到的信息是非常混亂的。區塊鏈事實上是個數據庫,因為它是一個數字分類賬,把信息存儲于稱為區塊的數據結構中。數據庫是把信息存儲于稱為表的數據結構中。然而,雖然區塊鏈是個數據庫,但是數據庫卻不是區塊鏈。從某種意義上說,它們不能互換,盡管兩者都存儲信息,但在設計上是不同的。兩者的用途也有不同,對那些希望了解為什么需要區塊鏈和為什么數據庫更適合存儲某些數據的人來說,他們可能并不清楚。

首先,我們來看看數據庫和區塊鏈之間的區別。

數據庫

傳統的數據庫是用于存儲信息的數據結構。它包括可以查詢的數據,以收集對實體用于支持業務、財務和管理決策的結構化報告的見解。政府還利用數據庫來存儲大量的數據,這些數據可以擴展到數百萬條記錄。數據庫以平面文件分層系統起步,提供簡單的信息收集和存儲功能。后來,數據庫使用關系模型,該模型允許通過把來自多個數據庫的信息關聯起來,用更復雜的方式收集數據。這些存儲在數據庫的信息可以利用數據庫管理系統進行組織。簡單的數據庫存儲在稱為表的數據元素中。表含有定義記錄類型的字段,這些字段存儲稱為屬性的數據。每個字段包含列和行,其中列描述該字段,行則定義存儲于數據庫中的記錄。

 

 

數據庫設計

數據庫可以進行修改,由一位被稱為管理員的用戶管理和控制。數據庫總是有一位行使數據庫管理員職責的用戶,該用戶對數據庫有完全的控制權。該用戶可以創建、刪除、修改和改變任何存儲于數據庫中的記錄。他們還可以在數據庫上行使諸如優化性能和把數據庫的規模控制在可控水平上等管理職能。大型數據庫的性能往往會下降,因此,管理員可以實施優化方法以提高性能。管理員還可以把某些職責委托給其他用戶,允許他們成為管理員或管理數據庫。例如,管理員可以把職責委托給用戶,允許他們為數據庫創建新用戶。一旦出錯,管理員和受他們委托的用戶可以從備份中恢復數據庫。在企業界,這類問題很常見。如果服務器崩潰,唯一能恢復數據的方法是從備份中恢復數據庫。數據庫也可以遞歸,意思是您可以返回到某個特定的記錄上重復某個任務,并對其進行修改或刪除。管理員常常清除數據庫中的舊記錄,這些記錄不是已經備份到另一個數據庫,就是已經被視為是過時的信息。比如,如果您在現有的數據庫中有一個“John Smith”的記錄,他的新住址需要更新到該記錄中。在存檔的數據庫中已經有“John Smith”之前的地址備份,因此,該記錄可以用在現有數據庫中的新地址進行更新。

 

 

采用客戶端/服務器架構的數據庫

從小型辦公室/居家辦公室到企業環境,實現的是客戶端/服務器架構的數據庫。這是因為計算機需要連接到托管數據庫的服務器上,以獲取信息或存儲數據。最初,采用ODBC連接的數據庫客戶端由管理員配置,或是由客戶端計算機上的技術人員來連接到數據庫。然后,運行客戶端軟件以建立安全連接,必須進行身份驗證以繼續訪問。該驗證可以使用由管理員配置的訪問字符串或給用戶密碼以登錄到數據庫。這就是為什么要創建用戶賬號的原因,以允許那些通過驗證的用戶訪問,并拒絕沒有通過驗證的訪問請求。在如今大多數系統中,用web界面代替。但仍然要求為私有訪問進行驗證,而公共數據庫則可以更容易地從網站訪問。

我們可以看到,數據庫需要大量的控制,這使得數據庫高度集中。它也獲得許可,意味著它從管理員那里獲取用戶賬號,管理員設置用戶如何訪問數據庫的權限。在生產環境中,數據庫管理員只給數據庫上的公共信息設置讀取權限。然后,他們給用戶設置不同的權限集,這些用戶可以更新信息或把信息寫入到數據庫中。傳統數據庫的集中性給系統設置了安全性和可靠性。許多數據庫都在由大公司運營的數據中心防火墻后面的私有網絡中運行。其他數據庫托管在大眾可用的云上。它們仍然需要由數據庫管理員控制。

區塊鏈

我準備根據用于比特幣的設計來描述區塊鏈。還有用于企業環境的私有區塊鏈,但是我稍后才討論它們。區塊鏈于2009年面世,比特幣成為第一個實施區塊鏈的系統。在比特幣中,區塊鏈是個不可變的數字公共分類賬,是一個不斷增長的分布式數據庫,通過加密保證安全性。區塊鏈存儲信息于統一大小的區塊中。每個區塊包含一個來自前一個區塊的哈希信息以提供加密安全性。這個哈希信息是來自前一個區塊的數據和數字簽名,這個前一個區塊的哈希值可以一直回溯到被稱為“創始塊”的第一個區塊。該信息是通過哈希函數運行,然后指向下一個區塊的地址。區塊鏈數據結構是默克爾樹的一個示例,它被用作驗證數據的有效方法。

 

 

區塊鏈設計

讓區塊加入到區塊鏈的過程中涉及了博弈理論。在網絡中作為節點的計算機稱為“礦工”,必須和其他計算機進行競爭,以找到叫做“nonce(隨機數)”的哈希函數產生的值。礦工必須利用自己的計算資源求解這個值,這需要強大的計算機硬件。構建在區塊鏈中的一個稱為難度級別的協議決定了基于網絡中所謂的全部哈希能力來求解該值的難易程度。這意味著礦工越多,難易程度的調整就越難。因為礦工越多,在網絡中的可用計算能力就越多,提高了以每秒哈希為單位計算的哈希能力。一旦礦工驗證了一個區塊,它們將收到獎勵作為把它們的計算能力提供給網絡的補償。這種激勵是節點參與挖區塊的動力,因為它們收到以交易費用和代幣的形式出現的獎勵。在比特幣的協議中,這被稱為工作量證明共識算法。

正如您所看到的,區塊鏈使用去中心化節點的分布式網絡。去中心化意味著網絡上所有的節點都存有該區塊鏈的副本。這些節點要么存儲該區塊鏈的完整副本,要么實施挖礦操作,或者兩者兼有。沒有管理員來驗證交易區塊。相反,是由礦工來實施驗證,通過解決基于整個可用哈希能力的網絡難易程度協議的加密難題來進行。一旦區塊加入了區塊鏈,信息就不可變,并對全體參與者是透明的。區塊鏈交易是非遞歸的,意味著它們在區塊中被驗證后就不能重復。區塊鏈具有很高的容錯性,因為如果有一個或多個節點宕機,總是有其它可用節點來運行該區塊鏈。去中心化的另一個優點是,它可以是無權限和無信任的,允許在陌生人或互不信任的人之間進行交易。區塊鏈所做的是,通過記錄交易的透明性提供信任,并提供加密的安全方法來交換價值。

 

 

區塊鏈使用點對點網絡架構

區塊鏈使用點對點網絡架構。它不需要訪問中央數據庫,相反,網絡中所有參與的節點可以相互連接。沒有“主人”來控制所有的節點。每個節點在如何訪問該區塊鏈上是互相平等的,不需要獲得管理員訪問權限。因此,如果某個節點有惡意,會影響到網絡嗎?從理論上來講,如果它們有多數的哈希能力,就會影響到網絡。在理論上,一個惡意節點可以采用所謂的“51%攻擊”來控制整個網絡。這需要大量的計算資源來完成,因為發起攻擊比不攻擊網絡的成本更大。在這種情況下,利用計算資源挖礦更有利潤。確保區塊鏈安全的機制是去中心化,如果一個節點試圖修改區塊鏈上的任何信息,就需要來自其他節點驗證支持。這會創建一個不同于主網的鏈,而且只有在其比主網的鏈還要長時才能被驗證。像比特幣這樣的網絡包含數千個節點,因此,如果試圖操縱數據,就需要在該網絡中的所有其他節點上進行修改。實際上,這是計算密集型的,需要消耗大量的電力,是極其難以做到的。這是一種治理形式,以確保沒有人可以欺騙別人。這就是區塊鏈防篡改和不可變的原因。同時,它是透明的,因為有證據表明,每個人都可以查看所發生的交易。

我們可以清楚地看到,正是這種設計讓區塊鏈有別于傳統的數據庫和區塊鏈。我們來做個總結吧。

 

 

數據庫和區塊鏈主要特征的比較

現在,我們來看看它們各自的優缺點。

使用數據庫的優點

用戶友好的可定制性

傳統的集中數據庫可以通過管理員根據業務需要定制。它也可以分發到很多地方,在這些地方根據查詢和報告的需要合并到一個主數據庫中。它們提供強大的功能,允許開發人員創建應用程序以給用戶更多的一致性和用戶友好的界面。

穩定性

管理得當的數據庫系統可以處理大量的數據,每秒可以處理的事務數以千計。它們的速度也很快,因為得到授權,數據庫只對少數幾個特定服務器授予寫操作權限,但是信息可以被很多用戶使用。它沒有在很多節點上運行,只需要一個功能強大的服務器在后端處理數據,而前端主機提供接口。數據庫的運行速度可以優化,可以通過利用RAID Level 1的硬件進行,也可以通過像分片和縮小的技術來完成。如果發生災難,管理員也可以回滾更改。所有的更新和安全性是由管理這整個系統的管理員處理。

交易速度和交易量

如今的數據庫是為高容量事務處理和數據分析而設計的。這意味著它們是在企業生產環境中實驗過、測試過,對關鍵任務操作來說是正確的。

使用區塊鏈的優點

去中心化

去中心化的系統是高度容錯的。如果比特幣網絡中的一個節點崩潰,它不會引起整個系統的宕機。該網絡中的其他節點可以運行區塊鏈。去中心化也增加了更多的安全性,因為存儲在一臺計算機上的信息必須復制到網絡中的所有節點上。這意味著,如果一個節點遭到入侵,黑客需要能夠改變所有節點上的信息來操縱數據。事實證明,這是防止系統被攻擊的一個很好的防護機制。

不可變性

區塊鏈存儲變得不可變的信息,這意味著一旦區塊被驗證,就不能更改。這也使得信息不受篡改和操縱,因為信息被記錄在存儲于很多節點的數字公共分類賬上。要危害它,就意味著在網絡的所有節點上更改該信息。

透明度

區塊鏈給商業帶來好處的一個關鍵特征是透明度。這讓記錄在區塊鏈上的一切都接受審查。不能隱藏關于交易的信息,因此,這創建了更多信任,并給系統增加了價值。不需要向任何人申請許可使用區塊鏈,它是一個對公共環境中的所有人開放的平臺。

安全性

因為區塊鏈采用先進的加密技術以及分布式去中心化網絡,它們提供了一個安全的環境。在區塊上修改數據需要消耗大量的計算資源。但是,它也不是理想的,因為它需要在網絡的所有節點上更改數據。這是阻止攻擊的原因,因為這比挖區塊以獲得獎勵更昂貴。這個特性有助于保護區塊鏈不受惡意礦工和黑客們的危害。

數據庫的問題

單點故障

由于它是集中的,因此有單點故障。數據掌控在單一實體或群體手中,從而無法保證它用于正確的目的,例如來自社交媒體的數據最終落入壞人之手一樣。控制信息的公司可以把它出賣給第三方使用,但是,有時候它并不符合用戶的最佳利益。當數據庫被黑時,產生了另一個問題,因為這會影響很多用戶的信息。當數據庫服務器宕機時,它也會影響到整個系統。如果存儲在該數據庫上的信息沒有備份,那么就無法恢復有價值的數據。這就是為什么在集中系統中失效備援和冗余是如此重要的原因。

管理員賬戶

由于數據庫需要管理員,如果密碼丟失,則恢復數據庫就會變得很困難。如果數據庫管理員沒有委托另一位管理員,讓他具有數據庫管理系統特權,那么沒人能夠創建新的數據庫或者修改現有的數據庫。當數據庫管理員離開這家公司時,這會帶來另一個問題,重新設置密碼和提升新管理員的權限是一個非常冗長乏味的過程。還有可能某人忘了更改密碼或刪去某些權限或刪除能夠訪問該數據庫的前雇員的賬戶。這些是MIS部門必須要處理的事,以維護他們的信息安全。

安全問題

在集中系統中,如果管理員忘了打補丁和更新,系統會變得容易受到黑客的安全漏洞攻擊。這使得數據庫很容易被入侵。集中化應該讓管理變得容易,但是,管理不當時, 它會引起非常嚴重的問題,影響到系統中的數據完整性。把我們的信息托付給一個信任的公司是正常的,但是,如果該公司不遵守信息安全上的最佳實踐,那么它就會成一個問題。黑客攻擊已經影響了很多大公司,數據泄露正在變得越來越普遍,因為信息現在是有價值的資產。這是為什么要對涉及生產數據庫的數據安全進行第三方審計和嚴格監管的原因。

區塊鏈的問題

能量消耗

首先,用于運行像比特幣這樣的區塊鏈的計算資源要耗費大量的電力。這是在工作量證明算法中處理交易所需協議的一部分。所有礦工們用掉的能源是為了解決加密謎題來驗證區塊。隨著難易程度的提高,能量消耗量也增加了,這跟更多來自計算資源的哈希能力有關。在挖礦的節點越多,驗證交易區塊所需的計算量就越大。這需要大量的能量消耗。據估計,整個比特幣網絡消耗的電量和像海地或丹麥這樣的小國家相當。

可擴展性

區塊鏈在面對大量交易時的可擴展性不好。因為區塊大小是固定的,交易量上升時就會出現問題。延遲也影響交易速度,大多數區塊鏈每秒鐘能處理的交易不超過15個。擴展解決方法已經成為很多項目的焦點,要優化性能以處理更多交易并增加處理時間。如果每秒能處理1百萬個交易的聲明能在區塊鏈上得到驗證(在撰寫本文時還未被驗證),那么會顯著地擾亂整個行業。

規模問題

大多數數據庫,包括區塊鏈在內,都有一個規模大小的問題。當它們的規模變得越來越大的時候,它們會占用更多的存儲空間,這讓它們的運行速度變慢。比特幣的區塊鏈規模已經超過了100GB,以太坊的區塊鏈規模也超過了1TB(截至本文撰寫時)。這不僅僅是節點的存儲容量問題,網絡也有同樣的問題。區塊鏈的規模越大,把數據復制到網絡上的新節點所需要耗費的時間越長。根據網絡的帶寬,可能需要幾個小時,甚至幾天時間。區塊鏈的規模越大,就需要更大的帶寬來傳送數據到其他節點。這會影響到新節點,或者那些重新聯機并且長時間沒有更新的節點。

昂貴的交易費用

處理交易的費用是比特幣面臨的另一個問題。當需求高企時,交易費用也上升,這對礦工有好處。對區塊鏈的設計者來說,維持較低的交易費用或取消交易費用是個挑戰。昂貴的交易費用阻礙了用戶使用網絡。當擴展問題解決了交易速度和交易量問題的時候,應該采用更合理的交易費用。

互通性

這是目前遇到的問題,跟傳統的數據庫不同,每個區塊鏈都有自己的生態系統。有些協議旨在讓區塊鏈之間能夠互通。比如,要允許用戶從比特幣向其他區塊鏈(比如以太坊)轉移價值,就需要借助數字交易所。開發人員在尋找讓不同的區塊鏈互通的方法,以讓轉移價值變得更簡單。

 

 

數據庫和區塊鏈的最佳用例

數據庫最適合企業網絡,因為它們很穩定。對用戶來說,它們也顯得更友好,并且有很多供管理員和開發人員使用的支撐管理系統。福布斯的500強企業使用運行高端系統的數據庫處理大量的數據。數據庫可以擴展到數百萬個記錄,并且每秒鐘能輕松地處理數千個事務。對于像零售那樣需要處理高吞吐量的系統,數據庫仍然是最好的解決方案。證券市場采用數據庫更好,因為數據庫能夠快速地存儲信息,并允許即時檢索,無需礦工驗證數據。區塊鏈不需要存儲大量在分析過程中要用到的數字數據。數據庫能夠更好地存儲這類數據,并且處理它們的速度也更快,因為它不需要多個節點來運行每一個數據。也不需要加密或哈希存入數據庫的每一個數據。默認情況下,數據庫是不加密的,因為加密給實時數據庫增加了很多開銷。獲得許可是傳統數據庫的安全特征。但是,可以對歸檔的數據庫進行加密。

數據庫已經證明它們存儲信息并提供快速查詢以檢索數據用于報告和分析用途的可靠性。非結構化的數據也不需要區塊鏈,它們更適合于數據庫管理系統。數據無需信任驗證才能用,就像到商店打烊時所售出的貨物數量最好存入數據庫。用區塊鏈來存儲那些像私人簿記信息這樣簡單的事情更昂貴,因為這用一個獨立的數據庫更有效率那些只有特定公司才需要知道的個人信息,比如社會安全號碼和醫療記錄,最好是存在數據庫中。這些信息可以通過依賴區塊鏈的公共驗證系統來使用。這些個人信息可以被隱藏,但可以通過基于公鑰加密的區塊鏈來驗證。

數據庫適合:需要不斷更新的數據,像監控和傳感器數據。

·快速在線交易處理

·機密信息(對公眾不透明)

·來自需要快速處理的市場的財務信息

·無需驗證的數據

·存儲數據的獨立應用程序

·關系數據

區塊鏈的要求是建立信任和透明度。它只是一個數字公共分類賬,允許大家訪問。在這種情況下,它有助于驗證來自跟供應鏈、分銷和庫存相關的B2B交易信息。透明度有助于像廣告這樣的行業最大限度地減少欺詐,借助構建對廣告公司和廣告支出來源的驗證來實現。不是用于大規模數據記錄的區塊鏈可以更多地用于驗證信息。比特幣是第一個成功實施的區塊鏈,它作為一個用于轉移價值和在交易中驗證支付的系統,工作得很出色。比特幣的成功之處在于,解決了數字支付系統中的雙重支付問題,即允許用戶重復使用同一份資金。比特幣實現了一個協議,該協議使用基于時間順序的時間戳和可用的用戶資金的確認來驗證交易。這有助于通過不允許系統同時處理交易來防止雙重支付,它們將始終按照時間順序來完成。

有些項目在探索區塊鏈是否能用于許可系統,像那些用于投票站的系統。這在紙面上很有意義,因為區塊鏈能夠驗證一個人的身份,也可以驗證一個人進行的投票。目的是防止作弊,因此,區塊鏈旨在無信任和無授權的系統中,以及在一個受信任的和許可的系統中,實現公平。在后一種情況下,有些區塊鏈不需要代幣或挖礦,就像在企業區塊鏈中一樣。這些是新類型的系統,在私人和許可的環境下使用區塊鏈技術,并且,有時候和數據庫整合在一起形成混合系統。

數據庫管理員要注意的是,區塊鏈是非關系型的。您不能創建不同區塊鏈的連接并關聯數據。這是數據庫和區塊鏈之間的主要區別,因此,當需要關系型數據時,不適合使用區塊鏈。

其他區塊鏈實現了一種類似于以太網上所謂的“智能合約”。非常類似于在數據庫中使用存儲過程,其中激發器可以用于執行代碼來處理交易。在以太網中,智能合約作為字節代碼在網絡中的所有節點上執行。以太網和其他加密貨幣(像EOS和NEO),使用區塊鏈作為其智能合約生態系統的平臺。這是區塊鏈的使用和傳統數據庫不同的另一個例子。

區塊鏈適用于:

·貨幣交易

·轉移價值

·可信數據(身份、聲譽、信用、完整性等)的驗證

·公鑰驗證

·去中心化應用程序(DApps)

·投票系統

關于數據庫和區塊鏈,還有很多東西可以討論,但是我們沒有,因為話題太廣了。我在這里介紹的只是一些從技術角度看到的事實和觀察。最后,并不是數據庫比區塊鏈更好或者區塊鏈比數據庫更好的問題。它們各有各的用途,如何使用它們取決于您想對您的數據進行什么操作

關鍵字:數據庫

本文摘自:太平洋電腦網

x 區塊鏈是個數據庫 但數據庫不是區塊鏈 掃一掃
分享本文到朋友圈
當前位置:區塊鏈行業動態 → 正文

區塊鏈是個數據庫 但數據庫不是區塊鏈

責任編輯:zsheng |來源:企業網D1Net  2018-09-06 08:32:33 本文摘自:太平洋電腦網

在談到什么是區塊鏈及其與數據庫的區別時,我們得到的信息是非常混亂的。區塊鏈事實上是個數據庫,因為它是一個數字分類賬,把信息存儲于稱為區塊的數據結構中。數據庫是把信息存儲于稱為表的數據結構中。然而,雖然區塊鏈是個數據庫,但是數據庫卻不是區塊鏈。從某種意義上說,它們不能互換,盡管兩者都存儲信息,但在設計上是不同的。兩者的用途也有不同,對那些希望了解為什么需要區塊鏈和為什么數據庫更適合存儲某些數據的人來說,他們可能并不清楚。

首先,我們來看看數據庫和區塊鏈之間的區別。

數據庫

傳統的數據庫是用于存儲信息的數據結構。它包括可以查詢的數據,以收集對實體用于支持業務、財務和管理決策的結構化報告的見解。政府還利用數據庫來存儲大量的數據,這些數據可以擴展到數百萬條記錄。數據庫以平面文件分層系統起步,提供簡單的信息收集和存儲功能。后來,數據庫使用關系模型,該模型允許通過把來自多個數據庫的信息關聯起來,用更復雜的方式收集數據。這些存儲在數據庫的信息可以利用數據庫管理系統進行組織。簡單的數據庫存儲在稱為表的數據元素中。表含有定義記錄類型的字段,這些字段存儲稱為屬性的數據。每個字段包含列和行,其中列描述該字段,行則定義存儲于數據庫中的記錄。

 

 

數據庫設計

數據庫可以進行修改,由一位被稱為管理員的用戶管理和控制。數據庫總是有一位行使數據庫管理員職責的用戶,該用戶對數據庫有完全的控制權。該用戶可以創建、刪除、修改和改變任何存儲于數據庫中的記錄。他們還可以在數據庫上行使諸如優化性能和把數據庫的規模控制在可控水平上等管理職能。大型數據庫的性能往往會下降,因此,管理員可以實施優化方法以提高性能。管理員還可以把某些職責委托給其他用戶,允許他們成為管理員或管理數據庫。例如,管理員可以把職責委托給用戶,允許他們為數據庫創建新用戶。一旦出錯,管理員和受他們委托的用戶可以從備份中恢復數據庫。在企業界,這類問題很常見。如果服務器崩潰,唯一能恢復數據的方法是從備份中恢復數據庫。數據庫也可以遞歸,意思是您可以返回到某個特定的記錄上重復某個任務,并對其進行修改或刪除。管理員常常清除數據庫中的舊記錄,這些記錄不是已經備份到另一個數據庫,就是已經被視為是過時的信息。比如,如果您在現有的數據庫中有一個“John Smith”的記錄,他的新住址需要更新到該記錄中。在存檔的數據庫中已經有“John Smith”之前的地址備份,因此,該記錄可以用在現有數據庫中的新地址進行更新。

 

 

采用客戶端/服務器架構的數據庫

從小型辦公室/居家辦公室到企業環境,實現的是客戶端/服務器架構的數據庫。這是因為計算機需要連接到托管數據庫的服務器上,以獲取信息或存儲數據。最初,采用ODBC連接的數據庫客戶端由管理員配置,或是由客戶端計算機上的技術人員來連接到數據庫。然后,運行客戶端軟件以建立安全連接,必須進行身份驗證以繼續訪問。該驗證可以使用由管理員配置的訪問字符串或給用戶密碼以登錄到數據庫。這就是為什么要創建用戶賬號的原因,以允許那些通過驗證的用戶訪問,并拒絕沒有通過驗證的訪問請求。在如今大多數系統中,用web界面代替。但仍然要求為私有訪問進行驗證,而公共數據庫則可以更容易地從網站訪問。

我們可以看到,數據庫需要大量的控制,這使得數據庫高度集中。它也獲得許可,意味著它從管理員那里獲取用戶賬號,管理員設置用戶如何訪問數據庫的權限。在生產環境中,數據庫管理員只給數據庫上的公共信息設置讀取權限。然后,他們給用戶設置不同的權限集,這些用戶可以更新信息或把信息寫入到數據庫中。傳統數據庫的集中性給系統設置了安全性和可靠性。許多數據庫都在由大公司運營的數據中心防火墻后面的私有網絡中運行。其他數據庫托管在大眾可用的云上。它們仍然需要由數據庫管理員控制。

區塊鏈

我準備根據用于比特幣的設計來描述區塊鏈。還有用于企業環境的私有區塊鏈,但是我稍后才討論它們。區塊鏈于2009年面世,比特幣成為第一個實施區塊鏈的系統。在比特幣中,區塊鏈是個不可變的數字公共分類賬,是一個不斷增長的分布式數據庫,通過加密保證安全性。區塊鏈存儲信息于統一大小的區塊中。每個區塊包含一個來自前一個區塊的哈希信息以提供加密安全性。這個哈希信息是來自前一個區塊的數據和數字簽名,這個前一個區塊的哈希值可以一直回溯到被稱為“創始塊”的第一個區塊。該信息是通過哈希函數運行,然后指向下一個區塊的地址。區塊鏈數據結構是默克爾樹的一個示例,它被用作驗證數據的有效方法。

 

 

區塊鏈設計

讓區塊加入到區塊鏈的過程中涉及了博弈理論。在網絡中作為節點的計算機稱為“礦工”,必須和其他計算機進行競爭,以找到叫做“nonce(隨機數)”的哈希函數產生的值。礦工必須利用自己的計算資源求解這個值,這需要強大的計算機硬件。構建在區塊鏈中的一個稱為難度級別的協議決定了基于網絡中所謂的全部哈希能力來求解該值的難易程度。這意味著礦工越多,難易程度的調整就越難。因為礦工越多,在網絡中的可用計算能力就越多,提高了以每秒哈希為單位計算的哈希能力。一旦礦工驗證了一個區塊,它們將收到獎勵作為把它們的計算能力提供給網絡的補償。這種激勵是節點參與挖區塊的動力,因為它們收到以交易費用和代幣的形式出現的獎勵。在比特幣的協議中,這被稱為工作量證明共識算法。

正如您所看到的,區塊鏈使用去中心化節點的分布式網絡。去中心化意味著網絡上所有的節點都存有該區塊鏈的副本。這些節點要么存儲該區塊鏈的完整副本,要么實施挖礦操作,或者兩者兼有。沒有管理員來驗證交易區塊。相反,是由礦工來實施驗證,通過解決基于整個可用哈希能力的網絡難易程度協議的加密難題來進行。一旦區塊加入了區塊鏈,信息就不可變,并對全體參與者是透明的。區塊鏈交易是非遞歸的,意味著它們在區塊中被驗證后就不能重復。區塊鏈具有很高的容錯性,因為如果有一個或多個節點宕機,總是有其它可用節點來運行該區塊鏈。去中心化的另一個優點是,它可以是無權限和無信任的,允許在陌生人或互不信任的人之間進行交易。區塊鏈所做的是,通過記錄交易的透明性提供信任,并提供加密的安全方法來交換價值。

 

 

區塊鏈使用點對點網絡架構

區塊鏈使用點對點網絡架構。它不需要訪問中央數據庫,相反,網絡中所有參與的節點可以相互連接。沒有“主人”來控制所有的節點。每個節點在如何訪問該區塊鏈上是互相平等的,不需要獲得管理員訪問權限。因此,如果某個節點有惡意,會影響到網絡嗎?從理論上來講,如果它們有多數的哈希能力,就會影響到網絡。在理論上,一個惡意節點可以采用所謂的“51%攻擊”來控制整個網絡。這需要大量的計算資源來完成,因為發起攻擊比不攻擊網絡的成本更大。在這種情況下,利用計算資源挖礦更有利潤。確保區塊鏈安全的機制是去中心化,如果一個節點試圖修改區塊鏈上的任何信息,就需要來自其他節點驗證支持。這會創建一個不同于主網的鏈,而且只有在其比主網的鏈還要長時才能被驗證。像比特幣這樣的網絡包含數千個節點,因此,如果試圖操縱數據,就需要在該網絡中的所有其他節點上進行修改。實際上,這是計算密集型的,需要消耗大量的電力,是極其難以做到的。這是一種治理形式,以確保沒有人可以欺騙別人。這就是區塊鏈防篡改和不可變的原因。同時,它是透明的,因為有證據表明,每個人都可以查看所發生的交易。

我們可以清楚地看到,正是這種設計讓區塊鏈有別于傳統的數據庫和區塊鏈。我們來做個總結吧。

 

 

數據庫和區塊鏈主要特征的比較

現在,我們來看看它們各自的優缺點。

使用數據庫的優點

用戶友好的可定制性

傳統的集中數據庫可以通過管理員根據業務需要定制。它也可以分發到很多地方,在這些地方根據查詢和報告的需要合并到一個主數據庫中。它們提供強大的功能,允許開發人員創建應用程序以給用戶更多的一致性和用戶友好的界面。

穩定性

管理得當的數據庫系統可以處理大量的數據,每秒可以處理的事務數以千計。它們的速度也很快,因為得到授權,數據庫只對少數幾個特定服務器授予寫操作權限,但是信息可以被很多用戶使用。它沒有在很多節點上運行,只需要一個功能強大的服務器在后端處理數據,而前端主機提供接口。數據庫的運行速度可以優化,可以通過利用RAID Level 1的硬件進行,也可以通過像分片和縮小的技術來完成。如果發生災難,管理員也可以回滾更改。所有的更新和安全性是由管理這整個系統的管理員處理。

交易速度和交易量

如今的數據庫是為高容量事務處理和數據分析而設計的。這意味著它們是在企業生產環境中實驗過、測試過,對關鍵任務操作來說是正確的。

使用區塊鏈的優點

去中心化

去中心化的系統是高度容錯的。如果比特幣網絡中的一個節點崩潰,它不會引起整個系統的宕機。該網絡中的其他節點可以運行區塊鏈。去中心化也增加了更多的安全性,因為存儲在一臺計算機上的信息必須復制到網絡中的所有節點上。這意味著,如果一個節點遭到入侵,黑客需要能夠改變所有節點上的信息來操縱數據。事實證明,這是防止系統被攻擊的一個很好的防護機制。

不可變性

區塊鏈存儲變得不可變的信息,這意味著一旦區塊被驗證,就不能更改。這也使得信息不受篡改和操縱,因為信息被記錄在存儲于很多節點的數字公共分類賬上。要危害它,就意味著在網絡的所有節點上更改該信息。

透明度

區塊鏈給商業帶來好處的一個關鍵特征是透明度。這讓記錄在區塊鏈上的一切都接受審查。不能隱藏關于交易的信息,因此,這創建了更多信任,并給系統增加了價值。不需要向任何人申請許可使用區塊鏈,它是一個對公共環境中的所有人開放的平臺。

安全性

因為區塊鏈采用先進的加密技術以及分布式去中心化網絡,它們提供了一個安全的環境。在區塊上修改數據需要消耗大量的計算資源。但是,它也不是理想的,因為它需要在網絡的所有節點上更改數據。這是阻止攻擊的原因,因為這比挖區塊以獲得獎勵更昂貴。這個特性有助于保護區塊鏈不受惡意礦工和黑客們的危害。

數據庫的問題

單點故障

由于它是集中的,因此有單點故障。數據掌控在單一實體或群體手中,從而無法保證它用于正確的目的,例如來自社交媒體的數據最終落入壞人之手一樣。控制信息的公司可以把它出賣給第三方使用,但是,有時候它并不符合用戶的最佳利益。當數據庫被黑時,產生了另一個問題,因為這會影響很多用戶的信息。當數據庫服務器宕機時,它也會影響到整個系統。如果存儲在該數據庫上的信息沒有備份,那么就無法恢復有價值的數據。這就是為什么在集中系統中失效備援和冗余是如此重要的原因。

管理員賬戶

由于數據庫需要管理員,如果密碼丟失,則恢復數據庫就會變得很困難。如果數據庫管理員沒有委托另一位管理員,讓他具有數據庫管理系統特權,那么沒人能夠創建新的數據庫或者修改現有的數據庫。當數據庫管理員離開這家公司時,這會帶來另一個問題,重新設置密碼和提升新管理員的權限是一個非常冗長乏味的過程。還有可能某人忘了更改密碼或刪去某些權限或刪除能夠訪問該數據庫的前雇員的賬戶。這些是MIS部門必須要處理的事,以維護他們的信息安全。

安全問題

在集中系統中,如果管理員忘了打補丁和更新,系統會變得容易受到黑客的安全漏洞攻擊。這使得數據庫很容易被入侵。集中化應該讓管理變得容易,但是,管理不當時, 它會引起非常嚴重的問題,影響到系統中的數據完整性。把我們的信息托付給一個信任的公司是正常的,但是,如果該公司不遵守信息安全上的最佳實踐,那么它就會成一個問題。黑客攻擊已經影響了很多大公司,數據泄露正在變得越來越普遍,因為信息現在是有價值的資產。這是為什么要對涉及生產數據庫的數據安全進行第三方審計和嚴格監管的原因。

區塊鏈的問題

能量消耗

首先,用于運行像比特幣這樣的區塊鏈的計算資源要耗費大量的電力。這是在工作量證明算法中處理交易所需協議的一部分。所有礦工們用掉的能源是為了解決加密謎題來驗證區塊。隨著難易程度的提高,能量消耗量也增加了,這跟更多來自計算資源的哈希能力有關。在挖礦的節點越多,驗證交易區塊所需的計算量就越大。這需要大量的能量消耗。據估計,整個比特幣網絡消耗的電量和像海地或丹麥這樣的小國家相當。

可擴展性

區塊鏈在面對大量交易時的可擴展性不好。因為區塊大小是固定的,交易量上升時就會出現問題。延遲也影響交易速度,大多數區塊鏈每秒鐘能處理的交易不超過15個。擴展解決方法已經成為很多項目的焦點,要優化性能以處理更多交易并增加處理時間。如果每秒能處理1百萬個交易的聲明能在區塊鏈上得到驗證(在撰寫本文時還未被驗證),那么會顯著地擾亂整個行業。

規模問題

大多數數據庫,包括區塊鏈在內,都有一個規模大小的問題。當它們的規模變得越來越大的時候,它們會占用更多的存儲空間,這讓它們的運行速度變慢。比特幣的區塊鏈規模已經超過了100GB,以太坊的區塊鏈規模也超過了1TB(截至本文撰寫時)。這不僅僅是節點的存儲容量問題,網絡也有同樣的問題。區塊鏈的規模越大,把數據復制到網絡上的新節點所需要耗費的時間越長。根據網絡的帶寬,可能需要幾個小時,甚至幾天時間。區塊鏈的規模越大,就需要更大的帶寬來傳送數據到其他節點。這會影響到新節點,或者那些重新聯機并且長時間沒有更新的節點。

昂貴的交易費用

處理交易的費用是比特幣面臨的另一個問題。當需求高企時,交易費用也上升,這對礦工有好處。對區塊鏈的設計者來說,維持較低的交易費用或取消交易費用是個挑戰。昂貴的交易費用阻礙了用戶使用網絡。當擴展問題解決了交易速度和交易量問題的時候,應該采用更合理的交易費用。

互通性

這是目前遇到的問題,跟傳統的數據庫不同,每個區塊鏈都有自己的生態系統。有些協議旨在讓區塊鏈之間能夠互通。比如,要允許用戶從比特幣向其他區塊鏈(比如以太坊)轉移價值,就需要借助數字交易所。開發人員在尋找讓不同的區塊鏈互通的方法,以讓轉移價值變得更簡單。

 

 

數據庫和區塊鏈的最佳用例

數據庫最適合企業網絡,因為它們很穩定。對用戶來說,它們也顯得更友好,并且有很多供管理員和開發人員使用的支撐管理系統。福布斯的500強企業使用運行高端系統的數據庫處理大量的數據。數據庫可以擴展到數百萬個記錄,并且每秒鐘能輕松地處理數千個事務。對于像零售那樣需要處理高吞吐量的系統,數據庫仍然是最好的解決方案。證券市場采用數據庫更好,因為數據庫能夠快速地存儲信息,并允許即時檢索,無需礦工驗證數據。區塊鏈不需要存儲大量在分析過程中要用到的數字數據。數據庫能夠更好地存儲這類數據,并且處理它們的速度也更快,因為它不需要多個節點來運行每一個數據。也不需要加密或哈希存入數據庫的每一個數據。默認情況下,數據庫是不加密的,因為加密給實時數據庫增加了很多開銷。獲得許可是傳統數據庫的安全特征。但是,可以對歸檔的數據庫進行加密。

數據庫已經證明它們存儲信息并提供快速查詢以檢索數據用于報告和分析用途的可靠性。非結構化的數據也不需要區塊鏈,它們更適合于數據庫管理系統。數據無需信任驗證才能用,就像到商店打烊時所售出的貨物數量最好存入數據庫。用區塊鏈來存儲那些像私人簿記信息這樣簡單的事情更昂貴,因為這用一個獨立的數據庫更有效率那些只有特定公司才需要知道的個人信息,比如社會安全號碼和醫療記錄,最好是存在數據庫中。這些信息可以通過依賴區塊鏈的公共驗證系統來使用。這些個人信息可以被隱藏,但可以通過基于公鑰加密的區塊鏈來驗證。

數據庫適合:需要不斷更新的數據,像監控和傳感器數據。

·快速在線交易處理

·機密信息(對公眾不透明)

·來自需要快速處理的市場的財務信息

·無需驗證的數據

·存儲數據的獨立應用程序

·關系數據

區塊鏈的要求是建立信任和透明度。它只是一個數字公共分類賬,允許大家訪問。在這種情況下,它有助于驗證來自跟供應鏈、分銷和庫存相關的B2B交易信息。透明度有助于像廣告這樣的行業最大限度地減少欺詐,借助構建對廣告公司和廣告支出來源的驗證來實現。不是用于大規模數據記錄的區塊鏈可以更多地用于驗證信息。比特幣是第一個成功實施的區塊鏈,它作為一個用于轉移價值和在交易中驗證支付的系統,工作得很出色。比特幣的成功之處在于,解決了數字支付系統中的雙重支付問題,即允許用戶重復使用同一份資金。比特幣實現了一個協議,該協議使用基于時間順序的時間戳和可用的用戶資金的確認來驗證交易。這有助于通過不允許系統同時處理交易來防止雙重支付,它們將始終按照時間順序來完成。

有些項目在探索區塊鏈是否能用于許可系統,像那些用于投票站的系統。這在紙面上很有意義,因為區塊鏈能夠驗證一個人的身份,也可以驗證一個人進行的投票。目的是防止作弊,因此,區塊鏈旨在無信任和無授權的系統中,以及在一個受信任的和許可的系統中,實現公平。在后一種情況下,有些區塊鏈不需要代幣或挖礦,就像在企業區塊鏈中一樣。這些是新類型的系統,在私人和許可的環境下使用區塊鏈技術,并且,有時候和數據庫整合在一起形成混合系統。

數據庫管理員要注意的是,區塊鏈是非關系型的。您不能創建不同區塊鏈的連接并關聯數據。這是數據庫和區塊鏈之間的主要區別,因此,當需要關系型數據時,不適合使用區塊鏈。

其他區塊鏈實現了一種類似于以太網上所謂的“智能合約”。非常類似于在數據庫中使用存儲過程,其中激發器可以用于執行代碼來處理交易。在以太網中,智能合約作為字節代碼在網絡中的所有節點上執行。以太網和其他加密貨幣(像EOS和NEO),使用區塊鏈作為其智能合約生態系統的平臺。這是區塊鏈的使用和傳統數據庫不同的另一個例子。

區塊鏈適用于:

·貨幣交易

·轉移價值

·可信數據(身份、聲譽、信用、完整性等)的驗證

·公鑰驗證

·去中心化應用程序(DApps)

·投票系統

關于數據庫和區塊鏈,還有很多東西可以討論,但是我們沒有,因為話題太廣了。我在這里介紹的只是一些從技術角度看到的事實和觀察。最后,并不是數據庫比區塊鏈更好或者區塊鏈比數據庫更好的問題。它們各有各的用途,如何使用它們取決于您想對您的數據進行什么操作

關鍵字:數據庫

本文摘自:太平洋電腦網

電子周刊
回到頂部

關于我們聯系我們版權聲明隱私條款廣告服務友情鏈接投稿中心招賢納士

企業網版權所有 ©2010-2024 京ICP備09108050號-6 京公網安備 11010502049343號

^
  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 沁阳市| 宜川县| 嘉禾县| 武清区| 如皋市| 西城区| 鄄城县| 苍梧县| 霍城县| 天门市| 丰城市| 延寿县| 莎车县| 布拖县| 民权县| 南昌县| 芦山县| 灵川县| 安西县| 卓资县| 遂溪县| 巴中市| 双江| 苏尼特右旗| 洞头县| 南汇区| 鞍山市| 兴安盟| 南开区| 民和| 靖西县| 江门市| 兰溪市| 文昌市| 新巴尔虎左旗| 盱眙县| 高唐县| 大关县| 澜沧| 乐东| 东乡族自治县|