各區塊鏈架構的橫向比較

weixin_34234823發表於2017-07-24

                                                                                                             張錚文

                                                                                                  渡鴉區塊鏈專欄作者

6070494-a852662dead0cf94.png

時常聽人們談起區塊鏈,從 2009 年比特幣誕生至今,各式各樣的區塊鏈系統或基於區塊鏈的應用不斷被開發出來,並被應用到大量的場景中,而區塊鏈技術本身也在不停地變化和改進。

區塊鏈又被稱為分散式賬本,與之對應的則是中心化賬本,比如銀行。與中心化賬本不同的是,分散式賬本依靠的是將賬本資料冗餘儲存在所有參與節點中,來保證賬本的安全性。簡單地說,區塊鏈會用到三種底層技術:點對點網路技術、密碼學技術和分散式一致性演算法。而通常,區塊鏈系統還會“免費附贈”一種被稱為智慧合約的功能。智慧合約雖然不是區塊鏈系統的必要組成部分,但由於區塊鏈天生所具備的去中心化特點,使它可以很好地為智慧合約提供可信的計算環境。

為了適應不同場景的需求,區塊鏈系統在實際應用的過程中往往會需要進行各種改造,以滿足特定業務的要求,比如身份認證、共識機制、金鑰管理、交易頻次、響應時間、隱私保護、監管要求等。而實際應用區塊鏈系統的公司往往沒有進行這種改造的能力,於是市場上慢慢出現了一些用於定製專用區塊鏈系統的框架,採用這些框架就可以很方便地定製出適用於企業自身業務的區塊鏈系統。

本文將對目前市場上幾個典型的區塊鏈框架進行橫向對比,看看它們都有哪些特點,以及它們之間到底有哪些區別。為了保持對比的公正性,本文將只針對開源的區塊鏈框架進行討論。

6070494-c3d45dacb269a3f1.png

各區塊鏈架構的簡單介紹

1、比特幣

比特幣(bitcoin)源自一名叫做中本聰(Satoshi Nakamoto)的人在 2008 年發表的一篇名為《比特幣:一種點對點的電子現金系統》(Bitcoin: A Peer-to-PeerElectronic Cash System)的論文,文中描述了一種被他稱為“比特幣”的電子貨幣及其演算法。在之後的幾年裡,比特幣不斷成長和成熟,而它的底層技術也逐漸被人們認識並抽象出來,這就是區塊鏈技術。比特幣作為區塊鏈的鼻祖,在區塊鏈的大家族中具有舉足輕重的地位,基於比特幣技術開發出的山寨幣(altcoins)的數量有如天上繁星,數不勝數。

從論文中可以得知,中本聰設計比特幣的目的,就是希望能夠實現一種完全基於點對點網路的電子現金系統,使得線上支付能夠直接由一方發起並支付給另外一方,中間不需要通過任何的中介機構。總結來說,他希望比特幣的設計能夠實現以下這些目標:

●  不需要中央機構就可以發行貨幣

●  不需要中介機構就可以支付

●  保持使用者的匿名性

●  交易無法被撤銷

從電子現金系統的角度來看,以上這些目標在比特幣中基本都得到了實現,但是依然有一些技術問題有待解決,比如延展性攻擊、區塊容量限制、區塊分叉、擴充套件性等。

在應用場景方面,目前大量的數字貨幣專案都是基於比特幣架構來設計的,此外還有一些比較實際的應用案例,比如彩色幣、tØ 等。

彩色幣(coloredcoin),通過仔細跟蹤一些特定比特幣的來龍去脈,可以將它們與其他的比特幣區分開來,這些特定的比特幣就叫作彩色幣。它們具有一些特殊的屬性,從而具有與比特幣面值無關的價值,利用彩色幣的這種特性,使得開發者可以在比特幣網路上建立其它的數字資產。彩色幣本身就是比特幣,儲存和轉移不需要第三方,可以利用已經存在的比特幣的基礎。

tØ 是比特幣區塊鏈在金融領域的應用,是美國線上零售商 Overstock 推出的基於區塊鏈的私有和公有股權交易平臺。

6070494-2f4ed541e835a63f.gif

2、以太坊

以太坊(ethereum) 的目標是提供一個帶有圖靈完備語言的區塊鏈,用這種語言可以建立合約來編寫任意狀態轉換功能,使用者只要簡單地用幾行程式碼來實現邏輯,就能夠建立一個基於區塊鏈的應用程式,並應用於貨幣以外的場景。

以太坊的設計思想是不直接“支援”任何應用,但圖靈完備的程式語言意味著理論上任意的合約邏輯和任何型別的應用都可以被建立出來。總結來說,以太坊在比特幣的設計目標之外,還需要實現以下幾個目標:

●  圖靈完備的合約語言

●  內建的持久化狀態儲存

目前基於以太坊的合約專案已達到數百個,比較有名的有 Augur、TheDAO、Digix、FirstBlood 等。

