複製鏈接
請複製以下鏈接發送給好友

公有鏈

鎖定
公有鏈是指全世界任何人都可讀取、發送交易且交易能獲得有效確認的、也可以參與其中共識過程的區塊鏈。
中文名
公有鏈
外文名
Public blockchains
定    義
全網公開
特    點
全世界任何人都可讀取的
別    名
非許可鏈

公有鏈概念

根據區塊鏈網絡中心化程度的不同,分化出3種不同應用場景下的區塊鏈
(1)全網公開,無用户授權機制的區塊鏈,稱為公有鏈;
(2)允許授權的節點加入網絡,可根據權限查看信息,往往被用於機構間的區塊鏈,稱為聯盟鏈或行業鏈;
(3)所有網絡中的節點都掌握在一家機構手中,稱為私有鏈。
聯盟鏈和私有鏈也統稱為許可鏈,公有鏈稱為非許可鏈。 [1] 

公有鏈公有區塊鏈系統

公有鏈中,任何節點無須任何許可便可隨時加入或脱離網絡。從最早的比特幣系統人手介紹公有鏈系統的發展現狀。

公有鏈點對點電子現金系統:比特幣

與傳統分佈式系統的C/S , B/S或三層架構不同,比特幣系統基於P2P網絡,所有節點對等,且都運行同樣的節點程序。
節點程序總體上分為兩部分:一部分是前台程序,包括錢包或圖形化界面;另一部分是後台程序,包括挖礦、區塊鏈管理、腳本引擎及網絡管理等。
區塊鏈管理:涉及初始區塊鏈下載、連接區塊、斷開區塊、校驗區塊和保存區塊,以及發現最長鏈條的頂區塊。
內存池管理:即交易池管理。節點將通過驗證的交易放在一個交易池中,並準備好將其放入下一步挖到的區塊中。
鄰接點管理:當一個新比特幣節點初始啓動時,它需要發現網絡中的其他節點,並與至少一個節點連接。
共識管理:比特幣中的共識管理包括挖礦、區塊驗證和交易驗證規則。比特幣採用PoW共識機制,依賴機器進行哈希運算來獲取記賬權,同時每次達成共識需要全網共同參與運算,允許全網50%節點出錯。
密碼模塊:比特幣採用RIMEMD和SHA-256算法及Base-58編碼生成比特幣地址。
簽名模塊:比特幣採用橢圓曲線secp256k1及數字簽名算法ECDSA來實現數字簽名並生成公鑰。
腳本引擎:比特幣的腳本語言是一種基於堆棧的編程腳本,共有256個指令,是非圖靈完備的運算平台,沒有能力計算任意帶複雜功能的任務。

公有鏈智能合約和去中心化應用平台:以太坊

比特幣的區塊鏈架構對虛擬貨幣以外的應用場景支持非常有侷限性,隨着區塊鏈技術從比特幣中獨立出來,其作為可編程的分佈式信用基礎設施的發展理念被逐漸確立,並過渡到區塊鏈2.0模式,以支持智能合約、去中心化應用為特徵。以太坊是區塊鏈2.0模式典型代表。
與比特幣相比,以太坊在整體設計上主要有以下不同:
(1)賬户:比特幣沒有賬户概念,用户餘額是從各自在區塊鏈上所有未花費交易輸出(UnspentTransaction Output, UTXO ) 計算得來。以太坊則設計了兩種用户,一種是外部賬户,一種是合約賬户。根據狀態機模型,以太坊可視為一個通用的管理對象狀態轉移的去中心化平台,賬户就是有狀態的對象。外部用户的狀態就是餘額,合約賬户的狀態包括餘額、代碼執行情況、合約的存儲等。
(2)區塊鏈設計:以太坊的區塊鏈不僅保存交易清單,還保存最新狀態,單純的Merkle樹已無法滿足這些要求,因此以太坊採用Merkle Patricia樹實現對交易和狀態的校驗和查詢。
(3)共識機制:以太坊版本採用基於Ethash算法的PoW共識機制,相對於比特幣僅依靠CPU計算難度問題,以太坊的Ethash加入內存難度,並引入有向無環圖(Directed Acyclic Graph, DAG ),避免了礦池算力集中的問題。同時,以太坊採用GHOST (GreedyHeaviest Observed SubTree)協議同時給產生“叔區塊”的礦工和將“叔區塊”包含進主鏈的礦工獎勵,不僅增強了安全性,還進一步避免了算力集中問題。以太坊下一版本將採用PoS共識機制。
(4)圖靈完備的計算環境:通過以太坊虛擬機(EVM)提供圖靈完備的計算環境,用於支持除虛擬貨幣外更廣泛的應用場景。但圖靈完備同時意味着對無限循環、遞歸調用等語句的潛在支持,這也帶來了停機問題(不存在一個通用的圖靈機來判定任何輸入的圖靈機是否最終能停機),以太坊通過引入燃料(Gas)作為強制交易費,不提供燃料的交易不會被執行,也不會被包含進區塊,燃料不足的計算將被終止,這樣,通過經濟的方式來保障平台的安全。 [1] 

公有鏈公有鏈系統存在的問題

(1)激勵問題:為促使全節點提供資源,自發維護整個網絡,公有鏈系統需設計激勵機制,以保證公有鏈系統持續健康運行。但比特幣的激勵機制存在一種“驗證者困境”,即沒有獲得記賬權的節點付出算力驗證交易而沒有任何回報。
(2)效率和安全問題:比特幣平均每10 min產生1個區塊,且其PoW機制很難縮短區塊時間,PoS相對而言可縮短區塊時間,但更易產生分叉,所以交易需要等更多確認才被認為安全,Gervais A等的試驗得出:在假設各有30%算力的前提下,以太坊需要37個區塊的確認才能達到比特幣6個區塊確認的安全水平。一般認為,比特幣中的區塊經過6個確認後才是足夠安全的,這大概需要1h,對於大多數企業應用需求來説根本無法滿足。
(3)公有鏈面臨的安全風險:包括來自外部實體的攻擊(拒絕服務攻擊DDoS等)、來自內部參與者的攻擊(冒名攻擊Sybil Attack、共謀攻擊Collusion Attack等)及組件的失效、算力攻擊等。
(4)隱私問題:公有鏈上傳輸和存儲的數據都是公開可見的,僅通過“偽匿名”的方式對交易雙方進行一定隱私保護。對於某些涉及大量商業機密和利益的業務場景來説,數據的暴露不符合業務規則和監管要求。
(5)最終確定性(Finality)問題:交易的最終確定性指特定的某筆交易是否會最終被包含進區塊鏈中。PoW等公有鏈共識算法無法提供最終確定性”,只能保證一定概率的近似,如在比特幣中,一筆交易在經過2h後可達到的最終確定性為99.9999%,這對現有工商業應用和法律環境來説可用性較差。 [1] 
參考資料
  • 1.    王成, 史天運. 區塊鏈技術綜述及鐵路應用展望[J]. 中國鐵路, 2017(9):91-98.