- 區塊鏈超入門(第2版)
- 方軍
- 11777字
- 2021-09-29 10:25:41
1.區塊鏈是什么——源自比特幣的技術創新
隨著比特幣的總市值在2021年年初接近萬億美元,比特幣與區塊鏈再次迎來了高光時刻。更多人開始確信,區塊鏈是過去10年、未來10年最重要的互聯網新技術浪潮,它將把我們從“信息互聯網”帶向“價值互聯網”。
那么,比特幣是什么?區塊鏈是什么?價值互聯網或價值網絡又是什么?要回答這一系列問題,我們要回到10多年前,從匿名的神秘技術極客、比特幣創始人中本聰(Satoshi Nakamoto)發明比特幣的那一刻說起。
比特幣的創世時刻
2009年1月3日,在位于芬蘭赫爾辛基的一臺服務器上,中本聰創建了比特幣區塊鏈網絡的第一個數據區塊,即所謂“創世區塊”(genesis block)。人們通常把比特幣區塊鏈看作一個賬本,創世區塊是這個賬本的第一頁。
在創世區塊的備注中,中本聰寫上了當天英國《泰晤士報》頭版頭條的標題:“The Times 03/Jan/2009 Chancellor on brink of second bailout for banks”(中文:《泰晤士報》,2009年1月3日,英國財政大臣站在第二次救助銀行的邊緣)。
通過這樣的方式,他記錄了比特幣區塊鏈網絡的啟動時刻。他借這句話對當時的全球金融體系狀況進行了暗諷:經歷了2008年金融海嘯的沖擊,全球金融體系看起來已搖搖欲墜。
在創建創世區塊時,中本聰按自己設定的游戲規則,獲得了50枚比特幣的獎勵,這就是最早的50枚比特幣。從這一刻開始,在比特幣的區塊鏈賬本上,約每10分鐘,一個新的數據區塊就被增加到鏈條的最后,同時新的幾十枚比特幣被憑空發行出來。
迄今為止,比特幣區塊鏈網絡已經穩定運行了十多年,它現在是由數萬個節點組成的全球價值網絡,以億美元計的資產在其上流轉。更引人矚目的是,從資產角度看,比特幣價格最高時成為總價格近萬億美元的全新主流資產類別。誕生之初,比特幣沒有任何價值,但隨著時間的推移,比特幣有了價格,且價格越來越高。按2021年1月1日的價格,比特幣區塊鏈這個全球價值網絡上儲存的比特幣的總市值約為7000億美元,跟Facebook和阿里巴巴的市值相當,超過巴菲特的伯克希爾-哈撒韋公司。
2021年2月8日,電動汽車公司特斯拉宣布,它已經用公司現金的7%(15億美元)購買了比特幣作為公司的財政儲備。消息披露后,比特幣的價格瞬間暴漲30%,達到每枚4.5萬美元。之前幾天,特斯拉創始人馬斯克在推特(Twitter)上發的推文可能是一種暗示——“回顧看,這必然會發生。”在讓公司大筆買入比特幣時,馬斯克心中所想的或許就是這句話。
現在,比特幣被視為一種“價值存儲媒介”(store of value)。通俗地說,它被視為“數字黃金”,它被認為可能在數字世界中模擬黃金在人類經濟社會中的功能,能夠跨越時間儲存價值,能夠對沖貨幣貶值。當然,正如黃金的實用價值有限一樣,比特幣的實用價值也不斷地受到挑戰。
雖然比特幣價格暴漲,但我們還是必須承認一點:價格并不等于價值。現在人們更加迫切地想搞明白:比特幣是什么?它真的有價值嗎?它帶來了什么根本性的變化?
這是這本寫給所有人看的關于區塊鏈技術的書要解決的第一組問題。我們回答這些問題的大背景是,經過10多年的發展,越來越多的人已經認識到,比特幣和區塊鏈在技術、經濟、社會等多個層面都創造了全新的范式。這里需要說明的是,在講述比特幣的誕生過程時,我們不可避免地提到了很多陌生名詞:區塊鏈、區塊、賬本、比特幣、比特幣區塊鏈網絡、價值網絡。我們還會談到更多:共識機制、去中心化、智能合約、加密數字貨幣、哈希運算、非對稱加密、去中心化自治組織、通證、通證經濟……不用擔心,本書會逐漸地為你講解。
現在,讓我們接著回到比特幣的創世時刻去嘗試著理解比特幣與區塊鏈帶來的變化。
在比特幣的創世時刻,比特幣系統有三個組成部分——比特幣、分布式賬本(distributed ledger)、去中心網絡(decentralized network)(見圖1-1)。之后各種區塊鏈網絡的組成部分大體上與比特幣系統相似。中本聰將已有的技術創新組合起來,巧妙融合技術與經濟的邏輯,最終“發明”了區塊鏈系統。

