區塊鏈前景如何?是否仍有可能像有些媒體宣傳的那樣會取代互聯網?還是最終會隨着比特幣泡沫的破裂而消失?

稿件來源: 中國計算機學會

2018 年 12 月 11 日,比特幣從一年前的每枚 2 萬美元降爲 3300 美元,結束了幾個世紀以來最大的金融泡沫。2017 年一路瘋漲的比特幣泡沫受到全世界的關注,支撐它的區塊鏈技術也隨之聲名鵲起,不少科技大咖將其和萬維網技術相提並論,使其在短時間內成爲投資領域的新寵。2018 年隨着比特幣泡沫的破裂,區塊鏈前景如何?是否仍有可能像有些媒體宣傳的那樣會取代互聯網?還是最終會隨着比特幣泡沫的破裂而消失?

時間戳

比特幣所依託的區塊鏈技術在 20 年前就已出現。1991 年商業互聯網未出現時,民用互聯網僅僅存在於研究機構、大學和少數科技公司之中,但互聯網上的各種信息交換活動卻相當活躍,尤其是電子文檔的傳閱。

1991 年 Journal of Cryptology 上發表了一篇題爲「如何給數字文檔蓋時間戳 (How to Time-Stamp a Digital Document)」的論文 [1]。這篇論文探討如何通過去中心化的方式給電子文檔加蓋有公信度的時間戳,使得任何人都可以準確分辨出一個電子文檔的生成和修改時間。顯然這一技術適用於很多法律方面的應用,比如爲發明和專利的糾紛提供誰先提出想法的依據。

該論文的兩位作者哈伯 (Stuart Haber) 和斯托內塔 (Scott Stornetta) 都是科班出身。20 世紀 70 年代哈伯畢業於哈佛大學數學專業,隨後遊學巴黎高等師範學院和斯坦福大學,最終在哥倫比亞大學讀完密碼學博士學位,成爲這一領域的專家。斯托內塔比哈伯小 10 歲左右,20 世紀 80 年代就讀於斯坦福大學,直到獲得物理學博士。兩人一起寫這篇論文的機緣是他們畢業後都去到當時熱門的高科技公司 Bellcore 做研發工作 1。顯然兩人深厚的數理背景爲區塊鏈的發明提供了基礎,成就了這篇區塊鏈技術的開創性論文。

在這篇論文裏,他們想通過蓋時間戳的方式來準確區分電子文檔的時間先後順序。他們意識到單單通過一個具有權威性的時間戳服務器給文檔加蓋時間戳是不夠的,因爲服務器有很多潛在風險,比如被黑客攻擊,發生計時故障,或者服務器的時間被擁有服務器控制權的人所更改等等,這些都可能導致時間戳的不準確,從而無法區分文檔提交的順序。他們認識到要想真正做到區分先後順序,更可靠的方法是服務器把電子文檔到達的先後順序信息以不可更改的方式嵌入到每一個文檔中。這樣當用戶收到蓋上時間戳的文檔後就多了一層驗證機制。

針對這一想法,他們提出了兩個解決方案,這兩個方案的核心機制都是讓後來提交的文檔包含前面已經提交的文檔的信息。這樣一來,所有電子文檔會根據生成的先後順序逐漸形成一條文檔鏈,後面的文檔可以通過追溯的方式驗證前面所有文檔的時間順序。即便有人想在時間戳上做手腳,也必須修改前面產生的文檔的所有時間戳纔行。所以對用戶來說,要防止惡意篡改行爲,只要保證修改所有文檔的成本足夠大,以至於幾乎不可能實現就可以了,這就是區塊鏈「鏈接」部分思想的緣起。而實現上述想法需要數字簽名和哈希算法技術。

