官术网_书友最值得收藏!

第1章 區塊鏈簡史

1.1 區塊鏈的史前時代

1.1.1 密碼朋克社區

“財政大臣正處于第二次救助銀行的邊緣”——這則2009年1月3日的《泰晤士報》頭版新聞被永久地記錄在了比特幣區塊鏈的創世區塊上,這意味著區塊鏈的海嘯巨浪已經完全就緒,即將席卷全球。

海嘯一般是由海底地震引起的,在掀起區塊鏈滔天大浪之前的16年,這次海底地震就已經在醞釀了。1992年,三位密碼學極客Eric Hughes、Timothy C. May和John Gilmore共同發起了大名鼎鼎的密碼朋克(Cypherpunk),并在隨后的10多年中,持續地影響著密碼社區的愛好者。

但是此時此刻,距離中本聰完成白皮書的時間還有十幾年,在這個“區塊鏈的史前時代”,又發生了哪些故事呢?還要從Hashcash[1]說起。

Hashcash是一種依靠工作量證明的算法,它最初的用途是防止垃圾郵件的濫發。它的創造者是英國密碼學家Adam Back——密碼朋克郵件組中的一員。和此前提到的諸多相對陌生的名字不同,Adam Back在區塊鏈行業至今仍大名鼎鼎,因為他創建了Blockstream。而Blockstream公司主導設計了比特幣的Liquid側鏈和閃電網絡,并且是比特幣隔離見證技術Segwit的重要推動者。

但是時間倒回Hashcash被創造出來的1997年,Adam當時可能并沒有想設計任何一種加密貨幣,更沒有發射衛星的想法(是的,Blockstream(圖1-1)于2018年在一顆人造衛星上部署了比特幣節點),他可能只是單純地被垃圾郵件騷擾得不勝其煩,于是決心通過密碼學設計一種防止垃圾郵件的方案——工作量證明。

圖1-1 Adam Back是Block-stream創始人之一

他利用加密算法SHA-1設計了一個郵件插件,每個發郵件的人都用CPU計算一個小題目,就像如今的比特幣挖礦一樣。因為“題目難度”非常低,通常只會占用幾秒鐘的時間,對于正常使用者來說,額外的幾秒鐘并不影響用戶體驗。但是對于惡意濫發郵件者來說,一封郵件消耗幾秒鐘,一口氣幾千封郵件就要消耗數個小時,這極大地增加了垃圾郵件濫發者的成本。

Hashcash雖然理論上可行,但是實際上并沒有普及、推廣開來,畢竟它要求足夠多人使用才有效。舉個例子,假如你的頂頭上司沒有安裝Hashcash插件,他向你發了一封郵件,你可以因為他沒有計算一輪SHA-1而拒收他的郵件嗎?顯然不可能,因此Hashcash沒能普及,到現在為止我們仍然忍受著垃圾郵件的騷擾。

Hashcash通過引入工作量證明成功對抗DDoS。這個理念是區塊鏈得以發展的重要基石,而且該理念也吸引了中本聰。比特幣正是基于這一機制,才能有效地對抗基于IP的DDoS攻擊,沒有走向彎路。在中本聰的《比特幣白皮書》的第4章中專門提到了Adam Back。其相關內容是:為了能夠在點對點的基礎上應用分布式時間戳服務器,我們必須使用像Adam Back的Hashcash那樣的PoW系統。

基于對密碼朋克社區中加密無主權理念的支持,美裔華人計算機工程師戴維(Wei Dai)在1998年發布了B-money的兩個協議[2]。戴維也是密碼朋克郵件組中的一員,而且他很有可能看到了Hashcash的嘗試。Hashcash也許并沒有想過要成為一種通行貨幣,但是戴維看到了PoW的成功之處,他認為通過密碼學可以完成一個不受中心化機構制約的電子貨幣。

B-money的第一個協議中設計了這樣的模型:假如Alice向Bob轉賬,Alice必須向全網廣播,并且使用私鑰簽名。這聽起來是不是很熟悉?沒錯,這和比特幣的基礎理念非常相似。但是第一個協議并沒有成功,因為沒有考慮雙花。假如Alice在極短的時間內從兩個網絡分別發起轉賬,那么Alice就可以把1美元當作2美元消費。

于是戴維又設計了第二個協議,那就是引入“服務器節點”的概念——只有服務器才能記賬,普通用戶不需要記賬,隨后服務器之間再用網絡鏈接起來。用戶在發出B-money之后,由隨機的“服務器節點”來驗證是否有雙花行為。同時,為了制約這些“服務器節點”,他還設計了抵押功能。這非常有趣,這個想法和如今的PoS或DPoS有些類似。

盡管B-money很不完善,也沒有付諸實踐,但是戴維仍然非常值得令人欽佩——他的這些想法至今還有人在嘗試。中本聰在《比特幣白皮書》中第一個引用的就是戴維的B-money(比錢)論文。有人甚至認為比特幣(Bitcoin)的命名也受到B-money的深刻影響。B-money在密碼朋克社區引起了相當熱烈的討論,也推動了密碼朋克郵件組的其他嘗試,比如Nick Szabo。

Nick Szabo有兩個身份:計算機學家和密碼學家,并且在后來設計了“智能合約”這門技術;密碼朋克郵件組中的一員。智能合約是一個創舉,直接促成了以太坊的誕生,但在這個區塊鏈史前時代,我們暫且不表。Nick既是一位學者,也是一位理想主義者,從他在1998~2005年陸續發表的文章中可見一斑。他認為傳統的紙質產權非常容易被濫用或者偽造,完全依賴于對強權第三方的信任,因此他非常渴望通過一種強制手段保護個人的財產所屬權[4]

