本發(fā)明涉及許可鏈上的用戶身份管理方法,通過在創(chuàng)世塊中預(yù)置管理合約和每人一個身份合約的方式,為許可鏈上層業(yè)務(wù)制定安全可擴展的用戶協(xié)議。
背景技術(shù):
區(qū)塊鏈(Block Chain)按照訪問和管理權(quán)限可以分為公有鏈和許可鏈。公有鏈?zhǔn)侵笡]有準(zhǔn)入機制,全世界任何人都可以根據(jù)公開協(xié)議,生成合法賬戶,參與讀取,發(fā)送交易,交易確認(rèn),甚至參與共識的區(qū)塊鏈。公有鏈沒有賬戶準(zhǔn)入機制,任何人都可以生成賬戶,再獲得一點代幣,承擔(dān)一些交易手續(xù)費就可以發(fā)起轉(zhuǎn)賬或其他合法交易。同時公鏈上公鑰地址是用戶的唯一標(biāo)識,對應(yīng)私鑰丟失即喪失對賬戶數(shù)據(jù)和資產(chǎn)的控制權(quán)。
許可鏈(Permissioned Chain)是指其共識過程受到預(yù)選節(jié)點控制的區(qū)塊鏈,由若干個機構(gòu)組成的共同體,每個機構(gòu)都運行著一個節(jié)點,而且為了使每個區(qū)塊生效需要獲得其中多數(shù)機構(gòu)的確認(rèn)。許可鏈上運行著實際的商業(yè)活動,需要嚴(yán)格的成員身份管理、方便的身份找回、細(xì)致的權(quán)限管理,以保證網(wǎng)絡(luò)運行的安全高效。所以許可鏈上的用戶身份需經(jīng)過審核,大多為實名制,與現(xiàn)實世界的身份關(guān)系對應(yīng)。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于針對現(xiàn)有技術(shù)的不足,提供一種基于許可鏈的用戶身份管理方法。
本發(fā)明的目的是通過以下技術(shù)方案實現(xiàn)的:一種基于許可鏈的用戶身份管理方法,包括以下步驟:
(1)在創(chuàng)世塊中配置身份管理系統(tǒng)合約,所述身份管理系統(tǒng)合約包含一個結(jié)構(gòu)為map(用戶公鑰=>身份合約)的“白名單”。
所述身份合約的屬性有:合約地址、公鑰地址、歷史公鑰地址列表、用戶信息、創(chuàng)建管理員、狀態(tài)、權(quán)限列表。其中狀態(tài)的可選值有:“正?!?、“停止”、“已刪”,權(quán)限列表中的權(quán)限的可選值有:“創(chuàng)建身份合約”(表示用戶能否創(chuàng)建下級用戶,生成新的身份合約)、“創(chuàng)建業(yè)務(wù)合約”(表示用戶能否創(chuàng)建業(yè)務(wù)相關(guān)的合約,非身份合約均為業(yè)務(wù)合約)。
(2)在創(chuàng)世塊中構(gòu)造生成“初始管理員”身份合約,所述初始管理員擁有“創(chuàng)建身份合約”的權(quán)限。
(3)在創(chuàng)世塊中將“初始管理員”身份合約加入“白名單”中。
(4)鏈從創(chuàng)世塊啟動,并持續(xù)接受交易并出塊,然后由“初始管理員”創(chuàng)建其余下級身份合約。創(chuàng)建方法為:
(4.1)用戶在鏈下生成好自己的公私鑰對,并提交“公鑰地址”和“身份信息”給初始管理員審核,審核通過后,初始管理員通過調(diào)用身份合約的構(gòu)造函數(shù),傳入用戶“公鑰地址”、“用戶信息”,發(fā)起“創(chuàng)建身份合約”交易,創(chuàng)建一級身份合約。構(gòu)造函數(shù)對每個用戶部署生成一個固定的合約地址,作為用戶的唯一標(biāo)識,并加入“白名單”,新創(chuàng)建的用戶狀態(tài)設(shè)置為“正?!保瑫r將發(fā)起交易的管理員設(shè)為該用戶的上級“創(chuàng)建管理員”。
所述“創(chuàng)建管理員”的權(quán)限包括:修改下屬身份合約的權(quán)限列表,為其賦予權(quán)限或回收權(quán)限;對下屬的身份合約采取凍結(jié)操作,如果用戶狀態(tài)是“正?!?,則將用戶狀態(tài)設(shè)置為“停止”;對下屬的身份合約采取解凍操作,如果用戶狀態(tài)是“停止”,則將用戶狀態(tài)設(shè)置為“正?!保粚ο聦俚纳矸莺霞s采取刪除操作,將用戶狀態(tài)設(shè)置為“已刪”。
(4.2)一級身份合約中被賦予了“創(chuàng)建身份合約”權(quán)限的用戶按照步驟1所述的方法,進(jìn)一步創(chuàng)建二級身份合約,如此進(jìn)行不斷創(chuàng)建。
(4.3)用戶如果遇到私鑰丟失,通過鏈下向上級“創(chuàng)建管理員”提交“新公鑰地址”,申請更換公鑰地址。上級“創(chuàng)建管理員”通過審核后,發(fā)起更換公鑰地址交易,傳入“新公鑰地址”,等待上鏈。鏈?zhǔn)盏浇灰缀?,將“舊公鑰地址”加入用戶“歷史公鑰列表”,將用戶的“公鑰地址”設(shè)置為“新公鑰地址”,并將“白名單”中“舊公鑰地址”的索引修改為“新公鑰地址”。
(5)節(jié)點在收到用戶交易請求后,提取出用戶“公鑰地址”,根據(jù)“公鑰地址”對該交易進(jìn)行判斷,若“公鑰地址”滿足合法條件,則為合法交易,否則為非法。對于合法交易,節(jié)點接收請求,廣播并上鏈;對于非法交易,節(jié)點直接拒絕請求,不會廣播,也不會上鏈。所述合法條件包括:
條件1:在“白名單”中存在。
條件2:其對應(yīng)的身份合約返回的狀態(tài)是“正?!薄?/p>
條件3:其對應(yīng)的身份合約需要具有該交易對應(yīng)的所需權(quán)限。
條件4:遞歸向上查找“創(chuàng)建管理員”的狀態(tài)都是“正常”。
本發(fā)明的有益效果在于:該方法解決了公有鏈沒有身份管理的弊端,通過在創(chuàng)世塊中預(yù)置管理合約和初始管理員,實現(xiàn)了不可篡改的初始權(quán)限和管理規(guī)則,迎合了現(xiàn)實商業(yè)環(huán)境中的多級用戶管理需求。
附圖說明
圖1為該方法的整體架構(gòu)圖。
具體實施方式
如圖1所示,一種基于許可鏈的用戶身份管理方法,包括以下步驟:
(1)在創(chuàng)世塊中配置身份管理系統(tǒng)合約,所述身份管理系統(tǒng)合約包含一個結(jié)構(gòu)為map(用戶公鑰=>身份合約)的“白名單”。
所述身份合約的屬性有:合約地址、公鑰地址、歷史公鑰地址列表、用戶信息、創(chuàng)建管理員、狀態(tài)、權(quán)限列表。其中狀態(tài)的可選值有:“正常”、“停止”、“已刪”,權(quán)限列表中的權(quán)限的可選值有:“創(chuàng)建身份合約”(表示用戶能否創(chuàng)建下級用戶,生成新的身份合約)、“創(chuàng)建業(yè)務(wù)合約”(表示用戶能否創(chuàng)建業(yè)務(wù)相關(guān)的合約,非身份合約均為業(yè)務(wù)合約)。所述身份合約可以由任意權(quán)限者發(fā)起只讀操作,但只能由“創(chuàng)建管理員”發(fā)起寫操作。
(2)在創(chuàng)世塊中構(gòu)造生成“初始管理員”身份合約,所述初始管理員擁有“創(chuàng)建身份合約”的權(quán)限。
(3)在創(chuàng)世塊中將“初始管理員”身份合約加入“白名單”中。
(4)鏈從創(chuàng)世塊啟動,并持續(xù)接受交易并出塊,然后由“初始管理員”創(chuàng)建其余下級身份合約。創(chuàng)建方法為:
(4.1)用戶在鏈下生成好自己的公私鑰對,并提交“公鑰地址”和“身份信息”給初始管理員審核,審核通過后,初始管理員通過調(diào)用身份合約的構(gòu)造函數(shù),傳入用戶“公鑰地址”、“用戶信息”,發(fā)起“創(chuàng)建身份合約”交易,創(chuàng)建一級身份合約。構(gòu)造函數(shù)對每個用戶部署生成一個固定的合約地址,作為用戶的唯一標(biāo)識,并加入“白名單”,新創(chuàng)建的用戶狀態(tài)設(shè)置為“正?!?,同時將發(fā)起交易的管理員設(shè)為該用戶的上級“創(chuàng)建管理員”。
所述“創(chuàng)建管理員”的權(quán)限包括:修改下屬身份合約的權(quán)限列表,為其賦予權(quán)限或回收權(quán)限;對下屬的身份合約采取凍結(jié)操作,如果用戶狀態(tài)是“正?!保瑒t將用戶狀態(tài)設(shè)置為“停止”;對下屬的身份合約采取解凍操作,如果用戶狀態(tài)是“停止”,則將用戶狀態(tài)設(shè)置為“正?!?;對下屬的身份合約采取刪除操作,將用戶狀態(tài)設(shè)置為“已刪”。
(4.2)一級身份合約中被賦予了“創(chuàng)建身份合約”權(quán)限的用戶按照步驟1所述的方法,進(jìn)一步創(chuàng)建二級身份合約,如此進(jìn)行不斷創(chuàng)建。
(4.3)用戶如果遇到私鑰丟失,通過鏈下向上級“創(chuàng)建管理員”提交“新公鑰地址”,申請更換公鑰地址。上級“創(chuàng)建管理員”通過審核后,發(fā)起更換公鑰地址交易,傳入“新公鑰地址”,等待上鏈。鏈?zhǔn)盏浇灰缀螅瑢ⅰ芭f公鑰地址”加入用戶“歷史公鑰列表”,將用戶的“公鑰地址”設(shè)置為“新公鑰地址”,并將“白名單”中“舊公鑰地址”的索引修改為“新公鑰地址”。
(5)節(jié)點在收到用戶交易請求后,提取出用戶“公鑰地址”,根據(jù)“公鑰地址”對該交易進(jìn)行判斷,若“公鑰地址”滿足合法條件,則為合法交易,否則為非法。對于合法交易,節(jié)點接收請求,廣播并上鏈;對于非法交易,節(jié)點直接拒絕請求,不會廣播,也不會上鏈。所述合法條件包括:
條件1:在“白名單”中存在。
條件2:其對應(yīng)的身份合約返回的狀態(tài)是“正?!?。
條件3:其對應(yīng)的身份合約需要具有該交易對應(yīng)的所需權(quán)限。
條件4:遞歸向上查找“創(chuàng)建管理員”的狀態(tài)都是“正?!薄?/p>