區塊鏈100講:區塊鏈為什麼叫“區塊”“鏈”?

weixin_33816300發表於2018-05-04
10818463-32e49a5a7e8efcac
image

《區塊鏈100講》第1講我們用一個村裡的賬本解釋了什麼是區塊鏈,今天繼續第2講,看看什麼是“區塊”,它們是怎麼“鏈”起來的,“區塊”裡包含了什麼?

1

區塊鏈由區塊連結而成

區塊鏈由一串使用密碼學演算法產生的區塊連結而成。每一個區塊上寫滿了交易記錄,區塊按順序相連形成鏈狀結構,也就是區塊鏈大賬本。

區塊鏈技術把資料庫中需要儲存的資料分成了不同的區塊。以比特幣為例,礦工在生成新區塊時,需要根據前一個區塊的雜湊值、新交易區塊和隨機數,來計算新的雜湊值和隨機數,每個區塊通過特定的資訊連結到上一區塊的後面,前後按時間順序連線起來呈現一套完整的資料。也就是說每一個區塊都是在前一個區塊資料的基礎上生成的,該機制保證了區塊鏈資料的唯一性

每個區塊鏈資料庫本質上是一個按照時間順序串聯起來的事件鏈,它使用協議規定的密碼機制進行了認證,保證不會被篡改和偽造

因為交易記錄細微的變化也會徹底改變雜湊值的結果,所以礦工在進行算力競爭的時候無法作弊,每個礦工都必須等前一個區塊生成之後才能根據前一個區塊的資料開始計算符合條件的隨機數,保證了挖礦的公平性。

2

區塊結構

區塊是使用密碼學方法產生的資料塊,資料以電子記錄的形式被永久儲存下來,存放這些電子記錄的檔案我們就稱之為“區塊(block)”

區塊是區塊鏈的主要資料儲存結構,一個區塊包含區塊頭和區塊體兩個部分。

10818463-6b5a002c4ceaa2b8
image

(來源於否子戈部落格)

而區塊頭則是區塊的重頭戲。對於一個區塊而言,它就是一個特殊的資料結構。區塊頭包含了一些固定資訊:

  • 版本(客戶端版本,每次升級客戶端軟體,這個資訊就會不一樣)。

  • 塊高度(其實就是表示這是鏈中的第幾個區塊)。

  • 塊雜湊(這個區塊的hash值,是挖礦得到的),上一個塊的塊雜湊(這個欄位是重點中的重點,是形成連結串列結構的關鍵)。

  • 時間戳(區塊建立時間)。

  • 難度和Nonce(這兩個欄位和挖礦有關,區塊鏈100講之挖礦會詳細介紹)。

  • merkle root(區塊體的merkle根hash值,區塊鏈100講之merkle樹會詳細介紹)。

除了這些欄位,如果做一個自己的區塊鏈,還可以新增一些其他資訊到區塊頭中。以比特幣的區塊鏈為例,每個區塊記錄了這幾個內容:神奇數、區塊大小、資料區塊頭部資訊、交易計數、交易詳情。

10818463-721ad628dc3aa2c7
image

(來源於動脈網)

區塊體****是儲存具體內容的位置,在比特幣的區塊鏈中,區塊體儲存的是一段時間的交易資訊。在其他區塊鏈中,這裡可不一定儲存的是交易資訊,可能是其他資訊,總之區塊體是儲存該區塊鏈用來做什麼業務的具體業務資訊。

在部分割槽塊鏈實現中,一個區塊還可以有區塊尾,用來儲存一些區塊建立結束之後的資訊,這些資訊可能是區塊頭和區塊體已經建立完以後,附加上去的,比如區塊的長度、容量等資訊。

區塊鏈的資料儲存方式通過兩個方式來保證資料庫的完整性和嚴謹性。

  • 第一,每一個區塊上記錄的交易是上一個區塊形成之後、該區塊被建立前發生的所有價值交換活動,這個特點保證了資料庫的完整性。

  • 第二,在絕大多數情況下,一旦新區塊完成後被加入到區塊鏈的最後,則此區塊的資料記錄就再也不能改變或刪除。這個特點保證了資料庫的嚴謹性,即無法被篡改。

3

鏈式結構

區塊和區塊之間是如何“鏈”起來的呢主要依靠各個區塊之間的資料區塊頭部資訊連結起來,頭部資訊記錄了上一個區塊的HASH值(通過雜湊函式變換的雜湊值)和本區塊的HASH值。本區塊的HASH,又在下一個新的區塊中有所記錄,由此完成了每個區塊的資訊鏈。

10818463-4766e086842c3122
image

(來源於否子戈部落格)

同時,由於包含了時間戳,區塊鏈還帶有時序性。時間越久的區塊後面所連結的區塊越多,修改該區塊所花費的代價也就越高。區塊鏈採用了密碼協議,允許計算機(節點)的網路共同維護資訊的共享分散式賬本,而不需要節點之間的完全信任。

該機制保證,只要大多數網路按照所述管理規則驗證釋出到分類賬(即,鏈)的塊,儲存在區塊鏈中的資訊可被信任為可靠的。這確保交易資料在整個網路中一致地複製。分散式儲存機制的效果通常意味著網路的所有節點都儲存了區塊鏈上儲存的所有資訊。這裡借用一個形象的比喻,區塊鏈就好比地殼,越往下層,時間越久遠,越穩定,不會發生改變。

由於區塊鏈將從創世塊以來的所有交易都明文記錄在區塊中,且形成的資料記錄不可篡改,因此任何交易雙方之間的價值交換活動都是可以被追蹤和查詢到的。這種完全透明的資料管理體系不僅從法律角度看無懈可擊,也為現有的物流追蹤、操作日誌記錄、審計查賬等提供了可信任的追蹤捷徑。

區塊鏈在增加新區塊的時候,有很小的概率發生“分叉”現象,即同一時間出現2個符合要求的區塊。對於“分叉”的解決方法是延長時間,等待下一個區塊生成,選擇長度最長的支鏈新增到主鏈。“分叉”發生的概率很小,多次分叉的概率基本可以忽略不計,“分叉”只是短暫的狀態,最終的區塊鏈必然是唯一確定的最長鏈。

從監管和審計的角度來看,條目可以新增到分散式賬本中,但不能從中刪除。執行專用軟體的通訊節點網路以對等方式在參與者之間複製分類賬,執行分散式分類賬的維護和驗證。在區塊鏈上共享的所有資訊都具有可審計的痕跡,這意味著它具有可追蹤的數字“指紋”。分類賬上的資訊是普遍和持久的,並建立可靠的“交易雲”,使資料不會丟失,所以這項技術從根本上消除了交易對手之間的單點故障風險和資料碎片差異。

本期就講到這裡,下期繼續。什麼是區塊、它們如何“鏈”接,你明白了嗎?

本文內容來源於:火幣網、36kr

補充閱讀:區塊鏈100講:從村裡的賬本來看什麼是區塊鏈

萬字深度長文!從原理到趨勢,解剖風口上的區塊鏈技術(動畫)

活動推薦

主題:Blockathon,挑戰區塊鏈開發,敢不敢來!(點選瞭解詳情)

5月25-27日,Blockathon2018北京站,招募100名開發者一起挑戰區塊鏈開發。

開發者免費,報名需稽核。識別下圖二維碼或點選“閱讀原文”即可報名參加。

10818463-29e4946146f4c5a2
image

點選“閱讀原文”即可報名。

相關文章