區塊鏈 + 數字貨幣

國海研究*靳毅團隊

区块链 + 数字货币

一、數字貨幣初探

目前,數字貨幣尚沒有公認的標準定義。從廣義上講,數字貨幣泛指一切以電子形式存在的貨幣。狹義的數字貨幣一般特指以非對稱密碼技術為基礎的“密碼貨幣”,這也是本文的主要研究對象。按照數字貨幣的發行者不同,可以被分為私人發行、不受法律保護的私人數字貨幣(比特幣、以太幣等)和中央銀行發行並進行監管的法定數字貨幣(央行數字貨幣)。

隨著計算機和互聯網技術的迅猛發展,除了數字貨幣外,還出現了多種新的“貨幣”概念,如虛擬貨幣和電子貨幣。三者概念既有不同也有重合之處,法定數字貨幣和電子貨幣因均由央行發行容易被混淆,私人數字貨幣和虛擬貨幣因均由私人機構發行容易被混淆。我們首先對這些概念進行區分,以界定本文所研究的數字貨幣的範圍。

電子貨幣和法定數字貨幣。1)電子貨幣是指法幣的電子化,即紙幣在銀行或其他相關金融機構將法定貨幣電子化和網絡存儲和支付的形式,並沒有創造新的貨幣類型,只是現有貨幣的電子形式。按照其發行主體的不同又可分為銀行卡、儲值卡(如公交卡、購物卡)和第三方支付(如支付寶、財付通)等。2)法定數字貨幣本身是貨幣(屬於M0的範疇),與紙幣、硬幣共同構成現金,不僅僅是支付工具,如中國央行即將發行的央行數字貨幣。

虛擬貨幣和私人數字貨幣。1)虛擬貨幣通常指基於網絡的虛擬性,由網絡運營商提供發行並應用在網絡虛擬空間的類貨幣,如騰訊公司發行的Q幣,各大網遊公司發行的遊戲幣等,一般只在自身生態內流通,政府出於穩定金融體系的目的規定其不可與法幣雙向流通。2)私人數字貨幣是指無發行主體或私人機構發行的可以被用於真實的商品和服務交易的“貨幣”,其不僅僅侷限在虛擬空間中,如比特幣、以太幣等。

二、區塊鏈:多種技術的集大成者

數字貨幣的產生及應用涉及複雜的底層技術,在梳理其發展歷史之前,通俗的理解這些技術是必要的。

與名噪一時的比特幣等數字貨幣一起聲名鵲起的,莫過於區塊鏈技術。也正因為區塊鏈經常與比特幣一起出現,所以很多人容易將兩者混淆,更有甚者認為區塊鏈就是比特幣。

事實上,比特幣只是區塊鏈技術的一個具體應用,區塊鏈不僅可應用於比特幣等數字貨幣,還可以應用於所有數字化的領域,如數字票據、徵信、政務服務、醫療記錄等。

數字貨幣也不一定應用區塊鏈技術,我國央行相關人員也多次指出“法定數字貨幣未必使用區塊鏈技術,區塊鏈只是央行數字貨幣備選的底層技術之一”。那麼,區塊鏈技術究竟是什麼呢?

當前,對於區塊鏈的定義,業界尚未有唯一的明確答案。

從形式上看,區塊鏈(BlockChain)是一種按照時間順序將數據區塊以順序相連的方式組合成的一種鏈式數據結構。每個區塊(Block)主要包含三個部分:1)數據信息,具體的信息類型與區塊鏈協議規定相關。例如,在比特幣系統中是轉賬信息,包括付款人、收款人、比特幣數量等。2)哈希值,表明區塊內包含的所有信息。3)哈希指針,包含上一個區塊的哈希值,表明上一個區塊的信息。哈希指針可以將區塊一個個連接起來形成“區塊鏈”。

区块链 + 数字货币

