作者:潘致雄

Facebook 在 6 月 18 日發佈 Libra 白皮書之後,引起了各界的廣泛關注和討論,甚至包括各國央行,政府機構。那海外比特幣技術圈的人是如何看待 Libra 的呢?

先引用其中的幾個:Andreas M. Antonopoulos,是《精通比特幣》和《精通以太坊》的作者。他在 Twitter 上評論到:

Libra 是真正的區塊鏈嗎?不。它會與真正開放、公開的區塊鏈比特幣競爭嗎?永遠不會。因爲 Libra 不會與開放、公開、無需許可、無國界、中立、抗審查的區塊鏈項目競爭,所以它將會與商業銀行和央行競爭。等着看好戲吧。

Jamesson Lopp,比特幣工程師,密碼朋克。在 Twitter 上說到:

Libra 看起來是個設計的很好的許可型區塊鏈系統,但需要面對一些長期的挑戰。哦對了,Libra 其實不是區塊鏈。

而他在分析 Libra 區塊鏈的文章中則提到:

在 Libra 協議中,其實並沒有真正的區塊鏈數據結構——「區塊」更像是一種虛擬和邏輯上的構造,驗證節點之間會使用這個邏輯的構造確定系統狀態的快照。

Pieter Wuille 轉載了 Peter Todd 的觀點,這兩位都是比特幣核心開發者:

Libra 是一個不可擴展的中心化數據庫…用戶必須相信這個數據是正確的(而不是像比特幣那樣需要節點自己驗證區塊數據的有效性)…

以上的這幾條評論,都是在直接質疑 Libra 不是「區塊鏈」。當然了,其實現在對於「什麼是區塊鏈」這個問題,不同國家、行業和機構對它的理解都可能有些細微差異,畢竟任何新的概念都會經歷這樣的一個過程。

區塊鏈誕生時間線

如果從現代密碼貨幣起源開始說的話,在中本聰撰寫的比特幣白皮書中,還沒有正式提出「區塊鏈」這個術語,而是分別提及「區塊」和「鏈」這兩個詞。不過在比特幣白皮書中引用了三篇來自 Stuart Haber 和 W. Scott Stornetta 的論文,最早的一篇可以追溯到 1991 年,其中介紹了一種利用加密算法,並將「數據塊」以「鏈」式的形式儲存的技術,用於給數字版文件標記時間戳,這很可能就是區塊鏈概念的源頭了。

如果想知道「區塊鏈」這個概念在時間跨度上是如何產生的,維基百科會是一個很好的數據源,因爲它有着非常健全的歷史記錄。通過研究英文維基百科「Bitcoin」條目的歷史記錄,檢測所有歷史快照中和「blockchain」相關的術語,可以製作出如下的時間線:

從比特幣社區對 Libra 的質疑到各界對區塊鏈的定義

所以,演化路徑是:

  1. 「區塊鏈 | Blockchain」這個術語經歷了從詞組「block chain」到組合詞「block-chain」,最後才成爲單個詞「blockchain」的。
  2. 2010 年 3 月,也是距離比特幣白皮書發佈近 1 年半之後,第一次出現了「… proof-of-work block chain…」(注意中間的空格)這樣的描述。
  3. 2012 年 4 月,也是距離比特幣白皮書發佈近 3 年半之後,第一次出現了「…called the blockchain…」這個描述。這次變更在 Bitcoin 條目的討論區(維基百科上對於每個詞條目都有討論區,給共同編輯者提供一個討論條目的場所)中也沒有提及爲什麼要把「block chain」改爲「blockchain」,而這名將空格去除的編輯者在討論區中也不止一處地方使用「blockchain」這個詞,所以這也可能是編輯者的誤用,或者只是爲了偷懶去除一個空格。

注:1. 由於維基百科更多時候是引用和總結,所以可能會比媒體或者社交網絡上使用的滯後一些。 2. 僅根據正文內容的分析,不包含引用,鏈接,標題等。3. 由於維基百科條目修改頻率較高,所以以每個月最後一次更改作爲條目當月的快照

各研究機構對於區塊鏈一詞的定義

看完了詞源,接下來再看看這個詞的各種定義。

先是 Libra 項目本身對於「區塊鏈」這個詞的定義,摘自官網:

加密貨幣依賴的技術。區塊鏈是一種可在對等網絡上安全存儲交易記錄,避免將這些記錄存儲在單一站點的技術。區塊鏈的運行由分佈在世界各地的獨立服務器(稱爲「節點」)構成的網絡實現。