Augur 是一個去中心化的預測市場平臺,基於以太坊區塊鏈技術。使用者可以用數字貨幣進行預測和下注,依靠群眾的智慧來預判事件的發展結果,可以有效地消除對手方風險和伺服器的中心化風險。

限於篇幅,基於以太坊智慧合約平臺的專案就不多介紹了。基於以太坊的程式碼進行改造的區塊鏈專案也有不少,但幾乎都是閉源專案,只能依靠一些公開的特性來推斷,所以就不在本文展開討論了。

6070494-eaa229fd922a7f9f.gif

3、Fabric

Fabric 是由 IBM 和 DAH 主導開發的一個區塊鏈框架,是超級帳本的專案成員之一。它的功能與以太坊類似,也是一個分散式的智慧合約平臺。但與以太坊和比特幣不同的是,它從一開始就是一個框架,而不是一個公有鏈,也沒有內建的代幣(token)。

超級賬本(hyperledger)是 Linux 基金會於 2015 年發起的推進區塊鏈技術和標準的開源專案,加入成員包括:荷蘭銀行(ABN AMRO)、埃森哲(Accenture)等十幾個不同利益體,目標是讓成員共同合作,共建開放平臺,滿足來自多個不同行業各種使用者案例,並簡化業務流程。

作為一個區塊鏈框架,Fabric 採用了鬆耦合的設計,將共識機制、身份驗證等元件模組化,使之在應用過程中可以方便地替換成自定義的模組。除此之外,Fabric 還採用了容器技術,將智慧合約程式碼(chaincode)放在 docker 中執行,從而使得智慧合約可以用幾乎任意的高階語言來編寫。

以下是 Fabric 的一些設計目標:

● 模組化設計,元件可替換

● 執行於 docker 的智慧合約

目前已經有不少採用 Fabric 架構進行開發的概念驗證(POC)專案在實施過程中,其中不乏一些金融機構做出的嘗試,不過由於專案剛剛起步,還沒有比較成熟的落地應用。

6070494-11e2f13b5d0e004c.gif

4、DNA

DNA(Distributed Networks Architecture,分散式網路架構),是由總部位於上海的區塊鏈創業公司“分佈科技”開發的區塊鏈架構,可以同時支援公有鏈、聯盟鏈、私有鏈等不同應用型別和場景,並快速與業務系統整合。

與以太坊、Fabric 不同的是,DNA 在系統底層實現了對多種數字資產的支援,使用者可以直接在鏈上建立自己的資產型別,並用智慧合約來控制它的發行邏輯。對於絕大部分的區塊鏈應用場景,數字資產是必不可少的,而為每一種數字資產都開發一套基於智慧合約的轉賬、發行邏輯是非常浪費且低效的。因此,由區塊鏈底層提供直接的數字資產功能是十分必要的。而對於那些完全不需要數字資產的應用場景,同樣可以基於 DNA 提供的智慧合約架構來編寫任意的自定義邏輯來實現。

DNA 的設計目標主要有以下幾點:

●  多種數字資產的底層支援

●  圖靈完備的智慧合約和狀態持久化

●  跨鏈互操作性

●  交易的最終性

目前已有不少金融機構採用 DNA 架構來進行區塊鏈概念驗證產品的開發。除此之外,還有一些已經落地的區塊鏈專案,如小蟻區塊鏈、法鏈等。

小蟻(antshares)是一個定位於資產數字化的公有鏈,將實體世界的資產和權益進行數字化,通過點對點網路進行登記發行、轉讓交易、清算交割等金融業務的去中心化網路協議。它採用社群化開發的模式,在架構上與 DNA 保持一致,從而可以與任何基於DNA 的區塊鏈系統發生跨鏈互操作。

法鏈是全球第一個大規模商用的法律存證區塊鏈,一個底層基於 DNA區塊鏈技術,並由多個機構參與建立和運營的證據記錄和儲存系統。該系統沒有中心控制點,且資料一旦錄入,單個機構或節點無法篡改,從而滿足司法存證的要求。

6070494-86c4e258834210d4.gif

5、Corda

Corda 是由一家總部位於紐約的區塊鏈創業公司 R3CEV 開發的,由其發起的 R3區塊鏈聯盟,至今已吸引了數十家巨頭銀行的參與,其中包括富國銀行、美國銀行、紐約梅隆銀行、花旗銀行、德國商業銀行、德意志銀行、匯豐銀行、三菱 UFJ 金融集團、摩根士丹利、澳大利亞國民銀行、加拿大皇家銀行、瑞典北歐斯安銀行(SEB)、法國興業銀行等。

從 R3 成員的組成上也可以看出,Corda 是一款專門用於銀行與銀行間業務的區塊鏈架構。儘管 R3 自己聲稱 Corda 不是區塊鏈,但從各項特徵來看,它具備區塊鏈的一些特性。

6070494-cb0f65360b31eabf.png

