本發(fā)明涉及區(qū)塊鏈矩陣計算,特別涉及一種公平可驗證的智能合約矩陣外包計算方法。
背景技術:
1、矩陣計算在科學計算和密碼學領域起著重要的作用。許多密碼協議、科學計算和數值計算問題都涉及到矩陣計算。然而,對于計算能力有限的用戶來說,由于數據規(guī)模大,計算復雜,其難以獨立完成矩陣計算。因此,矩陣計算的外包服務就出現了。用戶將矩陣計算任務外包給云計算服務提供商,然后云計算結果并將其發(fā)送給用戶完成交易。然而,有各種各樣的動機使得交易各方不誠實。在簡單的外包模型中,用戶無法驗證云計算服務提供商返回的矩陣計算結果是否絕對正確,因此不誠實的云服務器可能會返回一個隨機結果,以節(jié)省資源。在當前“先付費后使用”的云計算運營模式下,即使云計算服務提供商返回了錯誤的計算結果,用戶也已經為服務支付了相應的費用。與此同時,云服務器可能會返回正確的計算結果,但不誠實的用戶可以聲稱他們沒有收到正確的答案,并拒絕支付。我們將這一系列不誠實行為歸類為不公平現象,目前的云外包矩陣計算無法滿足這一要求。
2、幸運的是,分布式賬本技術區(qū)塊鏈可以解決這個問題。由于區(qū)塊鏈的去中心化共識特性,參與者可以在沒有任何第三方干預的情況下實現公平公正的交易。此外,以太坊支持的智能合約技術為區(qū)塊鏈提供了更多的場景和更大維度的應用。以太坊通過智能合約支持圖靈完整的加密貨幣腳本語言,并提供以太坊虛擬機(evm)作為智能合約的執(zhí)行環(huán)境。用戶通過將事務發(fā)送到具有指定參數的契約提供的接口來調用契約。智能合約接收到交易請求后,觸發(fā)指定代碼邏輯的執(zhí)行,并促進后續(xù)執(zhí)行。合同的執(zhí)行過程和結果在每個節(jié)點上達成一致,并作為交易記錄在區(qū)塊鏈上。相應地,勞動者也需要驗證智能合約執(zhí)行的所有交易。在我們的例子中,勞動者需要驗證由云服務器發(fā)送的矩陣計算結果。一種簡單的驗證方法是重新執(zhí)行復雜的計算過程。但是,由于矩陣計算的數據量較大,機會可能會面臨非常大的驗證計算量,進行驗證計算可能會延遲機會在下一個區(qū)塊競爭pow(proof-of-work)計算。這時,勞動者們面臨著兩難的處境。第一種選擇是跳過對復雜交易的驗證,確保他們在區(qū)塊競爭中不會落后。然而,這個選項的結果是可能在塊中有不正確的事務。一旦區(qū)塊包含錯誤的交易數據,不僅會取消錯誤區(qū)塊的合法性,還會收回區(qū)塊收益,更嚴重的是會影響整個區(qū)塊鏈生態(tài)的聲譽。勞動者的第二個選擇是繼續(xù)進行誠實核查。那么,與跳過驗證的勞動者相比,他們在區(qū)塊競爭中會落后。它們可能會受到資源消耗攻擊,即攻擊者通過發(fā)送大規(guī)模交易惡意延遲競爭對手的挖掘效率,從而在挖掘競爭中取勝。這就是以太坊的驗證者困境問題。
3、現有的可驗證的外包矩陣計算方法雖然可以防止惡意云計算服務提供商作弊,降低計算復雜度,滿足可驗證性,但仍不能保證交易的公平性?;谀壳啊跋雀顿M后使用”的云服務運營模式,即使用戶發(fā)現云服務的不誠實行為,他們也已經為交易支付了費用?;趨^(qū)塊鏈的智能合約可以外包矩陣計算,實現實時同步交易,從而解決這一問題。然而,基于智能合約的解決方法仍然存在許多問題。矩陣運算涉及的數據量和計算量大,會使勞動者遭受驗證者困境,從而導致事務被延遲、拒絕甚至包含錯誤的計算結果。因此,針對上述矩陣外包計算過程中的問題,提供一種安全、公平、可驗證、抗驗證者困境的智能合約外包矩陣計算方法,從而幫助矩陣外包計算安全的落地應用。
技術實現思路
1、本發(fā)明的目的在于提供一種公平可驗證的智能合約矩陣外包計算方法,以克服現有技術中的不足。
2、為實現上述目的,本發(fā)明提供如下技術方案:
3、本申請公開了一種公平可驗證的智能合約矩陣外包計算方法,包括智能合約、用戶和云計算服務商,具體包括如下步驟:
4、s1、用戶輸入初始數據;所述初始數據包括需要計算的矩陣,若干個隨機置換數組、若干個非零隨機數組;根據隨機置換數組、非零隨機數組和克羅內克函數,生成若干個輔助盲化矩陣;根據輔助盲化矩陣,構造若干個盲化矩陣,并確定需要云計算服務商計算的內容;
5、s2、用戶將s1中需要云計算服務商計算的內容輸入智能合約,智能合約等待云計算服務商發(fā)起申請計算請求;
6、s3、云計算服務商向智能合約申請計算請求,智能合約將盲化矩陣交給云計算服務商;
7、s4、云計算服務商根據盲化矩陣計算得到矩陣結果;并將矩陣結果返還至智能合約;
8、s5、智能合約收到矩陣結果后,驗證者對矩陣結果進行去盲處理得到去盲結果;比對去盲結果判斷矩陣結果是否正確;若矩陣結果正確,智能合約將矩陣結果發(fā)送給用戶,同時獎勵云計算服務商;若矩陣結果不正確,則認定矩陣結果無效。
9、作為優(yōu)選,步驟s1中所述初始數據包括2個需要計算的矩陣m1、m2,矩陣m1的行數為m,列數為n;矩陣m2的行數為n,列數為k;3個隨機置換數組π1、π2、ρ,其中π1∈{1,…,n}、π2∈{1,…,n}、ρ∈{1,…,m};3個非零隨機數組{a1,…,an}、{b1,…,bn}和{p1,…,pm}。
10、作為優(yōu)選,步驟s2中根據隨機置換數組π1、π2、ρ,非零隨機數組{a1,…,an}、{b1,…,bn}、{p1,…,pm}和克羅內克函數生成3個輔助盲化矩陣ρ1,ρ2,p3,其中ρ3(i,j)=piδρ(i),j,其中i,j分別屬于三個矩陣的行和列的大小。
11、作為優(yōu)選,步驟s2中根據輔助盲化矩陣ρ1,ρ2,p3,構造四個矩陣x1,x2,x3,x4,其中x2=p1m2,x4=p2m2;需要云計算服務商計算的內容為c1=x1×x2,c2=x3×x4。
12、作為優(yōu)選,步驟s5中驗證者對矩陣結果進行去盲處理得到去盲結果y1和y2,其中y2=p3c2。
13、作為優(yōu)選,比對去盲結果判斷矩陣結果是否正確,具體操作為:判斷去盲結果y1和y2的大?。蝗魕1等于y2,則矩陣結果正確;反之,矩陣結果不正確。
14、作為優(yōu)選,所述初始數據中還包括結果特定值res,其中其中x,y是用戶指定的隨機數;步驟s5中比對去盲結果判斷矩陣結果是否正確,具體操作為:判斷去盲結果y1和y2的大小,若y1等于y2,則進一步判斷cxy與y1(x,y)是否相等,若cxy與y1(x,y)相等,則矩陣結果正確;若cxy與y1(x,y)不相等,則矩陣結果不正確;若y1不等于y2,則矩陣結果不正確。
15、本發(fā)明的有益效果:
16、與現有的方案相比,本發(fā)明不依賴于任何可信的第三方或加密假設;作為外包的載體,利用智能合約來保證omc的安全性和可公開驗證性;提出了一種公平可驗證的智能合約矩陣外包計算方法,將驗證的時間復雜度從o(n3)降低到o(n2),從而顯著降低了驗證的計算難度,避免了區(qū)塊鏈勞動者的驗證者困境;還考慮了在實施和執(zhí)行智能合約時的其他挑戰(zhàn),包括本金限制和參數暴露,并給出了相應的解決方案。
17、本發(fā)明的特征及優(yōu)點將通過實施例結合附圖進行詳細說明。
1.一種公平可驗證的智能合約矩陣外包計算方法,包括智能合約、用戶和云計算服務商,其特征在于,具體包括如下步驟:
2.如權利要求1所述的一種公平可驗證的智能合約矩陣外包計算方法,其特征在于,步驟s1中所述初始數據包括2個需要計算的矩陣m1、m2,矩陣m1的行數為m,列數為n;矩陣m2的行數為n,列數為k;3個隨機置換數組π1、π2、ρ,其中π1∈{1,…,n}、π2∈{1,…,n}、ρ∈{1,…,m};3個非零隨機數組{a1,…,an}、{b1,…,bn}和{p1,…,pm}。
3.如權利要求2所述的一種公平可驗證的智能合約矩陣外包計算方法,其特征在于:步驟s2中根據隨機置換數組π1、π2、ρ,非零隨機數組{a1,…,an}、
4.如權利要求3所述的一種公平可驗證的智能合約矩陣外包計算方法,其特征在于:步驟s2中根據輔助盲化矩陣ρ1,ρ2,p3,構造四個矩陣x1,x2,x3,x4,其中x4=p2m2;需要云計算服務商計算的內容為c1=x1×x2,c2=x3×x4。
5.如權利要求4所述的一種公平可驗證的智能合約矩陣外包計算方法,其特征在于:步驟s5中驗證者對矩陣結果進行去盲處理得到去盲結果y1和y2,其中
6.如權利要求5所述的一種公平可驗證的智能合約矩陣外包計算方法,其特征在于,比對去盲結果判斷矩陣結果是否正確,具體操作為:判斷去盲結果y1和y2的大小;若y1等于y2,則矩陣結果正確;反之,矩陣結果不正確。
7.如權利要求1所述的一種公平可驗證的智能合約矩陣外包計算方法,其特征在于:所述初始數據中還包括結果特定值res,其中其中x,y是用戶指定的隨機數;步驟s5中比對去盲結果判斷矩陣結果是否正確,具體操作為:判斷去盲結果y1和y2的大小,若y1等于y2,則進一步判斷cxy與y1(x,y)是否相等,若cxy與y1(x,y)相等,則矩陣結果正確;若cxy與y1(x,y)不相等,則矩陣結果不正確;若y1不等于y2,則矩陣結果不正確。