區(qū)塊的根Hash值。比如,交易主鏈根據(jù)實(shí)現(xiàn)機(jī)制每隔5分鐘確定一個(gè)時(shí)刻T,在T時(shí)刻之前所有交易副鏈的參與節(jié)點(diǎn)需要將當(dāng)期區(qū)塊的根HASH值上報(bào)給交易主鏈的所有驗(yàn)證節(jié)點(diǎn),否則上報(bào)失效。
[0028]主鏈區(qū)塊定期生成,區(qū)塊中記錄著所有交易副鏈的當(dāng)前區(qū)塊根Hash值信息,主鏈區(qū)塊的產(chǎn)生就是基于這些信息完成的,這些信息對(duì)于主鏈而言,相當(dāng)于比特幣區(qū)塊鏈中的交易信息,交易主鏈?zhǔn)窍到y(tǒng)唯一的。主鏈區(qū)塊的生成周期,可以與每條交易副鏈向交易主鏈上報(bào)最新的當(dāng)前區(qū)塊的根Hash值的上報(bào)周期相同,也可以大于上報(bào)周期(即交易副鏈上報(bào)的周期小于主鏈區(qū)塊的生成周期),否則可能會(huì)產(chǎn)生無效的主鏈區(qū)塊。一般情況下,主鏈區(qū)塊的生成時(shí)刻比副鏈區(qū)塊的上報(bào)時(shí)刻晚一些,晚的這段時(shí)間可以作為主鏈驗(yàn)證節(jié)點(diǎn)進(jìn)行分布式區(qū)塊鏈驗(yàn)證的時(shí)間。交易主鏈?zhǔn)且粋€(gè)有序次的區(qū)塊的集合,所有用戶必須(或最終)對(duì)該集合達(dá)成共識(shí),這確定了資產(chǎn)控制的歷史,提供了一個(gè)計(jì)算上無法偽造的交易時(shí)序。交易主鏈定期向交易副鏈?zhǔn)占?dāng)前區(qū)塊根Hash值信息并記錄,最終通過交易主鏈即可掌握所有區(qū)塊鏈的當(dāng)前狀態(tài)。交易主鏈當(dāng)前區(qū)塊根Hash值是根據(jù)所有交易副鏈當(dāng)前區(qū)塊根Hash值計(jì)算得來,比如采用Merkle樹的計(jì)算方式。
[0029]步驟S120,交易副鏈和交易主鏈分別進(jìn)行各自的區(qū)塊鏈驗(yàn)證和交易驗(yàn)證,若交易驗(yàn)證在交易副鏈和交易主鏈上均驗(yàn)證通過,則證明交易真實(shí)存在,否則,交易不存在。
[0030]交易副鏈和交易主鏈的區(qū)塊鏈驗(yàn)證,均需要由各自驗(yàn)證池中的驗(yàn)證節(jié)點(diǎn)完成。驗(yàn)證池是區(qū)塊鏈驗(yàn)證節(jié)點(diǎn)的集合,是由所有參與區(qū)塊鏈驗(yàn)證的節(jié)點(diǎn)組成,驗(yàn)證節(jié)點(diǎn)負(fù)責(zé)進(jìn)行區(qū)塊鏈分布式驗(yàn)證,交易主鏈、交易副鏈分別有自己的驗(yàn)證池。驗(yàn)證節(jié)點(diǎn)的產(chǎn)生方式可以有多種,如由發(fā)行機(jī)構(gòu)部署的固定節(jié)點(diǎn);由商業(yè)伙伴部署的固定節(jié)點(diǎn);由用戶節(jié)點(diǎn)競(jìng)爭(zhēng)后動(dòng)態(tài)進(jìn)入/退出等。驗(yàn)證節(jié)點(diǎn)可以動(dòng)態(tài)加入或退出,以保證驗(yàn)證效率,對(duì)于不符合驗(yàn)證節(jié)點(diǎn)條件的部分節(jié)點(diǎn)(比如低信譽(yù)度、低計(jì)算能力),可以將其從驗(yàn)證池中刪除。比如,初始化時(shí),可以自動(dòng)推薦部分驗(yàn)證節(jié)點(diǎn),隨著參與節(jié)點(diǎn)的逐步增多,部分節(jié)點(diǎn)也具有了成為驗(yàn)證節(jié)點(diǎn)的條件(比如高信譽(yù)度、高計(jì)算能力),這時(shí),也會(huì)將這部分節(jié)點(diǎn)納入驗(yàn)證池。當(dāng)然有的參與節(jié)點(diǎn)也可以自薦,但是需要進(jìn)行審核評(píng)價(jià)。另外,各條區(qū)塊鏈的驗(yàn)證池節(jié)點(diǎn)可以有交集,有的用戶可能同時(shí)是幾個(gè)區(qū)塊鏈的驗(yàn)證節(jié)點(diǎn),比如用戶張三同時(shí)參與了主鏈和副鏈一,也同時(shí)成為了兩個(gè)鏈的驗(yàn)證節(jié)點(diǎn),用戶可根據(jù)自身計(jì)算能力情況靈活選擇加入
交易副鏈和交易主鏈根據(jù)業(yè)務(wù)需要,可靈活選擇PoW(Proof of Work,工作量證明)、PoS(Proof of Stake,權(quán)益證明)、RPCA(Ripple Consensus Algorithm, 一致性算法)等方式進(jìn)行區(qū)塊鏈驗(yàn)證,并持續(xù)更新。交易副鏈和交易主鏈的側(cè)重點(diǎn)定位可以有所差異,比如交易副鏈需要優(yōu)先保證交易速度,交易主鏈需要優(yōu)先保證激發(fā)用戶投入的激情,相應(yīng)地,PoS和RPCA的驗(yàn)證速度較快,因此一般建議交易副鏈采用這些方式進(jìn)行驗(yàn)證;PoW雖然驗(yàn)證速度慢,但是只要用戶投入計(jì)算能力等資源參與驗(yàn)證,就可以得到回報(bào),比如PoW挖礦獎(jiǎng)勵(lì),因此適用于激發(fā)用戶激情,比較適用于交易主鏈??傮w來說,交易副鏈與交易主鏈在區(qū)塊鏈中待驗(yàn)證的數(shù)據(jù)有所不同,交易主鏈需要驗(yàn)證的是交易副鏈上報(bào)的根Hash值,而交易副鏈需要驗(yàn)證的則是各類業(yè)務(wù)的交易數(shù)據(jù)等信息。
[0031]在交易副鏈和交易主鏈并存的多區(qū)塊鏈結(jié)構(gòu)下,驗(yàn)證某個(gè)交易是否真實(shí)存在的步驟包括:計(jì)算該交易的hash值tx_hash ;在交易副鏈驗(yàn)證交易是否真實(shí)存在;在交易主鏈驗(yàn)證交易是否真實(shí)存在;如果交易在交易副鏈和交易主鏈均得到驗(yàn)證,則交易真實(shí)存在;否貝1J,交易不存在。具體的:
步驟S20,計(jì)算該交易的hash值tx_hash;
步驟S21,在交易副鏈中驗(yàn)證交易是否真實(shí)存在:
首先,定位到包含該tx_hash所在的副鏈區(qū)塊;
其次,從該副鏈區(qū)塊中獲取交易的hash值,根據(jù)這些hash值計(jì)算區(qū)塊根hash值;
最后,如果區(qū)塊根hash與區(qū)塊頭中的根hash值一致,說明該交易在副鏈中真實(shí)存在。此時(shí)還不能說明該交易真實(shí)存在,還需要在交易主鏈中進(jìn)行交易驗(yàn)證;
步驟S30,在交易主鏈中驗(yàn)證交易是否真實(shí)存在:
首先,獲取tx_hash所在區(qū)塊的根hash值root_hash ;
其次,定位到包含該root_hash所在的主鏈區(qū)塊,從該主鏈區(qū)塊中獲取所包含的其它副鏈區(qū)塊根hash值,根據(jù)這些hash值計(jì)算主鏈區(qū)塊根hash ;
最后,如果區(qū)塊根hash與區(qū)塊頭中的根hash值一致,說明該副鏈區(qū)塊在交易主鏈中真實(shí)存在。
[0032]步驟S40,如果交易在副鏈和主鏈均得到驗(yàn)證,則交易真實(shí)存在;否則,交易不存在。
[0033]上述在交易副鏈和交易主鏈分別驗(yàn)證的方法,可以有效防止交易副鏈造假,保證驗(yàn)證結(jié)果的可靠性。
[0034]本發(fā)明中所說的交易,是指數(shù)字資產(chǎn)所有權(quán)在密碼學(xué)上的標(biāo)識(shí)和轉(zhuǎn)移。
[0035]作為本發(fā)明上述實(shí)施例的進(jìn)一步改進(jìn),對(duì)于交易副鏈和交易主鏈可以進(jìn)一步延伸:交易副鏈?zhǔn)窍鄬?duì)于主鏈而言的,交易副鏈與交易主鏈在業(yè)務(wù)邏輯與區(qū)塊鏈特性上可以有所不同,比如交易主鏈承載的主要是交易副鏈根HASH驗(yàn)證,交易副鏈承載的包括了智能財(cái)產(chǎn)、優(yōu)惠券等各類業(yè)務(wù)驗(yàn)證。交易副鏈可以作為交易主鏈新功能或新業(yè)務(wù)邏輯的“試驗(yàn)田”,一方面幫助交易主鏈試行擴(kuò)展功能,另一方面實(shí)現(xiàn)各種交易主鏈本身無法具備的業(yè)務(wù)邏輯功能,逐漸圍繞交易主鏈搭建起一個(gè)覆蓋各種業(yè)務(wù)需求的產(chǎn)業(yè)生態(tài)圈。同時(shí),交易副鏈會(huì)定期向交易主鏈上報(bào)當(dāng)前區(qū)塊根Hash信息,該Hash值為根據(jù)當(dāng)前區(qū)塊的所有交易信息計(jì)算得來,比如采用Merkle樹的計(jì)算方式。
[0036]作為本發(fā)明上述實(shí)施例的進(jìn)一步改進(jìn),交易副鏈與交易主鏈間進(jìn)行安全隔離,比如交易副鏈、交易主鏈的數(shù)據(jù)存儲(chǔ)、區(qū)塊訪問、區(qū)塊生成各自獨(dú)立,尤其是協(xié)議獨(dú)立,彼此間不會(huì)產(chǎn)生相互影響,因而關(guān)鍵的功能更新可在某條、或某幾條、或全部交易副鏈上先行進(jìn)行更新試行,這樣既可以提升更新速度,又可以規(guī)避交易主鏈被破壞的風(fēng)險(xiǎn)。
[0037]作為本發(fā)明上述實(shí)施例的進(jìn)一步改進(jìn),交易副鏈和交易主鏈可以根據(jù)用戶行為、交易記錄、信譽(yù)度等信息更新各自的驗(yàn)證池。具體的,交易副鏈和交易主鏈的驗(yàn)證池中首先包含了指定的可靠交易節(jié)點(diǎn),之后根據(jù)用戶交易歷史、持有資產(chǎn)規(guī)模、上線時(shí)間、交易信譽(yù)度等信息,可以建立用戶信用模型,根據(jù)該模型可以定期進(jìn)行驗(yàn)證池的更新。
[0038]通過上述實(shí)施例可以看出,本發(fā)明的多業(yè)務(wù)區(qū)塊鏈的分布式共享總賬構(gòu)建方法比已有傳統(tǒng)單區(qū)塊鏈方法更高效,表現(xiàn)在:
1)支持多種業(yè)務(wù)的資產(chǎn)交易,包括非貨幣資產(chǎn)在區(qū)塊鏈的交易,例如欠條、智能財(cái)產(chǎn)、優(yōu)惠券、債券等,同時(shí)支持不同業(yè)務(wù)資產(chǎn)間的轉(zhuǎn)移;
2)系統(tǒng)功能的更新可以首先在影響較低的副鏈進(jìn)行,不僅可以提升更新速度而且可以降低風(fēng)險(xiǎn),為技術(shù)和經(jīng)濟(jì)上的創(chuàng)新提供更好的支持。例如,調(diào)整交易費(fèi)率、增加區(qū)塊交易容量、新錢包特性等等,都可以在副鏈上試行,證明成功且穩(wěn)定之后再在主鏈上實(shí)施;
3)多業(yè)務(wù)區(qū)塊鏈并存的結(jié)構(gòu)下,一個(gè)重要問題是因區(qū)塊鏈增多而無法掌握全局狀態(tài),同時(shí)部分副鏈因增加新功能而可能不穩(wěn)定。本發(fā)明中將區(qū)塊鏈分為主鏈和副鏈兩類,副鏈定期向主鏈上報(bào)區(qū)塊根Hash信息,最終通過主鏈即可記錄掌握所有區(qū)塊鏈的狀態(tài)信息,而且不可抵賴。
[0039]通過以上的實(shí)施方式的描述可知,