
本發(fā)明涉及區(qū)塊鏈
技術(shù)領(lǐng)域:
,尤其涉及一種區(qū)塊鏈權(quán)限控制方法、裝置及節(jié)點設備。
背景技術(shù):
:區(qū)塊鏈是由區(qū)塊鏈網(wǎng)絡中所有節(jié)點共同參與維護的去中心化分布式數(shù)據(jù)庫系統(tǒng),它是由一系列基于密碼學方法產(chǎn)生的數(shù)據(jù)塊組成,每個數(shù)據(jù)塊即為區(qū)塊鏈中的一個區(qū)塊。根據(jù)產(chǎn)生時間的先后順序,區(qū)塊被有序地鏈接在一起,形成一個數(shù)據(jù)鏈條,被形象地稱為區(qū)塊鏈。區(qū)塊鏈有其特有的區(qū)塊產(chǎn)生、交易產(chǎn)生和驗證協(xié)議,具有不可篡改、不可偽造和完全可追溯等安全特性。區(qū)塊鏈網(wǎng)絡基于P2P網(wǎng)絡,每個參與交易和區(qū)塊存儲、驗證、轉(zhuǎn)發(fā)的P2P網(wǎng)絡節(jié)點都是一個區(qū)塊鏈網(wǎng)絡中的節(jié)點。區(qū)塊鏈數(shù)據(jù)對每個節(jié)點是完全公開的,節(jié)點可以隨意查看任何一個區(qū)塊任意一筆交易的信息。由上,相關(guān)技術(shù)中的區(qū)塊鏈,由于節(jié)點加入鏈不受限制,鏈上的數(shù)據(jù)完全開放,適合于一些公眾化的、不涉及隱私的信息存儲,但是并不適合于區(qū)塊鏈上的數(shù)據(jù)具有隱私性的信息存儲,不能實現(xiàn)對賬戶的區(qū)塊鏈操作進行限制。技術(shù)實現(xiàn)要素:為克服相關(guān)技術(shù)中存在的問題,本發(fā)明提供一種區(qū)塊鏈權(quán)限控制方法、裝置及節(jié)點設備。其中,第一方面,提供一種區(qū)塊鏈權(quán)限控制方法,包括:接收節(jié)點設備發(fā)送的目標信息;獲取所述節(jié)點設備所配置賬戶的賬戶地址;根據(jù)所述賬戶地址,從存儲有所述賬戶地址和所述賬戶地址對應的賬戶權(quán)限的預設區(qū)塊中,獲取所述賬戶地址對應的賬戶權(quán)限;根據(jù)所述賬戶權(quán)限,對所述目標信息進行相應的處理。第二方面,提供一種區(qū)塊鏈權(quán)限控制方法,應用于區(qū)塊鏈網(wǎng)絡中的節(jié)點設備,包括:接收到交易產(chǎn)生請求時,獲取所配置賬戶的賬戶地址;根據(jù)所述賬戶地址,從存儲有賬戶地址和賬戶權(quán)限對應關(guān)系的區(qū)塊中,獲取所述賬戶地址對應的賬戶權(quán)限;當所述賬戶權(quán)限包括產(chǎn)生交易的權(quán)限時,產(chǎn)生并發(fā)送交易。第三方面,提供一種區(qū)塊鏈權(quán)限控制裝置,包括:信息接收模塊,被配置為接收節(jié)點設備發(fā)送的目標信息;賬戶地址獲取模塊,被配置為獲取所述節(jié)點設備所配置賬戶的賬戶地址;賬戶權(quán)限獲取模塊,被配置為根據(jù)所述賬戶地址,從存儲有所述賬戶地址和所述賬戶地址對應的賬戶權(quán)限的預設區(qū)塊中,獲取所述賬戶地址對應的賬戶權(quán)限;處理模塊,被配置為根據(jù)所述賬戶權(quán)限,對所述目標信息進行相應的處理。第四方面,提供一種區(qū)塊鏈權(quán)限控制裝置,應用于區(qū)塊鏈網(wǎng)絡中的節(jié)點設備,包括:交易產(chǎn)生請求接收模塊,被配置為接收到交易產(chǎn)生請求時,獲取所配置賬戶的賬戶地址;賬戶權(quán)限獲取模塊,被配置為根據(jù)所述賬戶地址,從存儲有賬戶地址和賬戶權(quán)限對應關(guān)系的區(qū)塊中,獲取所述賬戶地址對應的賬戶權(quán)限;交易產(chǎn)生模塊,被配置為在所述賬戶權(quán)限包括產(chǎn)生交易的權(quán)限時,產(chǎn)生并發(fā)送交易。第五方面,提供一種計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包含能夠由可編程的裝置執(zhí)行的計算機程序,所述計算機程序具有當由所述可編程的裝置執(zhí)行時用于執(zhí)行上述第一方面的方法的代碼部分。第六方面,提供一種非臨時性計算機可讀存儲介質(zhì),所述非臨時性計算機可讀存儲介質(zhì)中包括一個或多個程序,所述一個或多個程序用于執(zhí)行上述第一方面的方法。第七方面,提供一種節(jié)點設備,包括:上述第六方面的非臨時性計算機可讀存儲介質(zhì);以及一個或者多個處理器,用于執(zhí)行所述非臨時性計算機可讀存儲介質(zhì)中的程序。第八方面,提供一種計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包含能夠由可編程的裝置執(zhí)行的計算機程序,所述計算機程序具有當由所述可編程的裝置執(zhí)行時用于執(zhí)行上述第二方面的方法的代碼部分。第九方面,提供一種非臨時性計算機可讀存儲介質(zhì),所述非臨時性計算機可讀存儲介質(zhì)中包括一個或多個程序,所述一個或多個程序用于執(zhí)行上述第二方面的方法。第十方面,提供一種節(jié)點設備,包括:上述第九方面的非臨時性計算機可讀存儲介質(zhì);以及一個或者多個處理器,用于執(zhí)行所述非臨時性計算機可讀存儲介質(zhì)中的程序。本公開中每個節(jié)點設備配置有相應的賬戶,通過對賬戶進行權(quán)限控制,可實現(xiàn)將不同的節(jié)點設備的權(quán)限進行限制,以保證區(qū)塊鏈數(shù)據(jù)的安全性和隱私性;另一方面,通過對節(jié)點設備所配置賬戶的接入權(quán)限進行控制,可讓區(qū)塊鏈成為私有鏈網(wǎng)絡,防止不相關(guān)節(jié)點接入網(wǎng)絡,提高區(qū)塊鏈的安全性;且通過具有賬戶管理權(quán)限的節(jié)點設備發(fā)送的交易,可實現(xiàn)對賬戶權(quán)限的設置,將各個賬戶對應的賬戶地址和權(quán)限記錄到區(qū)塊鏈中,使得每個賬戶的權(quán)限可在區(qū)塊鏈中查詢得到,可防止賬戶權(quán)限被篡改,保證區(qū)塊鏈的安全性。應當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性和解釋性的,并不能限制本發(fā)明。本發(fā)明的其他特征和優(yōu)點將在隨后的具體實施方式部分予以詳細說明。附圖說明此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本發(fā)明的實施例,并與說明書一起用于解釋本發(fā)明的原理。圖1是本公開一實施例的區(qū)塊鏈網(wǎng)絡的示意圖;圖2是本公開一實施例的節(jié)點設備的結(jié)構(gòu)示意圖;圖3是本公開一實施例的區(qū)塊鏈權(quán)限控制方法的流程示意圖;圖4是本公開一實施例的賬戶地址和賬戶權(quán)限的對應關(guān)系寫入?yún)^(qū)塊的流程示意圖;圖5是本公開一實施例的節(jié)點設備間建立網(wǎng)絡連接的示意圖;圖6是本公開一實施例的節(jié)點設備對交易進行驗證的示意圖;圖7是本公開一實施例的區(qū)塊的區(qū)塊頭的數(shù)據(jù)結(jié)構(gòu)示意圖;圖8是本公開一實施例的節(jié)點設備對接收到的區(qū)塊的驗證流程示意圖;圖9是本公開一實施例的區(qū)塊鏈權(quán)限控制裝置的框圖;圖10是本公開另一實施例的區(qū)塊鏈權(quán)限控制裝置的框圖;圖11是根據(jù)一示例性實施例示出的一種用于區(qū)塊鏈權(quán)限控制方法的裝置的框圖。具體實施方式以下結(jié)合附圖對本公開的具體實施方式進行詳細說明。應當理解的是,此處所描述的具體實施方式僅用于說明和解釋本公開,并不用于限制本公開。在對本公開提供的區(qū)塊鏈權(quán)限控制方法、裝置及節(jié)點設備進行說明之前,先對本公開各個實施例所涉及的區(qū)塊鏈進行介紹。區(qū)塊鏈節(jié)點:區(qū)塊鏈是由區(qū)塊鏈網(wǎng)絡中所有節(jié)點共同參與維護的去中心化分布式數(shù)據(jù)庫系統(tǒng),它是由一系列基于密碼學方法產(chǎn)生的數(shù)據(jù)塊組成,每個數(shù)據(jù)塊即為區(qū)塊鏈中的一個區(qū)塊。根據(jù)產(chǎn)生時間的先后順序,區(qū)塊被有序地鏈接在一起,形成一個數(shù)據(jù)鏈條,被形象地稱為區(qū)塊鏈。下面對區(qū)塊鏈網(wǎng)絡的一些概念進行介紹。區(qū)塊鏈網(wǎng)絡中的節(jié)點可以稱為區(qū)塊鏈節(jié)點,其中區(qū)塊鏈網(wǎng)絡基于P2P(PeertoPeer,對等網(wǎng)絡)網(wǎng)絡,每個參與交易和區(qū)塊存儲、驗證、轉(zhuǎn)發(fā)的P2P網(wǎng)絡節(jié)點都是一個區(qū)塊鏈網(wǎng)絡中的節(jié)點。用戶身份:區(qū)塊鏈中的用戶身份可以使用公鑰或者是根據(jù)該公鑰生成的賬戶地址表示,并且公鑰和私鑰是成對出現(xiàn)的,其中私鑰由用戶掌握而不發(fā)布到上述的區(qū)塊鏈網(wǎng)絡中,公鑰或者上述的賬戶地址可隨意發(fā)布在區(qū)塊鏈網(wǎng)絡中。其中,公鑰可以通過特定的哈希和編碼后成為上述的賬戶地址。值得一提的是,用戶身份和區(qū)塊鏈節(jié)點不存在一一對應關(guān)系,用戶可以在任意一個區(qū)塊鏈節(jié)點上使用自己的私鑰。區(qū)塊鏈數(shù)據(jù)寫入:由區(qū)塊鏈節(jié)點通過向區(qū)塊鏈網(wǎng)絡發(fā)布交易(Transaction)實現(xiàn)向區(qū)塊鏈寫入數(shù)據(jù)。該交易包括:區(qū)塊鏈節(jié)點按照預設的交易數(shù)據(jù)格式對生成的交易數(shù)據(jù)包,以及利用該區(qū)塊鏈節(jié)點自己的私鑰對該交易數(shù)據(jù)包進行的數(shù)字簽名,該數(shù)字簽名用于證明該區(qū)塊鏈節(jié)點的用戶的身份;而后,該交易被發(fā)布到區(qū)塊鏈網(wǎng)絡后,被區(qū)塊鏈網(wǎng)絡中的“礦工”(即執(zhí)行PoW(ProofOfWork,工作證明)共識競爭機制的區(qū)塊鏈節(jié)點)記錄入?yún)^(qū)塊鏈中產(chǎn)生的新區(qū)塊,并將該新區(qū)塊發(fā)布到區(qū)塊鏈網(wǎng)絡中,在該新區(qū)塊以及該新區(qū)塊所記錄的交易其他區(qū)塊鏈節(jié)點驗證通過和接受后,該新區(qū)塊所記錄的交易即被寫入?yún)^(qū)塊鏈。其中,區(qū)塊鏈中的新區(qū)塊是由上述的“礦工”通過執(zhí)行PoW或PoS等共識競爭機制而定期產(chǎn)生的,因此產(chǎn)生新區(qū)塊的時間間隔通常和上述的預設技術(shù)要求相關(guān),通過設置不同的預設技術(shù)要求可以改變區(qū)塊鏈產(chǎn)生新區(qū)塊的時間間隔。參見圖1為本公開一實施例的區(qū)塊鏈網(wǎng)絡的示意圖。區(qū)塊鏈網(wǎng)絡100中包括:一個或多個節(jié)點設備,這些節(jié)點設備可以各種形式來實施,例如,可以包括諸如手機、智能電話、筆記本電腦、數(shù)字廣播接收器、PDA(個人數(shù)字助理)、PAD(平板電腦)、PMP(便攜式多媒體播放器)、服務器、礦機等。在本公開的實施例中,每個節(jié)點設備配置有相應的賬戶,通過對賬戶進行權(quán)限控制,可實現(xiàn)將不同的節(jié)點設備的權(quán)限進行限制,以保證區(qū)塊鏈數(shù)據(jù)的安全性和隱私性。另一方面,通過對節(jié)點設備所配置賬戶的接入權(quán)限進行控制,可讓區(qū)塊鏈成為私有鏈網(wǎng)絡,防止不相關(guān)節(jié)點接入網(wǎng)絡,提高區(qū)塊鏈的安全性。參見圖2為本公開一實施例的節(jié)點設備的結(jié)構(gòu)示意圖。節(jié)點設備200包括:接收單元201、處理單元202、存儲單元203和發(fā)送單元204等。接收單元201,被配置為通過一個或多個網(wǎng)絡,經(jīng)由一個或多個網(wǎng)絡協(xié)議,進行信息接收。接收的信息可包括:交易、新區(qū)塊等。處理單元202,被配置為進行信息處理,例如,當接收單元201接收到區(qū)塊鏈交易時,確定交易中包含的數(shù)據(jù),驗證交易的合法性等。在一些實施例中,處理單元202,還被配置為生成賬戶地址,例如,利用包含在接收到的交易請求中的公鑰,生成賬戶地址,或根據(jù)設定的規(guī)則生成賬戶地址。存儲單元203,被配置為進行信息存儲,例如,存儲用于授權(quán)交易的規(guī)則和算法、存儲區(qū)塊鏈等。發(fā)送單元204,被配置為經(jīng)由一個或多個網(wǎng)絡,采用一個或多個網(wǎng)絡協(xié)議,進行信息發(fā)送。發(fā)送的信息可包括:交易、新區(qū)塊以及各種請求(例如,連接請求)等。參見圖3,為本公開一實施例的區(qū)塊鏈權(quán)限控制方法的流程示意圖。該區(qū)塊鏈權(quán)限控制方法包括以下步驟:在步驟301中,接收節(jié)點設備發(fā)送的目標信息。在本公開的實施例中,目標信息包括:網(wǎng)絡連接請求,交易,以及區(qū)塊等等。在步驟302中,獲取節(jié)點設備所配置賬戶的賬戶地址。在步驟303中,根據(jù)賬戶地址,從存儲有賬戶地址和賬戶地址對應的賬戶權(quán)限的預設區(qū)塊中,獲取賬戶地址對應的賬戶權(quán)限。在本公開的實施例中,賬戶地址和賬戶地址對應的賬戶權(quán)限,被存儲到一預設區(qū)塊中。在一個實施例中,可將賬戶地址和賬戶權(quán)限的對應關(guān)系存儲到創(chuàng)始區(qū)塊(即預設區(qū)塊)中,使得節(jié)點設備在初始化,同步了創(chuàng)始區(qū)塊后即可到創(chuàng)始區(qū)塊中進行查詢。在另一些實施例中,還可按照圖4所示的流程將節(jié)點設備的賬戶權(quán)限和賬戶權(quán)限寫入到預設區(qū)塊中。在步驟304中,根據(jù)賬戶權(quán)限,對目標信息進行相應的處理。在本公開的實施例中,根據(jù)目標信息的不同,以及賬戶權(quán)限的不同,對目標信息的處理方式即不相同,例如,對于網(wǎng)絡連接請求,根據(jù)賬戶權(quán)限對其進行的處理可包括響應網(wǎng)絡連接請求,進行網(wǎng)絡連接。賬戶地址和賬戶權(quán)限的對應關(guān)系寫入?yún)^(qū)塊參見圖4,為本公開一實施例的賬戶地址和賬戶權(quán)限的對應關(guān)系寫入?yún)^(qū)塊的流程示意圖。在步驟401中,目標節(jié)點設備接收待分配權(quán)限的節(jié)點設備發(fā)送的賬戶地址。在本公開的一實施例中,目標節(jié)點設備為配置了具有賬戶管理權(quán)限的賬戶的節(jié)點設備。在一個實施例中,為了保證區(qū)塊鏈網(wǎng)絡中有目標節(jié)點設備可執(zhí)行賬戶權(quán)限分配的處理,在創(chuàng)世區(qū)塊中,至少應記錄一個具有賬戶管理權(quán)限的賬戶的信息,使得配置該賬戶的節(jié)點設備,可通過向區(qū)塊鏈網(wǎng)絡中發(fā)布交易,實現(xiàn)將各賬戶的賬戶權(quán)限寫入到區(qū)塊鏈中。賬戶地址,是由配置了待分配權(quán)限賬戶的節(jié)點設備生成并發(fā)送給目標節(jié)點設備的。在一個實施例中,配置了待分配權(quán)限賬戶的節(jié)點設備可根據(jù)公鑰生成賬戶地址。在步驟402中,目標節(jié)點設備確定配置了待分配權(quán)限賬戶的節(jié)點設備的權(quán)限。在一個實施例中,賬戶的權(quán)限可為有賬戶管理權(quán)限的節(jié)點設備根據(jù)賬戶的角色為賬戶分配的。或者,也可是在創(chuàng)始區(qū)塊或一特定區(qū)塊中將所有賬戶的權(quán)限設定好,由此,只需要根據(jù)賬戶地址到創(chuàng)始區(qū)塊或特征區(qū)塊進行查詢,即可確定待分配權(quán)限賬戶的權(quán)限。在步驟403中,目標節(jié)點設備向區(qū)塊鏈網(wǎng)絡發(fā)布包括待分配權(quán)限賬戶的賬戶地址和權(quán)限的交易。在步驟404中,區(qū)塊鏈網(wǎng)絡中的節(jié)點設備,進行挖礦,將交易記錄到區(qū)塊鏈中。由此,使得賬戶的賬戶地址和權(quán)限以交易的形式記錄在區(qū)塊鏈的區(qū)塊中,該區(qū)塊即為上述步驟303中的預設區(qū)塊。某個節(jié)點設備配置了已記錄到區(qū)塊鏈中的賬戶,則該節(jié)點設備就具有了所配置賬戶的權(quán)限,可以進行權(quán)限范圍內(nèi)的操作。參見表1,為本公開一實施例的節(jié)點設備可包括的賬戶權(quán)限。表1通過上述步驟將賬戶的權(quán)限存儲到區(qū)塊鏈中的區(qū)塊后,具有賬戶管理權(quán)限的節(jié)點設備,還可通過發(fā)布交易的方式,對賬戶的權(quán)限進行修改。本公開實施例中,通過具有賬戶管理權(quán)限的節(jié)點設備發(fā)送的交易,可實現(xiàn)對賬戶權(quán)限的設置,將各個賬戶對應的賬戶地址和權(quán)限記錄到區(qū)塊鏈中,使得每個賬戶的權(quán)限可在區(qū)塊鏈中查詢得到,可防止賬戶權(quán)限被篡改,保證區(qū)塊鏈的安全性。節(jié)點設備加入到區(qū)塊鏈網(wǎng)絡(即與區(qū)塊鏈網(wǎng)絡中的節(jié)點建立連接)在本公開的實施例中,若某個節(jié)點設備被配置了具有網(wǎng)絡連接權(quán)限的賬戶,則這個節(jié)點設備可加入到區(qū)塊鏈網(wǎng)絡。在一個實施例中,未加入到區(qū)塊鏈網(wǎng)絡但被配置了具有網(wǎng)絡連接權(quán)限的賬戶的節(jié)點設備可向區(qū)塊鏈網(wǎng)絡中的節(jié)點設備,發(fā)送連接請求以加入到區(qū)塊鏈網(wǎng)絡。當節(jié)點設備發(fā)送網(wǎng)絡連接請求時,需向被連接的節(jié)點設備(即區(qū)塊鏈網(wǎng)絡中的一節(jié)點設備)提供其具有網(wǎng)絡連接權(quán)限的證明。參見圖5,在一個實施例中,上述步驟301中的目標信息為網(wǎng)絡連接請求。在步驟501中,發(fā)起網(wǎng)絡連接請求的節(jié)點設備向被連接節(jié)點設備發(fā)起網(wǎng)絡連接請求,網(wǎng)絡連接請求中包括:賬戶的賬戶地址所對應的公鑰。在步驟502中,被連接節(jié)點設備收到連接請求后,根據(jù)公鑰獲取發(fā)起連接請求的節(jié)點設備的賬戶地址。在步驟503中,被連接節(jié)點設備根據(jù)賬戶地址,查詢區(qū)塊鏈中是否記錄了該賬戶地址所對應的權(quán)限,并判斷所記錄權(quán)限中是否包括網(wǎng)絡連接權(quán)限。如果該賬戶地址對應的權(quán)限包括網(wǎng)絡連接權(quán)限,則繼續(xù)執(zhí)行步驟504;如果未查詢到該賬戶地址對應的權(quán)限記錄或該賬戶地址對應的權(quán)限不包括網(wǎng)絡連接權(quán)限,則流程結(jié)束。在步驟504中,被連接節(jié)點設備向發(fā)起連接節(jié)點設備發(fā)送認證請求,認證請求中至少包括:認證碼。認證碼用于進一步確認發(fā)起連接節(jié)點設備的身份,認證碼可為任意數(shù)字或包含數(shù)字的圖片等。在步驟505中,發(fā)起連接節(jié)點設備使用賬戶地址所對應的私鑰對認證碼進行簽名后,發(fā)送給被連接節(jié)點設備。在步驟506中,被連接節(jié)點設備驗證簽名的正確性,如果驗證通過,則執(zhí)行網(wǎng)絡連接(P2P連接)過程;如果驗證不通過,則流程結(jié)束,發(fā)送連接節(jié)點設備不能加入到區(qū)塊鏈網(wǎng)絡中。在一個實施例中,被連接節(jié)點設備使用公鑰驗證簽名的正確性。在一個實施例中,網(wǎng)絡連接(P2P連接)過程可為發(fā)起連接節(jié)點設備與被連接節(jié)點設備通過“握手”通信,建立P2P連接,以使發(fā)起連接節(jié)點設備加入到區(qū)塊鏈網(wǎng)絡中。由此,在本公開實施例中,具有網(wǎng)絡連接權(quán)限的節(jié)點設備,才能接入到區(qū)塊鏈網(wǎng)絡中,可提高區(qū)塊鏈的安全性。交易驗證參見圖6,在該實施例中,目標信息為交易。節(jié)點設備接收到其它節(jié)點設備發(fā)送的交易后,除進行該交易的簽名是否正確、該交易的轉(zhuǎn)賬方是否具有足夠的余額等驗證外,還對交易的發(fā)送方節(jié)點設備的賬戶權(quán)限進行驗證。在一個實施例中,節(jié)點設備的處理單元可從存儲單元存儲的區(qū)塊鏈中,查詢發(fā)送方節(jié)點設備的權(quán)限是否包括與接收到的交易相對應的權(quán)限,以對發(fā)送方節(jié)點設備的權(quán)限進行驗證。當所有驗證(包括交易簽名是否正確、交易的轉(zhuǎn)賬方是否具有足夠的余額、是否具有相應權(quán)限等等)通過,則節(jié)點設備轉(zhuǎn)發(fā)并存儲該交易,如果任一驗證不通過,則節(jié)點設備丟棄該交易,不進行存儲和轉(zhuǎn)發(fā)工作。在一個實施例中,如果節(jié)點設備接收到的交易為轉(zhuǎn)賬交易,則除了上述的驗證外,還需要對接收方賬戶的權(quán)限進行驗證。節(jié)點設備的處理單元從存儲單元存儲的區(qū)塊鏈中,查詢接收方賬戶的權(quán)限是否包括接收轉(zhuǎn)賬,若接收方賬戶的權(quán)限包括接收轉(zhuǎn)賬,則轉(zhuǎn)發(fā)并存儲交易;如果任一驗證不通過,則節(jié)點設備丟棄該交易,不進行存儲和轉(zhuǎn)發(fā)。在本公開實施例中,節(jié)點設備在接收到交易時,對賬戶權(quán)限進行驗證,并根據(jù)驗證結(jié)果進行交易轉(zhuǎn)發(fā)和緩存,可過濾掉不具權(quán)限的賬戶所產(chǎn)生的交易,可提高網(wǎng)絡效率。區(qū)塊產(chǎn)生與驗證在本公開的一實施例中,區(qū)塊只能由配置了區(qū)塊產(chǎn)生權(quán)限賬戶的節(jié)點設備產(chǎn)生。區(qū)塊產(chǎn)生過程中,節(jié)點設備判斷自身所配置的賬戶是否具有產(chǎn)生區(qū)塊的權(quán)限,如果沒有產(chǎn)生區(qū)塊的權(quán)限,則不啟動產(chǎn)生區(qū)塊的工作。如果有產(chǎn)生區(qū)塊的權(quán)限,則執(zhí)行PoW或POS等算法,以產(chǎn)生新的區(qū)塊,并將產(chǎn)生的區(qū)塊發(fā)送到區(qū)塊鏈網(wǎng)絡中。參見圖7,在一個實施例中,為了可對產(chǎn)生區(qū)塊的賬戶權(quán)限進行驗證,在區(qū)塊的區(qū)塊頭中,增加一用于存儲產(chǎn)生新區(qū)塊的產(chǎn)生者信息的字段。產(chǎn)生者信息至少包括:產(chǎn)生新區(qū)塊的節(jié)點設備所配置賬戶的賬號地址所對應的公鑰,以及新區(qū)塊頭部數(shù)據(jù)的簽名。當任一節(jié)點設備成功挖礦后,將上述的產(chǎn)生者信息存儲到新區(qū)塊的新增字段中后,發(fā)送到區(qū)塊鏈網(wǎng)絡中。應理解,圖7所示為一示例性實施例的區(qū)塊頭的數(shù)據(jù)結(jié)構(gòu)示意圖,區(qū)塊頭中除了一個或兩個字段用于存儲上述的產(chǎn)生者信息外,其它的字段可根據(jù)區(qū)塊鏈實際進行選擇設置。參見圖8,在本公開的一實施例中,目標信息為區(qū)塊,接收到區(qū)塊的節(jié)點設備對區(qū)塊的驗證過程包括:在步驟801中,接收到新區(qū)塊的節(jié)點設備,使用新區(qū)塊的區(qū)塊頭中的公鑰,獲取賬戶地址。在步驟802中,查詢區(qū)塊鏈,驗證該賬戶地址是否具有產(chǎn)生區(qū)塊的權(quán)限;若具有產(chǎn)生區(qū)塊的權(quán)限,則執(zhí)行步驟803;若不具有產(chǎn)生區(qū)塊的權(quán)限,則該新區(qū)塊不合法。在步驟803中,根據(jù)公鑰對新區(qū)塊頭的簽名進行驗證,若驗證不通過,則確定該新區(qū)塊為不合法區(qū)塊;若驗證通過,則執(zhí)行步驟804。在步驟804中,驗證新區(qū)塊的PoW或PoS是否正確,以及驗證新區(qū)塊所記錄的每個交易是否合法;若任一驗證不通過,則確定該區(qū)塊不合法;若驗證均通過,則確定該新區(qū)塊為合法區(qū)塊。在本公開的實施例中,若新區(qū)塊不合法,則將新區(qū)塊丟棄,不進行存儲和轉(zhuǎn)發(fā);若新區(qū)塊合法,則進行存儲和轉(zhuǎn)發(fā)。應理解,上述步驟801-步驟803,以及步驟804的執(zhí)行順序可交換,即先執(zhí)行步驟804,再執(zhí)行步驟801-步驟803,或者上述步驟804,以及步驟801-步驟803可同時執(zhí)行,本公開實施例對此不作限制。本公開實施例,通過在區(qū)塊頭中增加存儲產(chǎn)生者信息的字段,可實現(xiàn)對區(qū)塊產(chǎn)生者的驗證,避免不合法區(qū)塊的產(chǎn)生,提高安全性。交易產(chǎn)生在本公開的一實施例中,節(jié)點設備在接收到交易產(chǎn)生請求時,首先,會判斷所配置的賬戶是否具有產(chǎn)生相應交易的權(quán)限,如果有,則產(chǎn)生交易并發(fā)送,如果沒有則提示或報錯后終止。在一個實施例中,節(jié)點設備的處理單元根據(jù)存儲單元中存儲的區(qū)塊鏈,查詢所配置的賬戶是否具有產(chǎn)生和發(fā)送相應交易的權(quán)限,這些相應交易可包括:賬戶管理、部署智能合約、調(diào)用智能合約、發(fā)起轉(zhuǎn)賬和數(shù)字貨幣發(fā)行等交易。在一個實施例中,如果交易為發(fā)起轉(zhuǎn)賬的交易,則節(jié)點設備還應驗證轉(zhuǎn)賬交易的接收方賬戶,是否具有接收轉(zhuǎn)賬的權(quán)限。節(jié)點設備的處理單元根據(jù)存儲單元中存儲的區(qū)塊鏈,根據(jù)交易的接收方賬方的賬戶地址,驗證接收方賬戶是否具有接收轉(zhuǎn)賬的權(quán)限。當交易發(fā)起方具有發(fā)起轉(zhuǎn)賬的權(quán)限,且接收方賬戶具有接收轉(zhuǎn)賬的權(quán)限時,節(jié)點設備發(fā)送轉(zhuǎn)賬交易。在本公開實施例中,具有發(fā)送交易權(quán)限的節(jié)點才可發(fā)送相關(guān)交易,可從交易產(chǎn)生的源頭即確定交易發(fā)送權(quán)限,提高其它節(jié)點設備對交易處理效率和網(wǎng)絡效率。在本公開的一實施例中,賬戶的角色包括:管理賬戶、貨幣發(fā)行賬戶、監(jiān)管賬戶、銀行、儲戶。各個角色所對應的權(quán)限參見表2所示。表2配置了管理賬戶的節(jié)點設備,接收到配置了待分配權(quán)限賬戶的節(jié)點設備發(fā)送的賬戶地址,則根據(jù)賬戶的角色,對待分配權(quán)限賬戶進行權(quán)限設置。在該實施例中,配置了管理賬戶的節(jié)點設備,具有的權(quán)限包括:網(wǎng)絡連接、賬戶權(quán)限管理、區(qū)塊產(chǎn)生等。配置了管理賬戶的節(jié)點設備接收到賬戶地址,可根據(jù)預設的分配規(guī)則,對其進行權(quán)限設置。例如,預設的分配規(guī)則可為賬戶地址與賬戶角色的對應關(guān)系,由此,根據(jù)賬戶地址,可確定賬戶角色,進一步可確定其對應的權(quán)限。賬戶的權(quán)限被確定后,配置了相應賬戶的節(jié)點設備,即具有相應的區(qū)塊鏈權(quán)限。在一個實施例中,配置了具有數(shù)字貨幣發(fā)行權(quán)限的賬戶的節(jié)點設備,可通過發(fā)布交易的方式,進行數(shù)字貨幣的發(fā)行。發(fā)布的交易至少包括以下信息:發(fā)行的數(shù)字貨幣量、所發(fā)行數(shù)字貨幣的所有者賬戶。交易發(fā)布到區(qū)塊鏈網(wǎng)絡后,區(qū)塊鏈網(wǎng)絡中的節(jié)點設備對交易進行驗證。驗證的內(nèi)容至少包括:交易的發(fā)布賬戶是否具有數(shù)字貨幣的發(fā)行權(quán)限、交易的簽名是否正確。由此,通過上述區(qū)塊鏈權(quán)限控制方法,可實現(xiàn)數(shù)字貨幣的發(fā)行,以及各個賬戶的權(quán)限設置;可建立用于進行數(shù)字貨幣發(fā)行的區(qū)塊鏈,保證區(qū)塊鏈數(shù)據(jù)的安全性。在本公開的另一實施例中,賬戶的角色包括:管理賬戶、身份證明發(fā)布賬戶、認證方用戶賬戶、被認證方用戶賬戶。各個角色所對應的權(quán)限參見表3所示。表3賬戶角色權(quán)限管理賬戶網(wǎng)絡連接、賬戶權(quán)限管理、區(qū)塊產(chǎn)生身份證明發(fā)布賬戶網(wǎng)絡連接、區(qū)塊產(chǎn)生、部署智能合約、調(diào)用智能合約認證方用戶賬戶網(wǎng)絡連接、調(diào)用智能合約、區(qū)塊產(chǎn)生被認證方用戶賬戶網(wǎng)絡連接、調(diào)用智能合約、區(qū)塊產(chǎn)生和上一實施例相同,配置了管理賬戶的節(jié)點設備,接收到配置了待分配權(quán)限賬戶的節(jié)點設備發(fā)送的賬戶地址,則根據(jù)賬戶的角色,對待分配權(quán)限賬戶進行權(quán)限設置。在該實施例中,配置了管理賬戶的節(jié)點設備,具有的權(quán)限包括:網(wǎng)絡連接、賬戶權(quán)限管理、區(qū)塊產(chǎn)生等。配置了管理賬戶的節(jié)點設備接收到賬戶地址,可根據(jù)預設的分配規(guī)則,對其進行權(quán)限設置。例如,預設的分配規(guī)則可為賬戶地址與賬戶角色的對應關(guān)系,由此,根據(jù)賬戶地址,可確定賬戶角色,進一步可確定其對應的權(quán)限。賬戶的權(quán)限被確定后,配置了相應賬戶的節(jié)點設備,即具有相應的區(qū)塊鏈權(quán)限。配置了身份證明發(fā)布賬戶的節(jié)點設備,可發(fā)布用于記錄用戶賬戶身份信息的智能合約,并負責向該智能合約中寫入用戶賬戶的身份信息。配置了認證方用戶賬戶的節(jié)點設備,可從智能合約中讀取被認證方用戶賬戶的身份信息,并基于此信息對被認證方進行認證。配置了被認證方用戶賬戶的節(jié)點設備,可產(chǎn)生賬戶地址,把地址和公鑰等身份信息告知身份證明發(fā)布賬戶,通過身份證明發(fā)布賬戶將身份信息記錄到智能合約中。由此,該實施例可實現(xiàn)身份認證,建立用于進行身份認證的區(qū)塊鏈,保證區(qū)塊鏈數(shù)據(jù)的安全性。參見圖9,相應的,本公開實施例還提供一種區(qū)塊鏈權(quán)限控制裝置。該區(qū)塊鏈權(quán)限控制裝置900包括:信息接收模塊901,被配置為接收節(jié)點設備發(fā)送的目標信息;賬戶地址獲取模塊902,被配置為獲取所述節(jié)點設備所配置賬戶的賬戶地址;賬戶權(quán)限獲取模塊903,被配置為根據(jù)所述賬戶地址,從存儲有所述賬戶地址和所述賬戶地址對應的賬戶權(quán)限的預設區(qū)塊中,獲取所述賬戶地址對應的賬戶權(quán)限;處理模塊904,被配置為根據(jù)所述賬戶權(quán)限,對所述目標信息進行相應的處理。在一個實施例中,裝置900還包括:賬戶地址接收模塊,被配置為接收所述節(jié)點設備發(fā)送的所配置賬戶的賬戶地址;權(quán)限分配模塊,被配置為為所述所配置賬戶分配賬戶權(quán)限;交易發(fā)布模塊,被配置為向區(qū)塊鏈網(wǎng)絡發(fā)布包括所述所配置賬戶的賬戶地址和賬戶權(quán)限的交易,所述交易用于將所述節(jié)點設備所配置賬戶的賬戶地址和賬戶權(quán)限存儲到所述預設區(qū)塊中。在一個實施例中,所述目標信息為網(wǎng)絡連接請求,所述網(wǎng)絡連接請求中包括:所述節(jié)點設備所配置賬戶的公鑰;所述賬戶地址獲取模塊902,被配置為根據(jù)所述公鑰,獲取所述所配置賬戶的所述賬戶地址。在一個實施例中,處理模塊904包括:認證請求發(fā)送子模塊,被配置為在所述賬戶地址所對應的賬戶權(quán)限包括網(wǎng)絡連接權(quán)限時,向所述節(jié)點設備發(fā)送認證請求,所述認證請求中至少包括:認證碼;簽名子模塊,被配置為接收所述節(jié)點設備使用所配置賬戶的所述賬戶地址所對應的私鑰對所述認證碼的簽名;驗證子模塊,被配置為根據(jù)所述賬戶地址對應的公鑰驗證所述簽名;連接建立子模塊,被配置為在所述簽名的驗證通過時,與所述節(jié)點設備建立網(wǎng)絡連接。在一個實施例中,所述目標信息為交易;所述處理模塊包括:交易處理子模塊,被配置為在所述節(jié)點設備所配置賬戶的賬戶權(quán)限包括產(chǎn)生交易的權(quán)限時,對接收到的所述交易進行轉(zhuǎn)發(fā)和存儲。在一個實施例中,所述目標信息為轉(zhuǎn)賬交易,所述轉(zhuǎn)賬交易中至少包括:接收方賬戶的賬戶地址;所述處理模塊包括:接收方賬戶權(quán)限獲取子模塊,被配置為在所述節(jié)點設備所配置賬戶的賬戶權(quán)限包括發(fā)起轉(zhuǎn)賬的權(quán)限時,根據(jù)所述接收方賬戶的賬戶地址,從存儲有所述接收方賬戶的賬戶地址和賬戶權(quán)限對應關(guān)系的區(qū)塊中獲取所述接收方賬戶的賬戶地址所對應的賬戶權(quán)限;轉(zhuǎn)賬交易處理子模塊,被配置為在所述接收方賬戶的賬戶地址所對應的賬戶權(quán)限包括接收轉(zhuǎn)賬的權(quán)限時,對所述轉(zhuǎn)賬交易進行轉(zhuǎn)發(fā)和存儲。在一個實施例中,所述目標信息為所述節(jié)點設備創(chuàng)建的區(qū)塊,所述區(qū)塊的區(qū)塊頭中包括用于記錄公鑰和區(qū)塊頭部數(shù)據(jù)的簽名的字段;所述賬戶地址獲取模塊,被配置為根據(jù)所述區(qū)塊的區(qū)塊頭中的公鑰,獲取所述賬戶地址。在一個實施例中,所述處理模塊包括:區(qū)塊處理子模塊,被配置為在所述節(jié)點設備所配置賬戶的賬戶權(quán)限包括產(chǎn)生區(qū)塊的權(quán)限時,對接收到的區(qū)塊進行轉(zhuǎn)發(fā)和存儲。參見圖10,相應的,本公開實施例還提供一種區(qū)塊鏈權(quán)限控制裝置。該區(qū)塊鏈權(quán)限控制裝置1000包括:交易產(chǎn)生請求接收模塊1001,被配置為接收到交易產(chǎn)生請求時,獲取所配置賬戶的賬戶地址;賬戶權(quán)限獲取模塊1002,被配置為根據(jù)所述賬戶地址,從存儲有賬戶地址和賬戶權(quán)限對應關(guān)系的區(qū)塊中,獲取所述賬戶地址對應的賬戶權(quán)限;交易產(chǎn)生模塊1003,被配置為在所述賬戶權(quán)限包括產(chǎn)生交易的權(quán)限時,產(chǎn)生并發(fā)送交易。在一個實施例中,所述交易為轉(zhuǎn)賬交易;所述裝置還包括:接收方轉(zhuǎn)換權(quán)限獲取模塊,被配置為在所述賬戶權(quán)限包括產(chǎn)生交易的權(quán)限時,根據(jù)接收方賬戶的賬戶地址,從存儲有所述接收方賬戶的賬戶地址和賬戶權(quán)限對應關(guān)系的區(qū)塊獲取所述接收方賬戶的賬戶地址的賬戶權(quán)限;轉(zhuǎn)賬交易產(chǎn)生模塊,被配置為在所述接收方賬戶的賬戶權(quán)限包括接收轉(zhuǎn)賬的權(quán)限時,產(chǎn)生并發(fā)送所述轉(zhuǎn)賬交易。關(guān)于上述實施例中的裝置,其中各個模塊執(zhí)行操作的具體方式已經(jīng)在有關(guān)該方法的實施例中進行了詳細描述,此處將不做詳細闡述說明。圖11是根據(jù)一示例性實施例示出的一種用于區(qū)塊鏈權(quán)限控制方法的裝置1100的框圖,該裝置1100可以是區(qū)塊鏈中的節(jié)點設備。如圖11所示,該裝置1100可以包括:處理器1101,存儲器1102,多媒體組件1103,輸入/輸出(I/O)接口1104,以及通信組件1105。其中,處理器1101用于控制該裝置110的整體操作,以完成上述的區(qū)塊鏈權(quán)限控制方法中的全部或部分步驟。存儲器1102用于存儲操作系統(tǒng),各種類型的數(shù)據(jù)以支持在該裝置1100的操作,這些數(shù)據(jù)的例如可以包括用于在該裝置1100上操作的任何應用程序或方法的指令,以及應用程序相關(guān)的數(shù)據(jù)。該存儲器1102可以由任何類型的易失性或非易失性存儲設備或者它們的組合實現(xiàn),例如靜態(tài)隨機存取存儲器(StaticRandomAccessMemory,簡稱SRAM),電可擦除可編程只讀存儲器(ElectricallyErasableProgrammableRead-OnlyMemory,簡稱EEPROM),可擦除可編程只讀存儲器(ErasableProgrammableRead-OnlyMemory,簡稱EPROM),可編程只讀存儲器(ProgrammableRead-OnlyMemory,簡稱PROM),只讀存儲器(Read-OnlyMemory,簡稱ROM),磁存儲器,快閃存儲器,磁盤或光盤。多媒體組件1103可以包括屏幕和音頻組件。其中屏幕例如可以是觸摸屏,音頻組件用于輸出和/或輸入音頻信號。例如,音頻組件可以包括一個麥克風,麥克風用于接收外部音頻信號。所接收的音頻信號可以被進一步存儲在存儲器1102或通過通信組件1105發(fā)送。音頻組件還包括至少一個揚聲器,用于輸出音頻信號。I/O接口1104為處理器1101和其他接口模塊之間提供接口,上述其他接口模塊可以是鍵盤,鼠標,按鈕等。這些按鈕可以是虛擬按鈕或者實體按鈕。通信組件1105用于該裝置110與其他設備之間進行有線或無線通信。無線通信,例如Wi-Fi,藍牙,近場通信(NearFieldCommunication,簡稱NFC),2G、3G或4G,或它們中的一種或幾種的組合,因此相應的該通信組件1105可以包括:Wi-Fi模塊,藍牙模塊,NFC模塊。在一示例性實施例中,裝置1100可以被一個或多個應用專用集成電路(ApplicationSpecificIntegratedCircuit,簡稱ASIC)、數(shù)字信號處理器(DigitalSignalProcessor,簡稱DSP)、數(shù)字信號處理設備(DigitalSignalProcessingDevice,簡稱DSPD)、可編程邏輯器件(ProgrammableLogicDevice,簡稱PLD)、現(xiàn)場可編程門陣列(FieldProgrammableGateArray,簡稱FPGA)、控制器、微控制器、微處理器或其他電子元件實現(xiàn),用于執(zhí)行上述的區(qū)塊鏈權(quán)限控制方法。在另一示例性實施例中,還提供了一種計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包含能夠由可編程的裝置執(zhí)行的計算機程序,所述計算機程序具有當由所述可編程的裝置執(zhí)行時用于執(zhí)行上述的區(qū)塊鏈權(quán)限控制方法的代碼部分。在另一示例性實施例中,還提供了一種包括指令的非臨時性計算機可讀存儲介質(zhì),例如包括指令的存儲器1102,上述指令可由裝置1100的處理器1101執(zhí)行以完成上述的區(qū)塊鏈權(quán)限控制方法。示例地,該非臨時性計算機可讀存儲介質(zhì)可以是ROM、隨機存取存儲器(RandomAccessMemory,簡稱RAM)、CD-ROM、磁帶、軟盤和光數(shù)據(jù)存儲設備等。流程圖中或在本發(fā)明的實施例中以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用于實現(xiàn)特定邏輯功能或過程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本發(fā)明實施方式的范圍包括另外的實現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時的方式或按相反的順序,來執(zhí)行功能,這應被本發(fā)明的實施例所述
技術(shù)領(lǐng)域:
的技術(shù)人員所理解。以上結(jié)合附圖詳細描述了本發(fā)明的優(yōu)選實施方式,但是,本發(fā)明并不限于上述實施方式中的具體細節(jié),在本發(fā)明的技術(shù)構(gòu)思范圍內(nèi),可以對本發(fā)明的技術(shù)方案進行多種簡單變型,這些簡單變型均屬于本發(fā)明的保護范圍。當前第1頁1 2 3