06.07 什麼是區塊鏈礦工,節點、分佈式記賬,共識機制、看此文你全明白

什麼是區塊鏈礦工,節點、分佈式記賬,共識機制、看此文你全明白

(一)什麼是挖礦?

比特幣(Bitcoin)是一種新型態的數字資產及交易模式,由中本聰(Satoshi Nakamoto)發明,他在2011年11月1日密碼學討論群提出這個觀念,最重要的是成功利用”區塊鏈(Blockchain)”的觀念公開賬簿,讓“重複扣款”這個虛擬貨幣最大的問題迎刃而解,用戶樂於貢獻出CPU的運算能力,運行一個特殊的軟件來做一名“挖礦工”,這會形成一個網絡共同來維持區域鏈,而這個過程中會生成新貨幣。交易也在這個網絡上蔓延,運行這個軟件的計算機爭相破解不可逆密碼難題,這些難題包括好幾個交易數據。第一個解決難題的“礦工”會得到50比特幣獎勵,相關交易區域會加入鏈條。隨著“礦工”數量的增加,每個迷題的困難程度也隨之提高,這使每個交易區的比特幣生產率維持約在10分鐘一枚。此外,每達到21萬個區域,獎勵就減半,從50比特幣減到25,再從25到12.5,一直持續下去。這樣到2140年,比特幣將達到預定的2100萬枚上限。成功建立出一個去中心化、可信賴追蹤交易的虛擬支付系統。

(二)什麼是比特幣?

比特幣其實有很多個概念,它可以是單位,可以是一個系統等等。

我們這裡只講貨幣這個概念。

比特幣這個東西其實還蠻抽象的,它不像實體貨幣,比如我們現實中的錢那樣可以觸摸,也不像我們支付寶或者銀行賬號裡的那個數字。它只是一條條轉賬記錄。

例如:

小白支付小熊 50 比特幣。

那麼在比特幣這個系統中,我們就認為小熊擁有了 50 個比特幣。

(三)什麼是區塊鏈?

在理解區塊鏈是什麼之前,我們現在理解一下什麼是區塊。

區塊是一種數據結構。我們可以理解為一張白紙,白紙上面記錄著幾個信息。

(1)區塊

在這裡,我需要在引入一個概念,我們賦予每一個東西一個身份證號,

Prev Hash: 前一張白紙的身份證號

Nonce: 每一張白紙生成的身份證號都需要符合一定的條件,因此需要找到一個Nonce值來使得這一整張信息所生成的身份證號是符合條件的(找這個 Nonce 值的過程就是挖礦,找到就是挖礦成功)

Merkle Tree: 可以理解為另一個身份證號,這個身份證號是由所有的轉賬記錄生成的

Timestamp: 時間戳

理解了區塊的概念之後,顧名思義,使把所有的區塊都鏈接起來形成一條鏈子,就是區塊鏈

(2)比特幣區塊鏈

我們可以看到這張圖的第二個區塊和之前那張區塊的圖不一樣,在於 Merkle Root有延展。

剛才有說到 Merkle Root 可以理解為是由所有的轉賬記錄生成的一個身份證號,那麼對於內存有限的電腦來說,我們可以只存這個身份證號就可以了,不需要存儲所有的轉賬記錄。

(3)節點是什麼?

節點就是所有的比特幣錢包。

只要你的設備安裝了比特幣錢包,你就是一個節點。

所謂的分佈式,理論上來說,所有的節點都保存有同一份數據,新接入的節點,會慢慢更新,直到和所有的節點數據都一致,因為比特幣的共識機制,所有節點都會認同最長的那條鏈的數據是正確的。

但實際上,由於網絡的延遲和其它原因,不可能所有的節點保存的數據都一樣。

(4)比特幣網絡節點

我們假設上圖是比特幣網絡節點,現在所有的節點是數據鏈全都是一樣的,長度都是 100,

現在Node1 挖出了一個新的區塊,100

幾乎同一時間Node4 也挖出了一個新的區塊 100

那麼就有可能出現這種情況對於node3來說,它收到了兩個 101 區塊,也即 101a 和 101d

多個子區塊指向同一個父區塊

對於node6 節點則有可能是 ...

對於node7 節點則有可能是 ...

那麼出現了比特幣節點中,區塊鏈數據不一樣的情況,最後究竟是 101a 還是 101d 會併入比特幣主區塊鏈,這取決於基於 101a 或者 101d 的基礎繼續添加區塊的速度,誰比較快。如果基於 101a 區塊鏈的節點增長速度比較快,那麼它的鏈條就比較長,根據比特幣的協議,大家最後會一直接受這條鏈,反之,接受基於 101d 的鏈。

看了此文章對你有幫助請點點關注


分享到:


相關文章: