區塊鏈是以數字方式存儲數據的概念。這些數據以塊為單位。這些塊鏈接在一起並使數據不可變。當數據塊與其他塊鏈接時,其數據永遠不會再次更改。它可以公開提供給任何想要再次看到它的人,它以添加到區塊鏈的那個序列顯示。沒有人可以在區塊鏈上更改該資訊。
在上一節中,我們已經學習了如何構建塊以及加密哈希如何與整個過程相關聯。在這裏,您將學習區塊鏈如何將所有這些概念結合使用,以保持完整區塊鏈的完整性。
想像一下如下圖所示的一堆交易數據。
在上面的圖片中,可以看到該塊按時間順序組裝。第一個塊跟隨第二個塊,然後是第三個塊,然後是第四個塊,可以根據需要繼續它。在這裏,有一個塊編號字段,數據字段,亂數字段,哈希值字段和前一個字段。前一個字段對應於前一個塊的哈希值字段。
我們知道區塊鏈中的每個塊都以加密方式綁定到下一個塊。在上面的示例中,塊1中的前一個字段為零,因為塊1沒有先前的哈希值,因此其值為零。在第二個塊中,會發現前一個字段中有一個哈希值,它引用了前一個塊哈希值。這個過程一直持續到最後一個塊。
現在想像一下,如果任何塊中的數據都被改變了。假設在塊2中已經改變,塊2中的數據現在是不同的,這意味著該塊也獲得了新的簽名。與此新數據集對應的簽名不再鏈接到其他塊。它只是中斷了第2個塊,因為哈希不再有效,並且它也會使一直到鏈末尾的每個塊都無效。這向區塊鏈的其他用戶表明塊2中的某些數據已經被改變,並且因為區塊鏈應該是不可變的,它們通過轉回區塊鏈的前一條記錄來拒絕這種改變,所有區塊仍被鏈接在一起。這是區塊鏈的主要優點。
現在,如果試圖修復它,可以做到的唯一方法就是找出一個可以在上一課中解釋過的亂數。所以只需要一個塊然後嘗試。如果它沒有給出有效的散列,那麼嘗試使用兩個,三個,四個,如果它們都不起作用,那麼就簡單地挖掘它。當挖掘一個塊時,系統會發現這是一個有效的哈希值。它有四個前導零,我們說這是重要的。但正如將注意到的,當嘗試對第二個塊進行散列時,此散列不會有四個前導零。因此它仍然是一個無效的塊。所以也必須挖掘這個區塊。並且你必須在每個塊一直到鏈的前面這樣做才能解決這裏發生的事情。
理解Hash中四個前導零的重要性
現在我們瞭解擁有四個前導零的重要性。這四個前導零與難度級別的東西聯繫在一起。難度級別是綁定並構建到區塊鏈網路中的,它決定了為塊獲取等效加密哈希的難度。在這種情況下,該難度級別要求我們的哈希值小於目標中的哈希值。
出於這個特定目的,需要一個至少有四個前導零的目標。例如,如果散列目標是0000a1b2c3d4e5f6
,則小於或等於此數量的任何散列都是有效的塊散列。許多哈希值都滿足這個要求,其中任何一個都是有效的。但是,找到這樣的哈希是一項艱巨的任務。哈希目標越少,找到令人滿意的哈希就越困難。
隨著新電腦被添加到比特幣網路的更多加密散列中,這些難度級別隨著時間的推移而不斷增加。因此,更多的散列能力意味著難度水準需要上升。此難度級別每兩周調整一次,以確保實際競爭嘗試解決這些加密問題的電腦大約需要10
分鐘來挖掘新塊。
注意:每
10
分鐘一個塊=每小時6個塊,每天6 x 24
個塊,以及兩周內6 x 24 x 14 = 2016
塊。
例如:如果要找到小於或等於0FFFF
的哈希值,則有65,536
個選擇。但是,如果要找到小於或等於000FF
的哈希值,則只有256個選擇。較低的目標數意味著更少的選擇。通常,我們在哈希中需要更多的前導零,要找到令人滿意的哈希要困難得多。