愚翁隨記

自言自語, 自娛自樂。   
正文

來,咱們也聊一聊比特幣

(2017-06-14 21:30:10) 下一個

一個沒注意,比特幣又一次熱得一塌湖塗了,一個比特幣的價格從幾年前最初的幾美分,飆到了725日最高達到兩千七百多美元。 隨著比特幣價格近期高歌猛進,網上關於比特幣討論又熱鬧起來,連微信群裏不知長啥樣的美女們也開始打聽比特幣了最了不得的是據說在這波比特幣熱潮中,衝在最前頭的主力軍居然就是傳說中神勇無敵,所向披靡的中國大媽俺四處轉悠轉悠瞜了兩圈,發現盡管比特幣這麽熱,中國大媽們這麽生猛,其實真正明白比特幣是個什麽東東的人還真不是太多。要說理解比特幣這個東西,說難確實也難,說不難也真沒那麽難真想了解的話,不僅能找到很多書,而且網上隨便一搜,都能找出不少介紹比特幣東西,再順藤摸瓜往前走走,成為一個專家也不是啥不可能的事.那麽為什麽很多人,包括一些濃眉大眼,常在電視節目中出頭露麵的大咖也說不清楚呢道理很明顯,現代人普遍時間緊,任務重,沒時間讀書,隻喜歡讀微信文章這類的東西就拿我們吃瓜的小夥伴們來說.肩負著圍觀各種熱鬧的重任,未必能有時間研究這個問題.但不明白這個東東吧,眼前這大好的熱鬧又看不出個門道,著實有點可惜啊,瞅著這個情況,我就有那麽一點點於心不忍了我就琢磨看看能不能花點我那沒啥可寶貴的時間,寫個適合微信微博上閱讀的東西盡量把話說的接地氣點聊一聊比特幣這個東東其實小夥伴們自己上的話肯定比我整得強啊隻是小夥伴們都是喜歡幣,卻未必有這份耐心,所以這髒話累活就由我來幹好了.我這也是和自己過不去啊,寫長了深了肯定沒人看,寫短了淺了又說不明白不過說不明白也請大家夥多多擔待,不懂裝懂嘛,裝得不象是正常的,裝得象就算超水平發揮了.  
 
好吧,讓我來試試.  
 
關於比特幣的曆史,我看往前追溯到哈耶克就行了,這老頭是個經濟學大牛啊,連諾貝爾獎都拿過的,號稱“20世紀最傑出之一的自由主義經濟學家和思想家",他晚年出版了一本書,叫《貨幣的非國家化》.這本書真是讓人腦洞大開啊.為什麽這麽說呢?老百姓都知道,國家家才有權利發行貨幣,這是天經地義的.但這位可愛的老頭兒就是不服氣,他認為既然在一般商品市場中,自由競爭是最有效率的,那為什麽不能在貨幣領域引入競爭機製呢?換句話說,誰規定貨幣一定得由國家中央銀行發行?憑什麽私人不能發行貨幣呢?在私人貨幣自由競爭的過程中,那些流動性最好的,使用最方便的,製作成本最低的,最能抗通脹的最優秀的貨幣,就會脫穎而出,從而大大降低貨幣的使用成本,提高貨幣本身的使用效率.  

哈耶克的這套理論為比特幣的誕生奠定了理論基礎,《貨幣的非國家化》這本書也被今天的比特幣粉視為聖經。 不過哈耶克的理論老百姓還是沒當回事兒啊,腦洞開一會兒又慢慢閉上了各國央行也紛紛癟癟嘴搖搖頭,對老百姓說,別聽他的,這老頭兒說的是瘋話.

