比特幣區塊包含了區塊頭部和一些比特幣交易。一個區塊上所有交易的雜湊值構成了該區塊默克爾雜湊樹的葉子結點,默克爾雜湊樹的根節點儲存在區塊頭裡面,因此所有交易與區塊頭部繫結在了一起。
挖礦難度的設定
比特幣難度是對挖礦困難程度的度量,即指:計算符合給定目標的一個雜湊值的困難程度。
difficulty = difficulty_1_target / current_target
difficulty_1_target的長度為256位元, 前32位為0, 後面全部為1 ,一般顯示為雜湊值,
0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
difficulty_1_target表示btc網路最初的目標雜湊。current_target是當前塊的目標雜湊,先經過壓縮然後儲存在區塊中,區塊的雜湊值必須小於給定的目標雜湊值, 表示挖礦成功。
數字簽名
比特幣需要利用公鑰進行加鎖,利用私鑰簽名進行解鎖,從而實現數字貨幣的交易。解鎖過程實際上是利用ECDSA演算法的產生數字簽名。給定交易資訊m,簽名過程如下:
選擇一個隨機數k
計算點R= k*G= (xR, yR) ,計算r=xR mod n
利用私鑰d計算s=k-1*((H(m) - d*r)) mod n
輸入簽名(r, s)
軟體釋出
挖礦軟體釋出資訊示意圖
雜湊函式在區塊鏈中的應用就講到這裡啦,下節課我們將開啟全新篇章的學習,敬請期待!