區塊鏈的正確開啟姿勢

小可長江發表於2019-01-30

 新事物往往不是憑空而來,發展和演化也很少一蹴而就。認識新事物,首先要弄清楚它的來龍去脈,知其出身,方能知其所以然。此文章為《區塊鏈技術指南》的讀後筆記&摘要。

賬本科技的演化

 區塊鏈(Blockchain)的概念首次被人們關注,源於2009年初上線的比特幣(Bitcoin)開源專案。從記賬科技的演化角度來看,區塊鏈實際上是記賬問題發展到分散式場景下的天然結果。賬本科技的演化過程大致可以分為四個階段:簡單賬本、複式賬本、數字化賬本、分散式賬本。簡單賬本很好理解,就是資料沒有備份,容易出錯且很難發現是否被篡改過。複式賬本,簡單理解就是,將每筆交易分別在來源方和目標方進行記錄,且多方之間的賬本總額應該時刻保持相等,這樣就解決了單個賬本的賬本可信問題。數字化賬本的記賬方法相對於複式賬本本身並沒有太多創新,但由於數字媒介的出現,使得賬本的規模、處理的速度、賬本的複雜度都有了天翻地覆的提升,這是現在的電子商務、網際網路金融的技術基礎。複式賬本雖然記錄了交易的來龍去脈,不易出錯,但本質上仍然是中心化模式,多方交易情況下如果某個或部分賬本資料出現不一致,對賬十分困難,分散式賬本:由交易多方共同維護同一個共享的分散式賬本,打通交易在不同階段的來龍去脈,同時憑藉分散式技術進一步提高記賬的規模、效率、可靠性以及合規性。但在分散式場景下,如何避免參與方惡意篡改或者破壞記錄?該由誰來決定每筆交易記錄是否寫入到賬本中?這些問題一直都還在探索最佳實踐。

分散式賬本與區塊鏈

 為了防止有參與者對交易記錄進行篡改,需要引入一定的驗證機制。很自然地,我們想到了數字摘要技術,一個多方參與且都有許可權讀寫的賬本,每次當有新的交易記錄被追加到賬本上時,參與各方可以使用Hash演算法對完整的交易歷史計算數字摘要,獲取當前交易歷史的“指紋”。此後任意時刻,每個參與方都可以對交易歷史重新計算數字摘要,一旦發現指紋不匹配,則說明交易記錄被篡改過。同時,通過追蹤指紋改變位置,可以定位到被篡改的交易記錄:

區塊鏈的正確開啟姿勢
 上述方案,在實際應用中可以解決記錄防篡改問題,但仍然存在較大缺陷。由於每次追加新的交易記錄時需要從頭對所有的歷史資料計算數字摘要,當已存在大量交易歷史時,數字摘要計算成本將變得很高,隨著新交易的放生交易耗費將越來越大,系統擴充套件性很差。 為了解決可擴充套件性的問題,需要進一步改進為方案二:主要到每次摘要已經確保了從頭開始到摘要位置的完整歷史,當新的交易發生後,實際上需要進行額外驗證的只是新的交易,即增量部分。因此,計算摘要的過程可以改進為對舊的摘要值再加上新的交易內容進行驗證。這樣既解決了防篡改問題,又解決了可擴充套件性問題:  實際上,你可能已經注意到,方案二的賬本結構正是一個區塊鏈結構:
區塊鏈的正確開啟姿勢
 可見,從分散式記賬的基本問題出發,可以自然推匯出區塊鏈結構,這也說明了在分散式場景下的記賬問題中,區塊鏈是一個簡潔有效的天然答案。當然,區塊鏈結構也並非解決分散式記賬問題的唯一答案,實際上,除了簡單的線性佇列結構,也有人提出採用樹或者圖結構。

