鄭昌興
摘要:該文通過對區塊鏈技術的基本概念、主要特性和關鍵技術與機制的深入分析,認為區塊鏈是綜合運用密碼學算法和計算機網絡技術構建的一種具備新型信任機制的基礎架構,它具有去中心化、開放透明性、安全可靠性和準匿名性等主要特征。
關鍵詞:比特幣;區塊鏈;工作量證明;P2P網絡;哈希算法
中圖分類號:TP393? ? ? ? 文獻標識碼:A? ? ? ? 文章編號:1009-3044(2018)31-0056-02
The Analysis of BlockchainTechnology
ZHENG Chang-xing
(Political College of National Defence University of People's Liberation Army, Shanghai 201602, China)
Abstract:Through in-depth analysis of the basic concepts, main characteristics and key technologies and mechanisms of blockchain technology, this paper considers that blockchain is a kind of infrastructure with new trust mechanism constructed by using cryptography algorithm and computer network technology. It has decentralized structure. Main features such as openness, transparency, security, reliability and quasi-anonymity.
Key words: Bitcoin; Blockchain; Proof of Work; P2P Network; Hash Algorithm
1 引言
當前,比特幣及其衍生的各種數字加密貨幣受到了前所未有地追捧和熱炒,由此也帶熱了對其底層技術——區塊鏈地深入研究和探討。比特幣是區塊鏈技術迄今為止最為成功的應用,而這僅僅是區塊鏈重要價值的冰山一角。區塊鏈被認為是繼互聯網之后人類最重要的發明,具有比肩互聯網的重要作用和巨大價值,受到了各國政府機構和大型跨國公司的廣泛重視,包括英國央行、美國央行、高盛、花旗銀行等機構紛紛在區塊鏈上投入巨資,中國央行也于2016年宣布開展基于區塊鏈技術的數字貨幣的相關研究。盡管當前區塊鏈技術的應用還主要集中在金融服務領域,相信隨著認識的深入和應用的推廣,區塊鏈技術必將對各行各業產生深遠影響。
2 區塊鏈的基本概念與主要特征
區塊鏈的概念早在20世紀90年代初就被區塊鏈的發明者Scott Stornetta和Stuart Haber所提出,2008年,中本聰在其發表的學術論文《比特幣:一種點對點的電子現金系統》中提出了基于區塊鏈技術構建比特幣系統的理論體系,并于次年將理論付諸于實踐,創造了比特幣系統的第一個區塊——創世區塊,并且開發了比特幣客戶端0.1版。自此,隨著比特幣價值的攀升和挖礦行為的熱炒,區塊鏈這一新詞匯也被人們所熟知。
目前,關于區塊鏈并沒有統一的定義。百度百科將其定義為:區塊鏈是分布式數據存儲、點對點傳輸、共識機制、加密算法等計算機技術的新型應用模式[1];英文維基百科將其定義為:區塊鏈由包含一系列加蓋了時間戳的有效交易的區塊組成。每個區塊都包含了前一個區塊的哈希值,這樣就把區塊連接在了一起。連接在一起的區塊形成區塊鏈[2];巴比特網站認為:區塊鏈是由一串使用密碼學方法產生的數據庫組成的,每一個區塊都包含了上一個區塊的哈希值,從創世區塊開始連接到當前區塊,形成區塊鏈[3]。不同的機構基于各自的視角給出的定義各不相同,不一而足,但共性的認識是區塊鏈是基于多種計算機技術組合應用形成的分布式公共賬本。這個分布式賬本使用區塊記錄交易記錄,區塊間彼此鏈接,形成區塊鏈。區塊鏈本身并不是一種創新的技術,而是一種創新思想的體現。它利用眾多已有的計算機網絡技術和密碼學算法構建了一種創造新型信任機制的基礎架構,區塊鏈這種基礎架構具有許多重要的特性,主要包括:
(1)去中心化:如何建立信任機制是在商品社會進行商品交換的關鍵性問題,也是保證交易能夠順利進行的基礎。當前是通過權力機構或者大型商業公司等第三方來確保買賣雙方即使沒有建立信任也能夠進行交易,從而形成了對第三方中心性的依賴。這種對于中心化第三方的依賴的一個顯而易見的弊端是如果第三方的安全性或者權威性出現問題將會帶來非常嚴重的后果。區塊鏈技術則通過對密碼學算法和計算機網絡技術的創新應用,構建了一種去中心化的信任機制。去除對單一個體的信任,而是信任全網所有結點,通過全網結點對所有數據的分布式記錄、存儲來保證數據記錄的真實性和不可抵賴性。由于不需要第三方中介或者權威機構背書,所以在去中心化的區塊鏈網絡中,單個節點的安全問題無法對整個區塊鏈網絡產生根本影響。
(2)開放透明性:區塊鏈技術作為分布式賬本技術,其網絡上運行的程序、規則、節點接入方式都是公開的,并且典型的區塊鏈網絡也是對任意機器開放的,這是形成區塊鏈網絡機器信任的基礎。網絡中每個節點都能夠下載存儲全網發生的所有歷史交易記錄完整、一致的賬本,參與新的交易的記錄和確認,添加區塊更新區塊鏈賬本,所有的數據記錄及操作對于所有節點都是透明的。要網絡中的任一節點都可以通過查看整個賬本來確認交易的真實性,從而保證了區塊鏈中記錄的交易數據可以被全網所有節點審查、追溯。
(3)安全可靠性:區塊鏈本質上是去中心化的分布式數據庫,數據復制到整個網絡的所有節點上,相當于每一個網絡結點都擁有所有數據記錄的副本,依靠多數節點間的共識來保持數據的一致性。因此只要節點數目足夠多、分布足夠分散,就沒有一個人或組織能夠控制和決定所有節點的行為。實現了全網結點對于賬本數據的監督,極大地降低了交易欺詐的風險。要想更改某一區塊的數據記錄,理論上必須控制51%以上的結點才能實現,而這實踐中是非常難于實現或者所付出的代價遠大于收益,而且這種控制將摧毀區塊鏈所構建的信任體系,也會受到區塊鏈運行原則的約束和所有參與者的密切監視和防范。因此可以說區塊鏈區塊中的信息是不可篡改的,從而保證了區塊鏈數據記錄的安全性與可靠性。
(4)準匿名性:在互聯網誕生初期,匿名性是其顯著屬性,但隨著線上與線下的互動特別是依賴于第三方中介或權威機構信任機制的網絡交易使這種匿名性逐漸變得清晰,因為這種信任機制的建立是與用戶現實身份緊密地聯系在一起的。在網絡社會特別是云計算、大數據等技術的廣泛應用使得網絡用戶不僅無法匿名,甚至個人隱私安全都成為一個突出的問題。而區塊鏈技術所確立的信任機制可以使得交易雙方在不了解對方真實身份的情況下進行交易,實現了一定程度的準匿名性。以比特幣系統為例,比特幣交易是基于加密地址的,只要知道雙方的比特幣地址就可以進行交易,而無需對交易雙方的現實身份進行認證。甚至一個用戶可以擁有數個比特幣地址,每筆交易使用單獨的一個比特幣地址進行,從有效降低了利用比特幣地址追蹤關聯現實身份的概率。
3 區塊鏈的關鍵技術
(1)哈希算法
在區塊鏈中,存儲的通常不是原始數據而是數據的哈希值。哈希散列函數能夠在有限的時間內將任意長度的消息壓縮為固定長度的二進制串,形成對應的哈希值。哈希散列函數具有抗碰撞性,即在現有的計算資源條件下,針對不同的消息在相同哈希函數作用下生成相同的哈希值是不可行的;原像不可逆性,即已知輸入值很容易通過哈希函數計算出哈希值,但根據哈希值確無法還原出原來的輸入值;難題友好性,即沒有任何便捷的方法能夠產生一滿足要求的哈希值。利用哈希散列函數良好的抗碰撞性、原像不可逆性和難題友好性等特性能夠有效保證存儲于區塊鏈中數據的安全性與完整性。在比特幣系統中,主要使用了兩個密碼學哈希函數SHA256和RIPEMD160。RIPEMD160主要用于生成比特幣地址,而在區塊和區塊鏈的定義和構造中主要使用的SHA256。
(2)P2P網絡技術
區塊鏈系統建立在IP通信協議和分布式網絡的基礎上,采用P2P網絡技術構建節點網絡。所謂P2P網絡(peer-to-peer network,對等網絡)是一種在對等者(peer)之間分配任務和工作負載的分布式應用架構,是對等計算模型在應用層形成的一種組網或網絡形式[4]。在P2P網絡中所有的節點具有同等的地位,不存在任何特殊化的中心節點和層級結構,每個節點均會承擔網絡路由、驗證數據區塊等功能,服務分散在各個節點上進行,每個節點都既是服務的請求者也是服務的提供者。P2P網絡技術的應用是區塊鏈實現去中心化非常重要的一環,正是由于P2P網絡中沒有中心節點和層級結構,使得其具有抗攻擊、高容錯的優勢,個別節點宕機或者遭受攻擊不會對整個區塊鏈網絡產生根本性的影響。
(3)共識機制
區塊鏈本質上是基于互聯網的去中心化的分布式記賬系統。在沒有中心控制保證節點誠實記賬以及記賬數據一致性的情況下,在互相沒有信任基礎的結點之間就交易數據的合法性等達成共識就成為了區塊鏈系統首要解決的問題。目前區塊鏈的共識機制主要包括工作量證明(Proof of Work, PoW)、權益證明(Proof of Stake, PoS)、股份授權證明(Delegated Proof of Stake,DPoS)和分布式一致性算法等,這里主要介紹工作量證明和權益證明兩種共識機制。
工作量證明是比特幣系統所采用的共識機制。所謂工作指各個節點通過算力競爭尋找一個符合特定要求的區塊哈希值,而相關區塊哈希值難于計算卻容易驗證。如果某個結點找一個適合的哈希值并通過驗證,那么就證明它確實經過了大量的計算,這就是工作量證明,通過工作量證明可以取得區塊的記賬權并獲得相應的系統幣值獎勵和交易費用。工作量證明具有完全去中心化、結點可以自由進出的優點,但也存在算力資源浪費巨大、達成共識時間周期過長的缺陷。針對以上問題權益證明進行了改進,權益證明是一種要求節點通過提供擁有一定數量的代幣證明來競爭區塊鏈記賬權的分布式共識機制。但如果單純依靠代幣數量來決定記賬權的歸屬必然使富有者勝出,從而導致記賬權的中心化、降低共識的公正性,因此不同的PoS機制在權益證明的基礎上,采用不同方式來增加記賬權的隨機性來避免中心化。
(4)數字時間戳
數字時間戳為基于區塊鏈的應用提供了一個時間維度,使得數據記錄更容易核查、追溯,同時也提供了交易記錄的存在性證明,從而保證了數據的不可篡改和不可偽造性。數字時間戳技術本身并不復雜,所謂時間戳是指從格林威治時間1970年01月01日00時00分00秒起至現在的總秒數,通常用一個字符序列表示,唯一地標識某一刻的時間。數字貨幣是區塊鏈的典型應用,與傳統貨幣是物理實體、具有客觀唯一性不同,數字貨幣是虛擬的、不可見的。在不借助任何第三方中介或者權威機構的情況下能否解決雙重支付問題是數字貨幣生死攸關的問題。所謂雙重支付又稱為“雙花”,是指利用數字貨幣的虛擬屬性用“同一筆錢”完成兩次或者多次支付。區塊鏈技術通過加蓋數字時間戳、加上驗證數字貨幣是否滿足UTXO(未花費交易)和數字簽名,有效解決了雙重支付的問題。
(5)非對稱密鑰技術
在區塊鏈系統中,使用非對稱密鑰技術來對網絡中傳遞的消息進行加密和數字簽名,以確保消息的秘密性和實現交易雙方的不可抵賴性。與傳統加密算法加解密密鑰一致不同,非對稱密鑰技術是利用特定的數學函數生成一對數學上相關的密鑰,使用其中一個密鑰進行加密的信息,只有使用另一個密鑰才能進行解密。這對密鑰中,對外公開的密鑰叫作公鑰,不公開的密鑰就叫作私鑰。發送方使用接收方的公鑰對傳遞的信息進行加密以保證秘密性,因為只有接受方的私鑰能夠解密;發送方也可以使用私鑰對發送的信息進行簽名,以讓接受方相信信息是自己發出的,因為只有利用發送方的公鑰才能解密,別人不知道私鑰無法偽造,同時發送方也無法抵賴否認自己發送相應的信息。在比特幣系統中,使用的非對稱密鑰技術是橢圓曲線加密算法。
4 小結
深入理解區塊鏈技術是開展和推廣區塊鏈應用的基礎,本文通過深入分析區塊鏈技術的基本概念、主要特性和關鍵技術與機制,認為區塊鏈本身并不是一種新的技術,而是一種創新思想的體現,它綜合運用密碼學算法和計算機網絡技術構建的一種具備新型信任機制的基礎架構,它具有去中心化、開放透明性、安全可靠性和準匿名性等主要特性,而這些特性正是其顛覆性價值的根本所在。
參考文獻:
[1] 區塊鏈[EB/OL]. https://baike.baidu.com/item/區塊鏈/13465666, 2018-10-15.
[2] Blockchain[EB/OL].http://en.wikipedia.org/wiki/Blockchain_(database), 2018-10-15.
[3] 巴比特. 區塊鏈是什么[EB/OL]. www.8btc.com/what-is-blockchain.
[4] 鄒均,張海寧,唐屹,等.區塊鏈技術指南[M].北京:機械工業出版社,2016.