瞭解區塊鏈,這一篇就夠了,一文從小白到專家—童亞齋

豐富的區塊鏈項目開發和投資經驗。曾對國內外衆多一線的區塊鏈項目進行技術DD,並挑選其中優秀的項目參與投資。區塊鏈是一個範圍廣泛的行業,包括幣圈(和數字貨幣緊密相關)、鏈圈(和底層技術相關)、礦圈(和挖礦有關,保證去中心化的存儲,當然和幣圈聯繫非常緊密)、盤圈(資金盤,和CX關係密切),後面有機會,慢慢聊,本文重點聊國家大力發展的鏈圈及相關底層架構(公鏈和聯盟鏈)。

2019.10.24,千呼萬喚始出來,人間正道是滄桑,多年媳婦熬成婆,區塊鏈一夜之間成爲主流。

談到區塊鏈,不得不提比特幣。

如果問到先有區塊鏈還是先有比特幣?我想,會有多一半人答錯。實際是,先有的比特幣。

比特幣白皮書《比特幣:一個點對點的電子現金系統》,是很值得一讀的,大多數內容還是比較容易懂的,看完後,一定會驚歎於中本聰絕妙的設計。正是比特幣將衆多的底層技術巧妙的整合,包括加密算法、分佈式存儲、P2P對等網絡、共識算法等(下面會詳細介紹),這些技術組合到一起,被稱爲區塊鏈。其實,這些具體的技術,是很“古老”的技術,大多數是上世紀六七十年代左右就存在的。

比特幣被稱爲區塊鏈1.0時代,解決了隱私、安全等問題。以太坊爲代表的2.0時代,誕生了智能合約、計算、存儲、資產交易等解決方案。至於3.0,各家說法不一,有人認爲是通證經濟,有人認爲區塊鏈3.0是價值互聯網的內核,還有人認爲,實現完備權限控制和安全保障的Hyperledger項目是區塊鏈3.0的代表。

但是,到底什麼是區塊鏈3.0?在今天這篇文章中,這都不重要。因爲本文不談:具體什麼是塊鏈1.0、2.0、3.0,如何去擴展性能,實現商業需求。如何去佈局賽道,區塊鏈如何改變生產關係從而促進生產力,信任機器如何和雲計算、大數據、人工智能、物聯網協作,目前的落地情況如何,以及之前發白皮書的那些莊家還好嗎,被收割的韭菜現在過的怎麼樣了,炒幣的人是別墅靠海了,還是下海幹活兒了。(另,獨家傳授炒幣祕籍,傾家蕩產的那種。)

本文重點講和技術相關的,後面會另開文章講講上述這篇文章沒談的內容。

10月24日的中央政治局第十八次集體學習時強調,我們要把區塊鏈作爲核心技術自主創新的重要突破口,明確主攻方向,加大投入力度,着力攻克一批關鍵核心技術,加快推動區塊鏈技術和產業創新發展。區塊鏈技術終於站到了時代前沿。

應用場景

區塊鏈可以和很多行業結合,區塊鏈+,將成爲未來新方向。區塊鏈+,將使得業務交易更加安全、交易成本更低,協同效率更高,進而改變生產關係,從而促進生產力發展。

 

 

 

區塊鏈分類

區塊鏈的英文是BlockChain,區塊鏈的本質是去中心化的賬本數據庫。區塊鏈並沒有統一的定義,一般來說,區塊鏈技術是指多個參與方之間基於密碼學、分佈式一致性協議、點對點網絡通信技術和智能合約變成語言等形成的數據交換、處理和存儲的技術組合。

區塊鏈有五大特點,去中心化、開放性、防篡改性、匿名性、可追溯性。

區塊鏈還有一個不可能三角,這也是制約區塊鏈的關鍵所在,即,去中心化、安全性、交易性能。魚和熊掌不能兼得,何況三者。當然,在近些年也有很多新的項目,發了令人眼花撩亂的白皮書,各種“完美”解決方案層出不窮,什麼Layer2,DAG......,但最後也只是剩下一地雞毛、無人在翻看的白皮書、絕望的韭菜和爛尾的項目。真心希望,不可能三角變成可能。

按照參與方式,區塊鏈可分爲三類:公鏈、聯盟鏈和私有鏈。

公鏈

公鏈是對外公開,用戶不需要註冊就能匿名參與,無需授權即可訪問網絡和區塊鏈。公鏈是真正意義上的完全去中心化的區塊鏈,它通過密碼學保證交易不可篡改,同時利用密碼學驗證以及經濟上的激勵,在互爲陌生的網絡環境中建立共識,從而形成去中心化的信用機制。

比如比特幣、以太坊都是公鏈。公鏈一般適合於虛擬貨幣、面向大衆的電子商務、互聯網金融等。

公鏈的架構一般分爲七層,從下到上依次爲:

加密層:加密層是區塊鏈技術的基石,保證整個區塊鏈系統的安全性、匿名性。其中利用橢圓加密算法ECC進行簽名,利用SHA256處理POW共識算法和頭信息和交易信息的加密。

數據層:類似Merkel樹的數據結構,採用消息摘要的形式,使得歷史數據難以篡改,數據完整性得以保證。主要用到的數據庫比如,Leveldb,Leveldb是一個google實現的非常高效的KV數據庫,LevelDB 是單進程的服務,性能非常之高,在一臺4核Q6600的CPU機器上,每秒鐘寫數據超過40w,而隨機讀的性能每秒鐘超過10w。或者,CouchDB ,它是一個開源的面向文檔的數據庫管理系統,可以通過 RESTful JavaScript Object Notation (JSON) API 訪問。提供了高可用性和高可靠性,即使運行在容易出現故障的硬件上也是如此。