圖1-1 比特幣系統的三個組成部分
比特幣常被稱為一種“加密數字貨幣”,其實比特幣并不具備現在各國法定貨幣的特征,它是一種數字形式的特殊商品,或者我一般更愿意說的“價值表示物”。
2008年10月31日,中本聰向一個密碼學郵件列表即“密碼朋克”(cypherpunk)郵件組的所有成員發了一封電子郵件,標題為《比特幣:一個點對點電子現金系統》(Bitcoin:A Peer-to-Peer Electronic Cash System)。他寫道:“我一直在研究一個新的電子現金系統,它完全是點對點的,不需要任何可信第三方。”比特幣的起源應早于這個日期,因為中本聰說,他從2007年5月就開始為比特幣項目編程。2008年8月,他注冊了bitcoin.org域名,這是現在比特幣項目的官方網址。
在郵件里,他附上了現在大家所說的“比特幣白皮書”的文檔鏈接。中本聰2008年發表的這篇論文可能是互聯網發展史上最重要的論文之一,其他重要的論文還有利克里德寫的開啟互聯網前身阿帕網的《計算機作為一種通信設備》(1968年)、蒂姆·伯納斯-李寫的萬維網(WWW)協議建議書《信息管理:一個建議》(1989年)、谷歌聯合創始人謝爾蓋·布林與拉里·佩奇寫的有關搜索引擎的論文(1998年)等。
可以合理地推測,中本聰不是一個學院派的研究型學者,他更可能是一個從事實際軟件工程開發的工程師。他先開發了軟件,然后才寫了上面提到的重量級論文,來解釋自己的設計思路。用他自己的話說:“我必須寫出所有的代碼,然后才能說服自己可以解決所有問題,之后寫了這篇文章。”
2008年11月16日,中本聰公布了比特幣系統的源代碼。在發布白皮書并將軟件代碼開源后,2009年1月3日,他在互聯網上上線了比特幣網絡。之后,中本聰和密碼學家哈爾·芬尼(Hal Finney)、后來的比特幣主力開發者加文·安德烈森(Gavin Andresen)等人在網上論壇一起討論想法,繼續開發與迭代。
隨著比特幣網絡的逐漸成熟,中本聰的活動開始減少,比特幣網絡逐漸進入自治運轉的狀態。這是軟件系統歷史上的奇跡,也是人類組織的奇跡,它沒有一個管理團隊,卻在眾人協同下發展壯大。某種意義上,比特幣系統是一個工程典范,它的實際運行比理論上要好得多。
最終,在發明比特幣系統3年后,自2011年11月中本聰永遠不再出現。中本聰成了一個永遠匿名的傳奇,沒人知道他是誰,他只在世界上留下了自己的創造物。中本聰創造了三個事物:持續運轉的比特幣系統;總價值越來越高的比特幣;從比特幣系統中涌現,現在被統稱為“區塊鏈”的新一代互聯網技術。
中本聰為什么創造比特幣
那么,中本聰為什么要創造比特幣系統與比特幣呢?作為軟件工程師,他開發這個系統想解決什么難題?
比特幣的出現源于一群技術極客一直試圖解決的技術難題,而中本聰完成了最后一步跳躍,這個技術難題是:在數字世界中,如何創造一種具有現金特征的事物?
紙幣現金或者人類歷史上的金幣、銀幣有一個重要的特性:一個人可以把紙幣現金直接給另一個人,無須仰賴任何中間人居中協調處理。
當我們進入到數字時代后,中間人似乎不可或缺:轉賬時,我們必須仰賴銀行、銀行卡聯盟、支付寶或微信支付等中間人。有人說,這些中間人就像神一樣的存在,它們也必須存在。問題是,這些中間人必須存在嗎?
“比特幣:一個點對點電子現金系統”這個標題說出了中本聰想解決的難題:他想創造數字世界中的電子現金,它可以點對點,也就是個人對個人交易,交易過程中不需要任何中介參與。用他自己的話說:“一個真正的點對點電子現金應該允許發起方直接支付給對方,而不需要通過金融機構。”也就是不再需要一個“可信第三方”(trusted third party),在數字世界中,價值的流動不再需要中間人。
要說明的是,“電子現金”中的現金指的并非貨幣,它只是在解決難題的過程中被借用來在數字世界中代表價值的說法。在經濟生活中,最常見的代表價值的事物是現金。
中本聰并不是第一個想要解決“電子現金”這個難題的人,在2008年,他對此再次發起沖擊,并獲得了成功。攻克這個難題非常重要,這是因為,如果能夠開發出這樣一個不需要中間人、直接在人與人之間支付電子現金的技術系統,那么,各種各樣的價值(比如股權、房屋所有權、知識產權、數據、金融衍生品等)就可以用類似的技術系統來在人與人之間進行轉移。這給數字世界補上缺失的一環——現在,我們已經有了信息傳播網絡,我們還需要一個更好的價值傳輸網絡。
去掉“可信第三方”或“去中介”是比特幣與區塊鏈的核心概念,我們來詳細對比一下,以了解它。
在物理世界中,一個人可以把現金紙幣給另一個人,不需要經過諸如銀行、支付機構、見證人等中介。
當我們進入數字世界后,中間人變得不可或缺。這是因為,數字文件是可復制的,復制出來的電子文件是一模一樣的。因此,我們不能簡單地用一個數字文件作為代表價值的事物,我們要仰賴中心化數據來記錄,避免有人使用復制品。那么,如果沒有一個中心化數據庫做記錄,如何避免一個人把一筆錢花兩次?這就是所謂的雙重支付或雙花問題。
在現在的數字世界中,當一個人要把現金轉給另一個人時,必須有中間人的參與。在比特幣出現之前,我們熟悉的主要電子現金系統(如PayPal、支付寶等)都是依靠中心化數據庫來避免雙花問題的,這些可信第三方不可或缺(見圖1-2)。我們通過支付寶轉賬的過程是:支付寶在一個人的賬戶記錄里減掉一定的金額,在另一個人的賬戶記錄中增加相應的金額。

