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