我們看到大型職業化挖掘中心是如何接管了比特幣的挖掘工作,我們也看到比特幣挖掘與歷史上的淘金熱有多麼類似。時至今日,金礦開採一直被環保問題所困擾,比特幣挖礦雖然還沒有達到那個程度,但它已經開始消耗大量能源,這已經成為熱門話題。本節中,我們將著重討論比特幣挖礦的能源消耗問題,以及其對貨幣系統和地球生態的影響。
熱力學限制
根據熱力學裡的藍道爾原理(Landauer\'s principle,藍道爾是前蘇聯20世紀60年代天才物理學家),任何一個不可逆轉的計算都會消耗一定的能源,邏輯上來說,這種計算也可以被認為是一種信息丟失的過程。藍道爾原理特別指出,任何移位運算都會消耗一定量(k Tln 2)的焦耳,其中k代表玻爾茲曼常數(Boltzmann constant,大概等於1.38×10-23J/K),T代表芯片以開爾文為單位的溫度,ln 2代表2的自然對數,大約等於0.69。算下來每一個單位數據的運算會消耗一點點熱量,這從基礎物理學原理上提供了一個能源最低消耗下限。
這裡我們不做進一步推導,大概的意思就是每進行一個不可逆的數位運算都會消耗一個最小量的焦耳,能源是永遠不會被摧毀的,只會從一種形式轉變成另外一種形式,在計算中所消耗的能源大多數都是從高等級的電能轉換過來的,然後被轉換成可以在環境中最終消失的熱能。
作為一種密碼學中的哈希函數,SHA-256就是一個不可逆的運算,我們可以回憶一下第1章裡所說的,不可逆轉是作為密碼學哈希函數的一個基本要求,既然不可逆運算需要消耗能源,那麼SHA-256作為比特幣挖礦的基本要素也是不可逆的,那麼比特幣的挖礦過程必定會消耗能源。藍道爾原理中描述的能源消耗下限要遠低於實際挖礦過程所消耗的電能,雖然我們目前無法使計算的能源消耗達到這個熱力學原理中的最優消耗,但即使我們做到了,比特幣挖礦也是要消耗能源的。
比特幣挖礦是如何消耗能源的?這個消耗過程分三個部分,其中有些可能還不是很明顯:
1.內涵能源。首先,比特幣挖掘設備需要被生產出來,生產時所用的原材料就需要被物理開採出來,然後要把這些材料通過一系列的生產流程轉化為比特幣挖礦專用的ASIC,這兩個過程都需要消耗能源,這被稱為內涵能源。在收到那些礦機的時候,你已經消耗了巨大的能源——當然包括物流過程中產生的能耗——即使這時候你還沒有開啟這些礦機!
可喜的是,隨著越來越少的挖掘容量的出現,內涵能源的消耗就會降低。隨著越來越少的人會去購買新的ASIC礦機,這些礦機被淘汰的速度也會減慢,那麼相應的內涵能源也會在多年的挖礦中被攤銷。
2.電能。當礦機啟動開始挖礦時,它就會消耗電能。根據藍道爾原理,這一步肯定會消耗能源。隨著礦機越來越高效,所消耗的電能也隨之下降,但是根據藍道爾原理這個消耗不能降為0,電能消耗將會伴隨著礦工的挖礦生涯。
3.冷卻。比特幣礦機需要被冷卻,這是為了防止礦機出故障。如果在非常寒冷的環境中進行小規模的挖礦運營,冷卻成本會微不足道。但即使是在非常寒冷的環境中,一旦在一個很小的空間運行了足夠多的ASIC,還是需要承擔額外的冷卻成本去解決散熱問題。通常冷卻挖礦機的耗能形式也是利用電力。
大規模挖礦
內涵能源和電能的消耗(每單位挖礦工作完成)會隨著挖礦運營規模的增加而降低,設計和製造運行在大型數據中心的芯片本身單位成本會降低,同時由於不需要很多電源,你可以使得電力輸送更加有效。
當討論冷卻問題的時候卻恰恰相反,冷卻成本會隨著規模的增大而上升。如果要進行一個大規模的比特幣挖礦運營,需要在一個地方運行大量的礦機,那就意味著空間比較小不易於散熱。冷卻成本會隨著規模化而增加(每單位運算量),除非礦機運行的物理空間同等規模地增加。
能耗預估
整個比特幣系統到底需要耗費多少能源?當然,我們無法做到精確統計,因為這是一個去中心化的網絡,大量的礦機分散在各處,並且沒有正式記錄。但是有兩種基本方法可以對比特幣礦機所產生的能耗進行估算。根據2015年早期的比特幣價格,我們可以進行一個快速的簡單計算,我們必須強調一下,這個數字只是一個大概的估算,因為不管哪種方法,計算過程中所用的參數都是很難估計並且變化很快,這些結果只能是一個數量級上的估算。
自上而下
第一種是自上而下的方法。現在每一個區塊獎勵是25個比特幣,大約值6 500美元。也就是說,比特幣體系平均每秒鐘憑空產生11美元給礦工。
現在我們思考一個問題:如果礦工把所有的11美元都用在電費上,他們可以買到多少電?當然,礦工通常並不會把全部的收入都用於電費,這是用於計算電費的上限。電價在各地的差異非常大,我們可以用美國的工業電價,大約每千瓦時(kwh)10美分的價格來預估,也就是每百萬焦耳(megajoules,簡稱MJ)大概3美分。如果比特幣礦工把所有的每秒11美元收入都用來支付電費,他們可以購買每秒367百萬焦耳,消耗大概367 000千瓦時電力。
單位能耗和單位電力 國際單位制(SI)中,能耗的衡量單位是焦耳,電力的衡量單位是瓦特,1瓦特代表每秒鐘1焦耳。
自下而上
第二種是自下而上的方法,通過觀測每個區塊的難度,瞭解礦工計算的哈希數量,並以此來進行估計。假設所有的礦工都使用最高效的礦機,我們可以推導出一個最低電耗。
目前,最好的商業化礦機的功效數值差不多是3GH/s/W[1]。那就是,這樣的ASIC礦機每消耗1瓦特的電力,可以進行每秒30億次哈希函數運算。目前全網算力是350PH/s,也就是350 000 000GH/s。[2]根據這兩個參數計算,我們就可以知道目前基於這種礦機效率,每秒鐘全網的礦機需要消耗117MW的電力。當然這個數值還沒有包括所有冷卻需要消耗的能耗以及芯片本身的內涵能耗。因為只是做一個能耗的下限估計,這麼算是可行的。
結合上述兩種方法,可以推導出比特幣挖礦大概所耗電力,這是幾百萬瓦特(megawatt,簡稱MW)的數量級。
100萬瓦特究竟是多少?為了便於直觀理解,可以對比一下大型發電廠產生多少電力。世界上最大的發電廠之一,中國的三峽水電站的發電總量是10 000 MW,一個普通的大型水力發電廠的發電總量一般是1 000MW。世界上最大的核電站日本柏崎剎羽核電站(Kashiwazaki-Kariwa)的發電總量是7 000MW,而平均來說核電站的發電量為4 000MW,而火電電廠的發電總量一般為2 000MW。
根據我們的估算,整個比特幣網絡大概消耗了一個大型電廠總發電量的10%。雖然這個數字已經相當驚人,但是和地球上其他的用電「大戶」比起來,這個還算是小的。
比特幣挖礦在浪費能源嗎
比特幣這種「浪費」能源的形式經常被人詬病,因為SHA-256的運算沒有其他任何用處。但是我們必須認識到任何一種支付系統都需要能源和電力的消耗。就拿傳統的貨幣來說,紙幣印刷、ATM機器的運行、硬幣分類機器、點鈔機、支付服務系統以及運送現鈔和金條的武裝押運車,無一不在消耗各種能源。你也可以一樣說這些能源的消耗除了維護整個貨幣體系之外,也沒有任何其他用處。所以,如果我們認可比特幣作為一個有用的貨幣體系,那麼支持比特幣體系的能耗就不能認為是浪費。
當然,如果我們可以用更加節省能源的解謎算法來代替現在的比特幣挖礦,同時確保貨幣的安全性,那自然更好。我們將在第8章討論這個問題,然而我們並不知道這種可能性是否存在。
能源的循環使用
另一種使比特幣更加環保的主意是,把挖礦過程中產生的熱能進行二次利用,而不是讓熱能無謂地耗散在空氣中。這種收集計算機運算所產生的熱能的模式被稱為「數據火爐」(data furnace)。這個想法的原理是使比特幣礦機挖礦產生的熱能經過一種特殊供暖裝置的轉換,用來進行家庭供熱,而不需要傳統的電取暖器。這部分熱能供給就成了比特幣挖礦的副產品。這麼做的效率其實並不比購買一個傳統的電取暖器差。也許對於家庭消費者來說,使用一個「數據火爐」並不會比將供暖設備連上網絡和電源插座更複雜。
這種方案也有一些問題。雖然礦機發熱的效率和電取暖器差不多,但是它們本身比用天然氣供暖的效率差很多。另外如果在夏天每個人都把礦機關閉(至少在北半球),那麼比特幣的全網算力將會伴隨人類取暖需求而產生季節性變動。如果數據火爐方案真的推廣開來,將會給比特幣的共識機制帶來很有有趣的影響。
礦機的所有權也不明確。如果買了比特幣數據火爐用於取暖,你是否擁有挖礦所獲得的收入呢?還是出售設備的公司獲取這部分收入?大多數人對比特幣挖礦完全不感興趣——有可能永遠沒興趣——所以由出售這些設備的公司來獲取這部分挖礦收入更合理。這也就意味著取暖器會以略微虧損的價格出售。這樣一來,一些有創造性的用戶可能會在購買了這些取暖器之後,對設備進行改造以使得他們自己可以獲取這部分挖礦收入。這可能會引發令人難堪的數據所有權管理之爭。
將電力轉換成現金
長遠來看,比特幣產生的另一個問題是:它可以最有效率地把電力轉換成現金。想像一下,如果比特幣ASIC礦機是一個很容易購買到的商品,並且主要的挖礦成本是電力,這便意味著,提供免費的或低成本的電力將會面臨被濫用的風險。
在很多國家,政府都有用電補貼,特別是對工業用電進行補貼。這麼做的原因是政府希望吸引工業投資留在本國。但是由於比特幣提供了一種很好地把電力轉換為現金的途徑,這可能使得政府要重新考慮用電補貼的模式,以防它們補貼的電力全部被轉換成了比特幣。政府用電補貼的意圖是,希望可以吸引那些對國家經濟和人民就業有幫助的企業,但是補貼比特幣挖礦也許並不能對這兩點有所幫助。
更大的問題是全球有數以億計的「免費」插座,分佈在家、學校、酒店、機場以及辦公大樓等。有人可能把挖礦設備接在這些地方挖礦,因為別人會為此支付電費。事實上,他們還可能會用過時的設備而壓根不考慮升級,反正電費又不是他們支付。在全世界範圍內監控這些用於比特幣挖礦的「偷電」行為,是一個異常艱巨的任務。
[1] GH為gigahash,s為second,w為watt。——譯者注
[2] 截至本書翻譯的時間,全網算力已經增長到了1 200PH/s。——譯者注