韓 爽, 蒲寶明, 李順喜, 李相澤, 張笑東, 王 帥
1(中國科學院大學,北京 100049)
2(中國科學院 沈陽計算技術研究所,沈陽 110168)
3(東北大學 計算機科學與工程學院,沈陽 110819)
隨著社會的進步,科學技術的飛速發展,互聯網給人們的生活帶來更多的便利. 在人們的生活中,數字資產得到了很大的發展[1]. 比如商家為了促進消費,向顧客發放代金券. 隨著網絡的發展,微信等各種電子社交媒體越來越普及,電子代金券越來越受歡迎. 電子代金券. 網上購票等等,這些都屬于數字資產. 現有的數字資產交易技術,把數據信息集中存儲在一個中央數據庫,交易過程由一個“可信的”第三方機構完成,很容易出現篡改交易信息等不安全事件. 相比于實體商品,數據產品具備特殊的數據特性,數據產品的仿制無差異性,在效用上也沒有不同[2],更容易出現偽造的現象. 因此營造安全、可靠的數字資產交易環境就顯得尤為重要.
2016年初,標題為《中國人民銀行數字貨幣研討會在京召開》[3]的新聞在中國人民銀行官方網站上發表,該條新聞推動了區塊鏈技術在國內受到政府、金融機構、企業等各行各業的高度重視. 狹義的區塊鏈指是去中心化系統各節點共享的數據賬本[4]. 該數據賬本由系統中的各節點共同創建與維護. 基于區塊鏈技術建立的數據庫系統保存了所有交易記錄的數據,該數據分布存儲、公開透明,具有不可篡改性.
本文基于區塊鏈技術去中心、難篡改、可追溯等特征,提出一種新型的數字資產安全交易方法,不需要任何中間信任機構,解決傳統數字交易技術中的安全隱患.
傳統上,由于用戶之間的不信任性,用戶間的數字資產交易需要通過一個第三方中心平臺來完成,如圖1所示. 用戶將數據上傳到交易中心,由交易中心掌握所有的數據信息. 用戶對資產的查詢和轉移皆由交易中心完成. 積分為實際價值的數字資產[5],以積分交易系統為例,闡述傳統數字資產交易方式的弊端.

圖1 傳統數字資產交易方式
1)傳統積分交易系統的數據庫一般采用Oracle等關系型數據庫該數據庫系統盡管當遇到計算機系統故障,如網絡故障等原因造成數據丟失,可以使用恢復技術保證數據的完整性,但當遇到黑客惡意攻擊,篡改數據內容,傳統數據庫系統就無能為力了.
2)傳統數字資產交易方法中,保存數據只進行簡單的數據加密,交易傳輸過程沒有簽名驗證機制保障數據傳輸過程的安全性.
傳統數字資產交易系統由一個看似“可信”的中心管理機構管理交易過程,不能忽略有管理人員的由于疏忽或者故意做出威脅用戶利益的行為. 用戶是否遭受損失主要依靠交易中心的誠信程度.
鑒于傳統數字資產交易存在的以上弊端,本篇論文提出基于區塊鏈技術的新型數字資產交易方法.
區塊鏈來源于比特幣(Bitcoin),是比特幣的底層核心技術. 2008 年,隨著論文《比特幣: 一個P2P電子現金系統》[6]的發表,區塊鏈技術因其去中心化、不易篡改和驗證節點共同維護等優勢逐漸受到人們的重視,區塊鏈技術并不是一種單一的技術,而是由加密算法、P2P網絡、共識算法等多種技術巧妙地整合形成的一種新的數據記錄、存儲與呈現的方式[7]. 區塊鏈正在成為繼大型機、人電腦、互聯網和移動/社交網絡后的第五大顛覆性計算機范式[8],很可能在全球范圍引起一場新的技術革新和產業變革.
區塊鏈具備去中心化、可靠數據庫、集體維護、安全可靠等特征.
1) 去中心化
采用分布式存儲和集體維護,區塊鏈系統中不需要存在一個“信任”的第三方機構,系統內的節點具有相等的權利和義務,并且交易信息存儲由整個系統中所有驗證節點集體維護.
2) 可靠數據庫
集體維護區塊鏈系統中的驗證節點都擁有一份完整的數據賬本,即使某個節點被侵害,整個系統并不會因此而崩潰.
3) 安全可靠
區塊鏈技術采用加密技術對交易數據進行簽名,保證信息不被偽造. 例如,比特幣系統的區塊鏈技術使用的橢圓曲線secp256k1技術對交易進行簽名驗證,使得交易過程不能被偽造.
區塊鏈技術采用哈希函數保證交易數據不被篡改,哈希函數也叫散列函數,即將任意長度的消息壓 縮到某一固定長度,該輸出就是散列值. 不同的輸入可能會散列成相同的輸出,而不可能從散列值來唯一地確定輸入值. 哈希函數的這種特性特別適合用于存儲區塊鏈數據.
最后區塊鏈技術采用權益證明等共識算法來記錄信息,抵御破壞者的攻擊. 系統內參與記賬的節點數量越多,系統的安全性越高.因此區塊鏈技術具有極高的安全性.
提出一個基于區塊鏈技術的數字資產安全交易方法. 該交易方法去中心管理機構,由系統中具有記賬功能的節點共同維護; 采用加密技術及記賬節點之間的共識算法,來確保數字資產及交易過程的安全性; 利用鏈式的數據存儲方式,可以實現對用戶的每一筆交易進行追溯. 總體架構圖如圖2所示.