基於公鑰加密技術的數字簽名在 20 世紀 70 年代被提出,經過不斷優化,到了 90 年代從實施效率來看已經非常完善。配備了公鑰加密系統的時間戳服務器可以通過數字簽名的方式給用戶提交的文檔加蓋時間戳,在加蓋時間戳之前的用戶文檔後面加上前面用戶的文檔信息就實現了文檔鏈接。但是這裏面還有一個效率問題。因爲不同大小的電子文檔會導致文件的上載和回傳時間不同。如果前面用戶的文檔太長,一旦添加到後面用戶的文檔中,會導致後面用戶文檔存儲空間的不必要浪費等問題。於是哈希算法被引入。

哈希算法的特點是可以把不同長度的電子文檔映射成標準長度的數文摘要,而且稍微變動文檔的任何部分,都會導致哈希摘要的顯著變化,儘管不能完全杜絕兩個不同電子文檔的摘要碰巧完全一樣的情況,但產生這種衝突的概率還是很小的。每一個文檔的哈希摘要都是固定長度的,服務器就可以把前面文檔哈希摘要的已簽名信息嵌入到後面文檔中,然後給後面文檔加蓋時間戳並簽名,再返回給用戶。於是用戶通過這一方式把自己的文檔添加到了該服務器所創建的文檔鏈中,可以通過後者回溯驗證或者向第三方證明時間戳的準確性。

哈希樹

哈伯和斯托內塔的論文雖然提出了文件鏈的思想和實現方式,但是在回溯驗證方面仍然存在效率問題。這是因爲當用戶對某一個文檔的時間戳有懷疑時,他可以向前回溯相關文件,驗證時間戳的可信性,但是回溯的效率會隨着需要回溯文檔鏈的增長而逐步下降。與此同時,當大量的平庸交易 (banal transaction) 也希望獲得時間戳時,這種對每個交易進行單獨鏈接方式的計算成本就變得非常高。於是他們與哥倫比亞大學的數學教授戴夫•拜耳 (Dave Bayer)2 合作,在 1993 年通過哈希樹方式對文檔鏈接技術的效率進行了完善 [2],解決了批量處理電子文檔或者電子交易的時間戳問題。

哈希樹(又稱 Merkle 樹)是美國計算機專家默克 (Ralph Merkle) 在 1979 年提出並獲得專利的一種計算機數據結構。它的基本概念是以二叉樹的形式把需要加密的電子文檔的哈希摘要存放到樹的葉節點,然後將葉節點以上的每一層節點均以其子節點的哈希摘要進行重複哈希,直到根部。這樣形成的一棵哈希樹,無論有多少葉結點(對應電子文檔的數量),只要任何一個結點被改動,那麼哈希樹的根節點也會發生變化,所以要驗證該哈希樹所包含的任何電子文檔是否被篡改,我們只要驗證包含該文檔的哈希樹的根節點,這就提高了驗證效率。

利用哈希樹的這一特點,他們把原來單個文檔的直接鏈接方式轉變爲由一組文檔形成哈希樹的鏈接方式。這裏的哈希樹就是所謂的「區塊」,並且在這種新的鏈接方式裏,每個新文檔需要記錄的不再是前面文檔的哈希摘要,而是所有與其相關,直到根節點的它所在哈希樹的所有側枝節點的哈希摘要。

更具有創新意義的是他們還提出了一種競爭機制,就是鼓勵每個用戶儘快計算出他們文檔所在哈希樹的根節點,最先算出根節點的用戶通過向全網通告根節點來形成公共歷史記錄。後來的比特幣顯然受到這一思路的影響,用競爭計算方式(工作量證明)來產生新比特幣區塊,並且用獎勵比特幣的方式來鼓勵競爭的比特幣生成機制。後者則衍生出了一批專門從事創建區塊的「挖礦」公司和與此相關的軟硬件技術。

比特幣

1994 年哈伯和斯托內塔離開 Bellcore 開始創業,成立了 Surety 公司,繼續推廣區塊鏈技術。但是他們的推廣並沒有引起產業界和主流媒體的關注。到了 2008 年,神祕人物中本聰 (Satoshi Nakamoto) 聲稱開發了一款真正意義上的分佈式加密虛擬貨幣。他爲該虛擬幣註冊了網站 (bitcoin.org),上載了虛擬幣錢包和挖幣軟件,並用該軟件在 2009 年 1 月 3 日挖掘創立了第一個比特幣區塊。於是比特幣悄悄出現在互聯網上。

