基於區塊鏈的發票真偽驗證方法及裝置和電子設備
本說明書實施例涉及區塊鏈技術領域,尤其涉及一種基於區塊鏈的發票真偽驗證方法及裝置和電子設備。
區塊鏈技術,也被稱之為分散式帳本技術,是一種由若干台計算設備共同參與“記帳”,共同維護一份完整的分散式資料庫的新興技術。由於區塊鏈技術具有去中心化、公開透明、每台計算設備可以參與資料庫記錄、並且各計算設備之間可以快速的進行資料同步的特性,使得區塊鏈技術在眾多的領域中廣泛的進行應用。
本說明書實施例提供的一種基於區塊鏈的發票真偽驗證方法及裝置和電子設備:
根據本說明書實施例的第一方面,提供一種基於區塊鏈的發票真偽驗證方法,所述區塊鏈中儲存有發票和發票的數位摘要之間的對應關係,所述方法包括:
接收用戶端提交的針對待識別發票的防偽驗證請求;
回應於所述防偽驗證請求,計算所述待識別發票的數位摘要,並查詢所述區塊鏈中是否儲存了與所述數位摘要對應的目標發票;
如果所述區塊鏈中儲存了與所述數位摘要對應的目標發票,向所述用戶端返回所述待識別發票為真的驗證結果。
可選的,所述方法還包括:
接收用戶端提交的發票創建請求;其中,所述發票創建請求包括用戶輸入的發票創建資訊;
回應於所述發票創建請求,調用發佈在區塊鏈上的智慧合約中聲明的發票創建邏輯,基於所述發票創建資訊創建發票;以及,
計算所述發票的數位摘要,並將所述發票和所述發票的數位摘要的對應關係在所述區塊鏈中進行儲存。
可選的,所述回應於所述防偽驗證請求,計算所述待識別發票的數位摘要,並查詢所述區塊鏈中是否儲存了與所述數位摘要對應的目標發票,包括:
回應於所述防偽驗證請求,調用發佈在區塊鏈上的智慧合約中聲明的發票驗證邏輯,計算所述待識別發票的數位摘要,並查詢所述區塊鏈中是否儲存了與所述數位摘要對應的目標發票。
可選的,所述方法還包括:
如果所述區塊鏈中儲存了與所述數位摘要對應的目標資料,向所述用戶端返回所述目標發票。
可選的,所述發票的數位摘要包括:
針對所述發票的發票內容;或者,所述發票內容中的唯一性資訊進行hash計算得到的hash值。
可選的,所述防偽驗證請求包括所述待識別發票的發票內容;或者,所述發票內容中的唯一性資訊;
所述計算所述待識別發票的數位摘要,包括:
獲取所述防偽驗證請求中的所述待識別發票的發票內容;或者,所述發票內容中的唯一性資訊;
針對獲取到的所述待識別發票的發票內容;或者,所述發票內容中的唯一性資訊進行hash計算得到hash值。
可選的,所述區塊鏈為聯盟鏈。
根據本說明書實施例的第二方面,提供一種基於區塊鏈的發票真偽驗證裝置,所述區塊鏈中儲存有發票和發票的數位摘要之間的對應關係,所述裝置包括:
接收單元,接收用戶端提交的針對待識別發票的防偽驗證請求;
驗證單元,回應於所述防偽驗證請求,計算所述待識別發票的數位摘要,並查詢所述區塊鏈中是否儲存了與所述數位摘要對應的目標發票;
返回單元,如果所述區塊鏈中儲存了與所述數位摘要對應的目標發票,向所述用戶端返回所述待識別發票為真的驗證結果。
可選的,所述裝置還包括:
創建請求接收單元,接收用戶端提交的發票創建請求;其中,所述發票創建請求包括用戶輸入的發票創建資訊;
發票創建回應單元,回應於所述發票創建請求,調用發佈在區塊鏈上的智慧合約中聲明的發票創建邏輯,基於所述發票創建資訊創建發票;以及,計算所述發票的數位摘要,並將所述發票和所述發票的數位摘要的對應關係在所述區塊鏈中進行儲存。
可選的,所述驗證單元,具體包括:
回應於所述防偽驗證請求,調用發佈在區塊鏈上的智慧合約中聲明的發票驗證邏輯,計算所述待識別發票的數位摘要,並查詢所述區塊鏈中是否儲存了與所述數位摘要對應的目標發票。
可選的,所述裝置還包括:
查詢返回單元,如果所述區塊鏈中儲存了與所述數位摘要對應的目標資料,向所述用戶端返回所述目標發票。
可選的,所述發票的數位摘要包括:
針對所述發票的發票內容;或者,所述發票內容中的唯一性資訊進行hash計算得到的hash值。
可選的,所述防偽驗證請求包括所述待識別發票的發票內容;或者,所述發票內容中的唯一性資訊;
所述計算所述待識別發票的數位摘要,包括:
獲取所述防偽驗證請求中的所述待識別發票的發票內容;或者,所述發票內容中的唯一性資訊;
針對獲取到的所述待識別發票的發票內容;或者,所述發票內容中的唯一性資訊進行hash計算得到hash值。
可選的,所述區塊鏈為聯盟鏈。
根據本說明書實施例的第五方面,提供一種電子設備,包括:
處理器;
用於儲存處理器可執行指令的記憶體;
其中,所述處理器被配置為上述任一項基於區塊鏈的發票真偽驗證方法。
本說明書實施例,提供了一種基於區塊鏈的發票真偽驗證方案,預先將發票和發票的數位摘要儲存到區塊鏈中;由於區塊鏈中儲存的資料存在不可篡改的特徵,以及數位摘要具有的唯一特徵(即一個數位摘要對應一個原始資料);因此,可以基於區塊鏈中儲存的發票的數位摘要進行防偽驗證。具體地,用戶只需要上傳待識別發票,如果可以查詢到所述區塊鏈中儲存有待識別發票的數位摘要對應的目標發票,就可以說明待識別發票與目標發票相同,進而就可以說明待識別的發票為真,反之為假。
這裡將詳細地對示例性實施例進行說明,其示例表示在圖式中。下面的描述涉及圖式時,除非另有表示,不同圖式中的相同數位表示相同或相似的要素。以下示例性實施例中所描述的實施方式並不代表與本說明書相一致的所有實施方式。相反,它們僅是與如所附申請專利範圍中所詳述的、本說明書的一些方面相一致的裝置和方法的例子。
在本說明書使用的術語是僅僅出於描述特定實施例的目的,而非旨在限制本說明書。在本說明書和所附申請專利範圍中所使用的單數形式的“一種”、“所述”和“該”也旨在包括多數形式,除非上下文清楚地表示其他含義。還應當理解,本文中使用的術語“和/或”是指並包含一個或多個相關聯的列出專案的任何或所有可能組合。
應當理解,儘管在本說明書可能採用術語第一、第二、第三等來描述各種資訊,但這些資訊不應限於這些術語。這些術語僅用來將同一類型的資訊彼此區分開。例如,在不脫離本說明書範圍的情況下,第一資訊也可以被稱為第二資訊,類似地,第二資訊也可以被稱為第一資訊。取決於語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當……時”或“回應於判定”。
發票(Invoice)可以是指一切單位或個人在購銷商品、提供或接受服務以及從事其他經營活動中,所開具和收取的業務憑證。發票通常是會計核算的原始依據,也是審計機關、稅務機關執法檢查的重要依據。對於公司來講,發票主要是公司做賬的依據,同時也是繳稅的費用憑證;而對於員工來講,發票主要可以用來報銷。
發票由於涉及到繳稅、報銷等相關利益,因此現實生活中提供或收到假髮票的情況下時有發生。一般的稅務局可以提供發票真偽的查驗,然而由於受到專業知識限制,普通用戶並不會到稅務局進行查驗;這就容易被一些不法商家利用,這些商家為了逃稅會提供假髮票給用戶。可見,需要提供一種簡單可靠的發票防偽驗證方案供用戶隨時查詢發票的真偽。
本說明書提出了一種基於區塊鏈的發票真偽驗證方案,透過預先將發票和發票的數位摘要儲存到區塊鏈中;由於區塊鏈中儲存的資料存在不可篡改的特徵,以及數位摘要具有的唯一特徵(即一個數位摘要對應一個原始資料);因此,可以基於區塊鏈中儲存的發票的數位摘要進行防偽驗證。具體地,用戶只需要上傳待識別發票,如果可以查詢到所述區塊鏈中儲存有待識別發票的數位摘要對應的目標發票,就可以說明待識別發票與目標發票相同,進而就可以說明待識別的發票為真,反之為假。
請參考圖1,圖1為本說明書一實施例提供的基於區塊鏈的發票真偽驗證方法的流程圖,所述區塊鏈中儲存有發票和發票的數位摘要之間的對應關係,所述方法包括:
步驟110:接收用戶端提交的針對待識別發票的防偽驗證請求;
步驟120:回應於所述防偽驗證請求,計算所述待識別發票的數位摘要,並查詢所述區塊鏈中是否儲存了與所述數位摘要對應的目標發票;
步驟130:如果所述區塊鏈中儲存了與所述數位摘要對應的目標發票,向所述用戶端返回所述待識別發票為真的驗證結果。
在本說明書所描述的區塊鏈,具體可以包括私有鏈、共有鏈以及聯盟鏈等,在本說明書中不進行特別限定。
例如,在一個場景中,上述區塊鏈具體可以是由總部機構、分支機搆、代理機構等作為聯盟成員組成的一個聯盟鏈;該聯盟鏈的運營方可以依託於該聯盟鏈,來部署相應的業務;而以上所描述的作為聯盟成員的總部機構、分支機搆、代理機構都可以作為上述業務的一個業務節點。各個業務節點可以將自身所產生或者接收到的與發票以及數位摘要以交易的形式在聯盟鏈中進行發佈,並在該交易經過聯盟鏈中的共識節點的共識處理之後,在聯盟鏈中的分散式資料庫進行儲存,完成上述交易資訊的“上鏈”存證。
其中,需要說明的是,在本說明書中所描述的交易(Transaction),是指透過區塊鏈的用戶端創建,並需要最終發佈至區塊鏈的分散式資料庫中的一筆資料。
區塊鏈中的交易,通常存在狹義的交易以及廣義的交易之分。狹義的交易是指用戶向區塊鏈發佈的一筆價值轉移;例如,在傳統的比特幣區塊鏈網路中,交易可以是用戶在區塊鏈中發起的一筆轉帳。而廣義的交易是指用戶向區塊鏈發佈的一筆具有業務意圖的業務資料;例如,運營方可以基於實際的業務需求搭建一個聯盟鏈,依託於聯盟鏈部署一些與價值轉移無關的其它類型的線上業務(比如,存證業務、防偽驗證業務等),而在這類聯盟鏈中,交易可以是用戶在聯盟鏈中發佈的一筆具有業務意圖的業務消息或者業務請求。
上述用戶端,可以包括任意類型的以區塊鏈中儲存的底層業務資料作為資料支撐,來實現特定的業務功能的上層應用。
在區塊鏈技術中,區塊鏈中節點對區塊進行操作通常需要依賴相應的智慧合約(Smart contract)。例如在區塊鏈中儲存、修改、刪除等操作均需要依賴智慧合約。所述智慧合約可以是一種旨在應用在可以部署在區塊鏈上的以資訊化方式傳播、驗證或執行合同的電腦協定。透過在智慧合約中聲明業務邏輯可以實現執行相應操作。智慧合約允許在沒有第三方的情況下進行可信交易。這些交易可追蹤且不可逆轉。智慧合約能夠提供優於傳統合同方法的安全,並減少與合同相關的其他交易成本。通常,智慧合約可以是部署在區塊鏈節點本地的,當節點需要執行某個動作時可以調用相應的智慧合約,運行智慧合約以執行智慧合約中聲明的業務邏輯,從而得到執行結果。
本說明書中所述的數位摘要,可以是指基於原始資料進行雜湊(hash,也稱為散列)計算後得到的hash值。
具體地,所述發票的數位摘要包括:
針對所述發票的發票內容;或者,所述發票內容中的唯一性資訊進行hash計算得到的hash值。
其中,所述發票內容可以包含唯一性資訊。例如,發票內容可以包括發票號碼、發票代碼;通常發票號碼和發票代碼均是唯一性資訊;對應的,發票的數位摘要可以記為hash(發票號碼+發票代碼)。當然,發票內容還可以包括非唯一性資訊,例如發票日期、不含稅金額;對應的,發票的數位摘要即可以記為hash(發票號碼+發票代碼+發票日期+不含稅金額)。
相應地,所述防偽驗證請求包括所述待識別發票的發票內容;或者,所述發票內容中的唯一性資訊;
所述計算所述待識別發票的數位摘要,包括:
獲取所述防偽驗證請求中的所述待識別發票的發票內容;或者,所述發票內容中的唯一性資訊;
針對獲取到的所述待識別發票的發票內容;或者,所述發票內容中的唯一性資訊進行hash計算得到hash值。
如前所述,本說明書預先將發票進行上鏈,在一實施例中,所述方法還包括:
接收用戶端提交的發票創建請求;其中,所述發票創建請求包括用戶輸入的發票創建資訊;
回應於所述發票創建請求,調用發佈在區塊鏈上的智慧合約中聲明的發票創建邏輯,基於所述發票創建資訊創建發票;以及,
計算所述發票的數位摘要,並將所述發票和所述發票的數位摘要的對應關係在所述區塊鏈中進行儲存。
值得一提的是,前述計算所述待識別發票的數位摘要和創建發票時計算發票的數位摘要採用的是相同的雜湊演算法。
以下結合圖2所示的發票上鏈的示意圖加以說明:
在本實施例中,用戶在需要在該區塊鏈中創建發票時,可以透過其所使用的用戶端發起一筆用於創建發票的交易,即透過用戶端發起發票創建請求。具體地,該用戶可以透過該用戶端提供的發票創建頁面,輸入待創建的目標發票的發票創建資訊;例如,發票的抬頭、金額等資訊。在該用戶完成發票創建資訊的輸入後,該用戶端可以基於用戶輸入的發票創建資訊來產生對應的發票創建請求,並將該發票創建請求發送至該區塊鏈中的節點設備。
該區塊鏈中的節點設備在接收到該發票創建請求後,可以對該發票創建請求進行回應,調用發佈在區塊鏈上的智慧合約中聲明的發票創建邏輯,基於發票創建請求中的發票創建資訊創建發票;以及在完成發票創建後,可以進一步計算所述發票的數位摘要,並將所述發票和所述發票的數位摘要的對應關係在所述區塊鏈中進行儲存。
在一實施例中,回應於所述發票創建請求的節點設備,還可以先判定與該發票創建請求對應的發票開具方的發票創建額度是否充足。
舉例來說,可以從該發票創建請求中該用戶輸入的發票創建資訊中,獲取發票開具方的納稅人識別號,並基於該納稅人識別號判定對應的發票開具方,該發票開具方即為該發票創建請求對應的發票開具方。後續,可以先判定該發票開具方的發票創建額度是否充足。
在示出的一種實施方式中,可以由該節點設備調用部署在該區塊鏈上的智慧合約中聲明的額度檢查邏輯,判定該發票開具方的發票創建額度是否充足。
其中,額度檢查邏輯具體可以是聲明在該智慧合約中的,與檢查發票開具方的發票創建額度的執行邏輯相關的程式碼(例如:一些可供調用的程式方法或者函數)。
或者,也可以由該節點設備調用第三方的可信服務,將該發票創建請求發送給該第三方的可信服務。其中,第三方的可信服務可以是部署在第三方的可信服務設備上的,與檢查發票開具方的發票創建額度的執行邏輯相關的程式碼。舉例來說,該第三方的可信服務設備可以是在稅務局內網中的設備,由此可以提高資料安全性。
該第三方的可信服務可以判定該發票開具方的發票創建額度是否充足,並將判定結果返回至該節點設備。該節點設備可以基於該第三方的可信服務返回的判定結果,判定該發票開具方的發票創建額度是否充足。
具體地,該第三方的可信服務可以在判定該發票開具方的發票創建額度充足時,向該節點設備返回該發票開具方的發票創建額度充足的判定結果。該節點設備在接收到該判定結果後,可以判定該發票開具方的發票創建額度充足。或者,該第三方的可信服務可以在判定該發票開具方的發票創建額度不充足時,向該節點設備返回該發票開具方的發票創建額度不充足的判定結果。該節點設備在接收到該判定結果後,可以判定該發票開具方的發票創建額度不充足。
如果判定該發票開具方的發票創建額度充足,則可以調用部署在該區塊鏈上的智慧合約中聲明的發票創建邏輯,基於該發票創建請求中用戶輸入的發票創建資訊,創建目標發票。
其中,發票創建邏輯具體可以是聲明在該智慧合約中的,與創建發票的執行邏輯相關的程式碼。
在另一實施例中,所述發票可以是由原始產生發票的機構提供的。例如可以是由國家稅務局將發票的第一發票資料直接或間接上傳給區塊鏈。具體地,當一開發票設備開具一張發票後,該發票也記錄在稅務局的系統上,該稅務局的稅務系統可以同步將發票上鏈存證。其中所述上鏈存證的過程如前所述實施例相同,這裡不再進行贅述。
如圖2所示,發票A、發票B和發票C上鏈後,在區塊鏈中就可以記錄有發票A hash和發票A資料的映射關係;發票B hash和發票B資料的映射關係;發票C hash和發票C資料的映射關係。
以下介紹本說明書中發票防偽驗證的過程:
用戶在收到發票後,如果需要知道發票真偽,可以將該發票作為待識別發票,並可以透過用戶端向區塊鏈提交針對待識別發票的防偽驗證請求,來調用在區塊鏈上部署的用於發票防偽驗證的智慧合約,驗證該待識別發票的真偽。
在一種實現方式中,如前創建發票類似的,用戶可以在用戶端上輸入待驗證發票的發票內容或者發票內容中的唯一性資訊(以下將發票內容或者發票內容中的唯一性資訊簡稱為發票資料),並將輸入的發票資料攜帶在用戶端發送的防偽驗證請求中;發送給區塊鏈中的節點設備,來觸發區塊鏈中的節點設備調用部署的智慧合約,驗證待識別發票的真偽。也就是說,區塊鏈中節點設備可以直接接收到發票資料。
在另一種實現方式中,用戶可以對待識別發票進行拍照,採集待識別發票的發票圖像,並在用戶端上或者第三方識別系統上對採集到的發票圖像進行圖像識別,來識別出發票資料,並將透過圖像識別得到的發票資料攜帶在用戶端發送的防偽驗證請求中,發送給區塊鏈中的節點設備,來觸發區塊鏈中的節點設備調用部署的智慧合約,驗證待識別發票的真偽。
其中,對採集到的發票的圖像資料進行圖像識別,具體可以由部署在區塊鏈中的智慧合約來完成,也可以透過調用第三方的可信服務來完成。
在一實施例中,根據圖像識別演算法,識別所述發票圖像中的發票資料。該實施例中,智慧合約自身具有圖像識別的合約邏輯,可以在節點本地識別出發票圖像中的發票資料。
在一實施例中,所述方法還包括:
節點設備也可以透過調用第三方的可信服務(比如第三方的圖像識別機構),將防偽驗證請求中的發票圖像發送給第三方可信服務,由第三方可信服務基於搭載的圖像識別演算法,對發票圖像進行圖像識別獲取上述發票資料,而節點設備可以獲取所述第三方圖像識別機構返回的發票資料。該實施例中,可以將圖像識別交由第三方圖像識別機構完成,從而降低對節點性能的要求(並非所有節點都可以具備圖像識別所需的計算資源)。
在一實施例中,節點設備在獲取到防偽驗證請求中的發票資料後,可以調用發佈在區塊鏈上的智慧合約中聲明的發票驗證邏輯,計算所述待識別發票的數位摘要,並查詢所述區塊鏈中是否儲存了與所述數位摘要對應的目標發票。
如果所述區塊鏈中儲存了與所述數位摘要對應的目標發票,說明待識別發票已在區塊鏈存證;因此可以將所述待識別發票為真的驗證結果返回給所述用戶端;進一步的,如果所述區塊鏈中儲存了與所述數位摘要對應的目標資料,向所述用戶端返回所述目標發票,以供用戶端查看。
如果所述區塊鏈中查詢不到所述數位摘要對應的目標發票,說明待識別發票沒有在區塊鏈上存證,因此可以將所述待識別發票為假的驗證結果返回給所述用戶端。
本說明書提出了一種基於區塊鏈的發票真偽驗證方案,透過預先將發票和發票的數位摘要儲存到區塊鏈中;由於區塊鏈中儲存的資料存在不可篡改的特徵,以及數位摘要具有的唯一特徵(即一個數位摘要對應一個原始資料);因此,可以基於區塊鏈中儲存的發票的數位摘要進行防偽驗證。具體地,用戶只需要上傳待識別發票,如果可以查詢到所述區塊鏈中儲存有待識別發票的數位摘要對應的目標發票,就可以說明待識別發票與目標發票相同,進而就可以說明待識別的發票為真,反之為假。
與前述基於區塊鏈的發票真偽驗證方法實施例相對應,本說明書還提供了基於區塊鏈的發票真偽驗證裝置的實施例。所述裝置實施例可以透過軟體實現,也可以透過硬體或者軟硬體結合的方式實現。以軟體實現為例,作為一個邏輯意義上的裝置,是透過其所在設備的處理器將非揮發性記憶體中對應的電腦業務程式指令讀取到記憶體中運行形成的。從硬體層面而言,如圖3所示,為本說明書基於區塊鏈的發票真偽驗證裝置所在設備的一種硬體結構圖,除了圖3所示的處理器、網路介面、記憶體以及非揮發性記憶體之外,實施例中裝置所在的設備通常根據基於區塊鏈的發票真偽驗證實際功能,還可以包括其他硬體,對此不再贅述。
請參見圖4,為本說明書一實施例提供的基於區塊鏈的發票真偽驗證裝置的模組圖,所述裝置對應了圖1所示實施例,所述區塊鏈中儲存有發票和發票的數位摘要之間的對應關係,所述裝置包括:
接收單元210,接收用戶端提交的針對待識別發票的防偽驗證請求;
驗證單元220,回應於所述防偽驗證請求,計算所述待識別發票的數位摘要,並查詢所述區塊鏈中是否儲存了與所述數位摘要對應的目標發票;
返回單元230,如果所述區塊鏈中儲存了與所述數位摘要對應的目標發票,向所述用戶端返回所述待識別發票為真的驗證結果。
可選的,所述裝置還包括:
創建請求接收單元,接收用戶端提交的發票創建請求;其中,所述發票創建請求包括用戶輸入的發票創建資訊;
發票創建回應單元,回應於所述發票創建請求,調用發佈在區塊鏈上的智慧合約中聲明的發票創建邏輯,基於所述發票創建資訊創建發票;以及,計算所述發票的數位摘要,並將所述發票和所述發票的數位摘要的對應關係在所述區塊鏈中進行儲存。
可選的,所述驗證單元220,具體包括:
回應於所述防偽驗證請求,調用發佈在區塊鏈上的智慧合約中聲明的發票驗證邏輯,計算所述待識別發票的數位摘要,並查詢所述區塊鏈中是否儲存了與所述數位摘要對應的目標發票。
可選的,所述裝置還包括:
查詢返回單元,如果所述區塊鏈中儲存了與所述數位摘要對應的目標資料,向所述用戶端返回所述目標發票。
可選的,所述發票的數位摘要包括:
針對所述發票的發票內容;或者,所述發票內容中的唯一性資訊進行hash計算得到的hash值。
可選的,所述防偽驗證請求包括所述待識別發票的發票內容;或者,所述發票內容中的唯一性資訊;
所述計算所述待識別發票的數位摘要,包括:
獲取所述防偽驗證請求中的所述待識別發票的發票內容;或者,所述發票內容中的唯一性資訊;
針對獲取到的所述待識別發票的發票內容;或者,所述發票內容中的唯一性資訊進行hash計算得到hash值。
可選的,所述區塊鏈為聯盟鏈。
上述實施例闡明的系統、裝置、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦,電腦的具體形式可以是個人電腦、膝上型電腦、蜂巢式電話、相機電話、智慧型電話、個人數位助理、媒體播放機、導航設備、電子郵件收發設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任意幾種設備的組合。
上述裝置中各個單元的功能和作用的實現過程具體詳見上述方法中對應步驟的實現過程,在此不再贅述。
對於裝置實施例而言,由於其基本對應於方法實施例,所以相關之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分佈到多個網路單元上。可以根據實際的需要選擇其中的部分或者全部模組來實現本說明書方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。
以上圖4描述了基於區塊鏈的發票真偽驗證裝置的內部功能模組和結構示意,其實質上的執行主體可以為一種電子設備,包括:
處理器;
用於儲存處理器可執行指令的記憶體;
其中,所述處理器被配置為:
接收用戶端提交的針對待識別發票的防偽驗證請求;
回應於所述防偽驗證請求,計算所述待識別發票的數位摘要,並查詢所述區塊鏈中是否儲存了與所述數位摘要對應的目標發票;其中,所述區塊鏈中儲存有發票和發票的數位摘要之間的對應關係;
如果所述區塊鏈中儲存了與所述數位摘要對應的目標發票,向所述用戶端返回所述待識別發票為真的驗證結果。
可選的,還包括:
接收用戶端提交的發票創建請求;其中,所述發票創建請求包括用戶輸入的發票創建資訊;
回應於所述發票創建請求,調用發佈在區塊鏈上的智慧合約中聲明的發票創建邏輯,基於所述發票創建資訊創建發票;以及,
計算所述發票的數位摘要,並將所述發票和所述發票的數位摘要的對應關係在所述區塊鏈中進行儲存。
可選的,所述回應於所述防偽驗證請求,計算所述待識別發票的數位摘要,並查詢所述區塊鏈中是否儲存了與所述數位摘要對應的目標發票,包括:
回應於所述防偽驗證請求,調用發佈在區塊鏈上的智慧合約中聲明的發票驗證邏輯,計算所述待識別發票的數位摘要,並查詢所述區塊鏈中是否儲存了與所述數位摘要對應的目標發票。
可選的,還包括:
如果所述區塊鏈中儲存了與所述數位摘要對應的目標資料,向所述用戶端返回所述目標發票。
可選的,所述發票的數位摘要包括:
針對所述發票的發票內容;或者,所述發票內容中的唯一性資訊進行hash計算得到的hash值。
可選的,所述防偽驗證請求包括所述待識別發票的發票內容;或者,所述發票內容中的唯一性資訊;
所述計算所述待識別發票的數位摘要,包括:
獲取所述防偽驗證請求中的所述待識別發票的發票內容;或者,所述發票內容中的唯一性資訊;
針對獲取到的所述待識別發票的發票內容;或者,所述發票內容中的唯一性資訊進行hash計算得到hash值。
可選的,所述區塊鏈為聯盟鏈。
在上述電子設備的實施例中,應理解,該處理器可以是中央處理單元(英文:Central Processing Unit,簡稱:CPU),還可以是其他通用處理器、數位訊號處理器(英文:Digital Signal Processor,簡稱:DSP)、專用積體電路(英文:Application Specific Integrated Circuit,簡稱:ASIC)等。通用處理器可以是微處理器或者該處理器也可以是任何常規的處理器等,而前述的記憶體可以是唯讀記憶體(英文:read-only memory,縮寫:ROM)、隨機存取記憶體(英文:random access memory,簡稱:RAM)、快閃記憶體、硬碟或者固態硬碟。結合本發明實施例所公開的方法的步驟可以直接體現為硬體處理器執行完成,或者用處理器中的硬體及軟體模組組合執行完成。
本說明書中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於電子設備實施例而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
本領域技術人員在考慮說明書及實踐這裡公開的發明後,將容易想到本說明書的其它實施方案。本說明書旨在涵蓋本說明書的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本說明書的一般性原理並包括本說明書未公開的本技術領域中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本說明書的真正範圍和精神由下面的申請專利範圍指出。
應當理解的是,本說明書並不局限於上面已經描述並在圖式中示出的精確結構,並且可以在不脫離其範圍進行各種修改和改變。本說明書的範圍僅由所附的申請專利範圍來限制。
110、120、130:步驟
210:接收單元
220:驗證單元
230:返回單元
圖1是本說明書一實施例提供的基於區塊鏈的發票真偽驗證方法的流程圖;
圖2是本說明書一實施例提供的發票上鏈的示意圖;
圖3是本說明書一實施例提供的基於區塊鏈的發票真偽驗證裝置的硬體結構圖;
圖4是本說明書一實施例提供的基於區塊鏈的發票真偽驗證裝置的模組示意圖。