本發(fā)明涉及信息安全領(lǐng)域,尤其涉及一種可撤銷智能合約交易的實(shí)現(xiàn)方法及裝置。
背景技術(shù):
區(qū)塊鏈(blockchain)是比特幣的一個(gè)重要概念,其本質(zhì)上是一個(gè)去中心化的數(shù)據(jù)庫(kù),同時(shí)作為比特幣的底層技術(shù)。區(qū)塊鏈?zhǔn)且淮褂妹艽a學(xué)方法相關(guān)聯(lián)產(chǎn)生的數(shù)據(jù)塊,每一個(gè)數(shù)據(jù)塊中包含了一次比特幣網(wǎng)絡(luò)交易的信息,用于驗(yàn)證其信息的有效性(防偽)和生成下一個(gè)區(qū)塊。區(qū)塊鏈在網(wǎng)絡(luò)上是公開的,可以在每一個(gè)離線比特幣錢包數(shù)據(jù)中查詢。比特幣錢包的功能依賴于與區(qū)塊鏈的確認(rèn),一次有效檢驗(yàn)稱為一次確認(rèn)。通常一次交易要獲得多個(gè)確認(rèn)才能生效。輕量級(jí)比特幣錢包使用在線確認(rèn),即不會(huì)下載區(qū)塊鏈數(shù)據(jù)存儲(chǔ)到設(shè)備中。
在區(qū)塊鏈上,傳統(tǒng)的數(shù)字貨幣交易是不可撤銷的,這將導(dǎo)致一些無效的交易(比如錯(cuò)誤的交易)也被記錄在了區(qū)塊鏈上,使整個(gè)區(qū)塊鏈的體量變得很大,不利于檢索有效交易。此外,網(wǎng)絡(luò)黑客可以利用比特幣現(xiàn)有的交易簽名算法的復(fù)雜性,從而對(duì)比特幣進(jìn)行交易延展性攻擊。所謂交易延展性攻擊,就是在比特幣交易當(dāng)中有限的時(shí)間內(nèi),篡改特有的比特幣交易id,即為同一個(gè)交易創(chuàng)建了兩個(gè)獨(dú)立的交易id。當(dāng)?shù)V工在確認(rèn)交易時(shí),有可能選擇確認(rèn)的是虛假交易id,而非實(shí)際處理的交易id,從而達(dá)到攻擊的目的。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是為了克服現(xiàn)有技術(shù)的不足,提供一種可撤銷智能合約交易的實(shí)現(xiàn)方法及裝置。
本發(fā)明提供了一種可撤銷智能合約交易的實(shí)現(xiàn)方法,包括:
步驟b1:交易雙方交換交付交易公鑰;
步驟b2:交易雙方創(chuàng)建交付交易,分別使用各自的交付交易私鑰對(duì)所述交付交易進(jìn)行簽名,并交換交付交易簽名值;
步驟b3:交易雙方創(chuàng)建承諾交易,分別使用承諾交易私鑰對(duì)所述承諾交易進(jìn)行簽名得到承諾交易簽名值;
步驟b4:交易雙方交換承諾交易公鑰和承諾交易簽名值;
步驟b5:交易雙方分別使用接收到的交易另一方的承諾交易公鑰對(duì)接收到的承諾交易簽名值進(jìn)行驗(yàn)證,如驗(yàn)證通過則執(zhí)行步驟b6,否則結(jié)束;
步驟b6:交易雙方分別使用各自的出賬交易私鑰對(duì)自身的初始通道資金交易進(jìn)行簽名得到初始通道資金交易一重簽名值并進(jìn)行交換;
步驟b7:交易雙方分別使用接收到的出賬交易公鑰對(duì)接收到的初始通道資金交易一重簽名值進(jìn)行驗(yàn)證,如驗(yàn)證通過則執(zhí)行步驟b8,否則結(jié)束;
步驟b8:交易一方使用初始通道資金交易私鑰對(duì)接收到的初始通道資金交易一重簽名值進(jìn)行簽名得到二重簽名值,并公布初始通道資金交易;
當(dāng)交易雙方在公布初始通道資金交易之后,交易一方判斷承諾交易是否被公布,是則執(zhí)行步驟s1,否則結(jié)束;
步驟s1:交易一方判斷公布的承諾交易是否為第一承諾交易,是則執(zhí)行步驟s5,否則執(zhí)行步驟s2;
步驟s2:交易一方判斷是否到達(dá)交易另一方的可撤銷出賬鎖定時(shí)間,是則執(zhí)行步驟s4,否則執(zhí)行步驟s3;
步驟s3:交易一方執(zhí)行可撤銷交易,結(jié)束;
步驟s4:交易一方設(shè)置可撤銷交易無效,并設(shè)置違約補(bǔ)償交易有效,當(dāng)檢測(cè)到交易另一方公布了第一承諾交易則執(zhí)行步驟s5;
步驟s5:交易一方執(zhí)行違約補(bǔ)償交易。
進(jìn)一步地,所述步驟b1之前還包括:交易雙方創(chuàng)建初始通道資金交易、交換可撤銷交付交易公鑰,并創(chuàng)建可撤銷交付交易,交易雙方分別使用各自的可撤銷交付交易私鑰對(duì)所述可撤銷交付交易進(jìn)行簽名,并將可撤銷交付交易簽名值進(jìn)行交換;交易雙方分別使用交易另一方的可撤銷交付交易公鑰對(duì)接收到的可撤銷交付交易簽名值進(jìn)行驗(yàn)證,當(dāng)驗(yàn)證通過時(shí)執(zhí)行步驟b1。
進(jìn)一步地,所述交易雙方創(chuàng)建初始通道資金交易包括:
步驟a1:交易雙方交換入賬識(shí)別碼;
步驟a2:交易雙方交換出賬交易公鑰;
步驟a3:交易雙方創(chuàng)建初始通道資金交易的入賬并進(jìn)行交換;
步驟a4:交易雙方交換鎖定通道資金地址;
步驟a5:交易雙方分別使用交易另一方的出賬交易公鑰驗(yàn)證與交易另一方的鎖定通道資金地址對(duì)應(yīng)的初始通道資金交易的入賬,如驗(yàn)證成功則執(zhí)行步驟a6,否則結(jié)束;
步驟a6:交易雙方創(chuàng)建初始通道資金交易的出賬并進(jìn)行交換;
步驟a7:交易雙方根據(jù)各自的初始通道資金交易的入賬和出賬創(chuàng)建初始通道資金交易。
進(jìn)一步地,所述步驟a1與步驟a2之間包括:交易雙方分別判斷是否接收到入賬識(shí)別碼,是則執(zhí)行步驟a2,否則結(jié)束。
進(jìn)一步地,所述步驟a2與步驟a3之間包括:交易雙方分別判斷是否接收到出賬交易公鑰,是則執(zhí)行步驟a3,否則結(jié)束。
進(jìn)一步地,所述步驟a3與步驟a4之間包括:交易雙方分別判斷是否接收到創(chuàng)建初始通道資金交易的入賬,是則執(zhí)行步驟a4,否則結(jié)束。
進(jìn)一步地,所述步驟a4與步驟a5之間包括:交易雙方分別判斷是否接收到鎖定通道資金地址,是則執(zhí)行步驟a5,否則結(jié)束。
進(jìn)一步地,所述步驟a6與步驟a7之間包括:交易雙方分別判斷是否接收到初始通道資金交易的出賬,是則執(zhí)行步驟a6,否則結(jié)束。
進(jìn)一步地,所述交換可撤銷交付交易公鑰與創(chuàng)建可撤銷交付交易之間包括:交易雙方判斷是否接收到可撤銷交付交易公鑰,是則創(chuàng)建可撤銷交付交易,否則結(jié)束。
進(jìn)一步地,所述將可撤銷交付交易簽名值進(jìn)行交換與交易雙方分別使用交易另一方的可撤銷交付交易公鑰對(duì)接收到的可撤銷交付交易的簽名值進(jìn)行驗(yàn)證之間包括:交易雙方判斷是否接收到可撤銷交付交易的簽名值,是則使用交易另一方的可撤銷交付交易公鑰對(duì)接收到的可撤銷交付交易的簽名值進(jìn)行驗(yàn)證,否則結(jié)束。
進(jìn)一步地,所述步驟b1與步驟b2之間包括:交易雙方分別判斷是否接收到交付交易公鑰,是則執(zhí)行步驟b2,否則結(jié)束。
進(jìn)一步地,所述步驟b2與步驟b3之間包括:交易雙方分別判斷是否接收到交付交易簽名值,是則執(zhí)行步驟b3,否則結(jié)束。
進(jìn)一步地,所述步驟b4與步驟b5之間包括:交易雙方分別判斷是否接收到承諾交易公鑰和承諾交易簽名值,是則執(zhí)行步驟b5,否則結(jié)束。
進(jìn)一步地,所述步驟b6與步驟b7之間包括:交易雙方分別判斷是否接收到初始通道資金交易一重簽名值,是則執(zhí)行步驟b7,否則結(jié)束。
進(jìn)一步地,所述交易雙方在公布初始通道資金交易與交易一方判斷承諾交易是否被公布之間包括:
步驟c1:交易雙方交換違約補(bǔ)償交易公鑰;
步驟c2:交易雙方分別創(chuàng)建違約補(bǔ)償交易,使用各自的違約補(bǔ)償交易私鑰對(duì)所述違約補(bǔ)償交易進(jìn)行簽名得到違約補(bǔ)償交易簽名值并交換違約補(bǔ)償交易簽名值;
步驟c3:交易雙方交換第二可撤銷交付交易公鑰;
步驟c4:交易雙方分別創(chuàng)建第二可撤銷交付交易,使用各自的第二可撤銷交付交易私鑰對(duì)第二可撤銷交付交易進(jìn)行簽名得到第二可撤銷交付交易簽名值,并交換第二可撤銷交付交易簽名值;
步驟c5:交易雙方分別創(chuàng)建第二承諾交易,并使用各自的第二承諾交易私鑰對(duì)第二承諾交易進(jìn)行簽名得到第二承諾交易簽名值;
步驟c6:交易雙方交換第二承諾交易公鑰和第二承諾交易簽名值;
步驟c7:交易雙方分別使用接收到的第二承諾交易公鑰對(duì)接收到的第二承諾交易簽名值進(jìn)行驗(yàn)證,如驗(yàn)證成功則執(zhí)行步驟c8,如驗(yàn)證失敗則交易一方判斷承諾交易是否被公布;
步驟c8:交易雙方分別使用自身的第二承諾交易私鑰對(duì)接收到的第二承諾交易簽名值進(jìn)行再次簽名得到承諾交易二重簽名值,然后公布第二承諾交易。
進(jìn)一步地,所述步驟c1與步驟c2之間包括:交易雙方分別判斷是否接收到違約補(bǔ)償交易公鑰,是則執(zhí)行步驟c2,否則結(jié)束。
進(jìn)一步地,所述步驟c2與步驟c3之間包括:交易雙方分別判斷是否接收到違約補(bǔ)償交易簽名值,是則執(zhí)行步驟c3,否則結(jié)束。
進(jìn)一步地,所述步驟c3與步驟c4之間包括:交易雙方分別判斷是否接收到第二可撤銷交付交易公鑰,是則執(zhí)行步驟c4,否則結(jié)束。
進(jìn)一步地,所述步驟c4與步驟c5之間包括:交易雙方分別判斷是否接收到第二可撤銷交付交易簽名值,是則執(zhí)行步驟c5,否則結(jié)束。
進(jìn)一步地,所述步驟c6與步驟c7之間包括:交易雙方分別判斷是否接收到第二承諾交易公鑰和第二承諾交易簽名值,是則執(zhí)行步驟c7,否則結(jié)束。
發(fā)明又提供了一種可撤銷智能合約交易的實(shí)現(xiàn)裝置,所述裝置為交易發(fā)起者或者為交易響應(yīng)者,所述裝置包括:
第一交換模塊,用于與交易另一方交換交付交易公鑰;
第一創(chuàng)建模塊,用于創(chuàng)建交付交易;
第一簽名模塊,用于使用自身的交付交易私鑰對(duì)所述第一創(chuàng)建模塊創(chuàng)建的交付交易進(jìn)行簽名得到交付交易簽名值;
第二交換模塊,用于與交易另一方交換所述第一簽名模塊簽名得到的交付交易簽名值;
第二創(chuàng)建模塊,用于創(chuàng)建承諾交易;
第二簽名模塊,用于使用承諾交易私鑰對(duì)所述第二創(chuàng)建模塊創(chuàng)建的承諾交易進(jìn)行簽名得到承諾交易簽名值;
第三交換模塊,用于與交易另一方交換承諾交易公鑰和所述第二簽名模塊得到的所述承諾交易簽名值;
第一驗(yàn)證模塊,用于使用所述第三交換模塊接收到的交易另一方的承諾交易公鑰對(duì)接收到的承諾交易簽名值進(jìn)行驗(yàn)證;
第三簽名模塊,用于在所述第一驗(yàn)證模塊驗(yàn)證通過時(shí),使用自身的出賬交易私鑰對(duì)自身的初始通道資金交易進(jìn)行簽名得到初始通道資金交易一重簽名值;
第四交換模塊,用于與交易另一方交換所述第三簽名模塊得到的所述初始通道資金交易一重簽名值;
第二驗(yàn)證模塊,用于使用所述第四交換模塊接收到的出賬交易公鑰對(duì)接收到的初始通道資金交易一重簽名值進(jìn)行驗(yàn)證;
第一簽名公布模塊,用于在所述第二驗(yàn)證模塊驗(yàn)證通過時(shí),使用初始通道資金交易私鑰對(duì)接收到的初始通道資金交易一重簽名值進(jìn)行簽名得到二重簽名值,并公布初始通道資金交易;
第一判斷模塊,用于判斷所述第二創(chuàng)建模塊創(chuàng)建的承諾交易是否被公布;
第二判斷模塊,用于在所述第一判斷模塊判斷為是時(shí),判斷公布的承諾交易是否為第一承諾交易;
第三判斷模塊,用于在所述第二判斷模塊判斷為否時(shí),判斷是否到達(dá)交易另一方的可撤銷出賬鎖定時(shí)間;
第一執(zhí)行模塊,用于在所述第三判斷模塊判斷為否時(shí),執(zhí)行可撤銷出賬;
第一設(shè)置模塊,用于在所述第三判斷模塊判斷為是時(shí),設(shè)置可撤銷出賬無效,并設(shè)置違約補(bǔ)償交易有效;
第二執(zhí)行模塊,用于在所述第二判斷模塊判斷為是時(shí)和/或檢測(cè)到交易另一方公布了第一承諾交易時(shí),執(zhí)行違約補(bǔ)償交易。
進(jìn)一步地,所述裝置還包括:
第三創(chuàng)建模塊,用于創(chuàng)建初始通道資金交易;
第五交換模塊,用于與交易另一方交換可撤銷交付交易公鑰;
第四創(chuàng)建模塊,用于創(chuàng)建可撤銷交付交易;
第四簽名模塊,用于使用自身的可撤銷交付交易私鑰對(duì)所述可撤銷交付交易進(jìn)行簽名;
第六交換模塊,用于將所述第四簽名模塊得到的可撤銷交付交易簽名值與交易另一方進(jìn)行交換;
第三驗(yàn)證模塊,用于使用交易另一方的可撤銷交付交易公鑰對(duì)接收到的可撤銷交付交易簽名值進(jìn)行驗(yàn)證,當(dāng)驗(yàn)證通過時(shí)觸發(fā)所述第一交換模塊進(jìn)行工作。
進(jìn)一步地,所述第三創(chuàng)建模塊包括:
第一交換單元,用于與交易另一方交換入賬識(shí)別碼;
第二交換單元,用于與交易另一方交換出賬交易公鑰;
第一創(chuàng)建交換單元,用于創(chuàng)建初始通道資金交易的入賬并與交易另一方進(jìn)行交換;
第三交換單元,用于與交易另一方交換鎖定通道資金地址;
第一驗(yàn)證單元,用于使用交易另一方的出賬交易公鑰驗(yàn)證初始通道資金交易的入賬;
第二創(chuàng)建交換單元,用于在所述第一驗(yàn)證單元驗(yàn)證通過時(shí),創(chuàng)建初始通道資金交易的出賬并與交易另一方進(jìn)行交換;
第一創(chuàng)建單元,用于根據(jù)自身的初始通道資金交易的入賬和出賬創(chuàng)建初始通道資金交易。
進(jìn)一步地,所述第三創(chuàng)建模塊還包括:
第一判斷單元,用于判斷所述第一交換單元是否接收到入賬識(shí)別碼,是則觸發(fā)所述第二交換單元進(jìn)行工作,否則結(jié)束。
進(jìn)一步地,所述第三創(chuàng)建模塊還包括:
第二判斷單元,用于判斷所述第二交換單元是否接收到出賬交易公鑰,是則觸發(fā)所述第一創(chuàng)建交換單元進(jìn)行工作,否則結(jié)束。
進(jìn)一步地,所述第三創(chuàng)建模塊還包括:
第三判斷單元,用于判斷所述第一創(chuàng)建交換單元是否接收到創(chuàng)建初始通道資金交易的入賬,是則觸發(fā)所述第三交換單元進(jìn)行工作,否則結(jié)束。
進(jìn)一步地,所述第三創(chuàng)建模塊還包括:
第四判斷單元,用于判斷所述第三交換單元是否接收到鎖定通道資金地址,是則觸發(fā)所述第一驗(yàn)證單元進(jìn)行工作,否則結(jié)束。
進(jìn)一步地,所述第三創(chuàng)建模塊還包括:
第五判斷單元,用于判斷所述第二創(chuàng)建交換單元是否接收到初始通道資金交易的出賬,是則觸發(fā)所述第二創(chuàng)建交換單元進(jìn)行工作,否則結(jié)束。
進(jìn)一步地,所述裝置還包括:
第四判斷模塊,用于判斷所述第五交換模塊是否接收到可撤銷交付交易公鑰,是則觸發(fā)所述第四創(chuàng)建模塊進(jìn)行工作,否則結(jié)束。
進(jìn)一步地,所述裝置還包括:
第五判斷模塊,用于判斷所述第六交換模塊是否接收到可撤銷交付交易的簽名值,是則觸發(fā)所述第三驗(yàn)證模塊進(jìn)行工作,否則結(jié)束。
進(jìn)一步地,所述裝置還包括:
第六判斷模塊,用于判斷所述第一交換模塊是否接收到交付交易公鑰,是則觸發(fā)所述第一創(chuàng)建模塊進(jìn)行工作,否則結(jié)束。
進(jìn)一步地,所述裝置還包括:
第七判斷模塊,用于判斷所述第二交換模塊是否接收到交付交易簽名值,是則觸發(fā)所述第二創(chuàng)建模塊進(jìn)行工作,否則結(jié)束。
進(jìn)一步地,所述裝置還包括:
第八判斷模塊,用于判斷所述第三交換模塊是否接收到承諾交易公鑰和承諾交易簽名值,是則觸發(fā)所述第一驗(yàn)證模塊進(jìn)行工作,否則結(jié)束。
進(jìn)一步地,所述裝置還包括:
第九判斷模塊,用于判斷所述第四交換模塊是否接收到初始通道資金交易一重簽名值,是則觸發(fā)所述第二驗(yàn)證模塊進(jìn)行工作,否則結(jié)束。
進(jìn)一步地,所述裝置還包括:
第七交換模塊,用于在所述第一簽名公布模塊公布初始通道資金交易之后與交易另一方交換違約補(bǔ)償交易公鑰;
第五創(chuàng)建模塊,用于創(chuàng)建違約補(bǔ)償交易;
第五簽名模塊,用于使用自身的違約補(bǔ)償交易私鑰對(duì)所述第五創(chuàng)建模塊創(chuàng)建的所述違約補(bǔ)償交易進(jìn)行簽名得到交換違約補(bǔ)償交易簽名值,并與交易另一方交換違約補(bǔ)償交易簽名值;
第八交換模塊,用于在所述第五簽名模塊與交易另一方交換違約補(bǔ)償交易簽名值之后與交易另一方交換第二可撤銷交付交易公鑰;
第六創(chuàng)建模塊,用于創(chuàng)建第二可撤銷交付交易;
第六簽名模塊,用于使用自身的第二可撤銷交付交易私鑰對(duì)所述第六創(chuàng)建模塊創(chuàng)建的所述第二可撤銷交付交易進(jìn)行簽名;
第九交換模塊,用于與交易另一方交換所述第六簽名模塊簽名得到的第二可撤銷交付交易簽名值;
第七創(chuàng)建模塊,用于創(chuàng)建第二承諾交易;
第七簽名模塊,用于使用自身的第二承諾交易私鑰對(duì)所述第七創(chuàng)建模塊創(chuàng)建的所述第二承諾交易進(jìn)行簽名得到第二承諾交易簽名值;
第十交換模塊,用于與交易另一方交換第二承諾交易公鑰和所述第二承諾交易簽名值;
第四驗(yàn)證模塊,用于使用所述第十交換模塊接收到的第二承諾交易公鑰對(duì)所述第十交換模塊接收到的第二承諾交易簽名值進(jìn)行驗(yàn)證,如驗(yàn)證失敗則觸發(fā)所述第一判斷模塊進(jìn)行工作;
第二簽名公布模塊,用于在所述第四驗(yàn)證模塊驗(yàn)證通過時(shí),使用自身的第二承諾交易私鑰對(duì)接收到的第二承諾交易簽名值進(jìn)行再次簽名得到承諾交易二重簽名值,然后公布第二承諾交易。
進(jìn)一步地,所述裝置還包括:
第十判斷模塊,用于判斷所述第七交換模塊是否接收到違約補(bǔ)償交易公鑰,是則觸發(fā)所述第五創(chuàng)建模塊進(jìn)行工作,否則結(jié)束。
進(jìn)一步地,所述裝置還包括:
第十一判斷模塊,用于判斷所述第五簽名模塊是否接收到違約補(bǔ)償交易簽名值,是則觸發(fā)所述第八交換模塊進(jìn)行工作,否則結(jié)束。
進(jìn)一步地,所述裝置還包括:
第十二判斷模塊,用于判斷所述第八交換模塊是否接收到第二可撤銷交付交易公鑰,是則觸發(fā)所述第六創(chuàng)建模塊進(jìn)行工作,否則結(jié)束。
進(jìn)一步地,所述裝置還包括:
第十三判斷模塊,用于判斷所述第九交換模塊是否接收到第二可撤銷交付交易簽名值,是則觸發(fā)所述第七創(chuàng)建模塊進(jìn)行工作,否則結(jié)束。
進(jìn)一步地,所述裝置還包括:
第十四判斷模塊,用于判斷所述第十交換模塊是否接收到第二承諾交易公鑰和第二承諾交易簽名值,是則觸發(fā)所述第四驗(yàn)證模塊進(jìn)行工作,否則結(jié)束。
本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn):
本發(fā)明技術(shù)方案是一種可撤銷智能合約交易的實(shí)現(xiàn)方法及裝置,其實(shí)現(xiàn)原理為一旦交易被撤銷,就視為無效交易,不會(huì)被公布到區(qū)塊鏈上,提高了交易的安全性和有效性。
附圖說明
圖1和圖2為本發(fā)明實(shí)施例二提供交易雙方創(chuàng)建初始通道資金交易中的交易發(fā)起者的實(shí)現(xiàn)方法流程圖;
圖3和圖4為本發(fā)明實(shí)施例三提供交易雙方創(chuàng)建初始通道資金交易中的交易響應(yīng)者的實(shí)現(xiàn)方法流程圖;
圖5為本發(fā)明實(shí)施例四提供交易發(fā)起者在資金交易通道內(nèi)進(jìn)行第二交易的實(shí)現(xiàn)方法流程圖;
圖6為本發(fā)明實(shí)施例五提供交易響應(yīng)者在資金交易通道內(nèi)進(jìn)行第二交易的實(shí)現(xiàn)方法流程圖;
圖7為本發(fā)明實(shí)施例六提供一種撤銷智能合約交易的實(shí)現(xiàn)過程流程圖;
圖8為本發(fā)明實(shí)施例七提供的一種可撤銷智能合約交易的實(shí)現(xiàn)裝置方框圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
在本發(fā)明實(shí)施例中,初始通道資金交易(英文全稱:initialchannelfundingtransaction)是指交易雙方在建立微交付通道時(shí)所建立的交易,目的是將雙方進(jìn)行的微交付金額鎖定在微交付通道中;承諾交易(英文全稱:commitmenttransaction)是指將交易雙方在初始通道資金交易中所出資金進(jìn)行承諾,目的是使雙方的出資可撤銷(贖回),同時(shí)也為建立違約賠償交易做準(zhǔn)備;交付交易(英文全稱:deliverytransaction)是指交易雙方實(shí)際進(jìn)行的交易;可撤銷交付交易(英文全稱:revocabledeliverytransaction)是指交易雙方可將已交付交易進(jìn)行撤銷的交易;違約賠償交易(breachremedytransaction)是指為保證交易雙方各自利益而建立的交易,僅在無法進(jìn)行正常交易的情況下啟動(dòng),例如,交易雙方中的任意一方惡意公布第一交易,則可將通道中的所有資金給另一方,這種懲罰即通過違約賠償交易完成。
執(zhí)行交付交易(英文全稱:executiondeliverytransaction)是指在帶條件的可撤銷交易中使用的執(zhí)行交付交易的交易;超時(shí)交付交易(英文全稱:timeoutdeliverytransaction)是指在指定可撤銷的整個(gè)交易過程中,需要設(shè)定時(shí)間交付交易條件的交易;超時(shí)可撤銷交付交易(英文全稱:timeoutrevocabledeliverytransaction)是指在所設(shè)定的交付超時(shí)時(shí)間之內(nèi)啟動(dòng)的進(jìn)行撤銷交付的交易;超時(shí)違約賠償交易(英文全稱:timeoutbreachremedytransaction)是指在所設(shè)定的違約確認(rèn)超時(shí)時(shí)間之內(nèi)可啟動(dòng)的進(jìn)行違約賠償?shù)慕灰住?/p>
入賬(英文全稱:input)是指當(dāng)前交易的資金來源,表示款項(xiàng)收入,一般是上一筆或幾筆交易的出賬,包括入賬識(shí)別碼和出賬的索引號(hào);出賬(英文全稱:output)是指當(dāng)前交易的資金去向,表示款項(xiàng)支出,一般是下一筆或幾筆交易的入賬,包括交易金額和指示交易金額消費(fèi)的公鑰腳本(即這些交易金額是如何消費(fèi)的,包括簽名值和完整公鑰)。
實(shí)施例一
本發(fā)明實(shí)施例一提供可撤銷智能合約交易的實(shí)現(xiàn)方法,包括:
步驟b1:交易雙方交換交付交易公鑰;
在本實(shí)施例中,步驟b1之前還包括:交易雙方創(chuàng)建初始通道資金交易、交換可撤銷交付交易公鑰,并創(chuàng)建可撤銷交付交易,交易雙方分別使用各自的可撤銷交付交易私鑰對(duì)可撤銷交付交易進(jìn)行簽名,并將可撤銷交付交易簽名值進(jìn)行交換;交易雙方分別使用交易另一方的可撤銷交付交易公鑰對(duì)接收到的可撤銷交付交易簽名值進(jìn)行驗(yàn)證,當(dāng)驗(yàn)證通過時(shí)執(zhí)行步驟b1。
在本實(shí)施例中,交易雙方創(chuàng)建初始通道資金交易中的交易發(fā)起者的實(shí)現(xiàn)過程在實(shí)施例二進(jìn)行說明,交易雙方創(chuàng)建初始通道資金交易中的交易響應(yīng)者的實(shí)現(xiàn)過程在實(shí)施例三進(jìn)行說明;
交易雙方創(chuàng)建初始通道資金交易,具體包括:
步驟a1:交易雙方交換入賬識(shí)別碼;
在本實(shí)施例中,步驟a1與步驟a2之間包括:交易雙方分別判斷是否接收到入賬識(shí)別碼,是則執(zhí)行步驟a2,否則結(jié)束。
步驟a2:交易雙方交換出賬交易公鑰;
在本實(shí)施例中,步驟a2與步驟a3之間包括:交易雙方分別判斷是否接收到出賬交易公鑰,是則執(zhí)行步驟a3,否則結(jié)束。
步驟a3:交易雙方創(chuàng)建初始通道資金交易的入賬并進(jìn)行交換;
在本實(shí)施例中,步驟a3與步驟a4之間包括:交易雙方分別判斷是否接收到創(chuàng)建初始通道資金交易的入賬,是則執(zhí)行步驟a4,否則結(jié)束。
步驟a4:交易雙方交換鎖定通道資金地址;
在本實(shí)施例中,步驟a4與步驟a5之間包括:交易雙方分別判斷是否接收到鎖定通道資金地址,是則執(zhí)行步驟a5,否則結(jié)束。
步驟a5:交易雙方分別使用交易另一方的出賬交易公鑰驗(yàn)證初始通道資金交易的入賬,如驗(yàn)證成功則執(zhí)行步驟a6,否則結(jié)束;
步驟a6:交易雙方創(chuàng)建初始通道資金交易的出賬并進(jìn)行交換;
在本實(shí)施例中,步驟a6與步驟a7之間包括:交易雙方分別判斷是否接收到初始通道資金交易的出賬,是則執(zhí)行步驟a6,否則結(jié)束。
步驟a7:交易雙方根據(jù)各自的初始通道資金交易的入賬和出賬創(chuàng)建初始通道資金交易。
在本實(shí)施例中,交換可撤銷交付交易公鑰與創(chuàng)建可撤銷交付交易之間包括:交易雙方判斷是否接收到可撤銷交付交易公鑰,是則創(chuàng)建可撤銷交付交易,否則結(jié)束。
在本實(shí)施例中,上述將可撤銷交付交易簽名值進(jìn)行交換與交易雙方分別使用交易另一方的可撤銷交付交易公鑰對(duì)接收到的可撤銷交付交易的簽名值進(jìn)行驗(yàn)證之間包括:交易雙方判斷是否接收到可撤銷交付交易的簽名值,是則使用交易另一方的可撤銷交付交易公鑰對(duì)接收到的可撤銷交付交易的簽名值進(jìn)行驗(yàn)證,否則結(jié)束。
在本實(shí)施例中,步驟b1與步驟b2之間包括:交易雙方分別判斷是否接收到交付交易公鑰,是則執(zhí)行步驟b2,否則結(jié)束。
步驟b2:交易雙方創(chuàng)建交付交易,分別使用各自的交付交易私鑰對(duì)交付交易進(jìn)行簽名,并交換交付交易簽名值;
可選的,在本實(shí)施例中,步驟b2與步驟b3之間包括:交易雙方分別判斷是否接收到交付交易簽名值,是則執(zhí)行步驟b3,否則結(jié)束。
步驟b3:交易雙方創(chuàng)建承諾交易,分別使用承諾交易私鑰對(duì)承諾交易進(jìn)行簽名得到承諾交易簽名值;
步驟b4:交易雙方交換承諾交易公鑰和承諾交易簽名值;
可選的,在本實(shí)施例中,步驟b4與步驟b5之間包括:交易雙方分別判斷是否接收到承諾交易公鑰和承諾交易簽名值,是則執(zhí)行步驟b5,否則結(jié)束。
步驟b5:交易雙方分別使用接收到的交易另一方的承諾交易公鑰對(duì)接收到的承諾交易簽名值進(jìn)行驗(yàn)證,如驗(yàn)證通過則執(zhí)行步驟b6,否則結(jié)束;
步驟b6:交易雙方分別使用各自的出賬交易私鑰對(duì)自身的初始通道資金交易進(jìn)行簽名得到初始通道資金交易一重簽名值并進(jìn)行交換;
可選的,在本實(shí)施例中,步驟b6與步驟b7之間包括:交易雙方分別判斷是否接收到初始通道資金交易一重簽名值,是則執(zhí)行步驟b7,否則結(jié)束。
步驟b7:交易雙方分別使用接收到的出賬交易公鑰對(duì)接收到的初始通道資金交易一重簽名值進(jìn)行驗(yàn)證,如驗(yàn)證通過則執(zhí)行步驟b8,否則結(jié)束;
步驟b8:交易一方使用初始通道資金交易私鑰對(duì)接收到的初始通道資金交易一重簽名值進(jìn)行簽名得到二重簽名值,并公布初始通道資金交易;
當(dāng)交易雙方在公布初始通道資金交易之后,交易一方判斷承諾交易是否被公布,是則執(zhí)行步驟s1,否則結(jié)束;
步驟s1:交易一方判斷公布的承諾交易是否為第一承諾交易,是則執(zhí)行步驟s5,否則執(zhí)行步驟s2;
步驟s2:交易一方判斷是否到達(dá)交易另一方的可撤銷出賬鎖定時(shí)間,是則執(zhí)行步驟s4,否則執(zhí)行步驟s3;
步驟s3:交易一方執(zhí)行可撤銷出賬,結(jié)束;
步驟s4:交易一方設(shè)置可撤銷出賬無效,并設(shè)置違約補(bǔ)償交易有效,當(dāng)檢測(cè)到交易另一方公布了第一承諾交易則執(zhí)行步驟s5;
步驟s5:交易一方執(zhí)行違約補(bǔ)償交易。
在本實(shí)施例中,上述交易雙方在公布初始通道資金交易與交易一方判斷承諾交易是否被公布之間包括:
步驟c1:交易雙方交換違約補(bǔ)償交易公鑰;
具體的,在本實(shí)施例中,步驟c1與步驟c2之間包括:交易雙方分別判斷是否接收到違約補(bǔ)償交易公鑰,是則執(zhí)行步驟c2,否則結(jié)束。
步驟c2:交易雙方分別創(chuàng)建違約補(bǔ)償交易,使用各自的違約補(bǔ)償交易私鑰對(duì)違約補(bǔ)償交易進(jìn)行簽名得到違約補(bǔ)償交易簽名值并交換違約補(bǔ)償交易簽名值;
可選的,在本實(shí)施例中,步驟c2與步驟c3之間包括:交易雙方分別判斷是否接收到違約補(bǔ)償交易簽名值,是則執(zhí)行步驟c3,否則結(jié)束。
步驟c3:交易雙方交換第二可撤銷交付交易公鑰;
可選的,在本實(shí)施例中,步驟c3與步驟c4之間包括:交易雙方分別判斷是否接收到第二可撤銷交付交易公鑰,是則執(zhí)行步驟c4,否則結(jié)束。
步驟c4:交易雙方分別創(chuàng)建第二可撤銷交付交易,使用各自的第二可撤銷交付交易私鑰對(duì)第二可撤銷交付交易進(jìn)行簽名得到第二可撤銷交付交易簽名值,并交換第二可撤銷交付交易簽名值;
可選的,在本實(shí)施例中,步驟c4與步驟c5之間包括:交易雙方分別判斷是否接收到第二可撤銷交付交易簽名值,是則執(zhí)行步驟c5,否則結(jié)束。
步驟c5:交易雙方分別創(chuàng)建第二承諾交易,并使用各自的第二承諾交易私鑰對(duì)第二承諾交易進(jìn)行簽名得到第二承諾交易簽名值;
步驟c6:交易雙方交換第二承諾交易公鑰和第二承諾交易簽名值;
可選的,在本實(shí)施例中,步驟c6與步驟c7之間包括:交易雙方分別判斷是否接收到第二承諾交易公鑰和第二承諾交易簽名值,是則執(zhí)行步驟c7,否則結(jié)束。
步驟c7:交易雙方分別使用接收到的第二承諾交易公鑰對(duì)接收到的第二承諾交易簽名值進(jìn)行驗(yàn)證,如驗(yàn)證成功則執(zhí)行步驟c8,如驗(yàn)證失敗則交易一方判斷承諾交易是否被公布;
在本實(shí)施例中,交易一方判斷承諾交易是否被公布可以是交易發(fā)起者進(jìn)行判斷或者交易響應(yīng)者進(jìn)行判斷;
步驟c8:交易雙方分別使用自身的第二承諾交易私鑰對(duì)接收到的第二承諾交易簽名值進(jìn)行再次簽名得到承諾交易二重簽名值,然后公布第二承諾交易。
實(shí)施例二
本發(fā)明實(shí)施例二提供交易雙方創(chuàng)建初始通道資金交易中的交易發(fā)起者的實(shí)現(xiàn)方法,如圖1和圖2所示,包括:
步驟100:交易發(fā)起者將發(fā)起者入賬識(shí)別碼發(fā)送給交易響應(yīng)者;
具體的,在本實(shí)施例中,入賬識(shí)別碼用于表示交易時(shí)的資金來源;
步驟101:交易發(fā)起者判斷是否接收到交易響應(yīng)者發(fā)送的響應(yīng)者入賬識(shí)別碼,是則執(zhí)行步驟102,否則結(jié)束;
步驟102:交易發(fā)起者將發(fā)起者出賬交易公鑰發(fā)送給交易響應(yīng)者;
步驟103:交易發(fā)起者判斷是否接收到交易響應(yīng)者發(fā)送的響應(yīng)者出賬交易公鑰,是則執(zhí)行步驟104,否則結(jié)束;
步驟104:交易發(fā)起者創(chuàng)建發(fā)起者初始通道資金交易的入賬;
具體的,入賬包括發(fā)起者的入賬識(shí)別碼和發(fā)起者的出賬交易公鑰哈希值。
步驟105:交易發(fā)起者將所創(chuàng)建的初始通道資金交易的入賬發(fā)送給響應(yīng)者;
步驟106:交易發(fā)起者判斷是否接收到交易響應(yīng)者發(fā)送的響應(yīng)者初始通道資金交易的入賬,是則執(zhí)行107,否則結(jié)束;
步驟107:交易發(fā)起者將發(fā)起者鎖定通道資金地址發(fā)送給響應(yīng)者;
步驟108:交易發(fā)起者判斷是否接收到交易響應(yīng)者發(fā)送的響應(yīng)者鎖定通道資金地址,是則執(zhí)行步驟109,否則結(jié)束;
步驟109:交易發(fā)起者根據(jù)響應(yīng)者鎖定通道資金地址獲取響應(yīng)者初始通道資金交易的入賬,使用響應(yīng)者出賬交易公鑰對(duì)獲取的入賬進(jìn)行驗(yàn)證,如驗(yàn)證成功則執(zhí)行步驟110,如驗(yàn)證失敗則結(jié)束;
具體的,在本實(shí)施例中,步驟109具體包括:
步驟109-1:交易發(fā)起者判斷區(qū)塊鏈上是否有響應(yīng)者鎖定通道資金地址的資金記錄,是則執(zhí)行步驟109-2,否則結(jié)束;
步驟109-2:交易發(fā)起者判斷記錄的資金是否被消費(fèi),是則執(zhí)行步驟110,否則結(jié)束;
步驟110:交易發(fā)起者創(chuàng)建發(fā)起者初始通道資金交易的出賬;
步驟111:交易發(fā)起者將發(fā)起者初始通道資金交易的出賬發(fā)送給交易響應(yīng)者;
步驟112:交易發(fā)起者判斷是否接收到交易響應(yīng)者的初始通道資金交易的出賬,是則執(zhí)行步驟113,否則結(jié)束;
步驟113:交易發(fā)起者根據(jù)自身的初始通道資金交易的入賬和出賬創(chuàng)建初始通道資金交易;
步驟114:交易發(fā)起者將發(fā)起者可撤銷交付交易公鑰發(fā)送給交易響應(yīng)者;
步驟115:交易發(fā)起者判斷是否接收到交易響應(yīng)者發(fā)送的響應(yīng)者可撤銷交付交易公鑰,是則執(zhí)行步驟116,否則結(jié)束;
步驟116:交易發(fā)起者創(chuàng)建發(fā)起者可撤銷交付交易;
步驟117:交易發(fā)起者使用發(fā)起者可撤銷交付交易私鑰對(duì)發(fā)起者可撤銷交付交易進(jìn)行簽名得到發(fā)起者可撤銷交付交易的簽名值;
步驟118:交易發(fā)起者將發(fā)起者可撤銷交付交易的簽名值發(fā)送給交易響應(yīng)者;
步驟119:交易發(fā)起者判斷是否接收到交易響應(yīng)者發(fā)送的響應(yīng)者可撤銷交付交易的簽名值,是則執(zhí)行步驟120,否則結(jié)束;
步驟120:交易發(fā)起者將發(fā)起者交付交易公鑰發(fā)送給交易響應(yīng)者;
步驟121:交易發(fā)起者判斷是否接收到交易響應(yīng)者發(fā)送的響應(yīng)者交付交易公鑰,是則執(zhí)行步驟122,否則結(jié)束;
步驟122:交易發(fā)起者創(chuàng)建發(fā)起者交付交易;
步驟123:交易發(fā)起者使用發(fā)起者交付交易私鑰對(duì)發(fā)起者交付交易進(jìn)行簽名得到發(fā)起者交付交易簽名值;
步驟124:交易發(fā)起者將發(fā)起者交付交易簽名值發(fā)送給響應(yīng)者;
步驟125:交易發(fā)起者判斷是否接收到交易響應(yīng)者所發(fā)送的響應(yīng)者交付交易簽名值,是則執(zhí)行步驟126,否則結(jié)束;
步驟126:交易發(fā)起者創(chuàng)建發(fā)起者承諾交易;
步驟127:交易發(fā)起者使用發(fā)起者承諾交易私鑰對(duì)發(fā)起者承諾交易進(jìn)行簽名得到發(fā)起者第一承諾交易簽名值;
步驟128:交易發(fā)起者將發(fā)起者承諾交易公鑰發(fā)送給交易響應(yīng)者;
步驟129:交易發(fā)起者判斷是否接收到交易響應(yīng)者發(fā)送的響應(yīng)者承諾交易公鑰,是則執(zhí)行步驟130,否則結(jié)束;
步驟130:交易發(fā)起者將發(fā)起者第一承諾交易簽名值發(fā)送給交易響應(yīng)者;
步驟131:交易發(fā)起者判斷是否接收到交易響應(yīng)者發(fā)送的響應(yīng)者第一承諾交易簽名值,是則執(zhí)行步驟132,否則結(jié)束;
步驟132:交易發(fā)起者使用響應(yīng)者承諾交易公鑰對(duì)響應(yīng)者第一承諾交易簽名值進(jìn)行驗(yàn)證,如驗(yàn)證成功則執(zhí)行步驟133,如驗(yàn)證失敗則結(jié)束;
具體的,在本實(shí)施例中,步驟133包括:
步驟132-1:交易發(fā)起者使用交易響應(yīng)者發(fā)送的響應(yīng)者承諾交易公鑰對(duì)響應(yīng)者第一承諾交易簽名值進(jìn)行解密得到第一解密結(jié)果;
步驟132-2:交易發(fā)起者根據(jù)第一哈希算法對(duì)響應(yīng)者承諾交易進(jìn)行計(jì)算得到第一哈希值;
步驟132-3:交易發(fā)起者判斷第一解密結(jié)果與第一哈希值是否一致,是則執(zhí)行步驟133,否則結(jié)束;
步驟133:交易發(fā)起者使用發(fā)起者出賬交易私鑰對(duì)發(fā)起者初始通道資金交易進(jìn)行簽名得到發(fā)起者初始通道資金交易一重簽名值;
步驟134:交易發(fā)起者將發(fā)起者初始通道資金交易一重簽名值發(fā)送給交易響應(yīng)者;
步驟135:交易發(fā)起者判斷是否接收到交易響應(yīng)者發(fā)送的響應(yīng)者初始通道資金交易一重簽名值,是則執(zhí)行步驟136,否則結(jié)束;
步驟136:交易發(fā)起者使用響應(yīng)者出賬交易公鑰對(duì)響應(yīng)者初始通道資金交易一重簽名值進(jìn)行驗(yàn)證,如驗(yàn)證成功則執(zhí)行步驟137,如驗(yàn)證失敗則結(jié)束;
具體的,在本實(shí)施例中,步驟136包括:
步驟136-1:交易發(fā)起者使用響應(yīng)者出賬交易公鑰對(duì)響應(yīng)者初始通道資金交易一重簽名值進(jìn)行解密得到第二解密結(jié)果;
步驟136-2:交易發(fā)起者根據(jù)第二哈希算法對(duì)響應(yīng)者初始通道資金交易進(jìn)行計(jì)算得到第二哈希值;
步驟136-3:交易發(fā)起者判斷第二解密結(jié)果與第二哈希值是否一致,是則執(zhí)行步驟137,否則結(jié)束;
步驟137:交易發(fā)起者使用發(fā)起者初始通道資金交易私鑰對(duì)響應(yīng)者的初始通道資金交易一重簽名值進(jìn)行簽名得到初始通道資金交易二重簽名值;
步驟138:交易發(fā)起者公布初始通道資金交易。
實(shí)施例三
本發(fā)明實(shí)施例三提供交易雙方創(chuàng)建初始通道資金交易中的交易響應(yīng)者的實(shí)現(xiàn)方法,如圖3和圖4所示,包括:
步驟200:交易響應(yīng)者判斷是否接收到交易發(fā)起者發(fā)送的發(fā)起者入賬識(shí)別碼,是則執(zhí)行步驟201,否則結(jié)束;
具體的,在本實(shí)施例中,入賬識(shí)別碼用于表示交易時(shí)的資金來源;
步驟201:交易響應(yīng)者將響應(yīng)者入賬識(shí)別碼發(fā)送給交易發(fā)起者;
步驟202:交易響應(yīng)者判斷是否接收到交易發(fā)起者發(fā)送的發(fā)起者出賬交易公鑰,是則執(zhí)行步驟203,否則結(jié)束;
步驟203:交易響應(yīng)者將響應(yīng)者出賬交易公鑰發(fā)送給交易發(fā)起者;
步驟204:交易響應(yīng)者創(chuàng)建響應(yīng)者初始通道資金交易的入賬;
步驟205:交易響應(yīng)者判斷是否接收到交易發(fā)起者發(fā)送的發(fā)起者初始通道資金交易的入賬,是則執(zhí)行步驟206,否則結(jié)束;
步驟206:交易響應(yīng)者將響應(yīng)者初始通道資金交易的入賬發(fā)送給交易發(fā)起者;
步驟207:交易響應(yīng)者判斷是否收到交易發(fā)起者發(fā)送的發(fā)起者鎖定通道資金地址,是則執(zhí)行步驟208,否則結(jié)束;
步驟208:交易響應(yīng)者將響應(yīng)者鎖定通道資金地址發(fā)送給交易發(fā)起者;
步驟209:交易響應(yīng)者根據(jù)發(fā)起者鎖定通道資金地址獲取發(fā)起者初始通道資金交易的入賬,使用發(fā)起者出賬交易公鑰對(duì)獲取的入賬進(jìn)行驗(yàn)證,如驗(yàn)證成功則執(zhí)行步驟210,如驗(yàn)證失敗則結(jié)束;
在本實(shí)施例中,步驟209具體包括:
步驟209-1:交易響應(yīng)者判斷區(qū)塊鏈上是否有發(fā)起者鎖定通道資金地址的資金記錄,是則執(zhí)行步驟209-2,否則結(jié)束;
步驟209-2:交易響應(yīng)者判斷記錄的資金是否被消費(fèi),是則執(zhí)行步驟207,否則結(jié)束;
步驟210:交易響應(yīng)者創(chuàng)建響應(yīng)者初始通道資金交易出賬;
步驟211:交易響應(yīng)者判斷是否接收到交易發(fā)起者發(fā)送的發(fā)起者初始通道資金交易出賬,是則執(zhí)行步驟212,否則結(jié)束;
步驟212:交易響應(yīng)者將響應(yīng)者初始通道資金交易出賬發(fā)送給交易發(fā)起者;
步驟213:交易響應(yīng)者創(chuàng)建初始通道資金交易;
步驟214:交易響應(yīng)者判斷是否接收到交易發(fā)起者發(fā)送的發(fā)起者可撤銷交付交易公鑰,是則執(zhí)行步驟215,否則結(jié)束;
步驟215:交易響應(yīng)者將響應(yīng)者可撤銷交付交易公鑰發(fā)送給交易發(fā)起者;
步驟216:交易響應(yīng)者創(chuàng)建響應(yīng)者可撤銷交付交易;
步驟217:交易響應(yīng)者使用響應(yīng)者可撤銷交付交易私鑰對(duì)響應(yīng)者可撤銷交付交易進(jìn)行簽名;
步驟218:交易響應(yīng)者判斷是否接收到交易發(fā)起者發(fā)送的發(fā)起者可撤銷交付交易的簽名值,是則執(zhí)行步驟219,否則結(jié)束;
步驟219:交易響應(yīng)者將響應(yīng)者可撤銷交付交易的簽名值發(fā)送給交易發(fā)起者;
步驟220:交易響應(yīng)者判斷是否接收到交易發(fā)起者發(fā)送的發(fā)起者交付交易公鑰,是則執(zhí)行步驟221,否則結(jié)束;
步驟221:交易響應(yīng)者將響應(yīng)者交付交易公鑰發(fā)送給交易發(fā)起者;
步驟222:交易響應(yīng)者創(chuàng)建響應(yīng)者交付交易;
步驟223:交易響應(yīng)者使用響應(yīng)者交付交易私鑰對(duì)響應(yīng)者交付交易進(jìn)行簽名得到響應(yīng)者交付交易簽名值;
步驟224:交易響應(yīng)者判斷是否接收到交易發(fā)起者發(fā)送的發(fā)起者交付交易簽名值,是則執(zhí)行步驟225,否則結(jié)束;
步驟225:交易響應(yīng)者將響應(yīng)者交付交易簽名值發(fā)送給交易發(fā)起者;
步驟226:交易響應(yīng)者創(chuàng)建響應(yīng)者承諾交易;
步驟227:交易響應(yīng)者使用響應(yīng)者承諾交易私鑰對(duì)響應(yīng)者承諾交易進(jìn)行簽名得到響應(yīng)者第一承諾交易簽名值;
步驟228:交易響應(yīng)者判斷是否接收到交易發(fā)起者發(fā)送的發(fā)起者承諾交易公鑰,是則執(zhí)行步驟229,否則結(jié)束;
步驟229:交易響應(yīng)者將響應(yīng)者承諾交易公鑰發(fā)送給交易發(fā)起者;
步驟230:交易響應(yīng)者判斷是否接收到交易發(fā)起者發(fā)送的發(fā)起者第一承諾交易簽名值,是則執(zhí)行步驟231,否則結(jié)束;
步驟231:交易響應(yīng)者將響應(yīng)者第一承諾交易簽名值發(fā)送給交易發(fā)起者;
步驟232:交易響應(yīng)者使用發(fā)起者承諾交易公鑰對(duì)發(fā)起者第一承諾交易簽名值進(jìn)行驗(yàn)證,如驗(yàn)證成功則執(zhí)行步驟233,如驗(yàn)證失敗則結(jié)束;
具體的,在本實(shí)施例,步驟232包括:
步驟232-1:交易響應(yīng)者使用發(fā)起者承諾交易公鑰對(duì)發(fā)起者第一承諾交易簽名值進(jìn)行解密得到第三解密結(jié)果;
步驟232-2:交易響應(yīng)者根據(jù)第三哈希算法對(duì)發(fā)起者承諾交易進(jìn)行計(jì)算得到第三哈希值;
步驟232-3:交易響應(yīng)者判斷第三解密結(jié)果與第三哈希值是否一致,是則執(zhí)行步驟233,否則結(jié)束;
步驟233:交易響應(yīng)者使用響應(yīng)者出賬交易私鑰對(duì)響應(yīng)者初始通道資金交易進(jìn)行簽名得到響應(yīng)者初始通道資金交易一重簽名值;
步驟234:交易響應(yīng)者判斷是否接收到交易發(fā)起者發(fā)送的發(fā)起者初始通道資金交易一重簽名值,是則執(zhí)行步驟235,否則結(jié)束;
步驟235:交易響應(yīng)者使用發(fā)起者出賬交易公鑰對(duì)發(fā)起者初始通道資金交易一重簽名值進(jìn)行驗(yàn)證,如驗(yàn)證成功則執(zhí)行步驟236,如驗(yàn)證失敗則結(jié)束;
具體的,在本實(shí)施例,步驟235包括:
步驟235-1:交易響應(yīng)者使用發(fā)起者出賬交易公鑰對(duì)發(fā)起者初始通道資金交易一重簽名值進(jìn)行解密得到第四解密結(jié)果;
步驟235-2:交易響應(yīng)者根據(jù)第四哈希算法對(duì)發(fā)起者初始通道資金交易進(jìn)行計(jì)算得到第四哈希值;
步驟235-3:交易響應(yīng)者判斷第四解密結(jié)果與第四哈希值是否一致,是則執(zhí)行步驟236,否則結(jié)束;
步驟236:交易響應(yīng)者將響應(yīng)者初始通道資金交易一重簽名值發(fā)送給交易發(fā)起者。
實(shí)施例四
本發(fā)明實(shí)施例四提供交易發(fā)起者在資金交易通道內(nèi)進(jìn)行第二交易的實(shí)現(xiàn)方法,如圖5所示,包括:
步驟301:交易發(fā)起者將發(fā)起者違約補(bǔ)償交易公鑰發(fā)送給交易響應(yīng)者;
步驟302:交易發(fā)起者判斷是否接收到交易響應(yīng)者的響應(yīng)者違約補(bǔ)償交易公鑰,是則執(zhí)行步驟303,否則結(jié)束;
步驟303:交易發(fā)起者創(chuàng)建發(fā)起者違約補(bǔ)償交易,并使用發(fā)起者違約補(bǔ)償交易私鑰對(duì)發(fā)起者違約補(bǔ)償交易進(jìn)行簽名得到發(fā)起者違約補(bǔ)償交易簽名值;
步驟304:交易發(fā)起者將發(fā)起者違約補(bǔ)償交易簽名值發(fā)送給交易響應(yīng)者;
步驟305:交易發(fā)起者判斷是否接收到交易響應(yīng)者發(fā)送的響應(yīng)者違約補(bǔ)償交易簽名值,是則執(zhí)行步驟306,否則結(jié)束;
步驟306:交易發(fā)起者將發(fā)起者第二可撤銷交付交易公鑰發(fā)送給交易響應(yīng)者;
步驟307:交易發(fā)起者判斷是否接收到交易響應(yīng)者發(fā)送的響應(yīng)者第二可撤銷交付交易公鑰,是則執(zhí)行步驟308,否則結(jié)束;
步驟308:交易發(fā)起者創(chuàng)建發(fā)起者第二可撤銷交付交易,使用發(fā)起者第二可撤銷交付交易私鑰對(duì)發(fā)起者第二可撤銷交付交易進(jìn)行簽名得到發(fā)起者第二可撤銷交付交易簽名值;
步驟309:交易發(fā)起者將發(fā)起者第二可撤銷交付交易簽名值發(fā)送給交易響應(yīng)者;
步驟310:交易發(fā)起者判斷是否接收到交易響應(yīng)者發(fā)送的響應(yīng)者第二可撤銷交付交易的簽名值,是則執(zhí)行步驟311,否則結(jié)束;
步驟311:交易發(fā)起者創(chuàng)建發(fā)起者第二承諾交易,使用發(fā)起者第二承諾交易私鑰對(duì)發(fā)起者第二承諾交易進(jìn)行簽名得到發(fā)起者第二承諾交易簽名值;
步驟312:交易發(fā)起者將發(fā)起者第二承諾交易公鑰發(fā)送給交易響應(yīng)者;
步驟313:交易發(fā)起者判斷是否接收到交易響應(yīng)者發(fā)送的響應(yīng)者第二承諾交易公鑰,是則執(zhí)行步驟314,否則結(jié)束;
步驟314:交易發(fā)起者將發(fā)起者第二承諾交易簽名值發(fā)送給交易響應(yīng)者;
步驟315:交易發(fā)起者判斷是否接收到交易響應(yīng)者發(fā)送的響應(yīng)者第二承諾交易簽名值,是則執(zhí)行步驟316,否則結(jié)束;
步驟316:交易發(fā)起者使用響應(yīng)者第二承諾交易公鑰對(duì)響應(yīng)者第二承諾交易簽名值進(jìn)行驗(yàn)證,如驗(yàn)證成功則執(zhí)行步驟317,如驗(yàn)證失敗則執(zhí)行步驟318;
步驟317:交易發(fā)起者使用發(fā)起者第二承諾交易私鑰對(duì)響應(yīng)者第二承諾交易簽名值進(jìn)行再次簽名得到發(fā)起者承諾交易二重簽名值,然后公布發(fā)起者第二承諾交易;
步驟318:交易發(fā)起者判斷交易響應(yīng)者的響應(yīng)者承諾交易是否被公布,是則執(zhí)行步驟319,否則結(jié)束;
具體的,在本實(shí)施例中,交易發(fā)起者在區(qū)塊鏈上查詢是否有交易響應(yīng)者的承諾交易,是則交易響應(yīng)者的承諾交易被公布,否則交易響應(yīng)者的承諾交易未被公布;
步驟319:交易發(fā)起者判斷交易響應(yīng)者發(fā)布的響應(yīng)者承諾交易是否為第二承諾交易,是則執(zhí)行步驟320,否則執(zhí)行步驟323;
具體的,在本實(shí)施例中,交易發(fā)起者可以根據(jù)承諾交易的公布時(shí)間先后順序判斷是否為第二承諾交易;
步驟320:交易發(fā)起者判斷是否到達(dá)交易響應(yīng)者的可撤銷出賬鎖定時(shí)間,是則執(zhí)行步驟322,否則執(zhí)行步驟321;
步驟321:交易發(fā)起者執(zhí)行可撤銷交易,結(jié)束;
在本實(shí)施例中,交易發(fā)起者通過執(zhí)行可撤銷交易拿回自己的資金;
步驟322:交易發(fā)起者設(shè)置可撤銷交易無效標(biāo)識(shí)和違約補(bǔ)償交易標(biāo)識(shí),當(dāng)檢測(cè)到交易響應(yīng)者公布了第一承諾交易執(zhí)行步驟323;
步驟323:交易發(fā)起者執(zhí)行違約補(bǔ)償交易,結(jié)束;
在本實(shí)施例中,交易發(fā)起者通過執(zhí)行違約補(bǔ)償交易獲取交易響應(yīng)者的違約補(bǔ)償金額。
實(shí)施例五
本發(fā)明實(shí)施例五提供交易響應(yīng)者在資金交易通道內(nèi)進(jìn)行第二交易的實(shí)現(xiàn)方法,如圖6所示,包括:
步驟401:交易響應(yīng)者判斷是否接收到交易發(fā)起者的發(fā)起者違約補(bǔ)償交易公鑰,是則執(zhí)行步驟402,否則結(jié)束;
步驟402:交易響應(yīng)者將響應(yīng)者違約補(bǔ)償交易公鑰發(fā)送給交易發(fā)起者;
步驟403:交易響應(yīng)者創(chuàng)建響應(yīng)者違約補(bǔ)償交易,使用響應(yīng)者違約補(bǔ)償交易私鑰對(duì)響應(yīng)者違約補(bǔ)償交易進(jìn)行簽名得到響應(yīng)者違約補(bǔ)償交易簽名值;
步驟404:交易響應(yīng)者判斷是否接收到交易發(fā)起者發(fā)送的發(fā)起者違約補(bǔ)償交易簽名值,是則執(zhí)行步驟405,否則結(jié)束;
步驟405:交易響應(yīng)者將響應(yīng)者違約補(bǔ)償交易簽名值發(fā)送給交易發(fā)起者;
步驟406:交易響應(yīng)者判斷是否接收到交易發(fā)起者發(fā)送的發(fā)起者第二可撤銷交付交易公鑰,是則執(zhí)行步驟407,否則結(jié)束;
步驟407:交易響應(yīng)者將響應(yīng)者第二可撤銷交付交易公鑰發(fā)送給交易發(fā)起者;
步驟408:交易響應(yīng)者創(chuàng)建響應(yīng)者第二可撤銷交付交易,使用響應(yīng)者第二可撤銷交付交易私鑰對(duì)響應(yīng)者第二可撤銷交付交易進(jìn)行簽名得到響應(yīng)者第二可撤銷交付交易簽名值;
步驟409:交易響應(yīng)者判斷是否接收到交易發(fā)起者發(fā)送的發(fā)起者第二可撤銷交付交易的簽名值,是則執(zhí)行步驟410,否則結(jié)束;
步驟410:交易響應(yīng)者將響應(yīng)者第二可撤銷交付交易的簽名值發(fā)送給交易發(fā)起者;
步驟411:交易響應(yīng)者創(chuàng)建響應(yīng)者第二承諾交易,使用響應(yīng)者第二承諾交易私鑰對(duì)響應(yīng)者第二承諾交易進(jìn)行簽名得到響應(yīng)者第二承諾交易簽名值;
步驟412:交易響應(yīng)者判斷是否接收到交易發(fā)起者發(fā)送的發(fā)起者第二承諾交易公鑰,是則執(zhí)行步驟413,否則結(jié)束;
步驟413:交易響應(yīng)者將響應(yīng)者第二承諾交易公鑰發(fā)送給交易發(fā)起者;
步驟414:交易響應(yīng)者判斷是否接收到交易發(fā)起者發(fā)送的發(fā)起者第二承諾交易簽名值,是則執(zhí)行步驟415,否則結(jié)束;
步驟415:交易響應(yīng)者將響應(yīng)者第二承諾交易簽名值發(fā)送給交易發(fā)起者;
步驟416:交易響應(yīng)者使用發(fā)起者第二承諾交易公鑰對(duì)發(fā)起者第二承諾交易簽名值進(jìn)行驗(yàn)證,如驗(yàn)證成功則執(zhí)行步驟417,如驗(yàn)證失敗則執(zhí)行步驟418;
步驟417:交易響應(yīng)者對(duì)發(fā)起者第二承諾交易簽名值進(jìn)行再次簽名得到響應(yīng)者承諾交易二重簽名值,然后公布響應(yīng)者第二承諾交易;
步驟418:交易響應(yīng)者判斷交易發(fā)起者的發(fā)起者承諾交易是否被公布,是則執(zhí)行步驟419,否則結(jié)束;
具體的,在本實(shí)施例中,交易響應(yīng)者在區(qū)塊鏈上查詢是否有交易發(fā)起者的承諾交易,是則交易發(fā)起者的承諾交易被公布,否則交易發(fā)起者的承諾交易未被公布;
步驟419:交易響應(yīng)者判斷交易發(fā)起者發(fā)布的承諾交易是否為第二承諾交易,是則執(zhí)行步驟420,否則執(zhí)行步驟423;
具體的,在本實(shí)施例中,交易響應(yīng)者可以根據(jù)承諾交易的公布時(shí)間先后順序判斷是否為第二承諾交易;
步驟420:交易響應(yīng)者判斷是否到達(dá)交易發(fā)起者的可撤銷出賬鎖定時(shí)間,是則執(zhí)行步驟422,否則執(zhí)行步驟421;
步驟421:交易響應(yīng)者執(zhí)行可撤銷交易,結(jié)束;
在本實(shí)施例中,交易響應(yīng)者通過執(zhí)行可撤銷出賬交易拿回自己的出資;
步驟422:交易響應(yīng)者設(shè)置可撤銷交易無效標(biāo)識(shí)和違約補(bǔ)償交易標(biāo)識(shí),當(dāng)檢測(cè)到交易發(fā)起者公布了第一承諾交易執(zhí)行步驟423;
步驟423:交易響應(yīng)者執(zhí)行違約補(bǔ)償交易,結(jié)束;
在本實(shí)施例中,交易響應(yīng)者通過執(zhí)行違約補(bǔ)償交易獲取交易發(fā)起者的違約補(bǔ)償金額。
實(shí)施例六
本發(fā)明實(shí)施例六提供一種撤銷智能合約交易的實(shí)現(xiàn)過程,如圖7所示,本實(shí)施例方法包括:
步驟501:交易一方判斷交易另一方承諾交易是否被公布,是則執(zhí)行步驟502,否則結(jié)束;
具體的,在本實(shí)施例中,交易一方在區(qū)塊鏈上查詢是否有交易另一方的承諾交易,是則交易另一方的承諾交易被公布,否則交易另一方的承諾交易未被公布;
步驟502:交易一方判斷交易另一方公布的承諾交易是否為第二承諾交易,是則執(zhí)行步驟503,否則執(zhí)行步驟506;
具體的,在本實(shí)施例中,交易一方可以根據(jù)交易另一方承諾交易的公布時(shí)間先后順序判斷交易另一方公布的承諾交易是否為第二承諾交易;
步驟503:交易一方判斷是否到達(dá)交易另一方的可撤銷出賬鎖定時(shí)間,是則執(zhí)行步驟505,否則執(zhí)行步驟504;
步驟504:交易一方執(zhí)行可撤銷出賬交易,結(jié)束;
在本實(shí)施例中,交易一方通過執(zhí)行可撤銷出賬交易拿回自己的出資;
步驟505:交易一方設(shè)置可撤銷交易無效標(biāo)識(shí)和違約補(bǔ)償交易標(biāo)識(shí),執(zhí)行步驟506;
步驟506:交易一方執(zhí)行違約補(bǔ)償交易,結(jié)束;
在本實(shí)施例中,交易一方通過執(zhí)行違約補(bǔ)償交易獲取交易另一方的違約補(bǔ)償金額。
實(shí)施例七
本發(fā)明實(shí)施例七提供一種可撤銷智能合約交易的實(shí)現(xiàn)裝置,該裝置可以為交易發(fā)起者或者為交易響應(yīng)者,例如在本次交易過程中為交易發(fā)起者,而在下一次交易中可能為交易響應(yīng)者,如圖8所示,本實(shí)施例的裝置包括:
第一交換模塊801,用于與交易另一方交換交付交易公鑰;
在本實(shí)施例中,交付交易公鑰與交付交易私鑰相對(duì)應(yīng);
第一創(chuàng)建模塊802,用于創(chuàng)建交付交易;
第一簽名模塊803,用于使用自身的交付交易私鑰對(duì)第一創(chuàng)建模塊802創(chuàng)建的交付交易進(jìn)行簽名得到交付交易簽名值;
第二交換模塊804,用于與交易另一方交換第一簽名模塊803簽名得到的交付交易簽名值;
第二創(chuàng)建模塊805,用于創(chuàng)建承諾交易;
第二簽名模塊806,用于使用承諾交易私鑰對(duì)第二創(chuàng)建模塊805創(chuàng)建的承諾交易進(jìn)行簽名得到承諾交易簽名值;
在本實(shí)施例中,承諾交易公鑰與承諾交易私鑰相對(duì)應(yīng);
第三交換模塊807,用于與交易另一方交換承諾交易公鑰和第二簽名模塊806得到的承諾交易簽名值;
第一驗(yàn)證模塊808,用于使用第三交換模塊807接收到的交易另一方的承諾交易公鑰對(duì)接收到的承諾交易簽名值進(jìn)行驗(yàn)證;
第三簽名模塊809,用于在第一驗(yàn)證模塊808驗(yàn)證通過時(shí),使用自身的出賬交易私鑰對(duì)自身的初始通道資金交易進(jìn)行簽名得到初始通道資金交易一重簽名值;
在本實(shí)施例中,出賬交易私鑰與出賬交易公鑰相對(duì)應(yīng);
第四交換模塊810,用于與交易另一方交換第三簽名模塊809得到的初始通道資金交易一重簽名值;
第二驗(yàn)證模塊811,用于使用第四交換模塊810接收到的出賬交易公鑰對(duì)接收到的初始通道資金交易一重簽名值進(jìn)行驗(yàn)證;
第一簽名公布模塊812,用于在第二驗(yàn)證模塊811驗(yàn)證通過時(shí),使用初始通道資金交易私鑰對(duì)接收到的初始通道資金交易一重簽名值進(jìn)行簽名得到二重簽名值,并公布初始通道資金交易;
在本實(shí)施例中,初始通道資金交易私鑰與初始通道資金交易公鑰相對(duì)應(yīng);
第一判斷模塊813,用于判斷第二創(chuàng)建模塊805創(chuàng)建的承諾交易是否被公布;
第二判斷模塊814,用于在第一判斷模塊813判斷為是時(shí),判斷公布的承諾交易是否為第一承諾交易;
第三判斷模塊815,用于在第二判斷模塊814判斷為否時(shí),判斷是否到達(dá)交易另一方的可撤銷出賬鎖定時(shí)間;
第一執(zhí)行模塊816,用于在第三判斷模塊815判斷為否時(shí),執(zhí)行可撤銷出賬;
第一設(shè)置模塊817,用于在第三判斷模塊815判斷為是時(shí),設(shè)置可撤銷出賬無效,并設(shè)置違約補(bǔ)償交易有效;
第二執(zhí)行模塊818,用于在第二判斷模塊814判斷為是時(shí)和/或檢測(cè)到交易另一方公布了第一承諾交易時(shí),執(zhí)行違約補(bǔ)償交易。
進(jìn)一步的,本實(shí)施例中的裝置還包括:
第三創(chuàng)建模塊,用于創(chuàng)建初始通道資金交易;
第五交換模塊,用于與交易另一方交換可撤銷交付交易公鑰;
第四創(chuàng)建模塊,用于創(chuàng)建可撤銷交付交易;
第四簽名模塊,用于使用自身的可撤銷交付交易私鑰對(duì)可撤銷交付交易進(jìn)行簽名;
第六交換模塊,用于將第四簽名模塊得到的可撤銷交付交易簽名值與交易另一方進(jìn)行交換;
第三驗(yàn)證模塊,用于使用交易另一方的可撤銷交付交易公鑰對(duì)接收到的可撤銷交付交易簽名值進(jìn)行驗(yàn)證,當(dāng)驗(yàn)證通過時(shí)觸發(fā)第一交換模塊進(jìn)行工作。
在本實(shí)施例中,第三創(chuàng)建模塊807包括:
第一交換單元,用于與交易另一方交換入賬識(shí)別碼;
第二交換單元,用于與交易另一方交換出賬交易公鑰;
第一創(chuàng)建交換單元,用于創(chuàng)建初始通道資金交易的入賬并與交易另一方進(jìn)行交換;
第三交換單元,用于與交易另一方交換鎖定通道資金地址;
第一驗(yàn)證單元,用于使用交易另一方的出賬交易公鑰驗(yàn)證初始通道資金交易的入賬;
第二創(chuàng)建交換單元,用于在第一驗(yàn)證單元驗(yàn)證通過時(shí),創(chuàng)建初始通道資金交易的出賬并與交易另一方進(jìn)行交換;
第一創(chuàng)建單元,用于根據(jù)自身的初始通道資金交易的入賬和出賬創(chuàng)建初始通道資金交易;
本實(shí)施例中的第三創(chuàng)建模塊807還包括:第一判斷單元,用于判斷第一交換單元是否接收到入賬識(shí)別碼,是則觸發(fā)第二交換單元進(jìn)行工作,否則結(jié)束。
本實(shí)施例中的第三創(chuàng)建模塊807還包括:第二判斷單元,用于判斷第二交換單元是否接收到出賬交易公鑰,是則觸發(fā)第一創(chuàng)建交換單元進(jìn)行工作,否則結(jié)束。
本實(shí)施例中的第三創(chuàng)建模塊807還包括:第三判斷單元,用于判斷第一創(chuàng)建交換單元是否接收到創(chuàng)建初始通道資金交易的入賬,是則觸發(fā)第三交換單元進(jìn)行工作,否則結(jié)束。
本實(shí)施例中的第三創(chuàng)建模塊807還包括:第四判斷單元,用于判斷第三交換單元是否接收到鎖定通道資金地址,是則觸發(fā)第一驗(yàn)證單元進(jìn)行工作,否則結(jié)束。
本實(shí)施例中的第三創(chuàng)建模塊807還包括:第五判斷單元,用于判斷第二創(chuàng)建交換單元是否接收到初始通道資金交易的出賬,是則觸發(fā)第一創(chuàng)建單元進(jìn)行工作,否則結(jié)束。
可選的,本實(shí)施例中的裝置還包括:第四判斷模塊,用于判斷第五交換模塊是否接收到可撤銷交付交易公鑰,是則觸發(fā)第四創(chuàng)建模塊進(jìn)行工作,否則結(jié)束。
可選的,本實(shí)施例中的裝置還包括:第五判斷模塊,用于判斷第六交換模塊是否接收到可撤銷交付交易的簽名值,是則觸發(fā)第三驗(yàn)證模塊進(jìn)行工作,否則結(jié)束。
可選的,本實(shí)施例中的裝置還包括:第六判斷模塊,用于判斷第一交換模塊是否接收到交付交易公鑰,是則觸發(fā)第一創(chuàng)建模塊,否則結(jié)束。
可選的,本實(shí)施例中的裝置還包括:第七判斷模塊,用于判斷第二交換模塊是否接收到交付交易簽名值,是則觸發(fā)第二創(chuàng)建模塊進(jìn)行工作,否則結(jié)束。
可選的,本實(shí)施例中的裝置還包括:第八判斷模塊,用于判斷第三交換模塊是否接收到承諾交易公鑰和承諾交易簽名值,是則觸發(fā)第一驗(yàn)證模塊進(jìn)行工作,否則結(jié)束。
可選的,本實(shí)施例中的裝置還包括:第九判斷模塊,用于判斷第四交換模塊是否接收到初始通道資金交易一重簽名值,是則觸發(fā)第二驗(yàn)證模塊進(jìn)行工作,否則結(jié)束。
在本實(shí)施例中,上述裝置還包括:
第七交換模塊,用于在第一簽名公布模塊803公布初始通道資金交易之后與交易另一方交換違約補(bǔ)償交易公鑰;
第五創(chuàng)建模塊,用于創(chuàng)建違約補(bǔ)償交易;
第五簽名模塊,用于使用自身的違約補(bǔ)償交易私鑰對(duì)第五創(chuàng)建模塊創(chuàng)建的違約補(bǔ)償交易進(jìn)行簽名得到交換違約補(bǔ)償交易簽名值,并與交易另一方交換違約補(bǔ)償交易簽名值;
第八交換模塊,用于在第五簽名模塊與交易另一方交換違約補(bǔ)償交易簽名值之后與交易另一方交換第二可撤銷交付交易公鑰;
第六創(chuàng)建模塊,用于創(chuàng)建第二可撤銷交付交易;
第六簽名模塊,用于使用自身的第二可撤銷交付交易私鑰對(duì)第六創(chuàng)建模塊創(chuàng)建的第二可撤銷交付交易進(jìn)行簽名;
第九交換模塊,用于與交易另一方交換第六簽名模塊簽名得到的第二可撤銷交付交易簽名值;
第七創(chuàng)建模塊,用于創(chuàng)建第二承諾交易;
第七簽名模塊,用于使用自身的第二承諾交易私鑰對(duì)第七創(chuàng)建模塊創(chuàng)建的第二承諾交易進(jìn)行簽名得到第二承諾交易簽名值;
第十交換模塊,用于與交易另一方交換第二承諾交易公鑰和第二承諾交易簽名值;
第四驗(yàn)證模塊,用于使用第十交換模塊接收到的第二承諾交易公鑰對(duì)第十交換模塊接收到的第二承諾交易簽名值進(jìn)行驗(yàn)證,如驗(yàn)證失敗則觸發(fā)第一判斷模塊工作;
第二簽名公布模塊,用于在第四驗(yàn)證模塊驗(yàn)證通過時(shí),使用自身的第二承諾交易私鑰對(duì)接收到的第二承諾交易簽名值進(jìn)行再次簽名得到承諾交易二重簽名值,然后公布第二承諾交易。
可選的,本實(shí)施例中的裝置還包括:第十判斷模塊,用于判斷第七交換模塊是否接收到違約補(bǔ)償交易公鑰,是則觸發(fā)第五創(chuàng)建模塊進(jìn)行工作,否則結(jié)束。
可選的,本實(shí)施例中的裝置還包括:第十一判斷模塊,用于判斷第五簽名模塊是否接收到違約補(bǔ)償交易簽名值,是則觸發(fā)第八交換模塊進(jìn)行工作,否則結(jié)束。
可選的,本實(shí)施例中的裝置還包括:第十二判斷模塊,用于判斷第八交換模塊是否接收到第二可撤銷交付交易公鑰,是則觸發(fā)第六創(chuàng)建模塊進(jìn)行工作,否則結(jié)束。
可選的,本實(shí)施例中的裝置還包括:第十三判斷模塊,用于判斷第九交換模塊是否接收到第二可撤銷交付交易簽名值,是則觸發(fā)第七創(chuàng)建模塊進(jìn)行工作,否則結(jié)束。
可選的,本實(shí)施例中的裝置還包括:第十四判斷模塊,用于判斷第十交換模塊是否接收到第二承諾交易公鑰和第二承諾交易簽名值,是則觸發(fā)第四驗(yàn)證模塊進(jìn)行工作,否則結(jié)束。
本發(fā)明實(shí)施例中的交易均是在微交付通道內(nèi)完成的,并不是所有交付交易都上鏈,僅僅微交付通道中的初始通道資金交易以及關(guān)閉交易上鏈,在微交付通道中的其他交易均不上鏈。本發(fā)明技術(shù)方案解決了交易延展性問題;而且提高了交易的安全性和有效性。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明公開的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。