虛擬貨幣做爲網絡支付的一種手段在互聯網電子商務出現之前就已經被關注。推動這一領域發展的最初動力是小額支付問題。信用卡有最低交易成本,所以用信用卡來在線購買價值幾美分的商品,交易成本就變得非常高,商家或者信用卡公司都傾向於拒絕這類交易。理想的解決方案顯然是使用一種交易成本接近零的虛擬貨幣。針對這一需求,90 年代末互聯網上曾經出現過多種虛擬貨幣嘗試,並由此產生了研究和討論虛擬貨幣的網上社羣,俗稱「幣圈」。

但是虛擬貨幣的流通存在一個棘手的重複支付問題,也稱「雙花 (double spending)」問題。爲了避免虛擬幣持有人用同一幣值進行多次支付,任何虛擬幣系統都需要花費成本跟蹤和標記每一個用戶持有的幣值。對跟蹤成本的要求與接近零成本的交易顯然有一定的內在矛盾。除了技術層面,虛擬貨幣還有一個設計層面的挑戰。早期電子商務的創業者幾乎全部崇尚哈耶克式的自由主義 3,認爲虛擬貨幣的發行不應受包括政府在內的任何組織或者個人的控制,而應該像黃金一樣具有稀缺性,需要通過一定的成本才能被生產出來,這樣才能從根本上杜絕濫發貶值問題。這一成本需求恰好與前面提到的跟蹤和標記功能在成本需求上有着一致性。所以虛擬貨幣的推崇者一直期盼能夠有一種技術,以去中心化的方式花費一定成本跟蹤和標記虛擬貨幣的使用,既解決了雙花問題,又提供了對稀缺性的要求。

中本聰發現區塊鏈恰好能夠同時滿足這幾種需求。簡單來看,區塊鏈的時間戳可以準確地標記交易時間和先後順序,避免同一幣值被多次重複使用;用哈希樹打包解決平庸交易的優化方案,可以直接應用到打包比特幣交易爲比特幣區塊;而用戶通過競爭方式打包比特幣交易進入新區塊所產生的成本,也就是創建新區塊的「挖礦」過程 4,爲比特幣提供了稀缺性的特徵。於是比特幣藉助區塊鏈技術成爲最能滿足虛擬貨幣支持者的幣種。

比特幣在創立之初並沒有引起幣圈外媒體和投資界的關注 5,這一事實從早期幣值就可以看出。由於沒有比較穩定的早期比特幣和傳統貨幣的兌換率,我們只能從一些有限的交易中推算出當時每枚比特幣的幣值不到 1 美分 6。儘管如此,由於比特幣所使用的區塊鏈技術使它較爲成功地解決了前面提到的虛擬貨幣在發行和流通層面的兩大挑戰,逐漸吸引了越來越多的用戶和炒家。最終通過馬太效應從衆多虛擬幣中脫穎而出,並在 2017 年由於炒家的過渡投機,造成金融史上出現超過「荷蘭鬱金香泡沫」7 的最大金融泡沫。不過區塊鏈技術卻藉此契機引起世人的矚目。

公信與應用

區塊鏈技術最重要的特點是它能夠給所有參與者提供一種公信力。比如比特幣的使用者相信他們嵌入到區塊鏈中的比特幣幣值只有他們可以使用,而且是可以得到準確驗證的。是這種對比特幣區塊鏈的信任使得不斷有人願意購買比特幣和接受比特幣。

公信力的傳統來源是權威機構,譬如政府或者是 RSA8 這樣的專職網絡信用授權公司。這種公信形式的特點是每一個參與者將對公信對象的信任,委託或者轉移給提供公信力的權威機構。譬如國民因爲信任主權政府而信任政府所發行紙幣的購買能力,網民因爲信任 RSA 而信任該公司所發放的對各種網絡公司和個人的身份認證。