圖1-2 比特幣是點對點的現金,不需要任何中介
在去中介或去中心化的電子現金這條路上,一直有很多技術專家在做著各種嘗試,但他們一直未能獲得成功。到了2008年,借鑒和綜合前人的成果,特別是現在常被統稱為“密碼朋克”的群體的成果,中本聰改進了之前的各類中心化和去中心化的電子現金,后又加上自己的獨特組合創新,創造了比特幣系統。(歷史過程詳見本節后“冷知識”專欄的《加密數字貨幣前傳:從大衛·喬姆到中本聰》。)
在發明比特幣系統時,中本聰以全新的方式來解決問題。他或許沒有發明任何新技術,而只是將各種技術組合到了一起,但他的這種組合創造了一種全新的范式,這實際上是更高層級的創新。
現在,我們用中心化賬本來記錄“每個人擁有多少錢”,我們靠一個可信的中間人(如網上銀行、第三方支付機構等賬簿管理人)來讓錢從一個人轉賬到另一個人。那么,能不能用一個靠代碼與規則運轉的技術系統來取代過去由人組成的公司組織呢?
中本聰給出了解答:
·基本思路。他的基本思路是,用“去中心網絡”取代“中心化組織”,用“分布式賬本”取代“中心化賬本”。
·實現方式。為了實現這樣的技術系統,他設計了兩個獨特的方式:第一,區塊鏈賬本(區塊+鏈)這樣的獨特賬本結構,也被稱為“三式記賬法”(Triple Entry Accounting);第二,用工作量證明(Proof-of-Work,PoW)共識算法來協同參與者運行去中心網絡,其中特別的是每個區塊為參與者提供比特幣形式的獎勵。
·最終成果。他的成果也是雙重的:第一重是比特幣系統與比特幣;第二重是區塊鏈技術這個數字世界的所有權管理系統技術。
區塊鏈是適應數字世界的新型所有權管理系統,它包括兩大組成部分:記錄誰擁有多少價值,以及用轉賬交易來實現價值轉移。在我看來,人們往往過于關注“誰擁有多少價值”的記錄以及價值的數量,而對于“用轉賬交易來實現價值轉移”關注不夠。它其實是區塊鏈發展的主軸,在第二章討論以太坊時我們將會再回到這個主題,以太坊讓轉賬交易更便捷、更易編程、更可普遍地應用。
自2008年中本聰發布比特幣白皮書已經過去10多年,比特幣系統的長期正常運轉表明,它完成了中本聰的設想,解決了最初想解決的技術難題。
讓人意外的是比特幣的價格。最初,比特幣這種所謂的電子現金并沒有價格,比特幣系統只是在邏輯上可行的系統,或者技術人員常說的為了嘗試解決難題而開發的“玩具系統”。2010年5月22日,在一個網絡論壇上,有一個程序員用1萬枚比特幣換了兩張棒約翰比薩的代金券,比特幣有了一個最知名的公允價格:1萬枚比特幣等于25美元。為了紀念這一天,每年的5月22日便成了區塊鏈業界的節日——比特幣比薩節,大家聚會吃比薩慶祝。
比特幣有了價格后,其價格在10年間大幅上漲。比特幣的價格在自由市場交易中被確定,長期保持上漲姿態,又反復地大幅波動,最終,2021年年初最高達到6萬美元。當時,在特斯拉美國官網,你用一枚比特幣差不多可以換一輛最新款的電動汽車。
比價格更重要的是比特幣這一技術系統的價值。比特幣這一技術系統一直保持穩定,而且看起來還將長期穩定地運轉下去。
比特幣系統還帶來了技術模型和經濟組織方面的新思路——去中心化。比特幣這個電子現金系統是同時去中介化和去中心化的:個人與個人之間的電子現金轉賬無須可信第三方中介的介入,這是交易的去中介化。這個電子現金的貨幣發行也不需要一個中心化機構,而是由代碼與共識機制完成,這是發行的去中心化。另外,由于中本聰在早期就隱身而去,圍繞比特幣形成的開發、應用、投資社群也是去中心化的。(本章最后“冷知識”專欄的《比特幣實現了極致的去中心化》對此有進一步的探討。)
在比特幣系統中發現區塊鏈
在物理世界中,現金是一張張紙幣,背后有著一整套與貨幣相關的金融體系:中央銀行、商業銀行、印鈔廠、信用卡組織,以及后來出現的第三方網絡支付機構等。
在數字世界中,想要創造一種去中介化、去中心化的“電子現金”,同樣要設計一套完整的系統。這一系統要能解決以下一系列問題:
·如何去中介?是否像在物理世界中一樣,一個人可以直接把現金給另一個人,無須任何中介的協助?
·這種電子現金如何防偽?在數字世界中,這個問題也就是,一筆電子現金如何不被花費兩次?更準確地說是,如何實現在不需要中心化賬本的情況下讓一筆電子現金不被花費兩次?
·這種電子現金如何公平、公正地發行(理想情況下由預設規則代碼自動運行),而不被中心化機構或某些個人控制?
中本聰設計和開發的比特幣系統完美地解決了上面這些問題。提到比特幣,人們通常指的是比特幣這種用作價值表示的電子現金。其實,作為電子現金的比特幣只是比特幣系統的最上層,比特幣系統共包括三層(見圖1-3):
·最上層是比特幣這種電子現金。這一層是整個系統的應用層。
·中間層的功能是發行比特幣與處理用戶間的比特幣轉移。這一層也被稱為比特幣協議(Bitcoin Protocol),是整個系統的應用協議層。
·最底層是比特幣的分布式賬本和去中心網絡。這一層也被稱為比特幣區塊鏈(Bitcoin Blockchain),是整個系統的通用協議層。