圖2 總體架構結構圖
該數字資產安全交易方法的總體架構,包括: 加密模塊、共識模塊、功能模塊、區塊鏈管理模塊. 其中區塊鏈管理模塊主要包括: p2p網絡,區塊生成過程以及由共識模塊提供的驗證節點之間達成共識的方法.
區塊鏈的數據數據不同于以往關系型數據庫的鍵值對存儲形式,采用區塊鏈式存儲. 每個區塊分塊頭(header)和塊體(body). 每個區塊都包含上一區塊的哈希值和本區塊的哈希值,區塊之間的鏈接通過哈希值完成. 本文設計的數據區塊頭結構如表1所示.
區塊體主要包含: 交易的數量和交易的詳情. 詳細結構如表2所示.
每個區塊中包含前塊的哈希值以及本區塊的哈希值,區塊之間的鏈接通過這2個哈希值來完成. 本區塊可以通過上一區塊的哈希值鏈接到上一區塊,以此類推,即可建立一條完整的數據鏈條,如圖3所示.

表1 區塊頭結構

表2 區塊體結構

圖3 區塊鏈鏈接結構
利用此結構可以防止交易信息被惡意篡改,我們假設第k個區塊數據被篡改,由于第k+1個區塊存儲了第k個區塊的哈希值,與計算出來的第k個區塊數據的哈希值相比較,即可發現異常,馬上判斷出第k個區塊的交易信息已被篡改.
加密技術主要應用在數字資產交易過程中,對交易信息的簽名進行加密處理. 傳統數字資產交易方法通常采用對稱加密技術,對稱加密技術要求加密和解密過程使用相同的密鑰,該加密技術基于雙方共同保證密鑰的安全而實現的. 而本方法采用非對加密技術,加密和解密過程中使用不同的密鑰,適用于互不信任的雙方安全的完成交易過程. 本文提出的數字資產安全交易方法中,采用雙SHA256[9]哈希函數與RSA加密算法結合使用,驗證交易信息真偽性,防篡改.該方法中借鑒比特幣區塊鏈系統的雙SHA256哈希函數,將
原始數據經過兩次SHA256哈希運算后轉換為長度為256位(32字節)的二進制數字. 哈希算法因其不可逆性,適用于驗證機制. 而RSA加密算法屬于非對稱加密技術,非對稱加密技術相比與對稱加密技術,加密與解密過程用的是不同的密鑰,分別為公開密鑰和私有密鑰. 公開密鑰和私有密鑰相互配合,如果用戶A使用它的公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密; 如果用私有密鑰對數據進行加密,那么只有用其對應的公開密鑰才能解密. 公開密鑰可以向其他人公開,私有密鑰則不公開,并且私有密鑰無法通過公有密鑰推算出來,保證傳輸數據的安全性和完整性.RSA加密算法生成公私鑰流程如圖3所示.