比特幣的意義和價值

 直到今天,關於比特幣的話題仍充滿了不少爭議。但大部分人應該都會認可,比特幣是數字貨幣歷史上,甚至整個金融歷史上一次了不起的社會學實驗。
 比特幣首次真正從實踐意義上實現了安全可靠的非中心化數字貨幣機制,這也是它受到無數金融科技從業者熱捧的根本原因。作為一種概念貨幣,比特幣主要是希望解決已有貨幣系統面臨的幾個核心問題:

  1. 被掌控在單一機構手中,容易被攻擊。
  2. 自身的價值無法保證,容易出現波動。
  3. 無法匿名化交易,不夠隱私。
     要實現一套數字貨幣機制,最關鍵的還是要建立一套完善的交易記錄系統,以及形成一套合理的貨幣發行機制。這個交易記錄系統要能準確、公正地記錄發生過的每一筆交易,並且無法被惡意篡改。對比已有的銀行系統,可以看出,現有的銀行機制作為金融交易的第三方中介機構,有代價地提供了交易記錄服務。如果參與交易的多方都完全相信銀行的記錄(資料庫),就不存在信任問題。可是如果是更大範圍(甚至跨多家銀行)進行流通的貨幣呢?哪家銀行的系統能提供完全可靠不中斷的服務呢?唯一可能的方案是一套分散式賬本。這個賬本可以被所有使用者自由訪問,而且任何個體都無法對所記錄的資料進行惡意篡改和控制。為了實現這樣一個前所未有的賬本系統,比特幣網路巧妙地設計了區塊鏈結構,提供了可靠、無法被篡改的數字貨幣賬本功能。
     比特幣網路中,貨幣的發行是通過比特幣協議來規定的。貨幣總量受到控制,發行速度隨時間自動進行調整。既然總量一定,那麼單個比特幣的價值會隨著越來越多的經濟實體認可比特幣而水漲船高。發行速度的自動調整則避免出現通脹或者滯漲的情況。
     另一方面,也要冷靜地看到,作為社會學實驗,比特幣已經獲得了某種成功,特別是基於區塊鏈技術,已經出現了許多頗有價值的商業場景和創新技術。但這絕不意味著比特幣自身必然能夠進入到未來的商業體系中。比特幣自身價值的波動十分劇烈;同時由於賬目公開可查,通過分析仍有較大概率追蹤到實際使用者;另外,比特幣系統在不少管理環節上仍然依賴中心化的機制。

更有價值的區塊鏈技術

 如果說比特幣是影響力巨大的社會學實驗,那麼從比特幣核心設計中提煉出來的區塊鏈技術,則讓大家看到了塑造更高效、更安全的未來商業網路的可能。
 2014 年開始,比特幣背後的區塊鏈技術開始逐漸受到大家關注,並進一步引發了分散式記賬本(Distributed Ledger)技術的革新浪潮。
 實際上,人們很早就意識到,記賬相關的技術,對於資產(包括有形資產和無形資產)的管理(包括所有權和流通)十分關鍵;而多中心化的分散式記賬本技術,對於當前開放、多維的商業模式意義重大。區塊鏈的思想和結構,正是實現這種分散式記賬本系統的一種極具可行潛力的技術。
 區塊鏈技術現在已經從比特幣專案脫穎而出,在包括金融、貿易、徵信、物聯網、共享經濟等諸多領域嶄露頭角。現在,除非特別指出是“比特幣區塊鏈”,否則當人們提到“區塊鏈技術”時,往往已與比特幣沒有什麼必然聯絡了。
 商業行為的典型過程為:交易多方通過協商確定商業合約,通過執行合約完成交易。區塊鏈擅長的正是如何在多方之間達成合約,並確保合約的順利執行。根據類別和應用場景不同,區塊鏈所體現的特點和價值也不同。從技術角度,一般認為,區塊鏈具有如下特點:

  1. 分散式容錯性:分散式賬本網路極其魯棒,能夠容忍部分節點的異常狀態;
  2. 不可篡改性:共識提交後的資料會一直存在,不可被銷燬或修改;
  3. 隱私保護性:密碼學保證了資料隱私,即便資料洩露,也無法解析。

隨之帶來的業務特性將可能包括:

  1. 可信任性:區塊鏈技術可以提供天然可信的分散式賬本平臺,不需要額外第三方中介機構參與;
  2. 降低成本:跟傳統技術相比,區塊鏈技術可能通過自動化合約執行帶來更快的交易,同時降低維護成本;
  3. 增強安全:區塊鏈技術將有利於安全、可靠的審計管理和賬目清算,減少犯罪風險。

 區塊鏈並非憑空誕生的新技術,更是多種技術演化到一定程度後的產物,因此,其商業應用場景也跟促生其出現的環境息息相關。對於基於數字方式的交易行為,區塊鏈技術能潛在地降低交易成本、加快交易速度,同時能提高安全性。我認為,能否最終提高生產力,將是一項技術能否被實踐接受的關鍵。

