Nxt
鍛造是如何工作的?
我正在尋找解釋如何驗證偽造塊的技術答案。
我已經查看了 NXT wiki 和他們的白皮書,但沒有找到詳細的解釋。
下面是目前鍛造的工作原理的解釋,將來會稍微改變。
每個塊都有兩個欄位 - BlockSignature 和 GenerationSignature。
前者是用生成區塊的賬戶的私鑰對區塊數據進行簽名填充,與鍛造過程幾乎沒有關係。
後者通過計算 SHA256(GenerationSignatureOfPreviousBlock+PublicKeyOfAccount) 填充。
雜湊的前 8 個字節給出了一個小端格式的無符號 64 位數字,這個數字稱為“命中”。
每個賬戶都有一個所謂的 EffectiveBalance,如果賬戶持有更多的硬幣,它通常(但不總是)更高。EffectiveBalance 乘以對所有帳戶都相同的某個值 - BaseTarget(它會調整每個塊,試圖將塊生成速率保持在 1 分鐘) - 並乘以自上一個塊以來經過的秒數。結果值稱為“目標”。
如果“命中”小於“目標”,則對等方接受一個塊並將其附加到區塊鏈。
這是鍛造的重要組成部分。我省略了諸如驗證交易簽名、檢查雙重支出等顯而易見的事情。