轉貼  維基百科,自由的百科全書 https://zh.wikipedia.org/wiki/%E6%8C%96%E7%A4%A6_(%E6%AF%94%E7%89%B9%E5%B9%A3)

挖礦英語:Mining),是獲取比特幣的勘探方式的暱稱。由於其工作原理與開採礦物十分相似,因而得名。此外,進行挖礦工作的比特幣勘探者也被稱為礦工

工作原理

 

比特幣礦工通過解決具有一定工作量的工作量證明機制問題,來管理比特幣網路 —— 確認交易並且防止雙重支付

中本聰在他的論文中闡述說:

「在沒有中央權威存在的條件下,既鼓勵礦工支援比特幣網路,又讓比特幣的貨幣流通體系也有了最初的貨幣注入源頭。」

中本聰把通過消耗CPU的電力和時間來產生比特幣,比喻成金礦消耗資源將黃金注入經濟。

比特幣的挖礦與節點軟體主要是透過對等網路數位簽章互動式證明系統來進行發起零知識證明與驗證交易。

每一個網路節點向網路進行廣播交易,這些廣播出來的交易在經過礦工(在網路線上的電腦)的驗證後,礦工用自己的工作證明結果來表達確認,確認後的交易會被打包到資料塊中,資料塊會串起來形成連續的資料塊鏈。中本聰本人設計了第一版的比特幣挖礦程式,[1]這一程式隨後被開發為廣泛使用的第一代挖礦軟體Bitcoin,這一代軟體從2009年到2010年中旬都比較流行。

每一個比特幣的節點都會收集所有尚未確認的交易,並將其歸集到一個資料塊中,礦工節點會附加一個隨機調整數,並計算前一個資料塊的SHA-256雜湊運算值。挖礦節點不斷重複進行嘗試,直到它找到的隨機調整數使得產生的雜湊值低於某個特定的目標。

由於雜湊運算是不可逆的,尋找到符合要求的隨機調整數非常困難,需要一個可以預計總次數的不斷試錯過程。這時,工作量證明機制就發揮作用了。當一個節點找到了符合要求的解,那麼它就可以向全網廣播自己的結果。其他節點就可以接收這個新解出來的資料塊,並檢驗其是否符合規則。如果其他節點通過計算雜湊值發現確實滿足要求(比特幣要求的運算目標),那麼該資料塊有效,其他的節點就會接受該資料塊。

挖礦礦產[編輯]

除了將接收到的交易資訊打包到資料塊,每個資料塊都會允許發行一定數量的新比特幣,用來激勵成功發現資料塊的礦工。

比特幣系統按照預定的貨幣增發節奏決定發行的比特幣數量。如果其他支付交易有給手續費的,那麼礦工還會獲得手續費。由於礦工可以自行決定是否將某一個交易資料打包到資料塊中,因此礦工有可能優先選擇手續費較高的交易來打包。

資料塊產生速率的預期為每10分鐘一個,但每個資料塊中,新發行的比特幣不能超過50個,而這個數字每產出21萬個區塊就會減半,大約每4年就會發生一次。

因此,比特幣的總數量不會超過2100萬個。隨著新發行比特幣數量的下降,手續費將成為挖礦的主要動機。

那些在較早時期將電腦資源投入到比特幣挖礦活動中的用戶,相對於較晚加入的礦工而言,獲得比特幣容易得多。這樣設計的原因,主要是為了保證在比特幣的早期發展階段可以吸引足夠的計算力來處理資料塊。事實上,如果沒有人挖礦,比特幣的初期交易活動就無法處理,比特幣經濟也將停止運行。[2]

  • 2012年12月第一次減半
  • 第二次發生減半的實際時間是2016年7月9日 16:46:13 UTC[3][4],每個資料塊中新發行的比特幣目前為12.5個

挖礦難度[編輯]

為了使得資料塊產生的速度維持在大約每十分鐘一個,產生新資料塊的難度會定期調整。

如果資料塊產生的速度加快了,那麼就提高挖礦難度;如果資料塊產生速度變慢了,那麼就降低難度。比特幣系統在每隔2016個資料塊被產出後(約兩週的時間),會以最近這段時間的資料塊產生速度,自動重新計算接下來的2016個資料塊之挖礦難度。

而難度基本上就決定了一個有效的資料塊標頭(英語:Block Header)的 SHA-256 雜湊值應小於一定值,也就是說該雜湊值必須要恰好落在目標區間之內才算有效,當目標區間越小就意味著命中機率越低。

換句話說就是挖礦的難度越高。由於ASIC計算設備的爆炸式加入,目前挖礦難度呈現幾何級數的上升,目前平均每15天增加50%難度[來源請求],讓普通個人挖礦者的挖礦工作變得異常困難。

挖礦設備[編輯]

最早,比特幣礦工都是通過IntelAMDCPU產品來挖礦。但由於挖礦是運算密集型應用,且隨著挖礦人數與設備性能的不斷提升難度逐漸增加,現在使用CPU挖礦早已毫無收益甚至虧損。