美國國家標準技術研究所(NIST)是一個專業機構,他們出版的「區塊鏈技術概覽」報告中,是這樣定義的:

區塊鏈技術就是由密碼學簽名的交易組成的的分佈式數字賬本,這些交易數據以區塊的形式組合在一起。在經過驗證和共識後,每一個區塊都會在通過密碼學的的方式關聯到前一個區塊(目的是爲了防篡改)。當新的區塊添加進來,越是以前的區塊就越難更改(增加防篡改的難度)。網絡中的新區塊會被複制到不同節點的賬本副本中,任何衝突會根據既定的規則自動解決。

區塊鏈就是分佈式賬本,並且包含如下特性:

  • 去中心化
  • 點對點
  • 防止篡改
  • 通過共識同步數據

來源:
https://nvlpubs.nist.gov/nistpubs/ir/2018/NIST.IR.8202.pdf
https://csrc.nist.gov/CSRC/media/Presentations/NIST-Block-Chain-Research-Project/images-media/ar-dy-blockchain-combined.pdf

NASA 在一篇文檔中是這樣描述的:

區塊鏈指的是分佈式賬本技術,其中由數據組成的區塊是通過密碼學哈希算法鏈接在一起的,網絡的參與者是共享這份分佈式賬本的。

來源:https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/20180006549.pdf

傳統金融機構是如何看待區塊鏈的?J.P.Morgan 在「Decrypting Cryptocurrencies: Technology, Applications and Challenges」報告中提到:

區塊鏈 = 點對點網絡 + 非對稱加密算法 + 哈希算法

區塊鏈 (一般也是指「分佈式賬本技術」)是由分佈式網絡中所有節點共享的安全的交易賬本數據庫,這個數據庫會記錄並儲存在網絡中發生的每一筆交易,創建了一種不可撤銷和可審計的交易歷史。區塊鏈可以被認爲是一種高級的數據庫,並且其中的數據和訪問數據的方式是被加密的。區塊鏈的分佈式特性意味着它有着內置的冗餘機制,能夠承受某個節點丟失數據的問題,因爲所有的交易記錄都是被共享的。

術語「區塊鏈」、「分佈式賬本」或者「共享賬本」是三個可互換的詞。

世界經濟論壇:

區塊鏈(也被稱爲分佈式賬本),正因爲比特幣和以太坊等密碼貨幣使用了這個技術,所以在把所有人帶去一個開放,去中心化和全球化的時代。它利用全球點對點的網絡,保證了在沒有可信第三方的時候,在幾十億設備上價值交換的準確性。與互聯網不同的是,區塊鏈是分佈式的,不是中心化的;開放的,不是隱藏的;包容的,不是排斥的;(其中的數據是) 不變的,不是可變的;安全。

來源:http://www3.weforum.org/docs/WEF_Realizing_Potential_Blockchain.pdf

MIT 科技評論:

區塊鏈是一個開放式的,永久的,只能增加 (不可減少或修改) 數據的分佈式賬本。

來源:https://www.technologyreview.com/s/610833/explainer-what-is-a-blockchain/

由 Andreas M. Antonopoulos 撰寫的精通比特幣(第二版)術語表中對於區塊鏈的極簡定義,差不多就是「區塊鏈」這個名詞的直譯了:

區塊鏈就是已確認區塊的列表,每個區塊都會連接到其之前的區塊,一直到創世區塊爲止。

來源:https://github.com/bitcoinbook/bitcoinbook/blob/develop/glossary.asciidoc

最後還有兩個頭部交易所的觀點,先是 Coinbase:

從最基礎的來說,區塊鏈就是所有人都可以查看和驗證的轉賬記錄列表。以比特幣這個區塊鏈來說,就是所有人收發比特幣的轉賬數據的歷史。

來源:https://www.coinbase.com/learn/what-is-a-blockchain

「Binance Academy」是幣安旗下的學習平臺,其中關於區塊鏈的解釋非常的詳細:

大多數區塊鏈都是作爲一種分佈式且去中心化的數字賬本來設計的。簡單的說,區塊鏈是一種負責記載交易記錄的數字賬本,也可以比作是一種紙質賬本的數字版本。

更具體地說,區塊鏈是由多個區塊組成的線性鏈,且其中的區塊是由加密憑證連接和保護的。區塊鏈技術可以被應用於其他不一定需要財務操作的活動中。同時在加密貨幣的環境中,區塊將負責對已確認交易進行永久記錄。