圖1-3 一張圖看清比特幣與區塊鏈
比特幣系統實現的是一種去中心化的點對點電子現金,這種電子現金的發行與轉賬靠的是中間的比特幣協議。與傳統貨幣系統對比來看,比特幣協議的角色相當于如下兩種金融機構的組合:中央銀行(發行貨幣)與商業銀行(處理轉賬)。底層的分布式賬本和去中心網絡則相當于金融的IT基礎設施。
比特幣系統的三層命名(應用層、應用協議層、通用協議層)源自知名區塊鏈研究者梅蘭妮·斯旺(Melainie Swan)。她還提出了一種被廣泛引述的階段劃分:區塊鏈1.0是貨幣,區塊鏈2.0是合約,區塊鏈3.0是應用。這也是本書借鑒與改進的區塊鏈階段劃分。斯旺對比特幣系統的三層命名很有價值,在區塊鏈業界,公鏈或聯盟鏈賽道的競爭,即試圖開發有各種獨特特性的通用協議層,建設基礎設施,而各種區塊鏈應用是在公鏈或聯盟鏈上創建一個個應用協議,用協議去構建金融、電商、社交等應用生態。
我們再從技術角度細看比特幣系統,比特幣系統架構常被進一步細分為五層(見圖1-4):功能層實現轉賬與記賬;激勵層實現比特幣的發行與分配;共識層是分布式網絡中的節點如何就賬本達成一致,比特幣采用的共識機制是工作量證明;數據層是比特幣區塊鏈賬本的數據處理方式;網絡層則是處理網絡節點如何通信。需要說明的是,參考火幣區塊鏈研究院2018年的一份研究報告,這里將網絡層作為五層結構的最下一層,而不是常見的將數據層作為最下一層。

