本發(fā)明涉及通訊技術(shù)領(lǐng)域,特別涉及一種使用基于區(qū)塊鏈的數(shù)字貨幣的方法、系統(tǒng)及終端。
背景技術(shù):
在目前的比特幣系統(tǒng)里,比特幣地址是一套非對(duì)稱密鑰中的公鑰,這對(duì)密鑰通過橢圓算法生成。用戶賬戶的地址和私鑰都保存在比特幣錢包(即數(shù)字貨幣錢包)文件中,私鑰由比特幣客戶端軟件進(jìn)行加解密運(yùn)算。目前基于區(qū)塊鏈技術(shù)的數(shù)字貨幣錢包技術(shù)都是基于比特幣,可歸類為:網(wǎng)頁錢包、多重簽名錢包、桌面錢包、移動(dòng)端錢包。
由于整個(gè)比特幣系統(tǒng)的去中心化和匿名性,數(shù)字貨幣錢包一旦丟失,數(shù)字貨幣錢包里所有地址保存的比特幣就有可能被盜走。比特幣一旦被盜取,就不能被找回。因此,需要保證數(shù)字貨幣錢包的安全。而現(xiàn)有的數(shù)字貨幣錢包解決方案都是在線備份私鑰形成備份數(shù)字貨幣錢包,盡管采取了諸多安全措施來保障應(yīng)用和數(shù)據(jù)的安全,但眾多的攻擊案例和系統(tǒng)漏洞表明,這樣仍不能保證數(shù)字貨幣錢包中數(shù)字貨幣的安全。因此,如何保證基于區(qū)塊鏈的數(shù)字貨幣的安全,是本領(lǐng)域技術(shù)人員需要解決的技術(shù)問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種使用基于區(qū)塊鏈的數(shù)字貨幣的方法、系統(tǒng)及終端,通過安全芯片、可信執(zhí)行環(huán)境提高區(qū)塊鏈數(shù)字貨幣錢包的安全性。
為解決上述技術(shù)問題,本發(fā)明提供一種使用基于區(qū)塊鏈的數(shù)字貨幣的方法,所述方法包括:
數(shù)字貨幣客戶端向區(qū)塊鏈發(fā)送申請(qǐng)數(shù)字證書的請(qǐng)求,使所述區(qū)塊鏈根據(jù)所述請(qǐng)求進(jìn)行用戶身份及請(qǐng)求驗(yàn)證并在驗(yàn)證通過后向所述數(shù)字貨幣客戶端返回對(duì)應(yīng)的客戶信息;
所述數(shù)字貨幣客戶端根據(jù)所述客戶信息,通過可信執(zhí)行環(huán)境向安全芯片發(fā)送數(shù)字證書申請(qǐng);
所述安全芯片根據(jù)所述客戶信息生成密鑰對(duì)以及數(shù)字貨幣錢包地址,并通過所述可信執(zhí)行環(huán)境向所述數(shù)字貨幣客戶端輸出所述數(shù)字貨幣錢包地址;
所述數(shù)字貨幣客戶端向所述區(qū)塊鏈發(fā)送所述數(shù)字貨幣錢包地址,使所述區(qū)塊鏈根據(jù)所述數(shù)字貨幣錢包地址從認(rèn)證中心獲取數(shù)字證書;
所述數(shù)字貨幣客戶端接收所述區(qū)塊鏈發(fā)送的所述數(shù)字證書后,通過所述可信執(zhí)行環(huán)境向所述安全芯片發(fā)送數(shù)字證書安裝請(qǐng)求;
所述安全芯片根據(jù)所述數(shù)字證書安裝請(qǐng)求安裝數(shù)字證書。
可選的,所述安全芯片根據(jù)所述客戶信息生成密鑰對(duì)以及數(shù)字貨幣錢包地址,包括:
所述安全芯片根據(jù)所述客戶信息生成私鑰,并利用所述私鑰生成公鑰;
利用哈希算法對(duì)所述公鑰進(jìn)行處理得到公鑰哈希,并根據(jù)所述公鑰哈希生成數(shù)字貨幣錢包地址。
可選的,安裝數(shù)字證書之后,還包括:
發(fā)送方數(shù)字貨幣客戶端在所述可信執(zhí)行環(huán)境下將交易數(shù)據(jù)原文利用預(yù)定哈希算法計(jì)算得到摘要信息,并從所述安全芯片中獲取發(fā)送方私鑰;
所述發(fā)送方數(shù)字貨幣客戶端在所述可信執(zhí)行環(huán)境下將所述摘要信息以及所述發(fā)送方私鑰,利用加密算法生成數(shù)字簽名,并將所述數(shù)字簽名以及所述交易數(shù)據(jù)原文發(fā)送到所述區(qū)塊鏈中。
可選的,當(dāng)接收方數(shù)字貨幣客戶端從所述區(qū)塊鏈中獲取所述數(shù)字簽名以及所述交易數(shù)據(jù)原文之后,還包括:
接收方數(shù)字貨幣客戶端在所述可信執(zhí)行環(huán)境下將所述交易數(shù)據(jù)原文利用所述預(yù)定哈希算法計(jì)算得到第一摘要信息;
所述接收方數(shù)字貨幣客戶端在所述可信執(zhí)行環(huán)境下根據(jù)發(fā)送方公鑰,利用解密算法對(duì)所述數(shù)字簽名進(jìn)行解密得到第二摘要信息;
當(dāng)所述第一摘要信息與所述第二摘要信息一致時(shí)進(jìn)行交易。
可選的,當(dāng)所述數(shù)字貨幣客戶端處于離線狀態(tài)下時(shí),還包括:
發(fā)送方數(shù)字貨幣客戶端在所述可信執(zhí)行環(huán)境下進(jìn)行交易數(shù)據(jù)信息認(rèn)證以及數(shù)據(jù)校驗(yàn)后向接收方數(shù)字貨幣客戶端發(fā)送交易申請(qǐng);
所述接收方數(shù)字貨幣客戶端在所述可信執(zhí)行環(huán)境下接收并核實(shí)所述交易申請(qǐng)后向所述發(fā)送方數(shù)字貨幣客戶端返回確認(rèn)信息,并更新交易記錄;
所述發(fā)送方數(shù)字貨幣客戶端在所述可信執(zhí)行環(huán)境下更新交易記錄;
所述發(fā)送方數(shù)字貨幣客戶端和所述接收方數(shù)字貨幣客戶端在網(wǎng)絡(luò)狀態(tài)滿足條件時(shí)向所述區(qū)塊鏈同步所述交易記錄,使所述區(qū)塊鏈與對(duì)應(yīng)第三方服務(wù)器同步所述交易記錄。
可選的,所述數(shù)字貨幣客戶端的下載包括:
在所述安全芯片中預(yù)置所述數(shù)字貨幣客戶端可執(zhí)行程序進(jìn)行安裝或通過在線下載數(shù)字貨幣客戶端可執(zhí)行程序進(jìn)行安裝。
本發(fā)明還提供一種使用基于區(qū)塊鏈的數(shù)字貨幣的系統(tǒng),包括:
數(shù)字貨幣客戶端,用于向區(qū)塊鏈發(fā)送申請(qǐng)數(shù)字證書的請(qǐng)求,使所述區(qū)塊鏈根據(jù)所述請(qǐng)求進(jìn)行用戶身份及請(qǐng)求驗(yàn)證并在驗(yàn)證通過后向所述數(shù)字貨幣客戶端返回對(duì)應(yīng)的客戶信息;根據(jù)所述客戶信息,通過可信執(zhí)行環(huán)境向安全芯片發(fā)送數(shù)字證書申請(qǐng);向所述區(qū)塊鏈發(fā)送所述數(shù)字貨幣錢包地址,使所述區(qū)塊鏈根據(jù)所述數(shù)字貨幣錢包地址從認(rèn)證中心獲取數(shù)字證書;接收所述區(qū)塊鏈發(fā)送的所述數(shù)字證書后,通過所述可信執(zhí)行環(huán)境向所述安全芯片發(fā)送數(shù)字證書安裝請(qǐng)求;
所述安全芯片模塊,用于根據(jù)所述客戶信息生成密鑰對(duì)以及數(shù)字貨幣錢包地址,并通過所述可信執(zhí)行環(huán)境向所述數(shù)字貨幣客戶端輸出所述數(shù)字貨幣錢包地址;根據(jù)所述數(shù)字證書安裝請(qǐng)求安裝數(shù)字證書;
所述可信執(zhí)行環(huán)境模塊,用于提供可信執(zhí)行環(huán)境。
可選的,所述數(shù)字貨幣客戶端還包括:
交易發(fā)送單元,用于在所述可信執(zhí)行環(huán)境下將交易數(shù)據(jù)原文利用預(yù)定哈希算法計(jì)算得到摘要信息,并從所述安全芯片中獲取發(fā)送方私鑰;將所述摘要信息以及所述發(fā)送方私鑰,利用加密算法生成數(shù)字簽名,并將所述數(shù)字簽名以及所述交易數(shù)據(jù)原文發(fā)送到所述區(qū)塊鏈中;
交易接收單元,用于在所述可信執(zhí)行環(huán)境下將所述交易數(shù)據(jù)原文利用所述預(yù)定哈希算法計(jì)算得到第一摘要信息;根據(jù)發(fā)送方公鑰,利用解密算法對(duì)所述數(shù)字簽名進(jìn)行解密得到第二摘要信息;當(dāng)所述第一摘要信息與所述第二摘要信息一致時(shí)進(jìn)行交易。
可選的,所述數(shù)字貨幣客戶端還包括:
離線交易發(fā)送單元,用于在所述可信執(zhí)行環(huán)境下進(jìn)行交易數(shù)據(jù)信息認(rèn)證以及數(shù)據(jù)校驗(yàn)后向接收方數(shù)字貨幣客戶端發(fā)送交易申請(qǐng);并在所述接收方數(shù)字貨幣客戶端在所述可信執(zhí)行環(huán)境下接收并核實(shí)所述交易申請(qǐng)后,接收所述接收方數(shù)字貨幣客戶端返回確認(rèn)信息,并更新交易記錄;
離線交易同步單元,用于當(dāng)數(shù)字貨幣客戶端在網(wǎng)絡(luò)狀態(tài)滿足條件時(shí)向所述區(qū)塊鏈同步所述交易記錄,使所述區(qū)塊鏈與對(duì)應(yīng)第三方服務(wù)器同步所述交易記錄。
本發(fā)明還提供一種終端,包括:
數(shù)字貨幣客戶端處理器,用于向區(qū)塊鏈發(fā)送申請(qǐng)數(shù)字證書的請(qǐng)求,使所述區(qū)塊鏈根據(jù)所述請(qǐng)求進(jìn)行用戶身份及請(qǐng)求驗(yàn)證并在驗(yàn)證通過后向所述數(shù)字貨幣客戶端返回對(duì)應(yīng)的客戶信息;根據(jù)所述客戶信息,通過可信執(zhí)行環(huán)境向安全芯片發(fā)送數(shù)字證書申請(qǐng);向所述區(qū)塊鏈發(fā)送所述數(shù)字貨幣錢包地址,使所述區(qū)塊鏈根據(jù)所述數(shù)字貨幣錢包地址從認(rèn)證中心獲取數(shù)字證書;接收所述區(qū)塊鏈發(fā)送的所述數(shù)字證書后,通過所述可信執(zhí)行環(huán)境向所述安全芯片發(fā)送數(shù)字證書安裝請(qǐng)求;
所述安全芯片,用于根據(jù)所述客戶信息生成密鑰對(duì)以及數(shù)字貨幣錢包地址,并通過所述可信執(zhí)行環(huán)境向所述數(shù)字貨幣客戶端輸出所述數(shù)字貨幣錢包地址;根據(jù)所述數(shù)字證書安裝請(qǐng)求安裝數(shù)字證書;
所述可信執(zhí)行環(huán)境處理器,用于提供可信執(zhí)行環(huán)境。
本發(fā)明所提供的使用基于區(qū)塊鏈的數(shù)字貨幣的方法,所述方法包括:數(shù)字貨幣客戶端向區(qū)塊鏈發(fā)送申請(qǐng)數(shù)字證書的請(qǐng)求,使所述區(qū)塊鏈根據(jù)所述請(qǐng)求進(jìn)行用戶身份及請(qǐng)求驗(yàn)證并在驗(yàn)證通過后向所述數(shù)字貨幣客戶端返回對(duì)應(yīng)的客戶信息;所述數(shù)字貨幣客戶端根據(jù)所述客戶信息,通過可信執(zhí)行環(huán)境向安全芯片發(fā)送數(shù)字證書申請(qǐng);所述安全芯片根據(jù)所述客戶信息生成密鑰對(duì)以及數(shù)字貨幣錢包地址,并通過所述可信執(zhí)行環(huán)境向所述數(shù)字貨幣客戶端輸出所述數(shù)字貨幣錢包地址;所述數(shù)字貨幣客戶端向所述區(qū)塊鏈發(fā)送所述數(shù)字貨幣錢包地址,使所述區(qū)塊鏈根據(jù)所述數(shù)字貨幣錢包地址從認(rèn)證中心獲取數(shù)字證書;所述數(shù)字貨幣客戶端接收所述區(qū)塊鏈發(fā)送的所述數(shù)字證書后,通過所述可信執(zhí)行環(huán)境向所述安全芯片發(fā)送數(shù)字證書安裝請(qǐng)求;所述安全芯片根據(jù)所述數(shù)字證書安裝請(qǐng)求安裝數(shù)字證書;
可見,由于安全芯片既具備硬件防篡改性,同時(shí)具備軟件的安全加密功能,可信執(zhí)行環(huán)境具備一定的硬件保護(hù)能力;因此該方法通過安全芯片、可信執(zhí)行環(huán)境提高區(qū)塊鏈數(shù)字貨幣錢包的安全性。即將軟件和可信硬件平臺(tái)結(jié)合,為數(shù)字貨幣錢包提供完整的安全保障。本發(fā)明還提供一種使用基于區(qū)塊鏈的數(shù)字貨幣的系統(tǒng)及終端,具有上述有益效果,在此不再贅述。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例所提供的使用基于區(qū)塊鏈的數(shù)字貨幣的方法的流程圖;
圖2為本發(fā)明實(shí)施例所提供的數(shù)字貨幣客戶端初始化的過程示意圖;
圖3為本發(fā)明實(shí)施例所提供的私鑰與數(shù)字貨幣錢包地址的映射關(guān)系示意圖;
圖4為本發(fā)明實(shí)施例所提供的數(shù)字貨幣客戶端交易使用的過程示意圖;
圖5為本發(fā)明實(shí)施例所提供的數(shù)字貨幣客戶端離線使用的過程示意圖;
圖6為本發(fā)明實(shí)施例所提供的數(shù)字貨幣客戶端整體使用示意圖;
圖7為本發(fā)明實(shí)施例所提供的使用基于區(qū)塊鏈的數(shù)字貨幣的系統(tǒng)的結(jié)構(gòu)框圖;
圖8為本發(fā)明實(shí)施例所提供的一種終端的結(jié)構(gòu)框圖。
具體實(shí)施方式
本發(fā)明的核心是提供一種使用基于區(qū)塊鏈的數(shù)字貨幣的方法、系統(tǒng)及終端,通過安全芯片、可信執(zhí)行環(huán)境提高區(qū)塊鏈數(shù)字貨幣錢包的安全性。
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本實(shí)施例的具體實(shí)現(xiàn)包括三層:最底層是一個(gè)既具備硬件防篡改性,同時(shí)具備軟件的安全加密的安全芯片,(例如SE);中間層,可信執(zhí)行環(huán)境(例如TEE)具備一定的硬件保護(hù)能力,同時(shí)在對(duì)比最底層安全單元這個(gè)級(jí)別,不具備硬件防可篡改性,是一個(gè)較為低成本的安全架構(gòu)。最上層是開放式操作系統(tǒng)層,只有軟件保護(hù)能力,安全保護(hù)的級(jí)別是最低的,也是下載安裝后的數(shù)字貨幣客戶端所在層。本實(shí)施例在此結(jié)構(gòu)上可以實(shí)現(xiàn)提高區(qū)塊鏈數(shù)字貨幣錢包的安全性。具體請(qǐng)參考圖1,圖1為本發(fā)明實(shí)施例所提供的使用基于區(qū)塊鏈的數(shù)字貨幣的方法的流程圖;所述方法可以包括:
S100、數(shù)字貨幣客戶端向區(qū)塊鏈發(fā)送申請(qǐng)數(shù)字證書的請(qǐng)求,使區(qū)塊鏈根據(jù)請(qǐng)求進(jìn)行用戶身份及請(qǐng)求驗(yàn)證并在驗(yàn)證通過后向數(shù)字貨幣客戶端返回對(duì)應(yīng)的客戶信息;
S110、數(shù)字貨幣客戶端根據(jù)客戶信息,通過可信執(zhí)行環(huán)境向安全芯片發(fā)送數(shù)字證書申請(qǐng);
S120、安全芯片根據(jù)客戶信息生成密鑰對(duì)以及數(shù)字貨幣錢包地址,并通過可信執(zhí)行環(huán)境向數(shù)字貨幣客戶端輸出數(shù)字貨幣錢包地址;
S130、數(shù)字貨幣客戶端向區(qū)塊鏈發(fā)送數(shù)字貨幣錢包地址,使區(qū)塊鏈根據(jù)數(shù)字貨幣錢包地址從認(rèn)證中心獲取數(shù)字證書;
S140、數(shù)字貨幣客戶端接收區(qū)塊鏈發(fā)送的數(shù)字證書后,通過可信執(zhí)行環(huán)境向安全芯片發(fā)送數(shù)字證書安裝請(qǐng)求;
S150、安全芯片根據(jù)數(shù)字證書安裝請(qǐng)求安裝數(shù)字證書。
其中,這里的數(shù)字貨幣錢包可以理解為數(shù)字貨幣客戶端,用戶進(jìn)行比特幣交易時(shí)離不開數(shù)字貨幣客戶端,因此在使用數(shù)字貨幣時(shí)首先要下載并安裝數(shù)字貨幣客戶端。本實(shí)施例并不限定下載安裝數(shù)字貨幣客戶端的具體方式,其可以根據(jù)不同終端進(jìn)行適應(yīng)性選擇,以提高數(shù)字貨幣客戶端的適應(yīng)性。優(yōu)選的,數(shù)字貨幣客戶端的下載可以包括:在安全芯片中預(yù)置數(shù)字貨幣客戶端可執(zhí)行程序進(jìn)行安裝或通過在線下載數(shù)字貨幣客戶端可執(zhí)行程序進(jìn)行安裝。即數(shù)字錢包應(yīng)用可以在安全芯片(例如SE)中預(yù)置也可以通過在線下載方式安裝。
具體的,本實(shí)施例S100至S150可以實(shí)現(xiàn)數(shù)字貨幣錢包初始化過程,該數(shù)字貨幣錢包的初始化相比現(xiàn)有技術(shù)中其數(shù)字貨幣客戶端進(jìn)行初始化僅在最上層開放式操作系統(tǒng)層完成相比更加安全。本實(shí)施例中初始化過程在終端中數(shù)據(jù)交互過程均在可信執(zhí)行環(huán)境下完成。且有關(guān)于數(shù)字貨幣使用的數(shù)字證書安裝和密鑰對(duì)的生成均在安全性很高的安全芯片中完成。即在整個(gè)數(shù)字貨幣錢包的初始化過程中三層各自發(fā)揮其最主要的功能,共同對(duì)數(shù)字貨幣客戶端進(jìn)行保護(hù)。從而可以從根本上阻止外界攻擊,進(jìn)而提高區(qū)塊鏈數(shù)字貨幣錢包的安全性。
下面可以通過圖2舉例說明上述過程:在圖2中安全芯片為SE,其控制過程由SE安全服務(wù)應(yīng)用實(shí)現(xiàn),圖2中的數(shù)字貨幣客戶端位于移動(dòng)終端中。
初始化時(shí),首先由用戶通過數(shù)字貨幣客戶端向區(qū)塊鏈提交申請(qǐng)數(shù)字證書的請(qǐng)求,區(qū)塊鏈商業(yè)銀行節(jié)點(diǎn)進(jìn)行客戶的身份認(rèn)證與請(qǐng)求驗(yàn)證,在由SE安全服務(wù)應(yīng)用生成密鑰對(duì)并出輸出數(shù)字貨幣錢包地址(也可以簡(jiǎn)稱為錢包地址);由用戶通過數(shù)字貨幣客戶端向區(qū)塊鏈節(jié)點(diǎn)向商業(yè)銀行節(jié)點(diǎn)上傳送該數(shù)字錢包地址,商業(yè)銀行依據(jù)錢包地址來頒發(fā)數(shù)字證書,在這個(gè)過程中,SE安全負(fù)責(zé)密鑰的生成與證書的安裝。
進(jìn)一步為了提高數(shù)字貨幣錢包地址的安全性。本實(shí)施例中數(shù)字貨幣錢包地址是公鑰的不可逆映射。即可選的,安全芯片根據(jù)客戶信息生成密鑰對(duì)以及數(shù)字貨幣錢包地址可以包括:
安全芯片根據(jù)客戶信息生成私鑰,并利用私鑰生成公鑰;
利用哈希算法對(duì)公鑰進(jìn)行處理得到公鑰哈希,并根據(jù)公鑰哈希生成數(shù)字貨幣錢包地址。
具體的,請(qǐng)參考圖3,由數(shù)字貨幣錢地址即錢包地址可以映射到公鑰哈希,但是由公鑰哈希并不能映射獲得公鑰,且由公鑰也不能映射得到私鑰。這樣的設(shè)置可以進(jìn)一步保護(hù)私鑰的安全性。從而提高數(shù)字貨幣的安全性。
基于上述技術(shù)方案,本發(fā)明實(shí)施例提供的使用基于區(qū)塊鏈的數(shù)字貨幣的方法,由于安全芯片既具備硬件防篡改性,同時(shí)具備軟件的安全加密功能,可信執(zhí)行環(huán)境具備一定的硬件保護(hù)能力;因此該方法通過安全芯片、可信執(zhí)行環(huán)境提高區(qū)塊鏈數(shù)字貨幣錢包的安全性。即將軟件和可信硬件平臺(tái)結(jié)合,為數(shù)字貨幣錢包提供完整的安全保障。
基于上述實(shí)施例,在成功安裝數(shù)字證書之后,即完成了數(shù)字貨幣客戶端的初始化之后,數(shù)字貨幣錢包的使用過程即交易過程(例如可以包括如何生成數(shù)字簽名以及驗(yàn)簽等過程),該過程還可以包括:
發(fā)送方數(shù)字貨幣客戶端在可信執(zhí)行環(huán)境下將交易數(shù)據(jù)原文利用預(yù)定哈希算法計(jì)算得到摘要信息,并從安全芯片中獲取發(fā)送方私鑰;
發(fā)送方數(shù)字貨幣客戶端在可信執(zhí)行環(huán)境下將摘要信息以及發(fā)送方私鑰,利用加密算法生成數(shù)字簽名,并將數(shù)字簽名以及交易數(shù)據(jù)原文發(fā)送到區(qū)塊鏈中。
當(dāng)接收方數(shù)字貨幣客戶端從區(qū)塊鏈中獲取數(shù)字簽名以及交易數(shù)據(jù)原文之后,還包括:
接收方數(shù)字貨幣客戶端在可信執(zhí)行環(huán)境下將交易數(shù)據(jù)原文利用預(yù)定哈希算法計(jì)算得到第一摘要信息;
接收方數(shù)字貨幣客戶端在可信執(zhí)行環(huán)境下根據(jù)發(fā)送方公鑰,利用解密算法對(duì)數(shù)字簽名進(jìn)行解密得到第二摘要信息;
當(dāng)?shù)谝徽畔⑴c第二摘要信息一致時(shí)進(jìn)行交易。
具體的,通過上述可以看出該交易過程中數(shù)據(jù)交互也都是在可信執(zhí)行環(huán)境下進(jìn)行的,從而不僅在數(shù)字貨幣客戶端的初始化過程對(duì)數(shù)字貨幣錢包進(jìn)行保護(hù),還在交易過程中持續(xù)對(duì)數(shù)字貨幣錢包進(jìn)行保護(hù),從而可以提高數(shù)字貨幣的安全性,保證用戶的財(cái)產(chǎn)安全。且有關(guān)于密鑰對(duì)的信息都需要與安全芯片進(jìn)行交互獲得,進(jìn)而從根本上保護(hù)了數(shù)字貨幣的安全性。本實(shí)施例并不對(duì)具體的預(yù)定哈希算法進(jìn)行限定,只要發(fā)送方和接收方使用的同一種哈希算法即可。本實(shí)施例也比對(duì)加密算法和解密算法的具體內(nèi)容進(jìn)行限定,只要加密算法和解密算法為一對(duì)配套算法即可。
下面可以通過圖4舉例說明上述過程:圖4中的原文即交易數(shù)據(jù)原文,摘要即摘要信息,Hash算法即哈希算法。圖4中的數(shù)字貨幣客戶端位于移動(dòng)終端中
在交易數(shù)據(jù)傳輸前,發(fā)送方將原文按照約定的Hash算法計(jì)算得到摘要,并使用自己的私鑰(從安全芯片獲取)對(duì)摘要進(jìn)行加密得到數(shù)字簽名,與原文一起發(fā)送給接收方,接收方使用相同的Hash算法對(duì)原文計(jì)算摘要,然后與使用發(fā)送方的公鑰對(duì)數(shù)字進(jìn)行解密得到的摘要進(jìn)行對(duì)比。
基于上述技術(shù)方案,本發(fā)明實(shí)施例提供的使用基于區(qū)塊鏈的數(shù)字貨幣的方法,通過安全芯片、可信執(zhí)行環(huán)境提高區(qū)塊鏈數(shù)字貨幣錢包的安全性,且在進(jìn)行交易時(shí)必要數(shù)據(jù)的獲取均依賴于可信執(zhí)行環(huán)境和安全芯片,使得交易過程也受到三層結(jié)構(gòu)的實(shí)時(shí)保護(hù),從而提高數(shù)字貨幣的安全性。
基于上述任意實(shí)施例,由于現(xiàn)有的數(shù)字貨幣錢包只能在線進(jìn)行交易,這種方式在通信出現(xiàn)瓶頸時(shí),影響交易效率。本實(shí)施例能夠?qū)崿F(xiàn)現(xiàn)有的數(shù)字貨幣錢包不具備的離線交易功能,滿足數(shù)字貨幣數(shù)據(jù)以及交易安全、便捷的需求。本實(shí)施例中,當(dāng)數(shù)字貨幣客戶端處于離線狀態(tài)下時(shí),該方法可以包括:
發(fā)送方數(shù)字貨幣客戶端在可信執(zhí)行環(huán)境下進(jìn)行交易數(shù)據(jù)信息認(rèn)證以及數(shù)據(jù)校驗(yàn)后向接收方數(shù)字貨幣客戶端發(fā)送交易申請(qǐng);
接收方數(shù)字貨幣客戶端在可信執(zhí)行環(huán)境下接收并核實(shí)交易申請(qǐng)后向發(fā)送方數(shù)字貨幣客戶端返回確認(rèn)信息,并更新交易記錄;
發(fā)送方數(shù)字貨幣客戶端在可信執(zhí)行環(huán)境下更新交易記錄;
發(fā)送方數(shù)字貨幣客戶端和接收方數(shù)字貨幣客戶端在網(wǎng)絡(luò)狀態(tài)滿足條件時(shí)向區(qū)塊鏈同步交易記錄,使區(qū)塊鏈與對(duì)應(yīng)第三方服務(wù)器同步交易記錄。
其中,網(wǎng)絡(luò)狀態(tài)滿足條件時(shí)可以是網(wǎng)絡(luò)狀態(tài)良好,或者是存在安全且信號(hào)強(qiáng)的網(wǎng)絡(luò)。本實(shí)施例并不對(duì)此進(jìn)行限定。這里的網(wǎng)絡(luò)狀態(tài)的檢測(cè)可以是實(shí)時(shí)進(jìn)行,也可以定期進(jìn)行。本實(shí)施例并不對(duì)此進(jìn)行限定。用戶可以根據(jù)自身需求進(jìn)行設(shè)定,也可以手動(dòng)進(jìn)行網(wǎng)絡(luò)狀態(tài)的檢測(cè)。這里的交易申請(qǐng)可以是指包含交易信息的唯一數(shù)字貨幣數(shù)據(jù)串。
具體的,在離線狀態(tài)下,發(fā)送方和接收方兩者之間可以進(jìn)行交易,并在交易完成時(shí)在兩者對(duì)應(yīng)的數(shù)字貨幣客戶端更新交易記錄,即記錄下該次交易的詳細(xì)情況。以便后續(xù)在網(wǎng)絡(luò)狀態(tài)允許的情況下,使有關(guān)第三方可以獲取該交易記錄。以滿足有關(guān)第三方對(duì)交易信息的管理。例如監(jiān)管方對(duì)交易信息的監(jiān)管,銀行等對(duì)交易信息的核實(shí)以及及時(shí)執(zhí)行等。即本實(shí)施例實(shí)現(xiàn)了數(shù)字貨幣的離線交易,使得數(shù)字貨幣交易不再依賴于網(wǎng)絡(luò),提高用戶使用的便捷程度。
下面請(qǐng)參考圖5舉例說明上述數(shù)字貨幣錢包離線交易過程:圖5中的數(shù)字貨幣客戶端位于移動(dòng)終端中。
在交易過程中,交易雙方終端處于離線狀態(tài),即只有發(fā)送方和接收方參與。交易發(fā)送方發(fā)起交易并進(jìn)行身份認(rèn)證(可以理解為包含了交易信息的認(rèn)證過程)、數(shù)據(jù)校驗(yàn)等操作,接收方接受并核實(shí)交易請(qǐng)求后返回確認(rèn)信息,雙方更新交易記錄文件。檢測(cè)網(wǎng)絡(luò)狀態(tài),在網(wǎng)絡(luò)狀態(tài)良好的時(shí)候,不定期讀取交易記錄文件,并通過區(qū)塊鏈與商業(yè)銀行服務(wù)器進(jìn)行交易同步,并更新維護(hù)本地交易記錄。
進(jìn)一步,本實(shí)施例還可以進(jìn)行交易查詢等操作。具體請(qǐng)參考圖6,其整體使用過程可以包括:應(yīng)用的安裝下載、應(yīng)用初始化、應(yīng)用的使用等。數(shù)字貨幣客戶端在進(jìn)行密鑰對(duì)生成,加密過程,解密過程,簽名驗(yàn)證等都在可信執(zhí)行環(huán)境下進(jìn)行。區(qū)塊鏈和終端以及第三方之間(例如圖6中的商業(yè)銀行)都可以進(jìn)行證書申請(qǐng),交易,查詢等數(shù)字貨幣操作。
基于上述技術(shù)方案,本發(fā)明實(shí)施例提的使用基于區(qū)塊鏈的數(shù)字貨幣的方法,通過構(gòu)建應(yīng)用軟件-TEE-SE三層技術(shù)架構(gòu),將軟硬件平臺(tái)相結(jié)合,為數(shù)字貨幣客戶端提供完成的安全保障。且實(shí)現(xiàn)了數(shù)字貨幣離線交易。使得用戶可更加方便、安全的進(jìn)行數(shù)字貨幣交易。
下面對(duì)本發(fā)明實(shí)施例提供的使用基于區(qū)塊鏈的數(shù)字貨幣的系統(tǒng)及終端進(jìn)行介紹,下文描述的使用基于區(qū)塊鏈的數(shù)字貨幣的系統(tǒng)及終端與上文描述的使用基于區(qū)塊鏈的數(shù)字貨幣的方法可相互對(duì)應(yīng)參照。
請(qǐng)參考圖7,圖7為本發(fā)明實(shí)施例所提供的使用基于區(qū)塊鏈的數(shù)字貨幣的系統(tǒng)的結(jié)構(gòu)框圖;該系統(tǒng)可以包括:
數(shù)字貨幣客戶端100,用于向區(qū)塊鏈發(fā)送申請(qǐng)數(shù)字證書的請(qǐng)求,使區(qū)塊鏈根據(jù)請(qǐng)求進(jìn)行用戶身份及請(qǐng)求驗(yàn)證并在驗(yàn)證通過后向數(shù)字貨幣客戶端返回對(duì)應(yīng)的客戶信息;根據(jù)客戶信息,通過可信執(zhí)行環(huán)境向安全芯片發(fā)送數(shù)字證書申請(qǐng);向區(qū)塊鏈發(fā)送數(shù)字貨幣錢包地址,使區(qū)塊鏈根據(jù)數(shù)字貨幣錢包地址從認(rèn)證中心獲取數(shù)字證書;接收區(qū)塊鏈發(fā)送的數(shù)字證書后,通過可信執(zhí)行環(huán)境向安全芯片發(fā)送數(shù)字證書安裝請(qǐng)求;
安全芯片模塊200,用于根據(jù)客戶信息生成密鑰對(duì)以及數(shù)字貨幣錢包地址,并通過可信執(zhí)行環(huán)境向數(shù)字貨幣客戶端輸出數(shù)字貨幣錢包地址;根據(jù)數(shù)字證書安裝請(qǐng)求安裝數(shù)字證書;
可信執(zhí)行環(huán)境模塊300,用于提供可信執(zhí)行環(huán)境。
基于上述實(shí)施例,數(shù)字貨幣客戶端100還可以包括:
交易發(fā)送單元,用于在可信執(zhí)行環(huán)境下將交易數(shù)據(jù)原文利用預(yù)定哈希算法計(jì)算得到摘要信息,并從安全芯片中獲取發(fā)送方私鑰;將摘要信息以及發(fā)送方私鑰,利用加密算法生成數(shù)字簽名,并將數(shù)字簽名以及交易數(shù)據(jù)原文發(fā)送到區(qū)塊鏈中;
交易接收單元,用于在可信執(zhí)行環(huán)境下將交易數(shù)據(jù)原文利用預(yù)定哈希算法計(jì)算得到第一摘要信息;根據(jù)發(fā)送方公鑰,利用解密算法對(duì)數(shù)字簽名進(jìn)行解密得到第二摘要信息;當(dāng)?shù)谝徽畔⑴c第二摘要信息一致時(shí)進(jìn)行交易。
基于上述實(shí)施例,數(shù)字貨幣客戶端100還可以包括:
離線交易發(fā)送單元,用于在可信執(zhí)行環(huán)境下進(jìn)行交易數(shù)據(jù)信息認(rèn)證以及數(shù)據(jù)校驗(yàn)后向接收方數(shù)字貨幣客戶端發(fā)送交易申請(qǐng);并在接收方數(shù)字貨幣客戶端在可信執(zhí)行環(huán)境下接收并核實(shí)交易申請(qǐng)后,接收該接收方數(shù)字貨幣客戶端返回確認(rèn)信息,并更新交易記錄;
離線交易同步單元,用于當(dāng)數(shù)字貨幣客戶端在網(wǎng)絡(luò)狀態(tài)滿足條件時(shí)向區(qū)塊鏈同步交易記錄,使區(qū)塊鏈與對(duì)應(yīng)第三方服務(wù)器同步交易記錄。
請(qǐng)參考圖8,圖8為本發(fā)明實(shí)施例所提供的一種終端的結(jié)構(gòu)框圖;該終端可以包括:
數(shù)字貨幣客戶端處理器10,用于向區(qū)塊鏈發(fā)送申請(qǐng)數(shù)字證書的請(qǐng)求,使區(qū)塊鏈根據(jù)請(qǐng)求進(jìn)行用戶身份及請(qǐng)求驗(yàn)證并在驗(yàn)證通過后向數(shù)字貨幣客戶端返回對(duì)應(yīng)的客戶信息;根據(jù)客戶信息,通過可信執(zhí)行環(huán)境向安全芯片發(fā)送數(shù)字證書申請(qǐng);向區(qū)塊鏈發(fā)送數(shù)字貨幣錢包地址,使區(qū)塊鏈根據(jù)數(shù)字貨幣錢包地址從認(rèn)證中心獲取數(shù)字證書;接收區(qū)塊鏈發(fā)送的數(shù)字證書后,通過可信執(zhí)行環(huán)境向安全芯片發(fā)送數(shù)字證書安裝請(qǐng)求;
安全芯片20,用于根據(jù)客戶信息生成密鑰對(duì)以及數(shù)字貨幣錢包地址,并通過可信執(zhí)行環(huán)境向數(shù)字貨幣客戶端輸出數(shù)字貨幣錢包地址;根據(jù)數(shù)字證書安裝請(qǐng)求安裝數(shù)字證書;
可信執(zhí)行環(huán)境處理器30,用于提供可信執(zhí)行環(huán)境。
具體的,本實(shí)施例對(duì)終端并不進(jìn)行限定。這里的終端可以是移動(dòng)終端。
說明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見即可。對(duì)于實(shí)施例公開的裝置而言,由于其與實(shí)施例公開的方法相對(duì)應(yīng),所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法部分說明即可。
專業(yè)人員還可以進(jìn)一步意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來實(shí)現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
結(jié)合本文中所公開的實(shí)施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(RAM)、內(nèi)存、只讀存儲(chǔ)器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動(dòng)磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。
以上對(duì)本發(fā)明所提供的使用基于區(qū)塊鏈的數(shù)字貨幣的方法、系統(tǒng)及終端進(jìn)行了詳細(xì)介紹。本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對(duì)本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。