比特幣計算需要以下引數:
1、block的版本 version
2、上一個block的hash值: prev_hash
3、需要寫入的交易記錄的hash樹的值: merkle_root
4、更新時間: ntime
5、當前難度: nbits 挖礦的過程就是找到x使得 SHA256(SHA256(version + prev_hash + merkle_root + ntime + nbits + x )) < TARGET 上式的x的範圍是0~2^32, TARGET可以根據當前難度求出的。
比特幣計算需要以下引數:
1、block的版本 version
2、上一個block的hash值: prev_hash
3、需要寫入的交易記錄的hash樹的值: merkle_root
4、更新時間: ntime
5、當前難度: nbits 挖礦的過程就是找到x使得 SHA256(SHA256(version + prev_hash + merkle_root + ntime + nbits + x )) < TARGET 上式的x的範圍是0~2^32, TARGET可以根據當前難度求出的。
除了x之外,還可以嘗試改動merkle_root和ntime。由於hash的特性,找這樣一個x只能暴力搜尋。一旦計算者A找到了x,就可以廣播一個新的block,其他客戶端會驗證計算者A釋出的block是否合法。如果釋出的block被接受,由於每個block中的第一筆交易必須是將新產生25個比特幣傳送到某個地址,當然計算者A會把這個地址設為計算者A所擁有的地址來得到這25個比特幣。