本發(fā)明涉及區(qū)塊鏈技術(shù)領(lǐng)域,特別地,涉及一種將交易信息和賬戶信息分別存儲(chǔ)的區(qū)塊鏈。
背景技術(shù):
目前的區(qū)塊鏈系統(tǒng),包括比特幣以及以太坊等,交易信息以及用戶的賬戶信息都會(huì)被存儲(chǔ)在同一個(gè)區(qū)塊鏈中。對(duì)于比特幣,利用UTXO存儲(chǔ)每個(gè)賬戶的未使用交易,每個(gè)賬戶的信息量極少,直接利用賬戶的公鑰作為賬戶地址。要查詢每個(gè)賬戶的信息時(shí),需要遍歷查詢block的所有涉及到該賬戶的交易。以太坊利用Merkle Patricia tree進(jìn)行索引,加快信息的查找速度。上述區(qū)塊鏈都不能在賬戶量賬戶信息大增的情況下輕易的實(shí)現(xiàn)擴(kuò)展。本發(fā)明結(jié)合了當(dāng)前的一些銀行、股票等金融業(yè)務(wù),對(duì)傳統(tǒng)的區(qū)塊鏈進(jìn)行了改進(jìn),將賬戶信息從區(qū)塊鏈中剝離,用一條新的區(qū)塊鏈存儲(chǔ)并維護(hù)。
在區(qū)塊鏈系統(tǒng)中,多個(gè)節(jié)點(diǎn)各自維護(hù)一個(gè)區(qū)塊鏈,要保證數(shù)據(jù)在所有節(jié)點(diǎn)的一致性,保證每個(gè)節(jié)點(diǎn)維護(hù)的區(qū)塊鏈?zhǔn)且粯拥?。每個(gè)區(qū)塊鏈節(jié)點(diǎn)與其它區(qū)塊鏈節(jié)點(diǎn)合作實(shí)現(xiàn)數(shù)據(jù)的一致性和安全性。賬戶信息對(duì)于當(dāng)前的一些金融業(yè)務(wù)也是一種重要信息,同時(shí),復(fù)雜的金融業(yè)務(wù)導(dǎo)致賬戶的信息量巨大。例如在銀行系統(tǒng)中,每個(gè)用戶各種基金購(gòu)買情況、信用等級(jí)、收入等個(gè)人信息。如果還是將賬戶信息存入到區(qū)塊鏈中,當(dāng)賬戶量大增的時(shí)候,單個(gè)節(jié)點(diǎn)既要存儲(chǔ)維護(hù)數(shù)量龐大的個(gè)人信息還要進(jìn)行賬戶間交易的處理以及建塊,節(jié)點(diǎn)的存儲(chǔ)和計(jì)算壓力大幅增加。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是提供一種將交易信息和賬戶信息分別存儲(chǔ)的區(qū)塊鏈,實(shí)現(xiàn)了區(qū)塊鏈系統(tǒng)的可擴(kuò)展性。
一方面,本發(fā)明提供了一種將交易信息和賬戶信息分別存儲(chǔ)的區(qū)塊鏈,每個(gè)節(jié)點(diǎn)由兩個(gè)區(qū)塊鏈組成,其中一條區(qū)塊鏈TBC用作處理交易信息,另一條區(qū)塊鏈ABC用于維護(hù)賬戶信息;用于存儲(chǔ)交易的區(qū)塊鏈TBC向維護(hù)賬戶的區(qū)塊鏈ABC讀寫賬戶信息。
進(jìn)一步地,兩個(gè)區(qū)塊鏈TBC、ABC的建塊是相互獨(dú)立的,各自接受交易并建塊;ABC接收TBC發(fā)送的賬戶信息;TBC接收賬戶之間的交易信息并處理。
進(jìn)一步地,TBC接收到交易信息之后,根據(jù)交易雙方的賬戶ID,向ABC請(qǐng)求賬戶數(shù)據(jù);利用賬戶數(shù)據(jù)對(duì)交易進(jìn)行驗(yàn)證和處理;將處理結(jié)果,涉及到的賬戶變更,以交易的形式發(fā)給ABC;
進(jìn)一步地,ABC接收TBC發(fā)送的賬戶交易并處理;ABC接收到TBC的信息交易之后,對(duì)賬戶進(jìn)行處理,更新相應(yīng)賬戶的信息。
進(jìn)一步地,TBC和ABC各自根據(jù)自己收到交易建塊。
本發(fā)明實(shí)現(xiàn)了區(qū)塊鏈系統(tǒng)的可擴(kuò)展性。對(duì)于賬戶信息大幅上漲的情況下,ABC的運(yùn)營(yíng)維護(hù)可以在另一個(gè)物理機(jī)上,交易的處理TBC節(jié)點(diǎn)的壓力可以大幅下降。每個(gè)TBC節(jié)點(diǎn)和ABC節(jié)點(diǎn)配合使用,組成了一個(gè)完成的區(qū)塊鏈節(jié)點(diǎn)。同時(shí),TBC和ABC的建塊流程是一樣的,底層的區(qū)塊鏈維護(hù)與原有的區(qū)塊鏈維護(hù)是一樣的。不需要更新原有的建塊算法。
具體實(shí)施方式
為了更好的理解本發(fā)明實(shí)施例提供的技術(shù)方案,也更好的與本發(fā)明實(shí)施例的技術(shù)方案進(jìn)行對(duì)比,下面首先通過舉例的方式對(duì)現(xiàn)有技術(shù)中的實(shí)現(xiàn)方案進(jìn)行簡(jiǎn)單的介紹。
本發(fā)明所述的TBC是用作處理交易信息的區(qū)塊鏈。
本發(fā)明所述的ABC是指用于維護(hù)賬戶信息的區(qū)塊鏈。
本發(fā)明提供了一種將賬戶信息和交易信息分開存儲(chǔ)并處理的區(qū)塊鏈系統(tǒng)??梢詷O大的實(shí)現(xiàn)區(qū)塊鏈的可擴(kuò)展性,方便將其應(yīng)用到現(xiàn)有的區(qū)塊鏈系統(tǒng)中。本發(fā)明包括以下四步:
(1)每個(gè)節(jié)點(diǎn)維護(hù)兩個(gè)區(qū)塊鏈,分別是TBC和ABC。
a)兩個(gè)區(qū)塊鏈的建塊是相互獨(dú)立的,各自接受交易并建塊。
b)ABC接收TBC發(fā)送的賬戶信息
(2)TBC接收賬戶之間的交易信息并處理
a)TBC接收到交易信息之后,根據(jù)交易雙方的賬戶ID,向ABC請(qǐng)求賬戶數(shù)據(jù)。
b)利用賬戶數(shù)據(jù)對(duì)交易進(jìn)行驗(yàn)證和處理。
c)將處理結(jié)果,涉及到的賬戶變更,以交易的形式發(fā)給ABC。
(3)ABC接收TBC發(fā)送的賬戶交易并處理
a)ABC接收到TBC的信息交易之后,對(duì)賬戶進(jìn)行處理,更新相應(yīng)賬戶的信息
(4)TBC和ABC各自根據(jù)自己收到交易建塊
假如,區(qū)塊鏈系統(tǒng)有4個(gè)節(jié)點(diǎn)8個(gè)物理機(jī),4個(gè)節(jié)點(diǎn)可以容忍一個(gè)節(jié)點(diǎn)出現(xiàn)故障或者被攻擊。TBC和ABC的建塊過程是獨(dú)立的,TBC和ABC都需要4個(gè)節(jié)點(diǎn),所以我們的物理節(jié)點(diǎn)至少有8個(gè)。為了容忍f個(gè)節(jié)點(diǎn)的故障或者被攻擊,系統(tǒng)需要有3f+1個(gè)節(jié)點(diǎn)。也就是說,如果系統(tǒng)要容忍最多2個(gè)節(jié)點(diǎn)出現(xiàn)故障或者被攻擊。則需要有至少7個(gè)節(jié)點(diǎn)。節(jié)點(diǎn)在出現(xiàn)故障或者被攻擊成功的情況下,如果節(jié)點(diǎn)總數(shù)超過被控制節(jié)點(diǎn)的三倍,系統(tǒng)的容錯(cuò)算法可以保證其余正常節(jié)點(diǎn)正常運(yùn)作。
TBC和ABC之間有頻繁的通信。每一對(duì)TBC和ABC節(jié)點(diǎn)之間可以由內(nèi)網(wǎng)連接。減少網(wǎng)絡(luò)傳輸?shù)臅r(shí)間消耗。四個(gè)TBC節(jié)點(diǎn)在配置區(qū)塊鏈系統(tǒng)是在同一個(gè)區(qū)塊鏈系統(tǒng)中的,共同完成區(qū)塊鏈的維護(hù)。與之相對(duì),4個(gè)ABC節(jié)點(diǎn)同處一個(gè)區(qū)塊鏈系統(tǒng),四個(gè)節(jié)點(diǎn)完成區(qū)塊鏈的維護(hù)。兩個(gè)區(qū)塊鏈子系統(tǒng)是獨(dú)立的完成建塊過程的,因此,系統(tǒng)中共有兩條區(qū)塊鏈。
假設(shè)區(qū)塊鏈系統(tǒng)中有4個(gè)節(jié)點(diǎn)(即M=4),分別為節(jié)點(diǎn)A、節(jié)點(diǎn)B、節(jié)點(diǎn)C、節(jié)點(diǎn)D。每個(gè)節(jié)點(diǎn)包含一個(gè)TBC節(jié)點(diǎn)和一個(gè)ABC節(jié)點(diǎn)。每個(gè)節(jié)點(diǎn)需要兩個(gè)物理機(jī)。其中一個(gè)部署TBC,另外一個(gè)作為ABC。假設(shè)4個(gè)TBC節(jié)點(diǎn)分別為AT、BT、CT、DT,四個(gè)ABC節(jié)點(diǎn)依次為AA、BA、CA、DA。
整個(gè)系統(tǒng)的交易處理以及建塊流程為:
TBC節(jié)點(diǎn)收到交易之后,將向ABC節(jié)點(diǎn)獲取對(duì)應(yīng)的賬戶信息.
節(jié)點(diǎn)AT:根據(jù)交易獲取賬戶ID,向AA發(fā)出請(qǐng)求,獲取賬戶信息;
節(jié)點(diǎn)BT:根據(jù)交易獲取賬戶ID,向BA發(fā)出請(qǐng)求,獲取賬戶信息;
節(jié)點(diǎn)CT:根據(jù)交易獲取賬戶ID,向CA發(fā)出請(qǐng)求,獲取賬戶信息;
節(jié)點(diǎn)DT:根據(jù)交易獲取賬戶ID,向DA發(fā)出請(qǐng)求,獲取賬戶信息;
TBC節(jié)點(diǎn)獲取賬戶信息之后,在本地對(duì)交易進(jìn)行處理,對(duì)應(yīng)的賬戶信息也得到更新,將更新后的賬戶信息發(fā)送給與自己對(duì)應(yīng)的ABC節(jié)點(diǎn)。
節(jié)點(diǎn)AA:接收到AT發(fā)來(lái)的更新后的賬戶信息,作為一個(gè)交易存儲(chǔ)并處理,更新賬戶信息;
節(jié)點(diǎn)BA:接收到BT發(fā)來(lái)的更新后的賬戶信息,作為一個(gè)交易存儲(chǔ)并處理,更新賬戶信息;
節(jié)點(diǎn)CA:接收到CT發(fā)來(lái)的更新后的賬戶信息,作為一個(gè)交易存儲(chǔ)并處理,更新賬戶信息;
節(jié)點(diǎn)DA:接收到DT發(fā)來(lái)的更新后的賬戶信息,作為一個(gè)交易存儲(chǔ)并處理,更新賬戶信息;
TBC節(jié)點(diǎn)AT、BT、CT、DT利用一致性建塊算法建塊,存儲(chǔ)交易信息。
ABC節(jié)點(diǎn)AA、BA、CA、DA利用一致性建塊算法建塊,存儲(chǔ)賬戶信息。
本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。