截至2012年,從2013年第一季度後,礦工們逐漸開始採用GPUFPGA等挖礦設備[5]。同時,ASIC設備也在2013年中旬大量上市[5]

從2013年7月起,全網算力由於ASIC設備大量投入運營呈現直線上漲,以2013年7月的平均算力計算,所有CPU挖礦設備均已經無法產生正收益,而FPGA設備也接近無收益。2013年9月平均算力估算,現有的針對個人開發的小型ASIC挖礦設備在未來1-2個月內也接近無正收益。大量算力被 5THash/s 以上的集群式ASIC挖礦設備獨佔。個人挖礦由於沒有收益,幾乎被擠出挖礦群體。

礦池[編輯]

由於比特幣全網的運算水準在不斷的呈指數級別上漲,單個設備或少量的算力都無法在比特幣網路上獲取到比特幣網路提供的區塊獎勵。在全網算力提升到了一定程度後,過低的獲取獎勵的機率。促使一些「bitcointalk」上的極客開發出一種可以將少量算力合併聯合運作的方法,使用這種方式建立的網站便被稱作「礦池」(Mining Pool)

在此機制中,不論個人礦工所能使用的運算力多寡,只要是透過加入礦池來參與挖礦活動,無論是否有成功挖掘出有效資料塊,皆可經由對礦池的貢獻來獲得少量比特幣獎勵,亦即多人合作挖礦,獲得的比特幣獎勵也由多人依照貢獻度分享。

截止2017年11月,全球算力排名前五的比特幣礦池有:AntPool、BTC.com 、BTC.TOP、ViaBTC、F2Pool,目前全球約70%的算力在中國礦工手中[6]

手續費[編輯]

比特幣礦工會對大部分交易收取少量費用,其主要目的是防止有人大量發送無聊的小額交易,浪費網路資源。當前每筆交易的手續費大部分是฿ 0.0001/KB(0.0001btc/KB) ,實際上0.9.0以後的版本將默認手續費降為฿ 0.00001/KB (0.00001 btc/KB)[7]因為大部分交易占用的數據量都小於1千字節,所以一般情況下฿ 0.00001( 0.00001 btc/KB)的手續費就足夠了。同時,在將來比特幣區塊獎勵較少時,手續費將成為礦工收入的主要來源,比特幣的手續費會與該交易佔用的位元組數相關。

目前比特幣系統中手續費的計算標準並非強制性的,因此使用者也可以在交易進行時不給予任何手續費,但大多數礦工在組建資料塊時通常會優先考慮帶有較高手續費的交易,以便在挖礦成功時能獲得較高的報酬,因此無附帶任何手續費的交易,可能會需要等待較長的時間才能被處理並納入區塊鏈中。

此外,現在因為區塊容量上限 1MB 以及近期比特幣交易量大增的因素,手續費大幅上漲,而且等待交易被確認的時間也變長了許多。

礦池的結算方式[編輯]

目前礦池的結算方式主要有:PPLNS、PPS、FPPS、PROP、SOLO、P2P。

PPLNS模式[編輯]

PPLNS模式:(最純正的組隊挖礦)全稱Pay Per Last N Shares,意思是說「根據過去的N個股份來支付收益」,這意味著,所有的礦工一旦發現了一個區塊,大家將根據每個人自己貢獻的股份數量占比來分配區塊中的貨幣。

(share就是股份的意思)舉個例子:假設,張三、李四、王五,這三個人在同一個PPLNS礦池中挖礦,在過去的一段時間裡,張三貢獻了10個股份,李四貢獻3個,王五貢獻12個,加起來是25個股份,這時礦池發現了一個區塊,區塊中含有25個比特幣,那麼,張三就會分到10/25個區塊的獎勵,也就是10個比特幣,而李四獲得3個,王五獲得12個。

在PPLNS模式下,運氣成份非常重要,如果礦池一天能夠發現很多個區塊,那麼大家的分紅時間會非常快,如果礦池一天下來都沒有能夠發現區塊,那麼大家當天也就沒有任何收益,收益要等到你參加的區塊被完全挖掘出來才能得到分配。

同時,由於PPLNS下,具有一定的滯後慣性,你的挖礦收益會有一定的延遲,比如說,你加入到一個新的PPLNS礦池,這個時候你會發現前面幾個小時的收益比較低,那是因為別人在這個礦池裡已經貢獻了很多個share了,你是新來的,你的貢獻還很少,所以分紅時你的收益都是比較低的。隨著時間的推移,該結算的也結算了,大家又開始進行了新一輪的運算時,你就回到和別人一樣的水平了。同樣道理,若你離開了PPLNS礦池不再挖礦,你貢獻的share還在,在此後的一段時間裡,你依然會得到分紅收益,直到你的share被結算完畢。

PPS模式[編輯]