圖4 RSA生成公私鑰流程圖
在實際應用中,交易發送者A發起一筆新的交易,例如轉一張價值100元的代券給用戶B,此時調用SHA256哈希算法對報文進行簽名,得到Hash后的一段摘要. RSA非對稱加密算法生成一對公有密鑰和私有密鑰. 使用公有密鑰對簽名加密,發送方將RSA加密后的簽名、報文一起發送給接收方. 接收方使用發送方的公鑰對簽名解密,還原出一個哈希值. 查看該哈希值與報文經過SHA256哈希算法處理得到的結果是否一致,驗證消息是否來自發送者以及信息是否被篡改. 具體流程如圖4所示.
在本方法中,各節點共同維護一個賬本,節點之 間達成一致的機制即共識機制,共識機制主要應用在上文總體架構圖2中的驗證節點記錄交易信息達成一致的共識過程. 區塊鏈技術中常用的共識機制目前主要有: Pow(工作量證明)、Pos(權益證明)、DPos(股份授權證明)、分布式一致算法等. 鑒于RAFT分布式一致算法高效性、簡潔性的特點,本文采用RAFT共識算法. 但RAFT共識算法屬于非拜占庭算法,沒有考慮存在拜占庭節點惡意操作,為適用數字資產交易應用,本文借鑒拜占庭共識算法的思想,在RAFT算法中添加消息簽名驗證機制,使用基于改進的RAFT共識算法在數字資產安全交易方法中.

圖4 交易信息加密與驗證過程
改進的RAFT共識算法過程如圖5所示. 驗證節點有三種狀態: leader(領導)、follower(跟隨者)、candidate(候選人).

圖5 共識算法
算法描述如下:


本文所提出的共識算法要求最少有4個節點,因此本實驗中有4個驗證節點. 為驗證共識算法可以很好的適用在數字資產安全交易業務中,采用人工模擬了leader節點宕機,驗證該算法此時能否引發自動選舉. 實驗步驟如下:
(1)模擬leader節點宕機;
(2)記錄從leader宕機到選舉完成所用時間;
(3)重復上面步驟執行50次.
從圖6可知,當leader出現故障到選舉的成功率為100%,平均執行時間為14 s. 該共識算法在出現宕機等故障時可以自動選舉新的leader節點,完成共識.

圖6 Leader宕機到選舉完成所用時間
本方法利用區塊鏈技術,將交易數據記錄到區塊鏈中,確保交易數據的安全性和有效性. 采用如表3,評估系統安全有效性.

表3 安全有效性評估
圖7為用戶系統運行圖.

圖7 用戶系統運行圖
本文設計了一種基于區塊鏈技術設計一種新型的數字資產安全交易方法,該方法的創新點主要體現在:采用分布式數據存儲方式,由系統內的驗證節點通過共識算法完成數據存儲,且采用雙SHA256哈希函數與RSA加密算法結合方式處理交易信息. 確保交易信息真偽性,防篡改. 實現安全可靠的交易過程.同時對該方法中涉及到的關鍵技術和核心算法進行分析和驗證. 實驗表明,本文所提的方法不僅適用于代金券等形式的數字資產交易,也適用于藝術品追蹤等其他應用場景.
1夏新岳. 基于區塊鏈的股權資產購買和轉贈設計與實現[碩士學位論文]. 呼和浩特: 內蒙古大學,2016.
2楊茂江. 基于密碼和區塊鏈技術的數據交易平臺設計. 信息通信技術,2016,(4): 24-31.
3中國人民銀行. 中國人民銀行數字貨幣研討會在京召開. 金融電子化,2016,(2): 94.
4袁勇,王飛躍. 區塊鏈技術發展現狀與展望. 自動化學報,2016,42(4): 481-494.
5陳龍強. 區塊鏈積分應用的價值傳遞. 金融電子化,2016,(3): 64-65.
6Nakamoto S. Bitcoin: A peer-to-peer electronic cash system.Consulted,2008.
7林小馳,胡葉倩雯. 關于區塊鏈技術的研究綜述. 金融市場研究,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.