傳統的賬本都是中心化的,因爲他們都是由單一實體維護,且通常也只依賴於單個數據庫。而區塊鏈則完全不同,它通常都是作爲分佈式系統來構建的,且起到的作用也是去中心化賬本。這就意味着,不存在單一的賬本副本(分佈式),且不受單一個體控制(去中心化)。簡單的說,每一個決定加入並參與區塊鏈網絡維護的用戶都將持有一份區塊鏈數據的副本,該副本通常將與其他用戶的副本同步,且所有的最新交易數據也將更新到副本當中。

來源:https://www.binance.vision/zh/blockchain/difference-between-blockchain-and-bitcoin

評價

所以在通常意義上,大家所公認的區塊鏈的組成,差不多包含以下這幾個特性:

  • 數據存儲形式:區塊(儲存的是賬本)+ 鏈
    • 這是「區塊鏈」這個詞最直接的解釋
    • 當包含了這個特性,至少有了存儲的數據,提供了可審計的所有的歷史交易記錄
  • 基礎學科:密碼學
    • 有些定義中沒出現和「密碼學」相關的術語
    • 如果定義中出現了「密碼學」相關術語,一般以形容詞或者副詞的形式出現:Cryptographically 和 Cryptographic
    • 有些定義中出現了和「安全」相關的詞,其實也是靠密碼學來保證的。
    • 當包含了這個特性,區塊內的數據會由密碼學中的非對稱加密算法、簽名算法、哈希算法等保障。
  • 數據維護者和使用者:去中心化 / 分佈式
    • 當包含了這個特性,賬本數據會通過多方備份保證安全。
  • 節點之間如何保持數據一致:共識機制
    • 當包含了這個特性,只有遵守共識的節點纔有權利將交易數據寫入區塊,其他參與共識的節點可以驗證數據的有效性。

「區塊」、「鏈」可能是中本聰在設計比特幣時候抽象出的兩個名詞,方便理解:需要一個東西來儲存交易數據,那就叫區塊;需要一種數據結構把區塊按順序連接起來,那就用線性的「鏈」這個詞。

從名字上來看,會讓大家覺得區塊鏈就是指的數據存儲方式。後來由大家逐漸形成認知的「區塊鏈」這個詞,其實是彙集了很多其它概念和技術(上述的這四個),但並沒有反應在我們通常所認爲的「區塊鏈」這個術語中。

所以,部分專業機構把區塊鏈看作是分佈式賬本技術的同義詞。其實分佈式賬本技術中,不僅有區塊鏈這類儲存形式,常見的還有「有向無環圖」,中文環境中一般也用英文 DAG (Directed Acyclic Graph)。DAG 的數據存儲方式和區塊鏈其實不一樣,區塊鏈的結構中,每個區塊僅有一個前置區塊和一個後置區塊,但是在 DAG 的結構中,每筆交易可能有多個前置交易或區塊,也可能有多個後置交易或區塊。DAG 的代表性項目有 IOTA,HashGraph,Algorand。雖然嚴格意義上來說 DAG 不能算是狹義上的區塊鏈,但這些項目本身的宣傳上,以及大衆的認知還是會覺得其實就是區塊鏈項目。所以也能看出區塊鏈現在就是分佈式賬本技術的代名詞了。

如果用一句話包含所有以上這些特點,可以這麼來解釋:「區塊鏈是使用加密算法線性儲存賬本數據並通過分佈式節點的共識確保數據統一的技術。」

結論

  1. 在部分專業機構眼裏,區塊鏈就是指的「分佈式賬本技術」(縮寫爲 DLT)。
  2. 從區塊鏈這個名詞直譯的話,其實指的是數據以線性鏈的形式儲存
  3. 其實分佈式賬本技術中,不僅有區塊鏈這類儲存形式,還有 DAG。但現在也可以把 DAG 稱爲廣義上區塊鏈
  4. 通常大家所討論的區塊鏈技術都是指的開放式區塊鏈技術,也可以叫公鏈 / 公有鏈
  5. 區塊鏈其實指代的是一系列技術的集合體,包含了數據的儲存形式、密碼學、去中心化備份和共識機制等特點。
  6. 除了開放式區塊鏈技術之外,還有非開放式的,一般還會分爲私有鏈和聯盟鏈這兩類
  7. 比特幣開發社區反饋的「Libra 不是區塊鏈」,其實是說 Libra 不是「開放式區塊鏈」,因爲 Libra 更像是「聯盟鏈」。從廣義上來說,由於大家一般提及的區塊鏈就是指的開放式區塊鏈,所以說比特幣開發社區反饋的說法也是沒有什麼問題的。