談起挖礦,市面上有很多虛擬貨幣都是可以開展挖礦的,而現在挖礦人數最多的貨幣便是BTC。我們知道,開發挖礦程序是必須了解CPU的指令集、顯卡指令集、顯卡驅動等內容的,不同的貨幣都會有不同的算法。不過還是有不少投資者近期也咨詢到挖礦網(wakuang58.com)小編,究竟什么是比特幣挖礦算法?挖礦算法又有哪些?下面跟著挖礦網小編一起來看看。
比特幣挖礦算法什么意思?
比特幣挖礦便是找到一個隨機數(Nonce)參加哈希計算Hash(BlockHeader),因此比特幣挖礦算法又被稱為哈希算法促使最終得到的哈希值符合難度規定,用公式表示便是Hash(BlockHeader)<=target
BTC采用的哈希算法是SHA-256,換句話說最后會產生256位的導出,一共2^256種可能的取值。
最終得到的哈希值低于target的意思是把哈希后獲得的bytes轉換成數據后低于target轉化成的數字。
舉例說明,直觀的感受一下挖礦的難度;
SHA-256測算123的值
a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3
下面這段字符是BTC第1000個區塊的哈希(2009年1月產生);
00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09
能夠看見前面有8個0,盡管哈希值的生成是隨機的,可是生成前面有8個0的值對計算機窮舉而言也并不算太難。
再看一下這段字符,是BTC第560000個區塊的哈希(2019年1月產生);
0000000000000000002c7b276daf6efb2b6aa68e2ce3be67ef925b3264ae7122
能夠看見前面有18個0,要生成滿足這個條件的哈希針對普通電腦而言幾乎是不可能完成的任務了。
簡易來看挖礦難度的高低便是生成區塊頭的哈希值有多少0。
挖礦算法有哪些?
BTC(Bitcoin)是Sha256d算法,中本聰設計的時候給出了人人挖礦的理念。BTC最初是錢夾挖礦,之后擁有CPU挖礦程序,再后來擁有顯卡挖礦程序,2012年擁有ASIC挖礦。初期許多山寨幣都是使用的Sha256d算法,比特幣礦機出現后,這些山寨幣因為全網算力低,經常被51%進攻,就存活不下去了。
大部分幣的開發團隊都反對ASIC,應用各種不能用以ASIC挖礦的算法,很少有開發團隊希望自己的幣能被ASCI挖礦。
萊特幣(Litecoin)是Scrypt算法,對內存依靠很高。2013年,BTC和萊特幣價格暴漲。那時萊特幣還是顯卡挖礦,覺得做不出來ASCI,大量新出現的山寨幣應用Scrypt算法。機槍池大量發生,礦工在礦池挖萊特幣,礦池具體讓礦工挖的是同算法其他盈利更高的幣,礦池還是支付給礦工萊特幣。礦池在平臺交易大量砸盤售出挖出的這個幣,一直跌至挖礦盈利很低,這個幣基本就完了,礦池再換挖其他幣用機槍池挖礦。2014年,萊特幣礦機被做出來了,芯片內集成了儲存。
合并采礦要在礦池實現的。被合并采礦的幣必須支持,才能和主鏈合并采礦。在幾乎不影響主鏈挖礦收益的同時,更多的挖出被合并采礦的幣,是礦池的競爭力。
比特股PTS(BitsharesPTS)是2013年發布的,開發團隊給出了人人挖礦的理念,并表示只能CPU挖礦。過了才2個多月,就有公開的顯卡挖礦程序了。
質數幣(Primecoin)讓挖礦測算成為有意義的數據。之前各種幣挖礦都是開展無意義的測算,質數幣的計算是用來找尋大質數,這是有意義的。質數幣一開始也是CPU挖礦,很快就有第三方做出來了顯卡挖礦程序。
黎曼幣(Riecoin)使用了改善的計算質數算法。黎曼幣的算法牽涉到數論極為極其繁雜,必須上面儲存和大內存,只能CPU挖礦,做不出來顯卡挖礦程序和ASIC。黎曼幣挖礦程序算法的作者是卡內基梅隆大學計算機科學終生副教授,他把算法公開在了自己博客上。
好了,以上便是關于比特幣挖礦算法的詳細內容。總的來說,其實在比特幣的網絡中,是對挖礦的難度做出了標識的,但是因為比特幣的挖礦所需占用的儲存空間比較大,因此比特幣的挖礦使用了一種縮小的算法。此外,礦機挖礦的時候還會發生很長的時間找不著符合條件的哈希值的現象,如果找不到哈希值的話,是不能打包區塊的,礦工也就沒有盈利,這明顯對礦工是非常不友好的,但是如果挖出的話,如同中彩票一樣,會獲得十分豐厚的收益。