區塊鏈中的隨機數(Nonce)是什麼?


像比特幣這樣的加密貨幣使用區塊鏈作為去中心化、分散式、公共的數字賬本,記錄比特幣的所有交易。區塊鏈具有一個獨特的特性,即以雜湊值的形式將前一個區塊的值儲存在當前區塊中,這使得在不更改所有後續區塊的情況下無法更改任何區塊。

礦工建立並驗證區塊,並因使用其 CPU 算力而獲得獎勵。獲得超過 50% 共識的區塊將被新增到區塊鏈中。在區塊驗證過程中,礦工將完成**工作量證明**,該證明涵蓋區塊的所有資料,並檢查當前區塊的雜湊值是否小於目標值。

為了建立大多數網路參與者都接受的區塊,礦工們爭先恐後地儘快完成工作量證明。工作難度會進行調整,以確保每個區塊至少需要 10 分鐘的時間,這已成為比特幣網路中將區塊新增到區塊鏈的標準時間。

**Nonce 是工作量證明的核心部分**。Nonce 是一個隨機整數,是一個 32 位(4 位元組)的欄位,由礦工調整,使其成為一個有效的數字,用於對區塊的值進行雜湊運算。**Nonce 是一個只能使用一次的數字**。一旦找到完美的 Nonce,它就會被新增到雜湊化的區塊中。連同這個數字,該區塊的雜湊值將被重新雜湊,並建立一個複雜的演算法。

它會與現有的目標進行比較,判斷它是否小於或等於當前目標。礦工每秒會測試和丟棄數百萬個 Nonce,直到找到有效的“黃金 Nonce”。為了比其他礦工更快地完成驗證,礦工們利用他們的計算機雜湊算力相互競爭。一旦找到“黃金 Nonce”,他們就可以完成區塊並將其新增到區塊鏈中,從而獲得區塊獎勵。

這排除了任何重複或重複使用同一比特幣的可能性。無論其他欄位是否更改,Nonce 都會發生變化,因為它具有唯一性,因此成為工作量證明中最重要的組成部分。在密碼學中,**Nonce** 是一個任意數字,在密碼通訊中只能使用一次。它通常是在身份驗證協議中釋出的一個隨機數,以確保相同的通訊不會被重複使用。

將有一些常量資訊、時間戳、具有難度的雜湊值以及 Nonce,當這些資訊透過雜湊演算法 SHA256 處理後,將成為一個新的區塊。這裡 Nonce 扮演著非常重要的角色。正如我們已經討論過的,會嘗試數百萬個 Nonce 值,直到找到“黃金 Nonce”。目標雜湊值定義為難度,雜湊值的迭代計算需要礦工的計算機資源。只有使用正確的 Nonce 值,才能建立工作量證明,從而在區塊鏈中生成一個新的區塊。

更新於: 2019-07-30

4K+ 瀏覽量

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.