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