區(qū)塊鏈:取代數(shù)據(jù)庫的不可變分類賬
在上個世紀,紙質(zhì)清單和分類帳讓位于強大的電子數(shù)據(jù)庫,使IT管理員能夠搜索、分類、共享和移動記錄和相關(guān)信息。
但傳統(tǒng)數(shù)據(jù)庫有其局限性。例如,數(shù)據(jù)庫是獨立擁有的服務(wù)。企業(yè)負責(zé)部署、構(gòu)建和管理其數(shù)據(jù)庫及其包含的數(shù)據(jù)。然后,企業(yè)可以使用該數(shù)據(jù),或者將其出售或與數(shù)字經(jīng)濟中的其他企業(yè)共享。擁有數(shù)據(jù)庫的企業(yè)可以完全控制其設(shè)計、內(nèi)容和可用性,而數(shù)據(jù)用戶完全依賴于數(shù)據(jù)和數(shù)據(jù)庫所有者的完整性,這通常被稱為“信任權(quán)威”。隨著世界變得越來越互聯(lián)并依賴于數(shù)據(jù)和數(shù)據(jù)共享,傳統(tǒng)數(shù)據(jù)庫的局限性給安全性和信任帶來挑戰(zhàn)。
這些限制推動著分布式電子數(shù)據(jù)庫系統(tǒng)的發(fā)展。這種技術(shù)旨在實現(xiàn)信息民主化–通過在多個獨立利益相關(guān)者(例如企業(yè)或政府)之間分發(fā)和同步數(shù)據(jù)。該系統(tǒng)最常見的例子是區(qū)塊鏈。
什么是區(qū)塊鏈?
區(qū)塊鏈于2009年推出,它是一種電子數(shù)據(jù)庫,也稱為不可變分類帳,用于保存重要信息,例如記錄和分類帳條目。但是區(qū)塊鏈技術(shù)增加了傳統(tǒng)數(shù)據(jù)庫沒有的特性和功能。
首先,區(qū)塊鏈系統(tǒng)跨點對點 (P2P) 網(wǎng)絡(luò)運行,其中每個網(wǎng)絡(luò)對等點共享計算/網(wǎng)絡(luò)負載并維護數(shù)據(jù)的完整副本。隨著越來越多的對等點進入網(wǎng)絡(luò),更大的系統(tǒng)會擴展以處理更多的記錄流量。更多的對等點也意味著區(qū)塊鏈數(shù)據(jù)庫的可用性和容錯性更高。
其次,不可變賬本(數(shù)據(jù)庫)的內(nèi)容都具有相關(guān)性或鏈接在一起。添加到分類帳中的每條記錄或記錄集都代表一個數(shù)據(jù)塊。每個區(qū)塊都鏈接到前一個區(qū)塊–通過包含加密哈希、時間戳和交易元數(shù)據(jù)。因此,每個區(qū)塊連接起來形成一個不斷增長的區(qū)塊“鏈”(即區(qū)塊鏈)以創(chuàng)建安全和不可變的記錄。記錄無法更改,除非改變加密哈希以及后續(xù)塊中的所有哈希。密碼學(xué)和區(qū)塊相互關(guān)系的結(jié)合使區(qū)塊鏈數(shù)據(jù)庫高度安全。
傳統(tǒng)數(shù)據(jù)庫可以臨時更改記錄,而區(qū)塊鏈數(shù)據(jù)庫只能寫入數(shù)據(jù)。這是安全性和完整性機制的重要組成部分:在區(qū)塊鏈中數(shù)據(jù)可以更改,但只能通過編寫新的可追溯和可審計的區(qū)塊來更改。因此,你總是可以知道哪些數(shù)據(jù)被更改、何時更改、為什么更改或由誰更改的問題。
區(qū)塊鏈的工作原理
區(qū)塊鏈最常與金融交易相關(guān)聯(lián),主要是比特幣或以太坊等加密貨幣交易。與SQL或任何其他數(shù)據(jù)庫格式一樣,區(qū)塊鏈可以應(yīng)用于無數(shù)垂直行業(yè)和用例,而不僅僅是金融行業(yè)。讓我們看看基本的區(qū)塊鏈流程。
- 請求向區(qū)塊鏈寫入新的數(shù)據(jù)塊。
- 該請求被廣播到所有參與區(qū)塊鏈的節(jié)點。
- 參與區(qū)塊鏈的每個節(jié)點都會根據(jù)算法檢查哈希以驗證交易。
- 每個節(jié)點執(zhí)行工作量證明過程,就新區(qū)塊的有效性達成共識,如果成功達成共識,則將該區(qū)塊添加到鏈中。
在我們的示例種,假設(shè)企業(yè)想要對整個企業(yè)中的服務(wù)器事件和錯誤創(chuàng)建不可變的、可審計的日志。每個服務(wù)器通過網(wǎng)絡(luò)將日志條目傳遞到公共日志服務(wù)器。每個塊可能包含一系列細節(jié),包括以下內(nèi)容:
- 始發(fā)服務(wù)器的名稱和地址;
- 目的地或日志服務(wù)器的名稱和地址;
- 日志條目的錯誤、事件和其他詳細信息
加密是核心,這使每個區(qū)塊都很獨特。區(qū)塊被分配一個加密哈希(專門為其數(shù)據(jù)生成),以及前一個區(qū)塊的哈希值。
哈希值就像數(shù)據(jù)的指紋;它是通過數(shù)學(xué)算法計算出的十六進制數(shù)序列。該算法為每個區(qū)塊生成唯一的哈希值(指紋)。如果你更改區(qū)塊中任何位置的單個位,其哈希值將變得完全不同。該區(qū)塊調(diào)整后的哈希值也會傳遞給下一個塊,并與下一個塊一起記錄。
這個過程創(chuàng)建了一系列不僅相關(guān)而且不可分割的區(qū)塊。如果黑客更改一個位,該區(qū)塊所記錄哈希值將與該區(qū)塊的新哈希值不匹配,并且區(qū)塊鏈會向管理員發(fā)出警報。但這種更改不僅僅影響那個區(qū)塊(區(qū)塊A)的哈希值:新的哈希與后續(xù)區(qū)塊(區(qū)塊B)的哈希值不匹配,從而使區(qū)塊B的哈希值無效,以及每個后續(xù)區(qū)塊(區(qū)塊C、D等)的哈希值無效。這種相互關(guān)聯(lián)的密碼學(xué)使區(qū)塊鏈數(shù)據(jù)庫非常安全,并且是強制執(zhí)行不變性的系統(tǒng)。
但是哈希本身不足以確保完全安全。現(xiàn)代計算能力有時使黑客能夠在幾分鐘內(nèi)重新計算和插入新的哈希值,以部分或全部隱藏他們的篡改。
區(qū)塊鏈數(shù)據(jù)庫通過為每個區(qū)塊執(zhí)行耗時的計算過程故意延遲區(qū)塊的創(chuàng)建。該技術(shù)稱為工作量證明,要求在區(qū)塊加入?yún)^(qū)塊鏈之前執(zhí)行和驗證計算。典型的交易可能需要長達10分鐘才能完成每個區(qū)塊。這意味著黑客需要大量時間來篡改廣泛的區(qū)塊鏈。黑客入侵和重新驗證整個區(qū)塊鏈且不被檢測的可能性非常小。
分布式P2P網(wǎng)絡(luò)還可以保護不可變的分類帳。參與數(shù)據(jù)庫的每個系統(tǒng)或節(jié)點都托管區(qū)塊鏈的完整副本。每個節(jié)點會驗證每個區(qū)塊后,再將區(qū)塊添加到該節(jié)點的副本。所有參與的節(jié)點需要達成共識,以確定哪些區(qū)塊為有效。如果節(jié)點確定區(qū)塊無效或被篡改,則會拒絕該區(qū)塊。因此,當(dāng)攻擊者從節(jié)點成功入侵區(qū)塊鏈時,參與區(qū)塊鏈的其他節(jié)點將會識別并拒絕攻擊者。
區(qū)塊鏈版本
區(qū)塊鏈自最初推出以來已經(jīng)發(fā)展到支持更廣泛的應(yīng)用程序和用例。該技術(shù)有三個主要版本。
- 區(qū)塊鏈0是該技術(shù)的最早版本,主要側(cè)重于金融交易。
- 區(qū)塊鏈0擴展了功能以支持“智能合同”,以取代傳統(tǒng)紙質(zhì)合同。區(qū)塊鏈內(nèi)的小程序會創(chuàng)建、驗證、監(jiān)控和執(zhí)行協(xié)議條款與條件。這種類型的區(qū)塊鏈越來越多地用于供應(yīng)鏈管理操作,其中涉及采購、銷售和運輸貨物。
- 區(qū)塊鏈0提高了互操作性和可擴展性,以支持被稱為dApp的分散式應(yīng)用程序。dApp運行在分散P2P網(wǎng)絡(luò)的后端;區(qū)塊鏈在前端處于活動狀態(tài),以調(diào)用在后端運行的dApp。
區(qū)塊鏈還可分為公共、私有或合作伙伴。
- 公共區(qū)塊鏈可用于任何企業(yè)或用戶,它允許任何人向鏈中添加數(shù)據(jù)塊。
- 私有區(qū)塊鏈旨在用于單個企業(yè)內(nèi),或者更狹隘地用于特定團隊或人員,但該數(shù)據(jù)庫通??杀桓钠髽I(yè)中的任何人查看。
- 合作伙伴區(qū)塊鏈支持共享交易的組織,例如政府機構(gòu)。
區(qū)塊鏈用例
廣泛的垂直行業(yè)使用區(qū)塊鏈技術(shù)來完成各種任務(wù)。區(qū)塊鏈常見用例包括:
- 金融行業(yè)。金融市場是區(qū)塊鏈的最早部署者之一,該行業(yè)利用區(qū)塊鏈技術(shù)進行記賬,以取代傳統(tǒng)的電子分類賬、加密貨幣支付和其他市場交易和清算。
- 政府。政府使用區(qū)塊鏈來保存和提供文檔,例如契約和公共記錄等。
- 供應(yīng)鏈。市場使用區(qū)塊鏈來交換數(shù)據(jù)、支持計費、管理配額并跟蹤商品和服務(wù)等交換。
- 醫(yī)療保健。醫(yī)療保健行業(yè)使用區(qū)塊鏈來保存和保護患者數(shù)據(jù),收集數(shù)據(jù)進行分析、處理醫(yī)療保健付款以及安排和提供醫(yī)療保健服務(wù)。
- 技術(shù)。區(qū)塊鏈正越來越多地用于技術(shù)型用例,包括智能網(wǎng)絡(luò),例如智能城市中的網(wǎng)絡(luò)。它還為無人機等物聯(lián)網(wǎng)設(shè)備收集和處理數(shù)據(jù),支持自動駕駛汽車、機器人、超級計算機和分析。
區(qū)塊鏈的優(yōu)勢
區(qū)塊鏈技術(shù)為企業(yè)和關(guān)鍵業(yè)務(wù)數(shù)據(jù)帶來重要的好處。
- 安全性。區(qū)塊鏈采用密碼學(xué)、不變性和分布式結(jié)構(gòu),這意味著區(qū)塊鏈數(shù)據(jù)庫幾乎不受黑客攻擊、欺詐和其他惡意行為的影響。非法數(shù)據(jù)更改將被可靠地檢測和拒絕。
- 靈活性。區(qū)塊鏈是一種分布式技術(shù):參與數(shù)據(jù)庫的每個節(jié)點都共享完整的數(shù)據(jù)庫副本,并在每個節(jié)點發(fā)生變化時進行驗證。這種共識不僅增強安全性,而且如果一個節(jié)點出現(xiàn)故障或受到攻擊,例如分布式拒絕服務(wù),其余節(jié)點可繼續(xù)運行。攻擊者非常難以攻擊和禁用每個節(jié)點。
- 更快的業(yè)務(wù)。由于公共數(shù)據(jù)集可供所有可訪問分類賬的利益相關(guān)者使用,區(qū)塊鏈數(shù)據(jù)庫通??梢韵齻鹘y(tǒng)手動驗證和交易結(jié)算時間。這有助于顯著加快某些財務(wù)和合同業(yè)務(wù)運營。
- 合規(guī)性和治理。區(qū)塊鏈數(shù)據(jù)的不可變和按時間順序的性質(zhì)本身可以被審計,以維持業(yè)務(wù)或行業(yè)合規(guī)性,以及作為整個業(yè)務(wù)治理的關(guān)鍵要素。
- 透明度。隨著全球業(yè)務(wù)對普遍信任的需求增加,公共區(qū)塊鏈交易的可見性和不變性有助于建立和確保數(shù)據(jù)公平準確的信任。
區(qū)塊鏈的局限性
- 復(fù)雜性。區(qū)塊鏈安全可能帶來更高復(fù)雜性??紤]分布在全球業(yè)務(wù)合作伙伴和實體之間的節(jié)點和數(shù)據(jù)庫副本的數(shù)量:這給網(wǎng)絡(luò)和流程帶來額外的負擔(dān)。區(qū)塊鏈技術(shù)僅適用于最安全敏感或任務(wù)關(guān)鍵型數(shù)據(jù)庫用例。
- 較慢的交易。一個區(qū)塊可能包含大量數(shù)據(jù),并且執(zhí)行工作量證明和在所有節(jié)點之間達成共識所需的時間會減慢數(shù)據(jù)輸入的過程。有些節(jié)點將某些類型的事務(wù)優(yōu)先于其他類型的事務(wù),從而防止積壓而導(dǎo)致問題出現(xiàn)。
- 能源效率低。關(guān)于工作量證明的越來越多的抱怨是,系統(tǒng)需要大量的能量和時間來在所有涉及的節(jié)點上執(zhí)行工作量證明,但所有這些計算工作幾乎沒有好處。
- 數(shù)據(jù)庫大小??绻?jié)點復(fù)制和同步區(qū)塊鏈數(shù)據(jù)庫的需求使得IT專業(yè)人員難以及時引入和同步新節(jié)點。隨著區(qū)塊鏈變得越來越大,創(chuàng)建和維護區(qū)塊鏈變得越來越困難。
- 可擴展性。由于工作量證明操作,區(qū)塊鏈不能很好地擴展,因為區(qū)塊添加過程的速度很慢。每個區(qū)塊可以存儲有限數(shù)量的數(shù)據(jù),并且在給定的時間段內(nèi),只有有限數(shù)量的區(qū)塊可以附加到區(qū)塊鏈。這限制了區(qū)塊鏈數(shù)據(jù)庫的可能規(guī)模。
最終,區(qū)塊鏈和不可變賬本技術(shù)不太可能成為所有企業(yè)數(shù)據(jù)庫應(yīng)用程序的合適替代品。業(yè)務(wù)領(lǐng)導(dǎo)者應(yīng)采用和部署最適合業(yè)務(wù)需求的數(shù)據(jù)庫平臺。