本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別是涉及一種基于區(qū)塊鏈技術(shù)的交易信息校驗方法、裝置及系統(tǒng)。
背景技術(shù):
隨著信息技術(shù)的不斷發(fā)展,互聯(lián)網(wǎng)的應(yīng)用也越來越普及,例如,用戶可以通過互聯(lián)網(wǎng)進行網(wǎng)上交易。在通過互聯(lián)網(wǎng)進行網(wǎng)上交易時,每一筆網(wǎng)上交易一般對應(yīng)一條或多條交易信息,而交易信息可以反映出用戶的交易行為。因此,如何對交易信息進行保存十分關(guān)鍵。
在區(qū)塊鏈技術(shù)中,客戶平臺生成的交易信息是由具有寫入權(quán)限的礦機代理寫入?yún)^(qū)塊鏈中實現(xiàn)保存的。具體的,當(dāng)某客戶平臺需要將交易信息寫入?yún)^(qū)塊鏈中時,先將該交易信息發(fā)送給礦機,然后由該礦機將接收到的交易信息寫入?yún)^(qū)塊鏈中,最后再將寫入?yún)^(qū)塊鏈中的新區(qū)塊同步至點對點網(wǎng)絡(luò)中的各個客戶平臺。
然而,交易信息在從客戶平臺傳輸至礦機的過程中,可能會被其他設(shè)備截獲進行篡改,因此若將篡改的交易信息寫入?yún)^(qū)塊鏈中,則會造成寫入?yún)^(qū)塊鏈中的交易信息的可靠性和準(zhǔn)確性降低。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明提供一種基于區(qū)塊鏈技術(shù)的交易信息校驗方法、裝置及系統(tǒng),能夠?qū)π枰獙懭雲(yún)^(qū)塊鏈的交易信息的正確性進行校驗,從而防止將被篡改的交易信息寫入?yún)^(qū)塊鏈中。
本發(fā)明的目的是采用以下技術(shù)方案來實現(xiàn)的:
第一方面,本發(fā)明提供了一種基于區(qū)塊鏈技術(shù)的交易信息校驗方法,所述方法應(yīng)用于客戶平臺,所述方法包括:
獲取需要寫入?yún)^(qū)塊鏈的交易信息,所述交易信息由客戶端發(fā)起的交易操作生成;
通過存儲的私鑰對所述交易信息的運算值進行簽名,獲得所述交易信息對應(yīng)的簽名信息,所述交易信息的運算值根據(jù)預(yù)設(shè)算法進行運算而得;
將所述交易信息和所述簽名信息發(fā)送給礦機,以便所述礦機根據(jù)所述簽名信息對接收到的交易信息的正確性進行校驗。
結(jié)合第一方面,在第一方面的第一種可能的實現(xiàn)方式中,所述方法還包括:
接收所述礦機發(fā)送的重發(fā)指令;
根據(jù)所述重發(fā)指令,向所述礦機重新發(fā)送所述交易信息和所述簽名信息。
結(jié)合第一方面,在第一方面的第二種可能的實現(xiàn)方式中,在將所述交易信息和所述簽名信息發(fā)送給礦機之前,所述方法還包括:
向所述礦機發(fā)送攜帶所述客戶平臺的身份標(biāo)識信息的身份驗證請求;
所述將所述交易信息和所述簽名信息發(fā)送給礦機包括:
若接收到所述礦機發(fā)送的身份驗證成功響應(yīng)消息,則將所述交易信息和所述簽名信息發(fā)送給所述礦機。
結(jié)合第一方面或者第一方面的第一種或第二種可能的實現(xiàn)方式,在第一方面的第三種可能的實現(xiàn)方式中,所述客戶平臺存儲的私鑰為發(fā)起交易操作的客戶端發(fā)送的私鑰,或者為所述客戶平臺的私鑰。
第二方面,本發(fā)明提供了一種基于區(qū)塊鏈技術(shù)的交易信息校驗方法,所述方法應(yīng)用于礦機,所述方法包括:
接收客戶平臺發(fā)送的交易信息和所述交易信息對應(yīng)的簽名信息,所述交易信息由客戶端發(fā)起的交易操作生成,所述簽名信息是通過所述客戶平臺存儲的私鑰對所述交易信息的運算值進行簽名得到的,所述交易信息的運算值根據(jù)預(yù)設(shè)算法進行運算而得;
根據(jù)所述預(yù)設(shè)算法對接收到的交易信息進行運算,獲得所述交易信息的運算值;
根據(jù)所述交易信息的運算值、所述簽名信息以及所述私鑰對應(yīng)的公鑰進行驗簽;
若驗簽成功,則確定接收到的交易信息正確,并將包括所述交易信息的新區(qū)塊寫入?yún)^(qū)塊鏈中。
結(jié)合第二方面,在第二方面的第一種可能的實現(xiàn)方式中,所述方法還包括:
若驗簽失敗,則刪除所述交易信息以及所述簽名信息,并輸出用于提示接收到的交易信息存在異常的提示信息。
結(jié)合第二方面,在第二方面的第二種可能的實現(xiàn)方式中,所述方法還包括:
若驗簽失敗,則向所述客戶平臺發(fā)送重發(fā)指令,以便所述客戶平臺根據(jù)所述重發(fā)指令重新發(fā)送交易信息以及所述交易信息對應(yīng)的簽名信息。
結(jié)合第二方面,在第二方面的第三種可能的實現(xiàn)方式中,所述根據(jù)所述交易信息的運算值、所述簽名信息以及所述私鑰對應(yīng)的公鑰進行驗簽包括:
利用所述公鑰對所述簽名信息進行解密,獲得解密后的運算值;
將所述交易信息的運算值與所述解密后的運算值進行比較;
若兩者相同,則確定驗簽成功;
若兩者不同,則確定驗簽失敗。
結(jié)合第二方面,在第二方面的第四種可能的實現(xiàn)方式中,在接收客戶平臺發(fā)送的交易信息和所述交易信息對應(yīng)的簽名信息之前,所述方法還包括:
接收所述客戶平臺發(fā)送的身份驗證請求,所述身份驗證請求中攜帶有所述客戶平臺的身份標(biāo)識信息;
若確認保存有所述客戶平臺的身份標(biāo)識信息,則向所述客戶平臺發(fā)送身份驗證成功響應(yīng)消息;
所述接收客戶平臺發(fā)送的交易信息和所述交易信息對應(yīng)的簽名信息包括:
接收所述客戶平臺根據(jù)所述身份驗證成功響應(yīng)消息發(fā)送的交易信息和所述交易信息對應(yīng)的簽名信息。
結(jié)合第二方面或者第二方面的第一種至第四種任一項可能的實現(xiàn)方式,在第二方面的第五種可能的實現(xiàn)方式中,所述客戶平臺存儲的私鑰為發(fā)起交易操作的客戶端發(fā)送的私鑰,或者為所述客戶平臺的私鑰。
第三方面,本發(fā)明提供了一種基于區(qū)塊鏈技術(shù)的交易信息校驗裝置,所述裝置應(yīng)用于客戶平臺,所述裝置包括:
獲取單元,用于獲取需要寫入?yún)^(qū)塊鏈的交易信息,所述交易信息由客戶端發(fā)起的交易操作生成;
簽名單元,用于通過存儲的私鑰對所述獲取單元獲取的所述交易信息的運算值進行簽名,獲得所述交易信息對應(yīng)的簽名信息,所述交易信息的運算值根據(jù)預(yù)設(shè)算法進行運算而得;
發(fā)送單元,用于將所述獲取單元獲取的所述交易信息和所述簽名單元獲取的所述簽名信息發(fā)送給礦機,以便所述礦機根據(jù)所述簽名信息對接收到的交易信息的正確性進行校驗。
結(jié)合第三方面,在第三方面的第一種可能的實現(xiàn)方式中,所述裝置還包括:
接收單元,用于接收所述礦機發(fā)送的重發(fā)指令;
所述發(fā)送單元還用于根據(jù)所述接收單元接收的所述重發(fā)指令,向所述礦機重新發(fā)送所述交易信息和所述簽名信息。
結(jié)合第三方面,在第三方面的第二種可能的實現(xiàn)方式中,所述發(fā)送單元還用于在將所述交易信息和所述簽名信息發(fā)送給礦機之前,向所述礦機發(fā)送攜帶所述客戶平臺的身份標(biāo)識信息的身份驗證請求;
所述發(fā)送單元還用于當(dāng)接收到所述礦機發(fā)送的身份驗證成功響應(yīng)消息時,將所述交易信息和所述簽名信息發(fā)送給礦機。
結(jié)合第三方面獲得第三方面的第一種或者第二種可能的實現(xiàn)方式,在第三方面的第三種可能的實現(xiàn)方式中,所述客戶平臺存儲的私鑰為發(fā)起交易操作的客戶端發(fā)送的私鑰,或者為所述客戶平臺的私鑰。
第四方面,本發(fā)明提供了一種基于區(qū)塊鏈技術(shù)的交易信息校驗裝置,所述裝置應(yīng)用于礦機,所述裝置包括:
接收單元,用于接收客戶平臺發(fā)送的交易信息和所述交易信息對應(yīng)的簽名信息,所述交易信息由客戶端發(fā)起的交易操作生成,所述簽名信息是通過所述客戶平臺存儲的私鑰對所述交易信息的運算值進行簽名得到的,所述交易信息的運算值根據(jù)預(yù)設(shè)算法進行運算而得;
運算單元,用于根據(jù)所述預(yù)設(shè)算法對所述接收單元接收到的交易信息進行運算,獲得所述交易信息的運算值;
驗簽單元,用于根據(jù)所述運算單元獲得的所述交易信息的運算值、所述接收單元接收的所述簽名信息以及所述私鑰對應(yīng)的公鑰進行驗簽;
寫入單元,用于當(dāng)所述驗簽單元驗簽成功時,確定接收到的交易信息正確,并將包括所述交易信息的新區(qū)塊寫入?yún)^(qū)塊鏈中。
結(jié)合第四方面,在第四方面的第一種可能的實現(xiàn)方式中,所述裝置還包括:
刪除單元,用于當(dāng)所述驗簽單元驗簽失敗時,刪除所述交易信息以及
所述簽名信息;
輸出單元,用于輸出用于提示接收到的交易信息存在異常的提示信息。
結(jié)合第四方面,在第四方面的第二種可能的實現(xiàn)方式中,所述裝置還包括:
第一發(fā)送單元,用于當(dāng)所述驗簽單元驗簽失敗時,向所述客戶平臺發(fā)送重發(fā)指令,以便所述客戶平臺根據(jù)所述重發(fā)指令重新發(fā)送交易信息以及所述交易信息對應(yīng)的簽名信息。
結(jié)合第四方面,在第四方面的第三種可能的實現(xiàn)方式中,所述驗簽單元包括:
解密模塊,用于利用所述公鑰對所述簽名信息進行解密,獲得解密后的運算值;
比較模塊,用于將所述交易信息的運算值與所述解密模塊解密后的運算值進行比較;
確定模塊,用于當(dāng)所述比較模塊的比較結(jié)果為兩者相同時,確定驗簽成功;當(dāng)所述比較模塊的比較結(jié)果為兩者不同時,確定驗簽失敗。
結(jié)合第四方面,在第四方面的第四種可能的實現(xiàn)方式中,所述接收單元還用于在接收客戶平臺發(fā)送的交易信息和所述交易信息對應(yīng)的簽名信息之前,接收所述客戶平臺發(fā)送的身份驗證請求,所述身份驗證請求中攜帶有所述客戶平臺的身份標(biāo)識信息;
所述裝置還包括:
第二發(fā)送單元,用于當(dāng)確認保存有所述客戶平臺的身份標(biāo)識信息時,向所述客戶平臺發(fā)送身份驗證成功響應(yīng)消息;
所述接收單元還用于接收所述客戶平臺根據(jù)所述身份驗證成功響應(yīng)消息發(fā)送的交易信息和所述交易信息對應(yīng)的簽名信息。
結(jié)合第四方面或者第四方面的第一種至第四種可能的實現(xiàn)方式,在第四方面的第五種可能的實現(xiàn)方式中,所述客戶平臺存儲的私鑰為發(fā)起交易操作的客戶端發(fā)送的私鑰,或者為所述客戶平臺的私鑰。
第五方面,本發(fā)明提供了一種基于區(qū)塊鏈技術(shù)的交易信息校驗系統(tǒng),所述系統(tǒng)包括客戶平臺和礦機;其中,所述客戶平臺包括如第三方面或者第三方面的第一種至第三種任一項可能實現(xiàn)方式所述的裝置;所述礦機包括如如第四方面或者第四方面的第一種至第五種任一項可能實現(xiàn)方式所述的裝置。
借由上述技術(shù)方案,本發(fā)明提供的基于區(qū)塊鏈技術(shù)的交易信息校驗方法、裝置及系統(tǒng),能夠在客戶平臺獲得交易信息后,不僅將該交易信息發(fā)送給礦機,還會為該交易信息配置無法篡改的簽名信息,并將簽名信息也發(fā)送給礦機,從而使得礦機在接收到交易信息和交易信息對應(yīng)的簽名信息后,不直接將交易信息寫入?yún)^(qū)塊鏈中,而是先利用交易信息對應(yīng)的簽名信息對接收到的交易信息的正確性進行校驗,當(dāng)確定接收到的交易信息正確后,才將交易信息寫入?yún)^(qū)塊鏈中,進而可以防止將被篡改的交易信息寫入?yún)^(qū)塊鏈中,由此提高了礦機向區(qū)塊鏈中寫入的交易信息的可靠性和準(zhǔn)確性。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。
附圖說明
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1示出了本發(fā)明實施例提供的一種基于區(qū)塊鏈技術(shù)的交易信息校驗方法的流程圖;
圖2示出了本發(fā)明實施例提供的另一種基于區(qū)塊鏈技術(shù)的交易信息校驗方法的流程圖;
圖3示出了本發(fā)明實施例提供的一種區(qū)塊鏈交易信息校驗的場景示意圖;
圖4示出了本發(fā)明實施例提供的一種基于區(qū)塊鏈技術(shù)的交易信息校驗裝置的組成框圖;
圖5示出了本發(fā)明實施例提供的另一種基于區(qū)塊鏈技術(shù)的交易信息校驗裝置的組成框圖;
圖6示出了本發(fā)明實施例提供的另一種基于區(qū)塊鏈技術(shù)的交易信息校驗裝置的組成框圖;
圖7示出了本發(fā)明實施例提供的另一種基于區(qū)塊鏈技術(shù)的交易信息校驗裝置的組成框圖;
圖8示出了本發(fā)明實施例提供的一種基于區(qū)塊鏈技術(shù)的交易信息校驗系統(tǒng)的示意圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。
本發(fā)明實施例提供了一種基于區(qū)塊鏈技術(shù)的交易信息校驗方法,所述方法主要應(yīng)用于客戶平臺,如圖1所示,所述方法主要包括:
101、獲取需要寫入?yún)^(qū)塊鏈的交易信息;
其中,交易信息是由客戶端發(fā)起的交易操作生成的交易完整記錄,主要包括用戶ID(Identity,身份標(biāo)識號碼)、項目ID、交易金額、交易時間、客戶平臺ID等信息。例如,用戶基于客戶端對項目1投資100元時,客戶端會將當(dāng)前用戶的用戶ID、項目1的ID以及交易金額100發(fā)送給與之對應(yīng)的服務(wù)器(即客戶平臺),客戶平臺接收到這些信息后,會生成對應(yīng)的、包括用戶ID、項目1ID、100元、交易時間、客戶平臺ID的完整交易記錄。另外,交易信息的具體表現(xiàn)形式可以為記錄條,也可以為其他形式,本發(fā)明實施例對此不做限定。
102、通過存儲的私鑰對所述交易信息的運算值進行簽名,獲得所述交易信息對應(yīng)的簽名信息;
其中,交易信息的運算值根據(jù)預(yù)設(shè)算法進行運算而得;預(yù)設(shè)算法可以為哈希算法,也可以為其他算法;相應(yīng)地,運算值可以為哈希值,也可以為其他數(shù)值。另外,簽名信息具體可以根據(jù)需求配置在交易信息的不同位置,例如,可以將簽名信息配置在交易信息的頭部、尾部等,本發(fā)明實施例不做限定。
需要說明的是,客戶平臺存儲的私鑰可以為發(fā)起交易操作的客戶端發(fā)送的私鑰,也可以為客戶平臺的私鑰,具體可以根據(jù)具體應(yīng)用而定,本發(fā)明實施例對此不進行限制。例如,當(dāng)客戶平臺所服務(wù)的用戶較少時,可以直接使用客戶平臺的私鑰作為簽名時所需的私鑰;當(dāng)客戶平臺所服務(wù)的用戶較多時,為了保證用戶交易信息的安全性,可以使用用戶基于客戶端設(shè)置的私鑰作為簽名時所需的私鑰。
103、將所述交易信息和所述簽名信息發(fā)送給礦機,以便所述礦機根據(jù)所述簽名信息對接收到的交易信息的正確性進行校驗。
在獲得交易信息和交易信息對應(yīng)的簽名信息后,可以將交易信息和簽名信息發(fā)送給礦機,以使得礦機在接收到交易信息和簽名信息后,先利用簽名信息對接收到的交易信息的正確性進行校驗,當(dāng)確定接收到的交易信息正確時,才將交易信息寫入?yún)^(qū)塊鏈中,否則不將其寫入?yún)^(qū)塊鏈中。其中,區(qū)塊鏈?zhǔn)且淮褂妹艽a學(xué)方法相關(guān)聯(lián)產(chǎn)生的數(shù)據(jù)塊,每一個數(shù)據(jù)塊中包含了過去一段預(yù)定時間內(nèi)所有的交易信息,用于驗證其信息的有效性和生成下一個區(qū)塊。
本發(fā)明實施例提供的基于區(qū)塊鏈技術(shù)的交易信息校驗方法,能夠在客戶平臺獲得交易信息后,不僅將該交易信息發(fā)送給礦機,還會為該交易信息配置無法篡改的簽名信息,并將簽名信息也發(fā)送給礦機,從而使得礦機在接收到交易信息和交易信息對應(yīng)的簽名信息后,不直接將交易信息寫入?yún)^(qū)塊鏈中,而是先利用交易信息對應(yīng)的簽名信息對接收到的交易信息的正確性進行校驗,當(dāng)確定接收到的交易信息正確后,才將交易信息寫入?yún)^(qū)塊鏈中,進而可以防止將被篡改的交易信息寫入?yún)^(qū)塊鏈中,由此提高了礦機向區(qū)塊鏈中寫入的交易信息的可靠性和準(zhǔn)確性。
進一步的,為了在礦機確定接收到的交易信息錯誤的情況下,繼續(xù)獲得正確的交易信息,可以在確定接收到的交易信息錯誤后,向客戶平臺發(fā)送重發(fā)指令,以使得客戶平臺在接收到礦機發(fā)送的重發(fā)指令后,可以根據(jù)該重發(fā)指令重新發(fā)送交易信息和交易信息對應(yīng)的簽名信息。
進一步的,礦機為了防止非法客戶平臺與其進行交互,可以先對將要與其進行交互的客戶平臺進行身份合法性驗證,當(dāng)確定其身份合法時,才與其進行交互。
具體的,在將所述交易信息和所述簽名信息發(fā)送給礦機之前,客戶平臺可以向所述礦機發(fā)送攜帶所述客戶平臺的身份標(biāo)識信息的身份驗證請求,當(dāng)接收到所述礦機發(fā)送的身份驗證成功響應(yīng)消息時,將所述交易信息和所述簽名信息發(fā)送給礦機。其中,身份標(biāo)識信息用于唯一標(biāo)識客戶平臺的身份,具體可以為客戶平臺名、端口IP地址等,本發(fā)明實施例不做限定。
此外,礦機中還存儲有預(yù)先注冊的用戶ID,在接收到客戶平臺發(fā)送的交易信息和簽名信息后,可以從交易信息中獲取用戶ID,然后判斷該用戶ID是否為預(yù)先注冊的用戶ID,由此來驗證用戶身份的合法性,并且當(dāng)確定該用戶ID合法時,才繼續(xù)利用簽名信息對交易信息的正確性進行校驗。
進一步的,依據(jù)圖1所示的方法,本發(fā)明的另一個實施例還提供了一種基于區(qū)塊鏈技術(shù)的交易信息校驗方法,所述方法主要應(yīng)用于礦機,如圖2所示,所述方法主要包括:
201、接收客戶平臺發(fā)送的交易信息和所述交易信息對應(yīng)的簽名信息;
其中,交易信息由客戶端發(fā)起的交易操作生成,且關(guān)于交易信息的具體內(nèi)容詳見上述步驟101的詳細描述,在此不再贅述。
簽名信息是通過客戶平臺存儲的私鑰對交易信息的運算值進行簽名得到的。其中,客戶平臺存儲的私鑰可以為發(fā)起交易操作的客戶端發(fā)送的私鑰,也可以為客戶平臺的私鑰。交易信息的運算值根據(jù)預(yù)設(shè)算法進行運算而得;預(yù)設(shè)算法可以為哈希算法,也可以為其他算法,在此不做限定。
202、根據(jù)所述預(yù)設(shè)算法對接收到的交易信息進行運算,獲得所述交易信息的運算值;
其中,當(dāng)所述預(yù)設(shè)算法為哈希算法時,本步驟具體為:根據(jù)哈希算法對接收到的交易信息進行運算,獲得該交易信息的哈希值。
203、根據(jù)所述交易信息的運算值、所述簽名信息以及所述私鑰對應(yīng)的公鑰進行驗簽;
具體的,礦機先利用所述公鑰對所述簽名信息進行解密,獲得解密后的運算值;然后將所述交易信息的運算值與所述解密后的運算值進行比較;若兩者相同,則確定驗簽成功;若兩者不同,則確定驗簽失敗。其中,礦機中存儲有各個客戶平臺存儲的私鑰所對應(yīng)的公鑰。
當(dāng)預(yù)設(shè)算法為哈希算法時,本步驟具體可以為:先利用客戶平臺簽名時所使用的私鑰對應(yīng)的公鑰對接收到的簽名信息進行解密,獲得解密后的哈希值;然后將接收到的交易信息的哈希值與解密后的哈希值進行比較;若這兩個哈希值相同,則確定驗簽成功;若這兩個哈希值不相同,則確定驗簽失敗。
204、若驗簽成功,則確定接收到的交易信息正確,并將包括所述交易信息的新區(qū)塊寫入?yún)^(qū)塊鏈中。
當(dāng)驗簽成功時,礦機可以確定接收到的交易信息與客戶平臺發(fā)送給礦機的交易信息相同,從而確定接收到的交易信息正確,并可以將包括交易信息的新區(qū)塊寫入?yún)^(qū)塊鏈中;當(dāng)驗簽失敗時,可以確定接收到的交易信息與客戶平臺發(fā)送給礦機的交易信息不相同,從而確定接收到的交易信息錯誤,不將包括將該交易信息的新區(qū)塊寫入?yún)^(qū)塊鏈中。
需要說明的是,新區(qū)塊中除了包括交易信息外,還可以包括簽名信息、時間戳、上一區(qū)塊的運算值(如哈希值)等信息。其中,若將交易信息對應(yīng)的簽名信息也寫入?yún)^(qū)塊鏈中,則可以在礦機將新區(qū)塊發(fā)送給點對點網(wǎng)絡(luò)中的各個客戶平臺后,各個客戶平臺可以根據(jù)簽名信息對新區(qū)塊中的交易信息的正確性進行校驗,以判斷礦機在將交易信息寫入?yún)^(qū)塊鏈時是否對交易信息進行篡改。
本發(fā)明實施例提供的基于區(qū)塊鏈技術(shù)的交易信息校驗方法,能夠在客戶平臺獲得交易信息后,不僅將該交易信息發(fā)送給礦機,還會為該交易信息配置無法篡改的簽名信息,并將簽名信息也發(fā)送給礦機,從而使得礦機在接收到交易信息和交易信息對應(yīng)的簽名信息后,不直接將交易信息寫入?yún)^(qū)塊鏈中,而是先利用交易信息對應(yīng)的簽名信息對接收到的交易信息的正確性進行校驗,當(dāng)確定接收到的交易信息正確后,才將交易信息寫入?yún)^(qū)塊鏈中,進而可以防止將被篡改的交易信息寫入?yún)^(qū)塊鏈中,由此提高了礦機向區(qū)塊鏈中寫入的交易信息的可靠性和準(zhǔn)確性。
進一步的,為了防止錯誤的交易信息占用礦機的存儲空間,在確定驗簽失敗后,可以將接收到的交易信息和簽名信息刪除。為了提示礦機的管理員及時獲知礦機接收到的交易信息存在異常,還可以輸出用于提示接收到的交易信息存在異常的提示信息。為了在確定驗簽失敗的情況下,繼續(xù)獲得正確的交易信息,可以在確定驗簽失敗后,向客戶平臺發(fā)送重發(fā)指令,以便客戶平臺根據(jù)該重發(fā)指令重新發(fā)送交易信息以及該交易信息對應(yīng)的簽名信息。
進一步的,為了防止非法客戶平臺與礦機進行交互,從而導(dǎo)致非法交易信息寫入?yún)^(qū)塊鏈,礦機可以先對客戶平臺的身份進行驗證,當(dāng)確定其身份合法時,再接收其發(fā)送的的交易信息和簽名信息。
具體的,在接收客戶平臺發(fā)送的交易信息和所述交易信息對應(yīng)的簽名信息之前,礦機可以先接收所述客戶平臺發(fā)送的身份驗證請求,所述身份驗證請求中攜帶有所述客戶平臺的身份標(biāo)識信息;若確認保存有所述客戶平臺的身份標(biāo)識信息,則向所述客戶平臺發(fā)送身份驗證成功響應(yīng)消息,并接收所述客戶平臺根據(jù)所述身份驗證成功響應(yīng)消息發(fā)送的交易信息和所述交易信息對應(yīng)的簽名信息。
通過上述實施例可知,以哈希算法進行運算為例,在實現(xiàn)區(qū)塊鏈交易信息正確性校驗的過程中,涉及的簽名和驗簽過程可以如圖3所示。具體的,當(dāng)客戶平臺生成交易信息后,可以利用哈希算法對該交易信息進行哈希運算,獲得哈希值,然后利用存儲的私鑰對該哈希值進行簽名,獲得交易信息對應(yīng)的簽名信息,并將交易信息和簽名信息發(fā)送給礦機;礦機接收到客戶平臺發(fā)送的交易信息和簽名信息后,先利用哈希算法對接收到的交易信息進行哈希運算獲得哈希值,然后根據(jù)客戶平臺進行簽名時所使用的私鑰所對應(yīng)的公鑰、接收到的交易信息的哈希值以及簽名信息進行驗簽操作,以確定接收到的交易信息是否正確,并且在確定正確時,才將包括交易信息和簽名信息的區(qū)塊n與區(qū)塊n-1進行連接,從而使得交易信息和簽名信息寫入?yún)^(qū)塊鏈中。
進一步的,依據(jù)圖1所示的方法,本發(fā)明的另一個實施例還提供了一種一種基于區(qū)塊鏈技術(shù)的交易信息校驗裝置,所述裝置應(yīng)用于客戶平臺,如圖4所示,所述裝置主要包括:
獲取單元31,用于獲取需要寫入?yún)^(qū)塊鏈的交易信息,所述交易信息由客戶端發(fā)起的交易操作生成;
簽名單元32,用于通過存儲的私鑰對所述獲取單元31獲取的所述交易信息的運算值進行簽名,獲得所述交易信息對應(yīng)的簽名信息,所述交易信息的運算值根據(jù)預(yù)設(shè)算法進行運算而得;
發(fā)送單元33,用于將所述獲取單元31獲取的所述交易信息和所述簽名單元獲取的所述簽名信息發(fā)送給礦機,以便所述礦機根據(jù)所述簽名信息對接收到的交易信息的正確性進行校驗。
進一步的,如圖5所示,所述裝置還包括:
接收單元34,用于接收所述礦機發(fā)送的重發(fā)指令;
所述發(fā)送單元33還用于根據(jù)所述接收單元34接收的所述重發(fā)指令,向所述礦機重新發(fā)送所述交易信息和所述簽名信息。
進一步的,所述發(fā)送單元33還用于在將所述交易信息和所述簽名信息發(fā)送給礦機之前,向所述礦機發(fā)送攜帶所述客戶平臺的身份標(biāo)識信息的身份驗證請求;
所述發(fā)送單元33還用于當(dāng)接收到所述礦機發(fā)送的身份驗證成功響應(yīng)消息時,將所述交易信息和所述簽名信息發(fā)送給礦機。
進一步的,所述客戶平臺存儲的私鑰為發(fā)起交易操作的客戶端發(fā)送的私鑰,或者為所述客戶平臺的私鑰。
本發(fā)明實施例提供的基于區(qū)塊鏈技術(shù)的交易信息校驗裝置,能夠在客戶平臺獲得交易信息后,不僅將該交易信息發(fā)送給礦機,還會為該交易信息配置無法篡改的簽名信息,并將簽名信息也發(fā)送給礦機,從而使得礦機在接收到交易信息和交易信息對應(yīng)的簽名信息后,不直接將交易信息寫入?yún)^(qū)塊鏈中,而是先利用交易信息對應(yīng)的簽名信息對接收到的交易信息的正確性進行校驗,當(dāng)確定接收到的交易信息正確后,才將交易信息寫入?yún)^(qū)塊鏈中,進而可以防止將被篡改的交易信息寫入?yún)^(qū)塊鏈中,由此提高了礦機向區(qū)塊鏈中寫入的交易信息的可靠性和準(zhǔn)確性。
進一步的,依據(jù)圖2所示的方法,本發(fā)明的另一個實施例還提供了一種基于區(qū)塊鏈技術(shù)的交易信息校驗裝置,所述裝置主要應(yīng)用于礦機,如圖6所示,所述裝置包括:
接收單元41,用于接收客戶平臺發(fā)送的交易信息和所述交易信息對應(yīng)的簽名信息,所述交易信息由客戶端發(fā)起的交易操作生成,所述簽名信息是通過所述客戶平臺存儲的私鑰對所述交易信息的運算值進行簽名得到的,所述交易信息的運算值根據(jù)預(yù)設(shè)算法進行運算而得;
運算單元42,用于根據(jù)所述預(yù)設(shè)算法對所述接收單元41接收到的交易信息進行運算,獲得所述交易信息的運算值;
驗簽單元43,用于根據(jù)所述運算單元42獲得的所述交易信息的運算值、所述接收單元接收的所述簽名信息以及所述私鑰對應(yīng)的公鑰進行驗簽;
寫入單元44,用于當(dāng)所述驗簽單元43驗簽成功時,確定接收到的交易信息正確,并將包括所述交易信息的新區(qū)塊寫入?yún)^(qū)塊鏈中。
進一步的,如圖7所示,所述裝置還包括:
刪除單元45,用于當(dāng)所述驗簽單元43驗簽失敗時,刪除所述交易信息以及所述簽名信息;
輸出單元46,用于輸出用于提示接收到的交易信息存在異常的提示信息。
進一步的,如圖7所示,所述裝置還包括:
第一發(fā)送單元47,用于當(dāng)所述驗簽單元43驗簽失敗時,向所述客戶平臺發(fā)送重發(fā)指令,以便所述客戶平臺根據(jù)所述重發(fā)指令重新發(fā)送交易信息以及所述交易信息對應(yīng)的簽名信息。
進一步的,如圖7所示,所述驗簽單元43包括:
解密模塊431,用于利用所述公鑰對所述簽名信息進行解密,獲得解密后的運算值;
比較模塊432,用于將所述交易信息的運算值與所述解密模塊解密后的運算值進行比較;
確定模塊433,用于當(dāng)所述比較模塊432的比較結(jié)果為兩者相同時,確定驗簽成功;當(dāng)所述比較模塊432的比較結(jié)果為兩者不同時,確定驗簽失敗。
進一步的,所述接收單元41還用于在接收客戶平臺發(fā)送的交易信息和所述交易信息對應(yīng)的簽名信息之前,接收所述客戶平臺發(fā)送的身份驗證請求,所述身份驗證請求中攜帶有所述客戶平臺的身份標(biāo)識信息;
如圖7所示,所述裝置還包括:
第二發(fā)送單元48,用于當(dāng)確認保存有所述客戶平臺的身份標(biāo)識信息時,向所述客戶平臺發(fā)送身份驗證成功響應(yīng)消息;
所述接收單元41還用于接收所述客戶平臺根據(jù)所述身份驗證成功響應(yīng)消息發(fā)送的交易信息和所述交易信息對應(yīng)的簽名信息。
進一步的,如圖7所示,所述客戶平臺存儲的私鑰為發(fā)起交易操作的客戶端發(fā)送的私鑰,或者為所述客戶平臺的私鑰。
本發(fā)明實施例提供的基于區(qū)塊鏈技術(shù)的交易信息校驗裝置,能夠在客戶平臺獲得交易信息后,不僅將該交易信息發(fā)送給礦機,還會為該交易信息配置無法篡改的簽名信息,并將簽名信息也發(fā)送給礦機,從而使得礦機在接收到交易信息和交易信息對應(yīng)的簽名信息后,不直接將交易信息寫入?yún)^(qū)塊鏈中,而是先利用交易信息對應(yīng)的簽名信息對接收到的交易信息的正確性進行校驗,當(dāng)確定接收到的交易信息正確后,才將交易信息寫入?yún)^(qū)塊鏈中,進而可以防止將被篡改的交易信息寫入?yún)^(qū)塊鏈中,由此提高了礦機向區(qū)塊鏈中寫入的交易信息的可靠性和準(zhǔn)確性。
進一步的,依據(jù)上述裝置實施例,本發(fā)明的另一個實施例還提供了一種基于區(qū)塊鏈技術(shù)的交易信息校驗系統(tǒng),如圖8所示,所述系統(tǒng)包括客戶平臺51和礦機52;其中,所述客戶平臺51包括如圖4或5所示的裝置;所述礦機52包括如圖6或7所示的裝置。
本發(fā)明實施例提供的基于區(qū)塊鏈技術(shù)的交易信息校驗系統(tǒng),能夠在客戶平臺獲得交易信息后,不僅將該交易信息發(fā)送給礦機,還會為該交易信息配置無法篡改的簽名信息,并將簽名信息也發(fā)送給礦機,從而使得礦機在接收到交易信息和交易信息對應(yīng)的簽名信息后,不直接將交易信息寫入?yún)^(qū)塊鏈中,而是先利用交易信息對應(yīng)的簽名信息對接收到的交易信息的正確性進行校驗,當(dāng)確定接收到的交易信息正確后,才將交易信息寫入?yún)^(qū)塊鏈中,進而可以防止將被篡改的交易信息寫入?yún)^(qū)塊鏈中,由此提高了礦機向區(qū)塊鏈中寫入的交易信息的可靠性和準(zhǔn)確性。
在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。
可以理解的是,上述方法及裝置中的相關(guān)特征可以相互參考。另外,上述實施例中的“第一”、“第二”等是用于區(qū)分各實施例,而并不代表各實施例的優(yōu)劣。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。
在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權(quán)利要求書由此明確地并入該具體實施方式,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的基于區(qū)塊鏈技術(shù)的交易信息校驗方法、裝置及系統(tǒng)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。