圖1-4 比特幣系統架構
在設計比特幣系統時,中本聰創造性地將計算機算力競爭和經濟激勵相結合,形成了工作量證明共識機制,用消耗掉的計算資源和對應的激勵確保無須許可就能加入網絡的節點能協同一致,共同運行比特幣網絡。在耗費資源進行計算競爭的過程中,挖礦計算機節點完成了貨幣發行和記賬功能,也完成了對區塊鏈賬本和去中心網絡的運維。
有了工作量證明共識機制,在一輪輪的循環中,比特幣系統這個無須許可的自治系統安全、持久地運行下去:礦工購買通用或專用的計算機(也就是所謂礦機)參與挖礦這種算力競爭,贏家完成去中心化記賬,獲得比特幣形式的經濟激勵。獎勵會激勵計算機節點加大投入,繼續參與算力競爭。這個循環中也有隱含的懲罰,礦工在設備、電力、廠房方面進行了投入,如果因發生失誤而未能獲得獎勵,這實際上會導致其虧損。
比特幣的工作量證明共識機制是承上啟下的一層,連接了上層的應用與下層的技術基礎設施:在其上一層為電子現金的發行、轉賬、防偽;在其下一層,去中心網絡的節點達成一致,更新分布式賬本。
解析比特幣白皮書摘要:比特幣系統的設計
比特幣系統是一個既簡單又精妙的系統,它融合了技術和經濟,是區塊鏈所有創新的源頭。在比特幣白皮書《比特幣:一個點對點電子現金系統》中,中本聰詳細地解釋了他是如何設計這個系統的。在其中,他確立了此后所有區塊鏈系統的主要設計原則。
接下來,我們對照閱讀與討論這篇論文中的英文摘要:
A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution.
一個真正的點對點電子現金應該允許從發起方直接在線支付給對方,而不需要通過一個(第三方的)金融機構。
Digital signatures provide part of the solution,but the main benefits are lost if a trusted third party is still required to prevent double-spending.
現有的數字簽名技術雖然提供了部分解決方案,但如果還需要經過一個可信第三方來防止(電子現金的)“雙重支付”,那就喪失了(電子現金帶來的)主要好處。
We propose a solution to the double-spending problem using a peer-o-peer network.
針對電子現金可能出現的“雙重支付”問題,我們用點對點的網絡技術提供了一個解決方案。
The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work,forming a record that cannot be changed without redoing the proof-of-work.
該網絡給交易記錄打上時間戳(timestamp),對交易記錄進行哈希散列處理后,將其并入一個不斷增長的鏈條中,這個鏈條由哈希散列處理過的工作量證明(hash-based proof-of-work)組成,如果不重新進行工作量證明,以此形成的記錄將無法被改變。
The longest chain not only serves as proof of the sequence of events witnessed,but proof that it came from the largest pool of CPU power.As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network,they’ll generate the longest chain and outpace attackers.
最長的鏈條不僅是作為被觀察到的事件序列的證明,并且證明它是由最大的CPU處理能力池產生的。只要掌控多數CPU處理能力的計算機節點不(與攻擊者)聯合起來攻擊網絡本身,它們將生成最長的鏈,從而把攻擊者甩在后面。
The network itself requires minimal structure.Messages are broadcast on a best effort basis,and nodes can leave and rejoin the network at will,accepting the longest proof-of-work chain as proof of what happened while they were gone.
這個網絡本身僅需要最簡單的結構,信息盡最大努力在全網廣播即可。節點可以隨時離開和重新加入網絡,只需(在重新加入時)將最長的工作量證明鏈條作為在該節點離線期間發生的交易的證明即可。
威廉·穆賈雅在《商業區塊鏈》一書中對比特幣白皮書摘要進行了分析,他總結了四個要點:①點對點電子交易;②不需要金融機構作為中介;③基于密碼學證據而不是中心化機構的信用;④信用存在于網絡,而不是某個中心機構。
從這個摘要及比特幣系統實際運行中,我們提煉出了比特幣系統設計的一系列特點(見圖1-5):比特幣的區塊鏈系統是由分布式賬本(即狹義的區塊鏈)和去中心網絡(點對點網絡)組成的;形成鏈的方式是工作量證明共識機制;最長鏈是由網絡中的算力共同決定的,因而它是可信的,節點離開和加入依據的是最長鏈是可信的這一原則;比特幣以區塊獎勵的形式增發給礦工,它的增發每四年減半。這些特點組合起來形成了比特幣系統。

