周文剛,馮貴蘭
(中國民航飛行學(xué)院,四川廣漢,618307)
區(qū)塊鏈技術(shù)起源于日本學(xué)者中本聰于2008年所發(fā)表的論文《比特幣:一種P2P電子現(xiàn)金系統(tǒng)》[1],目前在業(yè)界尚沒有統(tǒng)一的區(qū)塊鏈定義,但普遍認(rèn)為,區(qū)塊鏈?zhǔn)且环N將數(shù)據(jù)區(qū)塊以特定鏈條的形式構(gòu)成相關(guān)數(shù)據(jù)結(jié)構(gòu)。而廣義的區(qū)塊鏈技術(shù)則集成更多新興技術(shù),可通過使用加密鏈?zhǔn)浇Y(jié)構(gòu)來確認(rèn)與存儲數(shù)據(jù);使用分布式節(jié)點(diǎn)共識算法來產(chǎn)生與更新相關(guān)數(shù)據(jù);使用智能合約技術(shù)來預(yù)設(shè)操作條件,以自動執(zhí)行相關(guān)腳本代碼操作數(shù)據(jù)。
目前,人們最熟悉的應(yīng)用場景是近年來比特幣在全球范圍內(nèi)的快速發(fā)展,此外,政府機(jī)構(gòu)、金融部門、高科技企業(yè)以及風(fēng)投資本等也對這一新興技術(shù)投以廣泛的關(guān)注,2016年1月,英國政府發(fā)布區(qū)塊鏈專題研究報告[2],大力推進(jìn)區(qū)塊鏈技術(shù)在金融和政務(wù)中的應(yīng)用;中國人民銀行也召開數(shù)字貨幣研討會討論利用區(qū)塊鏈技術(shù)發(fā)行虛擬貨幣的可行性,在風(fēng)頭資本端,也有高達(dá)數(shù)十億美元的資金涌入這一領(lǐng)域,初創(chuàng)公司R3CEV推出的BAAS(Blockchain as a service)服務(wù),已吸引花旗、匯豐、高盛、摩根大通、摩根斯坦利等多家大型銀行集團(tuán)的加入,力圖制定銀行業(yè)的區(qū)塊鏈行業(yè)標(biāo)準(zhǔn)[3]。與此同時,學(xué)術(shù)界也積極探索區(qū)塊鏈技術(shù)特征并對區(qū)塊鏈技術(shù)在各領(lǐng)域的廣泛應(yīng)用提供了重要支撐。
區(qū)塊鏈?zhǔn)怯删W(wǎng)絡(luò)中各區(qū)塊通過有序方式鏈接起來而形成的一種數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)區(qū)塊是相關(guān)信息和特點(diǎn)記錄的集合,是構(gòu)成相關(guān)區(qū)塊鏈的基本數(shù)據(jù)單元。通常地,每個數(shù)據(jù)區(qū)塊由包含區(qū)塊頭(Header)和區(qū)塊體(Body)的兩個部分所組成,其中,區(qū)塊頭版本號、當(dāng)前區(qū)塊哈希值、時間戳等相關(guān)信息被封裝于區(qū)塊頭內(nèi)部[4],同時,區(qū)塊頭還記錄前一區(qū)塊的地址以鏈接到前一區(qū)塊,為整個區(qū)塊鏈的完整性提供支持,如圖1所示。哈希算法通過數(shù)學(xué)計算可以將大小各不相同的數(shù)據(jù)換算生成固定長度的字符串,并且,這是一個單項函數(shù),即很難通過計算后的哈希散列值反推出原始數(shù)據(jù),這一特點(diǎn)對區(qū)塊鏈技術(shù)很重要。Markle樹就是一基于哈希方法的數(shù)據(jù)結(jié)構(gòu),所生成的樹中的每一個非葉子節(jié)點(diǎn)都是節(jié)點(diǎn)自身所包含的葉子節(jié)點(diǎn)的哈希散列值[4],區(qū)塊鏈網(wǎng)絡(luò)中所有記錄節(jié)點(diǎn)再利用Markle樹的哈希過程生成唯一的Markle根并存儲于區(qū)塊頭中。區(qū)塊體則主要記錄當(dāng)前區(qū)塊的相關(guān)交易數(shù)據(jù)以及整個網(wǎng)絡(luò)中所更新的數(shù)據(jù)信息。各數(shù)據(jù)區(qū)塊依據(jù)區(qū)塊頭的相關(guān)信息依次相連形成鏈?zhǔn)浇Y(jié)構(gòu)。
圖1 區(qū)塊結(jié)構(gòu)
組網(wǎng)方式:區(qū)塊鏈系統(tǒng)利用P2P方式來組織網(wǎng)絡(luò)節(jié)點(diǎn),形成一個去中心化的P2P點(diǎn)對點(diǎn)網(wǎng)絡(luò),由于整個網(wǎng)絡(luò)系統(tǒng)中沒有任何中心化的管理機(jī)構(gòu)和特殊節(jié)點(diǎn),整個網(wǎng)絡(luò)中每個節(jié)點(diǎn)的地位對等且以相對扁平化的拓?fù)浞绞交ヂ?lián)互通,可同時充當(dāng)客戶端和服務(wù)器端。同時,在整個區(qū)塊鏈系統(tǒng)中,每個數(shù)據(jù)節(jié)點(diǎn)都存儲了區(qū)塊鏈的全部數(shù)據(jù)信息,在這種全網(wǎng)節(jié)點(diǎn)式數(shù)據(jù)架構(gòu)下,每個節(jié)點(diǎn)可以不依賴于其他節(jié)點(diǎn)獨(dú)立完成數(shù)據(jù)的查詢與更新,另外,由于數(shù)據(jù)有多個備份,個別節(jié)點(diǎn)的加入或離開不會影響到整個區(qū)塊鏈網(wǎng)絡(luò)運(yùn)行的穩(wěn)定性,增強(qiáng)了網(wǎng)絡(luò)的魯棒性和健壯性,也使得數(shù)據(jù)信息被惡意篡改的可能性更小,保證了網(wǎng)絡(luò)數(shù)據(jù)的前后一致性。
非對稱加密:由于P2P網(wǎng)絡(luò)沒有中心化的硬件或權(quán)威機(jī)構(gòu),為解決網(wǎng)絡(luò)中各節(jié)點(diǎn)信息的相互信任問題,區(qū)塊鏈系統(tǒng)采用非對稱加密算法以滿足網(wǎng)絡(luò)安全性和所有權(quán)驗證的實際需求。非對稱加密通常需要兩個密鑰:公開密鑰和私有密鑰[5]。在其加密和解密過程中,首先用其中一個密鑰(公鑰或私鑰)進(jìn)行數(shù)據(jù)加密后,只有與之相對應(yīng)的另一個密鑰(私鑰或公鑰)才能進(jìn)行數(shù)據(jù)解密操作,其次公鑰可以向其他方公開,而私鑰則只有操作方自己知曉。相比于對稱加密技術(shù),其安全性更好,常見的非對稱加密算法有 :RSA,Elgmal,D-H,Rabin,ECC等。
區(qū)塊鏈中各數(shù)據(jù)節(jié)點(diǎn)都有各自特定的公鑰和私鑰,其中公鑰公開給全網(wǎng)用戶,私鑰則由用戶自己保存。特定信息被用戶用私鑰加密后,其他節(jié)點(diǎn)用戶可用對應(yīng)的公鑰解密信息,同時,私鑰用戶加密時可在數(shù)據(jù)尾部加注數(shù)字簽名信息,其他節(jié)點(diǎn)用戶在用公鑰解密后可通過相關(guān)簽名信息驗證數(shù)據(jù)的合法性和真實性。
考慮區(qū)塊鏈協(xié)議的訪問過程,如果用符號對(,)S∏表示區(qū)塊鏈協(xié)議,其中表示狀態(tài)算法,輸入特征值k并維持局部狀態(tài)量state.算法 S ( k, s tate)輸出記錄的有序序列我們稱S( k, s t ate)為一個參與者的記錄鏈,且其特征值為k,局部狀態(tài)量為state。算法通過封裝有效語義值V來實現(xiàn)特征參數(shù)化,以表示,旨在達(dá)到原區(qū)塊鏈設(shè)計所想要實現(xiàn)的目標(biāo)。
定義1:假設(shè)Z為一次執(zhí)行環(huán)境,A為某一消息傳播者,參與方(1,2,......,)n,執(zhí)行過程在模型時間步長的回合中進(jìn)行。如果在回合r,參與方在執(zhí)行環(huán)境Z接收一條消息(記錄),然后,它可以執(zhí)行相關(guān)操作,并向其他參與方廣播信息,并更新其局部狀態(tài)量是參與方i的本地狀態(tài)集。采用表示一個聯(lián)合所有各方意見的隨機(jī)變量,顯然,這一聯(lián)合視圖能決定區(qū)塊鏈執(zhí)行過程。
區(qū)塊鏈這一特殊的數(shù)據(jù)組成形式,使相關(guān)區(qū)塊鏈技術(shù)主要有以下幾個特點(diǎn)[6]:去中心化,透明公開性,腳本智能自動執(zhí)行,可追溯性。
去中心化主要體現(xiàn)在整個網(wǎng)絡(luò)中沒有強(qiáng)制性的特定控制中心,網(wǎng)絡(luò)中所有節(jié)點(diǎn)具有同樣的義務(wù)和權(quán)利,而全網(wǎng)數(shù)據(jù)在多個節(jié)點(diǎn)互為備份,互為補(bǔ)充,互為監(jiān)督。這樣,如果某個節(jié)點(diǎn)想進(jìn)行篡改數(shù)據(jù)的單方面操作,其成本將非常高,也幾乎不太可能同時修改所有節(jié)點(diǎn)的備份數(shù)據(jù)。這樣,存儲數(shù)據(jù)的安全可靠性有了較高的保障,另一方面,由于其高度分布式自治結(jié)構(gòu),任意網(wǎng)絡(luò)節(jié)點(diǎn)的異?;驌p壞不會影響到整個區(qū)塊鏈,保證了整個數(shù)據(jù)系統(tǒng)具有較高的魯棒性。
透明公開性主要體現(xiàn)在整個區(qū)塊鏈系統(tǒng)的運(yùn)行規(guī)則透明公開,任意數(shù)據(jù)的操縱、更新等也對所有節(jié)點(diǎn)透明公開,其數(shù)據(jù)為全網(wǎng)所有節(jié)點(diǎn)所共享,并共同維護(hù)這一特定組織網(wǎng)絡(luò)。任意節(jié)點(diǎn)之間很難互相欺騙,從而保證了各網(wǎng)絡(luò)節(jié)點(diǎn)間較高的信任忠誠度,極大降低了整體信用成本。
腳本智能自動執(zhí)行主要是指區(qū)塊鏈技術(shù)能夠為用戶提供方便靈活的腳本代碼系統(tǒng),用戶可以加入一系列的通過腳本實現(xiàn)的智能合約,在合約中設(shè)置一定的前置條件,區(qū)塊鏈系統(tǒng)自動判斷執(zhí)行的前置條件,當(dāng)所有條件都達(dá)到設(shè)定值時,區(qū)塊鏈系統(tǒng)能夠在沒有第三方監(jiān)督的情況下,自動強(qiáng)制執(zhí)行預(yù)先設(shè)定好的合約條款,能夠有效保障合約的正常執(zhí)行,降低了合約執(zhí)行的人力、物力成本。
可追溯性主要體現(xiàn)在區(qū)塊鏈中的所有節(jié)點(diǎn)在區(qū)塊頭中有數(shù)據(jù)區(qū)塊的時間記錄信息:包括區(qū)塊寫入與交易時間,同時,交易的完整傳遞路徑也能被記錄和追溯,不易被篡改,這一特性也為區(qū)塊鏈技術(shù)增加了時間維度,為數(shù)據(jù)的可追溯性提供了重要支持。
區(qū)塊鏈技術(shù)作為一種新的數(shù)據(jù)庫技術(shù),因其公開透明,去中心化,可編程,可信度高等特點(diǎn),正受到越來越多的關(guān)注,產(chǎn)業(yè)界最近幾年對區(qū)塊鏈技術(shù)的重視也在不斷提高。當(dāng)然,我們也應(yīng)看到,基于區(qū)塊鏈技術(shù)的實際應(yīng)用還比較少,其應(yīng)用范圍還比較窄,目前在全球范圍內(nèi)最成熟的應(yīng)用還是比特幣系統(tǒng),將區(qū)塊鏈技術(shù)從金融交易領(lǐng)域應(yīng)用到其他領(lǐng)域,仍然有一定的行業(yè)壁壘和相對不確定性,還需要相關(guān)產(chǎn)業(yè)與研究人員不斷努力,積累應(yīng)用經(jīng)驗,推動區(qū)塊鏈技術(shù)的持續(xù)發(fā)展。