區(qū)塊高度和記賬本之間有什么關(guān)聯(lián)
在關(guān)于區(qū)塊鏈的很多文章中,經(jīng)常會看見區(qū)塊鏈在某個區(qū)塊高度發(fā)生分叉,那究竟什么是區(qū)塊高度,為什么在某個區(qū)塊高度會發(fā)生分叉呢?今天大白就和大家來聊聊區(qū)塊高度的那些事兒。
1. 區(qū)塊鏈與記賬本
區(qū)塊高度顧名思義就是區(qū)塊的高度,準(zhǔn)確地說是連接在區(qū)塊鏈上的塊數(shù)。因此想要明白什么是區(qū)塊高度,我們得首先搞明白什么是區(qū)塊鏈。如果說區(qū)塊鏈?zhǔn)怯涃~本的話,那么一個區(qū)塊就像是記賬本的每一頁一樣。
在記賬本的一頁頁紙中,清清楚楚地記錄著每一筆賬。而且為了交易不被篡改和保證公開透明性,區(qū)塊鏈記賬的方式是大家一起記賬。
2. 區(qū)塊高度與記賬本頁碼
既然區(qū)塊鏈?zhǔn)莻€記賬小本本,那么每一頁(區(qū)塊)可以記錄的賬是有限的,所以為了區(qū)分和查找一筆交易到底記錄在哪一個區(qū)塊中,我們很容易會想到給這個本子標(biāo)明頁碼。所以,如果說區(qū)塊鏈?zhǔn)且粋€記賬的小本本的話,則區(qū)塊高度就像是這個記賬本的頁碼一樣。
那么大白的思考題來啦,在只有一條最長鏈的區(qū)塊鏈的情況下,假設(shè)當(dāng)前記賬本這一頁的頁碼是 3 ,那么這個區(qū)塊是這條區(qū)塊鏈的第多少個區(qū)塊呢?答案:第 4 個區(qū)塊。
有的小伙伴會疑問為什么不是第 3 個區(qū)塊呢?原因是區(qū)塊鏈的還有一個區(qū)塊高度為 0 的區(qū)塊,也就是創(chuàng)世區(qū)塊。它的頁碼為 0,因此到頁碼為 3 的區(qū)塊時,是代表著它的前面有3個區(qū)塊,也叫做區(qū)塊的祖先數(shù)量。而它自己是這條鏈的第 4 個區(qū)塊。
3. 出塊和記賬本頁碼生成
在搞明白什么是區(qū)塊高度之后,大白再繼續(xù)和大家說說區(qū)塊高度是怎么形成的。在挖礦機(jī)制的區(qū)塊鏈中,區(qū)塊鏈這個記賬小本本的頁碼是礦工競爭得到的。比如當(dāng)前的區(qū)塊高度是 3,當(dāng)幸運的礦工解決計算難題后,就會得到頁碼為 4 的那頁記賬本(即區(qū)塊高度為 4 的區(qū)塊)的記賬權(quán)利,并會獲得一定的獎勵。
此時這個區(qū)塊就會記錄著被這個礦工打包并且已經(jīng)確認(rèn)過的交易。當(dāng)這一個區(qū)塊已經(jīng)形成后,礦工們又會在區(qū)塊高度為 4 的區(qū)塊上繼續(xù)競爭得到區(qū)塊高度為 5 的區(qū)塊。
4. 分叉和記賬本頁碼重復(fù)
大白前面談到,礦工通過解決計算難題去得到下一個區(qū)塊的記賬權(quán)利,那么問題來了,假如當(dāng)前的區(qū)塊高度是 2,當(dāng)兩個幸運的礦工同時解決了計算難題,那么就都會獲得區(qū)塊高度為 3 的區(qū)塊的記賬權(quán)。
這就相當(dāng)于說,礦工小白拿著頁碼為 3 的一頁紙,礦工小黑也拿著頁碼為3 的一頁紙,雖然小白和小黑的紙的頁碼是一樣,但是兩張記賬紙記錄的內(nèi)容卻不是完全一樣的。
可是按規(guī)則來說,小白和小黑的這兩頁紙都是沒有問題的,那么到底選哪一張記賬紙呢?這個時候,一些礦工會選擇小白的這頁紙訂在記賬本的后面,繼續(xù)去“尋求”頁碼為 4 的那頁記賬紙,而有的礦工會選擇小黑的那頁紙訂在記賬本上再繼續(xù)去“尋求”頁碼為 4 的那頁記賬紙。
這樣就相當(dāng)于在頁碼為 2 的那頁紙的地方,分成了兩個記賬本。在區(qū)塊鏈中,把這種行為叫做分叉??墒窃趨^(qū)塊鏈中有一個“最長鏈原則”,礦工們會選擇最長的那條鏈作為主鏈繼續(xù)挖礦。比如在繼小白那條鏈之后,小紅先挖到區(qū)塊高度為 4 的區(qū)塊,那么小黑那條鏈將會被舍棄,礦工們都會選擇在小白這條鏈上繼續(xù)挖礦。
前面大白談到是用區(qū)塊高度去標(biāo)識某一筆交易到底屬于哪個區(qū)塊 ??墒乾F(xiàn)在就出現(xiàn)了兩個區(qū)塊高度一樣的區(qū)塊,那怎么去標(biāo)識呢?
實際上在區(qū)塊鏈中,采用的是區(qū)塊哈希去唯一標(biāo)識一個區(qū)塊,而不是區(qū)塊高度。因為即使區(qū)塊高度一樣,區(qū)塊里面記錄的內(nèi)容也并非完全一樣的,這樣一來區(qū)塊的哈希(由區(qū)塊內(nèi)容求得)就一定不是一樣的,所以可以用區(qū)塊的哈希去唯一標(biāo)識一個區(qū)塊。
總結(jié)而言,區(qū)塊鏈就像是一個記賬本,而區(qū)塊就像是這個記賬本里面的一頁頁記賬紙,區(qū)塊高度就是記賬紙的頁碼,當(dāng)同時出現(xiàn)兩個相同頁碼時就會發(fā)生分叉。
來源: 白話區(qū)塊鏈