本技術(shù)涉及數(shù)據(jù)安全領(lǐng)域,特別涉及一種零知識證明(zero-knowledge?proof,zkp)生成方法、裝置、設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、zkp是一種密碼學協(xié)議,允許證明者向驗證者證明某個陳述是正確的,而不向驗證者透露除陳述本身外的任何額外信息。在多種場景下,需要生成zkp,例如,區(qū)塊鏈、分布式存儲以及隱私保護等等。
2、相關(guān)技術(shù)中,zkp可以通過在線(online)集成開發(fā)環(huán)境(integrated?developmentenvironment,ide)或者在線證明(online?proof)生成工具生成。這種zkp生成方法包括:用戶先通過ide或者在線證明生成工具的用戶界面選擇zkp協(xié)議類型,然后在線編輯電路或者上傳電路文件,ide或者在線證明生成工具根據(jù)電路或者電路文件生成zkp。
3、然而,不同zkp協(xié)議類型和不同場景對資源的需求不同,當ide或者在線證明生成工具支持多種zkp協(xié)議時,不同的zkp協(xié)議對應(yīng)的資源相互獨立,會存在資源不夠用或者資源大量空閑的情況,導(dǎo)致資源的利用率較低。
技術(shù)實現(xiàn)思路
1、本技術(shù)提供了一種zkp生成方法、裝置、設(shè)備及存儲介質(zhì),在zkp生成過程中,多種證明協(xié)議共享資源,能夠提高資源的利用率。
2、第一方面,提供了一種zkp生成方法,所述方法應(yīng)用于管理平臺,所述管理平臺用于管理基礎(chǔ)設(shè)施,所述基礎(chǔ)設(shè)施包括多個計算資源,所述多個計算資源中的每個計算資源用于生成多種證明協(xié)議對應(yīng)的零知識證明。所述方法包括:接收證明生成請求,所述證明生成請求包括證明協(xié)議信息和電路文件,其中,所述證明協(xié)議信息用于指示生成目標零知識證明所使用的目標證明協(xié)議,所述目標證明協(xié)議為所述多種協(xié)議類型中的一種,所述電路文件用于指示生成目標零知識證明的計算模型;根據(jù)所述證明生成請求,從所述多個計算資源中確定目標計算資源;通過所述目標計算資源,生成所述目標零知識證明。
3、在本技術(shù)中,多種證明協(xié)議共享基礎(chǔ)設(shè)施,管理平臺根據(jù)證明生成請求進行資源分配,即從基礎(chǔ)設(shè)施所包含的多個計算資源中確定目標計算資源,并通過目標計算資源,生成目標zkp,能夠有效提高資源的利用率。
4、可選地,所述證明生成請求還包括配置參數(shù),所述根據(jù)所述證明生成請求,從所述多個計算資源中確定目標計算資源,包括:根據(jù)所述電路文件和所述配置參數(shù),生成與所述目標證明協(xié)議對應(yīng)的約束系統(tǒng);根據(jù)所述目標證明協(xié)議和所述約束系統(tǒng)的特征信息,從所述多個計算資源中確定目標計算資源,所述約束系統(tǒng)的特征信息包括以下信息中的至少一種:約束系統(tǒng)的規(guī)模、橢圓曲線的位寬、哈希函數(shù)的類型和多項式承諾的類型。這里,約束系統(tǒng)的特征信息是指對目標計算任務(wù)的整體計算量的影響較大的信息。
5、不同類型的zkp協(xié)議可能支持不同類型的約束系統(tǒng),而不同類型的約束系統(tǒng)在生成zkp的過程中需要的計算量不同,因此,需要先生成與所述證明協(xié)議信息所指示的類型對應(yīng)的約束系統(tǒng);然后再根據(jù)目標證明協(xié)議和所述約束系統(tǒng)的特征信息,從所述計算資源池中為所述目標計算任務(wù)分配計算資源。
6、可選地,所述根據(jù)所述目標證明協(xié)議和所述約束系統(tǒng)的特征信息,從所述多個計算資源中確定目標計算資源,包括:根據(jù)所述目標證明協(xié)議和所述約束系統(tǒng)的特征信息,確定任務(wù)復(fù)雜度;根據(jù)所述任務(wù)復(fù)雜度,從所述多個計算資源中確定所述目標計算資源。其中,任務(wù)復(fù)雜度用于衡量生成zkp的過程中,計算任務(wù)的復(fù)雜程度。通常任務(wù)復(fù)雜度越高,需要的計算資源越多,而任務(wù)復(fù)雜度越低,需要的計算資源越少。約束系統(tǒng)的特征信息對目標計算任務(wù)的整體計算量的影響較大,因此,可以采用這些信息來衡量目標計算任務(wù)的任務(wù)復(fù)雜度。
7、可選地,除了考慮對計算量影響較大的約束系統(tǒng)的特征信息之外,還可以結(jié)合其他參考信息來確定目標計算任務(wù)的任務(wù)復(fù)雜度,相應(yīng)的,該方法還包括:獲取參考信息。所述參考信息包括用戶等級、并發(fā)處理數(shù)量、生成的證明的大小和生成證明的預(yù)期響應(yīng)時間中的至少一種,所述用戶等級用于指示所述證明生成請求的發(fā)起者的等級,所述并發(fā)處理數(shù)量用于指示與所述證明生成請求同時存在的其他證明生成請求的數(shù)量。這些參考信息也可能會影響單位時間內(nèi)的計算量,因此,也可以用于確定任務(wù)復(fù)雜度。
8、可選地,每個計算資源包括一個工作者線程,每個工作者線程用于運行一種算子。所述目標證明協(xié)議與至少一種算子關(guān)聯(lián)。對于工作者線程,可以采用以下方式分配:根據(jù)任務(wù)復(fù)雜度,從所述多個計算資源中,為目標證明協(xié)議關(guān)聯(lián)的每種算子確定目標數(shù)量的工作者線程,所述目標數(shù)量與所述任務(wù)復(fù)雜度正相關(guān)。任務(wù)復(fù)雜度越高,表示需要進行的算子運算的數(shù)量越多,因此,對應(yīng)的目標數(shù)量也越多,從而滿足目標計算任務(wù)的需求。
9、在一些示例中,每個工作者線程運行在一個處理器核中,每個處理器核僅運行一個工作者線程,即每個處理器核用于運行一種算子。在另一些示例中,每個處理器核運行多個工作者線程,即每個處理器核用于運行一種或多種算子。
10、可選地,所述基礎(chǔ)設(shè)施還包括多個存儲資源,所述方法還包括:根據(jù)所述約束系統(tǒng)的規(guī)模、多項式承諾方案中使用的查找表的大小、橢圓曲線的位寬和計算算子的算法中的至少一種,從所述多個存儲資源中確定目標存儲資源。
11、在目標計算任務(wù)的執(zhí)行過程中,會產(chǎn)生大量的數(shù)據(jù)需要存儲,而上述信息與計算任務(wù)執(zhí)行過程中需存儲的數(shù)據(jù)量密切相關(guān),因此,可以根據(jù)這些信息來確定目標存儲資源,以存儲這些數(shù)據(jù)。
12、可選地,所述證明生成請求還包括第一類參數(shù),所述第一類參數(shù)用于將所述電路文件轉(zhuǎn)換為二次算數(shù)程序qap;所述方法還包括:根據(jù)所述證明協(xié)議信息對所述電路文件和/或所述第一類參數(shù)進行校驗。在接收到證明生成請求之后,先根據(jù)證明協(xié)議信息對證明生成請求中的至少部分內(nèi)容進行校驗,以保證后續(xù)生成zkp的過程的正常執(zhí)行。
13、可選地,所述證明生成請求還包括模式信息,所述模式信息用于指示目標zkp的模式為遞歸模式;所述通過所述目標計算資源生成zkp,包括:獲取歷史zkp;通過所述目標計算資源,基于所述歷史zkp,生成目標zkp。當目標zkp的模式為遞歸模式時,需要先獲取歷史zkp,然后基于歷史zkp生成目標zkp。也即是,本技術(shù)既能夠支持非遞歸模式的zkp,也能支持遞歸模式的zkp。
14、可選地,所述證明生成請求還包括所述歷史zkp的證明索引信息;所述獲取歷史zkp,包括:根據(jù)所述證明索引信息,從云服務(wù)器獲取所述歷史zkp。將歷史zkp存儲在云服務(wù)器,在需要時,通過證明索引信息獲取歷史zkp以進行遞歸證明。
15、第二方面,提供了一種zkp生成裝置,該zkp生成裝置具有實現(xiàn)上述第一方面或上述第一方面的任意一種可選方式所述方法的功能。所述功能可以通過硬件實現(xiàn),也可以通過硬件執(zhí)行相應(yīng)的軟件實現(xiàn)。所述硬件或軟件包括一個或多個與上述功能相對應(yīng)的模塊。
16、第三方面,提供了一種計算設(shè)備集群,該計算設(shè)備集群包括至少一個計算設(shè)備,每個計算設(shè)備包括處理器和存儲器;所述至少一個計算設(shè)備的處理器用于執(zhí)行所述至少一個計算設(shè)備的存儲器中存儲的指令,以使得所述計算設(shè)備集群執(zhí)行如上第一方面中的方法。
17、可選地,所述處理器為一個或多個,且所述處理器為多核處理器,所述存儲器為一個或多個。
18、可選地,所述存儲器可以與所述處理器集成在一起,或者所述存儲器與處理器分離設(shè)置。
19、在具體實現(xiàn)過程中,存儲器可以為非瞬時性(non-transitory)存儲器,例如只讀存儲器(read?only?memory,rom),其可以與處理器集成在同一塊芯片上,也可以分別設(shè)置在不同的芯片上,本技術(shù)對存儲器的類型以及存儲器與處理器的設(shè)置方式不做限定。
20、第四方面,提供了一種計算機可讀存儲介質(zhì),所述存儲介質(zhì)中存儲有至少一條指令,所述指令由計算設(shè)備集群加載并執(zhí)行,以使計算設(shè)備集群實現(xiàn)上述第一方面中的方法。
21、第五方面,提供了一種計算機程序(產(chǎn)品),所述計算機程序(產(chǎn)品)包括:計算機程序代碼,當所述計算機程序代碼被計算設(shè)備集群運行時,所述計算設(shè)備集群執(zhí)行上述第一方面中的方法。