然而,還是架不住有明白人啊另一位經濟學大牛,米爾頓·弗裏德曼(Milton Friedman提出了一個非常大膽的構想:有沒有可能通過計算機程序設置一套自動化裝置,讓程序自己來發行貨幣,這就可以避免各國央行人為的隨意開動印鈔機,引發通脹問題。我看弗裏德曼的言外呢,有這麽點意思,私人印錢這事兒,要殺頭的,沒人敢印咱讓機器去印

然後,一位的數學家、密碼學家,計算機天才,化名叫中本聰’Satoshi Nakamoto)的大牛,讀懂了哈耶克的神思,領會了弗裏德曼的妙想. 200811,中本聰在metzdowd.com網站的密碼學郵件列表中發表了一篇論文,題為《比特幣:一種點對點式的電子現金係統》(Bitcoin: A Peer-to-Peer Electronic Cash System,在這篇堪稱比特幣宣言的白皮書中,中本聰闡述了,他為什麽要發明比特幣,比特幣係統應該尊受的協議和規則,以及實現這些協議和規則的技術和方法.有興趣的小夥伴可也在(http://www.8btc.com/wiki/bitcoin-a-peer-to-peer-electronic-cash-system)找到中本聰比特幣白皮書的中譯版.隨後中本聰獨立開發了一款軟件, 200913,挖出第一筆50個比特幣,建立比特幣賬本的第0個區塊,所謂創世區塊,然後2010年底就從因特網上徹底消失了。
 

哈耶克提出貨幣可以非國家化,弗裏德曼構想讓機器發行貨幣中本聰甚至在觀念上也比他們走得更遠.他的比特幣不僅是非國家化的,是機器發行的,而且是在多個層麵上是分布式的,去中心化的,這些層麵包括貨幣的發行,整個係統的賬戶管理等。

而且,更為神奇的是,他真的把比特幣給出來了

比特幣之父取了個貌似日本人的化名中本聰(Satoshi Nakamoto)那麽這個日本名字的背後,到底是誰呢是一個人,還是一個組織雖然經過好事者和媒體多年的調查,至今仍然是沒有定論。幾乎被認定就是中本聰的,是澳大利亞人克雷格斯蒂文賴特(Craig  Steven Wright),他自已也曾承認他就是中本聰,不過經多方查證,人們還是不能十分確定這個人真的就是發明比特幣的中本聰,比特幣之父,是迷一樣的存在.   
 
比較好玩的是,有種說法說比特幣是中國人發明的,中本聰就是中國人本來很聰明的意思.不管怎麽說,能在互聯網這麽發達,人肉技術這麽強的今天,發明比特幣的同時又能成功的深藏功與名,真的是很厲害啊,而且,這裏麵能不能演義出吃瓜群眾喜聞樂見的陰謀論,大棋說,也是件可以觀察的事兒。
   
我們說中本聰發明了,或創造了比特幣,指的是他完成了這麽幾個方麵的事情,首先提出了構建點對點的分布式記賬貨幣係統的想法,其次整理出了為實現出這樣的係統,各個節點之間需要的遵守的完整協議再次,提供了解決若幹個具體問題的切實可行的方案這些問題涉及到這樣的分布式記賬貨幣係統的各個環節最後,開發出一套可運行在每個節點的程序實現了所有這些協議和要求.可以說,中本聰就是傳說中神一樣存在!’他憑一己之力締造了一個貨幣係統這個係統足以抗衡以國家之力為之背書的國家貨幣接著中本聰順手挖出100多萬個比特幣,然後,輕輕的他走了,不知道是不是也帶走了他的比特幣.              
 
打開比特幣官網,第一頁你會看到比特幣是一個重新的支付網絡,一種新的貨幣.”按現在民間流行的說法,比特幣是一種虛擬貨幣。聽到貨幣這個詞兒,小夥伴們可能沒那麽激動,覺著那是經濟學家的事,其實那就是咱們可以用來買大西瓜的錢哪,哈!    
 
關於什麽是貨幣,說起來話就特別長按照不同的分類標準,什麽實物貨幣,稱量貨幣,信用貨幣,數字貨幣,貨幣數字化等等,在這兒就不扯那麽遠了那些問題讓經濟學家去傷腦筋吧咱就記住,能被人們普遍接受的交易媒介或支付手段,它就是錢,這就夠了這種意義上比特幣它就是錢有越來越多的個人,機構,公司認可用比特幣交易和支付比較有名的是李嘉誠幾年前就一個猛子衝上去抱住了比特幣,華爾街大黑幫高盛的忍不住宣布要投資比特幣.當然也很多人,包括從老百姓和牛如郎鹹平之類經濟專家的人都說比特幣是龐氏騙局視之為蛇蠍唯恐避之不及至少表麵如此.   
 
還有呢,不同國家官方對這個東東也有不同的說法,德國政府最敞亮,認可比特幣的法律和稅收地位,視為合法記賬單位,一向隨和的法國這次比較耿,宣布比特幣違法,戰鬥民族俄羅斯一如既往的粗暴,直接宣布全麵禁用比特幣,美國則有多種說法,主要是把比特幣看成大宗商品,就象黃金,白銀,咖啡,黃小玉(黃豆,小麥,玉米)等日本人再次顯得職責分明央行和財務省都說監管比特幣不屬於其職責所在.   
 
天朝的官方的態度則顯得相當的靈活和變通,說比特幣應當看成一種特定的虛擬商品,不具有與貨幣等同的法律地位,不能且不應作為貨幣在市場上流通使用,不在政府監管範圍,並告誡民眾比特幣有多方麵的風險,另一方麵又說要開發自己的數字貨幣.

搞成現在這個既熱鬧又混亂,莫衷一是的局麵,原因倒是很簡單,就是絕大多數人,包括很多經濟金融方麵有話語權決策權的人物,現在還沒整明白比特幣到底是個甚麽東東.俺呢,自然不是什麽專家,頂多是個喜歡泡網拍磚的磚家俗話說,世上本沒有樓,拍的磚多了,也便成了樓忘了哪兒聽來的一句話上心念一動,震動乾坤’, 我這兩天也是心念一動,不過沒敢想震動什麽,隻是想跟坐地吃瓜的小夥伴們一塊嘮一嘮這出好戲的劇情.不過後麵還有些重要的劇透不想讓別人聽到啊小夥伴們注意一下,看看你周圍有沒有濃眉大眼的家夥,蹲在地上,捧著塊西爪偷聽.

好了,就此算是碼完了作為引子的部分,你還在讀麽下麵要進入比較艱難的部分了,我要嚐試著說說比特幣的技術部分你還繼續讀下去麽?  

從古代的貝殼,到金銀,到紙幣,到我們銀行賬號上的數字,這些東西能做為貨幣的理由,已經被經濟專家們分析了個底兒掉,無非是實用性,稀缺性,國家信用,法償性,強製性等等,憑良心,咱不能說這些是‘事後諸葛亮’,不過某些專家在比特幣是不是貨幣比特幣將來會發展成什麽樣子等問題上,還是真有那麽點事先豬一樣的意思因為以前那些東東能作為貨幣的理由套在比特幣身上顯得特別不合身兒.經過比特幣粉和比特幣黑這些年的爭論,比特幣粉,不管是不是真的明白,有了一個比較一致的說法比特幣能作為貨幣靠的是它背後的技術如果你再追問一句比特幣後麵的技術到底是什麽為什麽這麽厲害恐怕十有八九要掉鏈子了.
 
比特幣之所以這麽猛,這麽強,說實在,它背後還真是有點硬東西在支撐.咱先把幾個唬人的核心概念拋出來然後再慢慢把它們掰拆掰拆.首先也是最重要的,比特幣是一種公共記賬貨幣.其次,支撐這個公共記賬貨幣係統主要有這四項關鍵技術,曰:分布式共識機製,有了這個就可以使去中心化權力結構成為可能;區塊鏈技術,這個用來記錄便於驗證且不可更改的公共曆史;非對稱加密技術,這個保證了比特幣安全,保密;最後一個是工作量證明機製,,這個最好玩,後麵再細說.  
                                       
對大部分人來說看到這幾個唬人的名詞,直接就跳過去了.不過,俺和廣大小夥伴們一樣,喜歡‘八卦體遠勝於‘八股文’, 所以俺在這裏盡量用老百姓自己的話說沒準還真有小夥伴能捏著鼻子(有耐心)讀下去呢.    
 
從古至今支付手段都是處於不斷的發展和變化之中,大致上經曆了以物易物、實物貨幣(黃金,白銀)、符號貨幣(人民幣、美元等)、中央係統虛擬貨幣(銀行、支付寶、微信支付等). 在最後這個中央係統虛擬貨幣裏,一切都是圍繞著用戶的銀行賬戶的裏的數字及其變化.這種形式的貨幣被稱為記賬貨幣,銀行管理控製著所有賬戶的錢和相關信息,這樣的係統叫有中心的記賬貨幣係統,銀行就是那個中心.比特幣也是記賬貨幣,不過它去除了那個中心
 
常有人問,什麽是比特幣?這個還東西真不太容易用以前熟悉的語言解釋明白,你還是得學點新東西才能理解.   
 
咱先來一個最簡單的版本
 
可以這麽理解,比特幣係統是一個巨大的、不斷更新的賬本。每一頁都叫做一個區塊,按照時間順序連起來,就叫做比特幣的區塊鏈。每10分鍾新增一個區塊,裏麵的內容是過去10分鍾係統內發生的一些交易。每一筆交易都會完完整整記錄在這個賬本裏,比特幣就是賬本裏記錄的錢。比特幣與銀行、支付寶有所不同的是,比特幣的交易信息不保存在中央服務器的數據庫中,而是保存在所有連接到比特幣網絡的電腦裏。
 
接下來要嘮一個囉嗦的版本.  
 
比特幣是這麽個係統,它有一個軟件,誰願意下載這個軟件都可以,下載這個軟件到你的電腦上以後,你聯網並啟動這個軟件,你的電腦就成為比特幣係統的一個節點,比特幣係統就是由成千上萬的這樣的節點構成的.運行這個比特幣軟件,它首先到網上尋找到最新的曆史記錄,並同步到你的電腦上所以每個節點上就都有一份整個比特幣係統從0開始的所有賬戶的全部賬目記錄這個軟件會自動記錄更新驗證,保證每個節點上的備份是一致的這個係統上記錄的賬戶裏的數目就是比特幣.        
 
比特幣是一個去中心化的記賬係統,去中心化有幾重意義,其中之一就是沒有銀行這樣一個中心去管理人們的賬戶另外在比特幣係統中,它還意味著沒有貨幣發行中心我覺得,也許去中心化不應該看成一種技術,而應該看成是係統構建方法或方案,或者幹脆就是一個理想.想想銀行漂亮的大樓和西裝革履趾高氣揚的銀行男女,你就知道,一個去掉這種中心的貨幣係統能為我們節約多少財富也能知道,銀行的上上下下,男男女女們對比特幣是多麽痛恨.
 
所謂公共記賬就是用戶們或比特幣節點自己記賬,整個係統的賬戶餘額和轉賬接受等信息記錄在成千上萬的計算機上這些賬戶記錄通過最初由中本聰設計好的軟件係統它能記錄,更新,檢查,驗證所有交易它也能防止各種可能的欺詐,攻擊同時又能在全球各地之間瞬間傳輸這樣複雜的東西是如何實現的呢這就要用到前麵提到的那些些精心設計的技術.這些技術涉及和使用到數學,密碼學,計算機科學,網絡的多方麵的知識和技術這裏隻能力求把這些東西介紹的簡單能懂
 
下麵是一個有技術含量的版本

首先介紹有一個很重要的一個工具叫哈希(Hash)函數,也叫散列函數,不同的輸入值可以是單詞,語句,文章整頁賬單等把一堆這些東西打包成一個整體,經過哈希函數處理就能得到一個輸出值(函數值),這個輸出值是一個固定長度(64)的字符串,有時我們稱其為消息摘要或直接叫哈希摘要哈希函數有三個非常重要的特點第一,同樣的輸入消息經過哈希處理,任何時候都得到相同的信息摘要第二,不能從函數值倒推出輸入值也就是運算是不可逆的第三,輸入值微小的變化會造成輸出值巨大的變化,  如增減一個空格,或改變一個標點符號,哈希處理之後得到的信息摘要是完全不同的.在密碼學中,人們稱這個為雪崩效應哈希函數是密碼學中的一個非常重要的工具,有多個種類.在整個比特幣係統的不同環節,都用到了哈希函數有些人甚至把哈希這個詞用作動詞,比如說,把這個信息包哈希一下等.    

大概了解了哈希函數以後,下麵介紹區塊鏈技術前麵我們說過比特幣是一種記賬貨幣,我們用紙筆賬簿記賬時,是一頁一頁的記,比特幣係統則被設計成每10分鍾對整個係統發生的事件記錄一次,可以形象看成每10分鍾記錄一頁賬目,這一頁的賬目記錄在電腦中就是一個數據塊叫做區塊.把區塊鏈接到一切就是區塊鏈從數據的角度看,區塊鏈是一種便於在去中心化的係統中使用的數據結構或存儲方法,

用哈希函數處理每個區塊,可以得到個區塊的摘要記錄每一個區塊時,係統要把在這段時間發生的交易,連同上一區塊的哈希摘要放在一起作哈希處理處理得到一個這個新的區塊的哈希摘要這樣每個區塊記錄都包含上一個區塊的哈希摘要這樣就形成一個鏈狀數據結構,即區塊鏈.有力這樣構成的區塊鏈要驗證核對兩個賬簿記錄是否一致就很容易了,不管有多少區塊,不管每個區塊多複雜隻需比較最後一個區塊的摘要是否一致就行.這樣就使得保持整個比特幣係統的一個不可更改的曆史記錄成為可能.順便提一下,區塊鏈技術現在很熱,越來越多的應用到了比特幣之外的很多領域
 
下麵再稍微說說非對稱加密技術,這個技術是現代密碼學裏的很重要,細節上很複雜,但我們在這裏不需要深究.這個東西主要用在把賬戶和它的主人聯係起來.對我等吃瓜小夥伴來說,隻要類比電郵的用戶名和密碼理解一下就差不多了.當然要比電郵係統的安全行保密性高得多.另外,這種技術也用來確保和驗證支配一個賬戶內比特幣的人確實是賬戶的主人.這裏用到的一些名詞有地址(相對與用戶名), 密鑰(相當與密碼),還有公鑰匙簽名等.大體上這裏的關係是,誰知道某一個地址的私鑰,誰就能支配該賬戶裏的比特幣由私鑰經過計算,包括哈希處理,可以推出公鑰匙,公鑰經過計算可以推出地址.但反過了不行.密碼學天才中本聰在設計這些的時候,考慮的很周全,你能想到的中本聰都想到了,你沒想到的,他也考慮到了,請放心用吧.要特別強調的是要保護好你的私鑰匙,丟了私鑰,就等於丟了賬戶裏的一切.  

最後一個技術,也是吃瓜小夥伴們最感興趣的工作量證明機製,我要這麽說,你肯定嗤之以鼻,"工作量證明機製這是個什麽鬼這有啥好感興趣的? ”,讓我換一個說法試試,‘挖礦!’怎麽樣立馬不瞌睡了吧?        

比特幣挖礦?挖什麽?怎麽挖?為什麽要挖?

說起為什麽要挖礦小夥伴們都知道,為了錢唄!可是為什麽比特幣係統要讓你挖礦,還發給你錢這就有必要聊聊那個有名的拜占庭將軍問題了,這是大牛Lamport在研究分布式係統容錯性的時候編出的一個故事。今兒有興致,俺來隨手編一個中文版.

話說十八路諸侯伐董卓的時候,十八路諸侯把董卓給圍了諸侯們反複掂量雙方實力皆十分忌憚呂布的方天畫戟,若非半數以上的諸侯一起進攻,決計敵不過奸賊董卓.諸侯們欲商定何時一起動手進攻派出的流星探馬和信使在個諸侯的營寨間來往穿梭不停的傳送消息和約定,但諸侯們個個都有小算盤,有想打的,有想撤的,有看風使舵的,消息是真真假假,虛虛實實,諸侯們都不敢輕易相信別的諸侯的諾言,不知該如何定進攻方略,諸侯們甚是為難啊,無奈這才推選袁紹任十八路諸侯總盟主,統一指揮.           

這個就是中國版拜占庭將軍問題,反映的事實是在沒有中心的分布式係統中,達成某種共識實在不是件容易的事,有時實在不得已,還得弄成有中心的如何才能真正解決拜占庭將軍問題,保證這種分布式係統一致性和可用性這個問題讓前麵幾十年的研究者傷透了腦筋

要設計和構建一個可以信賴可以使用的分布式記賬貨幣係統,必須解決在缺少可信的中央節點和可信任的通道的情況下,分布在網絡中的各個節點如何達成共識的問題。這個問題具體到貨幣係統來說,就是在人人平等的分布式貨幣係統中,理論上每個人都可以記賬,但人人記賬的話鐵定會出亂子,那麽讓誰來記賬怎麽記別人憑什麽相信你記的賬?    

要不怎麽說中本聰簡直一個是神一樣的存在呢在別人試圖用數學,密碼學的方法解決這個問題而陷入泥坑的時候,中本聰另辟蹊徑想一個神奇而巧妙的方法,漂亮的解決了這個問題.他把這個問題從了數學,密碼學的框框中拎出來,把它放在了人性的層麵,於是,問題立刻迎刃而解.他的辦法是為了鼓勵人們記賬,規定記賬的人有賞;為了避免人人記賬造成混亂,規定一次隻能有一個人記賬記賬的人得先付點代價,得幹活,幹得最快最好的人才有權給大家記賬為了防止記賬的人不負責,瞎記或有意搗鬼,規定記錄的賬目要讓其他人驗證,如果驗證發現有錯,沒收獎金,讓你白辛苦,然後另找他人重記.當然了,中本聰在解決這個問題的時候借鑒了前人(Adam Back)的想法,這個得提一下,必須的.   

關於比特幣,大大小小的礦工和吃瓜群眾最為關心的是挖礦.現在我們清楚了實際上就是比特幣係統中,競爭記賬權的爭奪過程.爭搶記賬權的人就是礦工搶到記賬權並成功記賬的礦工,便得到比特幣作為獎勵.這就是礦工和挖礦在整個比特幣係統中的角色和定位

那麽,具體是怎麽挖礦,怎麽爭搶記賬權呢?   


這個可以從兩個層麵上理解.如果隻想挖礦掙錢懶得動腦筋了解它背後是怎麽實現的,那麽你隻需準備好挖礦設備,聯上網,下載好挖礦軟件,啟動挖礦軟件,保證機器供電,讓它跑就行了.所謂挖礦設備,可以是電腦,CPUGPU挖礦,也可以是專門設計的挖礦機,現在用電腦挖礦已經沒戲了,必須用強大的專門挖礦機,否則電費也挖不回來更不用說靠幹這個發財了,而且還不能單幹,要在礦池裏挖礦,否則可能一輩子白辛苦.關於這個層麵上挖礦的介紹網上很容易找到,就不多耽誤功夫了


如果想稍微深入了解一下挖礦背後的過程就需要用到前麵介紹的區塊鏈介紹和哈希函數.中本聰的方案是,挖礦的礦工,也就是每一個正在運行的比特幣節點首先要保證和網上最新的賬目同步,找到最後一個區間極其哈希得到的摘要,然後收集上次記賬以後還沒有記錄在案的交易就是發送和接受比特幣的轉賬情況,驗證每一個交易合乎規則的,不符合規則的不予記錄.然後把這些信息打個包,這個包內的信息是這個區塊裏真正有用的東西前幾年,由於使用比特幣交易比較少,這個收集驗證交易信息和打包的過程並不耗費多少計算資源,最近情況發生了改變,比特幣交易日益增加,這個過程也需要占用相當的計算能力和時間,這個正在引起一個威脅到比特幣生死存亡的大問題,關於這個事兒,先按下不表,請看後麵分解

下麵到了關鍵的地方,說說比特幣好是好,可為啥比特幣挖礦競爭那麽激烈耗費那麽多電力等資源既不綠色,又不環保

挖礦的過程是這樣的本來呢,一個礦工(他的節點)把過去大約10分鍾全網發生的轉賬等信息收集,驗證,打包好形成一個交易信息包,再把上一區塊的哈希摘要加上就可以對這堆東西做哈希處理得到本區塊的哈希摘要了.單純從記賬的角度看,這已經夠了,他就可以把這些東西廣播出去,讓其它節點驗證了.  

但這裏有幾個問題,首先,這種事情每個節點都會做,而我們無法保證每個人都能做到誠實地記賬,實際上比特幣程序是開源的,一個礦工願意的話可以改動程序,這樣他肯定有誘惑給自己的賬上多記幾個幣.其次,每個礦工這樣輕易的打包,哈希,然後把區塊廣播出去,比特幣係統之間的網上會有數據包滿天飛,節點會有無數的區塊要驗證,也就是說,這樣的構建的係統肯定會遭遇拜占庭將軍問題,係統立馬就崩潰了,一定的
 
就像前麵提到的,中本聰在這個環節引入了被稱為工作量證明的競爭方法,巧妙的解決了這個問題.具體說來他是這樣做的,不是把本區塊的交易信息包加上上一區塊的摘要就直接做哈希處理,而是要把這堆東西再加一個8位隨機數(Nonce).然後再對它們做哈希處理,這樣就能得到一個64位的字符串值形式的摘要,如果這個摘要滿足一定的要求,它就真的能被當作本區塊的信息摘要如果信息摘要不滿足要求,礦工就不得不再用一個新的隨機數去試,這裏麵沒有技巧可言,就是一個笨辦法,不停的試.   
 
這裏說的一定要求或條件,就是字符串形式的信息摘要必須滿足的形式,中本聰規定,合適的摘要的前幾位必須是0,後麵的位數則可以是任意字母或數字,前幾位要求的0越多,找到的難度越大,也就越費時間對於每一個區塊的摘要,具體要求前麵有幾個0,也就是調節挖礦難度,是係統跟據網上節點算力情況確定的,大體上要保證以當前全網算力,10分鍾才能找到.中本聰找到的創世區塊的摘要是000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, 前麵有100,那個隨機數(Nonce),2083236893. 到了40萬個區塊就有17個零了.  

你運行比特幣節點軟件,其中的挖礦功能就開始工作同時很多其他人也在做同樣的事情,誰先找到,誰就得到這個個區塊的記賬權和新發行出來的比特幣.找到這個隨機數的人,把信息包和這個隨機數廣播出去,接收到的人,會馬上驗證,如果通過驗證,就被記錄到那個整個比特幣賬本中作為新的一個區塊同時停止自己礦機上的尋找,開始在新的區塊上的重複這套打包挖礦的過程.  

如果你挖礦成功爭取到記賬權,你就可以給自己發獎金,具體方法就是你可以在一個你指定的地址中憑空記入一定數量的比特幣,最初是50,4年減半,現在是12.5. 按照中本聰的設計,比特幣的總量是2100萬個,大約到2140年挖完.如何你不傻的話,你肯定會指定那個地址為你自己的錢包地址.

為什麽比特幣總量是2100,而不是其它數這個有多種多樣的說法.首先,這個總量是有限的而非任意發行的是好理解的,比特幣誕生於08,正是金融危機之後,各國央行開足馬力印錢,大搞量化寬鬆(QE)的時候,也就是FED的伯南克用直升飛機撒錢的年代,老百姓擔憂惡性通貨膨脹會稀釋自己辛苦掙來的血汗錢,所以一個限量發行的貨幣更得人心關於為什麽是2100,一個比較靠譜的說法是考慮了這個數字在不同計算機語言中的表示和存儲方便.  

到目前為止,大約挖出了1600多萬比特幣,還有400多萬沒挖出來,挖礦也越來越難,收益越來越小.按中本聰的設計,早期,為獎勵比特幣礦工記賬,競爭到記賬權的礦工會得到新發行的比特幣作為獎勵,到了後期比特幣挖完的時候,比特幣記賬仍然是需要的,那個時候為鼓勵礦工挖礦就需要從比特幣交易中抽取一定比例的手續費作為獎勵,除此之外,收集,驗證打包交易信息,反複嚐試並尋找合適的隨機數(Nonce) ,找到後將區塊信息廣播出去,其它礦工做驗證等等,和現在挖礦的過程是完全一樣的.隻不過那個時候,有可能礦工就不再是一個合適的詞了.  

說的這裏,我們就可以順手糾正一個廣為流傳的,先是似是而非,後又以訛傳訛的錯誤,在網上能看到一些介紹比特幣的文章中說,中本聰設計比特幣的時候,‘了一個非常複雜的數學方程,這個方程有2100萬個解,挖礦就是求這個方程的解,誰找到一個解誰就能得到若幹個比特幣. 2100萬個解全挖玩後就沒了現在你看到到了這種解釋是非常牽強的.   

大體上,如果你讀到這裏,你就應該對比特幣係統本身有了相當的理解,或許你的水平已經超過不少人了.  

這些東西說起來很複雜,的確也挺複雜,需要精心設計,考慮到方方麵麵每一個細節.但如果你隻是想挖礦,其實很簡單,你隻需啟動你的電腦或挖礦機,聯網,下載比特幣挖礦軟件,啟動這個軟件,然後背後的一起,收集轉賬信息,驗證,打包等等,你的電腦或挖礦機都知道做了,你隻需花的是電費關於具體怎麽挖礦網上有無數的介紹,這裏就不說了,一不小心把這個又囉嗦了一遍

了解了比特幣分布式記賬係統的大概輪廓,下麵再看看比特幣的一些問題同時嚐試展望一下比特幣未來的發展前景.  

比特幣設計的很巧妙,也取得了空前的成功.那麽有沒有什麽問題和隱患呢答案是:這個問題可以從多個方麵來考察,先說來自外部的挑戰.

首先是這個比特幣的發行和分配問題,早期,在大家還不知道比特幣的時候,中本聰等創始人輕易的挖到了很多比特幣,粗略估計,在總共2100萬的比特幣中,早期的不到1000,拿到了大約1000萬個比特幣,中本聰自己就挖到了差不多100萬個比特幣,按今天的匯率,價值差不多25億美元.盡管有這樣的說法中本聰發明了比特幣,沒有申請專利自己拿這些錢也是可以接受的,另外那些早期的挖礦人,承擔了比特幣可能失敗的風險等等但是,無論怎麽說,早期1000人拿到了全部比特幣中的半數這個事實還是讓老百姓們覺得很不爽

其次,丟失問題,根據比特幣協議,如果一個人忘記或丟失了他的私鑰那麽他對應賬戶中的比特幣就死了,誰也無非支配了,相當於徹底退出流通了,能流通的總數就不到2100萬枚中本聰本人的100多萬比特幣,就從來沒有進行過交易隨著時間的流逝這樣丟失的比特幣會越來越多,最後有可能會造成流通量不足的問題.當然從正麵意義上講,你也可以理解為比特幣越來越值錢了

第三,前麵說了,比特幣是之所以能被被發明出來,並混得風生水起,一個重要原因是, 08年金融危機之後,美國的QE和各國央行濫發貨幣,造成貨幣貶值,老百姓不願意看著自己辛辛苦苦掙來的血汗錢,一點一點被濫發的貨幣衝淡.但是,一個固定總量的貨幣,肯定會引起通貨緊縮的問題,這也是為什麽不可能恢複金本位的主要原因.雖然老百姓喜歡自己的錢越來越值錢,但對整個社會,整個國家來說,通縮比通脹更可怕.如果大規模使用比特幣,肯定會造成螺旋式的通貨緊縮所以經濟學家對此尤為擔心

第四比特幣骨子裏是一種無政府主義貨幣是反央行和反政府監督的其原始動機就是反各國央行濫發貨幣,用通貨膨脹的方法剝削人們的財產中本聰在他比特幣白皮書中說他設計這種係統的目標就是排斥央行對貨幣發行和支付轉賬的管理同時精心設計的比特幣的賬戶保密技術也使得政府監督稅收等非常困難世界各國目前對這個的態度有限混亂,也在不斷變化中.所以盡管到現在人們還在討論用比特幣取代通用貨幣的可能及後果,我覺得隻有國家形式存在,比特幣根本不可能的全麵取代法幣反過來國家也不能完全消滅比特幣.央行發行的貨幣仍然是主流,比特幣是補充.政府在逐漸認清比特幣的方方麵麵的同時,學會和比特幣相處.逐漸發展出監管比特幣的政策和手段.
 
 
也有一種觀點認為,因為比特幣無政府主義的天性,會招各國政府和央行的痛恨,世界各國政府會聯合起來,把比特幣掐死,理論上這個是一種可能性,但夢想成真可能性非常小,因為各個國家在比特市上的的利益不一致,有些國家還指望用比特幣搞點陰謀,去禍害別的國家.退一步講,就算全球各國能聯合起來,也不可能把比特市徹底掐死,比特幣會轉入地下,成為一種黑社會的貨幣。

這裏俺要夾帶點私貨,俺的看法是,比特幣不會取代通用法幣,但從長期趨勢看,它會與法幣共存,價格會大起大落,但總趨勢是不斷的上漲,可能會漲到讓今天的人目瞪口呆的地步.如果它越來越貴,潛在的升值潛力,使得人們不願意用比特幣支付和交易,如果交易太少,它就會慢慢自動推出貨幣市場,成為一種類似收藏品的東西

第五,山寨幣,講比特幣的故事,必定要捎帶講講比特幣的模仿者,天朝人稱山寨幣.比特幣的空前成功,著實讓一些人羨慕嫉妒恨啊.於是紛紛琢磨著怎麽能模仿一下呢,因為比特幣所有的東西都是公開能找到的,這幫人回家仔細研究了一下,發現這個東東很容易模仿嘛,於是把比特幣的一些東西(如幣的總量,加密方法等)稍微改一改,起個自己覺著酷酷名字,就算造出一種新幣來,先關起門來自己挖個不亦樂乎,覺著挖得差不多了,就公開出來忽悠別人來挖,然後等著發財.短短幾年間,造出了近千種這樣的山寨幣.這些山寨幣大部分是簡單模仿,我覺得你不用浪費時間去鼓搗它們,隻需注意一下萊特幣(Litcoin) 和以太幣(以太坊, Ethereum)就行了.需要注意萊特幣是因為它是虛擬數字貨幣的老二.以太幣呢,則有它的獨到之處,它進一步發展了區塊鏈的技術和理念,使得人們可以擴展區塊鏈中的東西,並可對區塊鏈中的記錄編程處理這個發展在虛擬數字貨幣之外的其它領域會有重要的應用,以太幣有可能是比特幣的有力競爭.                

這些就是主要的來自外部的挑戰,麵對來自外部的攻擊,比特幣是個堅強的堡壘,俗話說的不錯,堡壘最容易從內部攻克,所以比特幣要死的話,死於內部的可能性最大,比特幣體係內部確實有一些問題,下麵在說說比特幣來自內部的危機.比特幣有沒有可能死呢?有的, 那麽可能是什麽死法?

分叉,確認擁堵問題

如果最後比特幣死了,那麽最大的可能是死於分叉。分叉有幾種,最簡單而又無害的分叉是這種情形,在記錄某一區塊的賬目時,兩個比特幣節點,幾乎同時找到了滿足條件的隨機數,就是說都挖到了比特幣,這兩個節點分別把自已的區塊記錄結果廣擂出去,並且分別得到了其它一些節點的驗證和承認, 這種情況就出現了分叉,相同時間段的轉賬事件,有了兩個區塊的記錄,這種情況下,比特幣係統會暫時容忍兩個叉,然後繼續往下發展,再過幾個區塊就會發現,前麵分開的兩個叉長度不同了,這種情況下,係統的節點會放棄短的那個鏈,而把新的區塊連接在長的上,短鏈上的所有記錄作廢。這種分叉是一種無害的暫時性的分叉,雖然會耗費一些資源但不會威脅比特幣係統本身.  

除了這種小的無害的分叉,有時侯比特幣係統還會發生大分叉,大的分叉又可分為硬分叉和軟分叉兩種這兩種大分叉都會對比特幣造成非常大的威脅,下麵以確認擁堵問題為例,說明一下這個問題.     

除了前麵提到的來自外部的挑戰,比特幣體係內部也有一些問題,目前遇到的一個問題就是所謂的交易確認擁塞問題。這個問題雖然還算不上迫在眉睫但也是相當緊迫了,亟待解決這個問題的背景是這樣的,最初中本聰設計比特幣時,考慮到比特幣的交易量比較小,所以規定每10分鍾左右記錄一個區塊,每個區塊不能超過1MB近一兩年來,比特幣交易日益增大,10鍾內發生的交易記錄超過1MB,且有繼續急速增大的趨勢。這就造成一個擁堵和延遲的問題,一段時間內發生的比特幣交易不能在10分鍾內得到整個係統的確認,為了盡快得到確認,交易者有時不得比增加手續費,如果不願增加手續費,就得等待較長時間才能得到確認,這無疑增加了使用比特幣的成本,降低了效率。這樣會讓一些本來打算用比特幣支付的交易離開,長久看來無疑會影響比特幣的生存發展甚至生死存亡。有些山寨競爭者就是從這個角度對比特幣發起進攻的。

麵對這個問題,如比特幣基金等核心組織,在積極商討如何解決這個問題的對策,目前主要有三派,他們是各執己見,爭執不下。

一派可以算比特幣原教旨主義者,以擁有一些比特幣的小散戶為主,他們的態度比較保守,主張一切都不要變,比特幣隻進行大交易就好,小交易讓萊特幣,通用貨幣等去做就好。這種做法從係統內部看相當安全,但它不解決問題.  

另外一派比較激進派,他們主張修改比特幣的共識規則,關於改什麽,怎麽改,這個裏麵又可以分為若幹小派,其中影響較大的一派認為,可以去除區塊鏈大小限製現在的比特幣共識規則中,一個區塊不得大於1MB,如果去除這個限製,讓比特幣一個區塊可以任意大小,就徹底解決了確認擁堵問題,可以及時的完成每個區塊所有交易的確認這一派叫比特幣無限(Bitcoin Unlimited).    

這樣的方案的確可以解決確認擁堵問題,但問題是,這樣對比特幣共識規則的修改,一定會造成硬分叉,運行新的共識規則的節點上產生的區塊,以及挖出來的比特幣,得不到運行舊的共識規則的節點的承認.這樣比特幣就會分叉為兩個鏈兩個鏈上的比特幣的價格會是不同的,舊幣可以送到新節點,新幣不難送到舊節點,這樣會造成巨大的混亂,最輕的後果是,比特幣的總量會增加,不再是2100,可能會是3300萬甚至4200,這樣肯定會影響比特幣的價格,而且也無疑會影響老百姓對比特幣的信心和接受度.另一種嚴重的後果是,比特幣就此分為兩種,各自成為一個係統這樣後來的這個比特幣就相當於一個山寨幣了.比特幣能有今天傲視眾山寨幣的局麵,靠的是先入為主的優勢和人們對比特幣的信念,比特幣最大的價值是其品牌和知名度失去了這些比特幣的接受度無疑會下降,政府再乘機打壓,比特幣就真正的在劫難逃了.

       
除了這兩種保守和激進的主張還有一些改良主義的派別,其中一種是用所謂的見證分離的辦法來解決問題具體來說是這樣的,比特幣的每筆交易都包含兩部分信息,一部分是交易的雙方的地址和交易數量,另一部分是確認這個交易確實是由支付一方的主人發送的包含通過私鑰而生成的簽名等信息,這部分叫見證信息.那麽,見證分離是怎麽做到的呢?改良主義者認為,我們可以不改變比特幣共識規則,也就是還保持每個區塊1MB的限製,但我們讓每個區塊中隻包含支付信息不包含見證信息,這樣每一個區塊就可以包含更多的交易,從而解決確認擁堵問題.   

這種分離見證和類似的改良主義的方案,其本質是用某種技巧或方法,巧妙的騙過舊節點,這樣新舊節點生成的區塊和比特幣還能互相承認,但區塊包含的信息卻是不相同的,這是一種利用軟分叉解決問題的方案.這種方法現在看來是可以解決當前的確認擁堵問題,但是也隻是個權宜之計它隻能擴容40%左右,如果比特幣全網交易量在現在的基礎上再增加一倍,確認擁堵問題就又回來了.而且更危險的是它有損害比特幣的安全性潛在可能.     

那麽,麵對這個緊要的問題比特幣社區最終將采取哪種對策呢?

比特幣是一個去中心化的貨幣係統,不幸的是它去中心化去得太徹底了,連係統自己的領導中心也去掉了,比特幣社區真正成了一盤散沙,在遇到確認擁堵這樣的問題,需要決斷的時候連個拍板的人都沒有.當社區內出現爭執時,一些核心組織會提出一些解決的建議和方案,至於整個社區會不會接收或者社區會不會因此而分裂,取決於社區成員的投票選擇,投票的辦法就是選擇使用哪個版本的比特幣節點軟件.20133月曾有一次未曾預料到的硬分叉,原因是0.8版本使用的數據庫與0.7版本不同,導致某些0.8版本確認的塊因過大而不被0.7版本認可,最後的解決方案是整個社區接受了0.8版本的節點退回0.7版本的方案。

51%攻擊隻是個傳說
  
目前,人們隻是看到了分叉可能帶來的風險,其實可能還有另外一些問題,會帶來更大的威脅.不過到現在還沒有看到網上有人討論既然我想到了,就在這裏簡單分析一下希望不要砸了某些人的聚寶盆.   

比特幣係統是去中心化的,它沒有一個中心數據庫來存放係統的交易數據,而是用區塊鏈的方式存放在每一個比特幣結點上。到現在為止,這些數據已經超過了100GB,  隨著比特幣交易的日益增長,這個區塊鏈會飛快的增大。一般小礦工,小散戶的節點是放在家用電腦上的,家用電腦的硬盤容量是1TB左右,如果比特幣區塊鏈越來越大,占用越來越多的硬盤空間,人們就不再願意在家用電腦上安裝和運行比特網節點了。在網絡的流量和帶寬方麵也非常類似,在比特幣節點間交換信息的流量會越來越多,會嚴重影響網絡流速,再加上用家用電腦挖礦已經根本挖不到比特幣了,在無利可圖的情況下,越來越多的小礦工會停止挖礦,這樣會造成比特幣全網上運行的節點日益減少

另一方麵,可以說是眾所周知,挖礦活動越來越集中到了一些大礦場,大礦場主控製的節點越來越多,在整個比特幣全網中所占的比例越來越大.這樣的趨勢和後果是或者大礦場主們本身,或者黑客,或者某些懷有敵意的國家的政府發動51%攻擊的可能性就越來越有可能.   

  
所謂的51%攻擊指得是,如果有人控製了50%以上的算力,他就有能力利用他的算力優勢和比特幣使用算力作為競爭條件的特點,隨意決定比特幣區塊的內容,比如撤銷交易或者製造虛擬交易等等,所以如果有人控製了比特幣全網算力的50%以上,他就可以控製全部比特幣資產,這也就意味著,整個比特幣係統就此崩潰

51%攻擊對所有的去中心化的分布式係統都是致命的

除了可怕的51%攻擊,還有一個弱一些的威脅,”25%漏洞”.這個問題的根源也是存在於比特幣固有的貨幣體係之中,主要和現在礦工們都是在礦池中挖礦有關.所謂礦池指的是一種合作挖礦的形式,如果一個人單幹挖礦那麽他有可能挖到發一筆大的不過一輩子什麽也挖不到白辛苦的可能性也很大如果把大家組織起來挖不管誰挖到大家分錢,一年到頭白幹的可能性就小得多這種把礦工組織起來挖礦的形式就是礦池. 25%漏洞說的是如果一個礦池算力達到全網算力的約25%以上那麽這個礦池就有能力以某種手段決定比特幣挖礦力量和收益的分配比特幣定價等,這樣比特幣係統將不再是一個去中心化的係統.51%攻擊絕對是致命的,但發生幾率比較小, 25%漏洞危害要小一些但發生幾率比較高事實上,比特大陸旗下的螞蟻礦池(Antpool)的算力已經達到全網算力的20%以上了.  

最後,比特幣未來會發展前景怎麽樣?能成功的取代現有的由各國央行發行的,基於國家信用的貨幣麽還是作為一種交易和支付媒介與法幣共存或者走向自我崩潰,或被取締滅亡的道路?我想,我可以帶給小夥伴們一個好消息和一個壞消息,好消息是比特幣是一個打不死的小強,壞消息是它經常會被打,有時還會被打的很慘

[ 打印 ]
閱讀 ()評論 (24)
評論
昧名 回複 悄悄話 謝謝,樓主辛苦了!作為IT外行,還是看中文母語版的舒服啊。我以前看英文版的,隻能明白比特幣和以太幣。但是大家討論的51%攻擊和25%漏洞,就怎麽也不太明白。在樓主這兒終於看懂了。再次感謝。

我一直在尋找一起利用Ethereum(或者eos) 做服務應用,但是用比特幣和以台幣做結算的小夥伴。不知樓主有興趣不?
晉中 回複 悄悄話 有一個殺手鐧, 可以徹底幹掉比特幣, 那就是51%攻擊, 今天發動51%攻擊的代價是約65億美刀,
如果一個國家決心幹掉比特幣的話, 這點錢還是出的起的, 如果再配合點其它措施, 如沒收礦產的機器反過來用於攻擊, 可能還用不了這麽多。 當然這招有點令人不齒, 不到萬不得已,不會用的。但想要用比特幣取代法幣, 根本不是一個技術問題, 是你死我活的政治問題。 如果鬥爭進入你死我活的死磕狀態,使出這招殺手鐧也不是不可能。
tania 回複 悄悄話 大讚!
whshw 回複 悄悄話 樓主太太牛了!也是我至今看到的最全麵最清楚最通俗易懂的相關文章!
archer2011 回複 悄悄話 這是我看到的寫得最清楚的有關比特幣的文章。感謝樓主分享。能否再講講以太幣以及它和比特幣的區別?
晉中 回複 悄悄話 回複 'EZL' 的評論 : 謝謝!
EZL 回複 悄悄話 支持!辛苦啦!
晉中 回複 悄悄話 回複 'Zhen-Zhen' 的評論 :
說的對!
晉中 回複 悄悄話 回複 'Sophie308' 的評論 : 基本上是對的。 謝謝!
晉中 回複 悄悄話 回複 'Goldwang' 的評論 : 謝謝! 再讀一次試試 ;-)
晉中 回複 悄悄話 回複 'shamrock100' 的評論 : 謝謝!
晉中 回複 悄悄話 回複 'wreckbeach' 的評論 : 謝謝!
Goldwang 回複 悄悄話 樓主講的非常好,可還是沒懂
wreckbeach 回複 悄悄話 大讚。謝謝!
Sophie308 回複 悄悄話 1. 比特幣一開始隻是一種為獎勵認真記賬的人的獎品。
2. 比特幣的總量目前還是固定的,因為還沒有挖完。
3. 比特幣開始並沒有和美元這樣的硬通貨聯係到一起。
4. 比特幣現在作為一種硬通貨,最終還是得轉換成美元,除非賣房子的人願意接受比特幣。
5. 如果比特幣對美元的交換率不斷變化,比特幣就有點像股票了。
樓主,我的理解對嗎?
覓音 回複 悄悄話 好文!讀者能不能理解是另外一回事。
晉中 回複 悄悄話 回複 'shamrock100' 的評論 : 謝謝!
shamrock100 回複 悄悄話 非常感謝, 一直想了解這方麵的知識, 可惜缺乏背景。 樓主講的深入淺出!
晉中 回複 悄悄話 回複 'yckptsai' 的評論 : 謝謝!
yckptsai 回複 悄悄話 非常深入淺出的講解,並且頗具娛樂性,謝謝分享。
hy100 回複 悄悄話 看似好文,就是有點長,估計目前這一塊兒瓜皮不夠啃,先mark,出去買西瓜了:)
Zhen-Zhen 回複 悄悄話 "可能會造成流通量不足的問題" It is a problem but not a problem. Bitcoin can be divided indefinitely as the nature of split of a stock.
晉中 回複 悄悄話 回複 'yeyang' 的評論 : 謝謝!
yeyang 回複 悄悄話 這才是深度好文! 大讚!
登錄後才可評論.