本發(fā)明涉及分布式學(xué)習(xí),尤其是一種基于群組合約的匿名去中心化計算系統(tǒng)及計算方法。
背景技術(shù):
1、目前關(guān)于分布式學(xué)習(xí)的研究主要集中在兩種方法上:聯(lián)合學(xué)習(xí)(客戶端-參數(shù)服務(wù)器模式)和去中心化計算;與聯(lián)合學(xué)習(xí)相比,去中心化計算中的所有節(jié)點都受到平等對待,信息交換無需參數(shù)服務(wù)器的干預(yù)。不過,如果節(jié)點身份暴露,參與去中心化計算的節(jié)點可能會造成問題。
2、現(xiàn)有技術(shù)中通過在用戶每次參與新的學(xué)習(xí)過程,甚至在同一過程的不同迭代中改變虛擬身份來保護身份隱私。但是,這種方案無法追蹤破壞訓(xùn)練過程的惡意節(jié)點,從而導(dǎo)致整個系統(tǒng)的可信度問題。此外,去中心化計算只能容忍有限數(shù)量的拜占庭節(jié)點,如spdl(支持區(qū)塊鏈的安全和隱私的去中心化計算系統(tǒng)),它只能允許拜占庭節(jié)點低于33%,而如果節(jié)點注冊管理不當(dāng),對手就可能發(fā)動假冒攻擊,制造出大量超過這一限制的拜占庭節(jié)點,導(dǎo)致系統(tǒng)失效。此外,去中心化式架構(gòu)也是一個值得考慮的問題。目前解決上述問題的方案都需要可信機構(gòu)的參與。
技術(shù)實現(xiàn)思路
1、為了克服現(xiàn)有技術(shù)中存在的上述問題,本發(fā)明提出一種基于群組合約的匿名去中心化計算系統(tǒng)及計算方法。
2、本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:一種基于群組合約的匿名去中心化計算系統(tǒng),包括群組合約,所述群組合約采用團體簽名來保護個體團體成員的匿名性,同時允許在團體內(nèi)進行可追溯性,使用多項式時間算法表示團體簽名功能,groupsig?def=(setup,join,sign,verify,open,revoke);群組合約具體包括如下函數(shù):initializegroup、registeruser、countvote、trace和revoke,其中,countvote為內(nèi)部功能,僅在跟蹤和撤銷中使用,用于檢查和枚舉非重復(fù)投票;initializegroup、registeruser、trace和revoke為公開功能;initializegroup、registeruser、countvote、trace和revoke的代碼以加密形式由tee-ds保護,工作人員安全地與其交互,獲取加密代碼并在tee中解密。
3、上述的一種基于群組合約的匿名去中心化計算系統(tǒng),所述initializegroup用于初始化一個組并生成剩余函數(shù)所需的密鑰參數(shù);接受安全參數(shù)λ和pubkeyds作為輸入,其中pubkeyds是由tee-ds用于加密數(shù)據(jù)的公鑰;
4、具體為:initializegroup調(diào)用groupsig.setup,該函數(shù)以1λ作為輸入生成一個組公鑰gpk和一個組管理私鑰gmsk;生成用于群組合約的簽名密鑰(pkc,skc),并使用pubkeyds對gmsk和skc進行加密;initializegroup輸出gpk、pkc、enc_gmsk和enc_skc。
5、上述的一種基于群組合約的匿名去中心化計算系統(tǒng),所述registeruser函數(shù)用于用戶注冊;需要credi和其中credi是用戶的證書,是用戶的公鑰;
6、具體為:對于用戶xi,首先驗證用戶的credi,使用groupsig.join算法為xi生成群組私鑰gski和組員身份信息(i,ai);輸出使用加密的加密密鑰enc_gski,以確保除所有者xi之外,任何人都無法訪問該密鑰。
7、上述的一種基于群組合約的匿名去中心化計算系統(tǒng),所述trace函數(shù)用于追蹤惡意用戶,首先,trace函數(shù)調(diào)用countvote函數(shù)來枚舉其他用戶的投票,若票數(shù)超過了預(yù)定義的閾值h,則利用groupsig.open,根據(jù)群管理者的私鑰gmsk和群簽名σ′*g,生成惡意用戶x′*i的身份參數(shù)ai;區(qū)塊鏈使所有用戶都能獲得與ai相對應(yīng)的標簽i;
8、所述revoke函數(shù)用于使標簽為i的惡意用戶無效;在調(diào)用countvote函數(shù)統(tǒng)計其余用戶的投票后,若超過了指定的閾值h,revoke函數(shù)借助groupsig.revoke算法更新動態(tài)累加器的acc參數(shù),表明用戶xi已失效。
9、一種基于群組合約的匿名去中心化計算方法,使用上述的一種基于群組合約的匿名去中心化計算系統(tǒng),包括如下步驟:
10、步驟1,初始化:構(gòu)建一個組grk,以安全參數(shù)1λ和tee-ds的公開加密密鑰pubkeyds作為輸入,調(diào)用群組合約輸出組公開密鑰gpk、合同簽名公開密鑰pkc、加密的組管理私鑰enc_gmsk和加密的合同簽名私鑰enc_sk;
11、步驟2,用戶注冊:用戶獲取會員私鑰gsk并加入匿名去中心化計算系統(tǒng);
12、步驟3,分布式學(xué)習(xí):匿名去中心化計算系統(tǒng)中去中心化計算包括:群組成員驗證、模型訓(xùn)練,群組成員驗證用于確認用戶和模型訓(xùn)練階段的資格,通過群組成員驗證的用戶進行去中心化計算;
13、步驟4,追蹤與撤銷;
14、追蹤用戶具體過程為:對用戶xv的標識rv進行投票,收集到投票后,用戶調(diào)用群組合約的跟蹤函數(shù);若有效票數(shù)超過閾值h,跟蹤函數(shù)輸出小組成員身份參數(shù)ai;用戶從區(qū)塊鏈中獲取與ai相關(guān)的標簽i,表明惡意用戶的簽名已被成功追蹤;
15、撤銷用戶的具體過程為:對用戶xv的標識rv進行投票,收集到投票之后,用戶調(diào)用群組合約的撤銷功能,并提供惡意用戶的標簽i作為輸入;若有效票數(shù)超過閾值h,則通過更新新的動態(tài)累加器參數(shù)acc來撤銷該惡意用戶。
16、上述的一種基于群組合約的匿名去中心化計算方法,所述步驟2具體包括:
17、步驟2.1,用戶xi調(diào)用群組合約的registeruser函數(shù),輸入credi和其中credi是用戶的證書,是用戶的公開加密密鑰;registeruser函數(shù)輸出加密后的組員私鑰enc_gski,可由相應(yīng)的用戶xi解密;registeruser函數(shù)輸出用戶的組員身份信息(i,ai),信息被記錄在區(qū)塊鏈上,以便后續(xù)追蹤;
18、步驟2.2:用戶xi解密enc_gski,獲得其群組簽名私鑰gski。
19、上述的一種基于群組合約的匿名去中心化計算方法,所述步驟3群組成員驗證具體包括:為原始群組合約添加了一個名為giveidentityproof的公共函數(shù),該函數(shù)用于驗證用戶的臨時身份r并出具身份證明p;
20、具體過程為:使用groupsig.verify驗證基于組公鑰gpk和組簽名σg的簽名的正確性;執(zhí)行g(shù)roupsig.open算法獲取用戶的成員身份參數(shù)ai;計算去中心化計算的標簽和成員身份參數(shù)ai的哈希值;
21、在小組成員驗證階段,采用實用拜占庭容錯協(xié)議作為達成共識的支柱。
22、上述的一種基于群組合約的匿名去中心化計算方法,所述步驟3模型訓(xùn)練包括:在模型訓(xùn)練過程中,每個用戶維護一個數(shù)組c[|u|],以記錄從特定用戶接收信息的次數(shù);要傳輸?shù)拿織l信息都打包為<idi,(t,mesi)>σ,其中σ表示橢圓曲線數(shù)字簽名算法簽名;對于每個接收到的<idv,(t,masv)>σ,用戶xi搜索與idv相關(guān)的相應(yīng)rv,若在u中找不到rv,或者該輪不是當(dāng)前輪t,用戶xi忽略<idv,(t,masv)>σ;用戶xi使用相應(yīng)的公鑰pkv驗證簽名,若簽名有效且收到信息,則將其用于模型訓(xùn)練;在每一輪中,用戶更新其本地梯度,一個新的區(qū)塊被附加到區(qū)塊鏈中。
23、本發(fā)明的有益效果是,本發(fā)明群組合約充分結(jié)合了私人智能合約和群組簽名。該方案用整個區(qū)塊鏈取代了群簽名中所需的可信機構(gòu),并利用可信執(zhí)行環(huán)境(tee)防止隱私泄露。
24、本發(fā)明提出了一種匿名去中心化計算方法,它結(jié)合了匿名性和可追蹤性機制,以抵消拜占庭節(jié)點;與集中式方法相比,不依賴于可信的第三方;在保證匿名性的同時,還能確保強大的拜占庭容錯能力和抵御假冒者的能力。