隨著探索如何把區(qū)塊鏈應用在各種場景,許多人就想到,也許不需要全世界的人共同參與,也不需要挖礦,我們只需要用到區(qū)塊鏈的可信任、可追溯特性,通過較少節(jié)點達到拜占庭將軍容錯,于是私有鏈就誕生了。但私有鏈仍是中心化的,難以維持去中心化的優(yōu)勢。因此又有了為企業(yè)聯(lián)盟而生的聯(lián)盟鏈(consortium blockchain)。
公有鏈vs聯(lián)盟鏈vs私有鏈
公有鏈
公有鏈向全世界任何人公開,所有人都可訪問,發(fā)送、接收、認證交易。所有人都能參與其中的區(qū)塊鏈——共識過程決定哪個區(qū)塊可被添加到區(qū)塊鏈中,也因此公有鏈通常被認為是完全去中心化的。
特點:不可篡改,匿名公開,技術門檻低,是真正的去中心化。每個參與者可以看到所有的帳戶余額和其所有的交易活動。
缺點:分布式治理仰賴共識決策,更新迭代慢、自行開發(fā)的話,目前技術發(fā)展框架,初期建設成本高昂。若企業(yè)直接采用公有鏈,則會受限于擴容問題、以及企業(yè)需求無法滿足(通常會以側鏈妥協(xié),但側鏈則容易引起中心化隱患)。
舉例:以太坊、EOS、MAC多原鏈。
私有鏈
私有鏈是完全私有的區(qū)塊鏈,指寫入權限僅限于在一個組織手里的區(qū)塊鏈。讀取權限或者對外開放,或者被一定程度地進行了限制。整個網(wǎng)絡由成員機構共同維護,網(wǎng)絡接入一般通過成員機構的網(wǎng)關節(jié)點接入,共識過程由預先選好的節(jié)點控制。這類區(qū)塊鏈被認為是部分去中心化。
特點:交易速度快,保護隱私,交易成本極低;仍保有不可篡改性。
缺點:由于完全中心化的特性,私有鏈是的代幣(若有發(fā)行的話)價格是可以被操作的,代碼也是可以修改的,集中風險較大。
在近年因為企業(yè)對區(qū)塊鏈的探索與需求,發(fā)展出了在這兩種區(qū)塊鏈的混合,有一種區(qū)塊鏈稱為聯(lián)盟鏈,保有私有鏈的隱私性,又能維持多節(jié)點共識治理的特性。
聯(lián)盟聯(lián)
聯(lián)盟鏈適合于機構間的交易、結算或清算等B2B場景。例如在銀行間進行支付、結算、清算的系統(tǒng)就可以采用聯(lián)盟鏈的形式,將各家銀行的網(wǎng)關節(jié)點作為記帳節(jié)點。
通常情況下,外部觀察者可以查詢,但是不可交易,聯(lián)盟鏈是指其共識過程受到預選節(jié)點控制的區(qū)塊鏈;區(qū)塊鏈或許允許每個人都可讀取,區(qū)塊的Root Hash及其API(應用程式接口)對外公開,API可允許外界用來作有限次數(shù)的查詢和獲取區(qū)塊鏈狀態(tài)的資訊。這些區(qū)塊鏈可視為部分去中心化。
聯(lián)盟鏈與私鏈類似,其開放程度和去中心化程度是有所限制的,其讀寫權、記帳權由組織決定。與私有鏈最大的不同在于,聯(lián)盟鏈是為一個聯(lián)盟,比如一個行業(yè)服務的;而私鏈則是為一個組織,比如一家公司內(nèi)部服務。
區(qū)塊鏈目前正在四個方面進行技術性的優(yōu)化。
一是共識算法,正在由低頻低效向高頻高效轉變;
二是治理方式,從鏈上處理到鏈上鏈下協(xié)同;
三是服務分片,由全員周知到范圍通知;
四是組織架構,從單一鏈條到多鏈組合。
究竟聯(lián)盟鏈的優(yōu)勢在哪里,該企業(yè)或組織該如何挑選適合自己商業(yè)模式的區(qū)塊鏈開發(fā)方式,接下來進行比較。
公、私有區(qū)塊鏈有共同之處?
首先,兩者都是分散的對等網(wǎng)絡,其中每個參與者都負責維護數(shù)字簽名交易的共享,并在每個節(jié)點附加分類帳的副本,而兩者都通過稱為共識的協(xié)議保持副本同步。
即使某些參與者懷有惡意,兩者都對帳本的不可改變性提供了一定程度上的保證。
也就是說,從區(qū)塊鏈本身架構和主要屬性的角度提供了,我們在無論公、私區(qū)塊鏈或其他公共分佈式帳本平臺下理解的特點與內(nèi)容(如去信任、不可篡改、去除中介、效率提升,只是規(guī)模上的不同)。
不過這也導致了一個有趣的問題,即:是什么特性把他們區(qū)別開來。
簡單提出一個答案,區(qū)別主要在于誰被允許參與網(wǎng)絡、執(zhí)行共識協(xié)議和維護共享分類帳。這樣的解釋是部分正確的,但除了要求認證和授權訪問區(qū)塊鏈之外,還要了解私有分佈式分類帳平臺的潛力。
因此,要區(qū)別鏈的公私有性,簡單理解的話就是內(nèi)部參與節(jié)點與外部觀察者的訪問權限區(qū)分。但這樣去區(qū)分會出現(xiàn)的問題是,實際上鏈的治理與參與者的能見透明度,該怎么去制定會根據(jù)采用者的需求不同而有所權衡,實際上的影響這個平衡因素則在文章后半會提出。
企業(yè)的需求
在討論如何選擇區(qū)塊鏈之前,必須先讓我們先從典型的企業(yè)客戶需求開始。
保密性(Confidentiality)
保密性是確保只有參與特定交易的實體才具有該部分的知識和訪問權限的特性。一個企業(yè)中,在潛在競爭者參與的聯(lián)盟網(wǎng)絡中,必須在同伴之間啟用區(qū)塊鏈通道,而這些通道對于聯(lián)盟的所有成員都不可見。使用密碼學或零知識證明(zero-knowledge-proof)方案可以在參與節(jié)點彼此之間保持數(shù)據(jù)機密性。只需了解聯(lián)盟中同行之間需要透明的交易。在許多區(qū)塊鏈平臺上實現(xiàn)此要求非常困難,因為它們多數(shù)已經(jīng)寫定了交易執(zhí)行架構,其中網(wǎng)絡的每個成員在網(wǎng)絡的區(qū)塊中執(zhí)行交易以同步其狀態(tài)。一些私有和許可制區(qū)塊鏈解決方案(如Hyperledger)可以實現(xiàn)利用不同架構(執(zhí)行順序驗證)的機密性、以內(nèi)建本地端支持創(chuàng)建私有通道,并在共享區(qū)塊鏈基礎架構上。
吞吐量(through-put)
吞吐量是按時間段處理的交易數(shù)量的度量標準。在區(qū)塊鏈結構中是每秒寫入到區(qū)塊鏈上的速度。目前運行在關聯(lián)數(shù)據(jù)庫或分佈式數(shù)據(jù)庫構建的解決方案,已經(jīng)可以實現(xiàn)每秒數(shù)萬個事務(交易)的吞吐量(Visa的TPS:22000),而區(qū)塊鏈有較多的節(jié)點需要同步勢必會妥協(xié)到效率的表現(xiàn)。但有些人可能會認為,倘若能建立信任、不變性等相比,較低的性能是可被妥協(xié)的在這方面,具有私有性質(zhì)的大多數(shù)公有區(qū)塊鏈都處于完全不同的境界。與大多數(shù)公有區(qū)塊鏈相比,私人區(qū)塊鏈提供了數(shù)量級更高的吞吐量,因為他們的共識設計不必包括對礦工的激勵(Incentives),且區(qū)塊鏈上成員的身份是已知的,激勵因此可能喪失可信度,私鏈的可擴展性側重于吞吐量而不是節(jié)點數(shù)量。
終局性(finality)
在區(qū)塊鏈結構中,終局性指的是對所有的塊一旦被提交到區(qū)塊鏈就不會被撤銷的結構完整的確定性難度。當用戶進行交易時,他們希望在交易完成后確信交易不能隨意更改或撤消。
終局性決定了企業(yè)必須等待多長時間才能得到保證的結果,因為用區(qū)塊鏈寫的交易是不可逆轉的,或企業(yè)提交的事務不會成為孤兒塊(orphaned block)。
這也是商業(yè)的重要考量標準。像許多業(yè)務流程一樣,如果區(qū)塊鏈網(wǎng)絡需要跟傳統(tǒng)業(yè)務流仇等待一個小時。大多數(shù)公共區(qū)塊鏈使用基于隨機的的算法來選擇節(jié)點以提出新塊,這將會十分耗時。
因此,大多數(shù)私有區(qū)塊鏈都采用基于投票的共識算法。當大多數(shù)節(jié)點投票時,該塊就可以被最終確定。在公鏈上,由于共識需要更多的信息交換,它幾乎直接的限制了終局擴展性。對于私有區(qū)塊鏈而言,這通常不是一個大問題,因為與一般公有鏈環(huán)境相比,參與者數(shù)量低了幾個數(shù)量級,并且部署在具有低延遲和保證吞吐量的WAN中。
聯(lián)盟鏈介紹–以Hyperledger為例
Hyperledger(超級帳本)是一個旨在推動區(qū)塊鏈跨行業(yè)應用的開源項目,由Linux基金會在2015年12月主導發(fā)起該項目,成員包括金融,銀行,物聯(lián)網(wǎng),供應鏈,制造和科技行業(yè)的領頭羊。
基本上各領域世界知名的企業(yè)或區(qū)塊鏈新創(chuàng)公司都是Hyperledger的成員之一:
區(qū)塊鏈新創(chuàng):ConsenSys,Digital Asset,R3,Onchain
知名科技公司:Cisco,F(xiàn)ujitsu,Hitachi,IBM,Intel,NEC,NTT DATA,Red Hat,VMware)
知名金融企業(yè):ABN AMRO,ANZ Bank,BNY Mellon,CLS Group,CME Group,the Depository Trust&Clearing Corporation(DTCC)
Linux基金會的超級賬本項目,希望創(chuàng)建一個軟體開發(fā)人員和公司社區(qū)會面和協(xié)調(diào)的環(huán)境,以構建區(qū)塊鏈框架。它是一個基礎設施,通常采用Hyperledger進行聯(lián)盟或私有鏈開發(fā)的相關項目,都是無幣的、產(chǎn)業(yè)級的應用。
HyperLedger Fabric是什么?
Linux基金會在2015年創(chuàng)立了HyperLedger Fabric是一個許可制(Permissioned)的區(qū)塊鏈架構(blockchain infrastructure)。其由IBM和Digital Asset最初貢獻給Hyperledger項目。
以推進跨行業(yè)的區(qū)塊鏈技術(www.macblock.io)為目標,F(xiàn)abric并沒有制定單一的區(qū)塊鏈標準,而是鼓勵一種合作的方式,通過社區(qū)開源的方式開發(fā)區(qū)塊鏈技術,并隨著時間的推移采用關鍵標準。
HyperLedger Fabric是HyperLedger上的區(qū)塊鏈項目之一,就如同其它區(qū)塊鏈技術一樣,它有一個賬本,使用智能合約,并且是一個由參與者管理他們的交易的系統(tǒng)。
HyperLedger Fabric組織的成員必須通過註冊才能訪問,因此是私有的許可制聯(lián)盟鏈。可以通過一個Membership Service Provider(MSP,即成員服務提供者)來註冊。
HyperLedger Fabric還提供了幾個可插拔的組件。賬本數(shù)據(jù)可以以多種格式存儲,一致的機制可以被轉換和輸出,并且支持不同的MSPs。
HyperLedger Fabric也提供了創(chuàng)建通道(channel)的能力,允許一組參與者創(chuàng)建一個單獨的共同維護的交易賬本。對于有些參與者可能是競爭對手的網(wǎng)絡來説,這是一個特別重要的選擇,他們不希望自己的每筆交易都能被透明。舉個簡單的例子,某間聯(lián)盟鏈里的參與者只想向其中一間公司提供交易資訊,他們的價格不愿被其他成員看見。
共享帳本
HyperLedger Fabric底下有分出兩大子系統(tǒng),包括:世界狀態(tài)(world state)和事務日志(transaction log)。
每個參與者都有一份帳本的副本到他們所屬的每一個HyperLedger Fabric的網(wǎng)絡上。
首先,世界狀態(tài)(world state)組件描述了總帳的狀態(tài),它是總帳本的數(shù)據(jù)庫。
世界狀態(tài)使程序可以輕松獲取目前帳本狀態(tài)的當前值,而不必通過遍覽整個事務日志來計算它們。默認情況下,Ledger狀態(tài)表示為Key-Value對,Hyperledger Fabric在這方面提供了一定程度靈活性:世界狀態(tài)可以經(jīng)常變化,因為可以創(chuàng)建、更新和刪除狀態(tài)。
其次,有一個區(qū)塊鏈,一個記錄決定世界狀態(tài)的所有變化的事務日志。事務在塊附加到區(qū)塊鏈中的塊內(nèi)收集,使您能夠了解是什么事務(交易)導致當前世界狀態(tài)的更改歷史記錄。區(qū)塊鏈數(shù)據(jù)結構與世界狀態(tài)非常不同,因為一旦編寫,就無法修改。它是一個不可變的塊序列,每個塊都包含一組有序事務。
智能合約
HyperLedger Fabric的智能契約是用Chaincode編寫的,并且當應用進程需要與帳本進行交互時,被應用進程外部的應用進程調(diào)用。在大多數(shù)情況下,Chaincode只與總帳的數(shù)據(jù)庫組件交互,例如世界狀態(tài)(查詢它),而不會與事務日志互動。
Chaincode可以用幾種編程語言實現(xiàn),目前支持的chaincode編寫的是GO語言,在今后的發(fā)行版中將會逐步添加Java和其它語言的支持。
隱私
根據(jù)網(wǎng)絡的需要,企業(yè)對企業(yè)(B2B)網(wǎng)絡的參與者可能對他們所共享的信息非常敏感。對其他網(wǎng)絡來説,隱私不會成為首要關注的問題。
HyperLedger Fabric支持需要將隱私(使用信道)作為關鍵操作需求的網(wǎng)絡,同時也是相對開放的網(wǎng)絡。
共識
事務必須按照它們發(fā)生的順序寫在帳本上,即使它們可能是網(wǎng)絡中不同的參與者生成的。要做到這一點,必須創(chuàng)建事務的順序,并且必須在帳本中創(chuàng)建一種拒絕錯誤事務(或惡意的)的方法。
共識機制是一個經(jīng)過徹底研究的計算機科學領域,目前有很多方法可以實現(xiàn)它,每一個都有不同的權衡。例如,PBFT(拜占庭式容錯)可以為文檔副本提供一種機制,使其能夠相互通訊,進而保持每個副本的一致性,即使是在出現(xiàn)「節(jié)點腐敗」的情況下。
或者,在比特幣中,PoW(Proof-of-work)是通過一個名為「挖礦」的過程來實現(xiàn)的,在這個過程中,競爭的計算機競爭解決一個加密難題,該難題定義了所有流程隨后構建的順序。
HyperLedger Fabric的設計使得網(wǎng)絡啟動者可以自行選擇一種最能代表參與者之間關系的共識機制。就像隱私一樣,需要有一系列的需求;從人際關系高度結構化的網(wǎng)絡到更加對等的網(wǎng)絡。
關于HyperLedger Fabric共識機制,它目前包括SOLO和Kafka,并將很快擴展到SBFT(簡化的拜占庭式容錯)。
企業(yè)該選那種鏈?
總而言之,注重隱私則可通過設定參與者(節(jié)點)的權限是否須經(jīng)認證:許可制(Permissioned)以及非許可制、開放式(Permissionless),區(qū)塊鏈的透明程度、以及加入是否向公眾開放:以公、私有鏈去區(qū)分。介于公、私鏈之間,則是聯(lián)盟鏈。
電子發(fā)燒友App







評論