- +1
區(qū)塊鏈與比特幣(下)
比特幣原理深入
區(qū)塊鏈技術

到此為止,我們去中心化賬本的理想只實現了一半,并沒完全實現,為什么呢?因為還有兩個重大的問題沒有解決。
第一個問題:賬本同步問題。比特幣網絡中有那么多臺電腦,一條交易信息發(fā)送出來的時候,當然不可能所有的電腦都開機,必然有一些處于離線狀態(tài),開了電腦也未必開著比特幣客戶端,所以總有一些電腦無法立刻收到這條信息。這樣就會導致不同電腦上的記錄不同步,到底以誰的電腦記錄為準呢?
第二個問題:如何防止同一個比特幣被重復使用?假如有一個黑客,他只有一個比特幣,但是他卻同時把這個比特幣付給A和B(雖然理論上無法真正同時,但可以做到間隔時間極短),于是就會在網絡上廣播兩條信息,一條是支付給A的信息,一條是支付給B的信息,因為網速的關系,必然有的電腦先收到信息1,有的電腦先收到信息2,這就產生了矛盾,如何確定哪一條信息是有效的呢?
為解決上面這兩個難題,區(qū)塊鏈技術橫空出世。
中本聰的論文真正在全世界掀起大風大浪,不是因為上一節(jié)介紹的比特幣基本工作原理——數字指紋和非對稱加密都是成熟的技術,真正讓他一戰(zhàn)成名的是區(qū)塊鏈技術。但請記住:比特幣不是區(qū)塊鏈,它只是區(qū)塊鏈技術的一個具體應用。
到底什么是區(qū)塊鏈?它怎樣巧妙地解決了賬本同步和信息不重復的問題呢?
中本聰的總體思路是這樣的:比特幣網絡中的所有電腦都只認可唯一的一個賬本,任何一臺電腦在接入比特幣網絡時,首先要同步這個唯一的賬本,任何一臺電腦想要往這個賬本上寫入新的信息,必須完成一套繁瑣的“手續(xù)”,這套手續(xù)復雜到幾乎不太可能被同時完成兩次,即便真的發(fā)生了巧合,被同時完成了兩次甚至多次,也有一個規(guī)則可以判定哪條信息是合法的,哪條信息該被拋棄。
讓我一步步為你揭開區(qū)塊鏈技術的面紗。
為什么要叫“區(qū)塊鏈”?因為中本聰把這個賬本設計成了由一個個“信息包”首尾相連而成的長鏈,每一個信息包被稱為一個“區(qū)塊”,這些區(qū)塊每一個都有唯一的編號——在比特幣系統(tǒng)中,編號被稱為高度(height),這些編號就是自然數1、2、3、4……一直往下排,不允許跳躍,也不允許中斷和重復。