從技術本質上看,區塊鏈可以理解為一個由多個節點共同維護、能夠系統運轉的數據庫儲存系統。它是多種技術的集大成者,包括去中心化技術(P2P網絡技術和分佈式存儲)、信息加密技術(密碼學哈希函數和非對稱加密技術)、共識機制(拜占庭容錯算法、工作量證明機制、權益證明機制)等。

2.1去中心化:P2P網絡架構+分佈式存儲

P2P網絡是區塊鏈實現去中心化的基礎,解決了節點與節點之間數據傳輸的問題。P2P網絡(Peer-to-peer networking)又稱對等網絡,是一種在對等者(Peer)之間分配任務和工作負載的分佈式應用架構。在目前網絡中傳統的服務端/客戶端(Server/Client)結構中,數據傳輸傳輸需要經過一箇中央服務器。

以發微博為例,用戶發送的圖文先通過網絡傳輸發送至新浪服務器,新浪服務器再將圖文發送給其他用戶。在P2P網絡中,不存在中央服務器這樣的中心化節點,每個節點都是對等的,節點之間可以直接進行數據傳輸。

根據網絡中不同節點之間如何建立連接通道,P2P存在四種不同的模式,不同的區塊鏈應用可能採用不同的模式,具體分為:集中式、純分佈式、混合式、結構化模式。

1)集中式P2P網絡是指存在一箇中心節點保存了其他所有節點的索引信息,但數據傳輸無需經過中央服務器,可以直接點對點傳輸。例如,MP3共享軟件Napster就使用這種P2P系統,Napster存在一箇中央索引服務器保存所有用戶上傳的音樂文件索引和存放位置信息,當某個用戶A需要某個音樂文件時,首先在Napster中央服務器進行檢索,檢索到存有該文件的用戶B後,A可以請求B直接將文件傳輸給A。

2)純分佈式P2P結構式不存在中央服務器或中心節點,節點之間建立隨機網絡。數據傳輸時,某節點將信息傳送給相鄰節點,以此類推,以擴散的形式在網絡中蔓延,直至傳送到另一節點。比特幣區塊鏈即使用的這種P2P系統。

3)混合式P2P網絡將集中式和分佈式結構混合,網絡中存在多個超級節點組成分佈式網絡,每個超級節點式則由多個普通節點與其組成局部的集中式網絡。從Libra發佈的白皮書可以推斷,Libra即使用這種P2P系統。

4)結構化P2P網絡是指所有節點按照某種結構有序組織,如環網網絡和樹狀網絡。

区块链 + 数字货币

P2P技術解決了點對點之間數據傳輸問題,而分佈式存儲解決了去中心化系統中數據儲存的問題。在傳統的儲存方式中,所有數據都集中儲存在一箇中心化的節點中,而在P2P網絡中,不存在中心化節點,需要使用分佈式存儲技術。簡單來說,分佈式存儲就是將數據存儲在多個計算機節點中。應用到區塊鏈中,即各節點進行信息傳輸時,需要將該信息廣播在系統中,收到信息的節點均儲存該條信息。

区块链 + 数字货币

2.2

信息加密及驗證:非對稱加密技術+密碼學哈希函數

在P2P網絡系統中,節點之間數據傳輸採用廣播的形式,例如A節點向B節點傳輸信息,A節點首先向相鄰節點擴散信息,以此類推,直到信息傳送至B。但在此過程中存在兩個問題:1)當節點A向節點B發送信息時,由於數字信息可以輕易複製,用戶身份容易被冒充或偽造,節點B如何驗證信息發送人的身份是否是A;2)信息在傳輸過程中可能被惡意篡改,如何保證信息在傳輸過程中沒有被篡改。

非對稱加密技術可以用於身份驗證。非對稱加密又稱公鑰加密,與對稱加密只有一個密鑰(該密鑰可以加密也可以解密)相比,非對稱加密具有兩個密鑰:公開密鑰和私有密鑰。公鑰和私鑰是一對,如果用私鑰加密,只有對應的公鑰才能解密。公鑰是公開的,可以表示節點的身份,發送者在發送信息時用私鑰將信息加密,接收者收到信息後,用公鑰進行解密,即可確認發送者的身份。