圖1-5 比特幣系統設計的五個要點
1.分布式賬本
比特幣的區塊鏈是基于工作量證明形成的帶時間戳、存儲數據的數據塊和由哈希指針連接成的鏈條。
這個鏈條或者說賬本以分布式的方式存儲在比特幣網絡的各個節點上,因而也被稱為分布式賬本。
2.工作量證明
比特幣網絡中的節點按規則進行哈希計算,以競爭獲得生成新區塊的權利。節點在競爭獲勝后就獲得記賬權,它生成區塊成為最新區塊后,就獲得與新區塊對應的挖礦獎勵。
工作量證明也是區塊鏈賬本的安全機制。如果不重新進行“工作量證明”所需的大量計算,則此鏈不可修改,這一共識機制保證了區塊鏈上的數據記錄的可靠性。
3.區塊獎勵與減半機制
比特幣這種電子現金完全是由區塊獎勵從0開始發行出來的。挖出新區塊的礦工獲得區塊獎勵,最初每個區塊對應的獎勵是50枚比特幣,每過21萬個區塊,區塊獎勵會減半。
比特幣每個區塊的間隔時間約為10分鐘。在2012年11月、2016年7月、2020年5月,比特幣區塊獎勵經歷了三次減半。根據這些參數我們還可以繪制出比特幣的供給曲線,大約在2140年其新增量將降至無限接近于0,比特幣的總供給量為2100萬枚。
4.最長鏈原則
在任何時刻,最長的鏈條是所有人都接受的最終記錄。
由于最長鏈是由網絡中的主要算力完成的,因而只要它們不全部與攻擊者合作,那么它們生成的最長鏈就是可信的,這個原則被稱為“最長鏈原則”。
5.去中心網絡
比特幣的去中心網絡的架構非常簡潔,本身需要的基礎設施很少。它可以在現有互聯網上運行。計算機節點可以隨時離開或加入這個去中心網絡,在加入時它們只需遵守最長鏈原則即可。
比特幣要做的是一個“點對點電子現金系統”,發送方和接收方直接交易,它們之間不需要中介機構的介入。
要去掉可信第三方等中介機構,就需要解決“雙花問題”。在摘要中,中本聰給出了點對點網絡的解決方案,并介紹了這個方案的核心——區塊鏈。要注意的是,他并沒有提到“區塊鏈”(blockchain)這個詞,但在論文中分別提到了“區塊”(block)和“鏈”(chain)這兩個概念。
「專題討論」說區塊鏈時,我們在說什么
比特幣系統包括三層:比特幣、比特幣協議、比特幣區塊鏈。用比特幣系統來對照看,說區塊鏈時,我們說的可能是什么?通常,“區塊鏈”這個說法所指代的有四種可能性,覆蓋的范圍逐步變大(見圖1-6)。