技術對比

1、數字資產

接下來,將對前文中提到的這些區塊鏈框架進行一系列的技術對比,並從多個維度展開介紹它們的區別與相似之處。

6070494-9311727e6b509f85

區塊鏈的內建代幣通常是一種經濟激勵模型和防止垃圾交易的手段。比特幣天生就有且只有一種內建代幣,所以在比特幣系統中所有的“交易”本質上都是轉賬行為,除非通過外部的協議層來給比特幣增加額外的數字資產。

以太坊和 DNA 具有內建代幣,它們的作用除了以上提到的經濟激勵和防止垃圾交易之外,還具有為系統內建功能提供一個收費的渠道。比如以太坊的智慧合約執行需要消耗 GAS,而 DNA 的數字資產建立也需要消耗一定的代幣。

以太坊和 Fabric 沒有內建的多種數字資產支援,而是通過智慧合約來實現相應的功能。這種方式的好處在於,系統設計可以做到非常簡潔,而且資產的行為可以任意指定,自由度極高。然而這樣的設計也會帶來一系列的負面影響,比如所有的資產建立者不得不自己編寫重複的業務邏輯,而使用者也沒有辦法通過統一的方式去操作自己的資產。

相比之下,DNA 和 Corda 採用了在底層支援多種數字資產的方式,讓資產建立者可以方便地建立自己的資產型別,而使用者也可以在同一個客戶端中管理所有的資產。對於邏輯更加複雜一點的業務場景來說,他們同樣可以利用智慧合約來強化資產的功能,或者建立一種與資產無關的業務邏輯。

2、賬戶系統

6070494-4d93c3b42aa06244

UTXO(Unspent Transaction Output)是這樣一種機制:每一枚數字貨幣都會被登記在一個賬戶的所有權之下,一枚數字貨幣有兩種狀態,即要麼還沒有被花費,要麼已經被花費。當需要使用一枚數字貨幣的時候,就將它的狀態標記為已經花費,並創造一枚新的與之等額的數字貨幣,將它的所有權登記到新的賬戶之下。在這個過程中,被標記為已花費的數字貨幣就被稱為交易的輸入,而創造出來的新的數字貨幣被稱為交易的輸出,在一筆交易中,可以包含多個輸入和多個輸出,但是輸入之和與輸出之和必須相等。要計算一個賬戶的餘額時,只要將所有登記在該賬戶下的數字貨幣的面額相加即可得出。

比特幣和 Corda 就採用了 UTXO 這樣一種賬戶機制,而以太坊則採用了更加直觀的餘額機制:每個賬戶有一個狀態,狀態中直接記錄了賬戶當前的餘額,轉賬的邏輯就是從一個賬戶中減去一部分餘額,並在另一個賬戶中加上相應的餘額,減去的部分和加上的部分必須相等。DNA 在賬戶機制上同時相容這兩種模式。

那麼 UTXO 模式和餘額模式,究竟有什麼優缺點呢?UTXO 最大的好處就是,基於 UTXO 的交易可以並行驗證且任意排序,因為所有的 UTXO 之間都是沒有關聯的,這對區塊鏈未來的伸縮性是有很大幫助的,而基於餘額的設計就沒有這個優勢了;反過來,餘額設計的優點是設計思想非常簡潔和直覺化,便於程式實現,特別是在智慧合約中,要處理 UTXO 的狀態是非常困難的。這也是為什麼以智慧合約為主要功能的以太坊選擇餘額設計的原因,而比特幣、OnchainDNA、Corda 這些以數字資產為核心的架構則更傾向於 UTXO 設計。

關於身份認證,比特幣和以太坊基本沒有身份認證的設計,原因很簡單,因為這兩者的設計思想都是強調隱私和匿名,而反對監管和中心化,而身份認證就勢必要引入一些中心或者弱化的中心機構。Fabric、DNA 和 Corda 不約而同地選擇了採用數字證書來對使用者身份進行認證,原因在於這三者都有應用於現有金融系統的設計目標,而金融系統必然要考慮合規化並接受監管,此外現有的金融系統已經大範圍地採用數字證書方案,這樣便可以和區塊鏈系統快速整合。

作者簡介:張錚文

小蟻區塊鏈核心開發者, dBFT共識機制作者

區塊鏈技術和電腦保安專家,CISA資訊系統審計師

曾任職於盛大、火幣,從事資訊保安和數字貨幣研發

渡鴉區塊鏈專欄作者

6070494-2304f62bde2ecf5a.png

(點選藍字檢視更多專案)

底層技術:

布比  趣鏈  井通  智鏈  信和雲  分佈科技

專案應用:

點融網  眾籤  食物優  金丘股份  善糧味道

眾託幫  原本  魔橙  雷盈科技

OkLink  Energo Labs

6070494-eace284ea043eea5.png

加入渡鴉(全職記者∕實習生):cx@jqblockchain.com

相關文章