第一個區(qū)塊當然是由區(qū)塊鏈的發(fā)明人中本聰親自創(chuàng)建的,那是北京時間2009年1月4日,在芬蘭赫爾辛基的一臺小型服務器上,第一個區(qū)塊誕生了,這也被稱作“創(chuàng)世區(qū)塊”(genesis block)。在這個區(qū)塊上,包含的主要信息是:
區(qū)塊高度:0
The Times 03/Jan/2009 Chancellor on brinkof second bailout for banks
(譯文:《泰晤士報》2009年1月3日頭版文章標題:財政大臣面臨第二次為銀行提供緊急救助的窘境)
“某賬號”獲得50比特幣獎勵
中間那段話是中本聰刻在第一個區(qū)塊上的紀念,從第二個區(qū)塊開始,以后每個區(qū)塊就必須嚴格按照比特幣系統(tǒng)的規(guī)則來創(chuàng)建了。區(qū)塊的規(guī)則有(至少包含以下信息):
+
固定信息
+
收到的交易記錄
+
一個隨機數
中本聰規(guī)定:這個新區(qū)塊的數字指紋(一個256位的二進制數)的前72位必須全部為0。
回憶一下我們前面介紹過的數字指紋的知識。因為SHA算出來的指紋是毫無規(guī)律可循的一組數字,所以,想要滿足中本聰的這個變態(tài)規(guī)定,唯一的辦法就只能憑運氣湊奧數,從0開始不斷地去嘗試,直到滿足要求為止。這是一個純粹的概率問題。我們來算一下要滿足這個要求的概率是多大。
因為二進制數,每一位只有兩種可能性,0或者1,所以,湊出一個奧數的可能性是2的72次方分之一,也就是:
1/4722366482869645213696
這個數字已經長到看花眼了吧,它大約就是4.7萬億億分之一。換句話說,就是平均要進行4.7萬億億次SHA計算,才可能得到一個奧數,可見每一個奧數的金貴。
最巧妙的是,奧數并不是某一個方程的解,解出一個少一個,因為每一個區(qū)塊的字符串都不同,所以,每一次尋找奧數都需要從0開始,任何一個數字都有可能成為新的奧數,完全沒有規(guī)律可循。
一旦成功找到一個奧數,就獲得了一次記賬權力,可以給賬本上新增加一個區(qū)塊。那么,為什么要花時間找奧數,去給賬本記賬呢?因為好處實在太大了。
比特幣系統(tǒng)規(guī)定,每成功增加一個區(qū)塊,這臺記賬的電腦(實際上是某個賬號)就能獲得12.5個比特幣的獎勵(截止到本文寫作時的獎金額),以及這個區(qū)塊中所有交易的手續(xù)費,總額取決于交易頻繁程度(平均約2比特幣)。這樣一來,相當于每找到一個奧數,可以獲得14.5比特幣獎勵,按照本文寫作時的比特幣市場價,相當于12萬美元。這么豐厚的獎勵,自然就會吸引大量的電腦去搶奪記賬權。
尋找奧數就是搶記賬權,搶記賬權也就是挖比特幣。
因此,尋找奧數也被形象地稱為“挖礦”。挖礦的電腦就叫“礦機”,一個裝滿礦機的房間當然就可以叫“礦場”了,礦場的主人就是“礦主”,他們是比特幣江湖中的弄潮兒。
但是,我需要給你解釋一下挖礦的難度,讓你打消去挖礦的沖動。個人電腦的運算速度大約是每秒可以進行60萬次SHA計算,也就意味著,一臺個人電腦平均需要花一千萬年才有可能湊出一個奧數。當然,這是一種概率計算,我不能從理論上排除某人的人品超新星爆發(fā),只算一次奧數就中了4.7萬億億分之一概率的獎。但我還是想勸你不要相信自己有那個命。
給你看看人家專業(yè)的礦場是怎樣的:
大規(guī)模的礦場據說有幾萬甚至幾十萬臺礦機同時運行。我在《看看新聞》2017年6月17日的一則新聞中看到,記者采訪了一個位于中國四川的礦場,根據報道,這個礦場有5000多臺礦機,屬于小規(guī)模,平均每天耗電超過20萬度,當地的電價是每度3毛,一天光是電費就6萬多元,平均每天可以挖出大約50個比特幣,一年左右回本,之后能做到20%左右的利潤。
不過我覺得這個報道中的數據前后矛盾,便查了一下,當時比特幣的市場價是大約每個2500美元,美元兌人民幣的匯率大約是6.8,所以,每天的收入大約是85萬人民幣,一年的收入大約3.1億元,一臺礦機的成本均價在一萬到兩萬元,礦場的礦機總成本是5000萬到1億元,即使算上電費等,一年起碼有兩億的利潤。
在充分的市場競爭下,出現這種暴利的可能性很低。所以,不是記者搞錯了,就是被采訪對象吹牛不打草稿。由于比特幣的價格和全網算力的波動很大,所以投資比特幣礦場很難做長期預測,不確定因素太多。
根據我們前面掌握的比特幣知識,50個比特幣,相當于找到了4個奧數,搶到了4次記賬權。目前,整個比特幣網絡的所有礦機,加起來的總算力能達到的水平,大約平均每10分鐘可以找到一個奧數,也就意味著平均每10分鐘生成一個新的區(qū)塊。當然,這個10分鐘是平均數,快一點的話三四分鐘生成一個區(qū)塊,慢一點的話15分鐘左右。
正因為奧數太難找,每個區(qū)塊平均要10分鐘才能生成一個,所以就能基本解決本節(jié)開頭提出的第一個問題“如何同步賬本”,只要有個三四分鐘的時間,足以讓所有在線的電腦同步到這個區(qū)塊了,那些不在線的電腦或者第一次運行客戶端的電腦,上線以后必須先做一件事情,就是從相鄰的節(jié)點上獲取最新的賬本。
請注意,我用了“基本解決”這個詞,也就意味著,并沒有完全解決“賬本同步”的問題。這是因為總會有極小的概率兩臺礦機恰好同時(只要在網絡上所有在線的節(jié)點沒有完成區(qū)塊鏈同步之前都可以算同時)找到奧數,也就意味著同時搶到了記賬權。因為礦機實在太多了,這樣的小概率事件時不時也會發(fā)生一次,同時搶到記賬權的礦機都能將自己生成的新區(qū)塊廣播到比特幣網絡中。
遇到這種情況,比特幣系統(tǒng)怎么處理呢?
在這種情況下,相當于網絡上的其他節(jié)點收到了兩個合法的新區(qū)塊,因為網絡節(jié)點的地域分布不同,所以,不同的節(jié)點收到這兩個新區(qū)塊的先后次序就會不同。此時,所有的節(jié)點會暫時保留兩個新區(qū)塊,并且把區(qū)塊鏈做一個臨時的分叉,如下圖所示:


你可能會想,那如果小概率事件再次發(fā)生,在區(qū)塊鏈第一次分叉后,又是同時產生了兩個新區(qū)塊,而恰好兩個新區(qū)塊產生在兩個不同的分支上,這時候,其他節(jié)點收到的區(qū)塊鏈還是兩個一樣長的分支,那怎么辦?很好辦,還是同樣的規(guī)則,只要分支一樣長就暫時保留,直到出現兩個分支不一樣長時,就放棄短于兩個區(qū)塊的,保留長的。那個被放棄的分支中所有交易和比特幣獎勵都會被判定為無效。
因為有了這個臨時分叉的規(guī)則,所以,比特幣玩家在完成一筆交易后,不能立即認為這筆交易是成功的,有可能會被取消,必須等到一定數量的新區(qū)塊生成后,如果交易依然沒有被取消,這才能放心地認為交易成功了。那到底要等到多少個新區(qū)塊產生才能放心呢?
按照概率來說的話,小額交易有三個新區(qū)塊產生就夠了,但是大額交易的話,為了更保險,一般認為等到六個新區(qū)塊產生,就足以放心了。前面說過,每個區(qū)塊產生的平均時間是10分鐘,也就意味著,一筆大額交易需要一個小時左右才能確認交易成功。
但是小額交易確認的時間往往會更長,甚至長達好幾天。聽到這個你可能會有點兒糊涂,剛才不是還說小額交易一般只要三個新區(qū)塊產生就夠了嗎?怎么確認時間反而會更長呢?比特幣網絡剛剛誕生的頭幾年,確實不會出現這樣的怪事,但是這幾年隨著交易量的猛增,就會出現這種怪事了。為什么?先回憶一下每個區(qū)塊的規(guī)則:
+
固定信息
+
收到的交易記錄
+
奧數
是的,允許不打包。原因不是礦工不想賺錢,而是“不可抗力”,關鍵問題是每一個區(qū)塊允許存儲的數據量有限。中本聰當初設計比特幣系統(tǒng)時,規(guī)定了每一個區(qū)塊最大只能是1MB,一條交易記錄大概是0.25KB,那么一個區(qū)塊最多可以儲存4000多條交易記錄,如果在一個新區(qū)塊產生的時段中,發(fā)生的交易請求超過4000條,那就肯定存不下了。
我們可以算算,這個量大概是一個怎樣的交易頻率,每個區(qū)塊的平均產生時間是10分鐘,也就意味著,平均每秒鐘的交易量如果超過7條,那么就一定會出現排隊等待打包的交易記錄了。這個交易頻率實在很低,要知道支付寶一秒鐘大約要處理上萬筆交易。這一秒鐘七筆交易對于全球來說,實在是太不夠用了。
一般來說,大額交易優(yōu)先打包,小額交易中手續(xù)費越高的交易越優(yōu)先打包,打包規(guī)則礦工有一定的自主權。比特幣交易手續(xù)費的規(guī)則比較復雜,不同的礦工收的還不一樣,不是三言兩語能說清,但有一點可能會讓你感到詫異,越是大額的交易反而收費越低,甚至免費。交易額越小反而費率越高。這是因為,交易手續(xù)費除了鼓勵礦工挖礦,還有一個非常重要的功能,就是防止有人惡意發(fā)布大量的小額交易造成信息擁堵。
現在,比特幣交易滯留是非常普遍的現象,很多小額交易甚至等上好幾天都確認不了,因此,很多人不惜附加很高的交易手續(xù)費來讓礦工提前替他們打包。
到這里,有關區(qū)塊鏈的核心原理就講完了,關鍵要記住,中本聰利用區(qū)塊鏈技術,巧妙地解決了賬本同步和信息不重復的問題,這就使得去中心化賬本的理想最終得以實現。
學習知識,我認為最佳的方式就是帶著問題學習,在學習過程中,先掌握知識的主干,如果還有興趣,再去了解那些枝枝杈杈。以上三節(jié),第一節(jié)是讓你帶上問題,第二、三節(jié)就是比特幣和區(qū)塊鏈知識的主干,如果你消化完畢,可以繼續(xù)閱讀下一節(jié),了解一些枝杈。
關于比特幣的知識點
·如何保證比特幣的產出速度大致恒定?
比特幣的產出速度本質上就是尋找奧數的速度,現在的奧數是要求前72位全部為零,如果把72改為73,那么尋找奧數的難度就立即翻一倍,同理,如果從72減為71,則難度減半。因此,系統(tǒng)只需要根據全網的平均算力來調節(jié)奧數的規(guī)則就可以很簡單地做到。現在的規(guī)則是平均每產生2016個新區(qū)塊后,根據產生這些新區(qū)塊的平均算力調節(jié)一次難度。我們也注意到,這種調節(jié)較為粗糙,只能翻倍或者減半。
·為何比特幣總量上限是2100萬枚?
這個總量上限是人為規(guī)定的。中本聰設計的規(guī)則是這樣:每增加21萬個區(qū)塊后,幣獎勵就減半,獎勵的初始值是50比特幣,所以北京時間2009年1月4日中本聰自己創(chuàng)建的第一個創(chuàng)世區(qū)塊,就獎勵給了自己50比特幣。按照平均10分鐘一個區(qū)塊的產出速度,大約是每隔四年會減半一次。
第一次減半發(fā)生在北京時間2012年11月29日7點24分,第21萬個區(qū)塊誕生,比特幣獎勵減少為25個。北京時間2016年7月10日凌晨0點46分,第42萬個區(qū)塊誕生,這次相隔時間大約是三年零七個月,比特幣獎勵再次減半,成為現在的12.5個。
知道了這個規(guī)則,我們就很容易根據當前的區(qū)塊高度計算出已經挖出的比特幣總量,截止到本文寫作時,比特幣的總量約1687萬枚。按照這樣的半衰期,大約到2140年,比特幣的產量就趨于零,上限是2100萬個,實際上不可能達到2100萬。比特幣允許交易的最小單位是0.00000001(10^(-8))比特幣,這個最小值也被稱為“一聰”,這是由腳本語言支持的最小數字精度決定的,因此,比特幣的總量上限就是2100萬億聰。
中本聰為什么要人為規(guī)定一個總量上限呢?因為他的理想是創(chuàng)造一種不能濫發(fā)的貨幣,從而在理論上徹底阻斷通貨惡性膨脹。至于這種理想能不能因為規(guī)定了上限而實現,是一個經濟學問題,我沒有能力多談,只知道在經濟學中,通貨膨脹和通貨緊縮同樣都是可怕的。
你可能馬上又想到一個問題:如果不再獎勵比特幣了,誰還去挖礦呢?別忘了,還有交易手續(xù)費的獎勵,比特幣獎勵雖然在不斷減少,但是交易手續(xù)費的獎勵是在不斷增加的,還是會有人愿意挖礦。并且,挖礦的難度也是可以動態(tài)調整的,總是能調整到一個相對平衡的狀態(tài)。
區(qū)塊鏈技術的未來前景