傳統公信形式的特點是效率高,成本低。無論是直接發行貨幣還是直接發佈數字證書,都要比區塊鏈的解決方案來的直接。但是這種公信形式的缺點也很明顯,就是風險性大。這裏的風險性包括系統風險和道德風險。系統風險是指在公信委託或者轉移體系的設計中存在可以被不法分子有機可乘的漏洞,比如若黑客攻入 RSA 認證服務器獲得根認證密鑰,就有可能導致整個互聯網電子商務系統的認證系統紊亂和崩潰,使得正常的電子交易無法進行。道德風險是指被委託的權威機構因爲集中掌握了公信權而利用該權利,做出有利於自身但是損害參與者的行爲所帶來的風險,比如政府濫發貨幣引發通貨膨脹,損害普通居民的經濟利益。

儘管傳統公信形式的風險時刻存在而且不容忽視,但在信息技術普及之前,人類社會並沒有找到一個很好的替代形式。紙幣是世界各國普遍採用的公信形式,唯一例外是雅浦島的石幣 [3],但是其因爲物理介質的侷限性只能在很小的社會範圍內使用。

信息技術尤其是互聯網技術的普及爲突破傳統公信形式提供了重要的契機。哈伯等學者發明時間戳和用哈希樹打包交易的初衷是解決傳統公信形式的系統風險,而中本聰則試圖用比特幣和區塊鏈解決政府所發行的法定紙幣所帶來的道德風險,這也是哈耶克的初衷。

區塊鏈所提供的新的公信形式可以應用到很多方面。如果把區塊鏈的核心技術進行分解分析,可以進一步發現,比特幣利用的主要是時間戳功能,並以此來杜絕「雙花」企圖。如果我們保留鏈接加密理念,同時提供參與者的地理位置信息,區塊鏈就可以應用到流通領域的供應鏈管理中。比如受很多消費者崇尚的有機食品和農產品存在不同程度的造假現象,儘管推出這些產品的公司提供了所謂的認證,但越來越多的權威認證機構的信任缺失事件,使得越來越多的人對貨架上商品的產地真實性持懷疑態度。 針對這種現象,學術界和企業界提出了用包含地理位置信息的區塊鏈來鏈接一件商品的整個供應鏈參與者的策略,使消費者可以通過使用智能設備掃描商品上二維碼等手段,驗證一件商品從產地到批發到零售所經過的所有地區和參與者信息。因爲這一信息是每個經過身份驗證的參與者自願提供的,其可信度要比僅由商家或者權威組織提供的供應鏈信息要更加可信 [4]。

區塊鏈公信的另一個重要的應用領域是法律合同。前面提到時間戳是爲了解決網絡文檔的首發時間辨別。顯然在法律領域除了專利申請外,還有很多分支需要時間先後順序的辨別。其中最普遍也是需求量最大的是遺囑建立和修改。西方國家的遺囑管理通常通過律師進行,中國的遺囑則是通過公證部門辦理。區塊鏈技術則爲遺囑的創建和管理提供了新的途徑,因爲它不但可以通過公密和數字簽名保障遺囑文字的完整和準確,而且通過時間戳和鏈接順序保障了遺囑修改和重立後的最終版本的有效性。

除了替代傳統法律合同的公信,區塊鏈還可以在這一領域通過加強應用提供智能合約 [5]。建立在區塊鏈技術上的智能合約,可以在保護和甄別合同完整性和有效性的同時,提供一定的自動執行功能,當然前提是合約的執行條件和執行通道能夠預先編寫到區塊鏈和鑲嵌到系統中。

平臺的限制

儘管區塊鏈技術有着非常廣泛的應用場景,但它是否有可能突破公信應用成爲一個可以容納其他應用的平臺技術?答案是否定的。

