周文剛,馮貴蘭
(中國民航飛行學院,四川廣漢,618307)
區塊鏈技術起源于日本學者中本聰于2008年所發表的論文《比特幣:一種P2P電子現金系統》[1],目前在業界尚沒有統一的區塊鏈定義,但普遍認為,區塊鏈是一種將數據區塊以特定鏈條的形式構成相關數據結構。而廣義的區塊鏈技術則集成更多新興技術,可通過使用加密鏈式結構來確認與存儲數據;使用分布式節點共識算法來產生與更新相關數據;使用智能合約技術來預設操作條件,以自動執行相關腳本代碼操作數據。
目前,人們最熟悉的應用場景是近年來比特幣在全球范圍內的快速發展,此外,政府機構、金融部門、高科技企業以及風投資本等也對這一新興技術投以廣泛的關注,2016年1月,英國政府發布區塊鏈專題研究報告[2],大力推進區塊鏈技術在金融和政務中的應用;中國人民銀行也召開數字貨幣研討會討論利用區塊鏈技術發行虛擬貨幣的可行性,在風頭資本端,也有高達數十億美元的資金涌入這一領域,初創公司R3CEV推出的BAAS(Blockchain as a service)服務,已吸引花旗、匯豐、高盛、摩根大通、摩根斯坦利等多家大型銀行集團的加入,力圖制定銀行業的區塊鏈行業標準[3]。與此同時,學術界也積極探索區塊鏈技術特征并對區塊鏈技術在各領域的廣泛應用提供了重要支撐。
區塊鏈是由網絡中各區塊通過有序方式鏈接起來而形成的一種數據結構,數據區塊是相關信息和特點記錄的集合,是構成相關區塊鏈的基本數據單元。通常地,每個數據區塊由包含區塊頭(Header)和區塊體(Body)的兩個部分所組成,其中,區塊頭版本號、當前區塊哈希值、時間戳等相關信息被封裝于區塊頭內部[4],同時,區塊頭還記錄前一區塊的地址以鏈接到前一區塊,為整個區塊鏈的完整性提供支持,如圖1所示。哈希算法通過數學計算可以將大小各不相同的數據換算生成固定長度的字符串,并且,這是一個單項函數,即很難通過計算后的哈希散列值反推出原始數據,這一特點對區塊鏈技術很重要。Markle樹就是一基于哈希方法的數據結構,所生成的樹中的每一個非葉子節點都是節點自身所包含的葉子節點的哈希散列值[4],區塊鏈網絡中所有記錄節點再利用Markle樹的哈希過程生成唯一的Markle根并存儲于區塊頭中。區塊體則主要記錄當前區塊的相關交易數據以及整個網絡中所更新的數據信息。各數據區塊依據區塊頭的相關信息依次相連形成鏈式結構。