哈希函數的性質可以用於驗證信息是否被篡改。哈希函數y=H(x)可以將任意長度的信息(輸入值x)轉化成固定長度的二進制字符串(輸出值y),該輸出值稱為哈希值或散列值。哈希函數具有三個性質:1)不可能存在兩個不同的輸入值x對應同一個輸出值y,即不可能有不同的信息對應同一個哈希值。2)輸入x很容易通過哈希函數轉化成y,但逆向計算可不行,即已知輸出值y,不能計算出輸入值x(只能使用窮舉法,但解空間為2256)。3)輸入值x的微小變動,哈希函數的輸出值y都大相徑庭且沒有規律。

区块链 + 数字货币

哈希函數的三個性質可以驗證信息是否被篡改,具體流程如下:首先,發送者將信息輸入哈希函數,得到一個哈希值,並將哈希值用私鑰加密。其次,發送者將原始信息、加密的哈希值以及公鑰一起發送給接收者;最後,接收者收到後用公鑰將哈希值解密,並將原始信息輸入哈希函數,將得到的哈希值與收到的哈希值對比,即可驗證原始信息是否在傳輸過程中遭到篡改。

区块链 + 数字货币

2.3、共識機制:拜占庭容錯算法、工作量證明、權益證明

節點之間數據傳輸問題解決後,數據存儲問題接踵而至。在中心化存儲系統中,中心機構負責數據存儲的完整性和準確性,而在分佈式存儲系統中,各節點記錄、儲存數據可能會出現以下問題:1)信息在記錄和存儲時被惡意篡改;2)信息無效、損壞或丟失,比如,由於通信網絡無法正常工作,導致部分節點沒有收到信息;3)信息傳送延遲,由於各節點的地理位置、網絡狀況不同,不同節點對某一條信息收到的時間不同。

這些情況的存在,導致各節點對信息的記錄和存儲無法達成一致。解決方案是各節點向其他所有節點傳遞將要儲存的信息內容,各節點根據收到的消息採用少數服從多數的原則來確定數據存儲的一致性,但這一過程仍可能存在惡意節點向其他節點傳輸錯誤節點以破壞一致性,這就是著名的“拜占庭將軍問題”。

“拜占庭將軍問題”是分佈式系統達成一致性的重要難題,由Leslie Lamport等科學家於1982年提出。基本思想如下:拜占庭帝國各軍隊分別駐紮在相隔很遠的營地,只能靠信使傳遞消息,由於至少一半以上的軍隊同時攻擊才能能夠攻下帝國,將軍們需要就是否攻擊敵軍達成共識。軍隊中可能存在叛徒,叛徒可能擅自變更進攻意向或進攻時間,以破壞將軍之間的共識。

例如,共有11名將軍,其中有一名反叛者,如果5名將軍選擇“進攻”,另外5名選擇“撤退”,反叛者在收到這些消息後,向選擇進攻的將軍發送“進攻”消息,向選擇撤退的將軍發送“撤退”消息。由於反叛者的存在使得將軍無法形成共識,5名將軍選擇“進攻”,5名將軍選擇“撤退”,結果必然是失敗。

對標到分佈式存儲系統中,各營地駐紮的軍隊即是各個節點,節點之間要對某一信息達成共識,需要向其他節點傳送自己記錄的信息,達到半數以上認可的信息即可作為統一的儲存信息。但在此過程中,可能存在惡意破壞一致性的節點。例如,某個節點,向網絡中一半節點發送“A”信息的同時,向另一半節點發送“B”信息,使得儘管只有一個惡意節點,系統也無法形成統一的數據庫。因此,需要一種機制以保證即使存在惡意節點,其他節點依然能夠達成一致結果。

因此,共識機制是區塊鏈技術的核心問題。目前,主流區塊鏈的共識機制主要有三種,分別為拜占庭容錯機制、工作量證明、權益證明。

