本發(fā)明涉及區(qū)塊鏈,尤其涉及一種基于異步處理的低時延跨鏈交互方法、裝置。
背景技術(shù):
1、跨鏈技術(shù)旨在實現(xiàn)多個區(qū)塊鏈內(nèi)狀態(tài)的安全協(xié)同更新,需要保證狀態(tài)更新的有效性、原子性、隔離性。源鏈的狀態(tài)更新不僅要能夠傳輸?shù)侥康逆?,而且目的鏈必須能夠驗證該狀態(tài)已經(jīng)在源鏈上被確認,從而為目的鏈執(zhí)行后續(xù)操作提供安全基礎(chǔ)。在可信驗證提供的安全基礎(chǔ)之上,跨鏈技術(shù)還需要保證原子性和隔離性,原子性是指一筆跨鏈交易可能涉及多個區(qū)塊鏈上的多個子交易,這些子交易要么全部執(zhí)行成功,要么全部執(zhí)行失敗,隔離性則是指多筆跨鏈交易或者跨鏈交易與本鏈交易在并發(fā)執(zhí)行的過程中不會因?qū)蚕頎顟B(tài)進行讀寫而互相干擾,最終的執(zhí)行結(jié)果與這些交易按某種順序(通常是串行化順序)逐一執(zhí)行的結(jié)果相同。
2、一次跨鏈操作涉及多個區(qū)塊鏈上的多個子交易,每個子交易都要經(jīng)歷一次確認(finality)過程,所以一次跨鏈操作可能要經(jīng)歷多個確認過程,最終導致跨鏈時延高。不同場景下的跨鏈交互子交易數(shù)量也不同,比如對于需要2個子交易的場景,首先在源鏈執(zhí)行跨鏈應用并創(chuàng)建跨鏈消息,等跨鏈消息在源鏈確認后,目的鏈再執(zhí)行對應的操作并確認;對于需要3個子交易的場景,源鏈創(chuàng)建跨鏈消息,目的鏈執(zhí)行跨鏈消息,源鏈執(zhí)行確認操作;對于需要4個子交易的場景,首先協(xié)調(diào)鏈創(chuàng)建跨鏈事務,多個參與鏈并行執(zhí)行prepare,協(xié)調(diào)鏈收集各個鏈prepare結(jié)果并決策commit/rollback,參與鏈執(zhí)行commit/rollback。實際中,一筆跨鏈事務包含更多的串行子交易。為了能夠確認子交易,區(qū)塊鏈的共識節(jié)點之間需要多輪消息廣播,最終導致跨鏈交易面臨高時延問題,而且跨鏈交易的總時延與串行執(zhí)行的子交易數(shù)量成正比。
3、為了降低跨鏈時延,提高跨鏈性能,當前的跨鏈時延優(yōu)化方式可以分為以下幾類:
4、①并行提交策略。并行提交策略其通常通過引入?yún)f(xié)調(diào)者(如專用鏈、委員會或客戶端)管理跨鏈事務的原子性,利用兩階段提交協(xié)議(2pc)的并行化策略,將復雜事務分解為多個子任務同步執(zhí)行。協(xié)調(diào)者負責協(xié)調(diào)各鏈的提交或回滾,確??珂湶僮鞯妮p量化和高效性。部分方案通過構(gòu)建事務執(zhí)行樹或跨鏈事務圖優(yōu)化流程,減少依賴并提升吞吐量。樂觀并發(fā)??珂準聞找话悴捎?pcl來保證事務之間的隔離性,但是也導致了跨鏈事務并發(fā)程度低。
5、②樂觀并發(fā)策略。樂觀并發(fā)策略通常采用樂觀鎖或非阻塞機制,允許多筆跨鏈交易同時執(zhí)行,僅在最終提交時檢查沖突。通過暫存中間狀態(tài)(如“臟狀態(tài)層”)延遲鎖定資源,避免長時間阻塞其他交易。若沖突發(fā)生則回滾,否則直接提交,從而提升并發(fā)效率,解決傳統(tǒng)2pc隔離性導致的低并發(fā)問題。
6、③共識優(yōu)化策略。共識優(yōu)化策略通常通過簡化共識流程或鏈下處理降低延遲。例如:將跨鏈交易共識集中在少數(shù)節(jié)點,其他節(jié)點僅需可靠廣播;利用可信執(zhí)行環(huán)境(tee)鏈下處理復雜邏輯,減少鏈上共識次數(shù);預執(zhí)行交易消息或流水線化協(xié)議(如將bft共識與2pc步驟合并),縮短端到端處理時間。核心是通過減少共識開銷或并行化步驟提升整體性能。
7、然而,并行提交類和樂觀并發(fā)類方案是將每個單鏈子交易作為最小執(zhí)行單元,在此基礎(chǔ)上結(jié)合跨鏈業(yè)務特征(應用邏輯是否可以并行執(zhí)行,應用狀態(tài)讀寫操作沖突率等)來優(yōu)化交互方式,所以無論如何優(yōu)化,這些方案的單筆跨鏈交易的時延受限于串行子交易的數(shù)量。而基于共識優(yōu)化的方案,在跨鏈場景下,則需要對鏈進行硬分叉以支持底層共識機制的升級,因此對鏈的侵入性較高。綜上,當前的方案并不滿足以下目標:在不侵入?yún)^(qū)塊鏈底層機制的前提下,將單鏈子交易的執(zhí)行流程與跨鏈交互流程相結(jié)合,從而降低跨鏈交互時延,提高跨鏈交互性能。
技術(shù)實現(xiàn)思路
1、針對現(xiàn)有技術(shù)的不足,本發(fā)明提出一種基于異步處理的低時延跨鏈交互方法、裝置,該方法實現(xiàn)了跨鏈交互流程與區(qū)塊鏈執(zhí)行流程的結(jié)合,通過異步驅(qū)動“消息傳輸”和“消息確認”,降低跨鏈交互時延。
2、為了實現(xiàn)上述目的,本發(fā)明一方面提供一種基于異步處理的低時延跨鏈交互方法,包括:
3、源鏈生成跨鏈消息,并通過擴展互操作性共識節(jié)點(eicn)將所述跨鏈消息篩選后異步傳輸至目的鏈;
4、目的鏈接收并存儲所述跨鏈消息,并在未驗證其有效性的情況下暫存為未確認狀態(tài);
5、當所述源鏈確認所述跨鏈消息對應的區(qū)塊后,所述eicn節(jié)點將所述區(qū)塊的驗證數(shù)據(jù)發(fā)送至所述目的鏈;
6、所述目的鏈基于所述驗證數(shù)據(jù)對所述未確認狀態(tài)的所述跨鏈消息進行有效性驗證,并根據(jù)驗證結(jié)果執(zhí)行對應的跨鏈業(yè)務邏輯或刪除無效的跨鏈消息。
7、在本發(fā)明一實施例中,源鏈生成跨鏈消息,并通過eicn節(jié)點將所述跨鏈消息篩選后異步傳輸至目的鏈,包含:
8、所述源鏈的共識節(jié)點執(zhí)行交易生成初始的跨鏈消息,并將所述初始的跨鏈消息及對應的存儲證明臨時存儲于本地狀態(tài)樹中;
9、所述eicn節(jié)點基于共識機制對所述初始的跨鏈消息篩選有效區(qū)塊并執(zhí)行聚合簽名,生成包含鏈標識、區(qū)塊頭、跨鏈消息集合、存儲證明及簽名的跨鏈消息;
10、將將篩選后的所述跨鏈消息異步發(fā)送至所述目的鏈的跨鏈合約。
11、在本發(fā)明一實施例中,所述eicn節(jié)點基于共識機制對所述初始的跨鏈消息篩選有效區(qū)塊,包含:
12、多個eicn節(jié)點基于輪詢算法選舉領(lǐng)導者節(jié)點,所述領(lǐng)導者節(jié)點收集并驗證其他節(jié)點對候選區(qū)塊的簽名;
13、若候選區(qū)塊的簽名數(shù)量滿足預設(shè)閾值,則對所述候選區(qū)塊的跨鏈消息進行聚合簽名,生成篩選后的所述跨鏈消息。
14、在本發(fā)明一實施例中,所述目的鏈通過以下方式暫存所述跨鏈消息:
15、根據(jù)鏈標識及區(qū)塊高度創(chuàng)建隊列,存儲同一高度的多個候選區(qū)塊哈希;
16、以區(qū)塊哈希為鍵,將所述跨鏈消息及對應的存儲證明存儲于字典結(jié)構(gòu)中,以供有效性驗證時檢索。
17、在本發(fā)明一實施例中,所述驗證數(shù)據(jù)包括所述區(qū)塊的頭部信息及對應的默克爾樹根;
18、所述目的鏈基于所述驗證數(shù)據(jù)對所述未確認狀態(tài)的所述跨鏈消息進行有效性驗證,并根據(jù)驗證結(jié)果執(zhí)行對應的跨鏈業(yè)務邏輯或刪除無效的跨鏈消息,包含:
19、所述目的鏈基于輕客戶端算法驗證所述區(qū)塊頭的有效性;
20、若驗證通過,則比對所述區(qū)塊頭的默克爾樹根與所述未確認消息對應的存儲證明的一致性;
21、若一致,則將所述跨鏈消息提交至應用合約執(zhí)行所述跨鏈業(yè)務邏輯;若不一致,則刪除所述跨鏈消息及其關(guān)聯(lián)存儲數(shù)據(jù)。
22、在本發(fā)明一實施例中,所述方法還包括:
23、當所述目的鏈在預設(shè)時間內(nèi)未收到所述驗證數(shù)據(jù)時,自動清除所述未確認狀態(tài)的所述跨鏈消息。
24、在本發(fā)明一實施例中,所述存儲證明通過以下步驟生成:
25、所述源鏈執(zhí)行交易后,將所述跨鏈消息作為狀態(tài)更新寫入所述本地狀態(tài)樹;
26、基于所述狀態(tài)樹的當前根節(jié)點,生成所述跨鏈消息的存儲證明,并關(guān)聯(lián)至對應的區(qū)塊頭。
27、在本發(fā)明一實施例中,所述輪詢算法中,領(lǐng)導者節(jié)點與跟隨者節(jié)點異步執(zhí)行以下操作:
28、所述跟隨者節(jié)點對接收的區(qū)塊進行初步驗證,并將簽名后的區(qū)塊頭發(fā)送至所述領(lǐng)導者節(jié)點;
29、所述領(lǐng)導者節(jié)點對未獲得足夠簽名的區(qū)塊重新分發(fā)至跟隨者節(jié)點進行補充驗證;
30、當所述候選區(qū)塊的簽名數(shù)量滿足閾值時,觸發(fā)跨鏈消息的傳輸。
31、在本發(fā)明一實施例中,所述跨鏈業(yè)務邏輯的執(zhí)行包括:
32、所述目的鏈的應用合約根據(jù)所述跨鏈消息的內(nèi)容,執(zhí)行資產(chǎn)轉(zhuǎn)移、狀態(tài)更新或智能合約調(diào)用操作。
33、在本發(fā)明一實施例中,所述eicn節(jié)點通過質(zhì)押機制動態(tài)加入或退出跨鏈網(wǎng)絡,且其身份信息記錄于所述源鏈和目的鏈的節(jié)點管理合約中。
34、本發(fā)明另一方面還提供一種基于異步處理的低時延跨鏈交互裝置,包括:
35、跨鏈消息傳輸模塊,配置于源鏈,用于通過擴展互操作性共識節(jié)點(eicn)將源鏈生成的跨鏈消息篩選后異步傳輸至目的鏈;
36、消息暫存模塊,配置于目的鏈,用于接收并存儲所述跨鏈消息,并在未驗證其有效性時將其標記為未確認狀態(tài);
37、驗證數(shù)據(jù)發(fā)送模塊,配置于源鏈的eicn節(jié)點,用于在所述跨鏈消息對應的區(qū)塊被確認后,將所述區(qū)塊的驗證數(shù)據(jù)發(fā)送至目的鏈;
38、有效性驗證與執(zhí)行模塊,配置于目的鏈,用于基于所述驗證數(shù)據(jù)對未確認狀態(tài)的所述跨鏈消息進行有效性驗證,并根據(jù)驗證結(jié)果觸發(fā)跨鏈業(yè)務邏輯或刪除無效的跨鏈消息。
39、由以上方案可知,本發(fā)明的優(yōu)點在于:
40、本發(fā)明提供的基于異步處理的低時延跨鏈交互方法,在傳輸階段,源鏈執(zhí)行跨鏈應用合約,創(chuàng)建跨鏈消息,跨鏈消息經(jīng)過eicn節(jié)點的過濾、聚合簽名,然后被轉(zhuǎn)發(fā)到目的鏈的智能合約中,跨鏈消息以未確認狀態(tài)存儲在目的鏈上;然后,在確認階段,當跨鏈消息在源鏈上被確認之后,eicn節(jié)點將信任根傳遞到目的鏈,目的鏈根據(jù)信任根對跨鏈消息執(zhí)行安全可靠的驗證,如果驗證通過,則意味著跨鏈消息可以轉(zhuǎn)換為確認狀態(tài),然后跨鏈服務合約將其交付給對應的跨鏈應用合約去執(zhí)行業(yè)務邏輯,否則,如果驗證不通過,那么直接將該消息刪除。該方法不需要等待“執(zhí)行結(jié)果確認階段”結(jié)束才傳遞跨鏈消息,而是在“交易執(zhí)行階段”結(jié)束產(chǎn)生跨鏈消息后,就直接將消息傳遞到下一跳區(qū)塊鏈。該方法在不侵入?yún)^(qū)塊鏈底層共識、執(zhí)行機制的前提下,實現(xiàn)了跨鏈交互流程與區(qū)塊鏈執(zhí)行流程的結(jié)合,通過異步驅(qū)動“消息傳輸”和“消息確認”,降低跨鏈交互時延。