圖1 區塊結構
組網方式:區塊鏈系統利用P2P方式來組織網絡節點,形成一個去中心化的P2P點對點網絡,由于整個網絡系統中沒有任何中心化的管理機構和特殊節點,整個網絡中每個節點的地位對等且以相對扁平化的拓撲方式互聯互通,可同時充當客戶端和服務器端。同時,在整個區塊鏈系統中,每個數據節點都存儲了區塊鏈的全部數據信息,在這種全網節點式數據架構下,每個節點可以不依賴于其他節點獨立完成數據的查詢與更新,另外,由于數據有多個備份,個別節點的加入或離開不會影響到整個區塊鏈網絡運行的穩定性,增強了網絡的魯棒性和健壯性,也使得數據信息被惡意篡改的可能性更小,保證了網絡數據的前后一致性。
非對稱加密:由于P2P網絡沒有中心化的硬件或權威機構,為解決網絡中各節點信息的相互信任問題,區塊鏈系統采用非對稱加密算法以滿足網絡安全性和所有權驗證的實際需求。非對稱加密通常需要兩個密鑰:公開密鑰和私有密鑰[5]。在其加密和解密過程中,首先用其中一個密鑰(公鑰或私鑰)進行數據加密后,只有與之相對應的另一個密鑰(私鑰或公鑰)才能進行數據解密操作,其次公鑰可以向其他方公開,而私鑰則只有操作方自己知曉。相比于對稱加密技術,其安全性更好,常見的非對稱加密算法有 :RSA,Elgmal,D-H,Rabin,ECC等。
區塊鏈中各數據節點都有各自特定的公鑰和私鑰,其中公鑰公開給全網用戶,私鑰則由用戶自己保存。特定信息被用戶用私鑰加密后,其他節點用戶可用對應的公鑰解密信息,同時,私鑰用戶加密時可在數據尾部加注數字簽名信息,其他節點用戶在用公鑰解密后可通過相關簽名信息驗證數據的合法性和真實性。
考慮區塊鏈協議的訪問過程,如果用符號對(,)S∏表示區塊鏈協議,其中表示狀態算法,輸入特征值k并維持局部狀態量state.算法 S ( k, s tate)輸出記錄的有序序列我們稱S( k, s t ate)為一個參與者的記錄鏈,且其特征值為k,局部狀態量為state。算法通過封裝有效語義值V來實現特征參數化,以表示,旨在達到原區塊鏈設計所想要實現的目標。
定義1:假設Z為一次執行環境,A為某一消息傳播者,參與方(1,2,......,)n,執行過程在模型時間步長的回合中進行。如果在回合r,參與方在執行環境Z接收一條消息(記錄),然后,它可以執行相關操作,并向其他參與方廣播信息,并更新其局部狀態量是參與方i的本地狀態集。采用表示一個聯合所有各方意見的隨機變量,顯然,這一聯合視圖能決定區塊鏈執行過程。



區塊鏈這一特殊的數據組成形式,使相關區塊鏈技術主要有以下幾個特點[6]:去中心化,透明公開性,腳本智能自動執行,可追溯性。
去中心化主要體現在整個網絡中沒有強制性的特定控制中心,網絡中所有節點具有同樣的義務和權利,而全網數據在多個節點互為備份,互為補充,互為監督。這樣,如果某個節點想進行篡改數據的單方面操作,其成本將非常高,也幾乎不太可能同時修改所有節點的備份數據。這樣,存儲數據的安全可靠性有了較高的保障,另一方面,由于其高度分布式自治結構,任意網絡節點的異常或損壞不會影響到整個區塊鏈,保證了整個數據系統具有較高的魯棒性。
透明公開性主要體現在整個區塊鏈系統的運行規則透明公開,任意數據的操縱、更新等也對所有節點透明公開,其數據為全網所有節點所共享,并共同維護這一特定組織網絡。任意節點之間很難互相欺騙,從而保證了各網絡節點間較高的信任忠誠度,極大降低了整體信用成本。
腳本智能自動執行主要是指區塊鏈技術能夠為用戶提供方便靈活的腳本代碼系統,用戶可以加入一系列的通過腳本實現的智能合約,在合約中設置一定的前置條件,區塊鏈系統自動判斷執行的前置條件,當所有條件都達到設定值時,區塊鏈系統能夠在沒有第三方監督的情況下,自動強制執行預先設定好的合約條款,能夠有效保障合約的正常執行,降低了合約執行的人力、物力成本。
可追溯性主要體現在區塊鏈中的所有節點在區塊頭中有數據區塊的時間記錄信息:包括區塊寫入與交易時間,同時,交易的完整傳遞路徑也能被記錄和追溯,不易被篡改,這一特性也為區塊鏈技術增加了時間維度,為數據的可追溯性提供了重要支持。
區塊鏈技術作為一種新的數據庫技術,因其公開透明,去中心化,可編程,可信度高等特點,正受到越來越多的關注,產業界最近幾年對區塊鏈技術的重視也在不斷提高。當然,我們也應看到,基于區塊鏈技術的實際應用還比較少,其應用范圍還比較窄,目前在全球范圍內最成熟的應用還是比特幣系統,將區塊鏈技術從金融交易領域應用到其他領域,仍然有一定的行業壁壘和相對不確定性,還需要相關產業與研究人員不斷努力,積累應用經驗,推動區塊鏈技術的持續發展。