距離 Jan 上一篇文章《Don't Trust, Verify》不足一月,高產的 Jan 就給咱們帶來了又一篇對區塊鏈定義的深度思考文章安全
我經常被問到的一個問題是:你以爲公有鏈有將來仍是聯盟鏈有將來?這個問題難以回答的地方在於,提問者心中所想的概念和我心中所想的概念不一致,因此任何直接的回答都沒法描述我想要表達的意思。網絡
在咱們討論區塊鏈時,分類是不可避免的一件事情:公有鏈、聯盟鏈、私有鏈、許可鏈、無需許可鏈這些詞彙頻繁出現,咱們已經耳熟能詳。然而這些名詞並無公認的定義,咱們在討論中只能各憑本身的理解,用這些名詞指代大體上相同實際上有些區別的概念,由此形成了上面那樣的溝通困難。架構
本文按照我對這些名詞的理解進行分析。有趣的是,經過分析咱們將會看到一些不多在討論中出現,可是徹底有可能在將來出現的區塊鏈新形態。我將按照「是否須要許可?」和「是否選擇服務對象?」兩個維度來闡述。less
無需許可鏈(permissionless blockchain)分佈式
網絡參與者能夠自由的加入和退出,也即加入或退出網絡的成本接近於零。在討論中聽到的「公鏈」、「公有鏈」或者「基礎鏈」的時候,我通常會認爲是在說無需許可鏈。性能
這一類型的區塊鏈包括 Bitcoin/Litecoin/Peercoin/Monero/ZCash/Ethereum 等等。Bitcoin 是無需許可鏈的開山鼻祖,經過 PoW 巧妙的實現了世界上第一個無需許可的分佈式系統,2015 年以前的區塊鏈項目基本上屬於這一類。Nervos CKB 是無需許可鏈,第一階段使用 PoW 共識。區塊鏈
無需許可鏈的去中心化程度最高,其發展也高度依賴社區自治,是最有潛力成爲全球基礎設施的區塊鏈類型。加密
許可鏈(permissioned blockchain) spa
網絡參與者須要得到某種形式的許可才能夠加入或退出,加入或退出網絡的成本大於零。「許可鏈」在討論中經常與「聯盟鏈」混用,後面咱們會看到這二者的區別。翻譯
許可鏈的思潮在 2014 年興起,彼時金融機構已經發現了數字貨幣、智能合約和區塊鏈這片新大陸,並開始思考如何將區塊鏈技術引入本身的業務。對記名資產的登記和交易需求,以及金融業務中 KYC/AML 的須要,讓人們開始認識到身份的必要性,以及由此帶來的重構區塊鏈的可能[1][2]。身份的存在能夠很天然的解決讓無需許可鏈頭疼的女巫攻擊問題,所以也就能夠避免 PoW 而使用傳統BFT 共識,能夠得到更低的能耗和更好的性能。比較早期的公司如 Eris Industries(現更名 Monax)在 2014 年成立,是許可鏈的先驅。R3 也是在 2014 年成立,雖然 Corda 自稱爲分佈式帳本而不是許可鏈(也確實不只僅是鏈,而是一個沒有區塊、由交易編織成的網絡),但它很明顯是許可鏈思潮下的產物。Hyperledger Fabric 和咱們本身設計開發的 CITA 都是許可鏈。
許可鏈通常由行業聯盟或是科技公司設計、實現和推進,具備接近中心化方案的性能,注重金融和企業場景。
細化
若是將網絡參與者分爲出塊節點、全節點和用戶(經過錢包訪問全節點使用區塊鏈提供的服務)[3],咱們能夠進一步細化無需許可鏈和許可鏈的分類。
我將看起來沒有實用價值的組合標記爲 Nonsense,不作討論。
用戶許可鏈 在用戶許可鏈中,節點加入、退出、參與共識都不須要許可,可是用戶須要得到許可才能使用區塊鏈提供的服務。雖然目前尚未看到用戶許可鏈的實例,但我認爲用戶許可鏈是一個很是有意思,值得探索的方向。若是把節點屬於網絡層,構成了區塊鏈的基礎;用戶空間存在於節點共同維護的帳本/共同知識庫之中,是區塊鏈架構中的上層。無需許可的基礎層和須要許可的上層是一個很和諧的組合:基礎層無需許可,不管什麼樣的節點均可以參與,網絡性質中立,保持了無需許可鏈的全球基礎設施屬性;上層須要許可,用戶具備某種形式的身份,更加適合須要身份的各種商業和金融場景
用戶許可鏈須要解決的難題也很多:如何實現一個去中心化的身份認證服務?如何在基礎層對這個身份協議提供支持?可以識別身份以後,基礎層須要根據必定的規則,選擇是否爲用戶提供服務。誰來制訂這些規則?如何制訂這樣的規則?如何保持規則的中立性?
出塊許可鏈
出塊許可鏈只要求出塊節點得到許可。因爲全節點能夠自由加入,區塊鏈歷史和當前狀態都不會被出塊節點壟斷,全節點能夠驗證並決定是否接受新區塊,整個系統依然是透明可驗證的,其可靠性(原諒我使用一個模糊的「可靠性」來指代包含可用性、安全性等等在內各類性質,下同)比中心化系統高,比用戶許可鏈/無需許可鏈低。若是得到許可的出塊節點數量不大,系統性能也會很是不錯。
值得指出的是,若是咱們將「許可」的定義放寬,出塊許可鏈將包含咱們常稱爲「公有鏈」的一些項目 —— 基於代幣抵押或是代幣投票的 PoS,本質上是以代幣做爲一種許可,限制出塊節點數量,達到下降共識過程的消息複雜度以提高系統性能的目標。這樣一類 PoS 區塊鏈所展示出來的性質,與出塊許可鏈更接近,與無需許可鏈更遙遠。出塊許可鏈與徹底許可鏈之間的主要區別在於全節點和用戶是否須要許可,與無需許可鏈之間的主要區別在於出塊節點集合大小是固定仍是動態。
節點許可鏈
節點許可鏈的出塊節點和全節點都須要許可,此時只有擁有許可的節點才能複製和驗證區塊鏈數據,用戶沒法得到帳本/共同知識庫的獨立複本,也沒法獨立進行驗證。這樣的系統其可靠性弱於出塊許可鏈,比中心化系統略高,性能與出塊許可連接近。因爲數據只會在小範圍內複製,數據隱私性更好。
根據不一樣的部署,Nervos Appchain 能夠是出塊許可鏈,也能夠是節點許可鏈。
讓咱們換一個維度,按照區塊鏈的服務對象來分:
公有鏈(public blockchain):爲公衆提供服務的區塊鏈。 聯盟鏈(consortium blockchain):存在一個區塊鏈以外的實體聯盟,只對聯盟內成員提供服務的區塊鏈。 私有鏈(private blockchain):存在一個區塊鏈以外的實體,只對實體內成員提供服務的區塊鏈。
「公有鏈」從 public blockchain 翻譯而來,而 public 直譯應爲「公衆、公共」。之因此會翻譯成「公有鏈」,我想大概是因爲早期的 public blockchain都有內在的代幣機制,使用者即代幣持有者,所以也無不妥。但按照今天的眼光看,public blockchain 理解爲「公共鏈」更爲合適,「公共鏈」無差異的對全部公衆提供服務,但公衆不必定是「公共鏈」的全部者。我在討論中仍是沿用「公有鏈」這個詞,但我用它指代的實際上是「公衆鏈」。
聯盟鏈/私有鏈在具體實施上有不一樣的許可鏈選項:能夠是節點許可鏈、出塊許可鏈或者徹底許可鏈,由此也會有相應的優缺點,在此再也不重複。這些不一樣選項的共同之處是,出塊節點都是須要許可的,共識範圍有限,犧牲了可靠性換來了更好的性能和隱私。將來聯盟鏈/私有鏈若是可以以無需許可鏈做爲信任基礎,其可靠性和信用也能夠提升到與無需許可連接近的程度,實際上會成爲無需許可鏈擴容的助力,這是 Nervos CKB 團隊、Nervos AppChain 團隊和 Cryptape Research 在探索的方向。若是在跨鏈協議的幫助,聯盟鏈/私有鏈之間能夠低成本的進行互操做,聯盟鏈/私有鏈上資產的流動性也將提升到與無需許可鏈上的資產流動性接近的程度,這是 Nervos AppChain 團隊和 Cryptape CITA 團隊在探索的方向。
公有許可鏈(public permissioned blockchain)
考慮維度 1 和維度 2 之間的關係,很容易發現聯盟鏈和私有鏈都隱含了對用戶以及節點的身份限制,所以必然是許可鏈。有意思的問題是:公有鏈必定是無需許可鏈嗎?
按照上文對公有鏈的定義,對公衆提供服務並不隱含對用戶身份的限制。公有鏈能夠對匿名的公衆提供服務,也能夠不加選擇的對有身份的公衆提供服務。公有鏈中的節點是否須要許可,並不影響一條區塊鏈是否對公衆提供服務。所以在個人觀念中,一條區塊鏈能夠同時是公有鏈和許可鏈,這二者之間沒有矛盾。我把既是公有鏈又是許可鏈的區塊鏈稱爲公有許可鏈[4]。
咱們平常談到公有鏈時每每想的是無需許可鏈,可是實際上很多公有鏈更接近公有許可鏈的範疇,最典型的例子是 Ripple。公有許可鏈可能的實現形式不少,前面討論過的許可鏈、出塊許可鏈、節點許可鏈、用戶許可鏈均可以是公有許可鏈。因爲身份的存在,公有許可鏈既有許可鏈的優勢,其適用的場景又與無需許可鏈互爲補充,相信將在將來的加密經濟生態中佔有重要的位置。
聯盟鏈、私有鏈、許可鏈常被批評的一點是缺少內生的經濟激勵設計,所以「根本不是區塊鏈」。這個觀點我不贊同。一來經濟激勵設計和服務對象範圍、是否須要許可之間並不存在什麼矛盾,咱們只是如今尚未看到有內在經濟激勵的樣本;二來具備內生的經濟激勵是不是成爲區塊鏈的必要條件依然是一個值得探討的問題。
最後回答文章開頭的問題:將來將有許多種形態的區塊鏈以及非區塊鏈共存。它們將相互協做,相互促進,相互保障,共同編織一個高效可靠的數字經濟網絡。
Ref:
[1] Swanson, T. (2015). Consensus-as-a-service: a brief report on the emergence of permissioned, distributed ledger systems, 66. https://doi.org/10.1017/CBO9781107415324.004
[2] 爲何咱們須要另外一種區塊鏈, https://www.jianshu.com/p/bbbedbc6fed7
[3] Don't Trust, Verify, https://www.jianshu.com/p/94f11608612c
[4] 如何在數字世界實現信任的自動化, https://www.jianshu.com/p/ff00ca99499a
Nervos 官網↓↓↓ https://www.nervos.org
Nervos AppChain 官網↓↓↓ https://Appchain.nervos.org
Nervos 惟一官方公衆號:
P.S:Nervos 由 Nervos 基金會發起並維護的一個全新公有鏈項目,戰略合做夥伴包括技術諮詢方祕猿科技(Cryptape)和招商銀行。