圖1-6 從比特幣系統看區塊鏈
可能性之一,區塊鏈指的是比特幣的數據結構,即由數據塊(block)連接形成的鏈(chain),這也被稱為“分布式賬本”。在比特幣白皮書中,中本聰分別提及了區塊和鏈,后來它們才被組合成了“區塊鏈”(blockchain)這個新詞。
可能性之二,區塊鏈指的是比特幣的分布式賬本和去中心網絡的組合。對應于比特幣系統,它指的是第三層,即比特幣區塊鏈。
可能性之三,區塊鏈指的是比特幣系統的第二層(比特幣協議)和第三層(比特幣區塊鏈)的組合。它包括分布式賬本、去中心網絡和比特幣協議。
可能性之四,區塊鏈指的是整個比特幣系統,包括所有三層,既包括價值表示的比特幣,也包括背后支撐它的整個系統。從這個范圍看,區塊鏈被看成了一個既包括技術部分又包括經濟部分的完整系統。
一般來說,大眾在提及區塊鏈時,常指的是第四種最大的范圍,即“賬本+網絡+協議+貨幣”。在產業中,人們提到區塊鏈時,通常指的是第三種范圍,即“賬本+網絡+協議”。而很多軟件開發者在說起區塊鏈時通常指的是第二種范圍“賬本+網絡”,即分布式賬本加去中心網絡。特別地,當區塊鏈業界很多人說在某一公鏈上做了一個區塊鏈項目(協議)時,他們的工作范圍是限定在協議部分的,即僅對應著比特幣系統的第二層。
現在,包括我在內的很多人都有一種看法是,將基于區塊鏈的價值表示物都稱為通證,并把比特幣等某條鏈的原生代幣(coin)視為通證的一個特定種類。如果采用“通證”說法,區塊鏈的最大范圍包括的則是“賬本+網絡+協議+通證”。
「冷知識」加密數字貨幣前傳:從大衛·喬姆到中本聰
加密數字貨幣有著非常漫長的歷史,這個冷知識專欄用幾個主要人物和他們的創造,來展示一個簡明的加密數字貨幣前傳。
一、1983年,大衛·喬姆(David Chaum)最早提出把加密技術用在數字現金上
在物理世界中,現金可以非常簡單,它需要的是防偽功能。現金可以看成是一張特別的紙條,在紙條上寫上“拿到這張紙條的人可以找我領取一只羊”,然后簽上自己的名字、簽名就是防偽措施。同時,當我把紙條拿給你,紙條到你手中,我就沒有了。
在數字世界中,情況開始變得復雜:這張紙條和上面的簽名是一個數字文件,而電子文件可以被無數次完美地復制。把這個電子文件給你之后,我還可以再把這個電子文件給第三個人,這就是所謂的雙重支付問題。
大衛·喬姆提出了一個創造性的方案,解決了這個難題。他的方法采用這樣的邏輯:在一張紙條上,你選擇一個只有你知道的序列號,然后我在上面簽名。由于我不知道這個序列號,因此我沒法復制一份這張紙條給另一個人,這就是密碼學上所謂的“盲簽”(Blind Signature)。這個思路形成了“第一個真正意義上的電子貨幣方案”。1989年,大衛·喬姆還創建了數字現金公司(DigiCash)來把自己的想法商業化,但未能被大規模接受。
這個方案的缺點是,它要運轉起來,就必須有一個所有參與者都信任的中心化服務器來進行這些“數字紙條”的驗證。
二、1997~1998年,亞當·貝克(Adam Back)與哈希現金(HashCash)、戴偉(Wei Dai)與B幣(B-Money)、尼克·薩博(Nick Szabo)與比特黃金(Bit Gold)、哈爾·芬尼(Hal Finney)與工作量證明
在比特幣白皮書中,中本聰引用了1997年亞當·貝克設計的哈希現金、1998年華裔密碼學家戴偉設計的B幣等前人的成果。2010年,由于維基百科試圖刪除比特幣詞條,因此中本聰與他人討論了如何修改詞條描述以讓維基百科接受。他建議這樣寫:“比特幣是戴偉在1998年在密碼朋克中所提到的B幣構想和尼克·薩博提出的比特黃金的具體實現。”他說是具體實現,是因為B幣和比特黃金都只是停留在構想中。
這就引出了區塊鏈領域的一個重要人物——計算機科學家與法律專家尼克·薩博。他在1998年提出了名為“比特黃金”的方案。在現在的區塊鏈世界中,尼克·薩博有著更為重要的位置:薩博是智能合約(Smart Contract)的提出者,1993年他寫出了《智能合約》論文。智能合約是區塊鏈處理交易事務的核心方式,區塊鏈應用通常可被看成是一系列智能合約的組合。
這一階段的第四個重要人物是知名密碼學家哈爾·芬尼,他是著名的PGP加密中的“G”,是密碼朋克圈中的前輩。他在2004年推出了自己版本的采用工作量證明(PoW)機制的電子貨幣。在比特幣開發過程中,哈爾·芬尼與中本聰有很多互動,比特幣的第一筆轉賬就是中本聰轉了10枚比特幣給哈爾·芬尼。
他們四人的具體設想各有不同,但有一個共同點,即都是讓計算機進行計算,從而“創造”電子現金,它們是比特幣系統讓計算機進行加密計算的工作量證明和“挖礦”的創意來源。這非常重要,有了這個想法,中心化服務器才可以被去中心網絡所取代,困擾數字貨幣的一大難題才能被解決。
三、2008年10月,中本聰發布論文“比特幣:一個點對點電子現金系統”
最終,中本聰將前人的創新綜合起來,實現了一種在發行和交易上都去中心化的電子現金。
對于前人的數字貨幣系統(比如喬姆的系統)為什么會失敗,中本聰曾經寫道:“自20世紀90年代以來所有的虛擬貨幣公司全都失敗了……我希望人們可以看到,這些系統之所以失敗,顯然是因為它們的中心化控制這一特性。我想,我們正在首次嘗試建立一個去中心化的、非基于信任的系統。”
這里他提到了兩個相關的詞,一是去中心化(decentralized),二是非基于信任(non-trust-based),現在人們常用“去信任”(trustless)這個詞。去中心網絡一定是非基于信任的,任何人都可以在無須許可的情況下加入這個網絡,網絡中的各方之間不需要信任前提,它們之間的信任是由網絡運行的規則形成的。
[1] 在中國,比特幣等所謂“加密數字貨幣”(cryptocurrency)被界定為“虛擬商品”。2013年年底,中國人民銀行等五部委發布的《關于防范比特幣風險的通知》認為,“從性質上看,比特幣是一種特定的虛擬商品,不具有與貨幣等同的法律地位,不能且不應作為貨幣在市場上流通使用”。本書主要探討區塊鏈技術和應用,對加密數字貨幣、區塊鏈項目、通證以及幣幣交易(或通證兌換)均為技術性討論,不代表任何投資建議。《關于防范比特幣風險的通知》全文見:http://www.gov.cn/gzdt/2013-12/05/content_2542751.htm。
[2] 中本聰郵件:https://www.mail-archive.com/cryptography@metzdowd.com/msg09959.html;比特幣白皮書:www.bitcoin.org/bitcoin.pdf。
[3] 雙重支付或雙花(double spending)問題是,在數字世界中一筆錢可能被花兩次、三次或多次,系統設計需要規避這種情形。中心化的支付依靠中心化數據庫來解決這一問題,而去中心化的電子現金依托分布式賬本與共識算法來解決這一問題。區塊鏈的安全性問題的重點之一就是避免雙花。
[4] 《區塊鏈:技術驅動金融》一書的前言《通往比特幣的漫長道路》(杰里米·克拉克/文),從技術與歷史的角度對加密數字貨幣的歷史進行了詳細的闡述,這里參考了他的梳理分析。
[5] 再往前,這個想法可追溯到1992年密碼學家辛西婭·德沃克(Cynthia Dwork)、莫尼·納歐爾(Moni Naor)提出來的用于減少垃圾郵件的一個方案,對此杰里米·克拉克在《區塊鏈:技術驅動金融》一書的前言中解釋說:“設想你每次發送郵件時,計算機都不得不花幾秒鐘解決一道數學計算題目。如果你沒能附上答案,收件人的郵箱會自動忽略這封郵件。
[6] 以太坊創始人維塔利克·布特林(Vitalik Buterin)在以太坊白皮書中也很好地概述了這段歷史,他是圍繞“去中心化”這個關鍵詞展開論述的:去中心化的數字貨幣概念,正如財產登記這樣的替代應用一樣,早在幾十年前就被提出來了。20世紀八九十年代的匿名電子現金協議,大部分是以喬姆的盲簽技術為基礎的。這些電子現金協議提供具有高度隱私性的貨幣,但是這些協議都沒有流行起來,因為它們都依賴于一個中心化的中介機構。1998年,戴偉的B幣首次引入了通過解決計算難題和去中心化共識創造貨幣的思想,但是該建議并未給出如何實現去中心化共識的具體方法。2005年,芬尼引入了“可重復使用的工作量證明”概念,它同時使用B幣的思想和亞當·貝克提出的計算困難的哈希現金難題來創造密碼學貨幣。但是,這種概念再次迷失于理想化,因為它依賴于可信任的計算作為后端。2009年,一個去中心化的貨幣第一次被中本聰實現,它通過已有公鑰加密的方式來管理所有權,并用一個名為“工作量證明”的共識算法來記錄誰擁有貨幣。