國際數位資產與區塊鏈技術與應用價值
區塊鏈不是一項新技術,而是一個新的技術組合。其關鍵技術包括P2P動態組網、基於密碼學的共享賬本、共識機制、智能合約等技術;FlipWeb數位資產仲介發現,國際數位資產與區塊鏈的技術是科技史上大部分創新都是與生產力有關的,提升效率,讓人做更少工作,讓機器做更多工作;區塊鏈帶來的最主要的顛覆卻是生產關係上的;
互聯網實現了信息的傳播,區塊鏈實現了價值的轉移;區塊鏈可以看作是“價值互聯網”的基礎協議,類似於“信息互聯網”的HTTP協議,二者都是建議在TCP/IP協議之上的應用層協議;
區塊鏈並不是一個全能技術,在某些應用領域里相比傳統技術並不具備明顯的技術優勢,因此創業者及投資機構都需要考慮技術適用性問題;
區塊鏈底層技術及協議層可能出現幾家平臺型公司;但大部分投資機會在於應用層,即基於行業應用的“區塊鏈+”項目。
9月4日央行等7部委下發的《防範代幣發行融資風險公告》將ICO定義為非法融資,不論機構和個人都不建議參與此類項目。
區塊鏈基礎知識
&區塊鏈和區塊鏈技術
“區塊鏈就像一臺魔法計算機,任何人都能夠上傳程序並自我執行,程序執行前和執行後的所有狀態都公開可見,密碼經濟學為程序嚴格按照協議執行提供了機制保障。”——Vitalik Buterin
狹義來講,區塊鏈是一種按照時間順序將數據區塊以順序相連的方式組合成的一種鏈式數據結構, 並以密碼學方式保證的不可篡改和不可偽造的分布式賬本(分布式數據庫)。
廣義來講,區塊鏈技術是利用塊鏈式數據結構來驗證與存儲數據、利用分布式節點共識算法來生成和更新數據、利用密碼學的方式保證數據傳輸和訪問的安全、利用由自動化腳本代碼組成的智能合約來編程和操作數據的一種全新的分布式基礎架構與計算範式。
如何理解上述定義呢?
1) 一個分布式的鏈接賬本,每個賬本就是一個“區塊”;
2) 基於分布式的共識算法來決定記賬者;
3) 賬本內交易由密碼學簽名和哈希算法保證不可篡改;
4) 賬本按產生的時間順序鏈接,當前賬本含有上一個賬本的哈希值,賬本間的鏈接保證不可篡改;
5) 所有交易在賬本中可追溯。
&區塊鏈特征
區塊鏈是一種共享的分布式數據庫技術。盡管不同報告中對區塊鏈的介紹措辭都不相同,但以下4個技術特點是共識性的。
1)去中心化(Decentralization):區塊鏈由眾多節點組成一個端到端的網絡,不存 在中心化的設備和管理機構,任一節點停止工作都會不影響系統整體的運作。圖2的左側描述了當今金融系統的中心化特征,右側描述的是正在形成的去中心化金融系統;
2) 去信任(Trustless):系統中所有節點之間通過數字簽名技術進行驗證,無需信任也可以進行交易,只要按照系統既定的規則進行,節點之間不能也無法欺騙其它節點;
3) 集體維護(CollectivelyMaintain):系統是由其中所有具有維護功能的節點共同維護的,系統中所有人共同參與維護工作;
4) 可靠數據庫(ReliableDatabase):系統中每一個節點都擁有最新的完整數據庫拷貝,單個甚至多個節點對數據庫的修改無法影響其他節點的數據庫,除非能控制整個網絡中超過51%的節點同時修改,這幾乎不可能發生。區塊鏈中的每一筆交易都通過密碼學方法與相鄰兩個區塊串聯,因此可以追溯到任何一筆交易的前世今生。
簡化起見,上圖展示了6處保留數據庫副本的節點;在3個交易序列中,前2個交易的數據和簽名得到了所有6個節點的驗證,但第三個交易的位置5沒有通過驗證,將被其它節點的“一致意見”更改。
&區塊鏈分類
以參與方分類,區塊鏈可以分為公有鏈、聯盟鏈和私有鏈;從鏈與鏈的關系來分,可以分為主鏈和側鏈。
1)公有鏈(Public Blockchain)
公有鏈通常也稱為非許可鏈(Permissionless Blockchain),無官方組織及管理機構,無中心服務器,參與的借點按照系統規格自由接入網路、不受控制,節點間基於共識機制開展工作。
公有鏈是真正意義上的完全去中心化的區塊鏈,它通過密碼學保證交易不可篡,同時也利用密碼學驗證以及經濟上的激勵,在互為陌生的網絡環境中建立共識,從而形成去中心化的信用機制。在公有鏈中的共識機制一般是工作量證明(PoW)或權益證明(PoS),用戶對共識形成的影響力直接取決於他們在網絡中擁有資源的占比。
公有鏈一般適合於虛擬貨幣、面向大眾的電子商務、互聯網金融等B2C、C2C或C2B等應用場景,比特幣和以太坊等就是典型的公有鏈。
2) 聯盟鏈(Consortium Blockchain)
聯盟鏈是一種需要註冊許可的區塊鏈,這種區塊鏈也稱為許可鏈(Permissioned Blockchain)。聯盟鏈僅限於聯盟成員參與,區塊鏈上的讀寫權限、參與記賬權限按聯盟規則來制定。整個網絡由成員機構共同維護,網絡接入一般通過成員機構的網關節點接入,共識過程由預先選好的節點控制。由於參與共識的節點比較少,聯盟鏈一般不采用工作量證明的挖礦機制,而是多采用權益證明(PoS)或PBFT(Practical Byzantine Fault Tolerant)、RAFT等共識算法。
一般來說,聯盟鏈適合於機構間的交易、結算或清算等B2B場景。例如在銀行間進行支付、結算、清算的系統就可以采用聯盟鏈的形式,將各家銀行的網關節點作為記賬節點,當網絡上有超過2/3的節點確認一個區塊,該區塊記錄的交易將得到全網確認。聯盟鏈對交易的確認時間、每秒交易數都與公有鏈有較大的區別,對安全和性能的要求也比公共鏈高。
3)私有鏈(Private Blockchain)
私有鏈建立在某個企業內部,系統的運作規則根據企業要求進行設定。
私有鏈的應用場景一般是企業內部的應用,如數據庫管理、審計等;在政府行業也會有一些應用,比如政府的預算和執行,或者政府的行業統計數據,這個一般來說由政府登記,但公眾有權力監督。私有鏈的價值主要是提供安全、可追溯、不可篡改、自動執行的運算平臺,可以同時防範來自內部和外部對數據的安全攻擊,這個在傳統的系統是很難做到的。
4)側鏈(Side chain)
側鏈是用於確認來自於其它區塊鏈的數據的區塊鏈,通過雙向掛鉤(TwoWay Peg)機制使比特幣、Ripple幣等多種資產在不同區塊鏈上以一定的匯率實現轉移。
所謂“多種資產在不同區塊鏈上轉移”其實並不會實際發生。以比特幣為例,側鏈的運作機制是,將比特幣暫時鎖定在比特幣區塊鏈上,同時將輔助區塊鏈上的等值數字貨幣解鎖;當輔助區塊鏈上的數字貨幣被鎖定時,原先的比特幣就被解鎖。
側鏈進一步擴展了區塊鏈技術的應用範圍和創新空間,使區塊鏈支持包括股票、債券、金融衍生品等在內的多種資產類型,以及小微支付、智能合約、安全處理機制、真實世界財產註冊等;側鏈還可以增強區塊鏈的隱私保護。
&區塊鏈產業鏈
區塊鏈產業鏈主要包括基礎網絡層、中間協議層及應用服務層。
1)基礎網絡層
基礎網絡層由數據層、網絡層組成,其中數據層包括了底層數據區塊以及相關的數據加密和時間戳等技術;網絡層則包括分布式組網機制、數據傳播機制和數據驗證機制等。
2)中間協議層
中間協議層由共識層、激勵層、合約層組成,其中共識層主要包括網絡節點的各類共識算法;激勵層將經濟因素集成到區塊鏈技術體系中來,主要包括經濟激勵的發行機制和分配機制等;合約層主要包括各類腳本、算法和智能合約,是區塊鏈可編程特性的基礎。
3) 應用服務層
應用服務層作為區塊鏈產業鏈中最重要的環節,則包括區塊鏈的各種應用場景和案例,包括可編程貨幣、可編程金融和可編程社會。
Part Tow:區塊鏈核心技術
區塊鏈技術:指多個參與方之間基於現代密碼學、分布式一致性協議、點對點網絡通信技術和智能合約編程語言等形成的數據交換、處理和存儲的技術組合。
&數據層:設計賬本的數據結構
1) 核心技術之:區塊 + 鏈
從技術上來講,區塊是一種記錄交易的數據結構,反映了一筆交易的資金流向。系統中已經達成的交易的區塊連接在一起形成了一條主鏈,所有參與計算的節點都記錄了主鏈或主鏈的一部分。
每個區塊由區塊頭和區塊體組成,區塊體只負責記錄前一段時間內的所有交易信息,主要包括交易數量和交易詳情;區塊頭則封裝了當前的版本號、前一區塊地址、時間戳(記錄該區塊產生的時間,精確到秒)、隨機數(記錄解密該區塊相關數學題的答案的值)、當前區塊的目標哈希值、Merkle數的根值等信息。從結構來看,區塊鏈的大部分功能都由區塊頭實現。
概括來看,一個區塊包含以下三部分:交易信息、前一個區塊形成的哈希散列、隨機數。
交易信息是區塊所承載的任務數據,具體包括交易雙方的私鑰、交易的數量、電子貨幣的數字簽名等;前一個區塊形成的哈希散列用來將區塊連接起來,實現過往交易的順序排列;隨機數是交易達成的核心,所有礦工節點競爭計算隨機數的答案,最快得到答案的節點生成一個新的區塊,並廣播到所有節點進行更新,如此完成一筆交易。
2) 核心技術之:哈希函數
哈希函數可將任意長度的資料經由Hash算法轉換為一組固定長度的代碼,原理是基於一種密碼學上的單向哈希函數,這種函數很容易被驗證,但是卻很難破解。通常業界使用y =hash(x)的方式進行表示,該哈希函數實現對x進行運算計算出一個哈希值y。
常使用的哈希算法包括MD5、SHA-1、SHA-256、SHA-384及SHA-512等。以SHA256算法為例,將任何一串數據輸入到SHA256將得到一個256位的Hash值(散列值)。其特點:相同的數據輸入將得到相同的結果。輸入數據只要稍有變化(比如一個1變成了0)則將得到一個完全不同的結果,且結果無法事先預知。正向計算(由數據計算其對應的Hash值)十分容易。逆向計算(破解)極其困難,在當前科技條件下被視作不可能。
3) 核心技術之:Merkle樹
Merkle樹是一種哈希二叉樹,使用它可以快速校驗大規模數據的完整性。在區塊鏈網絡中,Merkle 樹被用來歸納一個區塊中的所有交易信息,最終生成這個區塊所有交易信息的一個統一的哈希值,區塊中任何一筆交易信息的改變都會使得Merkle 樹改變。
4) 核心技術之:非對稱加密算法
非對稱加密算法是一種密鑰的保密方法,需要兩個密鑰:公鑰和私鑰。
公鑰與私鑰是一對,如果用公鑰對數據進行加密,只有用對應的私鑰才能解密,從而獲取對應的數據價值;如果用私鑰對數據進行簽名,那麽只有用對應的公鑰才能驗證簽名,驗證信息的發出者是私鑰持有者。
因為加密和解密使用的是兩個不同的密鑰,所以這種算法叫做非對稱加密算法,而對稱加密在加密與解密的過程中使用的是同一把密鑰。
&網絡層:實現記賬節點的去中心化
5) 核心技術之:P2P網絡
P2P網絡(對等網絡),又稱點對點技術,是沒有中心服務器、依靠用戶群交換信息的互聯網體系。與有中心服務器的中央網絡系統不同,對等網絡的每個用戶端既是一個節點,也有服務器的功能。國內的迅雷軟件采用的就是P2P技術。
P2P網絡其具有去中心化與健壯性等特點。
a)去中心化:網絡中的資源和服務分散在所有結點上,信息的傳輸和服務的實現都直接在結點之間進行,可以無需中間環節和服務器的介入。
b)健壯性:P2P架構天生具有耐攻擊、高容錯的優點。由於服務是分散在各個結點之間進行的,部分結點或網絡遭到破壞對其它部分的影響很小。
&共識層:調配記賬節點的任務負載
6) 核心技術之:共識機制
共識機制,就是所有記賬節點之間如何達成共識,去認定一個記錄的有效性,這既是認定的手段,也是防止篡改的手段。目前主要有四大類共識機制:PoW、PoS、DPoS和分布式一致性算法。
PoW(Proofof Work,工作量證明)
PoW機制,也就是像比特幣的挖礦機制,礦工通過把網絡尚未記錄的現有交易打包到一個區塊,然後不斷遍歷嘗試來尋找一個隨機數,使得新區塊加上隨機數的哈希值滿足一定的難度條件。找到滿足條件的隨機數,就相當於確定了區塊鏈最新的一個區塊,也相當於獲得了區塊鏈的本輪記賬權。礦工把滿足挖礦難度條件的區塊在網絡中廣播出去,全網其他節點在驗證該區塊滿足挖礦難度條件,同時區塊里的交易數據符合協議規範後,將各自把該區塊鏈接到自己版本的區塊鏈上,從而在全網形成對當前網絡狀態的共識。
優點:完全去中心化,節點自由進出,避免了建立和維護中心化信用機構的成本。只要網絡破壞者的算力不超過網絡總算力的50%,網絡的交易狀態就能達成一致。
缺點:目前比特幣挖礦造成大量的資源浪費;另外挖礦的激勵機制也造成礦池算力的高度集中,背離了當初去中心化設計的初衷。更大的問題是PoW機制的共識達成的周期較長,每秒只能最多做7筆交易,不適合商業應用。
PoS(Proofof Stake,權益證明)
PoS機制,要求節點提供擁有一定數量的代幣證明來獲取競爭區塊鏈記賬權的一種分布式共識機制。如果單純依靠代幣余額來決定記賬者必然使得富有者勝出,導致記賬權的中心化,降低共識的公正性,因此不同的PoS機制在權益證明的基礎上,采用不同方式來增加記賬權的隨機性來避免中心化。例如點點幣(Peer Coin)PoS機制中,擁有最多鏈齡長的比特幣獲得記賬權的幾率就越大。NXT和Blackcoin則采用一個公式來預測下一記賬的節點。擁有多的代幣被選為記賬節點的概率就會大。未來以太坊也會從目前的PoW機制轉換到PoS機制,從目前看到的資料看,以太坊的PoS機制將采用節點下賭註來賭下一個區塊,賭中者有額外以太幣獎,賭不中者會被扣以太幣的方式來達成下一區塊的共識。
優點:在一定程度上縮短了共識達成的時間,降低了PoW機制的資源浪費。
缺點:破壞者對網絡攻擊的成本低,網絡的安全性有待驗證。另外擁有代幣數量大的節點獲得記賬權的幾率更大,會使得網絡的共識受少數富裕賬戶支配,從而失去公正性。
DPoS(DelegatedProof-Of-Stake,股份授權證明)
DPoS很容易理解,類似於現代企業董事會制度。比特股采用的DPoS機制是由持股者投票選出一定數量的見證人,每個見證人按序有兩秒的權限時間生成區塊,若見證人在給定的時間片不能生成區塊,區塊生成權限交給下一個時間片對應的見證人。持股人可以隨時通過投票更換這些見證人。DPoS的這種設計使得區塊的生成更為快速,也更加節能。
從某種角度來說,DPOS可以理解為多中心系統,兼具去中心化和中心化優勢。
優點:大幅縮小參與驗證和記賬節點的數量,可以達到秒級的共識驗證。
缺點:選舉固定數量的見證人作記賬候選人有可能不適合於完全去中心化的場景。另外在網絡節點數少的場景,選舉的見證人的代表性也不強。
分布式一致性算法
分布式一致性算法是基於傳統的分布式一致性技術。其中有分為解決拜占庭將軍問題的拜占庭容錯算法,如PBFT(拜占庭容錯算法)。另外解決非拜占庭問題的分布式一致性算法(Pasox、Raft),詳細算法本文不做說明。該類算法目前是聯盟鏈和私有鏈場景中常用的共識機制。
優點:實現秒級的快速共識機制,保證一致性。
缺點:去中心化程度不如公有鏈上的共識機制;更適合多方參與的多中心商業模式。
綜合來看, POW適合應用於公鏈,如果搭建私鏈,因為不存在驗證節點的信任問題,可以采用POS比較合適;而聯盟鏈由於存在不可信局部節點,采用DPOS比較合適。
&激勵層:制定記賬節點的”薪酬體系”
7) 核心技術之:發行機制和激勵機制
以比特幣為例。
比特幣最開始由系統獎勵給那些創建新區塊的礦工,該獎勵大約每四年減半。剛開始每記錄一個新區塊,獎勵礦工50個比特幣,該獎勵大約每四年減半。依次類推,到公元2140年左右,新創建區塊就沒有系統所給予的獎勵了。屆時比特幣全量約為2100萬個,這就是比特幣的總量,所以不會無限增加下去。
另外一個激勵的來源則是交易費。新創建區塊沒有系統的獎勵時,礦工的收益會由系統獎勵變為收取交易手續費。例如,你在轉賬時可以指定其中1%作為手續費支付給記錄區塊的礦工。如果某筆交易的輸出值小於輸入值,那麽差額就是交易費,該交易費將被增加到該區塊的激勵中。只要既定數量的電子貨幣已經進入流通,那麽激勵機制就可以逐漸轉換為完全依靠交易費,那麽就不必再發行新的貨幣。
8) 核心技術之:智能合約
智能合約是一組情景應對型的程序化規則和邏輯,是通過部署在區塊鏈上的去中心化、可信共享的腳本代碼實現的。通常情況下,智能合約經各方簽署後,以程序代碼的形式附著在區塊鏈數據上,經P2P網絡傳播和節點驗證後記入區塊鏈的特定區塊中。智能合約封裝了預定義的若幹狀態及轉換規則、觸發合約執行的情景、特定情景下的應對行動等。區塊鏈可實時監控智能合約的狀態,並通過核查外部數據源、確認滿足特定觸發條件後激活並執行合約。