區塊鏈的數據結構是由包含事務信息的塊按遠近順序排列的。塊按遠近順序在這個鏈中連接,每一個塊都指向前面的塊。html
區塊鏈一般被視爲一個垂直堆棧,第一個塊是堆棧底部的第一個塊,而後將每一個塊放在前一個塊的頂部。使用堆棧將塊依次堆疊的概念可視化以後,咱們可使用一些術語,如「高度」來表示塊與第一個塊之間的距離;和「top」或「top」表示新添加的塊。安全
每一個塊頭生成一個SHA256加密散列來生成散列值。使用這個散列值,能夠標識區塊鏈中相應的塊。同時,每一個塊能夠經過其塊頭的「父塊哈希值」字段引用前一個塊(父塊)。更多區塊鏈知識數據結構
也就是說,每一個塊頭包含其父塊散列值。這樣,經過將每一個塊連接到相應父塊的散列序列,就建立了一個返回到第一個塊(建立塊)的鏈。區塊鏈
雖然每一個塊只有一個父塊,但它能夠臨時有多個子塊。每一個子塊具備與其父塊相同的塊,而且在「父塊哈希值」字段中具備相同的(父塊)哈希值。在一個塊中出現多個子塊的狀況稱爲「塊鏈叉」。加密
區塊鏈分叉只是暫時的,而且只在多個不一樣的塊幾乎同時被不一樣的礦工發現時纔會發生。最後,只有一個子塊成爲區塊鏈的一部分,解決了「區塊鏈fork」的問題。雖然一個塊可能有多個子塊,可是每一個塊只有一個父塊,由於一個塊只有一個「父塊散列值」字段能夠指向它唯一的父塊。htm
因爲塊頭包含「父塊哈希值」字段,因此當前塊的哈希值也會受到字段的影響。若是父塊的標識改變了,子塊的標識也會改變。事務
當父塊中有任何更改時,父塊的哈希值也會更改。這將迫使子塊的「父塊哈希值」字段發生更改,從而致使子塊的哈希值發生更改。子塊的哈希值的改變將迫使大塊的「父塊哈希值」字段發生變化,從而改變大塊的哈希值等等。get
一旦一個塊有許多代,這個瀑布效應將確保這個塊不會被改變,除非強制從新計算該塊中全部後續的塊。正是這種從新計算須要大量的計算,因此長區塊鏈的存在可使區塊鏈的歷史沒法改變,這也是比特幣安全的一個關鍵特徵。it
你能夠把區塊鏈想象成地質構造中的一個地質層,或者是冰川核心的一個樣本。沉積前表層可能隨季節變化,甚至被風吹走。但在更深的地方,地質結構變得更加穩定。在幾百英尺深的地方,你會看到保存了數百萬年但仍然具備歷史意義的岩層。比特幣
在區塊鏈中,因爲區塊鏈分支致使的從新計算,可能會修改最新的塊。最近的六塊地在表土裏只有幾英寸深。可是,在超過6個塊以後,塊在區塊鏈中的位置越深,更改它的可能性就越小。100個街區以後,區塊鏈足夠穩定,能夠支付Coinbase交易(包括新挖的比特幣交易)。通過數千個街區(一個月)後的區塊鏈將成爲一個肯定的歷史,永遠不會改變。