(1)拜占庭容錯算法

1999年,Miguel Castro和Barbara Liskov提出了實用拜占庭容錯算法(Practical Byzantine Fault Tolerance,PBFT),可以保證系統中的惡意節點不超過1/3,即可達成共識。其基本思想為各節點收到其他節點發送來的信息後,並不立即根據多數做出判斷,而是將收到的信息再傳給其他節點,通過信息交換做出一致決定。在這種情況下,只要系統中惡意節點不超過1/3,則能解決拜占庭將軍問題,即當超過2/3的節點宣佈儲存的信息一致時,即可實現共識。

為什麼惡意節點不能超過三分之一?原因如下:假設系統中共有n個節點,其中惡意節點有f個,則忠誠節點有n-f個,忠誠節點發出n-f個真實信息。若通信網絡中不存在信息傳遞延遲現象(各節點能立即收到其他節點發來的信息),要求真實信息的數量要大於錯誤信息時n-f>f(即f<1/2n),才能達成一致,也就是當收到一半以上的一致信息時,即可達成共識。但現實情況下,信息傳遞會出現延遲現象,在收到的n-f個信息裡,可能最多有f個惡意節點發的錯誤信息,因此至少有n-f-f條真實信息大於錯誤信息時,才可以達成共識,即n-2f>f,可得出f<1/3n。

(2)工作量證明——比特幣區塊鏈的共識機制

工作量證明(Proof of Work,簡稱PoW)由比特幣引入,可以保證惡意節點不超過51%即可達成共識,是目前區塊鏈最經典、也是最久經考驗的共識機制。其基本流程如下:

1)當節點進行數據傳輸時,傳輸的信息不會被各節點立即儲存,而是被標記為“未確認的”存入內存池。

2)區塊鏈系統中每隔一段時間產生一個新的區塊,不同的區塊鏈協議產生的時間不同(例如比特幣區塊鏈中是10分鐘產生一個區塊)。各節點在內存池將收集所有未確認的信息,打包在新的區塊中,構造出候選區塊。由於我們上述提到的問題,對於給定的信息集合,各節點區塊中打包的信息可能不一致。

3)區塊打包信息後會設置一個“密碼謎題”,即在信息後添加一個隨機數,然後對整個信息列表(包括隨機數)使用哈希函數轉換成一個哈希值。

4)各節點需要利用所得到的哈希值計算出該隨機數。根據上文所提到的哈希函數的性質,逆向計算不可行,只能使用窮舉法,

因此,要計算出這個特殊數字需要進行海量的計算,這個過程就叫做工作量證明,可以簡單理解為解“數學謎題”的過程。

5)當網絡中某個節點率先找出隨機數時,該節點會向全網廣播,其他節點進行有效性進行驗證,當51%的節點驗證通過後,則區塊會被自動鏈接到區塊鏈的後面,無法通過驗證的將重新進行計算。率先完成工作量證明的可以獲得一定的獎勵,既能激勵全網各節點進行主動存儲信息,又能避免節點存儲錯誤信息——因為驗證失敗後的收益遠遠小於其成本。

例如在比特幣區塊鏈中,區塊中包含一定量的幣基,既率先找出隨機數的節點通過驗證後,即可獲得區塊中的新幣獎勵。由於這個過程與挖金礦有相似之處,因此使用PoW機制的數字貨幣的產生過程被稱形象地稱為“挖礦”。

区块链 + 数字货币

PoW的意義在於增加了各節點廣播信息的成本,且該成本遠大於發佈虛假信息的收益,各節點就不會有做“叛徒”的動機。因為如果節點對信息有任何的修改,就會完全改變哈希值,哈希函數雖不易逆解但容易驗證,當無法通過51%節點的驗證時,該節點必須重做工作量證明,既會花費大量成本,又會降低率先完成的概率從而降低獲得獎勵的概率。其次,由於率先算出謎題的節點是隨機的,所以我們無法得知下一個爭得記錄權的節點,各節點也無法掌控自己將獲得哪個區塊的記錄權。