PPS模式:Pay-Per-Share方式---該方式為立即為每一個share支付報酬。該支出來源於礦池現有的比特幣資金,因此可以立即取現,而不用等待區塊生成完畢或者確認。這樣可以避免礦池運營者幕後操縱。這種方法減少了礦工的風險,但將風險轉移給了礦池的運營者。運營者可以收取手續費來彌補這些風險可能造成的損失。為了解決PPLNS那種有時候收益很高,有時候沒有收益的情況,PPS採用了新的算法。PPS根據你的算力在礦池中的占比,並估算了礦池每天可以獲得的礦產,給你每天基本固定的收益。

這麼舉例就很好理解:假設你的算力是100M,而整個礦池的算力是10000M,那麼你就占據了礦池算力的1%,然後,假設礦池根據當前的難度和全球總算力,估算出礦池一天大約能夠挖到4個區塊,假定數量為100個,那麼,礦池會為你每天支付全礦池1%,也就是1個幣的報酬,這樣,即使礦池今天只挖到了1個區塊,你也是獲得1個幣(礦池虧本),如果礦池超額發揮,挖到了10個區塊,你還是只有1個比特幣的收益(礦池大賺)。

FPPS模式[編輯]

FPPS模式:即「Full PPS」(完全PPS),對包括交易費在內的全部區塊收益進行分配。相比傳統的PPS結算模式(不分配交易費,僅把12.5BTC分發給礦工)約可提升5%-15%左右收益。目前礦池所挖到的每個區塊獎勵=12.5BTC+區塊打包交易費。由於比特幣越來越多人使用,記錄交易的區塊大小有限,全網持續擁堵,推高了交易費,使得交易費在區塊獎勵中占比增加。也就是說,交易費越高,選擇這種結算模式的礦工,收益將越高。該模式有BTC.com礦池首創。

PROP模式[編輯]

PROP模式:比特幣區塊的產生是:由礦池發現區塊後向全網絡廣播,經過120次確認後,才會產生區塊。PPS模式是:礦工每貢獻一點速度,礦池就向礦工支付相應的比特幣,礦池的幣還是要來自真正的區塊產生,只不過在真正的區塊產生之前,礦池就提前支付給了礦工。PROP模式是:礦池經過120次確認產生真正區塊後,會把比特幣按每個礦工的貢獻分配給礦工。

PPS模式是由礦池提前支付的,所以只要礦工的速度穩定,每天得到的比特幣數量就穩定。PROP模式是要經過120次確認,礦池才向礦工支付,由於礦池產生真正區塊是由機率決定的,所以礦工每天得到的比特幣數量會不一樣。在PROP模式,即使暫時沒有產生真正的區塊,以後產生出來了真正的區塊,還是會根據挖這個區塊的貢獻,分配給每個礦工。

SOLO模式[編輯]

SOLO模式:就是自己單槍匹馬的自己挖,自己計算區塊,去碰撞HASH值,碰撞到了,那麼此次塊區獎勵全部歸你個人所有,同理,如果你一天裡沒有爆快,那麼你一天就是顆粒無收。SOLO模式目前都是算力比較大的用戶選擇,因為要和其他人搶,如果算力太低,很難搶得到。

P2P模式[編輯]

P2P模式:是繼承p2pool開源項目而推出的挖礦模式,其為礦工提供了一種點對點的挖礦方式,防止算力集中在 某個中心化的礦池而對比特幣網絡進行51%攻擊。目前p2p網絡情況不怎麼好,所以已經基本不用了。

結算方式的選擇[編輯]

如果你是普通的挖礦者,只想有穩定挖礦收益,那麼可以考慮 PPS結算方式。如果你是個小賭徒,喜歡中獎的感覺,可以考慮 PPLNS模式,手續費更少,但收益如何,就看運氣。如果你想要穩定收益的基礎上,又想要依靠運氣獲得更多的收益,可以考慮FPPS。如果你是大算力用戶,並且對自己的運氣很有信心,那麼可選擇自己SOLO,如果挖到了全是自己的,如果沒挖到就什麼也沒有,適合大算力礦場的專業級礦工。算力挺多的用戶也可以去礦池申請做VIP用戶,礦池技術實力過硬,對於大算力用戶會給出額外的費率優惠,省心又省力。

礦工挖礦不是只挖一天兩天,討論每種結算模式每天挖出的比特幣數量沒有太大意義。礦工挖礦至少都是挖幾個月才能回本,一挖就是幾年,有些礦工喜歡在一個礦池穩定挖礦獲得穩定收益,有些礦工選擇拼運氣獲得收益,也有一些礦工喜歡在各個礦池間來回切換,追求利益最大化,但頻繁來回切換也會對挖礦的礦機造成損耗。具體選擇哪種結算模式,都需要礦工去切身體驗,適合自己的才是最好的。

arrow
arrow
    全站熱搜

    rorococo007 發表在 痞客邦 留言(0) 人氣()