本發(fā)明涉及信息技術(shù)領(lǐng)域,具體涉及一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)。
背景技術(shù):
區(qū)塊鏈技術(shù)是利用塊鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)來驗(yàn)證與存儲(chǔ)數(shù)據(jù)、利用分布式節(jié)點(diǎn)共識(shí)算法來生成和更新數(shù)據(jù)、利用密碼學(xué)的方式保證數(shù)據(jù)傳輸和訪問的安全、利用由自動(dòng)化腳本代碼組成的智能合約來編程和操作數(shù)據(jù)的一種全新的分布式基礎(chǔ)架構(gòu)與計(jì)算范式。區(qū)塊鏈技術(shù)本身具有很多優(yōu)勢(shì):一方面,由于區(qū)塊鏈網(wǎng)絡(luò)能夠通過算法實(shí)現(xiàn)自我約束,任何惡意欺騙系統(tǒng)的行為都會(huì)遭到網(wǎng)絡(luò)中其他節(jié)點(diǎn)的排斥和抑制,因此,一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)無需依賴中央權(quán)威機(jī)構(gòu)支撐和信用背書即可實(shí)現(xiàn)安全的網(wǎng)絡(luò)交易。另一方面,由于區(qū)塊鏈采取單向哈希算法,同時(shí)每個(gè)新產(chǎn)生的區(qū)塊嚴(yán)格按照時(shí)間線形順序推進(jìn),時(shí)間的不可逆性導(dǎo)致任何試圖入侵篡改區(qū)塊鏈內(nèi)數(shù)據(jù)信息的行為都很容易被追溯,導(dǎo)致被其他節(jié)點(diǎn)的排斥,從而可以限制相關(guān)不法行為。因此,區(qū)塊鏈技術(shù)在金融、銀行等各大領(lǐng)域得到了日益廣泛的應(yīng)用。
在傳統(tǒng)的一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)架構(gòu)中,整個(gè)一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)擁有一組區(qū)塊鏈節(jié)點(diǎn),所有節(jié)點(diǎn)之間通過共識(shí)機(jī)制維護(hù)一套共同的賬本。但是,發(fā)明人在實(shí)現(xiàn)本發(fā)明的過程中發(fā)現(xiàn),現(xiàn)有技術(shù)中至少存在如下問題:
首先,由于整個(gè)一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)中包含的所有區(qū)塊鏈節(jié)點(diǎn)均處于平等的地位,因此,發(fā)生在任意兩個(gè)區(qū)塊鏈節(jié)點(diǎn)之間的網(wǎng)絡(luò)交易都需要由所有區(qū)塊鏈節(jié)點(diǎn)達(dá)成共識(shí)才能生效。因此,每一個(gè)區(qū)塊鏈節(jié)點(diǎn)都需要參與所有網(wǎng)絡(luò)交易的共識(shí)操作,導(dǎo)致各區(qū)塊鏈節(jié)點(diǎn)的系統(tǒng)開銷較大;而且,每一筆網(wǎng)絡(luò)交易都需要經(jīng)過所有區(qū)塊鏈節(jié)點(diǎn)的共識(shí),導(dǎo)致每一筆網(wǎng)絡(luò)交易的效率較低;并且,由于每一筆交易的共識(shí)操作都需要由所有區(qū)塊鏈節(jié)點(diǎn)共同參與,從而導(dǎo)致多筆網(wǎng)絡(luò)交易無法并發(fā)執(zhí)行,降低了整個(gè)一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)的交易效率。
其次,由于發(fā)生在任意兩個(gè)區(qū)塊鏈節(jié)點(diǎn)之間的網(wǎng)絡(luò)交易都需要由所有區(qū)塊鏈節(jié)點(diǎn)共同記賬,即:將該筆網(wǎng)絡(luò)交易對(duì)應(yīng)的交易賬目記錄在由所有區(qū)塊鏈節(jié)點(diǎn)共同維護(hù)的一個(gè)大賬本上,因此,導(dǎo)致大賬本的數(shù)據(jù)量較大,而該大賬本需由每一個(gè)區(qū)塊鏈節(jié)點(diǎn)共同維護(hù),進(jìn)而導(dǎo)致整個(gè)一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)的存儲(chǔ)開銷較大,且記賬和查賬效率低下。
由此可見,由于傳統(tǒng)的一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)中的共識(shí)操作和記賬操作需由系統(tǒng)中的每一個(gè)區(qū)塊鏈節(jié)點(diǎn)共同執(zhí)行,因此導(dǎo)致整個(gè)系統(tǒng)無法并發(fā)執(zhí)行且執(zhí)行效率低下。
技術(shù)實(shí)現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)。
根據(jù)本發(fā)明的一個(gè)方面,提供了一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng),包括:多個(gè)層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),其中,所述多個(gè)層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)包括以下中的至少兩項(xiàng):第一層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)、隸屬于第一層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的第二層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)、隸屬于第二層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)、......直至隸屬于第n-1層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的第n層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn);其中,n為大于三的自然數(shù);其中,每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)一步包括:共識(shí)子節(jié)點(diǎn),用于針對(duì)與該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)相關(guān)的網(wǎng)絡(luò)交易生成對(duì)應(yīng)的共識(shí)結(jié)果消息;賬本子節(jié)點(diǎn),用于根據(jù)所述共識(shí)子節(jié)點(diǎn)生成的共識(shí)結(jié)果消息進(jìn)行記賬。
在本發(fā)明提供的一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)中,將所有的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)劃分為至少兩個(gè)層級(jí),每個(gè)層級(jí)中的每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)都具有共識(shí)子節(jié)點(diǎn)和賬本子節(jié)點(diǎn),因此,每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)都可以獨(dú)立地進(jìn)行共識(shí)操作和記賬操作,無需依賴其他區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的參與,從而提升了共識(shí)操作和記賬操作的效率。另外,由于每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)僅針對(duì)與該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)相關(guān)的網(wǎng)絡(luò)交易進(jìn)行共識(shí)和記賬,而無需針對(duì)與該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)無關(guān)的網(wǎng)絡(luò)交易進(jìn)行共識(shí)和記賬,因此,不僅降低了整個(gè)系統(tǒng)的各項(xiàng)開銷,提升了系統(tǒng)運(yùn)行效率,還能夠使整個(gè)一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)中的各個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)之間并行記賬,大幅提高了系統(tǒng)性能。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。
附圖說明
通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
圖1示出了一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)的整體架構(gòu)圖;
圖2a示出了本發(fā)明實(shí)施例二提供的一種具體形式的一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)中的區(qū)塊鏈核心層的結(jié)構(gòu)示意圖;
圖2b示出了本發(fā)明實(shí)施例二提供的一種具體形式的一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)中的區(qū)塊鏈核心層以及消息網(wǎng)絡(luò)節(jié)點(diǎn)的結(jié)構(gòu)示意圖;
圖3a示出了一筆鏈內(nèi)交易的交易雙方的示意圖;
圖3b示出了一筆同層級(jí)跨鏈交易的交易雙方的示意圖;
圖3c示出了一筆跨層級(jí)跨鏈交易的交易雙方的示意圖。
圖4示出了一個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)內(nèi)部包含的各個(gè)子節(jié)點(diǎn)的示意圖;
圖5示出了兩類賬戶之間的匯總交易的示意圖;
圖6示出了一種基于上述的一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)實(shí)現(xiàn)的網(wǎng)絡(luò)交易方法的流程圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
實(shí)施例一
本發(fā)明實(shí)施例一提供的一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)包括:多個(gè)層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),其中,該多個(gè)層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)包括以下中的至少兩項(xiàng):第一層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)、隸屬于第一層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的第二層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)、隸屬于第二層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)、......直至隸屬于第n-1層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的第n層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn);其中,n為大于三的自然數(shù)。其中,該多個(gè)層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)包括以下中的至少兩項(xiàng)的含義是指:該多個(gè)層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)至少包括文中提到的各個(gè)層級(jí)中的兩個(gè)層級(jí)。例如,可以僅包括第一層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)、以及隸屬于第一層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的第二層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)。
本發(fā)明對(duì)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的層級(jí)數(shù)量以及各個(gè)層級(jí)中包含的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)量均不限定。例如,該多個(gè)層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)具體包括:至少一個(gè)第一層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)、多個(gè)分別隸屬于各個(gè)第一層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的第二層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)、多個(gè)分別隸屬于各個(gè)第二層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)、......直至多個(gè)分別隸屬于各個(gè)第n-1層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的第n層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn);其中,n為大于三的自然數(shù)。由此可見,本發(fā)明實(shí)施例一將一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)在橫向方向和縱向方向上分別進(jìn)行了擴(kuò)展,通過多個(gè)不同層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)能夠適應(yīng)各類復(fù)雜的應(yīng)用環(huán)境。其中,本發(fā)明對(duì)層級(jí)的具體數(shù)量以及各層級(jí)所包含的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)量不做限定,本領(lǐng)域技術(shù)人員可根據(jù)實(shí)際需要進(jìn)行靈活選擇。
其中,每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)隸屬于該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的上級(jí)節(jié)點(diǎn),每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的下級(jí)節(jié)點(diǎn)隸屬于該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)。其中,區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)a隸屬于區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)b的含義是指:區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)a與且僅與區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)b相連,并且,區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)a為區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)b的下級(jí)節(jié)點(diǎn)。由此可見,每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)與且僅與其所隸屬的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)直接相連,而與其他的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)則不直接相連。
通常情況下,上級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)量大于下級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)量。例如,在一種示例中,第一層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)量為1,第二層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)量為n2,第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)量為n3個(gè),第n-1層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)量為n-1個(gè),第n層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)量為n。其中,n>n-1>n3>n2>1。通過該種設(shè)置方式有利于實(shí)現(xiàn)網(wǎng)絡(luò)節(jié)點(diǎn)之間的分層次管理。當(dāng)然,在本發(fā)明其他的實(shí)施例中,也可能出現(xiàn)下級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量小于上級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量的情況,總之,本發(fā)明并不限定各個(gè)層級(jí)所包含的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的具體數(shù)量。每一層級(jí)所包含的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量可以是一個(gè),也可以是多個(gè)。
另外,每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)一步包括:共識(shí)子節(jié)點(diǎn),用于針對(duì)與該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)相關(guān)的網(wǎng)絡(luò)交易生成對(duì)應(yīng)的共識(shí)結(jié)果消息;賬本子節(jié)點(diǎn),用于根據(jù)共識(shí)子節(jié)點(diǎn)生成的共識(shí)結(jié)果消息進(jìn)行記賬。另外,在每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中,也可以將該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的一個(gè)子節(jié)點(diǎn)設(shè)置為同時(shí)具備共識(shí)子節(jié)點(diǎn)和賬本子節(jié)點(diǎn)功能的節(jié)點(diǎn)。也就是說,每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的共識(shí)子節(jié)點(diǎn)和賬本子節(jié)點(diǎn)既可以分別由兩個(gè)獨(dú)立的子節(jié)點(diǎn)實(shí)現(xiàn),也可以集成在同一個(gè)子節(jié)點(diǎn)中,由一個(gè)子節(jié)點(diǎn)實(shí)現(xiàn),從而簡(jiǎn)化網(wǎng)絡(luò)節(jié)點(diǎn)的結(jié)構(gòu)。
由此可見,通過將所有的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)劃分為至少兩個(gè)層級(jí),每個(gè)層級(jí)中的每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)都具有共識(shí)子節(jié)點(diǎn)和賬本子節(jié)點(diǎn),因此,每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)都可以獨(dú)立地進(jìn)行共識(shí)操作和記賬操作,無需依賴其他區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的參與,從而提升了共識(shí)操作和記賬操作的效率。另外,由于每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)僅針對(duì)與該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)相關(guān)的網(wǎng)絡(luò)交易進(jìn)行共識(shí)和記賬,而無需針對(duì)與該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)無關(guān)的網(wǎng)絡(luò)交易進(jìn)行共識(shí)和記賬,因此,不僅降低了整個(gè)系統(tǒng)的各項(xiàng)開銷,提升了系統(tǒng)運(yùn)行效率,還能夠使整個(gè)一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)中的各個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)之間并行記賬,大幅提高了系統(tǒng)性能。
實(shí)施例二
本發(fā)明實(shí)施例二提供了一種具體形式的一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)。為了便于理解本實(shí)施例,圖1示出了一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)的整體架構(gòu)圖。如圖1所示,一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)從上至下依次包括:用戶、交易客戶端、區(qū)塊鏈服務(wù)層、區(qū)塊鏈核心層、以及消息網(wǎng)絡(luò)節(jié)點(diǎn)。其中,用戶主要是指需要進(jìn)行交易的普通用戶;交易客戶端主要指各類支付平臺(tái)提供的用于支付的客戶端;區(qū)塊鏈服務(wù)層用于提供訪問區(qū)塊鏈核心層的接口,以便于用戶訪問;區(qū)塊鏈核心層包括具有層級(jí)關(guān)系的一組區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),用于實(shí)現(xiàn)本發(fā)明中的核心功能;消息網(wǎng)絡(luò)節(jié)點(diǎn)用于連接區(qū)塊鏈核心層中的各個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),以便于各個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)之間的相互通信。其中,本發(fā)明主要針對(duì)區(qū)塊鏈核心層進(jìn)行了改進(jìn)。另外,消息網(wǎng)絡(luò)節(jié)點(diǎn)是可選的,在本發(fā)明其他的實(shí)施例中,也可以省略消息網(wǎng)絡(luò)節(jié)點(diǎn),由各個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)之間直接通信。
圖2a示出了本發(fā)明實(shí)施例二提供的一種具體形式的一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)中的區(qū)塊鏈核心層的結(jié)構(gòu)示意圖,圖2b示出了本發(fā)明實(shí)施例二提供的一種具體形式的一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)中的區(qū)塊鏈核心層以及消息網(wǎng)絡(luò)節(jié)點(diǎn)的結(jié)構(gòu)示意圖。應(yīng)該理解的是,本發(fā)明既可以采用圖2b所示的存在消息網(wǎng)絡(luò)節(jié)點(diǎn)的系統(tǒng)架構(gòu)實(shí)現(xiàn),也可以采用圖2a所示的沒有消息網(wǎng)絡(luò)節(jié)點(diǎn)的系統(tǒng)架構(gòu)實(shí)現(xiàn)。在后續(xù)的描述中,均是以圖2b所示的系統(tǒng)架構(gòu)為例進(jìn)行說明的,雖然在圖3a-圖3b以及圖5中,省略了消息網(wǎng)絡(luò)節(jié)點(diǎn),但實(shí)際上圖3a-圖3b以及圖5中也是存在消息網(wǎng)絡(luò)節(jié)點(diǎn)的。
如圖2所示,該一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)包括多個(gè)層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),其中,具體包括:一個(gè)第一層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)0,三個(gè)分別隸屬于第一層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)0的第二層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)00、01和02,另外,還包括三個(gè)分別隸屬于第二層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)00的第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)000、001和002,以及兩個(gè)分別隸屬于第二層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)01的第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)010、和011,以及三個(gè)分別隸屬于第二層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)02的第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)020、021和022。其中,圖2所示的多個(gè)層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的層級(jí)劃分方式僅為示意性的,本領(lǐng)域技術(shù)人員還可以靈活采用其他形式的層級(jí)劃分方式。例如,第一層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)量也可以為兩個(gè)或更多個(gè),第二層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)量以及分別隸屬于每個(gè)第二層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)量均可以靈活設(shè)置,而且,本領(lǐng)域技術(shù)人員還可以設(shè)置更多的層級(jí)關(guān)系。具體的層級(jí)數(shù)量和每個(gè)層級(jí)包含的節(jié)點(diǎn)數(shù)量可以根據(jù)實(shí)際的業(yè)務(wù)場(chǎng)景靈活確定。
優(yōu)選地,每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)具有對(duì)應(yīng)的上級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)和/或下級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn);其中,每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)對(duì)應(yīng)的上級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)量為一個(gè)(當(dāng)然,在一些特殊情況下每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)對(duì)應(yīng)的上級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)量也可以是多個(gè)),每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)對(duì)應(yīng)的下級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)量為一個(gè)或多個(gè)。例如,第一層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)0具有三個(gè)下級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)(即:第二層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)00、01和02),第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)000具有一個(gè)上級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)(即:第二層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)00)。其中,通過每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的鏈id(也叫標(biāo)識(shí))能夠快速確定一個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)在整個(gè)一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)中的橫向和縱向位置。
其中,每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)隸屬于該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的上級(jí)節(jié)點(diǎn),每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的下級(jí)節(jié)點(diǎn)隸屬于該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)。其中,區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)a隸屬于區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)b的含義是指:區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)a與且僅與區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)b相連,并且,區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)a為區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)b的下級(jí)節(jié)點(diǎn)。由此可見,每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)與且僅與其所隸屬的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)直接相連,而與其他的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)則不直接相連。例如,第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)000僅與其上級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)(即:第二層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)00)直接相連,而與其他的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)則未直接相連。
本發(fā)明中的多層級(jí)的劃分方式的核心在于以下兩方面:一方面,將區(qū)塊鏈進(jìn)行橫向分鏈,所謂的橫向分鏈?zhǔn)侵福涸谕粚蛹?jí)上可以包括多個(gè)相同層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),這些相同層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)之間互為兄弟節(jié)點(diǎn)(例如第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)010和011互為兄弟節(jié)點(diǎn))。通過橫向分鏈將所有的交易分為多層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)之間的鏈內(nèi)交易和跨鏈交易,使所有不同區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的交易可以并行,從而大幅提高整個(gè)一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)的性能。另一方面,將區(qū)塊鏈進(jìn)行縱向分層,所謂的縱向分層是指:將所有的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)自上至下分為多個(gè)不同的層級(jí)。通過對(duì)區(qū)塊鏈縱向分層能夠?qū)^(qū)塊鏈分為不同層級(jí)的多組區(qū)塊鏈,下層的區(qū)塊鏈將匯總后的交易提交給上層,同時(shí)實(shí)現(xiàn)一些上下層賬戶之間的交易。由此可見,通過橫向分鏈和縱向分層能夠提升一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)的靈活性,為多筆交易的并發(fā)執(zhí)行提供保障。
為了便于各個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)獨(dú)立地進(jìn)行共識(shí)操作和記賬操作,在上述多個(gè)層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)一步包括:共識(shí)子節(jié)點(diǎn),用于針對(duì)與該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)相關(guān)的網(wǎng)絡(luò)交易生成對(duì)應(yīng)的共識(shí)結(jié)果消息(另外,本發(fā)明中的共識(shí)結(jié)果消息也可以稱作交易信息);賬本子節(jié)點(diǎn),用于根據(jù)該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的共識(shí)子節(jié)點(diǎn)生成的共識(shí)結(jié)果消息進(jìn)行記賬。其中,與該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)相關(guān)的網(wǎng)絡(luò)交易包括以下中的至少一種:發(fā)生在該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)內(nèi)部的鏈內(nèi)交易,以及發(fā)生在該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)與其他區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)之間的跨鏈交易;其中,跨鏈交易進(jìn)一步包括:同層級(jí)跨鏈交易以及跨層級(jí)跨鏈交易。由此可見,與傳統(tǒng)的一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)中僅提供一個(gè)統(tǒng)一的共識(shí)操作入口的方式不同(傳統(tǒng)的一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)中所有交易的共識(shí)操作都必須經(jīng)由該統(tǒng)一的共識(shí)操作入口實(shí)現(xiàn),因而無法并發(fā)執(zhí)行多個(gè)交易),本發(fā)明中的方式相當(dāng)于提供了多個(gè)能夠并行使用的共識(shí)操作入口(每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中均具有一個(gè)能夠獨(dú)立完成共識(shí)操作的入口),而且每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)僅針對(duì)與其相關(guān)的網(wǎng)絡(luò)交易進(jìn)行共識(shí),其他與該筆交易無關(guān)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)不參與該筆交易的共識(shí)操作,因此,能夠并行地進(jìn)行多個(gè)交易的共識(shí)操作,既提升了系統(tǒng)的并發(fā)量,又降低了共識(shí)操作的時(shí)延。并且,與傳統(tǒng)的一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)中僅提供一個(gè)大賬本的方式不同(傳統(tǒng)的一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)通過一個(gè)大賬本記錄所有區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)之間的各筆交易),本發(fā)明中的方式相當(dāng)于提供了多個(gè)獨(dú)立的小賬本(每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中均具有一個(gè)能夠獨(dú)立完成記賬操作的賬本子節(jié)點(diǎn)),而且,每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的賬本只需記錄與該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)相關(guān)的交易賬目即可,無需記錄與該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)無關(guān)的交易賬目,從而提升了記賬和查詢的效率。
另外,為了便于各層級(jí)間的多個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)相互通信,圖2b中還進(jìn)一步設(shè)置了四個(gè)消息網(wǎng)絡(luò)單元,分別為消息網(wǎng)絡(luò)單元1、消息網(wǎng)絡(luò)單元2、消息網(wǎng)絡(luò)單元3和消息網(wǎng)絡(luò)單元4。其中,各個(gè)消息網(wǎng)絡(luò)節(jié)點(diǎn)與各個(gè)層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)分別相連,用于轉(zhuǎn)發(fā)各個(gè)層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)之間的共識(shí)結(jié)果消息。具體實(shí)現(xiàn)時(shí),每個(gè)消息網(wǎng)絡(luò)節(jié)點(diǎn)分別與多個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)相連,且多個(gè)消息網(wǎng)絡(luò)節(jié)點(diǎn)之間分別相連;其中,每個(gè)消息網(wǎng)絡(luò)節(jié)點(diǎn)具體用于:接收來自與其相連的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)或其他消息網(wǎng)絡(luò)節(jié)點(diǎn)的共識(shí)結(jié)果消息,獲取共識(shí)結(jié)果消息中包含的目的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)標(biāo)識(shí),根據(jù)目的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)標(biāo)識(shí)對(duì)共識(shí)結(jié)果消息進(jìn)行轉(zhuǎn)發(fā)。具體地,每個(gè)消息網(wǎng)絡(luò)節(jié)點(diǎn)可以通過消息網(wǎng)絡(luò)中間件來實(shí)現(xiàn),另外,每個(gè)消息網(wǎng)絡(luò)節(jié)點(diǎn)中可以保存一份連接表,該連接表用于存儲(chǔ)各個(gè)消息網(wǎng)絡(luò)節(jié)點(diǎn)與其他消息網(wǎng)絡(luò)節(jié)點(diǎn)之間的連接關(guān)系以及各個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)與各個(gè)消息網(wǎng)絡(luò)節(jié)點(diǎn)之間的連接關(guān)系,以便于消息網(wǎng)絡(luò)節(jié)點(diǎn)根據(jù)該連接表為接收到的通信消息確定最優(yōu)轉(zhuǎn)發(fā)路徑。其中,消息網(wǎng)絡(luò)節(jié)點(diǎn)轉(zhuǎn)發(fā)的通信消息包括但不限于共識(shí)結(jié)果消息,還可以是其他的各類消息。最優(yōu)轉(zhuǎn)發(fā)路徑可以采用最短路徑算法或其他各類路徑算法進(jìn)行選擇。另外,為了便于維護(hù)該連接表,各個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)在與某消息網(wǎng)絡(luò)節(jié)點(diǎn)建立或斷開連接后,向其他的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)廣播相應(yīng)的連接建立消息或連接斷開消息,以便于其他的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)和消息網(wǎng)絡(luò)節(jié)點(diǎn)根據(jù)接收到的連接建立消息或連接斷開消息更新該連接表。另外,消息網(wǎng)絡(luò)單元的具體數(shù)量可以靈活設(shè)置,例如也可以設(shè)置為一個(gè)或更多個(gè)。而且,各個(gè)消息網(wǎng)絡(luò)單元之間的連接方式也可以靈活設(shè)置:例如,在小型的一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)中,每個(gè)消息網(wǎng)絡(luò)單元都可以與其他的所有消息網(wǎng)絡(luò)單元分別相連,以便于快速轉(zhuǎn)發(fā)消息;在大型的一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)中,每個(gè)消息網(wǎng)絡(luò)單元可以僅與一部分消息網(wǎng)絡(luò)單元相連,從而通過多個(gè)消息網(wǎng)絡(luò)單元的中繼實(shí)現(xiàn)消息的轉(zhuǎn)發(fā)。本發(fā)明對(duì)消息網(wǎng)絡(luò)單元的具體數(shù)量和連接形式不做限定。
發(fā)明人在實(shí)現(xiàn)本發(fā)明的過程中發(fā)現(xiàn):在未采用消息網(wǎng)絡(luò)單元的一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)中,若兩個(gè)未直接相連的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)需要相互轉(zhuǎn)發(fā)消息,例如第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)010欲向第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)022轉(zhuǎn)發(fā)消息,首先,第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)010需要獲取第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)022所對(duì)應(yīng)的子節(jié)點(diǎn)列表,然后,第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)010中的所有子節(jié)點(diǎn)要分別與第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)022中的所有子節(jié)點(diǎn)建立連接。由此導(dǎo)致操作繁瑣、傳輸效率低下等一系列缺陷。因此,為了解決上述問題,本發(fā)明在一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)中設(shè)置了上述至少一個(gè)消息網(wǎng)絡(luò)單元,相應(yīng)地,每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中可以分別包括與至少一個(gè)消息網(wǎng)絡(luò)節(jié)點(diǎn)相連的消息網(wǎng)絡(luò)接口,該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的各個(gè)子節(jié)點(diǎn)通過該消息網(wǎng)絡(luò)接口即可與消息網(wǎng)絡(luò)單元建立通信,進(jìn)而通過消息網(wǎng)絡(luò)單元實(shí)現(xiàn)與任意區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)之間的通信。采用消息網(wǎng)絡(luò)單元至少具備如下優(yōu)勢(shì):一方面,消息網(wǎng)絡(luò)單元能夠快速便捷地連通各個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),因此,不管是相同層級(jí)還是不同層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)之間都可以通過消息網(wǎng)絡(luò)單元傳輸消息,避免了兩個(gè)未直接相連的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)預(yù)先建立連接的繁瑣操作;另一方面,對(duì)于一些特殊的應(yīng)用場(chǎng)景而言,同一一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)中的某些區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)之間是不允許直接建立通信連接的(例如為了提高網(wǎng)絡(luò)安全性,不同的銀行系統(tǒng)之間不允許直接建立通信連接),因此,通過消息網(wǎng)絡(luò)單元還能夠在無法直接建立通信連接的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)之間實(shí)現(xiàn)消息傳輸。總而言之,利用消息網(wǎng)絡(luò)單元,能夠提升大型一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)的共識(shí)能力,降低共識(shí)過程中的網(wǎng)絡(luò)消耗和時(shí)延,提高整個(gè)系統(tǒng)的處理能力,并且,使一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)能夠部署在無法點(diǎn)對(duì)點(diǎn)互聯(lián)的場(chǎng)景下。
為了便于理解,接下來,詳細(xì)介紹該一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)所能處理的交易類型。在本發(fā)明提供的一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)中,將網(wǎng)絡(luò)交易劃分為兩大類:
第一大類網(wǎng)絡(luò)交易為鏈內(nèi)交易,所謂鏈內(nèi)交易是指:發(fā)生在一個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)內(nèi)部的一筆或多筆網(wǎng)絡(luò)交易。例如,圖3a示出了一筆鏈內(nèi)交易的交易雙方,在圖3a中,第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)000對(duì)應(yīng)于兩個(gè)不同的客戶端,第一客戶端的賬戶地址為add1,第二客戶端的賬戶地址為add2。由于這兩個(gè)客戶端都隸屬于第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)000,因此,該筆交易并未涉及到其他的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),僅涉及到了一個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),因此,該筆交易為鏈內(nèi)交易。
第二大類網(wǎng)絡(luò)交易為跨鏈交易,所謂跨鏈交易是指:發(fā)生在至少兩個(gè)不同的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)之間的一筆或多筆網(wǎng)絡(luò)交易。其中,跨鏈交易又可以進(jìn)一步劃分為:同層級(jí)跨鏈交易(即:交易雙方對(duì)應(yīng)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)屬于同一層級(jí))以及跨層級(jí)跨鏈交易(即:交易雙方對(duì)應(yīng)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)屬于不同的層級(jí))。例如,圖3b示出了一筆同層級(jí)跨鏈交易的交易雙方,在圖3b中,第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)010對(duì)應(yīng)于賬戶地址為add3的第三客戶端,第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)020對(duì)應(yīng)于賬戶地址為add4的第四客戶端。由于這兩個(gè)客戶端分別屬于兩個(gè)不同的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)(即:該筆交易涉及到至少兩個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)),且兩個(gè)不同的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)均屬于第二層級(jí)(即:兩個(gè)不同的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)互為兄弟節(jié)點(diǎn)),因此,該筆交易為同層級(jí)跨鏈交易。又如,圖3c示出了一筆跨層級(jí)跨鏈交易的交易雙方,在圖3c中,第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)022對(duì)應(yīng)于賬戶地址為add5的第五客戶端,第二層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)02對(duì)應(yīng)于賬戶地址為add6的第六客戶端。由于這兩個(gè)客戶端分別屬于兩個(gè)不同的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),且兩個(gè)不同的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)不屬于同一層級(jí),因此,該筆交易為跨層級(jí)跨鏈交易。
為了便于理解上述的各類交易,圖4示出了一個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)內(nèi)部包含的各個(gè)子節(jié)點(diǎn)(每個(gè)子節(jié)點(diǎn)也可以理解為一個(gè)模塊)的示意圖。如圖4所示,每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)內(nèi)部進(jìn)一步包含:交易管理子節(jié)點(diǎn)41、共識(shí)子節(jié)點(diǎn)42、鏈內(nèi)網(wǎng)絡(luò)接口43、區(qū)塊管理子節(jié)點(diǎn)44、賬本子節(jié)點(diǎn)45、消息網(wǎng)絡(luò)接口46以及跨鏈交易匯總子節(jié)點(diǎn)47。其中,圖4所示的子節(jié)點(diǎn)劃分方式僅為示意性的,本領(lǐng)域技術(shù)人員也可以對(duì)其他的多個(gè)子節(jié)點(diǎn)進(jìn)行合并,或?qū)⒛骋蛔庸?jié)點(diǎn)拆分為更多的子節(jié)點(diǎn),本發(fā)明對(duì)此不做限定。其中,消息網(wǎng)絡(luò)接口46以及跨鏈交易匯總子節(jié)點(diǎn)47主要用于實(shí)現(xiàn)跨鏈交易,在僅用于鏈內(nèi)交易的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中也可以省略消息網(wǎng)絡(luò)接口46以及跨鏈交易匯總子節(jié)點(diǎn)47。
首先,結(jié)合圖4介紹圖3a所示的鏈內(nèi)交易的具體交易流程:第一客戶端通過服務(wù)接口層上報(bào)一筆包含交易id的網(wǎng)絡(luò)交易,服務(wù)接口層判斷出第一客戶端所對(duì)應(yīng)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)為第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)000(例如根據(jù)客戶端的開戶地址確定),從而將該筆網(wǎng)絡(luò)交易提交到第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)000中包含的交易管理子節(jié)點(diǎn)41中。其中,服務(wù)接口層與多個(gè)層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)分別相連,用于接收并轉(zhuǎn)發(fā)多個(gè)層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)與客戶端之間的通信消息,例如,服務(wù)接口層可以通過圖1中的區(qū)塊鏈服務(wù)層實(shí)現(xiàn)。該交易管理子節(jié)點(diǎn)41對(duì)該筆交易進(jìn)行驗(yàn)證(例如驗(yàn)證賬戶余額是否充足等),驗(yàn)證通過后將該筆交易提交給第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)000中包含的共識(shí)子節(jié)點(diǎn)42。該共識(shí)子節(jié)點(diǎn)42通過鏈內(nèi)網(wǎng)絡(luò)接口43獲取第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)000中的其他各個(gè)子節(jié)點(diǎn)針對(duì)該筆交易達(dá)成共識(shí)后發(fā)送的通知消息,并據(jù)此生成對(duì)應(yīng)的共識(shí)結(jié)果消息。該共識(shí)結(jié)果消息中可以包含經(jīng)各個(gè)子節(jié)點(diǎn)確認(rèn)的交易列表。然后,共識(shí)子節(jié)點(diǎn)將該共識(shí)結(jié)果消息提交給區(qū)塊管理模塊44。區(qū)塊管理模塊44負(fù)責(zé)對(duì)共識(shí)成功的交易隊(duì)列進(jìn)行區(qū)塊打包處理,以便將打包后的區(qū)塊寫入第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)000中包含的賬本子節(jié)點(diǎn)45中。由此可見,在本發(fā)明提供的鏈內(nèi)交易流程中,僅由交易相關(guān)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)完成共識(shí)、記賬操作,其他與交易無關(guān)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)無需參與共識(shí)、記賬過程,從而簡(jiǎn)化了共識(shí)操作的復(fù)雜度,降低了處理延時(shí),并且,交易賬目?jī)H記錄在相關(guān)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的賬本中,無需其他無關(guān)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)參與記賬,簡(jiǎn)化了記賬的開銷,方便了查詢。
接下來,結(jié)合圖4介紹圖3b所示的跨鏈交易的交易流程:第三客戶端通過服務(wù)接口層上報(bào)一筆包含交易id的跨鏈網(wǎng)絡(luò)交易,服務(wù)接口層判斷出第三客戶端所對(duì)應(yīng)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)為第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)010,從而將該跨鏈筆網(wǎng)絡(luò)交易提交到第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)010中包含的交易管理子節(jié)點(diǎn)中。該交易管理子節(jié)點(diǎn)對(duì)該筆跨鏈交易進(jìn)行驗(yàn)證,驗(yàn)證通過后將該筆跨鏈交易提交給第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)010中包含的共識(shí)子節(jié)點(diǎn)。該共識(shí)子節(jié)點(diǎn)通過鏈內(nèi)網(wǎng)絡(luò)接口獲取第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)010中的其他各個(gè)子節(jié)點(diǎn)針對(duì)該筆跨鏈交易達(dá)成共識(shí)后發(fā)送的通知消息,并據(jù)此生成對(duì)應(yīng)的第一共識(shí)結(jié)果消息。該第一共識(shí)結(jié)果消息中可以包含經(jīng)各個(gè)子節(jié)點(diǎn)確認(rèn)的交易列表。然后,該共識(shí)子節(jié)點(diǎn)進(jìn)一步用于:確定與該筆跨鏈交易相關(guān)的其他區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)。例如,在本例中,根據(jù)該筆跨鏈交易的另一交易方第四客戶端的賬戶地址add4確定與該筆跨鏈交易相關(guān)的其他區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)為第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)020。具體地,與該筆跨鏈交易相關(guān)的其他區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)是指:在該筆跨鏈交易所涉及的交易方所對(duì)應(yīng)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中,除當(dāng)前共識(shí)子節(jié)點(diǎn)所在的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)之外的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),該與該筆跨鏈交易相關(guān)的其他區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)量通常為一個(gè),當(dāng)存在多筆連環(huán)交易時(shí),該與該筆跨鏈交易相關(guān)的其他區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)量也可以為多個(gè)。然后,該共識(shí)子節(jié)點(diǎn)進(jìn)一步用于:將針對(duì)該跨鏈交易生成的第一共識(shí)結(jié)果消息轉(zhuǎn)發(fā)給與該跨鏈交易相關(guān)的其他區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn);并且,接收與該跨鏈交易相關(guān)的其他區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)針對(duì)該跨鏈交易生成的第二共識(shí)結(jié)果消息。例如,在本例中,第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)010中包含的共識(shí)子節(jié)點(diǎn)需要將第一共識(shí)結(jié)果消息發(fā)送給第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)020,并進(jìn)一步接收第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)020針對(duì)該跨鏈交易生成的第二共識(shí)結(jié)果消息。最后,第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)010中包含的共識(shí)子節(jié)點(diǎn)將該第一共識(shí)結(jié)果消息以及第二共識(shí)結(jié)果消息提交給第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)010中的區(qū)塊管理模塊44。該區(qū)塊管理模塊44負(fù)責(zé)對(duì)共識(shí)成功的交易隊(duì)列進(jìn)行區(qū)塊打包處理,以便第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)010中的賬本子節(jié)點(diǎn)能夠?qū)⒋虬蟮膮^(qū)塊寫入第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)010中包含的賬本中。具體地,第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)010中的賬本子節(jié)點(diǎn)具體用于:根據(jù)第一共識(shí)結(jié)果消息以及第二共識(shí)結(jié)果消息對(duì)該跨鏈交易進(jìn)行記賬。
其中,上述的第一共識(shí)結(jié)果消息以及第二共識(shí)結(jié)果消息均可通過各個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的消息網(wǎng)絡(luò)接口以及消息網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行轉(zhuǎn)發(fā)。例如,第一共識(shí)結(jié)果消息通過第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)010中的消息網(wǎng)絡(luò)接口發(fā)送給第三消息網(wǎng)絡(luò)節(jié)點(diǎn),第三消息網(wǎng)絡(luò)節(jié)點(diǎn)根據(jù)第一共識(shí)結(jié)果消息中包含的目的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)標(biāo)識(shí),利用最短路徑算法將該第一共識(shí)結(jié)果消息通過第二消息網(wǎng)絡(luò)節(jié)點(diǎn)轉(zhuǎn)發(fā)給第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)020。
另外,本領(lǐng)域技術(shù)人員可以理解的是:上述的第一共識(shí)結(jié)果消息以及第二共識(shí)結(jié)果消息泛指各類用于實(shí)現(xiàn)共識(shí)的消息,凡是能夠用于實(shí)現(xiàn)聯(lián)合共識(shí)的消息均可作為上述的共識(shí)結(jié)果消息。例如,共識(shí)結(jié)果消息可以是針對(duì)該網(wǎng)絡(luò)交易生成的交易信息。另外,在上述示例中,為了共識(shí)結(jié)果更加準(zhǔn)確,第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)和第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)分別生成共識(shí)結(jié)果消息,以供對(duì)方確認(rèn),在本發(fā)明其他的實(shí)施例中,也可以僅由第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)生成共識(shí)結(jié)果消息,以供第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)確認(rèn),此時(shí),第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)可以不必生成上述的共識(shí)結(jié)果消息。具體的共識(shí)過程可進(jìn)一步參照?qǐng)D6及其對(duì)應(yīng)實(shí)施例的描述。
由此可見,在跨鏈交易的過程中,該筆跨鏈交易所涉及到的所有交易方對(duì)應(yīng)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)需要聯(lián)合參與共識(shí)和記賬過程。其中,該筆跨鏈交易所涉及到的所有交易方的數(shù)量通常為兩個(gè),在一些連環(huán)交易中也可能為多個(gè)。相應(yīng)地,該筆跨鏈交易相關(guān)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)量至少為兩個(gè),凡是與該筆跨鏈交易相關(guān)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)均需參與共識(shí)和記賬過程。因此,與該筆跨鏈交易相關(guān)的任一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)在生成共識(shí)結(jié)果消息后,需將自身生成的共識(shí)結(jié)果消息發(fā)送給與該筆跨鏈交易相關(guān)的其他區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),以供與該筆跨鏈交易相關(guān)的其他區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)聯(lián)合共識(shí)和記賬;同時(shí),與該筆跨鏈交易相關(guān)的任一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)在生成共識(shí)結(jié)果消息后,還要進(jìn)一步接收與該筆跨鏈交易相關(guān)的其他區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)生成的共識(shí)結(jié)果消息,以便根據(jù)與該筆跨鏈交易相關(guān)的其他區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)生成的共識(shí)結(jié)果消息進(jìn)行聯(lián)合共識(shí)和記賬。也就是說,一筆跨鏈交易只有在交易各方所對(duì)應(yīng)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)均達(dá)成共識(shí)后才會(huì)最終生效并記賬。
另外,本發(fā)明針對(duì)跨鏈交易中的記賬方式還進(jìn)行了如下改進(jìn):為了簡(jiǎn)化上級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的賬本數(shù)據(jù)量,本發(fā)明進(jìn)一步針對(duì)跨鏈交易進(jìn)行了匯總操作。具體地,為了便于理解匯總操作的具體內(nèi)容,首先介紹本發(fā)明提供的系統(tǒng)中包含的兩類賬戶:
針對(duì)每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)而言,該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)對(duì)應(yīng)于一個(gè)第一類賬戶地址,用于標(biāo)識(shí)該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)所對(duì)應(yīng)的賬戶。該第一類賬戶地址通常為公有賬戶地址,也可以理解為每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的賬戶,其屬于區(qū)塊鏈,通過共識(shí)算法來控制,常規(guī)場(chǎng)景下由區(qū)塊鏈對(duì)交易匯總產(chǎn)生,賬戶內(nèi)資產(chǎn)不能直接進(jìn)行交易。例如,假設(shè)一個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)代表一個(gè)銀行,則第一類賬戶地址即為該銀行的總帳戶。
每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)還對(duì)應(yīng)于多個(gè)第二類賬戶地址,其中,多個(gè)第二類賬戶地址隸屬于該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)對(duì)應(yīng)的第一類賬戶地址,且每個(gè)第二類賬戶地址分別用于標(biāo)識(shí)該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)所對(duì)應(yīng)的客戶端或下級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)所對(duì)應(yīng)的賬戶。該第二類賬戶地址通常為私有賬戶地址,也可以理解為每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)下屬的客戶端或下級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的賬戶,其屬于用戶,由密鑰進(jìn)行控制,用戶通過密鑰可對(duì)賬戶中的資產(chǎn)進(jìn)行操作。上述兩類賬戶的賬戶地址均可由“鏈id:鏈內(nèi)地址”的形式組成,其中,鏈id表示該鏈的歸屬id。
圖5示出了上述兩類賬戶之間的匯總交易的示意圖。如圖5所示,針對(duì)第二層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)00而言,該第二層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)00對(duì)應(yīng)的第一類賬戶地址為00:pub,并且,該第二層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)00還對(duì)應(yīng)于三個(gè)第二類賬戶地址,即:第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)000的賬戶地址000:pub、第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)001的賬戶地址001:pub、以及第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)002的賬戶地址002:pub、第二層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)01對(duì)應(yīng)的第一類賬戶地址為01:pub。同理,針對(duì)第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)000而言,該第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)000對(duì)應(yīng)的第一類賬戶地址為000:pub,并且,該第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)000還對(duì)應(yīng)于四個(gè)第二類賬戶地址,即:第一客戶端的賬戶地址000:add1、第二客戶端的賬戶地址000:add2、第三客戶端的賬戶地址000:add3以及第四客戶端的賬戶地址000:add4。關(guān)于其他的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的第一類賬戶地址和第二類賬戶地址原理類似,此處不再贅述。由此可見,第一類賬戶地址為相應(yīng)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)本身的賬戶地址,第二類賬戶地址為相應(yīng)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)下屬的客戶端或下級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的賬戶地址。因此,一個(gè)特定的賬戶地址,針對(duì)于不同的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)而言,可能屬于不同的類型。例如,針對(duì)第二層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)00而言,第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)000的賬戶地址“000:pub”為第二類賬戶地址,具體原因在于:第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)為從屬于第二層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的下級(jí)節(jié)點(diǎn);然而,針對(duì)第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)000本身而言,該第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)000的賬戶地址“000:pub”則為該第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)000的第一類賬戶地址,具體原因在于:該賬戶地址為該第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)本身的地址。
結(jié)合上述的兩類賬戶地址,描述本發(fā)明中的跨鏈交易在記賬方面的改進(jìn)點(diǎn):在跨鏈交易流程中,每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中包含的跨鏈交易匯總子節(jié)點(diǎn)具體用于:提取與該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)相關(guān)的網(wǎng)絡(luò)交易中包含的跨鏈交易;確定提取出的跨鏈交易所對(duì)應(yīng)的第二類賬戶地址以及每個(gè)第二類賬戶地址所隸屬的第一類賬戶地址;對(duì)隸屬于相同第一類賬戶地址的第二類賬戶地址所對(duì)應(yīng)的跨鏈交易進(jìn)行合并,得到合并后的各個(gè)第一類賬戶地址之間的交易記錄。其中,提取出的跨鏈交易所對(duì)應(yīng)的第二類賬戶地址的數(shù)量通常為至少兩個(gè),相應(yīng)地,需要分別確定每個(gè)第二類賬戶地址所隸屬的第一類賬戶地址。另外,對(duì)隸屬于相同第一類賬戶地址的第二類賬戶地址所對(duì)應(yīng)的跨鏈交易進(jìn)行合并通常是指:針對(duì)兩筆或更多筆跨鏈交易而言,若每筆交易所對(duì)應(yīng)的各個(gè)第二類賬戶地址所隸屬的第一類賬戶地址分別相同,則可以合并。其中,跨鏈交易匯總子節(jié)點(diǎn)可以分別針對(duì)每一筆跨鏈交易進(jìn)行匯總操作,也可以每隔預(yù)定的時(shí)間周期針對(duì)本周期內(nèi)發(fā)生的跨鏈交易進(jìn)行匯總操作,本發(fā)明對(duì)此不做限定。
具體地,在圖5中,第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)000與第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)010之間發(fā)生了四筆跨鏈交易,分別是交易id為1的第一筆跨鏈交易、交易id為2的第二筆跨鏈交易、交易id為3的第三筆跨鏈交易、以及交易id為4的第四筆跨鏈交易。交易id用于唯一標(biāo)識(shí)一筆跨鏈交易。其中,每一筆跨鏈交易具有第一交易方和第二交易方,通常第一交易方為資金轉(zhuǎn)出方,第二交易方為資金轉(zhuǎn)入方,當(dāng)然,也可能第一交易方為資金轉(zhuǎn)入方,第二交易方為資金轉(zhuǎn)出方,本發(fā)明對(duì)此不做限定。而且,在連環(huán)交易中,第一交易方和第二交易方的數(shù)量均可能為多個(gè)。具體到本例中,這四筆跨鏈交易中的第一交易方的賬戶地址(即上述的第二類賬戶地址)分別為000:add1、000:add2、000:add3和000:add4,即:各筆交易的第一交易方均隸屬于同一個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)(即:第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)000);第二交易方的賬戶地址分別為010:add5、010:add6、010:add7和010:add8,即:各筆交易的第二交易方均隸屬于同一個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)(即第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)010)。因此,各筆交易中的第一交易方所對(duì)應(yīng)的第二類賬戶地址所隸屬的第一類賬戶地址相同,且各筆交易中的第二交易方所對(duì)應(yīng)的第二類賬戶地址所隸屬的第二類賬戶地址也相同,因此,可以針對(duì)這四筆跨鏈交易進(jìn)行合并,得到一筆合并后的各個(gè)第一類賬戶地址之間的交易記錄。其中,合并后的各個(gè)第一類賬戶地址之間的交易記錄中包含以下中的至少一個(gè):合并后的各個(gè)第一類賬戶地址之間的交易總金額,以及合并前的各筆跨鏈交易的交易標(biāo)識(shí)。例如,假設(shè)上述的四筆跨鏈交易的交易內(nèi)容分別為第一交易方向第二交易方支付10元、20元、30元和20元,相應(yīng)地,合并后得到的一筆各個(gè)第一類賬戶地址之間的交易記錄中包含的交易內(nèi)容如下:交易總金額為80元,且合并后的第一交易方為合并前的各個(gè)第一交易方對(duì)應(yīng)的第二類賬戶地址所隸屬的第一類賬戶地址(即:第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)000的賬戶地址000:pub);合并后的第二交易方為合并前的各個(gè)第二交易方對(duì)應(yīng)的第二類賬戶地址所隸屬的第一類賬戶地址(即:第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)010的賬戶地址010:pub);并且,為了便于溯源,合并后得到的該筆各個(gè)第一類賬戶地址之間的交易記錄中還進(jìn)一步包含合并前的四筆跨鏈交易的交易id1、2、3、4,根據(jù)交易id能夠快速查詢各筆交易的詳情。
另外,為了便于實(shí)現(xiàn)分層管理,每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的跨鏈交易匯總子節(jié)點(diǎn)進(jìn)一步用于:將合并后的各個(gè)第一類賬戶地址之間的交易記錄提供給該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的賬本子節(jié)點(diǎn);且每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的賬本子節(jié)點(diǎn)進(jìn)一步用于:將合并后的各個(gè)第一類賬戶地址之間的交易記錄提供給該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)所對(duì)應(yīng)的上級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),由該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)所對(duì)應(yīng)的上級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的賬本子節(jié)點(diǎn)進(jìn)行記賬;和/或,接收該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)所對(duì)應(yīng)的下級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的賬本子節(jié)點(diǎn)提供的合并后的各個(gè)第一類賬戶地址之間的交易記錄并進(jìn)行記賬。由此可見,每一個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的賬本僅對(duì)直接隸屬于該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的客戶端和/或下級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)之間的每筆交易的交易詳情進(jìn)行記錄,而對(duì)于間接隸屬于該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的客戶端和/或下級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)之間的每筆交易,則不記錄具體的交易詳情,而僅記錄由直接隸屬于該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的下級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)匯總合并后得到的交易記錄。通過該種方式,實(shí)現(xiàn)了賬本的分層次管理,由于處于上層的管理機(jī)構(gòu)往往并不關(guān)心底層用戶之間的各筆小額交易的詳情,而僅關(guān)心直接隸屬于該管理機(jī)構(gòu)的下級(jí)機(jī)構(gòu)的交易記錄,因此該種方式更加符合實(shí)際的管理需求。而且,通過將賬本拆分、分級(jí),一方面能夠簡(jiǎn)化賬本的總開銷,另一方面按照層級(jí)查詢時(shí)非常便捷高效。
當(dāng)然,為了便于備份,防止數(shù)據(jù)丟失,每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的賬本子節(jié)點(diǎn)還可以進(jìn)一步用于:根據(jù)合并后的各個(gè)第一類賬戶地址之間的交易記錄進(jìn)行記賬。也就是說,每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的賬本子節(jié)點(diǎn)除了將合并后的各個(gè)第一類賬戶地址之間的交易記錄上報(bào)給其上級(jí)節(jié)點(diǎn)之外,還進(jìn)一步在本節(jié)點(diǎn)的賬本上進(jìn)行記錄。此時(shí),每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的賬本包含兩部分,一部分為該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)記錄的各個(gè)直接隸屬于該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的客戶端和/或下級(jí)節(jié)點(diǎn)的交易詳情,另一部分為匯總后的交易記錄。
另外,為了更加形象地理解上述匯總操作的內(nèi)涵,可以將網(wǎng)絡(luò)交易大致分為兩種,一種為普通交易,即私有賬戶之間的鏈內(nèi)或跨鏈交易。一種為匯總交易,即多筆跨鏈交易的參與方如果分別在相同區(qū)塊鏈內(nèi),可以將其匯總成為一條區(qū)塊鏈公共賬戶到區(qū)塊鏈公共賬戶的交易,就成為一條匯總交易,匯總交易包含其所匯聚交易的id。
本發(fā)明的一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)中的多個(gè)層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)包括以下中的至少一個(gè):多個(gè)層級(jí)的銀行系統(tǒng)所對(duì)應(yīng)的網(wǎng)絡(luò)節(jié)點(diǎn)、多個(gè)層級(jí)的支付系統(tǒng)所對(duì)應(yīng)的網(wǎng)絡(luò)節(jié)點(diǎn)??傊?,本發(fā)明對(duì)其具體應(yīng)用場(chǎng)景不做限定,可靈活應(yīng)用于各類分級(jí)管理的場(chǎng)景中。
另外,本發(fā)明還提供了一種基于上述的一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)實(shí)現(xiàn)的網(wǎng)絡(luò)交易方法,其中,上述一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)中的多個(gè)層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)至少包括:作為網(wǎng)絡(luò)交易中的第一交易方的第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),以及作為網(wǎng)絡(luò)交易中的第二交易方的第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),如圖6所示,該方法包括以下步驟:
首先,在該方法執(zhí)行之前,由第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)向第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)送共識(shí)發(fā)起消息。當(dāng)?shù)诙^(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)為多個(gè)時(shí),需要分別向每個(gè)第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)送該共識(shí)發(fā)起消息。具體地,第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)確定與該筆網(wǎng)絡(luò)交易相關(guān)的全部區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),將全部區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中除第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)之外的其他區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)確定為第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn);第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)向各個(gè)第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)分別發(fā)送共識(shí)發(fā)起消息,以供各個(gè)第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)根據(jù)共識(shí)發(fā)起消息與第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)組成臨時(shí)共識(shí)網(wǎng)絡(luò)。其中,該臨時(shí)共識(shí)網(wǎng)絡(luò)內(nèi)部的每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)分別與該臨時(shí)共識(shí)網(wǎng)絡(luò)內(nèi)部的其他區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)相連;其中,第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)量為一個(gè)或多個(gè)。為了便于構(gòu)建臨時(shí)共識(shí)網(wǎng)絡(luò),上述共識(shí)發(fā)起消息中可以包含與該筆網(wǎng)絡(luò)交易相關(guān)的每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的標(biāo)識(shí),以便于各個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)之間建立連接。另外,上述的臨時(shí)共識(shí)網(wǎng)絡(luò)進(jìn)一步包含至少一個(gè)用于連通各個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的消息網(wǎng)絡(luò)節(jié)點(diǎn)。關(guān)于消息網(wǎng)絡(luò)節(jié)點(diǎn)的設(shè)置可參考上文描述,此處不再贅述。
為了便于理解上述過程,下面首先對(duì)本發(fā)明中的網(wǎng)絡(luò)交易進(jìn)行簡(jiǎn)單介紹:一筆網(wǎng)絡(luò)交易包括由第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)實(shí)現(xiàn)的第一交易方以及由第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)實(shí)現(xiàn)的第二交易方。其中,第一交易方和第二交易方可以分別為資金轉(zhuǎn)出方和資金轉(zhuǎn)入方,也可以分別為資金轉(zhuǎn)入方和資金轉(zhuǎn)出方。另外,作為第一交易方的第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)量可以為一個(gè)或多個(gè),作為第二交易方的第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)量也可以為一個(gè)或多個(gè)。總之,第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)和第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)涵蓋了與該筆網(wǎng)絡(luò)交易相關(guān)的全部區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)。具體地,針對(duì)一筆網(wǎng)絡(luò)交易而言,可以將與該筆網(wǎng)絡(luò)交易相關(guān)的所有區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的任一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)作為該筆網(wǎng)絡(luò)交易中的第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)(即第一交易方),將與該筆網(wǎng)絡(luò)交易相關(guān)的全部區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中除第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)之外的其他區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)共同作為第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)。例如,假設(shè)一筆網(wǎng)絡(luò)交易為:由區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)a向區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)b、c分別轉(zhuǎn)入一定量的資金,則可以由區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)a作為該筆網(wǎng)絡(luò)交易中的第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),由區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)b、c共同作為該筆網(wǎng)絡(luò)交易中的第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn);或者,也可以由區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)b作為該筆網(wǎng)絡(luò)交易中的第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),由區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)a、c共同作為該筆網(wǎng)絡(luò)交易中的第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)。本發(fā)明對(duì)此不做限定。
總之,針對(duì)一筆特定的交易而言,第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)和第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)共同構(gòu)成與該筆網(wǎng)絡(luò)交易相關(guān)的全部區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),另外,通常情況下,與該筆網(wǎng)絡(luò)交易相關(guān)的全部區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)只是整個(gè)一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)中的部分區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),而非整個(gè)一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)中的全部區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),也就是說,整個(gè)一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)中,除第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)和第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)之外,至少還包含第三區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),第三區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)是指:與該筆網(wǎng)絡(luò)交易無關(guān)的全部區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),其數(shù)量通常為多個(gè)。第三區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)顯然不包含在上述的臨時(shí)共識(shí)網(wǎng)絡(luò)中。
另外,針對(duì)一筆網(wǎng)絡(luò)交易而言,可以首選由該筆網(wǎng)絡(luò)交易中的資金轉(zhuǎn)出方主動(dòng)發(fā)送上述的共識(shí)發(fā)起消息,或者,也可以由該筆網(wǎng)絡(luò)交易中的資金轉(zhuǎn)入方主動(dòng)發(fā)送上述的共識(shí)發(fā)起消息,還可以由該筆網(wǎng)絡(luò)交易所涉及到的各個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)自發(fā)進(jìn)行共識(shí)操作。因此,由第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)針對(duì)該網(wǎng)絡(luò)交易發(fā)送上述的共識(shí)發(fā)起消息的操作步驟是可選的,當(dāng)由各個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)自發(fā)進(jìn)行共識(shí)操作時(shí),也可以省略該操作步驟。
步驟s610:第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)針對(duì)該網(wǎng)絡(luò)交易生成對(duì)應(yīng)的交易信息。
其中,第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)作為網(wǎng)絡(luò)交易中的第一交易方,可以是一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)中的任一節(jié)點(diǎn)。例如,在本例中,第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)為上文提到的跨鏈交易流程中的第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)010,其生成對(duì)應(yīng)的第一交易信息的具體過程可參照上文中的相應(yīng)描述,此處不再贅述。例如,可以由第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的共識(shí)子節(jié)點(diǎn)確認(rèn)第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中包含的各個(gè)子節(jié)點(diǎn)是否對(duì)網(wǎng)絡(luò)交易達(dá)成共識(shí),若是,則針對(duì)該網(wǎng)絡(luò)交易生成對(duì)應(yīng)的交易信息。另外,交易信息可以是各種形式的信息,可以包含各類與該網(wǎng)絡(luò)交易相關(guān)的內(nèi)容,本發(fā)明對(duì)交易信息的具體形式和具體內(nèi)容不作限定。該交易信息主要用于提供給第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),以便第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)針對(duì)該筆網(wǎng)絡(luò)交易與第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行聯(lián)合共識(shí)。因此,只要是能夠用于實(shí)現(xiàn)聯(lián)合共識(shí)的信息內(nèi)容均可以作為交易信息。例如,在一筆網(wǎng)絡(luò)交易的交易信息中,包含交易各方的節(jié)點(diǎn)標(biāo)識(shí),以及交易類型和交易金額。其中,交易各方的節(jié)點(diǎn)標(biāo)識(shí)用于確認(rèn)交易參與方的身份,交易類型可以是從第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)向第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)轉(zhuǎn)賬,或從第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)向第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)轉(zhuǎn)賬等??傊?,第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)通過交易信息能夠驗(yàn)證該筆網(wǎng)絡(luò)交易的有效性,從而實(shí)現(xiàn)聯(lián)合共識(shí)目的。
步驟s620:將交易信息發(fā)送給作為網(wǎng)絡(luò)交易中的第二交易方的第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)。
其中,第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)作為網(wǎng)絡(luò)交易中的第二交易方,也可以是一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)中的任一節(jié)點(diǎn)。例如,在本例中,第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)為上文提到的跨鏈交易流程中的第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)020。
具體地,第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)首先確定作為網(wǎng)絡(luò)交易中的第二交易方的第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的標(biāo)識(shí),然后根據(jù)該標(biāo)識(shí)將交易信息發(fā)送給第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)。具體實(shí)現(xiàn)時(shí),為了提高通信效率,可以通過上述臨時(shí)共識(shí)網(wǎng)絡(luò)中包含的至少一個(gè)消息網(wǎng)絡(luò)節(jié)點(diǎn)將交易信息發(fā)送給作為網(wǎng)絡(luò)交易中的第二交易方的第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn);其中,至少一個(gè)消息網(wǎng)絡(luò)節(jié)點(diǎn)與各個(gè)層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)分別相連,用于轉(zhuǎn)發(fā)各個(gè)層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)之間的交易信息。關(guān)于消息網(wǎng)絡(luò)節(jié)點(diǎn)的具體設(shè)置方式及其優(yōu)勢(shì)可參照上文描述,此處不再贅述。
步驟s630:第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)和第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)采用共識(shí)算法對(duì)該交易信息達(dá)成一致。
具體地,第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)和第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)可以通過上述臨時(shí)共識(shí)網(wǎng)絡(luò),采用共識(shí)算法對(duì)交易信息達(dá)成一致。其中,第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)和第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)可以靈活采用各類共識(shí)算法確定是否對(duì)上述交易信息達(dá)成一致,若是,則繼續(xù)執(zhí)行步驟s640。
步驟s640:第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)和第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)對(duì)達(dá)成一致的交易信息對(duì)應(yīng)的網(wǎng)絡(luò)交易同步記賬。
其中,第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)將該網(wǎng)絡(luò)交易的交易賬目記錄在第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中,且第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)將該網(wǎng)絡(luò)交易的交易賬目同步記錄在第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中。具體地,由第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中包含的賬本子節(jié)點(diǎn)將該交易信息對(duì)應(yīng)的網(wǎng)絡(luò)交易的交易賬目記錄在第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的賬本中;由第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中包含的賬本子節(jié)點(diǎn)將該交易信息對(duì)應(yīng)的網(wǎng)絡(luò)交易的交易賬目記錄在第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的賬本中。
由此可見,當(dāng)?shù)谝粎^(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)和第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)采用共識(shí)算法對(duì)該交易信息達(dá)成一致時(shí),第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)和第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)針對(duì)該交易信息對(duì)應(yīng)的網(wǎng)絡(luò)交易同步記賬;當(dāng)?shù)谝粎^(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)和第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)采用共識(shí)算法對(duì)該交易信息未達(dá)成一致時(shí),第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)和第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)針對(duì)該交易信息對(duì)應(yīng)的網(wǎng)絡(luò)交易均不記賬。由此能夠確保第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)和第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)針對(duì)該交易信息對(duì)應(yīng)的網(wǎng)絡(luò)交易的記賬結(jié)果一致。
另外,為了保證第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的賬本以及第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的賬本能夠同步記賬,且記賬結(jié)果一致,在本發(fā)明中還可以采取一些特定的處理方式。例如,當(dāng)?shù)谝粎^(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)對(duì)該網(wǎng)絡(luò)交易進(jìn)行記賬之后,向第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)送相應(yīng)的記賬成功消息;當(dāng)?shù)诙^(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)對(duì)該網(wǎng)絡(luò)交易進(jìn)行記賬之后,向第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)送相應(yīng)的記賬成功消息,每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)只有在接收到來自相關(guān)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的記賬成功消息后,才確認(rèn)完成該筆交易的最終記賬過程,由此防止因網(wǎng)絡(luò)異常等各種情況所導(dǎo)致的兩個(gè)節(jié)點(diǎn)上賬本不一致的情況發(fā)生?;蛘撸瑸榱舜_保同一筆交易在相關(guān)的各個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的賬本數(shù)據(jù)一致,也可以由各個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)定期地將各筆交易的交易賬目發(fā)送給相關(guān)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行復(fù)核。
另外,為了進(jìn)一步提升共識(shí)操作的準(zhǔn)確性,在本發(fā)明其他的實(shí)施例中,第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)也可以針對(duì)該網(wǎng)絡(luò)交易生成交易信息,并將生成的交易信息提供給第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)驗(yàn)證,從而進(jìn)一步確保聯(lián)合共識(shí)操作的準(zhǔn)確性。
另外,在上述步驟中,是以第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)量為一個(gè)進(jìn)行說明的,實(shí)際上,第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)量還可以是多個(gè),相應(yīng)地,第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)需要分別向每個(gè)第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)送交易信息;且每個(gè)第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)都會(huì)對(duì)該交易信息進(jìn)行驗(yàn)證。
通過上述的各個(gè)步驟就實(shí)現(xiàn)了本發(fā)明中針對(duì)一筆網(wǎng)絡(luò)交易的共識(shí)和記賬過程,雖然上述過程僅以一筆網(wǎng)絡(luò)交易為例進(jìn)行說明,但本領(lǐng)域技術(shù)人員能夠理解的是,一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)中的任意一筆網(wǎng)絡(luò)交易都可以通過上述的各個(gè)步驟完成共識(shí)和記賬過程。另外,雖然上述的各個(gè)步驟中描述的網(wǎng)絡(luò)交易方法的執(zhí)行主體為第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),但是,由于第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)可以是與該筆網(wǎng)絡(luò)交易相關(guān)的全部區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的任一節(jié)點(diǎn),因此,實(shí)際上,上述的各個(gè)步驟中描述的網(wǎng)絡(luò)交易方法的執(zhí)行主體可以是與該筆網(wǎng)絡(luò)交易相關(guān)的全部區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的任一節(jié)點(diǎn),例如,還可以是第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)。而且,當(dāng)?shù)诙^(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)為多個(gè)時(shí),可以是其中的任意一個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)。由此可見,在實(shí)際過程中,上述的各個(gè)步驟中的每一個(gè)步驟都是由第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)和第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)所組成的臨時(shí)共識(shí)網(wǎng)絡(luò)中的各個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)直接交互完成的,并且,每一個(gè)步驟都由臨時(shí)共識(shí)網(wǎng)絡(luò)中的所有區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)共同完成。
另外,在上述過程中,針對(duì)每一筆網(wǎng)絡(luò)交易,能夠根據(jù)與該網(wǎng)絡(luò)交易相關(guān)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)量和分布情況來動(dòng)態(tài)地創(chuàng)建一個(gè)臨時(shí)共識(shí)網(wǎng)絡(luò),該臨時(shí)共識(shí)網(wǎng)絡(luò)用于連通與該網(wǎng)絡(luò)交易相關(guān)的各個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),并在各個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)之間傳輸?shù)谝?第二交易信息,以便最終實(shí)現(xiàn)在臨時(shí)共識(shí)網(wǎng)絡(luò)內(nèi)部的各個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)之間進(jìn)行聯(lián)合共識(shí)的目的。由此可見,本發(fā)明能夠分別針對(duì)每一筆交易動(dòng)態(tài)創(chuàng)建與該交易對(duì)應(yīng)的臨時(shí)共識(shí)網(wǎng)絡(luò),從而僅在該臨時(shí)共識(shí)網(wǎng)絡(luò)內(nèi)部實(shí)現(xiàn)該交易的共識(shí)和記賬過程,其他與該交易無關(guān)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)不包含在該臨時(shí)共識(shí)網(wǎng)絡(luò)中,也不參與該交易的共識(shí)和記賬。
由此可見,本發(fā)明中的共識(shí)和記賬操作具備如下特點(diǎn):
首先,針對(duì)一筆網(wǎng)絡(luò)交易而言,該筆網(wǎng)絡(luò)交易的共識(shí)操作的參與方包括且僅限于與該筆網(wǎng)絡(luò)交易相關(guān)的所有區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)(即上文提到的第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)和第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)),其他與該筆網(wǎng)絡(luò)交易無關(guān)的其他區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)不參與。并且,該筆網(wǎng)絡(luò)交易的共識(shí)操作由與該筆網(wǎng)絡(luò)交易相關(guān)的所有區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)聯(lián)合進(jìn)行,只有在與該筆網(wǎng)絡(luò)交易相關(guān)的所有區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)全部共識(shí)成功時(shí),該筆網(wǎng)絡(luò)交易的最終共識(shí)結(jié)果才算成功。由此可見,本發(fā)明中的共識(shí)操作僅限于與該筆網(wǎng)絡(luò)交易相關(guān)的所有區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),并且,需由與該筆網(wǎng)絡(luò)交易相關(guān)的所有區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)聯(lián)合共識(shí)。
其次,為了更好地實(shí)現(xiàn)由與該筆網(wǎng)絡(luò)交易相關(guān)的所有區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)聯(lián)合共識(shí)的效果,在本發(fā)明中,與該筆網(wǎng)絡(luò)交易相關(guān)的所有區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)臨時(shí)進(jìn)行合并而成為一個(gè)臨時(shí)共識(shí)網(wǎng)絡(luò),通過該臨時(shí)共識(shí)網(wǎng)絡(luò)能夠更好地實(shí)現(xiàn)各區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)之間的聯(lián)合共識(shí)。具體地,該臨時(shí)共識(shí)網(wǎng)絡(luò)可通過如下方式產(chǎn)生:首先,可由與該筆網(wǎng)絡(luò)交易相關(guān)的所有區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的任一節(jié)點(diǎn)發(fā)起共識(shí)操作,并根據(jù)該筆網(wǎng)絡(luò)交易的具體交易信息確定與該筆網(wǎng)絡(luò)交易相關(guān)的全部區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)量及標(biāo)識(shí);然后,通過消息網(wǎng)絡(luò)節(jié)點(diǎn)將與該筆網(wǎng)絡(luò)交易相關(guān)的所有區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行互聯(lián),從而形成上述的臨時(shí)共識(shí)網(wǎng)絡(luò),進(jìn)而能夠通過該臨時(shí)共識(shí)網(wǎng)絡(luò)針對(duì)該筆網(wǎng)絡(luò)交易進(jìn)行聯(lián)合共識(shí)。通過該種共識(shí)方式,一筆網(wǎng)絡(luò)交易的聯(lián)合共識(shí)過程僅涉及與該網(wǎng)絡(luò)交易相關(guān)的網(wǎng)絡(luò)節(jié)點(diǎn),因此,簡(jiǎn)化了共識(shí)操作的復(fù)雜度,提升了共識(shí)操作的效率。
再次,針對(duì)一筆網(wǎng)絡(luò)交易而言,該筆網(wǎng)絡(luò)交易的記賬操作的參與方包括且僅限于與該筆網(wǎng)絡(luò)交易相關(guān)的所有區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)(即上文提到的第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)和第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)),其他與該筆網(wǎng)絡(luò)交易無關(guān)的其他區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)(即上述的第三區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn))不參與記賬。另外,僅在聯(lián)合共識(shí)結(jié)果為成功的前提下,與該筆網(wǎng)絡(luò)交易相關(guān)的各區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)才針對(duì)該網(wǎng)絡(luò)交易進(jìn)行記賬。通過該種記賬方式,一筆網(wǎng)絡(luò)交易的記賬過程僅涉及與該網(wǎng)絡(luò)交易相關(guān)的網(wǎng)絡(luò)節(jié)點(diǎn),僅在與該網(wǎng)絡(luò)交易相關(guān)的網(wǎng)絡(luò)節(jié)點(diǎn)內(nèi)部的賬本中記錄該筆網(wǎng)絡(luò)交易的交易賬目。因此,簡(jiǎn)化了賬本的規(guī)模。另外,一筆網(wǎng)絡(luò)交易中涉及到的第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)以及第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的總數(shù)量是由該筆網(wǎng)絡(luò)交易中所涉及到的交易方數(shù)量確定的。即:上述的臨時(shí)共識(shí)網(wǎng)絡(luò)的網(wǎng)絡(luò)規(guī)模是由對(duì)應(yīng)的網(wǎng)絡(luò)交易所涉及到的交易方數(shù)量確定的,可能包括兩個(gè)或更多個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)。
另外,為了實(shí)現(xiàn)賬本的分層級(jí)管理,還要進(jìn)行跨鏈交易的匯總合并操作,相應(yīng)地,該方法還可以進(jìn)一步包括下述的步驟s650以及步驟s660。
步驟s650:各個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)分別獲取由該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)作為第一交易方或第二交易方的全部網(wǎng)絡(luò)交易的交易帳目;確定全部網(wǎng)絡(luò)交易的交易帳目中的每筆網(wǎng)絡(luò)交易所對(duì)應(yīng)的第二類賬戶地址以及每個(gè)第二類賬戶地址所隸屬的第一類賬戶地址;對(duì)隸屬于相同第一類賬戶地址的第二類賬戶地址所對(duì)應(yīng)的網(wǎng)絡(luò)交易進(jìn)行合并,得到合并后的各個(gè)第一類賬戶地址之間的交易記錄。
步驟s660:該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)將合并后的各個(gè)第一類賬戶地址之間的交易記錄提供給該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)所對(duì)應(yīng)的上級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),由該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)所對(duì)應(yīng)的上級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行記賬;和/或,接收該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)所對(duì)應(yīng)的下級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)提供的合并后的各個(gè)第一類賬戶地址之間的交易記錄并進(jìn)行記賬。
其中,該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)所對(duì)應(yīng)的上級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行記賬的步驟具體包括:該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)所對(duì)應(yīng)的上級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)將合并后的各個(gè)第一類賬戶地址之間的交易記錄記錄在該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)所對(duì)應(yīng)的上級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的賬本中;和/或,接收該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)所對(duì)應(yīng)的下級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)提供的合并后的各個(gè)第一類賬戶地址之間的交易記錄并進(jìn)行記賬的步驟具體包括:該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)將下級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)提供的合并后的各個(gè)第一類賬戶地址之間的交易記錄記錄在該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的賬本中。
另外,本實(shí)施例中作為網(wǎng)絡(luò)交易中的第一交易方的第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)和作為網(wǎng)絡(luò)交易中的第二交易方的第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)為至少兩個(gè)相同層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn);或者,作為所述網(wǎng)絡(luò)交易中的第一交易方的第一區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)和作為所述網(wǎng)絡(luò)交易中的第二交易方的第二區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)為至少兩個(gè)不同層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)。也就是說,本發(fā)明中的交易方法既可以應(yīng)用上述的同層級(jí)跨鏈交易,也可以應(yīng)用于上述的跨層級(jí)跨鏈交易。
綜上所述,本發(fā)明提出了區(qū)塊鏈的分層和跨鏈架構(gòu),將系統(tǒng)內(nèi)的交易分成分布式區(qū)塊鏈中多個(gè)區(qū)塊鏈的鏈內(nèi)交易、跨鏈交易。同時(shí),引入消息路由網(wǎng)絡(luò),由消息路由網(wǎng)絡(luò)解決跨鏈通信以及復(fù)雜網(wǎng)絡(luò)的聯(lián)通問題。通過上述方式,本發(fā)明至少具備如下優(yōu)勢(shì):
1、每一筆交易僅由一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)中直接參與的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行共識(shí)和直接記賬,其他區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)不參與,降了了整個(gè)一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)的消耗,提高了整個(gè)一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)的處理性能。
2、由不同區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)參與的交易可以由不同的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)并發(fā)共識(shí)、獨(dú)立記賬,由于無關(guān)區(qū)塊鏈(區(qū)塊鏈為上文提到的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的簡(jiǎn)稱)不需參與共識(shí)、記賬,因此,涉及不同區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的多筆交易可以同時(shí)進(jìn)行,從而使整個(gè)系統(tǒng)內(nèi)的共識(shí)實(shí)現(xiàn)了并發(fā),提高了整個(gè)一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)的處理性能。并且,當(dāng)系統(tǒng)規(guī)模越大時(shí),性能提升越顯著。
3、共識(shí)達(dá)成的交易會(huì)在共識(shí)參與方的賬本里記賬,無關(guān)區(qū)塊鏈不記賬,將一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)的大賬本拆分為多個(gè)區(qū)塊鏈獨(dú)立維護(hù)的小賬本,提高了整個(gè)區(qū)塊鏈的處理性能,提高了區(qū)塊鏈的賬本性能。
4、區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)內(nèi)部的子節(jié)點(diǎn)采用點(diǎn)對(duì)點(diǎn)直連,不同的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)之間采用消息網(wǎng)絡(luò)互連。通過消息網(wǎng)絡(luò),提高了大型一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)的共識(shí)能力,降低了共識(shí)的網(wǎng)絡(luò)消耗和時(shí)延,提高了整個(gè)系統(tǒng)的處理能力。而且,通過消息網(wǎng)絡(luò),使一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)能夠部署在無法點(diǎn)對(duì)點(diǎn)互聯(lián)的場(chǎng)景下。
在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對(duì)任何特定編程語(yǔ)言。應(yīng)當(dāng)明白,可以利用各種編程語(yǔ)言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語(yǔ)言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(dsp)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的惡意信息的識(shí)別裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
本發(fā)明提供了a1、一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng),包括:多個(gè)層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),其中,所述多個(gè)層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)包括以下中的至少兩項(xiàng):
第一層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)、隸屬于第一層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的第二層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)、隸屬于第二層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的第三層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)、......直至隸屬于第n-1層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的第n層級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn);其中,n為大于三的自然數(shù);
其中,每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)一步包括:
共識(shí)子節(jié)點(diǎn),用于針對(duì)與該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)相關(guān)的網(wǎng)絡(luò)交易生成對(duì)應(yīng)的共識(shí)結(jié)果消息;
賬本子節(jié)點(diǎn),用于根據(jù)所述共識(shí)子節(jié)點(diǎn)生成的共識(shí)結(jié)果消息進(jìn)行記賬。
a2、根據(jù)a1所述的系統(tǒng),其中,每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)具有對(duì)應(yīng)的上級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)和/或下級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn);其中,每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)對(duì)應(yīng)的上級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)量為一個(gè),每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)對(duì)應(yīng)的下級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)量為多個(gè)。
a3、根據(jù)a1或a2所述的系統(tǒng),其中,所述一種基于分層結(jié)構(gòu)的分布式賬本系統(tǒng)進(jìn)一步包括:至少一個(gè)消息網(wǎng)絡(luò)節(jié)點(diǎn),其中,所述至少一個(gè)消息網(wǎng)絡(luò)節(jié)點(diǎn)與各個(gè)層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)分別相連,用于轉(zhuǎn)發(fā)各個(gè)層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)之間的共識(shí)結(jié)果消息。
a4、根據(jù)a3所述的系統(tǒng),其中,所述消息網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)量為多個(gè),其中,每個(gè)消息網(wǎng)絡(luò)節(jié)點(diǎn)分別與多個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)相連,且多個(gè)消息網(wǎng)絡(luò)節(jié)點(diǎn)之間分別相連;
其中,每個(gè)消息網(wǎng)絡(luò)節(jié)點(diǎn)具體用于:接收來自與其相連的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)或其他消息網(wǎng)絡(luò)節(jié)點(diǎn)的共識(shí)結(jié)果消息,獲取所述共識(shí)結(jié)果消息中包含的目的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)標(biāo)識(shí),根據(jù)所述目的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)標(biāo)識(shí)對(duì)所述共識(shí)結(jié)果消息進(jìn)行轉(zhuǎn)發(fā)。
a5、根據(jù)a1-a4任一所述的系統(tǒng),其中,所述與該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)相關(guān)的網(wǎng)絡(luò)交易包括以下中的至少一種:發(fā)生在該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)內(nèi)部的鏈內(nèi)交易,以及發(fā)生在該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)與其他區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)之間的跨鏈交易;其中,所述跨鏈交易進(jìn)一步包括:同層級(jí)跨鏈交易以及跨層級(jí)跨鏈交易。
a6、根據(jù)a5所述的系統(tǒng),其中,當(dāng)所述與該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)相關(guān)的網(wǎng)絡(luò)交易為跨鏈交易時(shí),
該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的共識(shí)子節(jié)點(diǎn)具體用于:確定與該跨鏈交易相關(guān)的其他區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),將針對(duì)該跨鏈交易生成的第一共識(shí)結(jié)果消息轉(zhuǎn)發(fā)給所述與該跨鏈交易相關(guān)的其他區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn);并且,接收所述與該跨鏈交易相關(guān)的其他區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)針對(duì)該跨鏈交易生成的第二共識(shí)結(jié)果消息;
則該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的賬本子節(jié)點(diǎn)具體用于:根據(jù)所述第一共識(shí)結(jié)果消息以及所述第二共識(shí)結(jié)果消息對(duì)該跨鏈交易進(jìn)行記賬。
a7、根據(jù)a6所述的系統(tǒng),其中,每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)一步包括:與至少一個(gè)消息網(wǎng)絡(luò)節(jié)點(diǎn)相連的消息網(wǎng)絡(luò)接口,則所述共識(shí)子節(jié)點(diǎn)具體用于:將針對(duì)該跨鏈交易生成的第一共識(shí)結(jié)果消息提供給所述消息網(wǎng)絡(luò)接口,由所述消息網(wǎng)絡(luò)接口通過至少一個(gè)消息網(wǎng)絡(luò)節(jié)點(diǎn)將所述第一共識(shí)結(jié)果消息轉(zhuǎn)發(fā)給所述與該跨鏈交易相關(guān)的其他區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn);并且,通過所述消息網(wǎng)絡(luò)接口接收所述與該跨鏈交易相關(guān)的其他區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)針對(duì)該跨鏈交易生成的第二共識(shí)結(jié)果消息。
a8、根據(jù)a5-7任一所述的系統(tǒng),其中,每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)對(duì)應(yīng)于一個(gè)第一類賬戶地址,用于標(biāo)識(shí)該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)所對(duì)應(yīng)的賬戶;且每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)對(duì)應(yīng)于多個(gè)第二類賬戶地址,其中,所述多個(gè)第二類賬戶地址隸屬于該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)對(duì)應(yīng)的第一類賬戶地址,且每個(gè)第二類賬戶地址分別用于標(biāo)識(shí)該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)所對(duì)應(yīng)的客戶端或下級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)所對(duì)應(yīng)的賬戶;
則區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中進(jìn)一步包括:跨鏈交易匯總子節(jié)點(diǎn),用于提取所述與該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)相關(guān)的網(wǎng)絡(luò)交易中包含的跨鏈交易;確定提取出的跨鏈交易所對(duì)應(yīng)的第二類賬戶地址以及每個(gè)第二類賬戶地址所隸屬的第一類賬戶地址;對(duì)隸屬于相同第一類賬戶地址的第二類賬戶地址所對(duì)應(yīng)的跨鏈交易進(jìn)行合并,得到合并后的各個(gè)第一類賬戶地址之間的交易記錄。
a9、根據(jù)a8所述的系統(tǒng),其中,每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的跨鏈交易匯總子節(jié)點(diǎn)進(jìn)一步用于:將所述合并后的各個(gè)第一類賬戶地址之間的交易記錄提供給該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的賬本子節(jié)點(diǎn);
則每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的賬本子節(jié)點(diǎn)進(jìn)一步用于:
將所述合并后的各個(gè)第一類賬戶地址之間的交易記錄提供給該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)所對(duì)應(yīng)的上級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn),由該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)所對(duì)應(yīng)的上級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的賬本子節(jié)點(diǎn)進(jìn)行記賬;和/或,
接收該區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)所對(duì)應(yīng)的下級(jí)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的賬本子節(jié)點(diǎn)提供的合并后的各個(gè)第一類賬戶地址之間的交易記錄并進(jìn)行記賬。
a10、根據(jù)a9所述的系統(tǒng),其中,每個(gè)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)中的賬本子節(jié)點(diǎn)進(jìn)一步用于:根據(jù)所述合并后的各個(gè)第一類賬戶地址之間的交易記錄進(jìn)行記賬。
a11、根據(jù)a8-10任一所述的系統(tǒng),其中,所述合并后的各個(gè)第一類賬戶地址之間的交易記錄中包含以下中的至少一個(gè):
合并后的各個(gè)第一類賬戶地址之間的交易總金額,以及合并前的各筆跨鏈交易的交易標(biāo)識(shí)。
a12、根據(jù)a1-11任一所述的系統(tǒng),其中,進(jìn)一步包括:
與所述多個(gè)層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)分別相連的服務(wù)接口層,用于接收并轉(zhuǎn)發(fā)所述多個(gè)層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)與客戶端之間的通信消息。
a13、根據(jù)a1-12任一所述的系統(tǒng),其中,所述多個(gè)層級(jí)的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)包括以下中的至少一個(gè):多個(gè)層級(jí)的銀行系統(tǒng)所對(duì)應(yīng)的網(wǎng)絡(luò)節(jié)點(diǎn)、多個(gè)層級(jí)的支付系統(tǒng)所對(duì)應(yīng)的網(wǎng)絡(luò)節(jié)點(diǎn)。