韓 爽, 蒲寶明, 李順喜, 李相澤, 張笑東, 王 帥
1(中國科學(xué)院大學(xué),北京 100049)
2(中國科學(xué)院 沈陽計算技術(shù)研究所,沈陽 110168)
3(東北大學(xué) 計算機科學(xué)與工程學(xué)院,沈陽 110819)
隨著社會的進步,科學(xué)技術(shù)的飛速發(fā)展,互聯(lián)網(wǎng)給人們的生活帶來更多的便利. 在人們的生活中,數(shù)字資產(chǎn)得到了很大的發(fā)展[1]. 比如商家為了促進消費,向顧客發(fā)放代金券. 隨著網(wǎng)絡(luò)的發(fā)展,微信等各種電子社交媒體越來越普及,電子代金券越來越受歡迎. 電子代金券. 網(wǎng)上購票等等,這些都屬于數(shù)字資產(chǎn). 現(xiàn)有的數(shù)字資產(chǎn)交易技術(shù),把數(shù)據(jù)信息集中存儲在一個中央數(shù)據(jù)庫,交易過程由一個“可信的”第三方機構(gòu)完成,很容易出現(xiàn)篡改交易信息等不安全事件. 相比于實體商品,數(shù)據(jù)產(chǎn)品具備特殊的數(shù)據(jù)特性,數(shù)據(jù)產(chǎn)品的仿制無差異性,在效用上也沒有不同[2],更容易出現(xiàn)偽造的現(xiàn)象. 因此營造安全、可靠的數(shù)字資產(chǎn)交易環(huán)境就顯得尤為重要.
2016年初,標題為《中國人民銀行數(shù)字貨幣研討會在京召開》[3]的新聞在中國人民銀行官方網(wǎng)站上發(fā)表,該條新聞推動了區(qū)塊鏈技術(shù)在國內(nèi)受到政府、金融機構(gòu)、企業(yè)等各行各業(yè)的高度重視. 狹義的區(qū)塊鏈指是去中心化系統(tǒng)各節(jié)點共享的數(shù)據(jù)賬本[4]. 該數(shù)據(jù)賬本由系統(tǒng)中的各節(jié)點共同創(chuàng)建與維護. 基于區(qū)塊鏈技術(shù)建立的數(shù)據(jù)庫系統(tǒng)保存了所有交易記錄的數(shù)據(jù),該數(shù)據(jù)分布存儲、公開透明,具有不可篡改性.
本文基于區(qū)塊鏈技術(shù)去中心、難篡改、可追溯等特征,提出一種新型的數(shù)字資產(chǎn)安全交易方法,不需要任何中間信任機構(gòu),解決傳統(tǒng)數(shù)字交易技術(shù)中的安全隱患.
傳統(tǒng)上,由于用戶之間的不信任性,用戶間的數(shù)字資產(chǎn)交易需要通過一個第三方中心平臺來完成,如圖1所示. 用戶將數(shù)據(jù)上傳到交易中心,由交易中心掌握所有的數(shù)據(jù)信息. 用戶對資產(chǎn)的查詢和轉(zhuǎn)移皆由交易中心完成. 積分為實際價值的數(shù)字資產(chǎn)[5],以積分交易系統(tǒng)為例,闡述傳統(tǒng)數(shù)字資產(chǎn)交易方式的弊端.
圖1 傳統(tǒng)數(shù)字資產(chǎn)交易方式
1)傳統(tǒng)積分交易系統(tǒng)的數(shù)據(jù)庫一般采用Oracle等關(guān)系型數(shù)據(jù)庫該數(shù)據(jù)庫系統(tǒng)盡管當遇到計算機系統(tǒng)故障,如網(wǎng)絡(luò)故障等原因造成數(shù)據(jù)丟失,可以使用恢復(fù)技術(shù)保證數(shù)據(jù)的完整性,但當遇到黑客惡意攻擊,篡改數(shù)據(jù)內(nèi)容,傳統(tǒng)數(shù)據(jù)庫系統(tǒng)就無能為力了.
2)傳統(tǒng)數(shù)字資產(chǎn)交易方法中,保存數(shù)據(jù)只進行簡單的數(shù)據(jù)加密,交易傳輸過程沒有簽名驗證機制保障數(shù)據(jù)傳輸過程的安全性.
傳統(tǒng)數(shù)字資產(chǎn)交易系統(tǒng)由一個看似“可信”的中心管理機構(gòu)管理交易過程,不能忽略有管理人員的由于疏忽或者故意做出威脅用戶利益的行為. 用戶是否遭受損失主要依靠交易中心的誠信程度.
鑒于傳統(tǒng)數(shù)字資產(chǎn)交易存在的以上弊端,本篇論文提出基于區(qū)塊鏈技術(shù)的新型數(shù)字資產(chǎn)交易方法.
區(qū)塊鏈來源于比特幣(Bitcoin),是比特幣的底層核心技術(shù). 2008 年,隨著論文《比特幣: 一個P2P電子現(xiàn)金系統(tǒng)》[6]的發(fā)表,區(qū)塊鏈技術(shù)因其去中心化、不易篡改和驗證節(jié)點共同維護等優(yōu)勢逐漸受到人們的重視,區(qū)塊鏈技術(shù)并不是一種單一的技術(shù),而是由加密算法、P2P網(wǎng)絡(luò)、共識算法等多種技術(shù)巧妙地整合形成的一種新的數(shù)據(jù)記錄、存儲與呈現(xiàn)的方式[7]. 區(qū)塊鏈正在成為繼大型機、人電腦、互聯(lián)網(wǎng)和移動/社交網(wǎng)絡(luò)后的第五大顛覆性計算機范式[8],很可能在全球范圍引起一場新的技術(shù)革新和產(chǎn)業(yè)變革.
區(qū)塊鏈具備去中心化、可靠數(shù)據(jù)庫、集體維護、安全可靠等特征.
1) 去中心化
采用分布式存儲和集體維護,區(qū)塊鏈系統(tǒng)中不需要存在一個“信任”的第三方機構(gòu),系統(tǒng)內(nèi)的節(jié)點具有相等的權(quán)利和義務(wù),并且交易信息存儲由整個系統(tǒng)中所有驗證節(jié)點集體維護.
2) 可靠數(shù)據(jù)庫
集體維護區(qū)塊鏈系統(tǒng)中的驗證節(jié)點都擁有一份完整的數(shù)據(jù)賬本,即使某個節(jié)點被侵害,整個系統(tǒng)并不會因此而崩潰.
3) 安全可靠
區(qū)塊鏈技術(shù)采用加密技術(shù)對交易數(shù)據(jù)進行簽名,保證信息不被偽造. 例如,比特幣系統(tǒng)的區(qū)塊鏈技術(shù)使用的橢圓曲線secp256k1技術(shù)對交易進行簽名驗證,使得交易過程不能被偽造.
區(qū)塊鏈技術(shù)采用哈希函數(shù)保證交易數(shù)據(jù)不被篡改,哈希函數(shù)也叫散列函數(shù),即將任意長度的消息壓 縮到某一固定長度,該輸出就是散列值. 不同的輸入可能會散列成相同的輸出,而不可能從散列值來唯一地確定輸入值. 哈希函數(shù)的這種特性特別適合用于存儲區(qū)塊鏈數(shù)據(jù).
最后區(qū)塊鏈技術(shù)采用權(quán)益證明等共識算法來記錄信息,抵御破壞者的攻擊. 系統(tǒng)內(nèi)參與記賬的節(jié)點數(shù)量越多,系統(tǒng)的安全性越高.因此區(qū)塊鏈技術(shù)具有極高的安全性.
提出一個基于區(qū)塊鏈技術(shù)的數(shù)字資產(chǎn)安全交易方法. 該交易方法去中心管理機構(gòu),由系統(tǒng)中具有記賬功能的節(jié)點共同維護; 采用加密技術(shù)及記賬節(jié)點之間的共識算法,來確保數(shù)字資產(chǎn)及交易過程的安全性; 利用鏈式的數(shù)據(jù)存儲方式,可以實現(xiàn)對用戶的每一筆交易進行追溯. 總體架構(gòu)圖如圖2所示.
圖2 總體架構(gòu)結(jié)構(gòu)圖
該數(shù)字資產(chǎn)安全交易方法的總體架構(gòu),包括: 加密模塊、共識模塊、功能模塊、區(qū)塊鏈管理模塊. 其中區(qū)塊鏈管理模塊主要包括: p2p網(wǎng)絡(luò),區(qū)塊生成過程以及由共識模塊提供的驗證節(jié)點之間達成共識的方法.
區(qū)塊鏈的數(shù)據(jù)數(shù)據(jù)不同于以往關(guān)系型數(shù)據(jù)庫的鍵值對存儲形式,采用區(qū)塊鏈式存儲. 每個區(qū)塊分塊頭(header)和塊體(body). 每個區(qū)塊都包含上一區(qū)塊的哈希值和本區(qū)塊的哈希值,區(qū)塊之間的鏈接通過哈希值完成. 本文設(shè)計的數(shù)據(jù)區(qū)塊頭結(jié)構(gòu)如表1所示.
區(qū)塊體主要包含: 交易的數(shù)量和交易的詳情. 詳細結(jié)構(gòu)如表2所示.
每個區(qū)塊中包含前塊的哈希值以及本區(qū)塊的哈希值,區(qū)塊之間的鏈接通過這2個哈希值來完成. 本區(qū)塊可以通過上一區(qū)塊的哈希值鏈接到上一區(qū)塊,以此類推,即可建立一條完整的數(shù)據(jù)鏈條,如圖3所示.
表1 區(qū)塊頭結(jié)構(gòu)
表2 區(qū)塊體結(jié)構(gòu)
圖3 區(qū)塊鏈鏈接結(jié)構(gòu)
利用此結(jié)構(gòu)可以防止交易信息被惡意篡改,我們假設(shè)第k個區(qū)塊數(shù)據(jù)被篡改,由于第k+1個區(qū)塊存儲了第k個區(qū)塊的哈希值,與計算出來的第k個區(qū)塊數(shù)據(jù)的哈希值相比較,即可發(fā)現(xiàn)異常,馬上判斷出第k個區(qū)塊的交易信息已被篡改.
加密技術(shù)主要應(yīng)用在數(shù)字資產(chǎn)交易過程中,對交易信息的簽名進行加密處理. 傳統(tǒng)數(shù)字資產(chǎn)交易方法通常采用對稱加密技術(shù),對稱加密技術(shù)要求加密和解密過程使用相同的密鑰,該加密技術(shù)基于雙方共同保證密鑰的安全而實現(xiàn)的. 而本方法采用非對加密技術(shù),加密和解密過程中使用不同的密鑰,適用于互不信任的雙方安全的完成交易過程. 本文提出的數(shù)字資產(chǎn)安全交易方法中,采用雙SHA256[9]哈希函數(shù)與RSA加密算法結(jié)合使用,驗證交易信息真?zhèn)涡?防篡改.該方法中借鑒比特幣區(qū)塊鏈系統(tǒng)的雙SHA256哈希函數(shù),將
原始數(shù)據(jù)經(jīng)過兩次SHA256哈希運算后轉(zhuǎn)換為長度為256位(32字節(jié))的二進制數(shù)字. 哈希算法因其不可逆性,適用于驗證機制. 而RSA加密算法屬于非對稱加密技術(shù),非對稱加密技術(shù)相比與對稱加密技術(shù),加密與解密過程用的是不同的密鑰,分別為公開密鑰和私有密鑰. 公開密鑰和私有密鑰相互配合,如果用戶A使用它的公開密鑰對數(shù)據(jù)進行加密,只有用對應(yīng)的私有密鑰才能解密; 如果用私有密鑰對數(shù)據(jù)進行加密,那么只有用其對應(yīng)的公開密鑰才能解密. 公開密鑰可以向其他人公開,私有密鑰則不公開,并且私有密鑰無法通過公有密鑰推算出來,保證傳輸數(shù)據(jù)的安全性和完整性.RSA加密算法生成公私鑰流程如圖3所示.
圖4 RSA生成公私鑰流程圖
在實際應(yīng)用中,交易發(fā)送者A發(fā)起一筆新的交易,例如轉(zhuǎn)一張價值100元的代券給用戶B,此時調(diào)用SHA256哈希算法對報文進行簽名,得到Hash后的一段摘要. RSA非對稱加密算法生成一對公有密鑰和私有密鑰. 使用公有密鑰對簽名加密,發(fā)送方將RSA加密后的簽名、報文一起發(fā)送給接收方. 接收方使用發(fā)送方的公鑰對簽名解密,還原出一個哈希值. 查看該哈希值與報文經(jīng)過SHA256哈希算法處理得到的結(jié)果是否一致,驗證消息是否來自發(fā)送者以及信息是否被篡改. 具體流程如圖4所示.
在本方法中,各節(jié)點共同維護一個賬本,節(jié)點之 間達成一致的機制即共識機制,共識機制主要應(yīng)用在上文總體架構(gòu)圖2中的驗證節(jié)點記錄交易信息達成一致的共識過程. 區(qū)塊鏈技術(shù)中常用的共識機制目前主要有: Pow(工作量證明)、Pos(權(quán)益證明)、DPos(股份授權(quán)證明)、分布式一致算法等. 鑒于RAFT分布式一致算法高效性、簡潔性的特點,本文采用RAFT共識算法. 但RAFT共識算法屬于非拜占庭算法,沒有考慮存在拜占庭節(jié)點惡意操作,為適用數(shù)字資產(chǎn)交易應(yīng)用,本文借鑒拜占庭共識算法的思想,在RAFT算法中添加消息簽名驗證機制,使用基于改進的RAFT共識算法在數(shù)字資產(chǎn)安全交易方法中.
圖4 交易信息加密與驗證過程
改進的RAFT共識算法過程如圖5所示. 驗證節(jié)點有三種狀態(tài): leader(領(lǐng)導(dǎo))、follower(跟隨者)、candidate(候選人).
圖5 共識算法
算法描述如下:
本文所提出的共識算法要求最少有4個節(jié)點,因此本實驗中有4個驗證節(jié)點. 為驗證共識算法可以很好的適用在數(shù)字資產(chǎn)安全交易業(yè)務(wù)中,采用人工模擬了leader節(jié)點宕機,驗證該算法此時能否引發(fā)自動選舉. 實驗步驟如下:
(1)模擬leader節(jié)點宕機;
(2)記錄從leader宕機到選舉完成所用時間;
(3)重復(fù)上面步驟執(zhí)行50次.
從圖6可知,當leader出現(xiàn)故障到選舉的成功率為100%,平均執(zhí)行時間為14 s. 該共識算法在出現(xiàn)宕機等故障時可以自動選舉新的leader節(jié)點,完成共識.
圖6 Leader宕機到選舉完成所用時間
本方法利用區(qū)塊鏈技術(shù),將交易數(shù)據(jù)記錄到區(qū)塊鏈中,確保交易數(shù)據(jù)的安全性和有效性. 采用如表3,評估系統(tǒng)安全有效性.
表3 安全有效性評估
圖7為用戶系統(tǒng)運行圖.
圖7 用戶系統(tǒng)運行圖
本文設(shè)計了一種基于區(qū)塊鏈技術(shù)設(shè)計一種新型的數(shù)字資產(chǎn)安全交易方法,該方法的創(chuàng)新點主要體現(xiàn)在:采用分布式數(shù)據(jù)存儲方式,由系統(tǒng)內(nèi)的驗證節(jié)點通過共識算法完成數(shù)據(jù)存儲,且采用雙SHA256哈希函數(shù)與RSA加密算法結(jié)合方式處理交易信息. 確保交易信息真?zhèn)涡?防篡改. 實現(xiàn)安全可靠的交易過程.同時對該方法中涉及到的關(guān)鍵技術(shù)和核心算法進行分析和驗證. 實驗表明,本文所提的方法不僅適用于代金券等形式的數(shù)字資產(chǎn)交易,也適用于藝術(shù)品追蹤等其他應(yīng)用場景.
1夏新岳. 基于區(qū)塊鏈的股權(quán)資產(chǎn)購買和轉(zhuǎn)贈設(shè)計與實現(xiàn)[碩士學(xué)位論文]. 呼和浩特: 內(nèi)蒙古大學(xué),2016.
2楊茂江. 基于密碼和區(qū)塊鏈技術(shù)的數(shù)據(jù)交易平臺設(shè)計. 信息通信技術(shù),2016,(4): 24-31.
3中國人民銀行. 中國人民銀行數(shù)字貨幣研討會在京召開. 金融電子化,2016,(2): 94.
4袁勇,王飛躍. 區(qū)塊鏈技術(shù)發(fā)展現(xiàn)狀與展望. 自動化學(xué)報,2016,42(4): 481-494.
5陳龍強. 區(qū)塊鏈積分應(yīng)用的價值傳遞. 金融電子化,2016,(3): 64-65.
6Nakamoto S. Bitcoin: A peer-to-peer electronic cash system.Consulted,2008.
7林小馳,胡葉倩雯. 關(guān)于區(qū)塊鏈技術(shù)的研究綜述. 金融市場研究,2016,(2): 97-109.
8Swan M. Blockchain: Blueprint for a New Economy. USA:O’Reilly Media,Inc.,2015.
9Courtois NT,Grajek M,Naik R. Optimizing SHA256 in bitcoin mining. Kotulski Z,Ksi??opolski B,Mazur K.Cryptography and Security Systems. Berlin Heidelberg:Springer,2014. 131-144.