以上過程通過PoW機制解決了單個區塊內信息儲存的共識問題,但不能保證系統(整個區塊鏈)的最終一致性。因為兩個不同節點同時挖出區塊(解出謎底)的情況也可能出現(由於網絡通信問題,每個節點的區塊信息可能不一致),這時區塊鏈會出現分叉,網絡各節點需要對哪條區塊鏈上的交易能夠得到確認形成共識。

整條區塊鏈的共識遵循最長鏈原則,只有最長鏈上的交易能夠得到確認,也就是包含的工作量最大的那條區塊鏈。

“分叉鏈”不可持續,在下一次區塊競爭時,每個節點會選擇在某條分叉鏈上進行下一次記賬權的競爭,由於存在巨大的工作量證明,同一時間內兩個節點同時挖出區塊的概率將呈指數級下降,因此,很快就會有“最長鏈”出現,最長鏈上的交易將獲得確認,同時,較短鏈上的交易信息也會隨之釋放,重新標記為“未確認”,打包在下一個區塊中。

区块链 + 数字货币

但PoW機制並非完美,它有以下三個缺點:

1)51%攻擊:當攻擊者掌握了全網51%的算力時,其攻擊總能成功,因為他總可以讓自己的鏈成為最長的鏈。因此,全網節點越多,抗攻擊能力越強,安全性越好。

2)高延遲:區塊出現時間的間隔不能太短,出塊時間過短意味著挖礦難度降低,會增加多個節點同時算出答案的概率,導致頻繁分叉。但出塊慢意味著確認時間長、高延遲。

3)資源浪費:計算機計算密碼謎題需要大量的算力,需要高性能的計算機設備、消耗大量電力等資源。根據digiconomist的評估,比特幣2018年度排放的二氧化碳達34.73百萬噸,相當於丹麥的碳排放量;耗電量達73.12兆千瓦時,相當於奧地利的耗電量;產生電子廢物9.8克拉,相當於盧森堡產生的電子廢物。

区块链 + 数字货币

(3)權益證明——以太坊區塊鏈的共識機制

權益證明機制(Proofof Stake,簡稱PoS)是對PoW機制的改進,與節點需要做計算工作證明不同,PoS按照各節點擁有的密碼貨幣的數量和時間競爭記賬權,這種模式下持有密碼貨幣的數量越多、時間越長,率先“挖出”區塊的概率就越高。這種機制類似於利息制度,PoS算法中有一個名詞叫做“幣天”,是貨幣數量與持有天數的乘積(例如若持有100個密碼貨幣10天,則幣天為1000),各節點每發現一個區塊,擁有的幣天就會被清零,每清空365個幣天,可獲得一定數量的新幣獎勵(相當於持幣利息)。

PoS作為PoW的一種升級共識機制,成功地改進了PoW機制的一些缺陷。1)低延遲:根據每個節點所持有代幣的數量和時間,等比例的降低挖礦難度,在一定程度上縮短了共識達成的時間。2)資源消耗少:不再需要消耗大量能源進行計算。

区块链 + 数字货币

釐清以上數字貨幣的範圍及背後的複雜技術後,能夠幫助我們更好地理解數字貨幣的發展。目前,比特幣、以太幣等私人數字貨幣熱度不斷攀升,各國央行的法定數字貨幣也呼之欲出。數字貨幣的出現,提出了一系列值得思考的問題。以比特幣為代表的私人數字貨幣能否成為真正的貨幣?法定數字貨幣的研究進展如何?數字貨幣未來何去何從?我們接下來的系列報告,將會把客觀的歷史邏輯與主觀的認識邏輯結合起來,通過梳理數字貨幣的發展軌跡,來探尋數字貨幣未來的發展方向!

三、風險提示

密碼算法安全性、協議安全性不足。

(感謝實習生劉金金對本報告做出的貢獻!)

区块链 + 数字货币


分享到:


相關文章: