Friday, March 2, 2018

比特幣的算力都用來幹什麼了 真相可能有點殘酷

第1頁:首先要搞清楚為什麼要有比特幣
  幾乎每一個接觸比特幣的朋友,都會有這樣一個疑問:挖比特幣用的算力到底都用來幹什麼了?即使是專業的“礦工”,也很難回答這個問題。甚至有人說挖比特幣的算力用到了科研上了,比如尋找下一個“地球”、解密DNA等。對於不懂比特幣的人而言,這樣的解釋似乎也有些道理。但事實並不是這樣。

  要想解決這個問題,需要對比特幣有一定了解。筆者推薦大家看中本聰的論文《比特幣:一種點對點的電子現金系統》,這是比特幣的源頭。論文涉及到為什麼需要比特幣、比特幣如何產生等知識。也正是這篇論文,能夠解答“挖比特幣用的算力到底都用來幹什麼”這個問題。

  要想回答這個問題,我們需要從為什麼要有比特幣開始說。為了避免讀者覺得麻煩,筆者將答案公佈於此:其實這個問題的答案並不是眾人想像的“服務社會、服務科學”,而是服務比特幣網絡,保證比特幣網絡的安全。

  比特幣的目的是要去掉交易中的中間環節,而這個中間環節就是金融機構。為了達到這個目的,比特幣需要建立一套證明體系。為什麼呢?舉個例子,A借錢給B,中間過程需要簽字條、公證等其他證明方式,證明A確實把錢借給了B。如果沒有證明,B可以矢口否認,A只能認栽。在傳統的交易過程中,金融機構起到了證明的作用。為什麼是金融機構,因為他有公信力,以信用作背書。

比特幣網絡算力變化趨勢

  那麼比特幣怎麼證明A把錢借給了B呢?比特幣的思路是,把這個消息記在賬本上,然後全人類都能看到這個賬本,這樣所有的人都知道A把錢借給了B,借了多少,什麼時候借的,這樣B就無法矢口否認這個事實了。

  把一個交易信息讓所有人都知道,這就是比特幣的證明體系。但又出現了一個問題,這個問題就是“雙重支付”。

第2頁:算力是為了維護比特幣網絡的安全

  在解釋之前需要說明一下,在比特幣網絡裡,你有多少錢,不是你說了算,而是大家說了算,每個人都是公證人。

  雙重支付就是一筆錢花了兩次,這種情況在紙幣上是不可能發生的,但由於比特幣並不是實物,只是“記賬本”,中間沒有實質物質進行交換,所以可以發生。繼續舉例子:A用1000買了B的一個東西,B記在一個賬本上;同時A用相同的1000買了C的東西,C記在一個賬本上。這時候B睡覺了,而C把剛才記的帳拿給大家看,B睡醒了才拿給大家看。

  在B和C發貨之前,這1000是屬於B的還是屬於C的?為了解決這個問題,比特幣網絡讓交易不可逆,也就是不能退款。不可逆的特點讓A的這兩個1000交易只被承認一個。

  首先,比特幣將所有的交易通過隨機散列加上時間戳,讓交易有先後順序,然後交易融入到基於隨機散列的工作量證明所形成的鏈條中,這樣形成的交易就無法更改。翻譯成人話就是:B和C的賬本拿給大家看之後,還會有人繼續在這個賬本上記賬。假如後面記賬的大部分人都選擇在B的賬本上記賬,那麼大家就會把B的賬本視為正確的,而B的賬本上記著A用1000買了B的東西,這樣A的1000就屬於B,C記的就不被承認了,B發貨給A就可以了。


基於隨機散列的工作量證明的鏈條

  在這個過程中就需要算力,算力是為了保證區塊的信息不可更改。怎麼實現的呢?工作量證明基於隨機散列,然後形成鏈條。這個鏈條有個特點,你想開頭的話,就需要求解,求解就需要算力。而且這個求解的難度是呈現指數級增長的。只要你先求出這個解,你就獲得比特幣獎勵。

  但如果你想修改已經出現的區塊,那就必須選擇鏈條最長的那個,然後從頭開始求解。這樣你修改的鏈條才會被認為是正確的(最長的鏈條視為正確的鏈條,不理解的話可以聯繫前面提到的B的賬本)。但這個最長的鏈條上有著全網下最大的工作量,全部求解的話需要耗費巨大的算力。

  而這樣做是得不償失的,因為你耗費這麼多算力去修改得到的結果,不如你拿這些算力去求解的收益高。這樣就保證了不會有人去更改之前區塊的信息,區塊的信息自然就實現不可更改了。這個“不可更改”是可以更改的,只是沒有人傻到會這麼做而已。

  也就是說,挖比特幣的算力實質上是一直在求解,這樣就能保證最長的鏈條擁有全網最大的工作量,從而不會被更改。這樣也就實現了比特幣系統是堅固的,是不會被人攻擊的。


第3頁:這種做法是否有意義

  那麼這樣做有意義嗎?

  我們先看這些算力。目前比特幣的全網算力是非常高的,據說已經比全球前100名超算的算力總和都要強。這個觀點有一定的誤導性,比特幣全網的算力只要是求一個算法,即SHA256算法的HASH值,這是比特幣網絡的工作量證明機制的要求。也就是說,比特幣全網在求解SHA256算法的HASH值的算力上是非常強大。

  那讓比特幣網絡的算力去求解其他的算法呢?整個比特幣網絡的算力可能還沒有你手上電腦的運算效率高。這是因為,比特幣網絡的算力太過於專業了,只是求解SHA256算法的HASH值,它做不了其他工作。這也是為什麼,即使你用GTX1080Ti去挖礦,也不如游戲性能更差的挖礦機的快。

比特幣是不是貨幣這個問題的答案很重要

  而且你就算用比特幣網絡的算力去挖基於其他算法的幣,效率也非常低下。

  也就是說,比特幣網絡的算力是否有價值,最終還要看大家承不承認比特幣是不是貨幣。如果大家承認比特幣,那麼比特幣網絡將是全世界最安全的金融系統。從這個角度來看,比特幣網絡的算力實在是太有價值了!

  如果比特幣沒有被公認為貨幣的話,那麼比特幣網絡算力的價值非常小,小到微乎其微,比特幣的價格完全是被炒上去的,充滿了泡沫。

  以上兩個結論都是在比特幣被定性之後所得出來的,當下比特幣到底是不是貨幣還無法定性。但目前比特幣並沒有成為公認的貨幣,所以現在看來,比特幣網絡算力的最大價值就是,能挖出比特幣賣錢,這樣的比特幣更像是商品。

  最後回答一下剛開始的問題,比特幣的算力都用來幹什麼了?往大的說是維護比特幣網絡的安全,往小的說就是在算數;耗費這麼多人力物力實現的算力有意義嗎?不好說;那為什麼還有那麼多人在挖礦?因為能賺錢啊!