本發(fā)明涉及區(qū)塊鏈技術(shù)領(lǐng)域,具體涉及一種基于合約的區(qū)塊鏈合約的快速交易系統(tǒng)。
背景技術(shù):
現(xiàn)有基于區(qū)塊鏈的分布式交易方式因區(qū)塊鏈共識方式、區(qū)塊鏈生成時間、區(qū)塊的生成時間、區(qū)塊的大小而受到很大的限制?;趨^(qū)塊鏈的交易速度一般都在秒級、甚至分鐘級以上,此外,還存在如下缺陷:
1.交易請求在分布式系統(tǒng)中的傳播過程存在延遲,從某個發(fā)起節(jié)點到信息傳播至其他所有節(jié)點之間存在信息延遲;
2.共識過程存在時間延遲:數(shù)據(jù)的更新必須在共識完成后才能寫入賬本中,這種寫入是間歇性的,每個驗證周期更新一次,用戶對數(shù)據(jù)更新的請求必須在更新周期之后才能得到響應(yīng)并返回;
3.現(xiàn)有的基于智能合約不僅受到以上兩點的影響,還受到合約執(zhí)行延遲的影響。
一些現(xiàn)有的解決方案,如閃電網(wǎng)絡(luò)、比特幣網(wǎng)絡(luò)采用通道的辦法來加快對交易請求的處理,但上述方案的協(xié)議或者比較復(fù)雜,或者采用了非拜占庭容錯的方式,限制了其更廣泛的應(yīng)用。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)中的問題,本發(fā)明提供一種基于區(qū)塊鏈合約的快速交易系統(tǒng),該系統(tǒng)實現(xiàn)了對交易的快速支持,避免了區(qū)塊關(guān)閉時間、區(qū)塊大小以及分布式網(wǎng)絡(luò)傳遞對交易執(zhí)行的影響,同時享有分布式區(qū)塊鏈固有的優(yōu)點。
為實現(xiàn)以上技術(shù)目的,本發(fā)明的技術(shù)方案是:
一種基于區(qū)塊鏈合約的快速交易系統(tǒng),該系統(tǒng)包括:
分布式驗證單元:包括一個或多個服務(wù)節(jié)點和多個驗證節(jié)點;
合約接入服務(wù)器:用于接收用戶的快速交易初始化請求、快速交易執(zhí)行請求和確認交易請求,同時在合約執(zhí)行完畢后將結(jié)果返回給用戶;
合約節(jié)點:包括普通合約節(jié)點和快速交易合約節(jié)點,位于本地或所述分布式驗證單元遠端;所述普通交易合約節(jié)點與所述驗證節(jié)點之間通過預(yù)定義協(xié)議進行通訊,獲取合約執(zhí)行所需信息,合約執(zhí)行完畢后,將結(jié)果返回至所述驗證節(jié)點;所述快速交易合約節(jié)點執(zhí)行快速交易請求并將執(zhí)行結(jié)果返回至所述合約接入服務(wù)器;
所述系統(tǒng)實現(xiàn)方法如下:
(1)快速交易初始化:兩個或多個需實現(xiàn)快速交易的用戶達成一致并創(chuàng)建合約,發(fā)起快速交易初始化請求,所述合約接入服務(wù)器經(jīng)所述服務(wù)節(jié)點將該請求發(fā)送至所述驗證節(jié)點形成交易集,完成共識后,所述驗證節(jié)點將該交易集發(fā)送所有合約節(jié)點,依據(jù)預(yù)定義協(xié)議在其中隨機且確定性地選取一個快速交易合約節(jié)點;
(2)快速交易實現(xiàn):用戶發(fā)起快速交易執(zhí)行請求,所述合約接入服務(wù)器經(jīng)所述服務(wù)節(jié)點將該請求發(fā)送至所述快速交易合約節(jié)點,于該節(jié)點執(zhí)行交易請求,直接返回快速交易結(jié)果至所述合約接入服務(wù)器,同時該合約節(jié)點記錄交易狀態(tài),并保存自上一次確認后的所有快速交易歷史;
(3)快速交易歷史的分布式確認:系統(tǒng)或用戶自定義周期性或非周期性發(fā)起確認交易請求,該請求與上述未確認的快速交易歷史合并,產(chǎn)生一個自上次確認后到當(dāng)前狀態(tài)的變換交易;所述合約接入服務(wù)器經(jīng)所述服務(wù)節(jié)點將該變換交易發(fā)送至所述驗證節(jié)點,所述驗證節(jié)點對交易集進行共識,再將其發(fā)送至所有合約節(jié)點進行合約執(zhí)行,合約執(zhí)行結(jié)果經(jīng)所述驗證節(jié)點驗證并確認后寫入?yún)^(qū)塊鏈,同時該合約執(zhí)行結(jié)果返回給客戶。
作為優(yōu)選,用戶可通過所述合約接入服務(wù)器查詢所述交易歷史的記錄。
作為優(yōu)選,所述快速交易合約節(jié)點的交易執(zhí)行方式通過非對稱加密方式進行,使得交易執(zhí)行處于保密狀態(tài),僅對用戶和當(dāng)前合約節(jié)點可見。
作為優(yōu)選,當(dāng)下一個所述快速交易合約節(jié)點被選取,原所述快速交易合約節(jié)點的交易歷史被清空。
作為優(yōu)選,所述快速交易合約節(jié)點的選取方式為分布式隨機選擇算法。
作為優(yōu)選,所述確認交易請求發(fā)起前需經(jīng)各方用戶簽名驗證。
具體地,所述共識采用的機制包括但不限于:bft,pow或pos。
具體地,所述合約接入服務(wù)器的功能通過用戶端app或多個服務(wù)器簇實現(xiàn)。
具體地,所述合約節(jié)點之間通過預(yù)定義的協(xié)議互相通訊。
與現(xiàn)有分布式交易方式和普通合約執(zhí)行模式相比,本發(fā)明具備以下優(yōu)點:
本發(fā)明以區(qū)塊鏈和分布式系統(tǒng)為核心技術(shù),通過設(shè)置支持快速交易的接入服務(wù)器以及快速交易合約節(jié)點的隨機且確定性選取,將系統(tǒng)分為獨立的合約層和底層共識層,快速交易對合約層發(fā)起調(diào)用,在合約層實現(xiàn)快速交易,其快速執(zhí)行結(jié)果周期性或非周期性返回底層共識層進行驗證確認并寫入?yún)^(qū)塊鏈,使得交易的執(zhí)行不受區(qū)塊關(guān)閉的時間和區(qū)塊大小的影響,也不受分布式網(wǎng)絡(luò)傳遞的影響,同時具備分布式區(qū)塊鏈固有的優(yōu)點,克服了現(xiàn)有區(qū)塊鏈交易方式在交易傳播、共識過程以及和合約執(zhí)行過程中存在的延遲現(xiàn)象,以接近實時的方式實現(xiàn)對交易的快速支持,通過共識節(jié)點對歷史交易記錄進行確認,維持了交易系統(tǒng)的拜占庭容錯性,可實現(xiàn)對交易細節(jié)的隱藏和加密,同時保持了分布式系統(tǒng)的數(shù)據(jù)的一致性和完整性。
附圖說明
圖1為正常合約執(zhí)行模式的工作原理示意圖。
圖2為本發(fā)明基于區(qū)塊鏈合約的快速交易系統(tǒng)的工作原理示意圖(快速交易初始化階段)。
圖3為本發(fā)明基于區(qū)塊鏈合約的快速交易系統(tǒng)的工作原理示意圖(快速交易實現(xiàn)階段)。
圖4為本發(fā)明基于區(qū)塊鏈合約的快速交易系統(tǒng)的工作原理示意圖(快速交易歷史的分布式確認階段)。
具體實施方式
下面結(jié)合附圖,詳細說明本發(fā)明的具體實施例,但不對本發(fā)明的權(quán)利要求做任何限定。
如圖1所示為正常合約執(zhí)行流程:
(1)用戶發(fā)起合約一個合約,并發(fā)起一個合約執(zhí)行請求(一般為某種區(qū)塊鏈上的交易tx);
(2)合約接入服務(wù)器經(jīng)服務(wù)節(jié)點將該tx發(fā)送至所有驗證節(jié)點,驗證節(jié)點對交易集進行共識;
(3)驗證節(jié)點將上述交易集發(fā)送至合約節(jié)點進行合約執(zhí)行;
(4)合約執(zhí)行的結(jié)果經(jīng)驗證節(jié)點驗證之后,與其他交易信息一起寫入?yún)^(qū)塊鏈;
(5)結(jié)果返回至應(yīng)用戶。
本實施例基于區(qū)塊鏈合約的快速交易系統(tǒng)包括:
分布式驗證單元:包括一個或多個服務(wù)節(jié)點和多個驗證節(jié)點;
合約接入服務(wù)器:用于接收用戶的快速交易初始化請求、快速交易執(zhí)行請求和確認交易請求,同時在合約執(zhí)行完畢后將結(jié)果返回給用戶;
合約節(jié)點:包括普通合約節(jié)點和快速交易合約節(jié)點,位于本地或分布式驗證單元遠端;普通交易合約節(jié)點與驗證節(jié)點之間通過預(yù)定義協(xié)議進行通訊,獲取合約執(zhí)行所需信息,合約執(zhí)行完畢后,將結(jié)果返回至驗證節(jié)點;快速交易合約節(jié)點執(zhí)行快速交易請求并將執(zhí)行結(jié)果返回至合約接入服務(wù)器;
如圖2~圖4,本實施例系統(tǒng)具體實現(xiàn)方法如下:
(1)快速交易初始化:兩個或多個需實現(xiàn)快速交易的用戶之間達成一致并創(chuàng)建一個合約,發(fā)起一個快速交易初始化請求tx,合約接入服務(wù)器經(jīng)服務(wù)節(jié)點將該tx發(fā)送至驗證節(jié)點形成交易集,驗證節(jié)點對該交易集進行共識;完成共識后,驗證節(jié)點將該交易集發(fā)送所有合約節(jié)點,依據(jù)預(yù)定義協(xié)議通過分布式隨機算法在其中隨機且確定性地選取一個快速交易合約節(jié)點;
(2)快速交易實現(xiàn):用戶發(fā)起快速交易執(zhí)行請求,所述合約接入服務(wù)器經(jīng)所述服務(wù)節(jié)點將該請求發(fā)送至快速交易合約節(jié)點,于該節(jié)點執(zhí)行交易請求,直接返回快速交易結(jié)果至合約接入服務(wù)器,同時該和合約節(jié)點記錄交易狀態(tài),并保存自上一次確認后的所有快速交易歷史;該快速交易合約節(jié)點的交易執(zhí)行方式可以通過非對稱加密方式或者其他方式(例如對稱加密方式)運行,使得合約/交易的執(zhí)行是保密的,僅對用戶和當(dāng)前合約節(jié)點可見。用戶可通過合約接入服務(wù)器查詢交易的歷史記錄;
(3)快速交易歷史的分布式確認:用戶可在各方簽名驗證的情況下,對可未確認的交易主動周期(比如10分鐘、1天、1周)或非周期性發(fā)起確認交易請求tx,也可以根據(jù)實現(xiàn)定義的合約定時對發(fā)起確認交易請求tx;發(fā)起的確認交易請求tx與上述未確認的交易歷史合并,產(chǎn)生一個自上次確認后到當(dāng)前狀態(tài)的變換交易;合約接入服務(wù)器經(jīng)服務(wù)節(jié)點將該變換交易發(fā)送至驗證節(jié)點,驗證節(jié)點對交易集進行共識,再將其發(fā)送至所有合約節(jié)點進行合約執(zhí)行,合約執(zhí)行結(jié)果經(jīng)驗證節(jié)點驗證并確認,與其他交易信息(普通交易或普通合約執(zhí)行信息)一起寫入?yún)^(qū)塊鏈,同時該合約執(zhí)行結(jié)果返回給客戶,通過共識節(jié)點對歷史交易記錄進行確認,從而實現(xiàn)交易確認的拜占庭容錯。
當(dāng)用戶重復(fù)上述步驟,選取下一個快速交易合約節(jié)點后,原來的快速交易合約節(jié)點的交易歷史將被清空,從而保證合約執(zhí)行的保密性。
綜上所述,本發(fā)明具有以下優(yōu)點:
本實施例系統(tǒng)分為獨立的合約層和底層共識層,快速交易對合約層發(fā)起調(diào)用,在合約層實現(xiàn)快速交易,其快速執(zhí)行結(jié)果周期性或非周期性返回底層共識層進行驗證確認并寫入?yún)^(qū)塊鏈,使得交易的執(zhí)行不受區(qū)塊關(guān)閉的時間和區(qū)塊大小的影響,也不受分布式網(wǎng)絡(luò)傳遞的影響,同時具備分布式區(qū)塊鏈固有的優(yōu)點,克服了現(xiàn)有區(qū)塊鏈交易方式在交易傳播、共識過程以及和合約執(zhí)行過程中存在的延遲現(xiàn)象,以接近實時的方式實現(xiàn)對交易的快速支持,維持了交易系統(tǒng)的拜占庭容錯性,可實現(xiàn)對交易細節(jié)的隱藏和加密,同時保持了分布式系統(tǒng)的數(shù)據(jù)的一致性和完整性。
可以理解的是,以上關(guān)于本發(fā)明的具體描述,僅用于說明本發(fā)明而并非受限于本發(fā)明實施例所描述的技術(shù)方案。本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,仍然可以對本發(fā)明進行修改或等同替換,以達到相同的技術(shù)效果;只要滿足使用需要,都在本發(fā)明的保護范圍之內(nèi)。