本發(fā)明屬于信息技術(shù)領(lǐng)域,更為具體地講,涉及區(qū)塊鏈系統(tǒng)中一種基于業(yè)務(wù)信任度對(duì)共識(shí)進(jìn)行動(dòng)態(tài)調(diào)整的方法,以滿足數(shù)據(jù)透明共享的動(dòng)態(tài)需求,實(shí)現(xiàn)成本最小化。
背景技術(shù):
現(xiàn)有基于p2p(peertopeer)對(duì)等網(wǎng)絡(luò)的區(qū)塊鏈系統(tǒng)中,并未考慮業(yè)務(wù)系統(tǒng)本身的可信性,均基于參與節(jié)點(diǎn)完全不可信的前提,完全依賴區(qū)塊鏈提供信任機(jī)制,區(qū)塊鏈系統(tǒng)對(duì)所有業(yè)務(wù)采用固定的共識(shí)方案,數(shù)據(jù)必須對(duì)系統(tǒng)中的所有節(jié)點(diǎn)完全透明,這種固化的方案一方面對(duì)數(shù)據(jù)傳輸和存儲(chǔ)成本要求較高,另一方面違背了業(yè)務(wù)數(shù)據(jù)的隱私性。
而實(shí)際應(yīng)用中,業(yè)務(wù)系統(tǒng)具有一定的可信性,例如銀行、政務(wù)、大的企業(yè)集團(tuán)等,他們提供的業(yè)務(wù)對(duì)用戶而言是基本可信的,此時(shí)無(wú)需完全采用科技授信,所以對(duì)區(qū)塊鏈的信任依賴主要用于監(jiān)管、審計(jì)或自證清白。而某些應(yīng)用場(chǎng)景,如銀行之間的清結(jié)算、小貸行業(yè)聯(lián)盟等,需要業(yè)務(wù)協(xié)作方之間共享數(shù)據(jù)、進(jìn)行交互,這些協(xié)作方之間雖然是弱信任關(guān)系,但相比于完全不信任,參與節(jié)點(diǎn)故意搗亂的幾率較小,此時(shí)數(shù)據(jù)僅需對(duì)區(qū)塊鏈系統(tǒng)中的強(qiáng)相關(guān)業(yè)務(wù)方透明,再通過(guò)驗(yàn)證和共識(shí)達(dá)成可信存儲(chǔ)。
因此,有必要提供一種基于業(yè)務(wù)信任度對(duì)共識(shí)進(jìn)行動(dòng)態(tài)調(diào)整的方法,能根據(jù)業(yè)務(wù)信任度對(duì)共識(shí)進(jìn)行動(dòng)態(tài)調(diào)整,也能定制不同業(yè)務(wù)數(shù)據(jù)在區(qū)塊鏈系統(tǒng)中的共享透明程度。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提出一種基于業(yè)務(wù)信任度對(duì)共識(shí)進(jìn)行動(dòng)態(tài)調(diào)整的方法,實(shí)現(xiàn)對(duì)區(qū)塊鏈系統(tǒng)中的共識(shí)進(jìn)行動(dòng)態(tài)調(diào)整,使數(shù)據(jù)可只對(duì)指定節(jié)點(diǎn)透明,而對(duì)其他節(jié)點(diǎn)只共享相應(yīng)的哈希值,使區(qū)塊鏈系統(tǒng)既能提供信任機(jī)制,又達(dá)到最小化成本,保護(hù)業(yè)務(wù)數(shù)據(jù)隱私的目的。
為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明基于業(yè)務(wù)信任度對(duì)共識(shí)進(jìn)行動(dòng)態(tài)調(diào)整的方法,其特征在于,包括以下步驟:
(1)、對(duì)于弱信任及完全不可信的應(yīng)用場(chǎng)景,區(qū)塊鏈系統(tǒng)中的節(jié)點(diǎn)代表相互協(xié)作的各個(gè)業(yè)務(wù)方,在業(yè)務(wù)部署時(shí),為業(yè)務(wù)指定參與驗(yàn)證的節(jié)點(diǎn)集合和參與共識(shí)的節(jié)點(diǎn)集合:
1.1)、對(duì)于弱信任的應(yīng)用場(chǎng)景,驗(yàn)證節(jié)點(diǎn)集合由業(yè)務(wù)協(xié)作中的強(qiáng)相關(guān)業(yè)務(wù)方節(jié)點(diǎn)構(gòu)成,相互透明共享業(yè)務(wù)數(shù)據(jù),其中的節(jié)點(diǎn)稱之為驗(yàn)證節(jié)點(diǎn);而共識(shí)節(jié)點(diǎn)集合可包含其他非強(qiáng)相關(guān)業(yè)務(wù)方的節(jié)點(diǎn),但僅存放達(dá)成共識(shí)的操作結(jié)果hash值,其中的節(jié)點(diǎn)稱之為共識(shí)節(jié)點(diǎn);
1.2)、對(duì)于完全不可信的應(yīng)用場(chǎng)景,為獲得協(xié)作的方之間的相互信任,所有節(jié)點(diǎn)必須共享數(shù)據(jù),共同驗(yàn)證操作的合法性和正確性,再對(duì)操作結(jié)果hash值達(dá)成共識(shí)存儲(chǔ),即驗(yàn)證節(jié)點(diǎn)集合和共識(shí)節(jié)點(diǎn)集合都包含所有節(jié)點(diǎn);
(2)、對(duì)于弱信任及完全不可信的應(yīng)用場(chǎng)景,區(qū)塊鏈系統(tǒng)的工作流程為:
2.1)、業(yè)務(wù)系統(tǒng)向區(qū)塊鏈系統(tǒng)發(fā)送數(shù)據(jù)操作命令,接收命令的服務(wù)節(jié)點(diǎn)為該數(shù)據(jù)操作命令對(duì)應(yīng)業(yè)務(wù)的一個(gè)驗(yàn)證節(jié)點(diǎn);
2.2)、該驗(yàn)證節(jié)點(diǎn)首先驗(yàn)證數(shù)據(jù)操作命令的合法性和正確性,不同的業(yè)務(wù)驗(yàn)證過(guò)程不同,與具體業(yè)務(wù)相關(guān);如果驗(yàn)證成功,該驗(yàn)證節(jié)點(diǎn)將數(shù)據(jù)操作命令向驗(yàn)證節(jié)點(diǎn)集合中的其他節(jié)點(diǎn)發(fā)送,同時(shí)將該數(shù)據(jù)操作命令的操作結(jié)果hash值簽名后向共識(shí)節(jié)點(diǎn)集合中的所有節(jié)點(diǎn)發(fā)送;
其他驗(yàn)證節(jié)點(diǎn)收到數(shù)據(jù)操作命令,進(jìn)行同樣的驗(yàn)證過(guò)程,如果驗(yàn)證成功,也將自己的該數(shù)據(jù)操作命令的操作結(jié)果hash值簽名后向共識(shí)節(jié)點(diǎn)集合中的所有節(jié)點(diǎn)發(fā)送;
每個(gè)共識(shí)節(jié)點(diǎn)收集來(lái)自全部驗(yàn)證節(jié)點(diǎn)的操作結(jié)果hash值,進(jìn)行多數(shù)一致判定,將判定結(jié)果以自己的私鑰簽名再轉(zhuǎn)發(fā)給其他共識(shí)節(jié)點(diǎn);在此基礎(chǔ)上,所有共識(shí)節(jié)點(diǎn)再次進(jìn)行一致性判定,達(dá)到共識(shí)后存儲(chǔ),驗(yàn)證節(jié)點(diǎn)得到共識(shí)的正確反饋后更新自己的鏈下共享數(shù)據(jù)庫(kù)。
本發(fā)明的目的是這樣實(shí)現(xiàn)的。
本發(fā)明基于業(yè)務(wù)信任度對(duì)共識(shí)進(jìn)行動(dòng)態(tài)調(diào)整的方法,在區(qū)塊鏈系統(tǒng)中,將節(jié)點(diǎn)區(qū)分為驗(yàn)證節(jié)點(diǎn)和共識(shí)節(jié)點(diǎn),數(shù)據(jù)只需在驗(yàn)證節(jié)點(diǎn)之間透明共享,弱信任或完全不可信的業(yè)務(wù)通過(guò)指定參與驗(yàn)證和共識(shí)的節(jié)點(diǎn)集合,既能達(dá)到協(xié)作方的信任,又能保護(hù)業(yè)務(wù)數(shù)據(jù)的隱私。
與現(xiàn)有技術(shù)相比,本發(fā)明具體有以下有益效果:
1、現(xiàn)有區(qū)塊鏈系統(tǒng)采用的是一種固化不變的共識(shí)方案,以參與節(jié)點(diǎn)完全不可信任為前提,系統(tǒng)中所有節(jié)點(diǎn)必須擁有一份業(yè)務(wù)數(shù)據(jù)明文,在此基礎(chǔ)上才能達(dá)成信任。而本發(fā)明基于業(yè)務(wù)信任度對(duì)共識(shí)進(jìn)行動(dòng)態(tài)調(diào)整的方法,在區(qū)塊鏈系統(tǒng)中,通過(guò)結(jié)合業(yè)務(wù)信任、動(dòng)態(tài)調(diào)整共識(shí),使區(qū)塊鏈系統(tǒng)針對(duì)不同業(yè)務(wù)信任的應(yīng)用場(chǎng)景,降低了數(shù)據(jù)傳輸和存儲(chǔ)的全網(wǎng)普及要求,既能保證系統(tǒng)受信任,又能實(shí)現(xiàn)成本的最小化,使區(qū)塊鏈技術(shù)能被廣泛接受使用。
2、現(xiàn)有區(qū)塊鏈系統(tǒng)中的共識(shí)是一個(gè)單一過(guò)程,不能進(jìn)行分離,而本發(fā)明中將此過(guò)程明確分為兩個(gè)步驟:驗(yàn)證和共識(shí)。通過(guò)這樣的分離,使得需要透明共享明文數(shù)據(jù)的驗(yàn)證節(jié)點(diǎn)可以和只保存數(shù)據(jù)hash值的共識(shí)節(jié)點(diǎn)區(qū)分開(kāi)來(lái),成為本發(fā)明動(dòng)態(tài)調(diào)整共識(shí)方法的基礎(chǔ)。
附圖說(shuō)明
圖1是區(qū)塊鏈系統(tǒng)結(jié)構(gòu)示意圖;
圖2是本發(fā)明在弱信任及完全不可信應(yīng)用場(chǎng)景下區(qū)塊鏈系統(tǒng)與業(yè)務(wù)系統(tǒng)關(guān)系示意圖;
圖3是本發(fā)明在弱信任及完全不可信應(yīng)用場(chǎng)景下區(qū)塊鏈系統(tǒng)工作流程圖;
圖4是本發(fā)明在基本可信應(yīng)用場(chǎng)景下區(qū)塊鏈系統(tǒng)與業(yè)務(wù)系統(tǒng)關(guān)系示意圖;
圖5是本發(fā)明在基本可信應(yīng)用場(chǎng)景下區(qū)塊鏈系統(tǒng)工作流程圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式進(jìn)行描述,以便本領(lǐng)域的技術(shù)人員更好地理解本發(fā)明。需要特別提醒注意的是,在以下的描述中,當(dāng)已知功能和設(shè)計(jì)的詳細(xì)描述也許會(huì)淡化本發(fā)明的主要內(nèi)容時(shí),這些描述在這里將被忽略。
由于現(xiàn)有區(qū)塊鏈技術(shù)中固定不變的共識(shí)方法,數(shù)據(jù)必須在每個(gè)節(jié)點(diǎn)透明共享,使得整個(gè)區(qū)塊鏈網(wǎng)絡(luò)具有極大的傳輸和存儲(chǔ)壓力;而且,真實(shí)業(yè)務(wù)中,數(shù)據(jù)是一個(gè)業(yè)務(wù)方的核心價(jià)值所在,除了必須要進(jìn)行共享的內(nèi)容、以及必須要與之共享的對(duì)等業(yè)務(wù)方,業(yè)務(wù)方會(huì)強(qiáng)烈要求保持?jǐn)?shù)據(jù)的隱私性?,F(xiàn)有的強(qiáng)制透明共識(shí),將導(dǎo)致依賴區(qū)塊鏈的業(yè)務(wù)協(xié)作最終不能進(jìn)行。
本發(fā)明涉及的區(qū)塊鏈系統(tǒng)是一種基于p2p(peertopeer)對(duì)等網(wǎng)絡(luò),如圖1所示,區(qū)塊鏈系統(tǒng)由多個(gè)(n個(gè))對(duì)等節(jié)點(diǎn)連接而成,構(gòu)成網(wǎng)格網(wǎng)絡(luò),可根據(jù)業(yè)務(wù)信任,動(dòng)態(tài)定制區(qū)塊鏈系統(tǒng)的共識(shí)方式。
區(qū)塊鏈的本質(zhì)是采用科技手段提供信任機(jī)制,而實(shí)際應(yīng)用中,業(yè)務(wù)信任度本身存在著完全可信、基本可信、弱信任和完全不可信四個(gè)等級(jí)。因此,業(yè)務(wù)系統(tǒng)對(duì)區(qū)塊鏈提供的業(yè)務(wù)信任度具有彈性需求;此外,業(yè)務(wù)方也不希望區(qū)塊鏈系統(tǒng)中的其他業(yè)務(wù)方節(jié)點(diǎn)輕易獲取到自己的敏感數(shù)據(jù)。本發(fā)明的區(qū)塊鏈系統(tǒng)可結(jié)合業(yè)務(wù)信任的不同等級(jí)(業(yè)務(wù)信任度),動(dòng)態(tài)定制共識(shí)方案,既能滿足區(qū)塊鏈的受信任、防篡改、可追溯等特性,也能兼顧實(shí)際應(yīng)用中對(duì)數(shù)據(jù)隱私保護(hù)的需求。
為了達(dá)到以上要求,在本實(shí)施例中,本發(fā)明采用以下技術(shù)方案:首先,將區(qū)塊鏈系統(tǒng)中的節(jié)點(diǎn)區(qū)分為驗(yàn)證節(jié)點(diǎn)和共識(shí)節(jié)點(diǎn),數(shù)據(jù)只需在驗(yàn)證節(jié)點(diǎn)之間透明共享,弱信任或完全不可信的業(yè)務(wù)通過(guò)指定參與驗(yàn)證和共識(shí)的節(jié)點(diǎn)集合,既能達(dá)到協(xié)作方的信任,又能保護(hù)業(yè)務(wù)數(shù)據(jù)的隱私;其次,將區(qū)塊鏈系統(tǒng)中的數(shù)據(jù)鏈分離為鏈上數(shù)據(jù)和鏈下數(shù)據(jù),針對(duì)基本可信場(chǎng)景,只使用數(shù)據(jù)鏈存放鏈上數(shù)據(jù)hash值。
1、業(yè)務(wù)信任度為弱信任及完全不可信的應(yīng)用場(chǎng)景
對(duì)于弱信任及完全不可信的應(yīng)用場(chǎng)景,圖1所示區(qū)塊鏈系統(tǒng)中的節(jié)點(diǎn)代表了相互協(xié)作的各個(gè)業(yè)務(wù)方,在業(yè)務(wù)部署時(shí),在區(qū)塊鏈系統(tǒng)中為業(yè)務(wù)指定參與驗(yàn)證的節(jié)點(diǎn)集合和參與共識(shí)的節(jié)點(diǎn)集合。
具體到弱信任的應(yīng)用場(chǎng)景,驗(yàn)證節(jié)點(diǎn)集合由業(yè)務(wù)協(xié)作中的強(qiáng)相關(guān)業(yè)務(wù)方節(jié)點(diǎn)構(gòu)成,相互透明共享業(yè)務(wù)數(shù)據(jù),而共識(shí)節(jié)點(diǎn)集合可包含其他非強(qiáng)相關(guān)業(yè)務(wù)方的節(jié)點(diǎn),但僅存放達(dá)成共識(shí)的操作結(jié)果hash值。
而對(duì)于完全不可信的應(yīng)用場(chǎng)景,為獲得協(xié)作方之間的相互信任,所有節(jié)點(diǎn)必須共享數(shù)據(jù),共同驗(yàn)證操作的合法性和正確性,再對(duì)操作結(jié)果hash值達(dá)成共識(shí)存儲(chǔ),即驗(yàn)證節(jié)點(diǎn)集合和共識(shí)節(jié)點(diǎn)集合都包含所有節(jié)點(diǎn)。
在本實(shí)施例中,如圖2和圖3,這兩種情況下區(qū)塊鏈系統(tǒng)的工作流程如下:
步驟s101:業(yè)務(wù)系統(tǒng)向區(qū)塊鏈系統(tǒng)發(fā)送數(shù)據(jù)操作命令,接收命令的服務(wù)節(jié)點(diǎn)為該業(yè)務(wù)(數(shù)據(jù)操作命令對(duì)應(yīng)業(yè)務(wù))的一個(gè)驗(yàn)證節(jié)點(diǎn),如圖2中的節(jié)點(diǎn)1或節(jié)點(diǎn)3。該驗(yàn)證節(jié)點(diǎn)首先驗(yàn)證數(shù)據(jù)操作的合法性和正確性,不同的業(yè)務(wù)驗(yàn)證過(guò)程不同,與具體業(yè)務(wù)相關(guān)。
步驟s102:如果驗(yàn)證成功,該驗(yàn)證節(jié)點(diǎn)將操作命令向驗(yàn)證節(jié)點(diǎn)集合中的其他節(jié)點(diǎn)發(fā)送,同時(shí)將操作結(jié)果hash值簽名后向共識(shí)節(jié)點(diǎn)集合中的所有節(jié)點(diǎn)發(fā)送。
步驟s103:其他驗(yàn)證節(jié)點(diǎn)收到操作命令,進(jìn)行同樣的驗(yàn)證過(guò)程,如果驗(yàn)證成功,也將自己的操作結(jié)果hash值簽名后發(fā)送給所有共識(shí)節(jié)點(diǎn)。
步驟s104:每個(gè)共識(shí)節(jié)點(diǎn)收集來(lái)自全部驗(yàn)證節(jié)點(diǎn)的操作結(jié)果hash值,進(jìn)行多數(shù)一致判定,將判定結(jié)果以自己的私鑰簽名再轉(zhuǎn)發(fā)給其他共識(shí)節(jié)點(diǎn)。
步驟s105:在此基礎(chǔ)上,所有共識(shí)節(jié)點(diǎn)再次進(jìn)行一致性判定,達(dá)到共識(shí)后存儲(chǔ),驗(yàn)證節(jié)點(diǎn)得到共識(shí)的正確反饋后更新自己的鏈下共享數(shù)據(jù)庫(kù),如圖2中的節(jié)點(diǎn)1和節(jié)點(diǎn)3。
在本發(fā)明中,將區(qū)塊鏈系統(tǒng)中達(dá)成一致性的步驟區(qū)分為兩步:驗(yàn)證和共識(shí)。使用區(qū)塊鏈的業(yè)務(wù)需提前在區(qū)塊鏈系統(tǒng)中進(jìn)行部署,部署時(shí)指定參與驗(yàn)證的節(jié)點(diǎn)集合和參與共識(shí)的節(jié)點(diǎn)集合。針對(duì)弱信任的應(yīng)用場(chǎng)景,參與驗(yàn)證的節(jié)點(diǎn)集合局限于強(qiáng)相關(guān)業(yè)務(wù)方,并作為參與共識(shí)的節(jié)點(diǎn)集合的子集;而針對(duì)完全不可信的應(yīng)用場(chǎng)景,驗(yàn)證和共識(shí)的節(jié)點(diǎn)集合應(yīng)包含所有節(jié)點(diǎn)。弱信任、完全不可信以及強(qiáng)相關(guān)業(yè)務(wù)方等可以根據(jù)具體實(shí)施情況確定。
所述驗(yàn)證是指對(duì)發(fā)送到區(qū)塊鏈系統(tǒng)的數(shù)據(jù)操作進(jìn)行合法性和正確性的邏輯驗(yàn)證,必須基于數(shù)據(jù)明文進(jìn)行,所以數(shù)據(jù)必須在驗(yàn)證節(jié)點(diǎn)之間透明共享。
所述共識(shí)是指對(duì)驗(yàn)證成功之后的操作結(jié)果進(jìn)行一致性判定,當(dāng)大多數(shù)共識(shí)節(jié)點(diǎn)投票結(jié)果一樣則達(dá)成可信存儲(chǔ)。
所述部署是指當(dāng)業(yè)務(wù)要使用區(qū)塊鏈系統(tǒng)之前,對(duì)業(yè)務(wù)進(jìn)行定制和描述,即設(shè)置業(yè)務(wù)的名稱、驗(yàn)證節(jié)點(diǎn)集合、共識(shí)節(jié)點(diǎn)集合等信息。驗(yàn)證節(jié)點(diǎn)集合由一個(gè)或多個(gè)強(qiáng)相關(guān)業(yè)務(wù)方的節(jié)點(diǎn)構(gòu)成,共識(shí)節(jié)點(diǎn)集合除了包含驗(yàn)證節(jié)點(diǎn)集合之外,還可包含其他業(yè)務(wù)方的節(jié)點(diǎn),用以共識(shí)驗(yàn)證階段的操作結(jié)果hash值,所以業(yè)務(wù)數(shù)據(jù)無(wú)需對(duì)共識(shí)節(jié)點(diǎn)開(kāi)放透明。
區(qū)塊鏈系統(tǒng)中由服務(wù)節(jié)點(diǎn)接收外部(來(lái)自業(yè)務(wù)系統(tǒng))的數(shù)據(jù)操作命令,服務(wù)節(jié)點(diǎn)屬于該業(yè)務(wù)的驗(yàn)證節(jié)點(diǎn)集合。當(dāng)它收到數(shù)據(jù)操作命令后,首先對(duì)數(shù)據(jù)操作進(jìn)行邏輯驗(yàn)證,驗(yàn)證方法與具體業(yè)務(wù)相關(guān),如數(shù)字貨幣應(yīng)用需驗(yàn)證用戶余額是否足夠,同一貨幣是否被支付給兩個(gè)人(即雙花)。驗(yàn)證成功后,服務(wù)節(jié)點(diǎn)把數(shù)據(jù)操作命令明文和操作結(jié)果hash值廣播給其他的驗(yàn)證節(jié)點(diǎn),同時(shí)也把數(shù)據(jù)操作結(jié)果hash值廣播給該業(yè)務(wù)的所有共識(shí)節(jié)點(diǎn)。其他驗(yàn)證節(jié)點(diǎn)收到數(shù)據(jù)操作命令后,基于自己本地的數(shù)據(jù)備份,執(zhí)行驗(yàn)證工作,同樣也將操作結(jié)果hash值進(jìn)行廣播。所有節(jié)點(diǎn)監(jiān)聽(tīng)、收集其他節(jié)點(diǎn)的返回結(jié)果,進(jìn)入第二個(gè)步驟的共識(shí)過(guò)程。
所述區(qū)塊鏈系統(tǒng)由多個(gè)節(jié)點(diǎn)構(gòu)成,服務(wù)節(jié)點(diǎn)是某個(gè)業(yè)務(wù)驗(yàn)證節(jié)點(diǎn)集合中的任意一個(gè),可同時(shí)存在多個(gè)服務(wù)節(jié)點(diǎn),負(fù)責(zé)接收來(lái)自業(yè)務(wù)系統(tǒng)的數(shù)據(jù)操作命令。
某個(gè)業(yè)務(wù)的所有共識(shí)節(jié)點(diǎn)都要對(duì)接收到的操作結(jié)果hash值進(jìn)行共識(shí)。每個(gè)共識(shí)節(jié)點(diǎn)使用自己的私鑰對(duì)操作結(jié)果hash值進(jìn)行簽名,其他共識(shí)節(jié)點(diǎn)通過(guò)公鑰驗(yàn)簽,當(dāng)大多數(shù)共識(shí)節(jié)點(diǎn)投票結(jié)果一致則可達(dá)成該hash值的可信存儲(chǔ)。所有節(jié)點(diǎn)收集一段時(shí)間內(nèi)的多個(gè)hash值形成區(qū)塊、再構(gòu)成鏈。
所述共識(shí)節(jié)點(diǎn),也包含了同時(shí)擔(dān)當(dāng)驗(yàn)證節(jié)點(diǎn)角色的共識(shí)節(jié)點(diǎn)。
所述公、私鑰是指非對(duì)稱加密算法rsa的公鑰和私鑰,可用于表示每個(gè)節(jié)點(diǎn)身份。
所述大多數(shù)節(jié)點(diǎn)投票,是指至少超過(guò)半數(shù)共識(shí)節(jié)點(diǎn)廣播的hash值一樣,達(dá)成一致性的節(jié)點(diǎn)數(shù)目可配置。
2、業(yè)務(wù)信任度為基本可信的應(yīng)用場(chǎng)景
對(duì)于基本可信的應(yīng)用場(chǎng)景,圖1所示區(qū)塊鏈系統(tǒng)中的節(jié)點(diǎn)由業(yè)務(wù)方以及監(jiān)管方或?qū)徲?jì)方等業(yè)務(wù)相關(guān)方共同提供,僅存儲(chǔ)數(shù)據(jù)鏈的鏈上數(shù)據(jù)hash值,而鏈下數(shù)據(jù)明文則由業(yè)務(wù)系統(tǒng)自行保存在自己的鏈下數(shù)據(jù)庫(kù)中。
圖4展示了基本可信應(yīng)用場(chǎng)景下區(qū)塊鏈系統(tǒng)與業(yè)務(wù)系統(tǒng)交互關(guān)系。業(yè)務(wù)系統(tǒng)事先確定需要存放在區(qū)塊鏈上的數(shù)據(jù)內(nèi)容,并設(shè)計(jì)鏈下數(shù)據(jù)庫(kù)。在進(jìn)行業(yè)務(wù)操作的過(guò)程中,業(yè)務(wù)系統(tǒng)計(jì)算出每條鏈下數(shù)據(jù)明文記錄的hash值即鏈上數(shù)據(jù)hash值,通過(guò)調(diào)用區(qū)塊鏈的上鏈接口,將鏈上數(shù)據(jù)hash值傳送到區(qū)塊鏈系統(tǒng)進(jìn)行共識(shí)存儲(chǔ)。
結(jié)合圖4,如圖5所示,基本可信應(yīng)用場(chǎng)景下區(qū)塊鏈系統(tǒng)工作流程的步驟為:
步驟s201:區(qū)塊鏈系統(tǒng)由一個(gè)服務(wù)節(jié)點(diǎn)接收業(yè)務(wù)系統(tǒng)發(fā)送過(guò)來(lái)的鏈上數(shù)據(jù)hash值,用自己的私鑰簽名后廣播給其他所有節(jié)點(diǎn);
步驟s202:其他節(jié)點(diǎn)接收到服務(wù)節(jié)點(diǎn)發(fā)送的鏈上數(shù)據(jù)hash值之后,首先驗(yàn)證服務(wù)節(jié)點(diǎn)簽名,確認(rèn)該hash值確實(shí)是服務(wù)節(jié)點(diǎn)發(fā)送的消息,然后以自己的私鑰簽名后再次進(jìn)行轉(zhuǎn)發(fā)廣播。
步驟s203:每個(gè)節(jié)點(diǎn)都會(huì)收到其他n-1個(gè)節(jié)點(diǎn)發(fā)送的hash值備份,再加上自身保留的hash值,每個(gè)節(jié)點(diǎn)對(duì)n個(gè)hash值進(jìn)行多數(shù)一致判定,達(dá)成共識(shí)后存儲(chǔ)。
在本實(shí)施例中,業(yè)務(wù)信任度為基本可信的應(yīng)用場(chǎng)景,僅對(duì)數(shù)據(jù)鏈的鏈上數(shù)據(jù)hash值進(jìn)行共識(shí),僅支持?jǐn)?shù)據(jù)的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),將鏈下數(shù)據(jù)與鏈上數(shù)據(jù)分離。在業(yè)務(wù)基本可信的情況下,業(yè)務(wù)系統(tǒng)通過(guò)上鏈接口將鏈下數(shù)據(jù)對(duì)應(yīng)的鏈上數(shù)據(jù)hash值傳送給區(qū)塊鏈系統(tǒng),系統(tǒng)中的所有節(jié)點(diǎn)對(duì)鏈上數(shù)據(jù)hash值達(dá)成共識(shí)后存儲(chǔ),并收集一段時(shí)間內(nèi)的多個(gè)鏈上數(shù)據(jù)hash值形成區(qū)塊、再構(gòu)成鏈。
區(qū)塊鏈系統(tǒng)由多個(gè)對(duì)等節(jié)點(diǎn)構(gòu)成分布式網(wǎng)絡(luò),節(jié)點(diǎn)相互通信達(dá)成數(shù)據(jù)的一致性后,采用鏈?zhǔn)浇Y(jié)構(gòu)存儲(chǔ)。
所述鏈下數(shù)據(jù)是指業(yè)務(wù)相關(guān)的明文數(shù)據(jù)。
所述鏈上數(shù)據(jù)hash值是指針對(duì)每條明文數(shù)據(jù)的hash值。
所述鏈下數(shù)據(jù)與鏈上數(shù)據(jù)分離,是指鏈下數(shù)據(jù)存放在業(yè)務(wù)系統(tǒng)的私有數(shù)據(jù)庫(kù)中,而對(duì)應(yīng)的鏈上數(shù)據(jù)hash值由區(qū)塊鏈系統(tǒng)的每個(gè)節(jié)點(diǎn)存放,明文數(shù)據(jù)不會(huì)在區(qū)塊鏈系統(tǒng)的節(jié)點(diǎn)間透明。
所述共識(shí)由區(qū)塊鏈系統(tǒng)中的每個(gè)節(jié)點(diǎn)參與,對(duì)接收到的鏈上數(shù)據(jù)hash值進(jìn)行一致性判定,大多數(shù)節(jié)點(diǎn)投票達(dá)成一致后存儲(chǔ),大多數(shù)節(jié)點(diǎn)數(shù)量根據(jù)具體實(shí)施情況確定。
所述區(qū)塊包含一個(gè)區(qū)塊頭,記錄了前一個(gè)區(qū)塊的hash值、塊中所有數(shù)據(jù)hash值的merkle根、塊中數(shù)據(jù)hash值的起始索引、塊號(hào)、時(shí)間戳。
盡管上面對(duì)本發(fā)明說(shuō)明性的具體實(shí)施方式進(jìn)行了描述,以便于本技術(shù)領(lǐng)域的技術(shù)人員理解本發(fā)明,但應(yīng)該清楚,本發(fā)明不限于具體實(shí)施方式的范圍,對(duì)本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)講,只要各種變化在所附的權(quán)利要求限定和確定的本發(fā)明的精神和范圍內(nèi),這些變化是顯而易見(jiàn)的,一切利用本發(fā)明構(gòu)思的發(fā)明創(chuàng)造均在保護(hù)之列。