本說明書一個或多個實施例涉及區(qū)塊鏈,特別涉及一種基于區(qū)塊鏈的身份驗證方法、裝置、設備和介質(zhì)。
背景技術(shù):
1、區(qū)塊鏈(blockchain)是分布式數(shù)據(jù)存儲、點對點傳輸、共識機制、加密算法等計算機技術(shù)的新型應用模式。區(qū)塊鏈系統(tǒng)中按照時間順序?qū)?shù)據(jù)區(qū)塊以順序相連的方式組合成鏈式數(shù)據(jù)結(jié)構(gòu),并以密碼學方式保證的不可篡改和不可偽造的分布式賬本。由于區(qū)塊鏈具有去中心化、信息不可篡改、自治性等特性,區(qū)塊鏈也受到人們越來越多的重視和應用。
2、去中心化金融(defi)、web?3.0和其他基于區(qū)塊鏈的應用的興起,激發(fā)了通過區(qū)塊鏈進行數(shù)據(jù)管理的需求。目前需要一種基于區(qū)塊鏈進行身份驗證的方案。
技術(shù)實現(xiàn)思路
1、本說明書一個或多個實施例提供一種基于區(qū)塊鏈的身份驗證方法、裝置、設備和介質(zhì)。
2、根據(jù)第一方面,提供一種基于區(qū)塊鏈的身份驗證方法,第一設備從第一用戶持有的用戶設備接收驗證信息;所述驗證信息包括零知識證明;所述零知識證明用于證明所述第一用戶持有已通過身份認證的憑證數(shù)據(jù)、且所述區(qū)塊鏈的狀態(tài)數(shù)據(jù)中存儲有基于所述憑證數(shù)據(jù)得到的第一承諾數(shù)據(jù);
3、所述第一設備基于所述驗證信息,向所述區(qū)塊鏈發(fā)送第一交易;
4、所述區(qū)塊鏈的節(jié)點根據(jù)所述第一交易,針對所述零知識證明進行驗證操作。
5、根據(jù)第二方面,提供一種基于區(qū)塊鏈的身份驗證方法,所述方法由區(qū)塊鏈的節(jié)點執(zhí)行;所述方法包括:
6、接收第一設備基于驗證信息發(fā)送的第一交易;所述驗證信息為所述第一設備從第一用戶持有的用戶設備獲取的;所述驗證信息包括零知識證明;所述零知識證明用于證明所述第一用戶持有已通過身份認證的憑證數(shù)據(jù)、且所述區(qū)塊鏈的狀態(tài)數(shù)據(jù)中存儲有基于所述憑證數(shù)據(jù)得到的第一承諾數(shù)據(jù);
7、根據(jù)所述第一交易,針對所述零知識證明進行驗證操作。
8、根據(jù)第三方面,提供一種基于區(qū)塊鏈的身份驗證裝置,所述裝置部署于區(qū)塊鏈的節(jié)點;所述裝置包括:
9、接收模塊,用于接收第一設備基于驗證信息發(fā)送的第一交易;所述驗證信息為所述第一設備從第一用戶持有的用戶設備獲取的;所述驗證信息包括零知識證明;所述零知識證明用于證明所述第一用戶持有已通過身份認證的憑證數(shù)據(jù)、且所述區(qū)塊鏈的狀態(tài)數(shù)據(jù)中存儲有基于所述憑證數(shù)據(jù)得到的第一承諾數(shù)據(jù);
10、驗證模塊,用于根據(jù)所述第一交易,針對所述零知識證明進行驗證操作。
11、根據(jù)第四方面,提供一種計算機可讀存儲介質(zhì),所述存儲介質(zhì)存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)上述第一方面或第二方面中任一項所述的方法。
12、根據(jù)第五方面,提供一種及計算設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執(zhí)行所述程序時實現(xiàn)上述第一方面或第二方面中任一項所述的方法。
13、本說明書的實施例提供的技術(shù)方案可以包括以下有益效果:
14、本說明書的實施例提供的基于區(qū)塊鏈的身份驗證方案,能夠通過區(qū)塊鏈系統(tǒng),對用于證明用戶持有憑證數(shù)據(jù)的零知識證明進行驗證,該憑證數(shù)據(jù)為已通過身份認證的憑證,以對用戶身份進行驗證。從而實現(xiàn)了在不泄露用戶個人隱私數(shù)據(jù)的情況下,對用戶的隱私數(shù)據(jù)進行去中心化管理,提高了用戶隱私數(shù)據(jù)的安全性,并且,能夠?qū)崿F(xiàn)用戶身份認證的憑證的可復用,使得用戶在不同項目中,無需重復做身份驗證。
15、應當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性和解釋性的,并不能限制本申請。
1.一種基于區(qū)塊鏈的身份驗證方法,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其中,所述區(qū)塊鏈的狀態(tài)數(shù)據(jù)中存儲有基于多個用戶的承諾數(shù)據(jù)得到的默克爾樹,其中,任一用戶的承諾數(shù)據(jù)對應于默克爾樹的一個葉子節(jié)點。
3.根據(jù)權(quán)利要求1所述的方法,其中,所述第一承諾數(shù)據(jù)由所述第一用戶對應的第一標識和所述憑證數(shù)據(jù)進行預設的哈希計算而確定。
4.根據(jù)權(quán)利要求1所述的方法,其中,在所述第一設備接收所述驗證信息之前,由第二設備執(zhí)行以下操作:
5.根據(jù)權(quán)利要求2所述的方法,其中,在所述第一設備接收所述驗證信息之前,由所述用戶設備執(zhí)行以下操作:
6.根據(jù)權(quán)利要求5所述的方法,其中,所述基于所述憑證數(shù)據(jù),生成零知識證明,包括:
7.根據(jù)權(quán)利要求6所述的方法,其中,所述基于所述憑證數(shù)據(jù)、所述第一標識、所述路徑和所述參考數(shù)據(jù),生成零知識證明,包括:
8.根據(jù)權(quán)利要求7所述的方法,其中,所述驗證信息還包括所述預設鹽值和所述第一標識;其中,所述基于所述驗證信息,向所述區(qū)塊鏈發(fā)送第一交易,包括:
9.一種基于區(qū)塊鏈的身份驗證方法,所述方法由區(qū)塊鏈的節(jié)點執(zhí)行;所述方法包括:
10.根據(jù)權(quán)利要求9所述的方法,其中,所述區(qū)塊鏈的狀態(tài)數(shù)據(jù)中存儲有基于多個用戶的承諾數(shù)據(jù)得到的默克爾樹,其中,任一用戶的承諾數(shù)據(jù)對應于默克爾樹的一個葉子節(jié)點。
11.根據(jù)權(quán)利要求9所述的方法,其中,所述第一承諾數(shù)據(jù)由所述第一用戶對應的第一標識和所述憑證數(shù)據(jù)進行預設的哈希計算而確定。
12.根據(jù)權(quán)利要求10所述的方法,其中,所述零知識證明通過如下方式生成:
13.根據(jù)權(quán)利要求12所述的方法,其中,所述基于所述憑證數(shù)據(jù)、所述第一標識、所述路徑和所述參考數(shù)據(jù),生成零知識證明,包括:
14.一種基于區(qū)塊鏈的身份驗證裝置,所述裝置部署于區(qū)塊鏈的節(jié)點;所述裝置包括:
15.一種計算機可讀存儲介質(zhì),其上存儲有計算機程序,當所述計算機程序在計算機中執(zhí)行時,令所述計算機執(zhí)行權(quán)利要求1-13中任一項所述的方法。
16.一種計算設備,包括存儲器和處理器,所述存儲器中存儲有可執(zhí)行代碼,所述處理器執(zhí)行所述可執(zhí)行代碼時,實現(xiàn)權(quán)利要求1-13中任一項所述的方法。