網絡層:規定了整個網絡節點裏的通信機制,即,P2P對等網絡,可以實現沒有中心服務器的數據共享。P2P網絡管理主要是實現網絡上和其他相鄰節點的通信功能。

共識層:分佈式系統中,需要解決的首要問題是如何實現不同賬本節點上的賬本數據的一致性和正確性。通過POW、BFT、POS、DPOS等共識算法,來保證全網數據的一致性,共識算法是區塊鏈技術的關鍵。

激勵層:包括經濟激勵的發行機制和分配機制。通過經濟激勵機制,讓更多主體更積極的參與進來,保證去中心化實現,創造出更安全,更穩定的共識狀態。

合約層:簡單的說可以產生代碼即法律的效果。提供區塊鏈系統的可編程性。智能合約可以被看作是一種計算機程序,這種程序可以自主執行全部或部分合約相關的操作,併產生可以被驗證的證據。在部署智能合約之前,與合約相關的所有條款的邏輯流程已經被制定好了,然後用戶可以隨時調用智能合約來執行。

應用層:可以開發分佈式應用,即DAPP,豐富整個區塊鏈生態。

聯盟鏈

聯盟鏈僅限於聯盟成員參與,區塊鏈上的讀寫權限、參與記賬權限按聯盟規則制定。聯盟鏈的共識過程由預先選好的節點控制。一般來說,適合於機構間的交易、結算或清算。

公鏈面向的是一個不可控的場景,需要在安全、性能和去中心化上找一個平衡點。而聯盟鏈服務的場景中,參與方的數量相對來說更加可控,聯盟鏈的性能和安全性也就更容易突破。所以,在不可能三角中作出了讓步,即在去中心化程度、共識算法上作出了一定讓步,從而提升了系統效率。聯盟鏈多采用權益證明、PBFT、RAFT等共識算法。

聯盟鏈的代表爲“超級賬本”(Hyperledger)。Linux基金會於2015年12月啓動了“超級賬本”的開源項目,旨在推動各方協作,共同打造基於區塊鏈的企業級分佈式賬本底層技術,用於構建支撐業務的行業應用和平臺。參與超級賬本的公司陣容非常強大,不僅有IBM、Intel、思科等科技巨頭,還有摩根大通、富國銀行等金融大鱷,還有R3、ConsenSys等專注區塊鏈的公司。

目前Hyperledger項目共有五個項目進入孵化狀態,分別爲,Fabric、Sawtooth Lake(鋸齒湖)、Iroha(色彩)、BlockchainExplorer和Cello。

因爲篇幅有限,下面重點介紹一下Fabric 。

聯盟鏈和公鏈從大的架構層次上來說,是基本一樣的。但是,聯盟鏈因爲主要是處理聯盟內部事務,所以基本都沒有激勵層,並且因爲面向的對象,參與方等場景的主要爲聯盟,所以又比公鏈多了一些服務,比如,Fabric多了身份服務和策略服務。

1.身份服務

身份服務(Identity Service)管理着系統中各種實體、參與者和對象的身份信息,包括參與的組織、驗證者和交易者,帳本中的資產和智能合約,系統組件以及運行環境等。

2.策略服務

策略服務最重要的是訪問控制和授權功能,Fabric的交易通常要求參與方具有權限才能進行。其他的策略還包括加入和推出網絡的策略,身份的註冊、驗證、隱私和保密的策略,共識策略等。

3.區塊鏈服務

Fabric的區塊鏈服務提供構建分佈式賬本最基礎的能力,實現數據傳輸、共識達成等底層功能,並且提供發佈/訂閱的時間管理框架,分佈式賬本內部的各種事件可通知到外部監聽的應用。Fabric的區塊鏈服務主要包含4個組件:P2P協議組件、分佈式賬本組件、共識管理器組件和賬本存儲組件。

共識算法,是非常關鍵,並且對不熟悉區塊鏈的朋友都很神祕的一個部分,這裏花一點兒篇幅,找一個相對簡單,但是實用的共識算法做個簡單介紹,Raft。

使用Raft實現記賬共識的過程如下:首先選舉一個leader,接着賦予leader完全的權力管理記賬。leader從客戶端接收記賬請求,完成記賬操作,生成區塊,並複製到其他記賬節點。有了leader簡化了管理,但是leader可能失效或與其他節點失去聯繫,這時,系統就會選出新的leader。

一個Raft集羣通常包含5個服務器,允許系統有兩個故障服務器。每個服務器處於3個狀態之一:leader、follower或candidate。正常狀態下,僅有一個leader,其他的服務器均爲follower。

當follower在選舉超時間內未收到leader的心跳信息,則轉換爲candidate狀態。爲了避免衝突,這個超時時間是一個150~300ms之間的隨機數。

一般而言,在Raft系統中:

1)任何一個服務器都可以成爲後選candidate,它向其他服務器follower發出要求選舉的自己的請求。

2)其他服務器同意了,發出OK。注意,如果這個過程中,有一個follower宕機,沒有收到請求選舉的要求,此時候選者可以自己選自己,只要達到N/2+1的大多數票,候選人還是可以成爲leader的。

3)這樣這個候選者就成了leader領導人,

4)以後通過心跳進行記賬通知。

以上便是RAFT共識算法的簡單介紹。

4.智能合約服務

Fabric的智能合約實質是在驗證節點上運行的分佈式交易程序,用以自動執行特定的業務規則,最終會更新賬本的狀態。智能合約分爲公開、保密和訪問控制幾種類型。公開合約可以供任何成員調用,保密合約只能由驗證成員發起。

由於篇幅有限,本文就先聊到這裏,後面慢慢聊!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章