本發(fā)明涉及區(qū)塊鏈技術(shù)領(lǐng)域,尤其涉及一種區(qū)塊鏈網(wǎng)絡(luò)、物品交易方法、裝置及節(jié)點(diǎn)設(shè)備。
背景技術(shù):
目前,區(qū)塊鏈技術(shù)正在越來越廣泛的被應(yīng)用,不管是貨幣,虛擬物品,房產(chǎn),股票等等都正在嘗試用區(qū)塊鏈來記錄,使交易變得發(fā)明透明,去中心化。
區(qū)塊鏈網(wǎng)絡(luò)基于P2P(Peer to Peer,對等網(wǎng)絡(luò))網(wǎng)絡(luò),每個(gè)參與交易、區(qū)塊存儲(chǔ)、區(qū)塊驗(yàn)證或轉(zhuǎn)發(fā)的P2P網(wǎng)絡(luò)節(jié)點(diǎn)都是一個(gè)區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點(diǎn)。節(jié)點(diǎn)之間數(shù)據(jù)交換通過數(shù)字簽名技術(shù)進(jìn)行驗(yàn)證,無需互相信任,只要按照系統(tǒng)既定的規(guī)則進(jìn)行,節(jié)點(diǎn)之間不能也無法欺騙其它節(jié)點(diǎn)。
現(xiàn)有技術(shù)中,全區(qū)塊鏈網(wǎng)絡(luò)所有的數(shù)據(jù)信息(例如,交易記錄、虛擬物品信息、房產(chǎn)信息、貨幣信息等),都存儲(chǔ)在唯一的區(qū)塊鏈中。區(qū)塊鏈由包含數(shù)據(jù)信息的多個(gè)區(qū)塊從后向前有序鏈接起來的數(shù)據(jù)結(jié)構(gòu),每個(gè)區(qū)塊都指向前一個(gè)區(qū)塊。當(dāng)一條新數(shù)據(jù)信息產(chǎn)生時(shí),由節(jié)點(diǎn)傳遞至區(qū)塊鏈網(wǎng)絡(luò)后,只有被一個(gè)稱為挖礦的過程驗(yàn)證且加到一個(gè)區(qū)塊中之后,這個(gè)數(shù)據(jù)信息即成為區(qū)塊鏈的一部分。每個(gè)區(qū)塊中包含著從上一個(gè)區(qū)塊產(chǎn)生到目前這段時(shí)間內(nèi)發(fā)生的所有數(shù)據(jù)信息。
現(xiàn)有技術(shù)中,由于,只有一條區(qū)塊鏈,隨著時(shí)間的遷移,區(qū)塊鏈的高度越來越高,從而導(dǎo)致查詢、匯總效率低等問題。
技術(shù)實(shí)現(xiàn)要素:
為克服相關(guān)技術(shù)中存在的問題,本發(fā)明提供一種區(qū)塊鏈網(wǎng)絡(luò)、物品交易方法、裝置及節(jié)點(diǎn)設(shè)備。
第一方面,本發(fā)明提供一種物品交易方法,包括:
將預(yù)設(shè)物品的交易請求發(fā)送給所述預(yù)設(shè)物品交易所涉及的區(qū)塊鏈中的授權(quán)節(jié)點(diǎn);
分別接收各個(gè)授權(quán)節(jié)點(diǎn)根據(jù)接收到的交易請求獲取的交易驗(yàn)證信息;
根據(jù)所述交易驗(yàn)證信息,獲取驗(yàn)證結(jié)果;
將驗(yàn)證結(jié)果發(fā)送給各個(gè)授權(quán)節(jié)點(diǎn),所述驗(yàn)證結(jié)果用于供各個(gè)授權(quán)節(jié)點(diǎn)對所述預(yù)設(shè)物品的交易進(jìn)行確認(rèn)或取消。
第二方面,提供一種物品交易裝置,包括:
第一交易請求發(fā)送模塊,被配置為將預(yù)設(shè)物品的交易請求發(fā)送給所述預(yù)設(shè)物品交易所涉及的區(qū)塊鏈中的授權(quán)節(jié)點(diǎn);
交易驗(yàn)證信息接收模塊,被配置為分別接收各個(gè)授權(quán)節(jié)點(diǎn)根據(jù)接收到的交易請求獲取的交易驗(yàn)證信息;
驗(yàn)證結(jié)果獲取模塊,被配置為根據(jù)所述交易驗(yàn)證信息,獲取驗(yàn)證結(jié)果;
發(fā)送模塊,被配置為將驗(yàn)證結(jié)果發(fā)送給各個(gè)授權(quán)節(jié)點(diǎn),所述驗(yàn)證結(jié)果用于供各個(gè)授權(quán)節(jié)點(diǎn)對所述預(yù)設(shè)物品的交易進(jìn)行確認(rèn)或取消。
第三方面,提供一種節(jié)點(diǎn)設(shè)備,包括:
處理器;
用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;
其中,所述處理器被配置為:將預(yù)設(shè)物品的交易請求發(fā)送給所述預(yù)設(shè)物品交易所涉及的區(qū)塊鏈中的授權(quán)節(jié)點(diǎn);分別接收各個(gè)授權(quán)節(jié)點(diǎn)根據(jù)接收到的交易請求獲取的交易驗(yàn)證信息;根據(jù)所述交易驗(yàn)證信息,獲取驗(yàn)證結(jié)果;將驗(yàn)證結(jié)果發(fā)送給各個(gè)授權(quán)節(jié)點(diǎn),所述驗(yàn)證結(jié)果用于供各個(gè)授權(quán)節(jié)點(diǎn)對所述預(yù)設(shè)物品的交易進(jìn)行確認(rèn)或取消。
第四方面,提供一種區(qū)塊鏈網(wǎng)絡(luò),包括:
至少兩條區(qū)塊鏈,每條區(qū)塊鏈中包括多個(gè)具有相同物品的交易權(quán)限的授權(quán)節(jié)點(diǎn);
兩條或兩條以上區(qū)塊鏈中的相同授權(quán)節(jié)點(diǎn)為共有節(jié)點(diǎn);其中,
所述共有節(jié)點(diǎn),被配置為將預(yù)設(shè)物品的交易請求發(fā)送給所述預(yù)設(shè)物品交易所涉及的區(qū)塊鏈中的授權(quán)節(jié)點(diǎn),以及分別接收各個(gè)授權(quán)節(jié)點(diǎn)根據(jù)接收到的交易請求獲取的交易驗(yàn)證信息,并根據(jù)所述交易驗(yàn)證信息,獲取驗(yàn)證結(jié)果后發(fā)送給各個(gè)授權(quán)節(jié)點(diǎn),所述驗(yàn)證結(jié)果用于供各個(gè)授權(quán)節(jié)點(diǎn)對所述預(yù)設(shè)物品的交易進(jìn)行確認(rèn)或取消。
第五方面,提供一種計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包含能夠由可編程的裝置執(zhí)行的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序具有當(dāng)由所述可編程的裝置執(zhí)行時(shí)用于執(zhí)行上述物品交易方法的代碼部分。
第六方面,提供一種非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中包括一個(gè)或多個(gè)程序,所述一個(gè)或多個(gè)程序用于執(zhí)行上述物品交易方法。
第七方面,提供一種節(jié)點(diǎn)設(shè)備,包括:上述的非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì);以及一個(gè)或者多個(gè)處理器,用于執(zhí)行所述非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中的程序。
本發(fā)明的實(shí)施例提供的技術(shù)方案可以包括以下有益效果:通過將單類物品單獨(dú)為一條區(qū)塊鏈,且同在兩條或多條區(qū)塊鏈中的節(jié)點(diǎn)作為共有節(jié)點(diǎn),使區(qū)塊形成一個(gè)平面的網(wǎng)狀結(jié)構(gòu),降低單條區(qū)塊鏈的長度,降低每個(gè)節(jié)點(diǎn)的數(shù)據(jù)量;可提高區(qū)塊鏈的查詢效率;提高單類物品的匯總和統(tǒng)計(jì)效率;提高并發(fā)性;不同的物品對應(yīng)不同的區(qū)塊鏈,在交易確認(rèn)過程中,通過多條區(qū)塊鏈中節(jié)點(diǎn)的共同驗(yàn)證,得到驗(yàn)證結(jié)果,從而保證了交易的安全性,可避免多條區(qū)塊鏈中的交易不同步或交易漏洞,提升交易的可靠性。
應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本發(fā)明。
本發(fā)明的其他特征和優(yōu)點(diǎn)將在隨后的具體實(shí)施方式部分予以詳細(xì)說明。
附圖說明
此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本發(fā)明的實(shí)施例,并與說明書一起用于解釋本發(fā)明的原理。
圖1是本發(fā)明一實(shí)施例的區(qū)塊鏈網(wǎng)絡(luò)結(jié)構(gòu)示意圖;
圖2是本發(fā)明一實(shí)施例的物品交易方法的流程示意圖;
圖3是本發(fā)明一實(shí)施例的一區(qū)塊鏈中的節(jié)點(diǎn)設(shè)備的結(jié)構(gòu)示意圖;
圖4是本發(fā)明一實(shí)施例的電子票交易涉及的區(qū)塊鏈鏈網(wǎng)絡(luò)的結(jié)構(gòu)示意圖;
圖5是本發(fā)明一實(shí)施例的電子票交易流程示意圖;
圖6是本發(fā)明一實(shí)施例的物品交易裝置的結(jié)構(gòu)示意圖;
圖7是根據(jù)一示例性實(shí)施例示出的一種用于物品交易方法的裝置的框圖。
具體實(shí)施方式
以下結(jié)合附圖對本發(fā)明的具體實(shí)施方式進(jìn)行詳細(xì)說明。應(yīng)當(dāng)理解的是,此處所描述的具體實(shí)施方式僅用于說明和解釋本發(fā)明,并不用于限制本發(fā)明。
參見圖1,為本發(fā)明一實(shí)施例的區(qū)塊鏈網(wǎng)絡(luò)結(jié)構(gòu)示意圖。
區(qū)塊鏈網(wǎng)絡(luò)100中包括多個(gè)節(jié)點(diǎn)(節(jié)點(diǎn)101、節(jié)點(diǎn)103、節(jié)點(diǎn)104、節(jié)點(diǎn)105、節(jié)點(diǎn)107、節(jié)點(diǎn)109、……)。節(jié)點(diǎn)可為智能電話、平板電腦、服務(wù)器、具有嵌入式系統(tǒng)的電子設(shè)備等。
在本發(fā)明的實(shí)施例中,節(jié)點(diǎn)包括:普通區(qū)塊鏈節(jié)點(diǎn)和授權(quán)節(jié)點(diǎn)。其中,授權(quán)節(jié)點(diǎn)具有相應(yīng)的控制中心賦予的預(yù)設(shè)物品的交易權(quán)限。在一些實(shí)施例中,授權(quán)節(jié)點(diǎn)還可具備普通區(qū)塊鏈節(jié)點(diǎn)的屬性。例如,對于電子門票這一預(yù)設(shè)物品,其控制中心(例如,電子門票的官方服務(wù)器或節(jié)點(diǎn))可通過主動(dòng)授權(quán)的方式,或者接收節(jié)點(diǎn)注冊請求的方式,對可信任的節(jié)點(diǎn)進(jìn)行授權(quán),使其成為授權(quán)節(jié)點(diǎn)。
在本發(fā)明的實(shí)施例中,將每類預(yù)設(shè)物品單獨(dú)形成一條區(qū)塊鏈,該預(yù)設(shè)物品的授權(quán)節(jié)點(diǎn)可參與該區(qū)塊鏈的交易、區(qū)塊存儲(chǔ)、區(qū)塊驗(yàn)證、區(qū)塊轉(zhuǎn)發(fā)等。
在本發(fā)明的實(shí)施例中,網(wǎng)絡(luò)100中的一些授權(quán)節(jié)點(diǎn)可同時(shí)獲得至少兩個(gè)控制中心的授權(quán),由此,該授權(quán)節(jié)點(diǎn)可同時(shí)參與針對多個(gè)物品的區(qū)塊鏈的交易、區(qū)塊存儲(chǔ)、區(qū)塊驗(yàn)證、區(qū)塊轉(zhuǎn)發(fā)等工作,存儲(chǔ)至少兩條區(qū)塊鏈。
在本發(fā)明的實(shí)施例中,兩條或兩條以上區(qū)塊鏈中的相同授權(quán)節(jié)點(diǎn)作為共有節(jié)點(diǎn)。由于共有節(jié)點(diǎn)至少具有兩條區(qū)塊鏈,因此,共有節(jié)點(diǎn)至少與兩條區(qū)塊鏈的中節(jié)點(diǎn)相鄰。參見圖1,節(jié)點(diǎn)103、節(jié)點(diǎn)105、節(jié)點(diǎn)107和節(jié)點(diǎn)109均為共有節(jié)點(diǎn)。節(jié)點(diǎn)103分別與區(qū)塊鏈1的節(jié)點(diǎn)101和節(jié)點(diǎn)107相鄰,且節(jié)點(diǎn)103與區(qū)塊鏈2中的節(jié)點(diǎn)104和節(jié)點(diǎn)109相鄰。節(jié)點(diǎn)103(共有節(jié)點(diǎn))可接收到節(jié)點(diǎn)101廣播的信息,或向節(jié)點(diǎn)101廣播信息。節(jié)點(diǎn)103還可接收到節(jié)點(diǎn)104廣播的信息,或向節(jié)點(diǎn)104廣播信息。
在本發(fā)明的實(shí)施例中,可實(shí)現(xiàn)針對不同的物品,生成不同的區(qū)塊鏈,降低單條區(qū)塊鏈的長度,且可降低單個(gè)節(jié)點(diǎn)的數(shù)據(jù)量;可提高區(qū)塊鏈的查詢效率;提高單類物品的匯總和統(tǒng)計(jì)效率;由于多條區(qū)塊鏈可分別同時(shí)進(jìn)行寫入,提高并發(fā)性。
參見圖2,為本發(fā)明一實(shí)施例的物品交易方法的流程示意圖。該方法應(yīng)用于共有節(jié)點(diǎn),包括以下步驟:
在步驟201中,將預(yù)設(shè)物品的交易請求發(fā)送給所述預(yù)設(shè)物品交易所涉及的區(qū)塊鏈中的授權(quán)節(jié)點(diǎn)。
當(dāng)有物品交易需求時(shí),產(chǎn)生交易請求。交易請求包括:交易物品信息、交易雙方信息和交易金額等。交易雙方信息包括:身份信息、賬戶信息(包括賬戶余額、賬戶名等)。
在本發(fā)明的一實(shí)施例中,交易發(fā)起方為共有節(jié)點(diǎn),其可將交易請求發(fā)布到相鄰的節(jié)點(diǎn)。這些與共有節(jié)點(diǎn)相鄰的節(jié)點(diǎn)包括不同區(qū)塊鏈中的節(jié)點(diǎn)。接收到交易請求的節(jié)點(diǎn)進(jìn)行交易驗(yàn)證。
在步驟202中,分別接收各個(gè)授權(quán)節(jié)點(diǎn)根據(jù)接收到的交易請求獲取的交易驗(yàn)證信息。
在一實(shí)施例中,當(dāng)節(jié)點(diǎn)進(jìn)行交易驗(yàn)證時(shí),若節(jié)點(diǎn)不具備處理交易請求的權(quán)限,則可將交易請求丟棄,不進(jìn)行轉(zhuǎn)發(fā)和進(jìn)一步的驗(yàn)證,從而減少數(shù)據(jù)處理量。交易驗(yàn)證可包括對以下信息的驗(yàn)證:交易金額、交易物品、交易雙方信息。其中,由于物品的交易權(quán)限授權(quán)給了相應(yīng)的授權(quán)節(jié)點(diǎn),因此,節(jié)點(diǎn)可根據(jù)交易請求中的交易物品,確定是否具備處理該交易請求的權(quán)限。
在本發(fā)明的一實(shí)施例中,節(jié)點(diǎn)接收到交易請求,確定具有處理權(quán)限后,進(jìn)一步對交易的可行性進(jìn)行驗(yàn)證。若交易請求僅涉及到單一物品的交易,則只有與其相關(guān)的一條區(qū)塊鏈中的節(jié)點(diǎn)會(huì)對該交易請求進(jìn)行驗(yàn)證。例如,驗(yàn)證交易物品是否有效、交易雙方是否符合條件。應(yīng)理解,交易物品是否有效的驗(yàn)證可通過查詢的交易記錄的方式進(jìn)行,從區(qū)塊鏈的區(qū)塊中獲取物品的交易記錄,根據(jù)交易記錄確定物品是否有效,例如,若物品已被交易過、已有使用記錄或者物品不存在等,則物品無效;物品未被交易過,且未有使用記錄,則物品有效。
若交易請求涉及到兩種或兩種以上的物品的交易,則交易請求將分別由與物品相關(guān)的多條區(qū)塊鏈中的節(jié)點(diǎn)分別進(jìn)行驗(yàn)證。例如,對于電子票的交易,其涉及到電子票和貨幣這兩種虛擬物品的交易,則電子票對應(yīng)的區(qū)塊鏈對電子票進(jìn)行驗(yàn)證(例如,驗(yàn)證電子票是否有效),貨幣對應(yīng)的區(qū)塊鏈對貨幣進(jìn)行驗(yàn)證(例如,驗(yàn)證支付方的賬戶余額是否足夠、收款方的賬戶名是否有效等)。
在本發(fā)明的實(shí)施例中,授權(quán)節(jié)點(diǎn)進(jìn)行交易驗(yàn)證后,廣播交易驗(yàn)證信息,由此,共有節(jié)點(diǎn)可接收到交易驗(yàn)證信息。交易驗(yàn)證信息包括交易驗(yàn)證成功或交易驗(yàn)證失敗。
在步驟203中,根據(jù)交易驗(yàn)證信息,獲取驗(yàn)證結(jié)果。
在實(shí)際中,各個(gè)授權(quán)節(jié)點(diǎn)的狀況不同,可能存在某些節(jié)點(diǎn)并不能按時(shí)返回驗(yàn)證信息的情況。如授權(quán)節(jié)點(diǎn)處于關(guān)機(jī)或死機(jī)等無法響應(yīng)的狀態(tài),則這些授權(quán)節(jié)點(diǎn)不會(huì)返回驗(yàn)證信息。共有節(jié)點(diǎn),存儲(chǔ)有所在區(qū)塊鏈中的授權(quán)節(jié)點(diǎn)數(shù)量,其可根據(jù)接收到的驗(yàn)證信息,確定驗(yàn)證信息為驗(yàn)證成功的授權(quán)節(jié)點(diǎn)所占的比例。應(yīng)理解,共有節(jié)點(diǎn)也將進(jìn)行交易驗(yàn)證,得到驗(yàn)證成功或驗(yàn)證失敗的交易驗(yàn)證信息,且由于共有節(jié)點(diǎn)可涉及兩條或兩條以上的區(qū)塊鏈,因此,其進(jìn)行交易驗(yàn)證時(shí),將對交易涉及的物品中其具有授權(quán)權(quán)限的物品均進(jìn)行驗(yàn)證。
若共有節(jié)點(diǎn)所在的一區(qū)塊鏈中有N個(gè)授權(quán)節(jié)點(diǎn)(包括該共有節(jié)點(diǎn)),共有節(jié)點(diǎn)根據(jù)驗(yàn)證信息,獲取驗(yàn)證成功的授權(quán)節(jié)點(diǎn)的個(gè)數(shù)N1,以及驗(yàn)證失敗的授權(quán)節(jié)點(diǎn)(在一個(gè)實(shí)施例中,可將未返回驗(yàn)證信息的節(jié)點(diǎn)也作為驗(yàn)證失敗的授權(quán)節(jié)點(diǎn))的個(gè)數(shù)N2。由此,若驗(yàn)證成功的節(jié)點(diǎn)數(shù)N1所占的比例高于預(yù)設(shè)閾值(即N1/N的值高于預(yù)設(shè)閾值),則該條區(qū)塊鏈的驗(yàn)證結(jié)果標(biāo)記為驗(yàn)證成功;否則,該條區(qū)塊鏈的驗(yàn)證結(jié)果標(biāo)記為驗(yàn)證失敗。在一個(gè)實(shí)施例中,預(yù)設(shè)閾值可為90%~95%。
在步驟204中,將驗(yàn)證結(jié)果發(fā)送給各個(gè)授權(quán)節(jié)點(diǎn)。
在本發(fā)明的實(shí)施例中,若交易涉及的每條區(qū)塊鏈的驗(yàn)證結(jié)果被標(biāo)記為驗(yàn)證成功,則共有節(jié)點(diǎn)廣播驗(yàn)證成功的驗(yàn)證結(jié)果給授權(quán)節(jié)點(diǎn)。在一個(gè)實(shí)施例中,共有節(jié)點(diǎn)在廣播驗(yàn)證成功的驗(yàn)證結(jié)果時(shí),同時(shí)攜帶交易驗(yàn)證成功的授權(quán)節(jié)點(diǎn)數(shù)和交易驗(yàn)證失敗的授權(quán)節(jié)點(diǎn)數(shù),以便于問題的追蹤。
若有任一條區(qū)塊鏈的驗(yàn)證結(jié)果被標(biāo)記為驗(yàn)證失敗,則共有節(jié)點(diǎn)廣播驗(yàn)證失敗的驗(yàn)證結(jié)果給授權(quán)節(jié)點(diǎn)。同樣的,為了便于問題的追蹤,在一個(gè)實(shí)施例中,共有節(jié)點(diǎn)在廣播驗(yàn)證失敗的信息時(shí),同時(shí)攜帶交易驗(yàn)證成功的授權(quán)節(jié)點(diǎn)數(shù)和交易驗(yàn)證失敗的授權(quán)節(jié)點(diǎn)數(shù)。
在本發(fā)明的實(shí)施例中,若一交易涉及的兩條或兩條以上的區(qū)塊鏈中共有M個(gè)共有節(jié)點(diǎn),則每個(gè)授權(quán)節(jié)點(diǎn)都將接收到M個(gè)驗(yàn)證結(jié)果。應(yīng)理解,任一共有節(jié)點(diǎn)也將接收到其它M-1個(gè)共有節(jié)點(diǎn)發(fā)送的驗(yàn)證結(jié)果,再加上自己的驗(yàn)證結(jié)果,其也獲得M個(gè)驗(yàn)證結(jié)果。為了確保交易的安全性,授權(quán)節(jié)點(diǎn)在接收到共有節(jié)點(diǎn)發(fā)送的驗(yàn)證結(jié)果時(shí),在發(fā)送的驗(yàn)證結(jié)果為驗(yàn)證成功的共有節(jié)點(diǎn)的數(shù)量,超過預(yù)設(shè)閾值比例(如80%)時(shí),則確認(rèn)交易。而如果驗(yàn)證成功的共有節(jié)點(diǎn)的數(shù)量未達(dá)到預(yù)設(shè)閾值比例(如80%),則取消交易。
在本發(fā)明的一實(shí)施例中,若授權(quán)節(jié)點(diǎn)中具有“礦工”功能的節(jié)點(diǎn)確認(rèn)了交易,則其通過運(yùn)行在特殊硬件設(shè)備上的預(yù)設(shè)算法(例如,工作量證明算法),以相互競爭的方式創(chuàng)建新的區(qū)塊。求得解的“礦工”,將結(jié)果放進(jìn)新區(qū)塊的區(qū)塊頭,而新區(qū)塊的區(qū)塊主體中包含交易信息(例如,交易時(shí)間、交易金額、交易物品信息、交易雙方信息等)。該新區(qū)塊被發(fā)送給求得解的“礦工”的所有相鄰節(jié)點(diǎn)。這些節(jié)點(diǎn)在接收并驗(yàn)證這個(gè)新區(qū)塊后,也會(huì)繼續(xù)傳遞此區(qū)塊。當(dāng)該新區(qū)塊所包含的交易有效,且計(jì)算結(jié)果正確時(shí),每個(gè)節(jié)點(diǎn)將該區(qū)塊加到自身節(jié)點(diǎn)的區(qū)塊鏈副本中。
在本發(fā)明另一實(shí)施例中,若交易涉及到多條區(qū)塊鏈,而交易請求是一區(qū)塊鏈中的任一授權(quán)節(jié)點(diǎn)(非共有節(jié)點(diǎn))發(fā)出的,則接收到交易請求的共有節(jié)點(diǎn),將該交易請求發(fā)送給預(yù)設(shè)物品交易所涉及的其它區(qū)塊鏈中的節(jié)點(diǎn),使得交易請求可被發(fā)布到所涉及的所有區(qū)塊鏈中的節(jié)點(diǎn)。
本發(fā)明實(shí)施例的交易方法,不同的物品對應(yīng)不同的區(qū)塊鏈,在交易確認(rèn)過程中,通過多條區(qū)塊鏈中節(jié)點(diǎn)的共同驗(yàn)證,得到驗(yàn)證結(jié)果,從而保證了交易的安全性,可避免多條區(qū)塊鏈中的交易不同步或交易漏洞,提升交易的可靠性。
參見圖3,為本發(fā)明一實(shí)施例的一區(qū)塊鏈中的節(jié)點(diǎn)設(shè)備的結(jié)構(gòu)示意圖。該節(jié)點(diǎn)設(shè)備300包括:處理組件301、存儲(chǔ)組件302、通信組件303和電源組件304。處理組件301可進(jìn)一步包括一個(gè)或多個(gè)處理器。存儲(chǔ)組件302用于存儲(chǔ)可由處理組件1922的執(zhí)行的指令,例如應(yīng)用程序。存儲(chǔ)組件302中存儲(chǔ)的應(yīng)用程序可以包括一個(gè)或一個(gè)以上的每一個(gè)對應(yīng)于一組指令的模塊。存儲(chǔ)組件302還用于存儲(chǔ)區(qū)塊鏈。此外,處理組件301被配置為執(zhí)行指令,以執(zhí)行上述交易方法,進(jìn)行交易驗(yàn)證、生成新區(qū)塊等。
電源組件304被配置為執(zhí)行節(jié)點(diǎn)設(shè)備300的電源管理。通信組件303被配置為將節(jié)點(diǎn)設(shè)備300連接到網(wǎng)絡(luò),進(jìn)行通信。節(jié)點(diǎn)設(shè)備300可以操作基于存儲(chǔ)在存儲(chǔ)組件302中的操作系統(tǒng),例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,F(xiàn)reeBSDTM或類似。
參見圖4和圖5,本發(fā)明一實(shí)施例中,以電子票的交易為例,對本發(fā)明實(shí)施例的多區(qū)塊鏈的交易過程進(jìn)行說明。由于電子票的交易涉及到電子票和貨幣兩種虛擬物品,因此,需要涉及到電子票區(qū)塊鏈和貨幣區(qū)塊鏈。
參見圖4,電子票的控制中心400,通過授權(quán)或接收節(jié)點(diǎn)注冊的方式,確定多個(gè)授權(quán)節(jié)點(diǎn)。這些授權(quán)節(jié)點(diǎn)(402、404、406、……)中的每一個(gè)均參與電子票區(qū)塊鏈的存儲(chǔ)、轉(zhuǎn)發(fā)、區(qū)塊的建立等等。電子票區(qū)塊鏈中的區(qū)塊中記錄有電子票的信息和交易記錄等。
在一個(gè)實(shí)施例中,控制中心400可不為區(qū)塊鏈中的節(jié)點(diǎn),其將確定的電子票的生成策略,通過點(diǎn)對點(diǎn)或廣播的方式發(fā)送到各授權(quán)節(jié)點(diǎn)。各授權(quán)節(jié)點(diǎn)根據(jù)生成策略進(jìn)行電子票的生成。電子票的生成策略可包括:初始信息、生成時(shí)間和生成張數(shù)。例如,一電子票的生成策略為:生成時(shí)間為每周五18:00;生成張數(shù)為5萬張;初始信息包括:使用地點(diǎn)唯一名稱(例如,上海迪士尼)、此地點(diǎn)唯一票號(例如,2016080000001)、門票種類(例如,成人票)、有效期(例如,2016年8月31日)和交易價(jià)格(例如,¥499)等。
各授權(quán)節(jié)點(diǎn)根據(jù)生成策略,在設(shè)定的生成時(shí)間,添加5萬個(gè)結(jié)構(gòu)體,每個(gè)結(jié)構(gòu)體中包含如上初始信息。由此,每個(gè)授權(quán)節(jié)點(diǎn)都保存了5萬張電子票的信息。應(yīng)理解,該5萬張電子票的信息可存儲(chǔ)到各個(gè)授權(quán)節(jié)點(diǎn)的本地存儲(chǔ)空間,或者授權(quán)節(jié)點(diǎn)通過新生成的多個(gè)區(qū)塊對電子票的信息進(jìn)行存儲(chǔ)。
同樣的,貨幣的控制中心401,通過授權(quán)或接收節(jié)點(diǎn)注冊的方式,確定多個(gè)節(jié)點(diǎn),這些節(jié)點(diǎn)(403、405、407、……)中每一個(gè)均參與貨幣區(qū)塊鏈的存儲(chǔ)、轉(zhuǎn)發(fā)、區(qū)塊的建立等等。貨幣區(qū)塊鏈中記錄有賬戶信息和交易記錄等。
控制中心401為每個(gè)用戶建立一個(gè)區(qū)塊,用于記錄其賬戶信息。賬戶信息可包括:賬戶名、賬戶余額等??刂浦行?01可將這些賬戶信息,發(fā)送給每個(gè)授權(quán)節(jié)點(diǎn),使得每個(gè)授權(quán)節(jié)點(diǎn)中均存儲(chǔ)有各個(gè)用戶的賬戶信息。
參見圖4,節(jié)點(diǎn)402和節(jié)點(diǎn)405為兩條區(qū)塊鏈的共有節(jié)點(diǎn)。
在一個(gè)實(shí)施例中,交易雙方為用戶1和用戶2,其中,用戶1為電子票A的擁有者,用戶2為電子票A的購買者,則用戶2為支付方,用戶1為收款方。在本發(fā)明的一實(shí)施例中,參與物品交易的用戶為區(qū)塊鏈中的授權(quán)節(jié)點(diǎn),即用戶1為電子票區(qū)塊鏈中的一授權(quán)節(jié)點(diǎn),用戶2為貨幣區(qū)塊鏈中的一授權(quán)節(jié)點(diǎn)。
參見圖5,在步驟501中,交易發(fā)起節(jié)點(diǎn)發(fā)布交易請求。
在一個(gè)實(shí)施例中,發(fā)布交易請求時(shí),交易發(fā)起節(jié)點(diǎn)按照預(yù)設(shè)的交易數(shù)據(jù)格式生成交易數(shù)據(jù)包,并利用私鑰對該交易數(shù)據(jù)包進(jìn)行數(shù)字簽名,然后將數(shù)字簽名后的交易數(shù)據(jù)包進(jìn)行廣播。交易請求中包括:交易的電子票的信息、交易雙方信息、交易金額等。
交易發(fā)起者可為區(qū)塊鏈中的共有節(jié)點(diǎn),也可為非共有節(jié)點(diǎn)。當(dāng)其為共有節(jié)點(diǎn)時(shí),可將交易請求同時(shí)廣播給電子票區(qū)塊鏈中的節(jié)點(diǎn)和貨幣區(qū)塊鏈中的節(jié)點(diǎn);當(dāng)其為非共有節(jié)點(diǎn)時(shí),將交易請求廣播給自身所在的區(qū)塊鏈中的節(jié)點(diǎn),接收到該交易請求的共有節(jié)點(diǎn),將其廣播給另一區(qū)塊鏈中的節(jié)點(diǎn)。由此,兩條區(qū)塊鏈中的節(jié)點(diǎn)都將接收到交易發(fā)起者發(fā)布的交易請求。
在步驟502中,電子票區(qū)塊鏈和貨幣區(qū)塊鏈中的授權(quán)節(jié)點(diǎn),分別對交易請求進(jìn)行驗(yàn)證。
每個(gè)授權(quán)節(jié)點(diǎn)(包括共有節(jié)點(diǎn))對交易請求進(jìn)行驗(yàn)證。驗(yàn)證時(shí),分別對交易請求中的交易金額、交易物品、交易雙方信息等進(jìn)行驗(yàn)證,以確定交易的可行性。在該實(shí)施例中,電子票區(qū)塊鏈中的節(jié)點(diǎn)對交易所涉及的電子票信息進(jìn)行驗(yàn)證,確定電子票是否有效。具體的,在驗(yàn)證時(shí),可根據(jù)交易的電子票的標(biāo)識(shí)(例如,編碼或票號等),從授權(quán)節(jié)點(diǎn)存儲(chǔ)的電子票的信息和交易記錄中進(jìn)行查詢,以確定電子票是否有效。此外,電子票區(qū)塊鏈中的節(jié)點(diǎn),還可根據(jù)交易雙方信息中的身份信息等對購買者的合法性進(jìn)行驗(yàn)證。例如,根據(jù)購買者的年齡和交易電子票的購買年齡進(jìn)行匹配,以確定購買者是否合法。
貨幣區(qū)塊鏈中的節(jié)點(diǎn)則對交易雙方的賬戶信息進(jìn)行驗(yàn)證,例如,根據(jù)購買者(用戶2)的賬戶信息,確定其賬戶余額是否充足;根據(jù)電子票提供者(用戶1)的賬戶信息,確定其賬戶是否正確。
在步驟503中,根據(jù)各區(qū)塊鏈中的授權(quán)節(jié)點(diǎn)對交易請求的交易驗(yàn)證信息,獲取驗(yàn)證結(jié)果。
兩條區(qū)塊鏈中的節(jié)點(diǎn)驗(yàn)證完成后都會(huì)廣播消息(成功或失敗)。兩條區(qū)塊鏈中的共有節(jié)點(diǎn)會(huì)同時(shí)收集兩條區(qū)塊鏈中的驗(yàn)證信息。例如,電子門票區(qū)塊鏈中有2500個(gè)授權(quán)節(jié)點(diǎn),貨幣區(qū)塊鏈中有5000個(gè)授權(quán)節(jié)點(diǎn),兩條區(qū)塊鏈的共有節(jié)點(diǎn)有1500個(gè)。以下為一共有節(jié)點(diǎn)收集到節(jié)點(diǎn)廣播的驗(yàn)證信息的情況:電子門票區(qū)塊鏈中的廣播消息為2300個(gè)成功,5個(gè)失敗(可能節(jié)點(diǎn)被惡意控制或信息被篡改等等),還有195個(gè)未返回消息(可能處于關(guān)機(jī)或死機(jī)等無法響應(yīng)的狀態(tài));貨幣區(qū)塊鏈中的廣播消息為4700個(gè)成功,12個(gè)失敗(可能節(jié)點(diǎn)被惡意控制或信息被篡改等等),288個(gè)未返回消息(可能處于關(guān)機(jī)或死機(jī)等無法響應(yīng)的狀態(tài))。
每個(gè)共有節(jié)點(diǎn)分別計(jì)算條區(qū)塊鏈的驗(yàn)證結(jié)果,若一條區(qū)塊鏈中,驗(yàn)證成功的節(jié)點(diǎn)數(shù)大于或等于預(yù)設(shè)閾值(例如,95%),則將該條區(qū)塊鏈標(biāo)記為驗(yàn)證成功,并記錄成功與失敗的消息個(gè)數(shù)。否則,若驗(yàn)證成功的節(jié)點(diǎn)數(shù)小于預(yù)設(shè)閾值,則將該條區(qū)塊鏈標(biāo)記為驗(yàn)證失敗。
每個(gè)共有節(jié)點(diǎn)在兩條區(qū)塊鏈都被標(biāo)記為驗(yàn)證成功時(shí),廣播雙向驗(yàn)證成功信息給兩條區(qū)塊鏈(同時(shí)攜帶兩條區(qū)塊鏈中的成功與失敗的消息個(gè)數(shù));若任一條區(qū)塊鏈被標(biāo)記為驗(yàn)證失敗,則廣播雙向驗(yàn)證失敗信息給兩條區(qū)塊鏈(同時(shí)攜帶兩條區(qū)塊鏈中的成功與失敗的消息個(gè)數(shù))。
在步驟504中,各授權(quán)節(jié)點(diǎn)根據(jù)接收到的驗(yàn)證結(jié)果,對交易進(jìn)行確認(rèn)或取消。
超過一定預(yù)設(shè)閾值比例(如80%)的共有節(jié)點(diǎn)發(fā)送雙向驗(yàn)證成功信息,則確認(rèn)交易,兩條區(qū)塊鏈中的節(jié)點(diǎn)同時(shí)對交易進(jìn)行處理。而如果雙向驗(yàn)證成功消息未達(dá)到預(yù)設(shè)閾值比例(如80%),則取消交易。
如上所述,當(dāng)交易有效時(shí),區(qū)塊鏈中的“礦工”節(jié)點(diǎn)競爭新區(qū)塊的生成權(quán),以對交易進(jìn)行確認(rèn)和記錄,最終完成交易,即用戶2成為電子票A的擁有者,用戶1收到用戶2的支付。
根據(jù)本發(fā)明實(shí)施例的上述物品交易方法,只有控制了超過閾值比例的共有節(jié)點(diǎn)數(shù)據(jù),或者超過了預(yù)設(shè)比例的授權(quán)節(jié)點(diǎn)數(shù)量,才有可能完成一次問題交易,而這在區(qū)塊鏈中概率極低,從而可以保證交易的安全性。且通過將單類物品單獨(dú)為一條區(qū)塊鏈,且同在兩條或多條區(qū)塊鏈中的節(jié)點(diǎn)作為共有節(jié)點(diǎn),使區(qū)塊形成一個(gè)平面的網(wǎng)狀結(jié)構(gòu),降低單條區(qū)塊鏈的長度,降低每個(gè)節(jié)點(diǎn)的數(shù)據(jù)量;可提高區(qū)塊鏈的查詢效率;提高單類物品的匯總和統(tǒng)計(jì)效率;提高并發(fā)性(多條區(qū)塊鏈可同時(shí)進(jìn)行不同交易的處理)。
參見圖6,本發(fā)明實(shí)施例還提供一種物品交易裝置。該裝置600可應(yīng)用于共有節(jié)點(diǎn),包括:
第一交易請求發(fā)送模塊601,被配置為將預(yù)設(shè)物品的交易請求發(fā)送給所述預(yù)設(shè)物品交易所涉及的區(qū)塊鏈中的授權(quán)節(jié)點(diǎn);
交易驗(yàn)證信息接收模塊602,被配置為分別接收各個(gè)授權(quán)節(jié)點(diǎn)根據(jù)接收到的交易請求獲取的交易驗(yàn)證信息;
驗(yàn)證結(jié)果獲取模塊603,被配置為根據(jù)所述交易驗(yàn)證信息,獲取驗(yàn)證結(jié)果;
發(fā)送模塊604,被配置為將驗(yàn)證結(jié)果發(fā)送給各個(gè)授權(quán)節(jié)點(diǎn),所述驗(yàn)證結(jié)果用于供各個(gè)授權(quán)節(jié)點(diǎn)對所述預(yù)設(shè)物品的交易進(jìn)行確認(rèn)或取消。
在一個(gè)實(shí)施例中,驗(yàn)證結(jié)果獲取模塊603包括:
獲取子模塊6031,被配置為根據(jù)一區(qū)塊鏈中的授權(quán)節(jié)點(diǎn)返回的交易驗(yàn)證信息,獲取驗(yàn)證成功的授權(quán)節(jié)點(diǎn)的個(gè)數(shù),以及驗(yàn)證失敗的授權(quán)節(jié)點(diǎn)的個(gè)數(shù);
標(biāo)記子模塊6032,被配置為在驗(yàn)證成功的授權(quán)節(jié)點(diǎn)數(shù)所占的比例高于預(yù)設(shè)閾值時(shí),將該條區(qū)塊鏈的驗(yàn)證結(jié)果標(biāo)記為驗(yàn)證成功;在驗(yàn)證成功的授權(quán)節(jié)點(diǎn)數(shù)所占的比例低于預(yù)設(shè)閾值時(shí),將該條區(qū)塊鏈的驗(yàn)證結(jié)果標(biāo)記為驗(yàn)證失敗。
在一個(gè)實(shí)施例中,發(fā)送模塊604包括:
第一發(fā)送子模塊6041,被配置為在所述預(yù)設(shè)物品的交易涉及的每條區(qū)塊鏈的驗(yàn)證結(jié)果均被標(biāo)記為驗(yàn)證成功時(shí),發(fā)送驗(yàn)證成功的驗(yàn)證結(jié)果給各區(qū)塊鏈中的授權(quán)節(jié)點(diǎn);
第二發(fā)送子模塊6042,被配置為在所述預(yù)設(shè)物品的交易涉及的任一條區(qū)塊鏈的驗(yàn)證結(jié)果被標(biāo)記為驗(yàn)證失敗時(shí),發(fā)送驗(yàn)證失敗的驗(yàn)證結(jié)果給授權(quán)節(jié)點(diǎn)。
在一個(gè)實(shí)施例中,裝置600還包括:
交易請求接收模塊605,被配置為接收一區(qū)塊鏈中的任一授權(quán)節(jié)點(diǎn)發(fā)送的所述預(yù)設(shè)物品的交易請求;
第二交易請求發(fā)送模塊606,被配置為將所述交易請求發(fā)送給所述預(yù)設(shè)物品交易所涉及的其它區(qū)塊鏈中的授權(quán)節(jié)點(diǎn)。
關(guān)于上述實(shí)施例中的裝置,其中各個(gè)模塊執(zhí)行操作的具體方式已經(jīng)在有關(guān)該方法的實(shí)施例中進(jìn)行了詳細(xì)描述,此處將不做詳細(xì)闡述說明。
圖7是根據(jù)一示例性實(shí)施例示出的一種用于物品交易方法的裝置700的框圖,該裝置700可以是節(jié)點(diǎn)設(shè)備。如圖所示,該裝置700可以包括:處理器701,存儲(chǔ)器702,多媒體組件703,輸入/輸出(I/O)接口704,以及通信組件705。
其中,處理器701用于控制該裝置700的整體操作,以完成上述的物品交易方法中的全部或部分步驟。存儲(chǔ)器702用于存儲(chǔ)操作系統(tǒng),各種類型的數(shù)據(jù)以支持在該裝置700的操作,這些數(shù)據(jù)的例如可以包括用于在該裝置700上操作的任何應(yīng)用程序或方法的指令,以及應(yīng)用程序相關(guān)的數(shù)據(jù)。該存儲(chǔ)器702可以由任何類型的易失性或非易失性存儲(chǔ)設(shè)備或者它們的組合實(shí)現(xiàn),例如靜態(tài)隨機(jī)存取存儲(chǔ)器(Static Random Access Memory,簡稱SRAM),電可擦除可編程只讀存儲(chǔ)器(Electrically Erasable Programmable Read-Only Memory,簡稱EEPROM),可擦除可編程只讀存儲(chǔ)器(Erasable Programmable Read-Only Memory,簡稱EPROM),可編程只讀存儲(chǔ)器(Programmable Read-Only Memory,簡稱PROM),只讀存儲(chǔ)器(Read-Only Memory,簡稱ROM),磁存儲(chǔ)器,快閃存儲(chǔ)器,磁盤或光盤。
多媒體組件703可以包括屏幕和音頻組件。其中屏幕例如可以是觸摸屏,音頻組件用于輸出和/或輸入音頻信號。例如,音頻組件可以包括一個(gè)麥克風(fēng),麥克風(fēng)用于接收外部音頻信號。所接收的音頻信號可以被進(jìn)一步存儲(chǔ)在存儲(chǔ)器702或通過通信組件705發(fā)送。音頻組件還包括至少一個(gè)揚(yáng)聲器,用于輸出音頻信號。I/O接口704為處理器701和其他接口模塊之間提供接口,上述其他接口模塊可以是鍵盤,鼠標(biāo),按鈕等。這些按鈕可以是虛擬按鈕或者實(shí)體按鈕。通信組件705用于該裝置700與其他設(shè)備之間進(jìn)行有線或無線通信。無線通信,例如Wi-Fi,藍(lán)牙,近場通信(Near Field Communication,簡稱NFC),2G、3G或4G,或它們中的一種或幾種的組合,因此相應(yīng)的該通信組件705可以包括:Wi-Fi模塊,藍(lán)牙模塊,NFC模塊。
在一示例性實(shí)施例中,裝置700可以被一個(gè)或多個(gè)應(yīng)用專用集成電路(Application Specific Integrated Circuit,簡稱ASIC)、數(shù)字信號處理器(Digital Signal Processor,簡稱DSP)、數(shù)字信號處理設(shè)備(Digital Signal Processing Device,簡稱DSPD)、可編程邏輯器件(Programmable Logic Device,簡稱PLD)、現(xiàn)場可編程門陣列(Field Programmable Gate Array,簡稱FPGA)、控制器、微控制器、微處理器或其他電子元件實(shí)現(xiàn),用于執(zhí)行上述的物品交易方法。
在另一示例性實(shí)施例中,還提供了一種計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包含能夠由可編程的裝置執(zhí)行的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序具有當(dāng)由所述可編程的裝置執(zhí)行時(shí)用于執(zhí)行上述的物品交易方法的代碼部分。
在另一示例性實(shí)施例中,還提供了一種包括指令的非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),例如包括指令的存儲(chǔ)器702,上述指令可由裝置700的處理器701執(zhí)行以完成上述的物品交易方法。示例地,該非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是ROM、隨機(jī)存取存儲(chǔ)器(Random Access Memory,簡稱RAM)、CD-ROM、磁帶、軟盤和光數(shù)據(jù)存儲(chǔ)設(shè)備等。
本領(lǐng)域技術(shù)人員在考慮說明書及實(shí)踐本發(fā)明后,將容易想到本發(fā)明的其它實(shí)施方案。本申請旨在涵蓋本發(fā)明的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本發(fā)明的一般性原理并包括本發(fā)明未公開的本技術(shù)領(lǐng)域中的公知常識(shí)或慣用技術(shù)手段。說明書和實(shí)施例僅被視為示例性的,本發(fā)明的真正范圍和精神由下面的權(quán)利要求指出。
應(yīng)當(dāng)理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進(jìn)行各種修改和改變。本發(fā)明的范圍僅由所附的權(quán)利要求來限制。