挖礦(英語:Mining),是獲取比特幣的勘探方式的暱稱。
由於其工作原理與開採礦物十分相似,因而得名。
此外,進行挖礦工作的比特幣勘探者,也被稱為礦工。
比特幣礦工,通過解決具有一定工作量的工作量,證明機制問題,來管理比特幣網路——確認交易,並且防止雙重支付。
【中本聰(英語:Satoshi Nakamoto),自稱日裔美國人。其名字沒有官方漢字寫法,有些日本媒體寫為中本哲史,此人是比特幣協定及其相關軟體Bitcoin-Qt的創造者,但真實身分未知。中本聰於2008年發表了一篇名為《比特幣:一種對等式的電子現金系統》(Bitcoin: A Peer-to-Peer Electronic Cash System)的論文,描述了一種被他稱為「比特幣」的電子貨幣及其演算法。2009年,他發布了首個比特幣軟體,並正式啟動了比特幣金融系統。2010年,他逐漸淡出並將專案移交給比特幣社群的其他成員。中本聰據信持有約一百萬個比特幣。這些比特幣在2013年底時的價值超過十億美元。從發表論文以來,中本聰的真實身分長期不為外界所知,維基解密創始人朱利安•阿桑奇宣稱中本聰是一位密碼龐克(Cypherpunk)。另外,有人稱「中本聰是一名無政府主義者,他的初衷並不希望數位加密貨幣被某國政府或中央銀行控制,而是希望其成為全球自由流動、不受政府監管和控制的貨幣。」】
中本聰 在他的論文中闡述說:
“在沒有中央權威存在的條件下,既鼓勵礦工支援比特幣網路,又讓比特幣的貨幣流通體系也有了最初的貨幣注入源頭。”
中本聰把通過消耗CPU的電力和時間來產生比特幣,比喻成金礦消耗資源將黃金注入經濟。比特幣的挖礦與節點軟體主要是透過對等網路、數位簽章、互動式證明系統,來進行發起零知識證明與驗證交易。
每一個網路節點向網路進行廣播交易,這些廣播出來的交易在經過礦工(在網路上的電腦)驗證後,礦工可使用自己的工作證明結果來表達確認,確認後的交易會被打包到資料塊中,資料塊會串起來形成連續的資料塊鏈。中本聰本人設計了第一版的比特幣挖礦程式,這一程式隨後被開發為廣泛使用的第一代挖礦軟體Bitcoin,這一代軟體從2009年到2010年中旬都比較流行。
每一個比特幣的節點,都會收集所有尚未確認的交易,並將其歸集到一個資料塊中,礦工節點,會附加一個隨機調整數,並計算前一個資料塊的SHA-256雜湊運算值。挖礦節點,不斷重複進行嘗試,直到它找到的隨機調整數,使得產生的雜湊值低於某個特定的目標。
由於雜湊運算是不可逆的,尋找到符合要求的隨機調整數非常困難,需要一個可以預計總次數的不斷試錯過程。這時,工作量證明機制就發揮作用了。當一個節點找到了符合要求的解,那麼它就可以向全網廣播自己的結果。其他節點就可以接收這個新解出來的資料塊,並檢驗其是否符合規則。如果其他節點通過計算雜湊值發現確實滿足要求(比特幣要求的運算目標),那麼該資料塊有效,其他的節點就會接受該資料塊。
除了將接收到的交易資訊打包到區塊,每個區塊都會允許「發行」一定數量的新比特幣,用來激勵成功發現新區塊的礦工。
一個礦機陣列,現在以商用個人電腦挖礦已經沒可能利潤大於成本,必須以特製專用晶片大量串聯後才能獲利。
比特幣系統,按照預定的貨幣增發節奏,決定發行的比特幣數量。如果其他支付交易有給手續費的,那麼礦工還會獲得手續費。由於礦工可以自行決定,是否將某一個交易資訊打包到區塊中,因此,礦工有可能優先選擇手續費較高的交易來打包。
區塊產生速率的預期,為每10分鐘一個,但每個資料塊中,新發行的比特幣,不能超過6.25個,而這個數字每產出21萬個區塊就會減半,大約每4年就會發生一次,2020年5月13日比特幣第三次減半,減半後現在的爆塊獎勵為6.25個。因此,比特幣的總數量,不會超過2100萬個。隨著新發行比特幣數量的下降,手續費將成為挖礦的主要動機。
那些在較早時期,將電腦資源投入到比特幣挖礦活動中的使用者,相對於較晚加入的礦工而言,獲得比特幣容易得多。這樣設計的原因,主要是為了保證在比特幣的早期發展階段,可以吸引足夠的計算力來處理資料塊。事實上,如果沒人挖礦,比特幣的初期交易活動就無法處理,比特幣經濟也將停止運行。
2012年12月第一次減半
第二次發生減半的實際時間,是2016年7月9日 16:46:13 UTC,每個區塊中新發行的比特幣目前為12.5個。
2020年5月13日第三次減半,每個區塊中新發行的比特幣目前為6.25個
為了使得資料塊產生的速度,維持在大約每十分鐘一個,產生新資料塊的難度會定期調整。
如果資料塊產生的速度加快了,那麼就提高挖礦難度;如果資料塊產生速度變慢了,那麼就降低難度。比特幣系統在每隔2016個資料塊被產出後(約兩週的時間),會以最近這段時間的資料塊產生速度,自動重新計算接下來的2016個資料塊之挖礦難度。
而難度基本上,就決定了一個有效的資料塊標頭(英語:Block Header),的SHA-256,雜湊值應小於一定值,也就是說該雜湊值,必須要恰好落在目標區間之內才算有效,當目標區間越小,就意味著命中機率越低。換句話說,就是挖礦的難度越高。
由於ASIC計算裝置的爆炸式加入,目前挖礦難度,呈現幾何級數的上升,目前年均難度增長約為3%,讓普通個人挖礦者的挖礦工作,變得異常困難。
最早,比特幣礦工都是通過Intel或AMD的CPU產品來挖礦。但由於挖礦,是運算密集型應用,且隨著挖礦人數與裝置效能的不斷提升,難度逐漸增加,現在使用CPU挖礦早已毫無收益甚至虧損。
截至2012年,從2013年第一季度後,礦工逐漸開始採用GPU或FPGA等挖礦裝置。同時,ASIC裝置也在2013年中旬大量上市。
從2013年7月起,全網算力由於ASIC裝置大量投入,運營呈現直線上漲,以2013年7月的平均算力計算,所有CPU挖礦裝置,均已經無法產生正收益,而FPGA裝置也接近無收益。2013年9月平均算力估算,現有的針對個人開發的小型ASIC挖礦裝置,在未來1-2個月內也接近無正收益。大量算力被5 THash/s以上的叢集式ASIC挖礦裝置獨佔。個人挖礦由於沒有收益,幾乎被擠出挖礦群體。有一些比特幣礦工,則集資在某些可取得低價電力的地方興建機房,安裝大批挖礦裝置進行挖礦。
部份比特幣礦工,為省下自己挖礦的成本,將挖礦程式製作成惡意程式,在網路上感染其他人的電腦,來替自己挖礦。
由於比特幣全網的運算水準,在不斷的呈指數級別上漲,單個裝置或少量的算力,都無法在比特幣網路上,獲取到比特幣網路提供的區塊獎勵。在全網算力提升到了一定程度後,過低的獲取獎勵的概率。促使一些「bitcointalk」上的極客,開發出一種可以將少量算力合併聯合運作的方法,使用這種方式建立的網站,便被稱作「礦池」(Mining Pool)。
在此機制中,不論個人礦工所能使用的運算力多寡,只要是透過加入礦池,來參與挖礦活動,無論是否有成功挖掘出有效資料塊,皆可經由對礦池的貢獻,來獲得少量比特幣獎勵,亦即多人合作挖礦,獲得的比特幣獎勵,也由多人依照貢獻度分享。
截止2020年5月,全球算力排名前五的比特幣礦池有:F2Pool、Poolin、BTC.com、AntPool、58COIN&1THash,目前全球約70%的算力,在中國礦工手中。
比特幣礦工,會對大部分交易收取少量費用,其主要目的,是防止有人大量發送無聊的小額交易,浪費網路資源。當前每筆交易的手續費,大部分是฿ 0.0001/KB (即0.0001btc/KB) ,實際上0.9.0版本之後,將預設手續費降為฿ 0.00001/KB (即0.00001 btc/KB)。因為大部分交易占用的資料量,都小於1千位元組,所以一般情況下฿ 0.00001(即0.00001 btc/KB)的手續費就足夠了。同時,在將來比特幣區塊獎勵較少時,手續費將成為礦工收入的主要來源,比特幣的手續費,會與該交易佔用的位元組數相關。
目前,比特幣系統中手續費的計算標準,並非強制性的,因此,使用者也可以在交易進行時,不給予任何手續費,但大多數礦工,在組建資料塊時,通常會優先考慮帶有較高手續費的交易,以便在挖礦成功時,能獲得較高的報酬,因此,無附帶任何手續費的交易,可能會需要等待較長的時間,才能被處理並納入區塊鏈中。
此外,現在因為區塊容量上限「1MB」,以及近期比特幣交易量大增的因素,手續費大幅上漲,而且等待交易被確認的時間,也變長了許多。
原文出處 維基百科