區塊鏈是一種資料庫結構,由一個又一個「區塊」組成,每個區塊中儲存了一定大小的數據,區塊以各自產生的時間順序相連形成鏈狀結構,這就組成了區塊鏈。
什麼是區塊?區塊是由什麼組成的?請參考「什麼是區塊」章節。
與傳統資料庫相比,區塊鏈一般具有以下核心特徵:去中心化、難以竄改、公開透明
去中心化是指如何將權力交給世界各地的人們來管理,而不是由一個人或一個實體進行集中管理。
區塊鏈系統由許多伺服器共同維護,每個參與維護的伺服器都儲存了區塊鏈中所有資料的副本,只要整個系統中還有一台伺服器還在運作,區塊鏈上的資料就不會遺失。這些伺服器在區塊鏈系統中被稱為“節點”,它們為整個系統提供儲存空間和運算支援。
如果想要在區塊鏈系統中記錄一條新的數據,所有節點必須就這條數據達成一致-如果半數以上節點同意,所有節點共同進行記錄。而區塊鏈的節點通常由不同的實體運行,在區塊鏈系統外沒有聯繫。因此我們可以認為,區塊鏈並非由單一個體或實體運行,而是由多方共同維護,這也是人們常說的區塊鏈的核心特徵:去中心化。
什麼是節點?這些節點如何透過「共識機制」共同協作?什麼是共識機制?請參考「什麼是節點/驗證者」以及「什麼是共識機制「章節。
在區塊鏈系統中,相鄰的兩個區塊透過加密演算法連結在一起。具體而言,前一個區塊中的資料將被加密成一個加密摘要,並記錄在下一個區塊中。每一個區塊的產生都依賴前一個區塊記錄的數據,以此形成一條鏈。因此某一資料一旦被記錄到某一區塊中,就會不斷被加密以摘要的形式傳遞到後續的每一個區塊中。
如果想要竄改某歷史區塊中的數據,就會導致該區塊之後所有區塊的數據改變。但由於之後的區塊都已被所有節點記錄,因此需要所有節點共同修改,也需要獲得半數以上節點同意。而網路中的其他節點會認為竄改資料的行為是作惡行為,不會同意竄改。
但如果網路中半數以上的節點都被想要竄改資料的作惡者控制,那麼竄改資料行為就會發生。這也是區塊鏈系統的脆弱之處,它建立在「群體中的大多數總是正直的」假設之上。因此,在區塊鏈系統中,如果有人掌控了半數以上的節點的控制權,他就能竄改區塊鏈中數據,從而讓自己獲利。
這就是為什麼區塊鏈中的資料難以被竄改,但也存在被竄改的可能性。
區塊鏈技術基礎是開源的,區塊鏈的數據對所有人開放,所有人都可以透過公開的介面查詢區塊鏈中的數據,並開發相關應用,因此整個區塊鏈系統是公開透明的。
想了解更多關於區塊鏈特點的信息,請參考「什麼是區塊鏈不可能三角」章節。