信息領域裏平臺型技術的代表是互聯網和萬維網。互聯網是各種不同傳輸協議的計算機網絡之間聯網的統稱。在萬維網出現之前,這些使用不同協議的網絡通過路由和網關實現相互之間的通訊,從而爲計算機上的各種應用提供一個可以交流的平臺。萬維網則是更進一步,將互聯網各種網絡協議的內容和應用通過萬維網協議進行整合,方便了用戶。當萬維網成爲主流後,其他類似功能的網絡協議逐漸被廢棄,而更多的應用開始搭建到萬維網上,從而進一步確定了萬維網的平臺技術地位。

萬維網之後,出現了多個與萬維網互補或者是搭建於其上的圍牆花園式平臺,比如基於無線應用協議 (WAP) 的移動平臺和以臉書與微信爲代表的社交商用平臺。這些後來出現的平臺技術與萬維網都有一個共同特點,平臺本身是技術中性 (techno-neutral) 和數據結構盲視 (data structure blind) 的。比如無論是萬維網還是移動網絡,任何應用中的數據在這兩個平臺上的流動無需加密,但是企業可以根據需要在傳輸時將數據加密。同時平臺可以完全根據應用的需要,接納任何數據結構。臉書和微信雖然依託於萬維網或者是移動網絡之上,但它們依然能夠提供一個具備以上特點的專門平臺環境,使開發人員可以不但在其之上開發出各種應用,而且可以充分利用它們各自擁有的用戶信息。

區塊鏈則不具備上述的包容性。首先區塊鏈的參與者必須將所有入鏈的數據加密和簽名才能保證真實性,不具備技術中性要求;其次,區塊鏈的數據組織方式是固定的鏈表 (Linked List) 數據結構,這使得需要使用其他數據結構的應用程序無法利用區塊鏈做爲平臺。所以至少從目前的區塊鏈架構和數據組織方式來看,它無法成爲一種普遍意義上的平臺技術。

未來與侷限

顯然區塊鏈在取代傳統公信方面有現實意義。比如法律文檔,合同,財務交易記錄等等,我們可以通過區塊鏈技術來降低風險和提高透明度。但是我們也需要認識到區塊鏈技術的侷限,尤其是目前的幾個重要應用領域都存在難以克服的障礙。

智能合約是區塊鏈的重要應用領域。比特幣的 Script 和以太坊的 Solidity 都是可以提供智能合約的專門語言,而且以太坊的 Solidity 是圖靈完備語言,可以用來編寫複雜的合約。但是合約越複雜,執行條件就越難分析,計算機可以理解的方式就有可能出現偏差,所以到目前爲止,我們仍然難以在區塊鏈主導的智能合約領域有實質性突破 [6]。

目前已經降到 4000 美元以內的比特幣存在能源消耗所帶來的造幣成本挑戰。從 2015 年開始最近一輪的比特幣升值,導致大批公司和個人將計算資源投入到創建區塊的工作量證明競爭計算中。但是無論多少個競爭者參與,每一個新的區塊只能有一個創造者,這就意味着每一個新區塊潛在成本的不斷增加和海量計算資源的浪費。根據美國知名華爾街調研機構 Fundstrat 的估計,目前新比特幣的區塊鏈計算成本已經達到 4500 美元,超過了比特幣市場價格。針對這一問題,有專家提出用股權證明方式來替代工作量證明,創建新區塊,這種方式雖然減輕了能源消耗,卻增加了「雙花」風險,其應用前景有待觀察。

除了應用層面的挑戰,區塊鏈還有一個根本的侷限性。它所提供的公信的維護成本要高於傳統公信的維護成本。我們從比特幣的應用中可以看出,區塊鏈不是一種能夠完全去中心化的技術,而是一種分佈中心化 (distributed centralization) 技術。雖然它不依賴於唯一中心服務器存在,卻要通過多個服務器的不斷競爭與合作,來爲參與到鏈裏的成員提供相應的區塊產生和維繫服務,這種高成本合作關係的維繫是區塊鏈存在的必要條件,所以維護區塊鏈所需要的最低經濟成本門檻,限制了更多傳統公信領域轉化到區塊鏈應用的可能性。