本技術(shù)屬于區(qū)塊鏈,尤其涉及一種智能合約的隱私保護方法、裝置、電子設(shè)備及程序產(chǎn)品。
背景技術(shù):
1、目前,區(qū)塊鏈上的智能合約技術(shù)是完全公開透明的,主要體現(xiàn)在合約業(yè)務(wù)邏輯公開、目標(biāo)變量公開,這會導(dǎo)致經(jīng)過智能合約操作的賬戶行為都會被完全公開,用戶的隱私無法保障。
2、現(xiàn)有技術(shù)通常是使用聯(lián)盟鏈技術(shù),可以讓除了聯(lián)盟鏈節(jié)點以外的參與者都無法直接獲取到合約狀態(tài)的信息,但是對于聯(lián)盟鏈節(jié)點的參與者來說,智能合約的數(shù)據(jù)仍然是完全透明的。由此可見,現(xiàn)有技術(shù)難以滿足實際需求,不僅適用范圍小,還降低了智能合約的隱私性和安全性。
技術(shù)實現(xiàn)思路
1、本技術(shù)實施例提供了一種智能合約的隱私保護方法、裝置、電子設(shè)備及程序產(chǎn)品,以解決現(xiàn)有技術(shù)存在的難以滿足實際需求,不僅適用范圍小,還降低了智能合約的隱私性和安全性的問題。
2、第一方面,本技術(shù)實施例提供了一種智能合約的隱私保護方法,包括:
3、響應(yīng)于交易指令,獲取待交易用戶輸入的變量標(biāo)識、子隱私觸發(fā)腳本以及其余參與用戶各自的子隱私觸發(fā)腳本密文;所述子隱私觸發(fā)腳本用于解鎖智能合約中對應(yīng)的狀態(tài)變量;
4、確定所述智能合約中與所述變量標(biāo)識對應(yīng)的目標(biāo)變量,并獲取所述目標(biāo)變量對應(yīng)的設(shè)定密文;所述設(shè)定密文由設(shè)定摘要算法計算得到;
5、根據(jù)所述設(shè)定摘要算法對所述子隱私觸發(fā)腳本和各個所述子隱私觸發(fā)腳本密文進行計算,得到目標(biāo)密文;
6、若所述目標(biāo)密文與所述設(shè)定密文相同,則執(zhí)行所述子隱私觸發(fā)腳本中的判定腳本字節(jié)碼,得到執(zhí)行結(jié)果;所述判定腳本字節(jié)碼用于判斷所述目標(biāo)變量是否可以解鎖;
7、若所述執(zhí)行結(jié)果為執(zhí)行成功,則對所述目標(biāo)變量執(zhí)行設(shè)定操作。
8、可選的,所述獲取所述目標(biāo)變量對應(yīng)的設(shè)定密文,包括:
9、確定所述目標(biāo)變量的目標(biāo)狀態(tài);
10、若所述目標(biāo)狀態(tài)為鎖定狀態(tài),則獲取所述設(shè)定密文。
11、可選的,所述根據(jù)所述設(shè)定摘要算法對所述子隱私觸發(fā)腳本和各個所述子隱私觸發(fā)腳本密文進行計算,得到目標(biāo)密文,包括:
12、獲取與所述目標(biāo)變量對應(yīng)的回調(diào)方法簽名;
13、根據(jù)所述設(shè)定摘要算法分別對所述回調(diào)方法簽名和所述子隱私觸發(fā)腳本進行計算,得到所述簽名對應(yīng)的第一密文和所述子隱私觸發(fā)腳本對應(yīng)的第二密文;
14、根據(jù)所述設(shè)定摘要算法對所述第一密文、所述第二密文以及各個所述子隱私觸發(fā)腳本密文進行計算,得到所述目標(biāo)密文。
15、可選的,所述子隱私觸發(fā)腳本包括回調(diào)方法參數(shù);所述對所述目標(biāo)變量執(zhí)行設(shè)定操作,包括:
16、獲取與所述目標(biāo)變量對應(yīng)的回調(diào)方法簽名;
17、根據(jù)所述回調(diào)方法簽名從所述智能合約中確定目標(biāo)回調(diào)方法;
18、根據(jù)所述回調(diào)方法參數(shù)執(zhí)行所述目標(biāo)回調(diào)方法,以對所述目標(biāo)變量執(zhí)行所述設(shè)定操作。
19、可選的,在所述響應(yīng)于交易指令,獲取待交易用戶輸入的變量標(biāo)識、子隱私觸發(fā)腳本以及其余參與用戶各自的子隱私觸發(fā)腳本密文之前,還包括:
20、響應(yīng)于鎖定指令,確定所述目標(biāo)變量的當(dāng)前狀態(tài);
21、若所述當(dāng)前狀態(tài)為鎖定狀態(tài),則輸出用于提示所述目標(biāo)變量無法再次被鎖定的提示信息;
22、若所述當(dāng)前狀態(tài)為未鎖定狀態(tài),則鎖定所述目標(biāo)變量。
23、可選的,所述鎖定所述目標(biāo)變量,包括:
24、獲取各個參與用戶對應(yīng)的預(yù)設(shè)判定腳本字節(jié)碼和預(yù)設(shè)回調(diào)方法參數(shù);
25、基于各個所述參與用戶對應(yīng)的預(yù)設(shè)判定腳本字節(jié)碼和預(yù)設(shè)回調(diào)方法參數(shù),生成各個所述參與用戶的子隱私觸發(fā)腳本;
26、根據(jù)所述設(shè)定摘要算法分別對所述目標(biāo)變量對應(yīng)的回調(diào)方法簽名以及各個所述參與用戶的子隱私觸發(fā)腳本進行計算,得到所述回調(diào)方法簽名對應(yīng)的第三密文和各個所述參與用戶的子隱私觸發(fā)腳本密文;
27、根據(jù)所述設(shè)定摘要算法對所述第三密文和各個所述參與用戶的子隱私觸發(fā)腳本密文進行計算,得到所述設(shè)定密文;
28、基于所述設(shè)定密文鎖定所述目標(biāo)變量。
29、可選的,在所述基于所述設(shè)定密文鎖定所述目標(biāo)變量之后,還包括:
30、針對任意一個參與用戶,將所述參與用戶的子隱私觸發(fā)腳本以及其它參與用戶各自對應(yīng)的子隱私觸發(fā)腳本密文發(fā)送至所述參與用戶的終端設(shè)備;所述其它參與用戶指所有參與用戶中除所述參與用戶之外的用戶。
31、第二方面,本技術(shù)實施例提供了一種智能合約的隱私保護裝置,包括:
32、第一獲取單元,用于響應(yīng)于交易指令,獲取待交易用戶輸入的變量標(biāo)識、子隱私觸發(fā)腳本以及其余參與用戶各自的子隱私觸發(fā)腳本密文;所述子隱私觸發(fā)腳本用于解鎖智能合約中對應(yīng)的狀態(tài)變量;
33、第二獲取單元,用于確定所述智能合約中與所述變量標(biāo)識對應(yīng)的目標(biāo)變量,并獲取所述目標(biāo)變量對應(yīng)的設(shè)定密文;所述設(shè)定密文由設(shè)定摘要算法計算得到;
34、第一計算單元,用于根據(jù)所述設(shè)定摘要算法對所述子隱私觸發(fā)腳本和各個所述子隱私觸發(fā)腳本密文進行計算,得到目標(biāo)密文;
35、第一執(zhí)行單元,用于若所述目標(biāo)密文與所述設(shè)定密文相同,則執(zhí)行所述子隱私觸發(fā)腳本中的判定腳本字節(jié)碼,得到執(zhí)行結(jié)果;所述判定腳本字節(jié)碼用于判斷所述目標(biāo)變量是否可以解鎖;
36、第二執(zhí)行單元,用于若所述執(zhí)行結(jié)果為執(zhí)行成功,則對所述目標(biāo)變量執(zhí)行設(shè)定操作。
37、第三方面,本技術(shù)實施例提供了一種電子設(shè)備,包括:存儲器、處理器以及存儲在所述存儲器中并可在所述處理器上運行的計算機程序,上述處理器執(zhí)行所述計算機程序時實現(xiàn)如上述第一方面中任一項所述的智能合約的隱私保護方法。
38、第四方面,本技術(shù)實施例提供了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)如上述第一方面中任一項所述的智能合約的隱私保護方法。
39、第五方面,本技術(shù)實施例提供了一種計算機程序產(chǎn)品,當(dāng)計算機程序產(chǎn)品在電子設(shè)備上運行時,使得電子設(shè)備可執(zhí)行上述第一方面中任一項所述的智能合約的隱私保護方法。
40、本技術(shù)實施例與現(xiàn)有技術(shù)相比存在的有益效果是:
41、本技術(shù)實施例提供的一種智能合約的隱私保護方法,通過從智能合約中確定與獲取到的變量標(biāo)識對應(yīng)的目標(biāo)變量,并獲取目標(biāo)變量對應(yīng)的設(shè)定密文;根據(jù)設(shè)定摘要算法對獲取到的子隱私觸發(fā)腳本和各個子隱私觸發(fā)腳本密文進行計算,得到目標(biāo)密文;目標(biāo)密文與設(shè)定密文相同,則執(zhí)行子隱私觸發(fā)腳本中的判定腳本字節(jié)碼,得到執(zhí)行結(jié)果;若執(zhí)行結(jié)果為執(zhí)行成功,則對目標(biāo)變量執(zhí)行設(shè)定操作。與現(xiàn)有技術(shù)相比,本技術(shù)只有在交易用戶的子隱私觸發(fā)腳本以及其余參與用戶的子隱私觸發(fā)腳本密文均符合要求,即合法之后,才可以對智能合約的某個狀態(tài)變量執(zhí)行相應(yīng)的操作,從而避免了非法參與者的非法操作,提高了智能合約的安全性。同時,本技術(shù)在對狀態(tài)變量進行解鎖時,只會公開交易用戶的子隱私觸發(fā)腳本,其余參與用戶的子隱私觸發(fā)腳本均未公開,保護了其余參與用戶的隱私,從而提高了智能合約的隱私性。另外,本技術(shù)不僅僅局限于聯(lián)盟鏈,從而擴大了適用范圍。