從宏觀上來看,目前主要還是投資品屬性,承認貨幣屬性的國家僅有澳大利亞和瑞典。
但區(qū)塊鏈的未來無疑是光明的,這是下一場互聯網理念的革新。區(qū)塊鏈技術還可以應用到日常生活的哪些場景呢?我們不妨暢想一下,例如自動駕駛+區(qū)塊鏈,可以成為滴滴公司的夢魘。
基于區(qū)塊鏈技術,開發(fā)出一種“智能合約”,這也是區(qū)塊鏈技術未來最大的應用前景之一。所謂智能合約就是不需要中間商,就能保證合約可以被自動完成,不怕違約。合約的支付方式是數字貨幣,合約生效的條件和執(zhí)行全部智能化。
比如我買一輛車,這輛車從工廠自動開到我家,我用指紋或者刷臉開車,合約自動執(zhí)行,數字貨幣支付給汽車廠,這才是真正的“沒有中間商掙差價”。有了自動駕駛和智能合約,還需要滴滴打車嗎?不需要了,汽車和客戶完全可以通過基于區(qū)塊鏈技術的軟件自動匹配。
未來,區(qū)塊鏈技術很可能在人類社會的各個領域扮演舉足輕重的角色,以下是《環(huán)球科學》2018年2月號提到的應用場景:
金融機構:全球銀行和投資機構正在研究、推動區(qū)塊鏈項目。自從2012年成立以來,處理銀行間國際交易的區(qū)塊鏈系統(tǒng)瑞波(Ripple)一直發(fā)展良好。像Bloom這樣的初創(chuàng)公司打算將區(qū)塊鏈用于信用報告,希望杜絕類似艾可飛(Equifax,美國征信機構)那樣因遭遇黑客入侵而導致數據泄露的事件。
政府:美國特拉華州和伊利諾斯州用分布式賬本發(fā)放出生證明,而佛蒙特州的一項法律允許使用區(qū)塊鏈技術驗證法律文件的真實性。迪拜將區(qū)塊鏈整合到多項行政服務中,如發(fā)放許可證。2016年,突尼斯開始通過區(qū)塊鏈發(fā)行一種叫作eDinar的電子法定貨幣。
科技創(chuàng)業(yè)者:以太坊網絡就像是一個為區(qū)塊鏈初創(chuàng)公司設立的應用商店,它的目的是支持新的應用程序,不像比特幣僅僅是一種電子現金生態(tài)系統(tǒng)。現在,有數百個項目和企業(yè)在這個網絡上運行。其中有個著名的項目叫作WePower,它致力于讓住戶能夠直接互相買賣可再生能源(比如屋頂式太陽能電池板產生的電能)。
版權所有者與知識產權所有者:英國音樂人伊莫珍·希普(Imogen Heap)創(chuàng)立了Mycelia科技孵化器,追蹤與創(chuàng)意作品有關的元數據,省去了iTunes這樣的中間商。
非營利組織和援助組織:點滴捐贈基金會(BitGive Foundation)正在用區(qū)塊鏈技術加強慈善捐贈問責。聯合國世界糧食計劃署正在用區(qū)塊鏈技術精簡對約旦、敘利亞難民提供援助的追蹤和交付過程。
學術機構:別想著紙質文憑了,區(qū)塊證書(blockcert)項目希望提高各種學位證書和職業(yè)認證的可信度和共享性。
資產管理公司:總部位于倫敦的區(qū)塊鏈公司常青賬本(Everledger)瞄準鉆石行業(yè),用區(qū)塊鏈記錄每顆鉆石的屬性和出處。名酒和藝術品也可以被追蹤。
新聞工作者:為打擊假新聞,Civil(去中心化新聞市場)為新聞工作者提供了一個創(chuàng)造不含廣告、不可更改的新聞平臺,這些新聞不受外部利益(如俄羅斯、臉書)的影響,并且受到讀者的支持。
普通人群:對于向家里寄錢的移民打工者,使用比特幣匯款的費用比使用西聯匯款要低。正是由于這個原因,現在韓國和菲律賓之間的國際匯款粗略估計有20%依賴于比特幣。
根據普華永道預測,到2020年,77%的全球金融服務業(yè)將采用區(qū)塊鏈作為生產系統(tǒng)或流程的一部分。
根據世界經濟論壇2015年的一項調查報告,預計到2025年,世界GDP的10%將會以基于區(qū)塊鏈的技術存儲。
結語
1973年,原本隸屬于美國軍方的計算機網絡阿帕網向世界開放,從此,國際互聯網誕生,今天,它是人類社會的血管。
1991年,第一個網頁在歐洲核子研究中心誕生,這是互聯網生活的創(chuàng)世時刻,今天,已經很難找到不受它影響的人和單位。
2008年11月1日,中本聰發(fā)表論文《比特幣:一種點對點的電子現金系統(tǒng)》(Bitcoin: A Peer-to-Peer Electronic Cash System),區(qū)塊鏈技術(理念)宣告誕生。2008年會不會成為人類歷史上與1973年和1991年同樣重要的年份,現在還無法下定論,但可能性非常大。
沒有人可以準確地預測未來,謹希望本文能為今天的戰(zhàn)略家、企業(yè)家、學子們提供一點小小的參考和啟發(fā)。
(本文特別感謝馮大輝先生的審校。)
(作者汪詰為科普作家,本文原刊《讀庫1802》,微信首發(fā)于公眾號“讀庫”(ID:dukubook),澎湃新聞獲授權轉發(fā)。)





- 報料熱線: 021-962866
- 報料郵箱: news@thepaper.cn
互聯網新聞信息服務許可證:31120170006
增值電信業(yè)務經營許可證:滬B2-2017116
? 2014-2025 上海東方報業(yè)有限公司