本發(fā)明涉及區(qū)塊鏈技術(shù)領(lǐng)域,尤其涉及一種區(qū)塊鏈上交易的方法及裝置。
背景技術(shù):
當(dāng)智能合約置于區(qū)塊鏈上后,一個(gè)必須考慮的問題是對(duì)權(quán)限的管理問題。智能合約本身就是在區(qū)塊鏈網(wǎng)絡(luò)上運(yùn)行的一串代碼,因此智能合約里有很多應(yīng)用程序編程接口(Application Programming Interface,API)。如何管理哪個(gè)API能在何時(shí)能被哪個(gè)用戶使用是一個(gè)在區(qū)塊鏈領(lǐng)域常被提及的問題。其中一個(gè)主流的解決方案是把用戶權(quán)限寫在被證書認(rèn)證機(jī)構(gòu)(Certification Authority,CA)認(rèn)證過的數(shù)字證書里面,然后發(fā)給用戶。當(dāng)用戶要對(duì)一個(gè)智能合約發(fā)起交易時(shí),該用戶會(huì)把認(rèn)簽過的交易及證書一起發(fā)給智能合約,智能合約會(huì)核對(duì)證書上的權(quán)限來決定是否繼續(xù)運(yùn)行。
然而,用戶權(quán)限不是永恒不變的,在公鑰基礎(chǔ)設(shè)施(Public Key Infrastructure,PKI)體系中,證書的吊銷列表會(huì)存儲(chǔ)在一個(gè)中心管制系統(tǒng)中,如果區(qū)塊鏈上的節(jié)點(diǎn)要驗(yàn)證一個(gè)證書是否有權(quán)限(驗(yàn)證證書的目的是確定是否準(zhǔn)許某項(xiàng)交易的執(zhí)行),區(qū)塊鏈上的節(jié)點(diǎn)必須通過一個(gè)可信的機(jī)制從CA那里查詢這個(gè)證書是否被吊銷,這就使得每個(gè)交易發(fā)生時(shí),均需要通過中心管制系統(tǒng)中得到最新證書吊銷列表,以確定交易相關(guān)方是否具備交易的權(quán)限,使得交易操作繁瑣、系統(tǒng)開銷大。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種區(qū)塊鏈上交易的方法及裝置,旨在解決區(qū)塊鏈上的交易操作繁瑣、系統(tǒng)開銷大的問題。
為實(shí)現(xiàn)上述目的,本發(fā)明提供一種區(qū)塊鏈上交易的方法,所述區(qū)塊鏈上交易的方法包括:
S1,當(dāng)證書認(rèn)證機(jī)構(gòu)將證書吊銷清單發(fā)布到區(qū)塊鏈上后,所述區(qū)塊鏈同步所述證書吊銷清單至所述區(qū)塊鏈的各個(gè)節(jié)點(diǎn);
S2,當(dāng)所述節(jié)點(diǎn)上的智能合約接收到攜帶交易參數(shù)的交易請(qǐng)求后,訪問所述區(qū)塊鏈上的權(quán)限吊銷系統(tǒng),基于所述權(quán)限吊銷系統(tǒng)、所述交易參數(shù)及所述節(jié)點(diǎn)上的證書吊銷清單對(duì)所述交易請(qǐng)求的權(quán)限進(jìn)行驗(yàn)證,根據(jù)驗(yàn)證結(jié)果響應(yīng)或拒絕響應(yīng)所述交易請(qǐng)求。
優(yōu)選地,所述步驟S2包括:
S21,通過所述權(quán)限吊銷系統(tǒng)對(duì)所述交易參數(shù)進(jìn)行解析;
S22,當(dāng)解析得到證書信息及證書權(quán)限時(shí),分析所述證書信息是否屬于所述證書吊銷清單中的已吊銷證書信息,以對(duì)所述交易請(qǐng)求的權(quán)限進(jìn)行驗(yàn)證;
S23,若所述證書信息屬于所述證書吊銷清單中的已吊銷證書信息,則拒絕響應(yīng)所述交易請(qǐng)求;
S24,若所述證書信息屬于所述證書吊銷清單中的未吊銷證書信息,則響應(yīng)所述交易請(qǐng)求。
優(yōu)選地,所述證書吊銷清單中還記錄有未吊銷證書信息對(duì)應(yīng)的各分權(quán)限是否被吊銷的信息,則所述步驟S24還包括:
S241,將未吊銷證書信息對(duì)應(yīng)的各分權(quán)限分別與所述證書吊銷清單中各未吊銷證書信息對(duì)應(yīng)的證書權(quán)限進(jìn)行比對(duì);
S242,若有分權(quán)限未被吊銷,則響應(yīng)所述交易請(qǐng)求;
S243,若各分權(quán)限均被吊銷,則拒絕響應(yīng)所述交易請(qǐng)求。
優(yōu)選地,所述步驟S21之后,還包括:
若解析后未得到所述證書權(quán)限,則拒絕響應(yīng)所述交易請(qǐng)求。
為實(shí)現(xiàn)上述目的,本發(fā)明還提供一種區(qū)塊鏈上交易的裝置,所述區(qū)塊鏈上交易的裝置包括:
同步模塊,用于當(dāng)證書認(rèn)證機(jī)構(gòu)將證書吊銷清單發(fā)布到區(qū)塊鏈上后,所述區(qū)塊鏈同步所述證書吊銷清單至所述區(qū)塊鏈的各個(gè)節(jié)點(diǎn);
交易模塊,用于當(dāng)所述節(jié)點(diǎn)上的智能合約接收到攜帶交易參數(shù)的交易請(qǐng)求后,訪問所述區(qū)塊鏈上的權(quán)限吊銷系統(tǒng),基于所述權(quán)限吊銷系統(tǒng)、所述交易參數(shù)及所述節(jié)點(diǎn)上的證書吊銷清單對(duì)所述交易請(qǐng)求的權(quán)限進(jìn)行驗(yàn)證,根據(jù)驗(yàn)證結(jié)果響應(yīng)或拒絕響應(yīng)所述交易請(qǐng)求。
優(yōu)選地,所述交易模塊包括:
訪問單元,用于通過所述權(quán)限吊銷系統(tǒng)對(duì)所述交易參數(shù)進(jìn)行解析;
驗(yàn)證單元,用于當(dāng)解析得到證書信息及證書權(quán)限時(shí),分析所述證書信息是否屬于所述證書吊銷清單中的已吊銷證書信息,以對(duì)所述交易請(qǐng)求的權(quán)限進(jìn)行驗(yàn)證;
第一處理單元,用于若所述證書信息屬于所述證書吊銷清單中的已吊銷證書信息,則拒絕響應(yīng)所述交易請(qǐng)求;
第二處理單元,用于若所述證書信息屬于所述證書吊銷清單中的未吊銷證書信息,則響應(yīng)所述交易請(qǐng)求。
優(yōu)選地,所述證書吊銷清單中還記錄有未吊銷證書信息對(duì)應(yīng)的各分權(quán)限是否被吊銷的信息,所述第二處理單元還包括:
比對(duì)子單元,用于將未吊銷證書信息對(duì)應(yīng)的各分權(quán)限分別與所述證書吊銷清單中各未吊銷證書信息對(duì)應(yīng)的證書權(quán)限進(jìn)行比對(duì);
第三處理子單元,用于若有分權(quán)限未被吊銷,則響應(yīng)所述交易請(qǐng)求;
第四處理子單元,用于若各分權(quán)限均被吊銷,則拒絕響應(yīng)所述交易請(qǐng)求。
優(yōu)選地,所述交易模塊進(jìn)一步包括:第五處理單元,用于若解析后未得到所述證書權(quán)限,則拒絕響應(yīng)所述交易請(qǐng)求。
本發(fā)明的有益效果是:本發(fā)明的證書吊銷清單發(fā)布到區(qū)塊鏈后,區(qū)塊鏈將其同步至區(qū)塊鏈的各個(gè)節(jié)點(diǎn),即將證書吊銷清單直接存儲(chǔ)在區(qū)塊鏈上,當(dāng)智能合約接收到交易請(qǐng)求時(shí),可以直接在區(qū)塊鏈上實(shí)時(shí)獲取證書吊銷清單,根據(jù)所訪問的權(quán)限吊銷系統(tǒng)、交易請(qǐng)求中攜帶的交易參數(shù)與證書吊銷清單對(duì)該交易請(qǐng)求的權(quán)限進(jìn)行驗(yàn)證,不需要通過一個(gè)可信的機(jī)制從CA中查詢交易的權(quán)限,使得交易操作簡(jiǎn)便快捷,減輕系統(tǒng)開銷。
附圖說明
圖1為本發(fā)明區(qū)塊鏈上交易的方法一實(shí)施例的流程示意圖;
圖2為圖1所示步驟S2的細(xì)化流程示意圖;
圖3為圖2所示步驟S24的細(xì)化流程示意圖;
圖4為本發(fā)明區(qū)塊鏈上交易的裝置一實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施方式
以下結(jié)合附圖對(duì)本發(fā)明的原理和特征進(jìn)行描述,所舉實(shí)例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
如圖1所示,圖1為本發(fā)明區(qū)塊鏈上交易的方法一實(shí)施例的流程示意圖,該區(qū)塊鏈上交易的方法包括以下步驟:
步驟S1,當(dāng)證書認(rèn)證機(jī)構(gòu)將證書吊銷清單發(fā)布到區(qū)塊鏈上后,所述區(qū)塊鏈同步所述證書吊銷清單至所述區(qū)塊鏈的各個(gè)節(jié)點(diǎn);
區(qū)塊鏈(Blockchain)是由一串使用密碼學(xué)方法產(chǎn)生的數(shù)據(jù)塊組成的,每個(gè)區(qū)塊都包含了上一個(gè)區(qū)塊的哈希值(hash),從創(chuàng)始區(qū)塊(genesis block)開始連接到當(dāng)前區(qū)塊,形成塊鏈。區(qū)塊鏈也是由節(jié)點(diǎn)參與的分布式數(shù)據(jù)庫系統(tǒng),本質(zhì)上是一個(gè)去中心化的數(shù)據(jù)庫賬本,記載所有的交易記錄,以比特幣的區(qū)塊鏈為例,每一個(gè)參與交易者都是區(qū)塊網(wǎng)絡(luò)的節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)都有一份完整的公共賬簿備份,上面記載著自比特幣誕生以來所有的交易信息。任何一個(gè)節(jié)點(diǎn)發(fā)起交易行為都需要將相關(guān)信息傳遞到區(qū)塊網(wǎng)絡(luò)中的每一個(gè)節(jié)點(diǎn),從而所有節(jié)點(diǎn)上的賬簿都能驗(yàn)證這一筆交易行為并準(zhǔn)確更新。此外,賬簿是分區(qū)塊存儲(chǔ)的,隨著交易的增加,新的數(shù)據(jù)塊會(huì)附加到已存在的鏈上,形成鏈狀結(jié)構(gòu)。
當(dāng)證書認(rèn)證機(jī)構(gòu)將證書吊銷清單發(fā)布到區(qū)塊鏈上后,區(qū)塊鏈可以利用自身的對(duì)等(Peer-to-peer,P2P)網(wǎng)絡(luò)及共識(shí)算法將證書吊銷清單同步到區(qū)塊鏈的各個(gè)節(jié)點(diǎn)上,即將證書吊銷清單傳播至區(qū)塊鏈的各個(gè)節(jié)點(diǎn)上。其中,證書吊銷清單中保存有被證書認(rèn)證機(jī)構(gòu)吊銷的各個(gè)已吊銷證書信息及未被吊銷的未吊銷證書信息,如果證書信息已經(jīng)被吊銷,則沒有權(quán)限執(zhí)行對(duì)應(yīng)的智能合約,即沒有權(quán)限進(jìn)行交易,如果證書信息未被吊銷,即證書吊銷清單中沒有該證書信息,則有權(quán)限執(zhí)行對(duì)應(yīng)的智能合約,即有權(quán)限進(jìn)行交易。
另外,證書吊銷清單中的已吊銷證書信息可能會(huì)發(fā)生變化,此時(shí),證書認(rèn)證機(jī)構(gòu)會(huì)發(fā)布一攜帶更新后的證書吊銷清單至區(qū)塊鏈,區(qū)塊鏈再將存儲(chǔ)的證書吊銷清單替換為更新后的證書吊銷清單,或者根據(jù)更新后的證書吊銷清單更改存儲(chǔ)的證書吊銷清單。
步驟S2,當(dāng)所述節(jié)點(diǎn)上的智能合約接收到攜帶交易參數(shù)的交易請(qǐng)求后,訪問所述區(qū)塊鏈上的權(quán)限吊銷系統(tǒng),基于所述權(quán)限吊銷系統(tǒng)、所述交易參數(shù)及所述節(jié)點(diǎn)上的證書吊銷清單對(duì)所述交易請(qǐng)求的權(quán)限進(jìn)行驗(yàn)證,根據(jù)驗(yàn)證結(jié)果響應(yīng)或拒絕響應(yīng)所述交易請(qǐng)求。
本實(shí)施例中,區(qū)塊鏈上的每個(gè)節(jié)點(diǎn)都會(huì)存儲(chǔ)運(yùn)行區(qū)塊鏈上的智能合約,一個(gè)智能合約是一套以數(shù)字形式定義的承諾(promises),包括合約參與方可以在上面執(zhí)行這些承諾的協(xié)議。當(dāng)一個(gè)攜帶交易參數(shù)的交易請(qǐng)求傳到區(qū)塊鏈的節(jié)點(diǎn)上時(shí),這個(gè)交易參數(shù)會(huì)被記錄到該節(jié)點(diǎn)對(duì)應(yīng)的事務(wù)記錄上并同時(shí)傳給與該交易參數(shù)對(duì)應(yīng)的智能合約去運(yùn)行,并由該交易參數(shù)對(duì)應(yīng)的智能合約上的代碼對(duì)智能合約的自身數(shù)據(jù)進(jìn)行更新。
其中,交易參數(shù)包括證書信息及對(duì)應(yīng)的證書權(quán)限,證書信息包括證書頒發(fā)機(jī)構(gòu)、證書序列號(hào)、證書有效期、證書所有者的用戶信息等。
當(dāng)節(jié)點(diǎn)上的智能合約接收到攜帶交易參數(shù)的交易請(qǐng)求后,通過訪問區(qū)塊鏈上的權(quán)限吊銷系統(tǒng)以獲取交易參數(shù)中的證書信息及對(duì)應(yīng)的證書權(quán)限,但該交易參數(shù)中有可能有證書權(quán)限也有可能沒有證書權(quán)限。權(quán)限吊銷系統(tǒng)用于處理相關(guān)的權(quán)限事宜,例如權(quán)限吊銷系統(tǒng)可以執(zhí)行對(duì)交易參數(shù)進(jìn)行解析等。在對(duì)交易請(qǐng)求的權(quán)限進(jìn)行驗(yàn)證時(shí),如果能夠從交易參數(shù)中獲取到證書信息及證書權(quán)限,則將證書信息與智能合約對(duì)應(yīng)的節(jié)點(diǎn)上的證書吊銷清單中的已吊銷證書信息進(jìn)行比對(duì),以驗(yàn)證該證書信息是否為已吊銷證書信息,如果該證書信息是已吊銷證書信息,則該交易請(qǐng)求無權(quán)限進(jìn)行交易,如果該證書信息不是已吊銷證書信息,則該交易請(qǐng)求有權(quán)限進(jìn)行交易。
與現(xiàn)有技術(shù)相比,本實(shí)施例的證書吊銷清單發(fā)布到區(qū)塊鏈后,區(qū)塊鏈將其同步至區(qū)塊鏈的各個(gè)節(jié)點(diǎn),即將證書吊銷清單直接存儲(chǔ)在區(qū)塊鏈上,當(dāng)智能合約接收到交易請(qǐng)求時(shí),可以從直接在區(qū)塊鏈上實(shí)時(shí)獲取證書吊銷清單,根據(jù)所訪問的權(quán)限吊銷系統(tǒng)、交易請(qǐng)求中攜帶的交易參數(shù)與證書吊銷清單對(duì)該交易請(qǐng)求的權(quán)限進(jìn)行驗(yàn)證,不需要通過一個(gè)可信的機(jī)制從CA中查詢交易的權(quán)限,使得交易操作簡(jiǎn)便快捷,減輕系統(tǒng)開銷。
在一優(yōu)選的實(shí)施例中,如圖2所示,在上述圖1的實(shí)施例的基礎(chǔ)上,上述步驟S2進(jìn)一步包括:
S21,通過所述權(quán)限吊銷系統(tǒng)對(duì)所述交易參數(shù)進(jìn)行解析;
S22,當(dāng)解析得到證書信息及證書權(quán)限時(shí),分析所述證書信息是否屬于所述證書吊銷清單中的已吊銷證書信息,以對(duì)所述交易請(qǐng)求的權(quán)限進(jìn)行驗(yàn)證;
S23,若所述證書信息屬于所述證書吊銷清單中的已吊銷證書信息,則拒絕響應(yīng)所述交易請(qǐng)求;
S24,若所述證書信息屬于所述證書吊銷清單中的未吊銷證書信息,則響應(yīng)所述交易請(qǐng)求。
本實(shí)施例中,如果區(qū)塊鏈的節(jié)點(diǎn)上運(yùn)行或存儲(chǔ)的智能合約接收到攜帶交易參數(shù)的交易請(qǐng)求后,可以通過預(yù)先確定的地址訪問該區(qū)塊鏈鏈上的權(quán)限吊銷系統(tǒng)以對(duì)該交易請(qǐng)求的權(quán)限進(jìn)行校驗(yàn),具體地,在訪問該區(qū)塊鏈鏈上的權(quán)限吊銷系統(tǒng)時(shí),由權(quán)限吊銷系統(tǒng)對(duì)交易參數(shù)進(jìn)行解析,如果解析得到證書信息但未解析得到證書權(quán)限,則說明該交易請(qǐng)求無權(quán)限進(jìn)行交易,智能合約拒絕該交易請(qǐng)求;如果解析得到證書信息及證書權(quán)限,則進(jìn)一步分析證書信息是否屬于證書吊銷清單中的已吊銷證書信息,具體地,可以將證書信息與證書吊銷清單中的已吊銷證書信息一一進(jìn)行比對(duì),以確定該證書信息是否屬于吊銷清單中的已吊銷證書信息。若證書信息屬于證書吊銷清單中的已吊銷證書信息,則該交易請(qǐng)求無權(quán)限進(jìn)行交易,智能合約拒絕響應(yīng)該交易請(qǐng)求;如果證書信息不屬于證書吊銷清單中的已吊銷證書信息,則該交易請(qǐng)求有權(quán)限進(jìn)行交易,智能合約響應(yīng)該交易請(qǐng)求。
另外,如果從交易參數(shù)中只能解析得到證書信息,但解析后未能夠得到證書權(quán)限,則該交易請(qǐng)求也無權(quán)限進(jìn)行交易。
本實(shí)施例在對(duì)交易請(qǐng)求的權(quán)限進(jìn)行驗(yàn)證時(shí),通過訪問區(qū)塊鏈上的權(quán)限吊銷系統(tǒng),由權(quán)限吊銷系統(tǒng)對(duì)交易參數(shù)進(jìn)行解析,在解析得到證書信息及證書權(quán)限時(shí),通過分析證書信息是否屬于證書吊銷清單中的已吊銷證書信息來對(duì)交易請(qǐng)求的權(quán)限進(jìn)行驗(yàn)證,能夠提高交易數(shù)據(jù)處理的速率。
在一優(yōu)選的實(shí)施例中,如圖3所示,在上述圖2的實(shí)施例的基礎(chǔ)上,證書吊銷清單中還可以記錄有未吊銷證書信息對(duì)應(yīng)的各分權(quán)限是否被吊銷的信息,在該實(shí)施例中,若檢測(cè)到所述證書信息不屬于所述證書吊銷清單中的已吊銷證書信息,則所述步驟S24還可以進(jìn)一步包括如下步驟:
步驟S241,將未吊銷證書信息對(duì)應(yīng)的各分權(quán)限分別與所述證書吊銷清單中各未吊銷證書信息對(duì)應(yīng)的證書權(quán)限進(jìn)行比對(duì),確定所述分權(quán)限是否均已被吊銷。若是,則進(jìn)入步驟S242,否則,執(zhí)行步驟S243。
步驟S242,響應(yīng)所述交易請(qǐng)求。
步驟S243,拒絕響應(yīng)所述交易請(qǐng)求。
本實(shí)施例中,證書吊銷清單中記錄有未吊銷證書信息對(duì)應(yīng)的各分權(quán)限是否被吊銷的信息,即記錄各分權(quán)限已吊銷或者未吊銷的信息。
本實(shí)施例中,一個(gè)證書信息對(duì)應(yīng)多個(gè)分權(quán)限,為了使得用戶在部分分權(quán)限被吊銷后,還可以通過證書信息在區(qū)塊鏈上執(zhí)行其他證書權(quán)限事務(wù),本實(shí)施例在證書吊銷清單中記錄了證書信息下對(duì)應(yīng)的各分權(quán)限是否被吊銷的信息,如果證書信息未被吊銷,則進(jìn)一步將未吊銷證書信息對(duì)應(yīng)的各分權(quán)限分別與證書吊銷清單中各未吊銷證書信息對(duì)應(yīng)的證書權(quán)限進(jìn)行比對(duì),若有分權(quán)限未吊銷,則響應(yīng)交易請(qǐng)求,若各分權(quán)限均已吊銷,則拒絕響應(yīng)交易請(qǐng)求。
如圖4所示,圖4為本發(fā)明區(qū)塊鏈上交易的裝置一實(shí)施例的結(jié)構(gòu)示意圖,該區(qū)塊鏈上交易的裝置包括:
同步模塊101,用于當(dāng)證書認(rèn)證機(jī)構(gòu)將證書吊銷清單發(fā)布到區(qū)塊鏈上后,所述區(qū)塊鏈同步所述證書吊銷清單至所述區(qū)塊鏈的各個(gè)節(jié)點(diǎn);
區(qū)塊鏈(Blockchain)是由一串使用密碼學(xué)方法產(chǎn)生的數(shù)據(jù)塊組成的,每個(gè)區(qū)塊都包含了上一個(gè)區(qū)塊的哈希值(hash),從創(chuàng)始區(qū)塊(genesis block)開始連接到當(dāng)前區(qū)塊,形成塊鏈。區(qū)塊鏈也是由節(jié)點(diǎn)參與的分布式數(shù)據(jù)庫系統(tǒng),本質(zhì)上是一個(gè)去中心化的數(shù)據(jù)庫賬本,記載所有的交易記錄,以比特幣的區(qū)塊鏈為例,每一個(gè)參與交易者都是區(qū)塊網(wǎng)絡(luò)的節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)都有一份完整的公共賬簿備份,上面記載著自比特幣誕生以來所有的交易信息。任何一個(gè)節(jié)點(diǎn)發(fā)起交易行為都需要將相關(guān)信息傳遞到區(qū)塊網(wǎng)絡(luò)中的每一個(gè)節(jié)點(diǎn),從而所有節(jié)點(diǎn)上的賬簿都能驗(yàn)證這一筆交易行為并準(zhǔn)確更新。此外,賬簿是分區(qū)塊存儲(chǔ)的,隨著交易的增加,新的數(shù)據(jù)塊會(huì)附加到已存在的鏈上,形成鏈狀結(jié)構(gòu)。
當(dāng)證書認(rèn)證機(jī)構(gòu)將證書吊銷清單發(fā)布到區(qū)塊鏈上后,區(qū)塊鏈可以利用自身的對(duì)等(Peer-to-peer,P2P)網(wǎng)絡(luò)及共識(shí)算法將證書吊銷清單同步到區(qū)塊鏈的各個(gè)節(jié)點(diǎn)上,即將證書吊銷清單傳播至區(qū)塊鏈的各個(gè)節(jié)點(diǎn)上。其中,證書吊銷清單中保存有被證書認(rèn)證機(jī)構(gòu)吊銷的各個(gè)已吊銷證書信息及未被吊銷的未吊銷證書信息,如果證書信息已經(jīng)被吊銷,則沒有權(quán)限執(zhí)行對(duì)應(yīng)的智能合約,即沒有權(quán)限進(jìn)行交易,如果證書信息未被吊銷,即證書吊銷清單中沒有該證書信息,則有權(quán)限執(zhí)行對(duì)應(yīng)的智能合約,即有權(quán)限進(jìn)行交易。
另外,證書吊銷清單中的已吊銷證書信息可能會(huì)發(fā)生變化,此時(shí),證書認(rèn)證機(jī)構(gòu)會(huì)發(fā)布一攜帶更新后的證書吊銷清單至區(qū)塊鏈,區(qū)塊鏈再將存儲(chǔ)的證書吊銷清單替換為更新后的證書吊銷清單,或者根據(jù)更新后的證書吊銷清單更改存儲(chǔ)的證書吊銷清單。
交易模塊102,用于當(dāng)所述節(jié)點(diǎn)上的智能合約接收到攜帶交易參數(shù)的交易請(qǐng)求后,訪問所述區(qū)塊鏈上的權(quán)限吊銷系統(tǒng),基于所述權(quán)限吊銷系統(tǒng)、所述交易參數(shù)及所述節(jié)點(diǎn)上的證書吊銷清單對(duì)所述交易請(qǐng)求的權(quán)限進(jìn)行驗(yàn)證,根據(jù)驗(yàn)證結(jié)果響應(yīng)或拒絕響應(yīng)所述交易請(qǐng)求。
本實(shí)施例中,區(qū)塊鏈上的每個(gè)節(jié)點(diǎn)都會(huì)存儲(chǔ)運(yùn)行區(qū)塊鏈上的智能合約,一個(gè)智能合約是一套以數(shù)字形式定義的承諾(promises),包括合約參與方可以在上面執(zhí)行這些承諾的協(xié)議。當(dāng)一個(gè)攜帶交易參數(shù)的交易請(qǐng)求傳到區(qū)塊鏈的節(jié)點(diǎn)上時(shí),這個(gè)交易參數(shù)會(huì)被記錄到該節(jié)點(diǎn)對(duì)應(yīng)的事務(wù)記錄上并同時(shí)傳給與該交易參數(shù)對(duì)應(yīng)的智能合約去運(yùn)行,并由該交易參數(shù)對(duì)應(yīng)的智能合約上的代碼對(duì)智能合約的自身數(shù)據(jù)進(jìn)行更新。
其中,交易參數(shù)包括證書信息及對(duì)應(yīng)的證書權(quán)限,證書信息包括證書頒發(fā)機(jī)構(gòu)、證書序列號(hào)、證書有效期、證書所有者的用戶信息等。
當(dāng)節(jié)點(diǎn)上的智能合約接收到攜帶交易參數(shù)的交易請(qǐng)求后,通過訪問區(qū)塊鏈上的權(quán)限吊銷系統(tǒng)以獲取交易參數(shù)中的證書信息及對(duì)應(yīng)的證書權(quán)限,但該交易參數(shù)中有可能有證書權(quán)限也有可能沒有證書權(quán)限,權(quán)限吊銷系統(tǒng)用于處理相關(guān)的權(quán)限事宜,例如權(quán)限吊銷系統(tǒng)可以執(zhí)行對(duì)交易參數(shù)進(jìn)行解析等。在對(duì)交易請(qǐng)求的權(quán)限進(jìn)行驗(yàn)證時(shí),如果能夠從交易參數(shù)中獲取到證書信息及證書權(quán)限,則將證書信息與智能合約對(duì)應(yīng)的節(jié)點(diǎn)上的證書吊銷清單中的已吊銷證書信息進(jìn)行比對(duì),以驗(yàn)證該證書信息是否為已吊銷證書信息,如果該證書信息是已吊銷證書信息,則該交易請(qǐng)求無權(quán)限進(jìn)行交易,如果該證書信息不是已吊銷證書信息,則該交易請(qǐng)求有權(quán)限進(jìn)行交易。
在一優(yōu)選的實(shí)施例中,在上述圖4的實(shí)施例的基礎(chǔ)上,上述交易模塊102進(jìn)一步包括:
訪問單元,用于通過所述權(quán)限吊銷系統(tǒng)對(duì)所述交易參數(shù)進(jìn)行解析;
驗(yàn)證單元,用于當(dāng)解析得到證書信息及證書權(quán)限時(shí),分析所述證書信息是否屬于所述證書吊銷清單中的已吊銷證書信息,以對(duì)所述交易請(qǐng)求的權(quán)限進(jìn)行驗(yàn)證;
第一處理單元,用于若所述證書信息屬于所述證書吊銷清單中的已吊銷證書信息,則拒絕響應(yīng)所述交易請(qǐng)求;
第二處理單元,用于若所述證書信息屬于所述證書吊銷清單中的未吊銷證書信息,則響應(yīng)所述交易請(qǐng)求。
本實(shí)施例中,如果區(qū)塊鏈的節(jié)點(diǎn)上運(yùn)行或存儲(chǔ)的智能合約接收到攜帶交易參數(shù)的交易請(qǐng)求后,可以通過預(yù)先確定的地址訪問該區(qū)塊鏈鏈上的權(quán)限吊銷系統(tǒng)以對(duì)該交易請(qǐng)求的權(quán)限進(jìn)行校驗(yàn),具體地,在訪問該區(qū)塊鏈鏈上的權(quán)限吊銷系統(tǒng)時(shí),由權(quán)限吊銷系統(tǒng)對(duì)交易參數(shù)進(jìn)行解析,如果解析得到證書信息但未解析得到證書權(quán)限,則說明該交易請(qǐng)求無權(quán)限進(jìn)行交易,智能合約拒絕該交易請(qǐng)求;如果解析得到證書信息及證書權(quán)限,則進(jìn)一步分析證書信息是否屬于證書吊銷清單中的已吊銷證書信息,具體地,可以將證書信息與證書吊銷清單中的已吊銷證書信息一一進(jìn)行比對(duì),以確定該證書信息是否屬于吊銷清單中的已吊銷證書信息。若證書信息屬于證書吊銷清單中的已吊銷證書信息,則該交易請(qǐng)求無權(quán)限進(jìn)行交易,智能合約拒絕響應(yīng)該交易請(qǐng)求;如果證書信息不屬于證書吊銷清單中的已吊銷證書信息,則該交易請(qǐng)求有權(quán)限進(jìn)行交易,智能合約響應(yīng)該交易請(qǐng)求。
另外,如果從交易參數(shù)中只能解析得到證書信息,但解析后未能夠得到證書權(quán)限,則該交易請(qǐng)求也無權(quán)限進(jìn)行交易。
本實(shí)施例在對(duì)交易請(qǐng)求的權(quán)限進(jìn)行驗(yàn)證時(shí),通過訪問區(qū)塊鏈上的權(quán)限吊銷系統(tǒng),由權(quán)限吊銷系統(tǒng)對(duì)交易參數(shù)進(jìn)行解析,在解析得到證書信息及證書權(quán)限時(shí),通過分析證書信息是否屬于證書吊銷清單中的已吊銷證書信息來對(duì)交易請(qǐng)求的權(quán)限進(jìn)行驗(yàn)證,能夠提高交易數(shù)據(jù)處理的速率。
在一優(yōu)選的實(shí)施例中,在上述的實(shí)施例的基礎(chǔ)上,證書吊銷清單中還記錄有未吊銷證書信息對(duì)應(yīng)的各分權(quán)限是否被吊銷的信息,若所述證書信息屬于未吊銷證書信息,所述第二處理單元包括:
比對(duì)子單元,用于將未吊銷證書信息對(duì)應(yīng)的各分權(quán)限分別與所述證書吊銷清單中各未吊銷證書信息對(duì)應(yīng)的證書權(quán)限進(jìn)行比對(duì);
第三處理子單元,用于若有分權(quán)限未吊銷,則響應(yīng)所述交易請(qǐng)求;
第四處理子單元,用于若各分權(quán)限均已吊銷,則拒絕響應(yīng)所述交易請(qǐng)求。
本實(shí)施例中,一個(gè)證書信息對(duì)應(yīng)多個(gè)分權(quán)限,為了使得用戶在部分分權(quán)限被吊銷后,還可以通過證書信息在區(qū)塊鏈上執(zhí)行其他證書權(quán)限事務(wù),本實(shí)施例在證書吊銷清單中記錄了證書信息下對(duì)應(yīng)的各分權(quán)限是否被吊銷的信息,如果證書信息未被吊銷,則進(jìn)一步將未吊銷證書信息對(duì)應(yīng)的各分權(quán)限分別與證書吊銷清單中各未吊銷證書信息對(duì)應(yīng)的證書權(quán)限進(jìn)行比對(duì),若有分權(quán)限未吊銷,則響應(yīng)交易請(qǐng)求,若各分權(quán)限均已吊銷,則拒絕響應(yīng)交易請(qǐng)求。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。