整理/張卓來源/PANews

區塊鏈大熱,新概念眼花繚亂。比如,在區塊鏈文章裡,常看到這樣幾個“鏈”:公有鏈、聯盟鏈、私有鏈、側鏈……你分得清嗎?新出現的DApp同App之間有什麼聯繫和區別呢?頻繁出現的Protocol又到底是什麼?

區塊鏈按照准入機制,可以分為公有鏈、私有鍊和聯盟鏈三類。

人人皆可參與的“公有鏈”

公有鏈(Public Blockchains)是指全世界任何人都可讀取的、任何人都能發送交易且交易能獲得有效確認的、任何人都能參與其中共識過程的區塊鏈。

公有鏈通常被認為是完全去中心化的,因為沒有任何人或機構可以控製或者篡改其中數據的讀寫。

公有鏈一般會通過代幣機制鼓勵參與者競爭記賬,來確保數據的安全性。

比特幣、以太幣都是典型的公有鏈。

主要特點:用戶免受開發者影響、所有數據默認公開、訪問門檻低,另外,免受開發者影響,公有鏈數據的讀寫不受到任何組織或個人的控制,因此也能夠保護用戶免於程序開發者的影響。

隱秘性更強的“私有鏈”

私有鍊是指寫入權限完全在一個組織手裡的區塊鏈,所有參與到這個區塊鏈中的節點都會被嚴格控制。

在某些情況下,私有鏈上的一些規則,可以被機構修改,比如還原交易流程等服務。

由於參與的節點是有限和可控的,因此私有鏈往往可以有極快的交易速度、更好的隱私保護、更低的交易成本、不容易被惡意攻擊、並且能夠做到身份認證等金融行業必須的要求。

主要特點:給隱私更好的保障、交易成本大幅度降低、交易速度非常之快,不過私有鏈最大的缺點是可以被操縱價格,也可以被修改代碼,因此從這方面來說,風險又較大。

團體參與的“聯盟鏈”

聯盟鏈(Consortium Blockchain),是指由特定組織或團體管理的區塊鏈,需要預先指定一些節點為記賬人,每個區塊的生成由所有記賬人共同決定,其他節點可以交易,但沒有記賬權。

目前國內比較有影響力的聯盟鏈有中國分佈式總賬基礎協議聯盟(ChinaLedger)、中國區塊鏈研究聯盟(CBRA)、金鍊盟等。

聯盟鏈適合組織機構間的交易和結算,像是銀行間的轉賬、支付,通過採用聯盟鏈的形式,能夠很好地營造一個內部生態系統。

每個銀行都可以成為一個節點,但是其中一個銀行的交易轉賬行為必須通過其他銀行節點(2/3數量)的確認,才能夠使區塊生效。

聯盟鏈與公有鏈相比,可以看作是“部分去中心化“,同時,由於節點數量得到了精簡,它能夠有更快的交易速度,更低的成本。

主鏈的“左膀右臂”——“側鏈”

側鏈(Side Chain)本質上是一種協議,而並非一種全新的區塊鏈,滿足這個協議的區塊鏈都可以稱為側鏈。以比特幣為例,這個協議具體是:可以讓比特幣安全地從比特幣主鏈轉移到其他區塊鏈,又可以從其他區塊鏈安全地返回比特幣主鏈的一種協議。

側鏈技術為什麼會出現?簡單來講,在比特幣、以太坊等公鏈上做創新或拓展是比較困難的。同時,公鏈每秒處理交易筆數有限,比如,以太坊25tps,比特幣7tps,並且在交易用戶過多時會發生擁堵,甚至癱瘓。這時,側鏈技術應運而生。

側鏈就像是一條條通路,將不同的區塊鏈互相連接在一起,以實現區塊鏈的擴展。公鏈本身是一本分佈式賬本,側鍊是獨立於公鏈的另一本分佈式賬本。但是這兩個賬本之間能夠“互相操作”,實現交互。

側鏈的優點主要有兩點:一是主鏈缺乏的功能,可以有側鏈來提供,比如比特幣網絡沒有智能合約的功能,但可以通過側鏈來實現這一功能;二是如果主鏈的運行效率低下,可以將主鏈部分功能轉移到側鏈來實施。

去中心化的Dapp

DApp是Decentralized Application的縮寫,中文叫去中心化應用,是基於區塊鏈底層開發平台建立的。

符合以下3個條件的應用可以認為是一個DAPP(分佈式應用):

1. 運行在分佈式網絡上;

2. 參與者信息被安全存儲,隱私得到很好的保護;

3. 通過網絡節點去中心化操作。

DApps有點類似於你可能在電腦或手機上運行的軟件應用程序。

但是它們的編程並沒有存儲和運行在一個中心位置,比如硬盤或遠程雲服務器。相反,DApp編程在區塊鍊網絡上運行,區塊鏈交易提供“燃料”來保持應用程序運行。因為它們沒有中心操作點,DApps幾乎沒有停機時間。就像它們處理的區塊鏈交易一樣,DApp操作本質上是透明的、不可變的、可靠的。

目前,DAPP的最流行的開發平台是Ethereum(以太坊),在沒有以太坊之前,開發區塊鏈應用是這樣的:拷貝一份比特幣代碼,然後去改底層代碼如加密算法,共識機制,網絡協議等等。

以太坊平台對底層區塊鏈技術進行了封裝,讓區塊鏈應用開發者可以直接基於以太坊平台進行開發,開發者只要專注於應用本身的開發,從而大大降低了DAPP應用開發難度。

同一種語言——Protocol

Protocol(網絡數據交換規則)為進行網絡中的數據交換而建立的規則、標准或約定。用於不同系統中實體間的通信。兩個實體要想通信,必須有“同一種語言”,而且,對於通信內容,怎樣通信和何時通信都必須遵守一定的規定,這些規定就是協議。

為了交換大量信息,通信系統使用通用協議。每條信息都有明確的意義使得預定位置給予響應,並獨立實現回應指定的行為,通信協議須參與實體都同意才能生效。為了達成一致,協議必須要有技術標準。

編程語言在計算方面也應有相應標準,所以在這個方面可以用編程語言做類比:編程語言是為了模式化的計算而傳輸協議為了更暢通的交流。