本技術涉及信息,尤其涉及一種用于解決流動性割裂的區(qū)塊鏈交易處理方法及系統(tǒng)。
背景技術:
::1、區(qū)塊鏈中的“不可能三角”是指在區(qū)塊鏈系統(tǒng)的設計中,很難同時實現(xiàn)去中心化(decentralization)、安全性(security)和可擴展性(scalability)這三個關鍵特性。2、為了解決這一問題,可以在一個單層的區(qū)塊鏈系統(tǒng)的基礎上,我們引入一個二層區(qū)塊鏈系統(tǒng),其中,第一層的區(qū)塊鏈系統(tǒng)為layer1,可以稱為基礎區(qū)塊鏈或主鏈,是區(qū)塊鏈技術的核心層級。它負責處理區(qū)塊鏈網(wǎng)絡中的基本事務,如交易的最終結算、數(shù)據(jù)存儲、共識機制等。layer1是高度去中心化的,沒有單一控制點,通過共識機制(如工作量證明pow或權益證明pos)來提供高度的安全性,由此確保區(qū)塊鏈的中心化和安全性。而第二層區(qū)塊鏈系統(tǒng)為layer2,可以稱為擴展層,是建立在layer1基礎之上的附加協(xié)議或解決方案。它的主要目標是提高layer1可擴展性,同時保持layer1的安全性和去中心化,由此來解決區(qū)塊鏈系統(tǒng)的不可能三角難題。3、但是,目前的layer1和layer2組成的區(qū)塊鏈方案中,仍然存在以下的問題。首先,用戶把交易發(fā)送給layer2區(qū)塊鏈網(wǎng)絡后,layer2區(qū)塊鏈網(wǎng)絡會通過一個中心化的排序器(sequencer)對交易進行排序和打包,然后再基于排序結果執(zhí)行這些交易。在這一過程中,由于layer2的sequencer的運營者在排序交易的時候,可以很容易的做到mev(maximalextractable?value,最大可提取價值),同時也可以審查每一筆交易,控制哪些交易可以上鏈,同時因為是中心化運營,也會單點故障的問題。此外,一個dapp(decentralizedapplication,去中心化應用)想讓不同區(qū)塊鏈的用戶都可以使用,必須在不同的區(qū)塊鏈上部署這個dapp的智能合約,智能合約的狀態(tài)數(shù)據(jù)也是完全隔離的,無法共享數(shù)據(jù)和智能合約的代碼邏輯,這樣會導致layer2和layer1之間的數(shù)據(jù)隔離,使得用戶體驗較差。技術實現(xiàn)思路1、本技術的一個目的是提供一種用于解決流動性割裂的區(qū)塊鏈交易處理方法及系統(tǒng),用以解決現(xiàn)有技術中l(wèi)ayer2層中存在mev和單點故障以及l(fā)ayer1和layer2之間數(shù)據(jù)隔離的問題。2、為實現(xiàn)上述目的,本技術實施例提供了一種用于解決流動性割裂的區(qū)塊鏈交易處理方法,所述方法應用于由layer1節(jié)點和layer2節(jié)點組成的區(qū)塊鏈系統(tǒng),智能合約部署于所述layer1節(jié)點中,所述layer2節(jié)點的狀態(tài)數(shù)據(jù)集合為所述layer1節(jié)點的狀態(tài)數(shù)據(jù)集合的超集,所述方法包括:3、layer2節(jié)點獲取待處理的區(qū)塊鏈交易,并將待處理的區(qū)塊鏈交易發(fā)送給layer1節(jié)點,由layer1節(jié)點對待處理的區(qū)塊鏈交易進行排序;4、所述layer2節(jié)點根據(jù)排序的結果,依次執(zhí)行所述區(qū)塊鏈交易;其中,執(zhí)行所述區(qū)塊鏈交易,包括:5、所述layer2節(jié)點確定所述區(qū)塊鏈交易中交易內容的執(zhí)行類型,所述執(zhí)行類型包括layer1類型和layer2類型;6、對于layer1類型的交易內容,所述layer2節(jié)點根據(jù)所述layer2節(jié)點中關于layer1節(jié)點的狀態(tài)數(shù)據(jù)執(zhí)行所述區(qū)塊鏈交易中所述layer1類型的交易內容,并根據(jù)執(zhí)行后的狀態(tài)信息同時更新所述layer1節(jié)點和layer2節(jié)點的狀態(tài)數(shù)據(jù);7、對于layer2類型的交易內容,所述layer2節(jié)點根據(jù)所述layer2節(jié)點中關于layer2節(jié)點的狀態(tài)數(shù)據(jù)執(zhí)行所述區(qū)塊鏈交易中所述layer2類型的交易內容,并根據(jù)執(zhí)行后的狀態(tài)信息layer2節(jié)點的狀態(tài)數(shù)據(jù)。8、進一步地,layer2節(jié)點獲取待處理的區(qū)塊鏈交易,并將待處理的區(qū)塊鏈交易發(fā)送給layer1節(jié)點,由layer1節(jié)點對待處理的區(qū)塊鏈交易進行排序,包括:9、layer2節(jié)點獲取待處理的區(qū)塊鏈交易,將待處理的區(qū)塊鏈交易打包后發(fā)送給layer1節(jié)點,以使所述layer1節(jié)點根據(jù)打包后的數(shù)據(jù)對待處理的區(qū)塊鏈交易進行排序,并將排序結果發(fā)送給layer2節(jié)點。10、進一步地,在所述layer2節(jié)點根據(jù)排序的結果,依次執(zhí)行所述區(qū)塊鏈交易之前,還包括:11、預先定義在layer2執(zhí)行的智能合約的函數(shù);12、所述layer2節(jié)點確定所述區(qū)塊鏈交易的執(zhí)行類型,包括:13、所述layer2節(jié)點根據(jù)預先定義的在layer2執(zhí)行的智能合約的函數(shù),確定所述區(qū)塊鏈交易的執(zhí)行類型。14、進一步地,所述區(qū)塊鏈交易包括layer1交易和混合交易,其中,所述layer1交易為僅包含layer1類型的交易內容的區(qū)塊鏈交易,所述混合交易為同時包含layer1類型的交易內容和layer2類型的交易內容的區(qū)塊鏈交易。15、進一步地,所述layer2節(jié)點通過預編譯合約方法確定所述區(qū)塊鏈交易中交易內容的執(zhí)行類型以及執(zhí)行所述區(qū)塊鏈交易中的交易內容。16、進一步地,進一步地,所述layer2節(jié)點通過預編譯合約方法執(zhí)行所述區(qū)塊鏈交易中的交易內容,包括:17、對于layer1類型的交易內容,所述layer2節(jié)點通過layer1調用方法調用所述layer2節(jié)點中關于layer1節(jié)點的狀態(tài)數(shù)據(jù)作為方法的上下文,執(zhí)行所述區(qū)塊鏈交易中所述layer1類型的交易內容,并根據(jù)執(zhí)行后的狀態(tài)信息同時更新所述layer1節(jié)點和layer2節(jié)點的狀態(tài)數(shù)據(jù)。18、進一步地,所述layer2節(jié)點通過預編譯合約方法執(zhí)行所述區(qū)塊鏈交易中的交易內容,包括:19、對于layer2類型的交易內容,所述layer2節(jié)點通過layer2調用方法調用所述layer2節(jié)點中關于layer2節(jié)點的狀態(tài)數(shù)據(jù)作為方法的上下文,執(zhí)行所述區(qū)塊鏈交易中所述layer2類型的交易內容,并根據(jù)執(zhí)行后的狀態(tài)信息更新所述layer2節(jié)點的狀態(tài)數(shù)據(jù)。20、進一步地,所述layer2節(jié)點包括兩個狀態(tài)數(shù)據(jù)庫,分別用于存儲layer1類型交易內容的狀態(tài)數(shù)據(jù)和layer2類型交易內容的狀態(tài)數(shù)據(jù)。21、本技術實施例還提供了一種用于解決流動性割裂的區(qū)塊鏈系統(tǒng),所述系統(tǒng)包括layer1節(jié)點和layer2節(jié)點,智能合約部署于所述layer1節(jié)點中,所述layer2節(jié)點的狀態(tài)數(shù)據(jù)集合為所述layer1節(jié)點的狀態(tài)數(shù)據(jù)集合的超集;22、所述layer2節(jié)點,用于獲取待處理的區(qū)塊鏈交易,并將待處理的區(qū)塊鏈交易發(fā)送給layer1節(jié)點,所述layer2節(jié)點根據(jù)layer1節(jié)點對待處理的區(qū)塊鏈交易進行排序的結果,依次執(zhí)行所述區(qū)塊鏈交易;其中,執(zhí)行所述區(qū)塊鏈交易,包括:所述layer2節(jié)點確定所述區(qū)塊鏈交易中交易內容的執(zhí)行類型,所述執(zhí)行類型包括layer1類型和layer2類型;對于layer1類型的交易內容,所述layer2節(jié)點根據(jù)所述layer2節(jié)點中關于layer1節(jié)點的狀態(tài)數(shù)據(jù)執(zhí)行所述區(qū)塊鏈交易中所述layer1類型的交易內容,并根據(jù)執(zhí)行后的狀態(tài)信息同時更新所述layer1節(jié)點和layer2節(jié)點的狀態(tài)數(shù)據(jù);對于layer2類型的交易內容,所述layer2節(jié)點根據(jù)所述layer2節(jié)點中關于layer2節(jié)點的狀態(tài)數(shù)據(jù)執(zhí)行所述區(qū)塊鏈交易中所述layer2類型的交易內容,并根據(jù)執(zhí)行后的狀態(tài)信息layer2節(jié)點的狀態(tài)數(shù)據(jù);23、所述layer1節(jié)點,用于對待處理的區(qū)塊鏈交易進行排序。24、本技術實施例還提供了一種計算機可讀介質,其上存儲有計算機程序指令,所述計算機程序指令可被處理器執(zhí)行以實現(xiàn)所述用于解決流動性割裂的區(qū)塊鏈交易處理方法。25、本技術實施例提供的一種用于解決流動性割裂的區(qū)塊鏈交易處理方案,該方案應用于由layer1節(jié)點和layer2節(jié)點組成的區(qū)塊鏈系統(tǒng),在進行交易處理時,layer2節(jié)點可以獲取待處理的區(qū)塊鏈交易,并將待處理的區(qū)塊鏈交易發(fā)送給layer1節(jié)點,由layer1節(jié)點對待處理的區(qū)塊鏈交易進行排序,然后layer2節(jié)點再根據(jù)排序的結果,依次執(zhí)行所述區(qū)塊鏈交易,由于不再由layer2的排序器進行排序,而是交由去中心化的layer1節(jié)點,因此無法做到mev,且避免了單點故障的問題。26、同時,本方案中的智能合約部署于所述layer1節(jié)點中,且所述layer2節(jié)點的狀態(tài)數(shù)據(jù)集合為所述layer1節(jié)點的狀態(tài)數(shù)據(jù)集合的超集,layer2節(jié)點在執(zhí)行所述區(qū)塊鏈交易時,先確定所述區(qū)塊鏈交易中交易內容的執(zhí)行類型,對于layer1類型的交易內容,根據(jù)所述layer2節(jié)點中關于layer1節(jié)點的狀態(tài)數(shù)據(jù)執(zhí)行所述區(qū)塊鏈交易中所述layer1類型的交易內容,并根據(jù)執(zhí)行后的狀態(tài)信息同時更新所述layer1節(jié)點和layer2節(jié)點的狀態(tài)數(shù)據(jù);而對于layer2類型的交易內容,則根據(jù)所述layer2節(jié)點中關于layer2節(jié)點的狀態(tài)數(shù)據(jù)執(zhí)行所述區(qū)塊鏈交易中所述layer2類型的交易內容,并根據(jù)執(zhí)行后的狀態(tài)信息layer2節(jié)點的狀態(tài)數(shù)據(jù),通過這種方式,使得layer2節(jié)點具有全量的狀態(tài)數(shù)據(jù),layer2類型的交易內容的執(zhí)行不會影響到layer1的狀態(tài)數(shù)據(jù)變化,layer1的狀態(tài)數(shù)據(jù)變化會實時的反應在layer1和layer2的狀態(tài)數(shù)據(jù)集合中,由此提供一種狀態(tài)數(shù)據(jù)安全便捷的共享方式,避免layer2和layer1之間的數(shù)據(jù)隔離。當前第1頁12當前第1頁12