万象直播app破解版_欧美国产日韩无遮挡在线一区二区,亚洲国产综合精品中久,强奷白丝女仆在线观看,超碰三级大陆在线

您的位置:首頁 > 區塊鏈

比特幣挖礦算法具體是什么?

導讀 需要以下參數1、block的版本version2、上一個block的hash值: prev_hash3、需要寫入的交易記錄的hash樹的值: merkle_root4、更新時間: ntime5、當前難度: nbit

比特幣挖礦算法具體是什么?

需要以下參數

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只能暴力搜索。

一旦你找到了x,你就可以廣播一個新的block,其他客戶端會驗證你的block是否合法。如果你的block被接受,由于每個block中的第一筆交易必須是將新產生25個比特幣發送到某個地址,當然你會把這個地址設為你所擁有的地址來得到這25個比特幣。

比特幣從開始到現在的每一筆交易記錄都保存在網絡上,整個比特幣網絡維護的一個巨大的交易記錄文件(現在大約12G)。 這個文件的更新周期平均是10分鐘,新加入的交易記錄叫做一個block,而這個碩大的文件由一串block組成,叫做block chain.

為什么是25個比特幣?

這是規定。最初是50個比特幣,每產生剩下比特幣的一半,這個所得就會減半,這樣最終能產生的比特幣總量趨近于2100萬。如果你現在仍然聲稱挖到了50個比特幣,這是不會被其他客戶端接受的,這個block就算白挖了。

怎么保證更新周期平均是10分鐘?

TARGET越小,解出x的難度就越大,每產生2016個block(約14天),網絡會根據這段時間產生新block的平均間隔調整之后的TARGET。

是不是計算速度最快的人總是先解出來?

不是。你總是想把挖礦所得據為己有,所以每個人在計算時,發送挖礦所得的地址是不一樣的,這樣merkle_root就不同,也就是說每個人是從不同的初始狀態開始求解的。

同時解出來怎么辦?

block chain會出現分叉,部分客戶端接受了A,部分接受了B,直到某個分支變得更長,所有人就會選擇這個更長的分支。如果你挖出來的不幸沒有被選中,你的挖礦所得就無效了。

既然選更長的分支,那我用很低的難度去求解怎么辦?

客戶端在眾多分支中找到符合當前難度且最長的。

這些計算浪費了嗎?

如果你要把一筆錢花兩次,你需要這么做。挖到一個新的block,但是藏著不廣播,并繼續挖礦。找到商家A,支付比特幣,讓網絡上的其他人挖到block并寫入這筆交易記錄。找到商家B,支付比特幣,寫入自己挖的block。如果你能搶先挖到兩個block并廣播出去,所有人會以你這個更長的分支為當前的block chain,商家A收到的比特幣就不被承認了。這樣攻擊成功的概率取決于你計算hash的速度。整個網絡的計算力足夠高的話,這樣的攻擊或者成功率極低,或者成本極大。

免責聲明:本文由用戶上傳,如有侵權請聯系刪除!