本文原刊《讀庫(kù)1802》,此處限于篇幅有所刪節(jié)
區(qū)塊鏈,成為這兩年最火的互聯(lián)網(wǎng)字眼,但估計(jì)大多數(shù)人都只是聽著耳熟,并不真正了解。
與區(qū)塊鏈一起出現(xiàn)最多的詞是比特幣,顯然,它們之間肯定存在某種緊密的關(guān)系。
本文是一篇深度介紹比特幣和區(qū)塊鏈知識(shí)的文章,我努力按照“自頂向下、逐次求精”的原則,將比特幣和區(qū)塊鏈知識(shí)像剝洋蔥一樣,一層一層地深入下去,讓讀者每剝下一層都有完整的知識(shí)收獲。
去中心化
區(qū)塊鏈原本是一種基于互聯(lián)網(wǎng)的信息編碼、傳輸、加密、解密、驗(yàn)證技術(shù),但在我看來(lái),現(xiàn)在已經(jīng)上升到了一種“去中心化”的理念,本質(zhì)上是一種理念上的革新。而比特幣就是這種理念的一個(gè)具體應(yīng)用。
打個(gè)比方來(lái)說(shuō),區(qū)塊鏈就相當(dāng)于電子商務(wù),你想想二十年前有幾個(gè)人搞得懂什么是電子商務(wù),它本質(zhì)上也是一種理念,只不過(guò)這種理念必須要借助一定的技術(shù)手段來(lái)實(shí)現(xiàn)。而比特幣就相當(dāng)于淘寶網(wǎng),是電子商務(wù)的一個(gè)具體應(yīng)用。
所以,我們要理解什么是區(qū)塊鏈,必須先理解什么是去中心化。我舉兩個(gè)例子來(lái)幫助你理解:
第一個(gè)例子是從網(wǎng)上下載電影。最早的時(shí)候,我們下載電影都是到一些知名的電影下載網(wǎng)站,這些網(wǎng)站會(huì)把電影文件存放在一臺(tái)或者一組服務(wù)器上,大家都訪問(wèn)這臺(tái)(組)服務(wù)器下載影片。這叫中心化。
在這個(gè)游戲規(guī)則中,電影網(wǎng)站的服務(wù)器就是中心,每一個(gè)下載電影的人只不過(guò)是這個(gè)中心拉出來(lái)的線而已。中心化的游戲中,玩家的地位是不平等的,網(wǎng)站主占據(jù)絕對(duì)強(qiáng)勢(shì)地位,他想讓你下載就下載,想給你限速就限速。
后來(lái),一種去中心化的下載模式出現(xiàn)了,這就是BT下載,也叫P2P(peer to peer)下載。現(xiàn)在我們講到P2P,一般是指那種個(gè)人借貸的網(wǎng)站,但最初的概念是從BT下載來(lái)的,P2P就是個(gè)人到個(gè)人,點(diǎn)到點(diǎn)。BT下載的原理與電影網(wǎng)站完全不同,影片并不是存在某個(gè)服務(wù)器上,而是大家互相從網(wǎng)絡(luò)上的每一個(gè)人那里去下載這個(gè)影片的一小部分,最后拼成一個(gè)完整的文件。
在這個(gè)游戲中,所有玩家的地位是完全平等的,任何一個(gè)玩家都可以隨時(shí)離場(chǎng)、隨時(shí)加入,只要還有人在玩,整個(gè)游戲就能正常運(yùn)行,沒(méi)有人擁有特別的權(quán)力。這就叫去中心化。
第二個(gè)例子,就是我們每天都在使用的銀行卡或者支付寶、微信這些人民幣支付手段,現(xiàn)金我們先拋開不談。我們用無(wú)現(xiàn)金的方式支付人民幣買東西,就是一個(gè)中心化的游戲,它的中心有好多級(jí),比如說(shuō),支付寶的服務(wù)器是第一級(jí)中心,支付寶資金的托管銀行如工商銀行、中信銀行的服務(wù)器就是第二級(jí)中心,這些銀行的再上一級(jí)中心就是央行——中國(guó)人民銀行的服務(wù)器。
在這個(gè)游戲中,不同級(jí)別玩家的權(quán)力、地位是不平等的,最大的Boss當(dāng)然是央行,它甚至能發(fā)行貨幣,它的權(quán)力可以大到分分鐘就把我們的錢全部搶光,很簡(jiǎn)單,它只需要突然增發(fā)貨幣就可以了,物價(jià)突然上漲一百倍,我們的錢就等于被搶光了。那貨幣游戲能不能像下載電影一樣去中心化呢?也是可以的,比特幣系統(tǒng)就是這樣一個(gè)去中心化的貨幣游戲系統(tǒng),你可以把它看成是一個(gè)大型的貨幣實(shí)驗(yàn)。
比特幣的游戲是這么玩的,就兩條核心規(guī)則。第一,它的貨幣發(fā)行不是由某個(gè)機(jī)構(gòu)說(shuō)了算,而是公開一套算法,每算出一個(gè)符合要求的數(shù)字,就相當(dāng)于挖到了若干個(gè)比特幣。誰(shuí)都可以去算,絕對(duì)公平,誰(shuí)也作不了弊,因?yàn)樗惴ū举|(zhì)上就是一個(gè)個(gè)數(shù)字去湊,湊出一個(gè)算一個(gè)。第二,比特幣的交易信息不是記在某一臺(tái)服務(wù)器上的,而是所有參與這個(gè)游戲的玩家電腦中一人一份,同步記錄,這種交易記錄在理論上幾乎是無(wú)法篡改的。
這就是“去中心化賬本”。
這樣一來(lái),所有游戲玩家的地位和權(quán)力就完全平等了,幾乎沒(méi)有任何一個(gè)玩家是特殊的。為什么要加上“幾乎”兩個(gè)字呢?因?yàn)椋吘鼓軌蛴心芰ν诒忍貛诺哪切┑V主還是有點(diǎn)特殊的,但這種特殊性并不是太大,而且礦主也沒(méi)有任何壁壘,只要你買得起好電腦,誰(shuí)都可以當(dāng)?shù)V主。
不得不說(shuō),比特幣的這個(gè)“去中心化”設(shè)計(jì)非常之妙。它的發(fā)明人,神秘的中本聰(Satoshi Nakamoto)確實(shí)是棵“大蔥”。
理解了去中心化,就等于理解了區(qū)塊鏈。一個(gè)真正的區(qū)塊鏈項(xiàng)目,就是通過(guò)合理的游戲規(guī)則設(shè)計(jì),輔以信息技術(shù),來(lái)踐行去中心化理念的項(xiàng)目。比特幣系統(tǒng)就是去中心化理念和區(qū)塊鏈技術(shù)的一個(gè)優(yōu)秀示范項(xiàng)目。
不夸張地說(shuō),我覺得這是一場(chǎng)互聯(lián)網(wǎng)的理念革命,是人類的又一次平等化革命。上一次革命是打破了人與人之間在身份地位上的不平等,這一次則是打破了游戲規(guī)則本身的不平等。正因?yàn)檫@樣,區(qū)塊鏈才能激發(fā)人們?nèi)绱舜蟮臒崆椋@是一個(gè)聽上去可以顛覆一切舊規(guī)則的新生事物。
然而,在我看來(lái),比特幣系統(tǒng)并不是一個(gè)成功的區(qū)塊鏈應(yīng)用,甚至先天不足。為什么這么說(shuō)呢?因?yàn)椋辞懊娼榻B的兩條比特幣核心游戲規(guī)則就知道,它有以下這些天生的缺陷:
第一,比特幣客戶端軟件需要巨大無(wú)比的存儲(chǔ)空間,因?yàn)槊恳粋€(gè)節(jié)點(diǎn)都必須記錄下從比特幣系統(tǒng)誕生的第一天起所有的交易記錄,截止到本文寫作時(shí)(2018年2月13日),這個(gè)交易記錄文件已經(jīng)有147GB那么大了,而且只會(huì)增加不會(huì)減少。
第二,為防止有人作弊,比特幣系統(tǒng)有一套很復(fù)雜的游戲規(guī)則來(lái)確保交易記錄是真實(shí)的,這樣就導(dǎo)致每一筆交易的確認(rèn)時(shí)間一般需要一個(gè)小時(shí)甚至幾天。想想吧,如果用比特幣去街邊買杯奶茶,會(huì)是什么情況。
第三,最多只有2100萬(wàn)枚比特幣,而且,無(wú)論有多少人在挖礦,系統(tǒng)規(guī)則決定了平均每十分鐘才能產(chǎn)出若干枚比特幣(2018年是每十分鐘12.5枚)。矛盾正如那句話:人民群眾日益增長(zhǎng)的比特幣需求與比特幣總量不足之間的矛盾。
比特幣不能代表區(qū)塊鏈,區(qū)塊鏈也不是比特幣。區(qū)塊鏈在未來(lái)可以有哪些應(yīng)用呢?
實(shí)際上,區(qū)塊鏈解決的核心問(wèn)題是信任問(wèn)題。所有的金融機(jī)構(gòu),銀行、保險(xiǎn)、券商等等,讓它們賴以生存的根本是信用,我們之所以會(huì)放心地買股票、買期貨、買紙黃金,都是因?yàn)槲覀冃湃纬洚?dāng)交易中介的機(jī)構(gòu),而這些交易中介,就是金融活動(dòng)的中心,我們寧愿為此付出一定的手續(xù)費(fèi)、交易費(fèi),金融機(jī)構(gòu)也因此掙得盆滿缽滿。
但是,當(dāng)區(qū)塊鏈在人們的觀念上和技術(shù)上都成熟后,這種中心化的金融機(jī)構(gòu)是有可能被顛覆掉的,因?yàn)槲覀兛梢岳脜^(qū)塊鏈的理念和技術(shù)來(lái)改寫游戲規(guī)則,讓所有的金融產(chǎn)品交易都不再需要一個(gè)中心,而全部以點(diǎn)對(duì)點(diǎn)的方式完成,并且從理論上能夠保證信用問(wèn)題。
到了那時(shí),銀行還需不需要我不知道,因?yàn)殂y行還涉及更復(fù)雜的國(guó)家利益問(wèn)題,但是,一定會(huì)有很多商業(yè)金融機(jī)構(gòu)受到區(qū)塊鏈的沖擊。
再比如,公證也是一個(gè)典型的中心化的販賣信用的機(jī)構(gòu),區(qū)塊鏈完全可以改寫公證行業(yè)。關(guān)于區(qū)塊鏈的應(yīng)用,后文還會(huì)有詳細(xì)闡述。
到此,我們對(duì)比特幣和區(qū)塊鏈建立起了總體概念,接下來(lái),我要幫你剝掉下一層洋蔥皮,了解一下比特幣系統(tǒng)的基本原理。
比特幣基本原理
數(shù)字指紋和非對(duì)稱加密
去中心化的賬本還是很容易理解的,只要把所有的交易記錄都記在每一臺(tái)電腦的賬本上,然后就可以用計(jì)算機(jī)的強(qiáng)大計(jì)算能力,隨時(shí)隨地查出每個(gè)人的余額是多少。
但是大家不要忘了,在網(wǎng)絡(luò)上記賬與線下記賬不同。網(wǎng)絡(luò)上都是消息來(lái)消息去的,大家根本不見面。如果你收到一條信息,上面寫著“A支付5元錢給B”。這時(shí),你不禁要問(wèn):
第一,如何確保這條信息內(nèi)容的完整性?第二,如何確保信息的真實(shí)性?這兩個(gè)問(wèn)題不解決,去中心化賬本的理想就無(wú)法實(shí)現(xiàn)。解決辦法是有的。我們先來(lái)看怎么解決第一個(gè)問(wèn)題:確保記賬信息的完整性。
這里要引入一個(gè)概念,就是數(shù)字指紋(很多文章中也叫數(shù)字簽名、哈希值)。電腦上的任何信息,按照國(guó)際統(tǒng)一的編碼標(biāo)準(zhǔn),最終都是以0和1來(lái)存儲(chǔ),這就是大名鼎鼎的二進(jìn)制。例如“錢”這個(gè)字用二進(jìn)制表示就是“1001010010110001”,再比如“A支付5元錢給B”這句話,用二進(jìn)制表示就是:
010000011100101001011111001110110110000011010110100010
1000011100101001011000111111101101100101000010
普通人看到二進(jìn)制往往無(wú)法和數(shù)字建立聯(lián)系,實(shí)際上,這串二進(jìn)制數(shù)字也可以用一組十進(jìn)制的數(shù)字來(lái)表示,它們完全相等:
100000111001010080606408664086260086008422488464406
842602666664446622202242228042826680682422068400
看到了十進(jìn)制的數(shù),很多人才會(huì)認(rèn)為這確實(shí)是一個(gè)“數(shù)字”。這就是數(shù)字指紋了嗎?還不是。
二進(jìn)制和原始信息只是一一對(duì)應(yīng)的編碼關(guān)系,一個(gè)英文字母或者數(shù)字對(duì)應(yīng)8個(gè)比特,一個(gè)中文字符對(duì)應(yīng)16比特,原始信息越長(zhǎng),二進(jìn)制編碼也越長(zhǎng)。任何原始信息都可以轉(zhuǎn)換成一串?dāng)?shù)字,有了數(shù)字就可以做數(shù)學(xué)運(yùn)算,玩出各種花樣了。
現(xiàn)在,我們給數(shù)學(xué)家提出一個(gè)要求:請(qǐng)?jiān)O(shè)計(jì)一個(gè)算法,將任何一條信息,不論長(zhǎng)短,都計(jì)算出一個(gè)唯一的“數(shù)字指紋”與它對(duì)應(yīng)。但有兩個(gè)附加條件:一、指紋的長(zhǎng)度必須固定;二、只能從“原始信息”計(jì)算出“指紋”,誰(shuí)也無(wú)法從“指紋”反向計(jì)算出“原始信息”。
這個(gè)要求,看似很過(guò)分,但是難不倒數(shù)學(xué)家。1993年,美國(guó)國(guó)家安全局發(fā)布了SHA算法,全稱是Secure Hash Algorithm,中文一般翻譯為“安全散列算法”或者“安全哈希算法”,這個(gè)名稱估計(jì)把你嚇到了,聽著特學(xué)術(shù)(我有時(shí)候會(huì)聽人說(shuō)“嘻哈算法”,忍不住偷笑一下,各位千萬(wàn)別讀錯(cuò))。
Hash這個(gè)詞沒(méi)有對(duì)應(yīng)的中文意譯詞,如果讓我來(lái)意譯的話,我會(huì)翻譯為“數(shù)字摘要算法”,基本上能表達(dá)該算法的含義,就是從目標(biāo)對(duì)象中提取出一個(gè)特征摘要,好像人的指紋一樣。
SHA算法從1993年發(fā)布它的第零代,一直到2015年發(fā)布第三代,二十二年間已經(jīng)升級(jí)了四次。比特幣用到的是第二代算法,簡(jiǎn)稱為SHA-256算法,這里的“256”表示,由這個(gè)算法生成的指紋長(zhǎng)度固定為256比特。大家可以很容易在網(wǎng)上找到在線生成SHA-256指紋的網(wǎng)頁(yè),這個(gè)算法是公開的,誰(shuí)都能用,例如,“錢”字的SHA-256指紋是:
000011101011100001100011110001111000110110100011111000111
0000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000
“A支付5元錢給B”的SHA-256指紋是:
11110111101110110010100110111010110111110000010111010000
00000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000
大家看到,不論原始信息有多長(zhǎng),生成的指紋都是一樣長(zhǎng)的。而且這個(gè)指紋還有兩個(gè)顯著特點(diǎn):一、原始信息只要改變一點(diǎn)點(diǎn),哪怕只改動(dòng)一個(gè)數(shù)字,整個(gè)指紋就會(huì)發(fā)生巨大的變化,毫無(wú)規(guī)律可循;二、截至本文寫作時(shí),世界上還沒(méi)有任何公開的方法可以從指紋反向計(jì)算出原始信息,普遍認(rèn)為理論上無(wú)法破解。
不過(guò),在實(shí)際的使用中,256位的二進(jìn)制數(shù)據(jù)太長(zhǎng)了,使用起來(lái)極不方便,還很容易看花眼。于是,指紋通常用十六進(jìn)制來(lái)顯示,反正二進(jìn)制到十六進(jìn)制是一一對(duì)應(yīng)的。
“錢”的十六進(jìn)制指紋是:
0eb863c78da3e38b6b92d1f3999566e5d8e17a6f700a112c8993cf6bfc48f70b
“A支付5元錢給B”的十六進(jìn)制指紋是:
f7bb29badf05d41e60b1036d749f134a901c7a97daef7a1fe4e1e14471bd4833
這樣看起來(lái)就簡(jiǎn)潔多了,我們可以試一下把“5元錢”改為“6元錢”,看看指紋的變化有多大,下面是改后的指紋:
1d48da12b0fb29efe6f690185922f96d259bd887343735898bfc3901a83b58c3
看到了吧,僅僅改動(dòng)了一個(gè)數(shù)字,但指紋幾乎沒(méi)有一位是相同的。這就是SHA算法的神奇之處,也確保了指紋沒(méi)有規(guī)律可循,無(wú)法被反向破譯。
有了數(shù)字指紋,就可以解決第一個(gè)問(wèn)題:確保記賬信息的完整性。怎么做?很簡(jiǎn)單,我們只要做出一個(gè)規(guī)定,任何發(fā)出信息的一方,必須同時(shí)發(fā)出原始信息的指紋。那么收到信息的一方只需要用公開的SHA-256算法把原始信息也生成一個(gè)指紋,和收到的指紋比對(duì)一下,如果一致,就說(shuō)明收到的信息是完整的;如果不一致,說(shuō)明收到的原始信息由于某種原因被修改過(guò)了,這個(gè)原因可能是數(shù)據(jù)傳輸過(guò)程中的錯(cuò)誤,也可能是被人篡改了等等。
那會(huì)不會(huì)有一種巧合,原始信息和指紋都因?yàn)槟承﹤鬏斿e(cuò)誤發(fā)生了改變,恰好錯(cuò)誤的指紋數(shù)據(jù)就是出錯(cuò)后的原始信息指紋,也就是負(fù)負(fù)得正了?這事當(dāng)然不是絕對(duì)的不可能,但是從概率上來(lái)說(shuō),想要自然發(fā)生,大概等到宇宙滅亡了也不會(huì)發(fā)生一次,概率已經(jīng)低到可以徹底忽略。
不過(guò),你可能也想到了,還有一種可能性,就是黑客惡意篡改。因?yàn)镾HA算法是公開的,如果有一個(gè)黑客攔截了原始信息和指紋,他把原始信息修改掉,比如把“A支付5元錢給B”改為“A支付5元錢給C”,同時(shí)生成新的指紋發(fā)送給你。這該怎么辦呢?這就是我們要解決的第二個(gè)問(wèn)題:如何確保信息的真實(shí)性?解決這個(gè)問(wèn)題,等于也解決了信息發(fā)送方想抵賴的問(wèn)題。
解決第二個(gè)問(wèn)題的關(guān)鍵就是給指紋加密,但是,這種加密還不能是我們?cè)谡檻?zhàn)劇里看到的那種電報(bào)加密的方式。大家不妨回憶一下看過(guò)的諜戰(zhàn)劇,我地下工作者收到一封電報(bào),上面寫著2352,于是他從書架上拿出一本書,翻到第23頁(yè),再數(shù)到第52個(gè)字,寫著一個(gè)“撤”字。這就是組織上通知這位同志馬上撤退,有人叛變了。這種加密方式的壞處在于,只要敵人也掌握了密碼本,不但可以破譯電報(bào),還能發(fā)送假電報(bào)釣魚,原因就在于加密和解密的方法是完全一樣的,能解密就能加密,所以,這種加密方法被叫作“對(duì)稱加密”,解密的過(guò)程只不過(guò)是加密的逆過(guò)程而已。
“對(duì)稱加密”用在我們想要的去中心化賬本系統(tǒng)中就不好使了,因?yàn)槲覀兗纫尵W(wǎng)絡(luò)上的每一個(gè)信息接收者能夠解開密文知道原始信息,又要讓黑客即使拿到密文也只能干瞪眼,無(wú)法篡改密文。
個(gè)中關(guān)鍵,在于加密和解密的方法必須不一樣。所以,就要求數(shù)學(xué)家搞出一種全新的加密算法,這種算法是非對(duì)稱的,加密、解密不是互逆的過(guò)程。
能不能搞出這樣一個(gè)巧妙的加密算法呢?當(dāng)然是能的,否則就不會(huì)有比特幣了嘛。下面我用一個(gè)簡(jiǎn)化版的非對(duì)稱加密算法模擬一下我們想實(shí)現(xiàn)的效果。
原始信息是一組數(shù)字:269。
現(xiàn)在,我用一種只有我自己才知道的加密算法得到一個(gè)密文:24479。
然后,我把24479告訴所有人的同時(shí),還宣布:解開我這條密文的鑰匙就是數(shù)字11(后面我們就把這個(gè)公開的鑰匙稱為公鑰),任何人只要用24479乘以11,取結(jié)果的后三位,就能得到我想要告訴大家的原始信息。不信嗎?我們?cè)囋嚳矗?/p>
24479×11=269269
哇,好有意思,不單后三位,連前三位都是原始信息。我是怎么加密的呢?很簡(jiǎn)單,我把原始信息乘以91就是密文,而這個(gè)91就可以叫“私鑰”,我私人的加密鑰匙。這樣就實(shí)現(xiàn)了加密和解密是完全不一樣的兩種算法。
你可以試試看,用任意一個(gè)三位數(shù)字乘以91,得到的結(jié)果再乘以11,最終得到的結(jié)果一定是原始三位數(shù)寫兩遍。例如:218×91×11=218218。
如果用任意一個(gè)二位數(shù)字乘以91,得到的結(jié)果再乘以11,最終得到的結(jié)果后二位數(shù)字也一定與原始數(shù)字相同。例如:18×91×11=18018,至于它背后的數(shù)學(xué)原理,稍微琢磨一下就能想明白了。
但是請(qǐng)記住,我舉的這個(gè)例子只是讓你體會(huì)一下什么叫非對(duì)稱加密,因?yàn)檫@個(gè)例子的算法太過(guò)簡(jiǎn)單,所以知道了公鑰是11的人,很容易猜出私鑰是91。但是比特幣系統(tǒng)采用的算法比這個(gè)復(fù)雜多了,那個(gè)算法確保了任何人即使知道原文、密文、公鑰,也無(wú)法猜到私鑰。也就是說(shuō),黑客只能解密,但不會(huì)加密,無(wú)法修改密文。
這么牛的算法,就是聲名遠(yuǎn)播的“橢圓曲線算法”,簡(jiǎn)稱為ECC算法。
它是在1985年由兩位美國(guó)人尼爾·庫(kù)伯利茲(Neal Koblitz)和維克托·米勒(Victor Miller)分別獨(dú)立提出的。在密碼學(xué)中的廣泛使用,也就是最近十多年的時(shí)間,數(shù)學(xué)家真的很厲害。
有了這個(gè)算法,就能確保去中心化的記賬系統(tǒng)中,每條交易記錄的真實(shí)性。我們來(lái)演示一下比特幣的去中心化記賬系統(tǒng)如何利用SHA和ECC算法確保賬本的完整性和真實(shí)性(以下是簡(jiǎn)化后的原理說(shuō)明,真實(shí)過(guò)程還要復(fù)雜很多,但原理不變)。
需要記賬的原始交易信息:A支付5元錢給B(以下簡(jiǎn)稱“原文”)。
第一步:利用SHA將原文生成數(shù)字指紋:
f7bb29badf05d41e60b1036d749f134a901c7a97daef7a1fe4e1e14471bd4833
第二步:隨機(jī)生成一個(gè)私鑰,它的格式與指紋是完全一樣的,例如:
18E14A7B6A307F426A94F8114701E7C8E774E7F9A47E2C2035DB29A206321725
第三步:利用ECC將第一步得到的數(shù)字指紋通過(guò)私鑰加密,得到密文:
869ac57b83ccf75ca9da8895823562fffb611e3c297d9c2d4612aeeb32850078
第四步:根據(jù)私鑰生成一個(gè)公鑰:
600FFE422B4E00731A59557A5CCA46CC183944191006324A447BDB2D98D4B408
第五步:將原文、密文和公鑰廣播到整個(gè)比特幣網(wǎng)絡(luò)中。信息發(fā)送步驟到此結(jié)束,以下是信息接收步驟。
第六步:接收方利用ECC將密文通過(guò)公鑰解密,得到指紋1。
第七步:利用SHA將原文生成數(shù)字指紋,得到指紋2。
第八步:比對(duì)指紋1是否等于指紋2。
第九步:如果相等,則確認(rèn)該條信息是合法交易信息,添加到自己的賬本中。如果不相等,則拋棄該信息。至此全部結(jié)束。在真實(shí)的比特幣網(wǎng)絡(luò)中,交易雙方都是完全匿名的,交易者A或者B都是賬號(hào)(有些文章中稱“地址”,含義一樣),賬號(hào)背后的主人信息是沒(méi)有任何記錄的,可以是一條狗,也可以是一個(gè)人工智能,而賬號(hào)則是根據(jù)公鑰,通過(guò)一定的算法生成的。
一個(gè)私鑰幾乎可以生成無(wú)數(shù)個(gè)不同的對(duì)應(yīng)公鑰,也就意味著可以生成幾乎無(wú)數(shù)個(gè)不同的對(duì)應(yīng)賬號(hào)。誰(shuí)掌握了私鑰,誰(shuí)就是賬號(hào)的主人。
在比特幣網(wǎng)絡(luò)中,私鑰是動(dòng)用賬號(hào)中比特幣的唯一憑證,如果你的私鑰被盜,你就永遠(yuǎn)失去了它,打官司也要不回來(lái),因?yàn)闆](méi)有任何方式可以證明他的私鑰是從你這里偷走的。
比特幣原理深入
區(qū)塊鏈技術(shù)
到此為止,我們?nèi)ブ行幕~本的理想只實(shí)現(xiàn)了一半,并沒(méi)完全實(shí)現(xiàn),為什么呢?因?yàn)檫€有兩個(gè)重大的問(wèn)題沒(méi)有解決。
第一個(gè)問(wèn)題:賬本同步問(wèn)題。比特幣網(wǎng)絡(luò)中有那么多臺(tái)電腦,一條交易信息發(fā)送出來(lái)的時(shí)候,當(dāng)然不可能所有的電腦都開機(jī),必然有一些處于離線狀態(tài),開了電腦也未必開著比特幣客戶端,所以總有一些電腦無(wú)法立刻收到這條信息。這樣就會(huì)導(dǎo)致不同電腦上的記錄不同步,到底以誰(shuí)的電腦記錄為準(zhǔn)呢?
第二個(gè)問(wèn)題:如何防止同一個(gè)比特幣被重復(fù)使用?假如有一個(gè)黑客,他只有一個(gè)比特幣,但是他卻同時(shí)把這個(gè)比特幣付給A和B(雖然理論上無(wú)法真正同時(shí),但可以做到間隔時(shí)間極短),于是就會(huì)在網(wǎng)絡(luò)上廣播兩條信息,一條是支付給A的信息,一條是支付給B的信息,因?yàn)榫W(wǎng)速的關(guān)系,必然有的電腦先收到信息1,有的電腦先收到信息2,這就產(chǎn)生了矛盾,如何確定哪一條信息是有效的呢?
為解決上面這兩個(gè)難題,區(qū)塊鏈技術(shù)橫空出世。
中本聰?shù)恼撐恼嬲谌澜缦破鸫箫L(fēng)大浪,不是因?yàn)樯弦还?jié)介紹的比特幣基本工作原理——數(shù)字指紋和非對(duì)稱加密都是成熟的技術(shù),真正讓他一戰(zhàn)成名的是區(qū)塊鏈技術(shù)。但請(qǐng)記住:比特幣不是區(qū)塊鏈,它只是區(qū)塊鏈技術(shù)的一個(gè)具體應(yīng)用。
到底什么是區(qū)塊鏈?它怎樣巧妙地解決了賬本同步和信息不重復(fù)的問(wèn)題呢?
中本聰?shù)目傮w思路是這樣的:比特幣網(wǎng)絡(luò)中的所有電腦都只認(rèn)可唯一的一個(gè)賬本,任何一臺(tái)電腦在接入比特幣網(wǎng)絡(luò)時(shí),首先要同步這個(gè)唯一的賬本,任何一臺(tái)電腦想要往這個(gè)賬本上寫入新的信息,必須完成一套繁瑣的“手續(xù)”,這套手續(xù)復(fù)雜到幾乎不太可能被同時(shí)完成兩次,即便真的發(fā)生了巧合,被同時(shí)完成了兩次甚至多次,也有一個(gè)規(guī)則可以判定哪條信息是合法的,哪條信息該被拋棄。
讓我一步步為你揭開區(qū)塊鏈技術(shù)的面紗。
為什么要叫“區(qū)塊鏈”?因?yàn)橹斜韭敯堰@個(gè)賬本設(shè)計(jì)成了由一個(gè)個(gè)“信息包”首尾相連而成的長(zhǎng)鏈,每一個(gè)信息包被稱為一個(gè)“區(qū)塊”,這些區(qū)塊每一個(gè)都有唯一的編號(hào)——在比特幣系統(tǒng)中,編號(hào)被稱為高度(height),這些編號(hào)就是自然數(shù)1、2、3、4……一直往下排,不允許跳躍,也不允許中斷和重復(fù)。
下面講解區(qū)塊的具體規(guī)則。
第一個(gè)區(qū)塊當(dāng)然是由區(qū)塊鏈的發(fā)明人中本聰親自創(chuàng)建的,那是北京時(shí)間2009年1月4日,在芬蘭赫爾辛基的一臺(tái)小型服務(wù)器上,第一個(gè)區(qū)塊誕生了,這也被稱作“創(chuàng)世區(qū)塊”(genesis block)。在這個(gè)區(qū)塊上,包含的主要信息是:
區(qū)塊高度:0
The Times 03/Jan/2009 Chancellor on brinkof second bailout for banks
(譯文:《泰晤士報(bào)》2009年1月3日頭版文章標(biāo)題:財(cái)政大臣面臨第二次為銀行提供緊急救助的窘境)
“某賬號(hào)”獲得50比特幣獎(jiǎng)勵(lì)
中間那段話是中本聰刻在第一個(gè)區(qū)塊上的紀(jì)念,從第二個(gè)區(qū)塊開始,以后每個(gè)區(qū)塊就必須嚴(yán)格按照比特幣系統(tǒng)的規(guī)則來(lái)創(chuàng)建了。區(qū)塊的規(guī)則有(至少包含以下信息):
前一個(gè)區(qū)塊的數(shù)字指紋+固定信息+收到的交易記錄+一個(gè)隨機(jī)數(shù)
區(qū)塊鏈的一個(gè)奧妙之處在于尾巴上加的這個(gè)隨機(jī)數(shù)(nonce),因?yàn)樗鼘?shí)在太奧妙,讓我等凡夫俗子只能大呼過(guò)癮,所以后面我就把它稱為“奧數(shù)”,以方便講解。
中本聰規(guī)定:這個(gè)新區(qū)塊的數(shù)字指紋(一個(gè)256位的二進(jìn)制數(shù))的前72位必須全部為0。
回憶一下我們前面介紹過(guò)的數(shù)字指紋的知識(shí)。因?yàn)镾HA算出來(lái)的指紋是毫無(wú)規(guī)律可循的一組數(shù)字,所以,想要滿足中本聰?shù)倪@個(gè)變態(tài)規(guī)定,唯一的辦法就只能憑運(yùn)氣湊奧數(shù),從0開始不斷地去嘗試,直到滿足要求為止。這是一個(gè)純粹的概率問(wèn)題。我們來(lái)算一下要滿足這個(gè)要求的概率是多大。
因?yàn)槎M(jìn)制數(shù),每一位只有兩種可能性,0或者1,所以,湊出一個(gè)奧數(shù)的可能性是2的72次方分之一,也就是:
1/4722366482869645213696
這個(gè)數(shù)字已經(jīng)長(zhǎng)到看花眼了吧,它大約就是4.7萬(wàn)億億分之一。換句話說(shuō),就是平均要進(jìn)行4.7萬(wàn)億億次SHA計(jì)算,才可能得到一個(gè)奧數(shù),可見每一個(gè)奧數(shù)的金貴。
最巧妙的是,奧數(shù)并不是某一個(gè)方程的解,解出一個(gè)少一個(gè),因?yàn)槊恳粋€(gè)區(qū)塊的字符串都不同,所以,每一次尋找奧數(shù)都需要從0開始,任何一個(gè)數(shù)字都有可能成為新的奧數(shù),完全沒(méi)有規(guī)律可循。
一旦成功找到一個(gè)奧數(shù),就獲得了一次記賬權(quán)力,可以給賬本上新增加一個(gè)區(qū)塊。那么,為什么要花時(shí)間找奧數(shù),去給賬本記賬呢?因?yàn)楹锰帉?shí)在太大了。
比特幣系統(tǒng)規(guī)定,每成功增加一個(gè)區(qū)塊,這臺(tái)記賬的電腦(實(shí)際上是某個(gè)賬號(hào))就能獲得12.5個(gè)比特幣的獎(jiǎng)勵(lì)(截止到本文寫作時(shí)的獎(jiǎng)金額),以及這個(gè)區(qū)塊中所有交易的手續(xù)費(fèi),總額取決于交易頻繁程度(平均約2比特幣)。這樣一來(lái),相當(dāng)于每找到一個(gè)奧數(shù),可以獲得14.5比特幣獎(jiǎng)勵(lì),按照本文寫作時(shí)的比特幣市場(chǎng)價(jià),相當(dāng)于12萬(wàn)美元。這么豐厚的獎(jiǎng)勵(lì),自然就會(huì)吸引大量的電腦去搶奪記賬權(quán)。
尋找奧數(shù)就是搶記賬權(quán),搶記賬權(quán)也就是挖比特幣。
因此,尋找奧數(shù)也被形象地稱為“挖礦”。挖礦的電腦就叫“礦機(jī)”,一個(gè)裝滿礦機(jī)的房間當(dāng)然就可以叫“礦場(chǎng)”了,礦場(chǎng)的主人就是“礦主”,他們是比特幣江湖中的弄潮兒。
但是,我需要給你解釋一下挖礦的難度,讓你打消去挖礦的沖動(dòng)。個(gè)人電腦的運(yùn)算速度大約是每秒可以進(jìn)行60萬(wàn)次SHA計(jì)算,也就意味著,一臺(tái)個(gè)人電腦平均需要花一千萬(wàn)年才有可能湊出一個(gè)奧數(shù)。當(dāng)然,這是一種概率計(jì)算,我不能從理論上排除某人的人品超新星爆發(fā),只算一次奧數(shù)就中了4.7萬(wàn)億億分之一概率的獎(jiǎng)。但我還是想勸你不要相信自己有那個(gè)命。
給你看看人家專業(yè)的礦場(chǎng)是怎樣的:
一個(gè)大型比特幣礦場(chǎng)。圖片來(lái)源:谷歌圖片搜索
大規(guī)模的礦場(chǎng)據(jù)說(shuō)有幾萬(wàn)甚至幾十萬(wàn)臺(tái)礦機(jī)同時(shí)運(yùn)行。我在《看看新聞》2017年6月17日的一則新聞中看到,記者采訪了一個(gè)位于中國(guó)四川的礦場(chǎng),根據(jù)報(bào)道,這個(gè)礦場(chǎng)有5000多臺(tái)礦機(jī),屬于小規(guī)模,平均每天耗電超過(guò)20萬(wàn)度,當(dāng)?shù)氐碾妰r(jià)是每度3毛,一天光是電費(fèi)就6萬(wàn)多元,平均每天可以挖出大約50個(gè)比特幣,一年左右回本,之后能做到20%左右的利潤(rùn)。
不過(guò)我覺得這個(gè)報(bào)道中的數(shù)據(jù)前后矛盾,便查了一下,當(dāng)時(shí)比特幣的市場(chǎng)價(jià)是大約每個(gè)2500美元,美元兌人民幣的匯率大約是6.8,所以,每天的收入大約是85萬(wàn)人民幣,一年的收入大約3.1億元,一臺(tái)礦機(jī)的成本均價(jià)在一到兩萬(wàn)元,礦場(chǎng)的礦機(jī)總成本是5000萬(wàn)到1億元,即使算上電費(fèi)等,一年起碼有兩億的利潤(rùn)。
在充分的市場(chǎng)競(jìng)爭(zhēng)下,出現(xiàn)這種暴利的可能性很低。所以,不是記者搞錯(cuò)了,就是被采訪對(duì)象吹牛不打草稿。由于比特幣的價(jià)格和全網(wǎng)算力的波動(dòng)很大,所以投資比特幣礦場(chǎng)很難做長(zhǎng)期預(yù)測(cè),不確定因素太多。
根據(jù)我們前面掌握的比特幣知識(shí),50個(gè)比特幣,相當(dāng)于找到了4個(gè)奧數(shù),搶到了4次記賬權(quán)。目前,整個(gè)比特幣網(wǎng)絡(luò)的所有礦機(jī),加起來(lái)的總算力能達(dá)到的水平,大約平均每10分鐘可以找到一個(gè)奧數(shù),也就意味著平均每10分鐘生成一個(gè)新的區(qū)塊。當(dāng)然,這個(gè)10分鐘是平均數(shù),快一點(diǎn)的話三四分鐘生成一個(gè)區(qū)塊,慢一點(diǎn)的話15分鐘左右。
正因?yàn)閵W數(shù)太難找,每個(gè)區(qū)塊平均要10分鐘才能生成一個(gè),所以就能基本解決本節(jié)開頭提出的第一個(gè)問(wèn)題“如何同步賬本”,只要有個(gè)三四分鐘的時(shí)間,足以讓所有在線的電腦同步到這個(gè)區(qū)塊了,那些不在線的電腦或者第一次運(yùn)行客戶端的電腦,上線以后必須先做一件事情,就是從相鄰的節(jié)點(diǎn)上獲取最新的賬本。
請(qǐng)注意,我用了“基本解決”這個(gè)詞,也就意味著,并沒(méi)有完全解決“賬本同步”的問(wèn)題。這是因?yàn)榭倳?huì)有極小的概率兩臺(tái)礦機(jī)恰好同時(shí)(只要在網(wǎng)絡(luò)上所有在線的節(jié)點(diǎn)沒(méi)有完成區(qū)塊鏈同步之前都可以算同時(shí))找到奧數(shù),也就意味著同時(shí)搶到了記賬權(quán)。因?yàn)榈V機(jī)實(shí)在太多了,這樣的小概率事件時(shí)不時(shí)也會(huì)發(fā)生一次,同時(shí)搶到記賬權(quán)的礦機(jī)都能將自己生成的新區(qū)塊廣播到比特幣網(wǎng)絡(luò)中。
遇到這種情況,比特幣系統(tǒng)怎么處理呢?
在這種情況下,相當(dāng)于網(wǎng)絡(luò)上的其他節(jié)點(diǎn)收到了兩個(gè)合法的新區(qū)塊,因?yàn)榫W(wǎng)絡(luò)節(jié)點(diǎn)的地域分布不同,所以,不同的節(jié)點(diǎn)收到這兩個(gè)新區(qū)塊的先后次序就會(huì)不同。此時(shí),所有的節(jié)點(diǎn)會(huì)暫時(shí)保留兩個(gè)新區(qū)塊,并且把區(qū)塊鏈做一個(gè)臨時(shí)的分叉,如下圖所示:
接下來(lái),比特幣網(wǎng)絡(luò)中必然又會(huì)有其中一個(gè)節(jié)點(diǎn)(礦機(jī))搶到了記賬權(quán),這時(shí)該節(jié)點(diǎn)就會(huì)將生成的最新區(qū)塊接到其中的一個(gè)分支上,那到底是接到新區(qū)塊1,還是新區(qū)塊2上呢?系統(tǒng)規(guī)則是:這個(gè)節(jié)點(diǎn)先收到哪個(gè)區(qū)塊,就接到哪個(gè)區(qū)塊上,同時(shí)放棄另一個(gè)區(qū)塊,然后全網(wǎng)廣播,如下圖所示:
比特幣網(wǎng)絡(luò)上的所有節(jié)點(diǎn)在收到最新的區(qū)塊鏈后,只要發(fā)現(xiàn)其中一個(gè)分支比另外一個(gè)分支多兩個(gè)區(qū)塊了,就立即也放棄那個(gè)短的分支。總之,比特幣網(wǎng)絡(luò)永遠(yuǎn)只承認(rèn)更長(zhǎng)的那條分支。
你可能會(huì)想,那如果小概率事件再次發(fā)生,在區(qū)塊鏈第一次分叉后,又是同時(shí)產(chǎn)生了兩個(gè)新區(qū)塊,而恰好兩個(gè)新區(qū)塊產(chǎn)生在兩個(gè)不同的分支上,這時(shí)候,其他節(jié)點(diǎn)收到的區(qū)塊鏈還是兩個(gè)一樣長(zhǎng)的分支,那怎么辦?很好辦,還是同樣的規(guī)則,只要分支一樣長(zhǎng)就暫時(shí)保留,直到出現(xiàn)兩個(gè)分支不一樣長(zhǎng)時(shí),就放棄短于兩個(gè)區(qū)塊的,保留長(zhǎng)的。那個(gè)被放棄的分支中所有交易和比特幣獎(jiǎng)勵(lì)都會(huì)被判定為無(wú)效。
因?yàn)橛辛诉@個(gè)臨時(shí)分叉的規(guī)則,所以,比特幣玩家在完成一筆交易后,不能立即認(rèn)為這筆交易是成功的,有可能會(huì)被取消,必須等到一定數(shù)量的新區(qū)塊生成后,如果交易依然沒(méi)有被取消,這才能放心地認(rèn)為交易成功了。那到底要等到多少個(gè)新區(qū)塊產(chǎn)生才能放心呢?
按照概率來(lái)說(shuō)的話,小額交易有三個(gè)新區(qū)塊產(chǎn)生就夠了,但是大額交易的話,為了更保險(xiǎn),一般認(rèn)為等到六個(gè)新區(qū)塊產(chǎn)生,就足以放心了。前面說(shuō)過(guò),每個(gè)區(qū)塊產(chǎn)生的平均時(shí)間是10分鐘,也就意味著,一筆大額交易需要一個(gè)小時(shí)左右才能確認(rèn)交易成功。
但是小額交易確認(rèn)的時(shí)間往往會(huì)更長(zhǎng),甚至長(zhǎng)達(dá)好幾天。聽到這個(gè)你可能會(huì)有點(diǎn)兒糊涂,剛才不是還說(shuō)小額交易一般只要三個(gè)新區(qū)塊產(chǎn)生就夠了嗎?怎么確認(rèn)時(shí)間反而會(huì)更長(zhǎng)呢?比特幣網(wǎng)絡(luò)剛剛誕生的頭幾年,確實(shí)不會(huì)出現(xiàn)這樣的怪事,但是這幾年隨著交易量的猛增,就會(huì)出現(xiàn)這種怪事了。為什么?先回憶一下每個(gè)區(qū)塊的規(guī)則:
前一個(gè)區(qū)塊的數(shù)字指紋+固定信息+收到的交易記錄+奧數(shù)
你的交易記錄要被寫到區(qū)塊鏈上,有一個(gè)前提:礦工將你的這筆交易記錄打包到這個(gè)區(qū)塊上。你可能想問(wèn):為什么會(huì)不打包?難道系統(tǒng)規(guī)則還允許不打包嗎?打包成功了不是還要給礦工交稅嗎?礦工好不容易搶到一次記賬權(quán),怎么會(huì)有錢不賺呢?
是的,允許不打包。原因不是礦工不想賺錢,而是“不可抗力”,關(guān)鍵問(wèn)題是每一個(gè)區(qū)塊允許存儲(chǔ)的數(shù)據(jù)量有限。中本聰當(dāng)初設(shè)計(jì)比特幣系統(tǒng)時(shí),規(guī)定了每一個(gè)區(qū)塊最大只能是1MB,一條交易記錄大概是0.25KB,那么一個(gè)區(qū)塊最多可以儲(chǔ)存4000多條交易記錄,如果在一個(gè)新區(qū)塊產(chǎn)生的時(shí)段中,發(fā)生的交易請(qǐng)求超過(guò)4000條,那就肯定存不下了。
我們可以算算,這個(gè)量大概是一個(gè)怎樣的交易頻率,每個(gè)區(qū)塊的平均產(chǎn)生時(shí)間是10分鐘,也就意味著,平均每秒鐘的交易量如果超過(guò)7條,那么就一定會(huì)出現(xiàn)排隊(duì)等待打包的交易記錄了。這個(gè)交易頻率實(shí)在很低,要知道支付寶一秒鐘大約要處理上萬(wàn)筆交易。這一秒鐘七筆交易對(duì)于全球來(lái)說(shuō),實(shí)在是太不夠用了。
一般來(lái)說(shuō),大額交易優(yōu)先打包,小額交易中手續(xù)費(fèi)越高的交易越優(yōu)先打包,打包規(guī)則礦工有一定的自主權(quán)。比特幣交易手續(xù)費(fèi)的規(guī)則比較復(fù)雜,不同的礦工收的還不一樣,不是三言兩語(yǔ)能說(shuō)清,但有一點(diǎn)可能會(huì)讓你感到詫異,越是大額的交易反而收費(fèi)越低,甚至免費(fèi)。交易額越小反而費(fèi)率越高。這是因?yàn)椋灰资掷m(xù)費(fèi)除了鼓勵(lì)礦工挖礦,還有一個(gè)非常重要的功能,就是防止有人惡意發(fā)布大量的小額交易造成信息擁堵。
現(xiàn)在,比特幣交易滯留是非常普遍的現(xiàn)象,很多小額交易甚至等上好幾天都確認(rèn)不了,因此,很多人不惜附加很高的交易手續(xù)費(fèi)來(lái)讓礦工提前替他們打包。
到這里,有關(guān)區(qū)塊鏈的核心原理就講完了,關(guān)鍵要記住,中本聰利用區(qū)塊鏈技術(shù),巧妙地解決了賬本同步和信息不重復(fù)的問(wèn)題,這就使得去中心化賬本的理想最終得以實(shí)現(xiàn)。
學(xué)習(xí)知識(shí),我認(rèn)為最佳的方式就是帶著問(wèn)題學(xué)習(xí),在學(xué)習(xí)過(guò)程中,先掌握知識(shí)的主干,如果還有興趣,再去了解那些枝枝杈杈。以上三節(jié),第一節(jié)是讓你帶上問(wèn)題,第二、三節(jié)就是比特幣和區(qū)塊鏈知識(shí)的主干,如果你消化完畢,可以繼續(xù)閱讀下一節(jié),了解一些枝杈。
關(guān)于比特幣的知識(shí)點(diǎn)
如何保證比特幣的產(chǎn)出速度大致恒定?
比特幣的產(chǎn)出速度本質(zhì)上就是尋找奧數(shù)的速度,現(xiàn)在的奧數(shù)是要求前72位全部為零,如果把72改為73,那么尋找奧數(shù)的難度就立即翻一倍,同理,如果從72減為71,則難度減半。因此,系統(tǒng)只需要根據(jù)全網(wǎng)的平均算力來(lái)調(diào)節(jié)奧數(shù)的規(guī)則就可以很簡(jiǎn)單地做到。現(xiàn)在的規(guī)則是平均每產(chǎn)生2016個(gè)新區(qū)塊后,根據(jù)產(chǎn)生這些新區(qū)塊的平均算力調(diào)節(jié)一次難度。我們也注意到,這種調(diào)節(jié)較為粗糙,只能翻倍或者減半。
為何比特幣總量上限是2100萬(wàn)枚?
這個(gè)總量上限是人為規(guī)定的。中本聰設(shè)計(jì)的規(guī)則是這樣:每增加21萬(wàn)個(gè)區(qū)塊后,幣獎(jiǎng)勵(lì)就減半,獎(jiǎng)勵(lì)的初始值是50比特幣,所以北京時(shí)間2009年1月4日中本聰自己創(chuàng)建的第一個(gè)創(chuàng)世區(qū)塊,就獎(jiǎng)勵(lì)給了自己50比特幣。按照平均10分鐘一個(gè)區(qū)塊的產(chǎn)出速度,大約是每隔四年會(huì)減半一次。
第一次減半發(fā)生在北京時(shí)間2012年11月29日7點(diǎn)24分,第21萬(wàn)個(gè)區(qū)塊誕生,比特幣獎(jiǎng)勵(lì)減少為25個(gè)。北京時(shí)間2016年7月10日凌晨0點(diǎn)46分,第42萬(wàn)個(gè)區(qū)塊誕生,這次相隔時(shí)間大約是三年零七個(gè)月,比特幣獎(jiǎng)勵(lì)再次減半,成為現(xiàn)在的12.5個(gè)。
知道了這個(gè)規(guī)則,我們就很容易根據(jù)當(dāng)前的區(qū)塊高度計(jì)算出已經(jīng)挖出的比特幣總量,截止到本文寫作時(shí),比特幣的總量約1687萬(wàn)枚。按照這樣的半衰期,大約到2140年,比特幣的產(chǎn)量就趨于零,上限是2100萬(wàn)個(gè),實(shí)際上不可能達(dá)到2100萬(wàn)。比特幣允許交易的最小單位是0.00000001(10^(-8))比特幣,這個(gè)最小值也被稱為“一聰”,這是由腳本語(yǔ)言支持的最小數(shù)字精度決定的,因此,比特幣的總量上限就是2100萬(wàn)億聰。
中本聰為什么要人為規(guī)定一個(gè)總量上限呢?因?yàn)樗睦硐胧莿?chuàng)造一種不能濫發(fā)的貨幣,從而在理論上徹底阻斷通貨惡性膨脹。至于這種理想能不能因?yàn)橐?guī)定了上限而實(shí)現(xiàn),是一個(gè)經(jīng)濟(jì)學(xué)問(wèn)題,我沒(méi)有能力多談,只知道在經(jīng)濟(jì)學(xué)中,通貨膨脹和通貨緊縮同樣都是可怕的。
你可能馬上又想到一個(gè)問(wèn)題:如果不再獎(jiǎng)勵(lì)比特幣了,誰(shuí)還去挖礦呢?別忘了,還有交易手續(xù)費(fèi)的獎(jiǎng)勵(lì),比特幣獎(jiǎng)勵(lì)雖然在不斷減少,但是交易手續(xù)費(fèi)的獎(jiǎng)勵(lì)是在不斷增加的,還是會(huì)有人愿意挖礦。并且,挖礦的難度也是可以動(dòng)態(tài)調(diào)整的,總是能調(diào)整到一個(gè)相對(duì)平衡的狀態(tài)。
區(qū)塊鏈技術(shù)的未來(lái)前景
比特幣的未來(lái)前景不是筆者想要討論的。我在前文中一再?gòu)?qiáng)調(diào),比特幣只不過(guò)是區(qū)塊鏈“去中心化理念”的一個(gè)具體應(yīng)用,有些先天不足,只能說(shuō)是一個(gè)優(yōu)秀的應(yīng)用,還談不上是成功的應(yīng)用。最終能否成功,實(shí)在不好說(shuō)。
截至2018年2月27日,全球接受比特幣結(jié)賬的商家分布圖。一共是11888家,主要分布在北美和歐洲。
從宏觀上來(lái)看,目前主要還是投資品屬性,承認(rèn)貨幣屬性的國(guó)家僅有澳大利亞和瑞典。
但區(qū)塊鏈的未來(lái)無(wú)疑是光明的,這是下一場(chǎng)互聯(lián)網(wǎng)理念的革新。區(qū)塊鏈技術(shù)還可以應(yīng)用到日常生活的哪些場(chǎng)景呢?我們不妨?xí)诚胍幌拢缱詣?dòng)駕駛+區(qū)塊鏈,可以成為滴滴公司的夢(mèng)魘。
基于區(qū)塊鏈技術(shù),開發(fā)出一種“智能合約”,這也是區(qū)塊鏈技術(shù)未來(lái)最大的應(yīng)用前景之一。所謂智能合約就是不需要中間商,就能保證合約可以被自動(dòng)完成,不怕違約。合約的支付方式是數(shù)字貨幣,合約生效的條件和執(zhí)行全部智能化。
比如我買一輛車,這輛車從工廠自動(dòng)開到我家,我用指紋或者刷臉開車,合約自動(dòng)執(zhí)行,數(shù)字貨幣支付給汽車廠,這才是真正的“沒(méi)有中間商掙差價(jià)”。有了自動(dòng)駕駛和智能合約,還需要滴滴打車嗎?不需要了,汽車和客戶完全可以通過(guò)基于區(qū)塊鏈技術(shù)的軟件自動(dòng)匹配。
未來(lái),區(qū)塊鏈技術(shù)很可能在人類社會(huì)的各個(gè)領(lǐng)域扮演舉足輕重的角色,以下是《環(huán)球科學(xué)》2018年2月號(hào)提到的應(yīng)用場(chǎng)景:
金融機(jī)構(gòu):全球銀行和投資機(jī)構(gòu)正在研究、推動(dòng)區(qū)塊鏈項(xiàng)目。自從2012年成立以來(lái),處理銀行間國(guó)際交易的區(qū)塊鏈系統(tǒng)瑞波(Ripple)一直發(fā)展良好。像Bloom這樣的初創(chuàng)公司打算將區(qū)塊鏈用于信用報(bào)告,希望杜絕類似艾可飛(Equifax,美國(guó)征信機(jī)構(gòu))那樣因遭遇黑客入侵而導(dǎo)致數(shù)據(jù)泄露的事件。
政府:美國(guó)特拉華州和伊利諾斯州用分布式賬本發(fā)放出生證明,而佛蒙特州的一項(xiàng)法律允許使用區(qū)塊鏈技術(shù)驗(yàn)證法律文件的真實(shí)性。迪拜將區(qū)塊鏈整合到多項(xiàng)行政服務(wù)中,如發(fā)放許可證。2016年,突尼斯開始通過(guò)區(qū)塊鏈發(fā)行一種叫作eDinar的電子法定貨幣。
科技創(chuàng)業(yè)者:以太坊網(wǎng)絡(luò)就像是一個(gè)為區(qū)塊鏈初創(chuàng)公司設(shè)立的應(yīng)用商店,它的目的是支持新的應(yīng)用程序,不像比特幣僅僅是一種電子現(xiàn)金生態(tài)系統(tǒng)。現(xiàn)在,有數(shù)百個(gè)項(xiàng)目和企業(yè)在這個(gè)網(wǎng)絡(luò)上運(yùn)行。其中有個(gè)著名的項(xiàng)目叫作 WePower,它致力于讓住戶能夠直接互相買賣可再生能源(比如屋頂式太陽(yáng)能電池板產(chǎn)生的電能)。
版權(quán)所有者與知識(shí)產(chǎn)權(quán)所有者:英國(guó)音樂(lè)人伊莫珍·希普(Imogen Heap)創(chuàng)立了Mycelia科技孵化器,追蹤與創(chuàng)意作品有關(guān)的元數(shù)據(jù),省去了iTunes這樣的中間商。
非營(yíng)利組織和援助組織:點(diǎn)滴捐贈(zèng)基金會(huì)(BitGive Foundation)正在用區(qū)塊鏈技術(shù)加強(qiáng)慈善捐贈(zèng)問(wèn)責(zé)。聯(lián)合國(guó)世界糧食計(jì)劃署正在用區(qū)塊鏈技術(shù)精簡(jiǎn)對(duì)約旦、敘利亞難民提供援助的追蹤和交付過(guò)程。
學(xué)術(shù)機(jī)構(gòu):別想著紙質(zhì)文憑了,區(qū)塊證書(blockcert)項(xiàng)目希望提高各種學(xué)位證書和職業(yè)認(rèn)證的可信度和共享性。
資產(chǎn)管理公司:總部位于倫敦的區(qū)塊鏈公司常青賬本(Everledger)瞄準(zhǔn)鉆石行業(yè),用區(qū)塊鏈記錄每顆鉆石的屬性和出處。名酒和藝術(shù)品也可以被追蹤。
新聞工作者:為打擊假新聞,Civil(去中心化新聞市場(chǎng))為新聞工作者提供了一個(gè)創(chuàng)造不含廣告、不可更改的新聞平臺(tái),這些新聞不受外部利益(如俄羅斯、臉書)的影響,并且受到讀者的支持。
普通人群:對(duì)于向家里寄錢的移民打工者,使用比特幣匯款的費(fèi)用比使用西聯(lián)匯款要低。正是由于這個(gè)原因,現(xiàn)在韓國(guó)和菲律賓之間的國(guó)際匯款粗略估計(jì)有20%依賴于比特幣。
根據(jù)普華永道預(yù)測(cè),到2020年,77%的全球金融服務(wù)業(yè)將采用區(qū)塊鏈作為生產(chǎn)系統(tǒng)或流程的一部分。
根據(jù)世界經(jīng)濟(jì)論壇2015年的一項(xiàng)調(diào)查報(bào)告,預(yù)計(jì)到2025年,世界GDP的10%將會(huì)以基于區(qū)塊鏈的技術(shù)存儲(chǔ)。
結(jié)語(yǔ)
1973年,原本隸屬于美國(guó)軍方的計(jì)算機(jī)網(wǎng)絡(luò)阿帕網(wǎng)向世界開放,從此,國(guó)際互聯(lián)網(wǎng)誕生,今天,它是人類社會(huì)的血管。
1991年,第一個(gè)網(wǎng)頁(yè)在歐洲核子研究中心誕生,這是互聯(lián)網(wǎng)生活的創(chuàng)世時(shí)刻,今天,已經(jīng)很難找到不受它影響的人和單位。
2008年11月1日,中本聰發(fā)表論文《比特幣:一種點(diǎn)對(duì)點(diǎn)的電子現(xiàn)金系統(tǒng)》(Bitcoin: A Peer-to-Peer Electronic Cash System),區(qū)塊鏈技術(shù)(理念)宣告誕生。2008年會(huì)不會(huì)成為人類歷史上與1973年和1991年同樣重要的年份,現(xiàn)在還無(wú)法下定論,但可能性非常大。
沒(méi)有人可以準(zhǔn)確地預(yù)測(cè)未來(lái),謹(jǐn)希望本文能為今天的戰(zhàn)略家、企業(yè)家、學(xué)子們提供一點(diǎn)小小的參考和啟發(fā)。
「 支持烏有之鄉(xiāng)!」
您的打賞將用于網(wǎng)站日常運(yùn)行與維護(hù)。
幫助我們辦好網(wǎng)站,宣傳紅色文化!
歡迎掃描下方二維碼,訂閱烏有之鄉(xiāng)網(wǎng)刊微信公眾號(hào)