區塊鏈的定義與原理

討論區塊鏈的定義可以從狹義和廣義兩個層面來看待。
 狹義上,區塊鏈是一種以區塊為基本單位的鏈式資料結構,區塊中利用數字摘要對之前的交易歷史進行校驗,適合分散式記賬場景下防篡改和可擴充套件性的需求。
 廣義上,區塊鏈還指代基於區塊鏈結構實現的分散式記賬技術,包括分散式共識、隱私與安全保護、點對點通訊技術、網路協議、智慧合約等。
 區塊鏈的基本原理理解起來並不複雜。首先來看三個基本概念:

  • 交易(Transaction):一次對賬本的操作,導致賬本狀態的一次改變,如新增一條轉賬記錄;

  • 區塊(Block):記錄一段時間內發生的所有交易和狀態結果等,是對當前賬本狀態的一次共識;

  • 鏈(Chain):由區塊按照發生順序串聯而成,是整個賬本狀態變化的日誌記錄。

 如果把區塊鏈系統作為一個狀態機,則每次交易意味著一次狀態改變;生成的區塊,就是參與者對其中交易導致狀態改變結果的共識。區塊鏈的目標是實現一個分佈的資料記錄賬本,這個賬本只允許新增、不允許刪除。賬本底層的基本結構是一個線性的連結串列。連結串列由一個個“區塊”串聯組成(如下圖所示),後繼區塊中記錄前導區塊的雜湊(Hash)值。某個區塊(以及塊裡的交易)是否合法,可通過計算雜湊值的方式進行快速檢驗。網路中節點可以提議新增一個新的區塊,但必須經過共識機制來對區塊達成確認。

認識上的誤區

目前,區塊鏈自身仍是一種相對年輕的技術,不少人對它的認識還存在一些不足。下面總結了在探討區塊鏈技術時候一些常見的誤區:

  • 區塊鏈核心在於比特幣?雖說區塊鏈的基本思想出現在比特幣設計中,但發展到今日,加密貨幣和區塊鏈已經儼然成為了兩個不太相關的陣營。前者側重從金融角度發掘比特幣等代幣的實驗性意義;後者則從技術層面探討和研究分散式賬本科技可能帶來的商業價值,試圖擴充到更多的場景。

  • 區塊鏈是一種資料庫技術 雖然區塊鏈也可以用來儲存資料,但它要解決的核心問題是多方的互信協作問題。單純從儲存資料角度,區塊鏈效率可能不高,一般也不推薦把大量原始資料直接放到區塊鏈系統上。當然,現有區塊鏈系統中大量使用了資料庫技術。也有企業嘗試將區塊鏈技術引入到分散式資料庫領域,解決非中心化的管理,如 BigchainDB。

  • Token 就是數字貨幣? 早在區塊鏈概念出現之前,Token(令牌)就大量應用在計算機系統中,作為帶有某種許可權的證明,它可以協助系統應用進行快速協作。因此,在區塊鏈系統中使用 Token 可能在某些應用場景(如遊戲積分)下提供管理便利。而數字貨幣則強調經濟價值,跟其在系統中的原生功能無必然聯絡。

  • 區塊鏈是萬能的,是顛覆性的? 作為融合多項已有技術而出現的事物,區塊鏈跟現有技術體系是一脈相承的。它在解決多方合作和可信處理上向前多走了一步,但並不意味著它解決了所有問題,更不會快速顛覆大量的商業模式。很長一段時間裡,區塊鏈最適用的場景仍需不斷摸索,區塊鏈也會跟已有系統共存使用。

  • 區塊鏈必然是非中心化的?非中心化的一定優於中心化設計?討論技術的優劣必須要有場景前提,區塊鏈也是如此。並不存在某種區塊鏈技術能在任意場景下都優於其它方案,這也是為何目前公開鏈和聯盟鏈在技術選型上存在較大差異。中心化設計具有設計簡單,管理完善,效能可控的特點,但往往容錯效能比較差;非中心化(多中心化)的設計可以提高容錯效能,利用多方共識來降低篡改風險,但意味著設計較複雜,要付出效能代價。實際上,根據實際場景的需求,現有大部分割槽塊鏈技術都介於絕對的中心化和絕對的非中心化之間,以取得不同指標上的平衡。例如公開鏈為了提高效能通過選擇部分信任的節點來作為代表。

相關文章