一、區塊鏈是什么?
區塊鏈是一種特殊的分布式數據庫。
(一)區塊鏈是數據庫,主要作用還是用來保存信息。所以信息可以寫入區塊鏈,也可以從區塊鏈讀取信息。
(二)區塊鏈沒有中心節點,人很都可以成為區塊鏈網絡中的一個服務器/客戶端,在區塊鏈網絡中每個節點之間平等的保存著完整的數據庫。任意節點數據發生變化都會發送給網絡內所有的節點,保證區塊鏈內信息的一致性。
二、區塊鏈最大的特征:
區塊鏈是去中心化的,沒有管理員。那么區塊鏈是怎樣保證數據安全及可信的呢?
區塊鏈是由一個個區塊組成,每個區塊就行數據庫中的一個數據表用來記錄數據。
每個區塊包含區塊頭,區塊體。
區塊頭:記錄當前區塊的元信息:時間戳、hash..。
區塊體:實際數據信息。
區塊頭包含了當前區塊的多項元信息:
生成時間
實際數據(區塊體)的hash
上一區塊的hash等...
Hash是計算機對任意內容計算出長度相同的特征值,長度是256位,不管原始內容是什么,最后都計算出一個256位的二進制數字。不同內容的hash一定是不同的。
由此可以這樣認為:
每個區塊鏈區塊體內容不同,所以可以用hash來標識區塊鏈。
若果區塊鏈內容變了,則hash也會隨之變化。
三、Hash的不可修改。
區塊鏈中區塊與hash是一一對應的關系,每個區塊的hash都是根據區塊內容計算的。
前面說到,區塊頭內包含很多內容,其中就包括當前區塊體的hash(區塊內容計算得到),以及上一區塊的hash值。這就意味著如果當前區塊的內容發生改變或者上一區塊的內容改變一定會引起當前區塊的hash改變。如果區塊的hash改變了,為了是后面的區塊能連接到它,那就需要修改后邊所有的區塊,否則此變化的區塊就會脫離區塊鏈。除非掌握整個區塊鏈網絡51%的計算能力,否則要修改后邊所有區塊幾乎不可能實現。
通過這種方式,保證了區塊鏈的安全性及可靠性,數據一旦寫入就無法再進行修改。