于是Nick開始了對“數位黃金”(bit-gold)[5]的構想。數位黃金是非常有創造性的,它引入了工作量證明的機制,每臺計算機去計算需要解出的難題,計算結束后,按照時間戳進行排序,并通過拜占庭方式來防止雙重花費。它和今天的比特幣有很多相似之處,甚至比B-money更像比特幣,但是它仍然沒有成功。

原因是它缺少基于算力的最長鏈原則,數位黃金依賴網絡中的地址數量去進行拜占庭共識,而比特幣依賴算力多少。如果依賴地址數量,這個網絡就會很容易被惡意節點進行女巫攻擊,因為創造新地址的成本是極低的,攻擊者可以很快擁有大量地址。

牛頓曾經說過:“如果說我看得比別人更遠些,那是因為我站在巨人的肩膀上。”如果說中本聰看得比別人更遠,那么密碼朋克社區的這些先驅就是巨人。比如Hal Finney,他是PGP加密的最初設計員之一,RPoW的創造者,也是除了中本聰之外第一個收到比特幣的人。正如前文所述,Hashcash、B-money以及bit-gold距離成功都只有幾步之遙。而Hal Finney又向成功推進了一小步。

受到密碼朋克郵件組中Hashcash、B-money和bit-gold等諸多項目的影響,2004年,Hal Finney設計了一種名為可重復使用(RPoW)的Token,如圖1-2所示。RPoW解決了過去電子貨幣的一些問題,比如不能重復使用。例如,之前提到的Hashcash,用戶計算一次就是一次,無法復用。而RPoW認為,既然用戶計算出了一個難題,那他應該獲得回報——比如一個RPoW Token。換句話說,可重復進行的挖礦概念誕生了。

圖1-2 Hal Finney設計的RPoW系統

有B-money和bit-gold的模式探索,又產生了RPoW的Token,再加上20世紀90年代Haber和Stornetta提出的時間戳技術。這個世界醞釀了這么久,只要再來一點顫動,撼動全球的大地震就要發生了!

1.1.2 經濟危機與比特幣誕生前夜

2008年下半年是一個相當難熬的時間段。2008年9月15日,當時負債數千億美元的美國頂級投行——雷曼兄弟正式宣布破產!而這次破產非但沒有讓美國的次貸危機畫上句號,反而愈演愈烈。由房價持續上漲引出的垃圾債務,像連環炸彈一樣在傳統金融秩序下世界的每一個角落接連炸響。

金融危機從美國爆發,很快蔓延到全世界。英國也不例外,在2008年的這次金融危機中,英國幾大銀行損失慘重。在雷曼兄弟破產后的不到一個月時間里,擁有NatWest、Direct Line和Coutts的蘇格蘭皇家銀行股價下跌近40%,跌至15年來的最低點。其股票市值在過去一年中下降了80%以上。其他銀行的股價也全部急劇下跌,HBOS下跌41.54%,勞埃德TSB下跌12.93%,巴克萊銀行下跌9.24%[6]

時任英國財政大臣的Alistair Darling不得不做出一個救助計劃,那就是通過政府去救助這些銀行,計劃拿出500億英鎊去購買銀行的優先股,然后拿出2500億英鎊去承銷這些銀行的中長期債務。但是,在當時來看,這第一輪救助并不足以將滿身瘡痍的銀行業拉回健康線以上,全球危機還在繼續發酵,這是全球傳統銀行秩序下的一個惡疾,任何單一地區和機構都無法阻擋滾滾的寒冬潮流。

2008年10月31日是值得永久銘記的一天,密碼朋克郵件組中的很多成員收到了一封郵件,正是《比特幣:一種點對點的電子現金系統》[7],和很多人猜想的不同,這封白皮書在當時并沒有掀起軒然大波或者被頂禮膜拜,因為它只是站在巨人肩膀上的另一次嘗試。

Hal Finney是最欣賞比特幣的一位密碼朋克成員,他給了中本聰很多建議。為此,后來中本聰還專門轉給了Hal 10枚比特幣,完成了比特幣歷史上第一筆轉賬。加密社區似乎欣欣向榮,但是傳統世界就沒那么好過了。

2009年的到來沒能給寒冬帶來溫暖的氣息,很快第一輪救助的支撐開始乏力,財政大臣Alistair Darling不得不考慮第二次財政救助。于是在2009年1月3日《泰晤士報》的頭版頭條上刊登了一篇文章,文章的標題正是本章開頭提到的:財政大臣正處于第二次救助銀行的邊緣。如圖1-3所示。

傳統金融界的寡頭和政客們此時正焦頭爛額,但是中本聰卻悠閑地把這則新聞記錄在比特幣的創世區塊上。沒錯,有可能顛覆傳統金融的新技術,即本書的主角——區塊鏈正式睜開了雙眼,即將席卷全球的滔天巨浪登場了!

圖1-3 2009年1月3日《泰晤士報》頭版[8]

主站蜘蛛池模板: 林芝县| 舒城县| 安达市| 突泉县| 金乡县| 巩留县| 平阳县| 依兰县| 九龙城区| 玉门市| 双峰县| 阿荣旗| 汝城县| 丹东市| 那曲县| 佳木斯市| 西乌珠穆沁旗| 盐津县| 新泰市| 隆昌县| 离岛区| 任丘市| 丹阳市| 张家界市| 华宁县| 江孜县| 赤水市| 巴中市| 宁河县| 疏勒县| 房山区| 乡宁县| 哈密市| 抚宁县| 特克斯县| 青龙| 邯郸市| 油尖旺区| 金昌市| 隆子县| 文昌市|