塊鏈式帳本中的簽名驗證方法、系統、裝置及設備
本說明書實施例係有關資訊技術領域,尤其有關一種塊鏈式帳本中的簽名驗證方法、系統、裝置及設備。
在中心化的資料庫服務端以塊鏈式帳本對外提供服務時,通常一個帳本可能會存在多個用戶。為了保障帳本中資料的真實性,帳本中的資料往來,一般都會需要數位簽名,此外,資料庫服務端還會產生針對帳本的其它相關簽名憑證,例如,針對部分帳本的授時證書。從而,在一個帳本中可以涉及多種數位簽名。
在塊鏈式帳本中存在多種簽名,用戶需要隨時瞭解與自己相關的其他方的數位簽名是真實可信的,但是實際上,用戶並不清楚自己在帳本中的資料會涉及到哪些其他利益方,以及,如何去驗證其它利益方的數位簽名。
基於此,用戶有需要對與自己的資料相關聯的其他利益方進行靈活的數位簽名驗證。
本發明實施例的目的是提供一種塊鏈式帳本中實現數位簽名驗證的方法。
為解決上述技術問題,本發明實施例是這樣實現的:
一種塊鏈式帳本中的簽名驗證方法,應用於包括資料庫服務端和客戶端的系統中,所述資料庫服務端以中心化的方式透過塊鏈式帳本儲存資料,包括:
客戶端,發送包含驗證對象參數和雜湊值的簽名驗證指令至資料庫服務端,所述驗證對象參數包括其他方參數、平台參數以及授時證書參數,所述驗證對象參數用於指示待驗證對象的類型;
服務端,基於驗證對象參數和所述雜湊值獲取待驗證對象,所述待驗證對象的類型包括其他方數位簽名、服務端數位簽名或者授時證書;
服務端發送待驗證對象至客戶端;
客戶端對所述待驗證對象執行驗證,產生驗證結果。
相應地,本說明書實施例還提供一種塊鏈式帳本中的簽名驗證系統,包括資料庫服務端和客戶端的系統中,所述資料庫服務端以中心化的方式透過塊鏈式帳本儲存資料,
客戶端,發送包含驗證對象參數和雜湊值的簽名驗證指令至資料庫服務端,所述驗證對象參數包括其他方參數、平台參數以及授時證書參數,所述驗證對象參數用於指示待驗證對象的類型;
服務端,基於驗證對象參數和所述雜湊值獲取待驗證對象,所述待驗證對象的類型包括其他方數位簽名、服務端數位簽名或者授時證書;
服務端,發送待驗證對象發送至客戶端;
客戶端,對所述待驗證對象執行驗證,產生驗證結果。
相應地,本說明書實施例還提供一種塊鏈式帳本中的簽名驗證方法,應用於以中心化的方式透過塊鏈式帳本儲存資料的資料庫服務端中,所述方法包括:
接收包含驗證對象參數和雜湊值的簽名驗證指令,所述驗證對象參數包括其他方參數、平台參數以及授時證書參數,所述驗證對象參數用於指示待驗證對象的類型;
基於驗證對象參數和所述雜湊值獲取待驗證對象,所述待驗證對象的類型包括其他方數位簽名、服務端數位簽名或者授時證書;
發送待驗證對象發送至客戶端,以便客戶端進行驗證。
相應地,本說明書實施例還提供一種塊鏈式帳本中的簽名驗證裝置,應用於以中心化的方式透過塊鏈式帳本儲存資料的資料庫服務端中,所述裝置包括:
接收模組,接收包含驗證對象參數和雜湊值的簽名驗證指令,所述驗證對象參數包括其他方參數、平台參數以及授時證書參數,所述驗證對象參數用於指示待驗證對象的類型;
確定模組,基於驗證對象參數和所述雜湊值獲取待驗證對象,所述待驗證對象的類型包括其他方數位簽名、服務端數位簽名或者授時證書;
發送模組,發送待驗證對象發送至客戶端,以便客戶端進行驗證。
由以上本發明實施例提供的技術方案可見,透過用戶在發起驗證時透過驗證對象參數指明需要驗證的類型,以及給出相關的雜湊值,服務端則可以根據雜湊值以及驗證對象參數確定出用戶想要驗證的數位簽名,從而獲取得到對於該雜湊值相關的資料的數位簽名給用戶,以便用戶進行驗證。本實施例可以便於用戶靈活的針對同一個帳本中涉及的各種數位簽名進行驗證。
此外,本說明書實施例中的任一實施例並不需要達到上述的全部效果。
為了使本領域技術人員更好地理解本說明書實施例中的技術方案,下面將結合本說明書實施例中的圖式,對本說明書實施例中的技術方案進行詳細地描述,顯然,所描述的實施例僅僅是本說明書的一部分實施例,而不是全部的實施例。基於本說明書中的實施例,本領域普通技術人員所獲得的所有其他實施例,都應當屬於保護的範圍。
首先對本說明書中所涉及的中心化的塊鏈式的帳本進行說明。
在本說明書實施例所涉及中心化的資料庫服務提供方中,一個帳本包括含多個資料塊,資料塊透過如下方式預先產生:
接收待儲存的資料記錄,確定各資料記錄的雜湊值。此處的待儲存的資料記錄,可以是客戶端個人用戶的各種消費記錄,也可以是應用伺服器基於用戶的指令,在執行業務邏輯時產生的業務結果、中間狀態以及操作記錄等等。具體的業務場景可以包括消費記錄、審計日誌、供應鏈條、政府監管記錄、醫療記錄等等。
當達到預設的成塊條件時,確定待寫入資料塊中的各資料記錄,產生包含資料塊的雜湊值和資料記錄的第N個資料塊。
所述預設的成塊條件包括:待儲存的資料記錄數量達到數量閾值,例如,每接收到一千條資料記錄時,產生一個新資料塊,將一千條資料記錄寫入塊中;或者,距離上一次成塊時刻的時間間隔達到時間閾值,例如,每隔5分鐘,產生一個新資料塊,將在這5分鐘內接收到的資料記錄寫入塊中。
此處的N指的是資料塊的序號,換言之,在本說明書實施例中,資料塊是以塊鏈的形式,基於成塊時間的順序先後排列,具有很強的時序特徵。其中,資料塊的塊高基於成塊時間的先後順序而單調遞增。塊高可以是序號,此時第N個資料塊的塊高即為N;塊高也可以其它方式產生。
當N=1時,即此時的資料塊為初始資料塊。初始資料塊的雜湊值和塊高基於預設方式給定。例如,初始資料塊中不包含資料記錄,雜湊值則為任一給定的雜湊值,塊高blknum=0;又例如,初始資料塊的產生觸發條件與其它資料塊的觸發條件一致,但是初始資料塊的雜湊值由對初始資料塊中的所有內容取雜湊確定。
當N>1時,由於前一個資料塊的內容和雜湊值已經確定,則此時,可以基於前一個資料塊(即第N-1個資料塊)的雜湊值產生目前資料塊(第N個資料塊)的雜湊值,例如,一種可行的方式為,確定每一條將要寫入第N個塊中的資料記錄的雜湊值,按照在塊中的排列順序,產生一個默克爾樹,將默克爾樹的根雜湊值和前一個資料塊的雜湊值拼接在一起,再次採用雜湊演算法,產生目前資料塊的雜湊值。又例如,還可以按照資料塊中資料記錄的順序進行拼接並取雜湊得到整體資料記錄的雜湊值,拼接前一個資料塊的雜湊值和整體資料記錄的雜湊值,並對拼接得到的字串進行雜湊運算,產生資料塊的雜湊值。
在服務端產生一個資料塊並寫入帳本時,即可以將資料塊的雜湊值以及資料塊中各資料記錄的雜湊值返回給客戶端。
透過前述的資料塊的產生方式,每一個資料塊透過雜湊值來確定,資料塊的雜湊值由資料塊中的資料記錄的內容、順序以及前一個資料塊的雜湊值來決定。用戶可以隨時基於資料塊的雜湊值發起驗證,對於資料塊中任何內容(包括對於資料塊中資料記錄內容或者順序的修改)的修改都會造成在驗證時計算得到的資料塊的雜湊值和資料塊產生時的雜湊值不一致,而導致驗證失敗,從而實現了中心化下的不可篡改。
具體而言,對於資料記錄的驗證方式即為獲取所述資料記錄,確定所述記錄的雜湊,以及資料記錄所處的資料塊中的其它資料記錄的雜湊值,形成默克爾樹,驗證能否重新產生該默克爾樹的默克爾樹根雜湊。對於資料塊的驗證方式即為根據前一個資料塊的雜湊值以及自身資料記錄,重新計算自身資料塊的雜湊值,驗證與之前計算得到的雜湊值是否一致。
在這個服務方式中,一個帳本有可能是對接多個機構用戶(此處的用戶一般是企業級B端用戶)的。例如,一個帳本同時對接多個醫院和醫保機構,然後,這些醫院和醫保機構在對個人用戶提供服務時,將相關的醫療記錄寫入帳本中。在這個過程中,醫院和醫保機構在將醫療記錄寫入帳本前,一般會攜帶數位簽名,資料庫服務端可以在簽名驗證通過後,將醫療記錄寫入帳本。
又或者,一個帳本有可能是對接多個業務合作機構用戶,各機構不對外服務,只是分別將各自的業務資料記錄寫入同一個帳本,其中,任一機構的業務資料記錄在寫入帳本前,需要該業務資料所涉及的多方用戶進行確認。如圖1所示,圖1為本說明書實施例所涉及的系統的架構示意圖。需要說明的是,在該架構中,個人用戶可以透過業務機構向服務端發起驗證請求,也可以直接向服務端發起驗證請求。
對於個人用戶/機構用戶而言,他知道自身的資料記錄寫入了帳本。同時,資料記錄被寫入帳本的時候,其還會得到與自身資料記錄相關的雜湊值(資料記錄產生的雜湊值,或者資料記錄所處的資料塊的雜湊值),並且,可以基於前述雜湊值直接對服務端發起查詢和驗證。
同時,在本說明書實施例所提供的帳本中,為了防止偽鏈,還提供一種對於帳本的授時認證的方法,如圖2所示,圖2是本說明書實施例提供的一種鏈式帳本的授時認證方法的流程示意圖,該流程具體包括如下步驟:
S201,確定需要進行授時認證的目標帳本,所述目標帳本中至少包含一個資料塊,或者多個塊高連續的資料塊。
首先需要說明的是,如前所述,在所述鏈式帳本中,除初始資料塊以外,每一個資料塊中包含至少一條資料記錄,每一個資料塊中包含由前一個資料塊的雜湊值和自身所包含的資料記錄確定的自身資料塊的雜湊值,資料塊的塊高基於成塊時間的先後順序而單調遞增。
具體而言,服務方首先從已經產生並儲存的資料塊中確定出需要進行授時認證的一段帳本,其中至少應該包含一個資料塊,或者多個塊高連續的資料塊。確定的方式可以基於用戶操作進行指定,例如,用戶發起授時指令,指令中包含需要進行授時認證的起始塊高和塊數量;也可以是無需用戶指定,服務方基於預設的業務邏輯自動進行。
例如,從最細細微性上,可以每一個資料塊都去申請授時。在這種方式下,默克爾樹的根雜湊即為該資料塊的塊雜湊值,該方式可以最大程度的對帳本(即各資料塊)進行真實性的保護。由於資料塊的出塊頻率較高,這種方式無論對於授時中心,還是對於服務方而言,成本開銷都會比較大。一種可選的方式為,設置一定的授時預設條件,當滿足一定的授時預設條件時,發起授時請求。在新產生的資料塊都認為是待授時認證的資料塊時,所述的授時預設條件可以是:待授時認證的資料塊達到數量閾值,或者,距離上一次授時認證的時間間隔已經到達時間閾值。
S203,按照所述目標帳本中資料塊的塊高的順序,產生對應於所述目標帳本的默克爾樹,基於各資料塊的塊雜湊確定所述默克爾樹的根雜湊。
由於鏈式帳本的前後依存性,此處產生的默克爾樹只需按照各資料塊的順序進行產生即可。具體的根雜湊的計算方式即為常規的計算方式,此處不再贅述。
S205,將所述默克爾樹的根雜湊和資料塊的相關資訊發送至可信授時機構,其中,所述資料塊的相關資訊包括起始塊高、結束塊高或者資料塊的數量;
可信授時機構(例如,國家授時中心或者國家授時中心的授權授時機構)接收到上述資訊,即給出一個可信時間戳記,並且對可信時間戳記進行數位簽名認證,產生一個包含可信時間戳記和數位簽名的授時證書,其中還可以包含上述資料塊的相關資訊,數位簽名的方式為常規的私鑰加密、公鑰解密即可。
S207,接收可信授時機構所返回的對應於所述目標帳本的包含可信時間戳記和可信授時機構簽名的的授時證書;
從而,服務方可以接收到一連串的包含可信授時機構簽名的可信時間戳記,每一個可信時間戳記對應於一段帳本,並且,基於相關資訊可以明確的知道是哪一段資料塊。服務方可以基於該可信時間戳記進行相應的管理,以及驗證。
例如,在需要對某帳本進行審計時,服務方可以給出帳本中相應的資料塊包含可信授時機構的可信時間戳記和簽名的授時證書,並且根據授時證書中所包含的相關資訊進行默克爾樹根雜湊的重新計算,如果計算得到的默克爾樹根雜湊與授權證書中的一致,則可以驗證該段證書是正確無誤的。並且,從可信時間戳記上還可以確認該證書所對應的資料塊是不可能被日後偽造的,可以有效防止服務方和被服務方聯合製造包含虛假時間戳記的帳本,以躲避相應的審計。如圖3所示,圖3為本說明書實施例給出的一種具體的產生授時證書的示意圖。在該示意圖,默克爾樹未被具體示出。授時證書可以確認並驗證該部分帳本不可能被日後偽造,可以有效防止服務方和被服務方聯合製造包含虛假時間戳記的帳本。
在前述過程中,可以看到,對於某個個人用戶/機構用戶而言,有可能有多條資料記錄分散的存在帳本中,每條資料記錄可能涉及到不同的機構方,當用戶需要對帳本的真實性進行驗證時,其還關心與自己的資料相關的機構的簽名的和服務端的數位簽名的可靠性,以及,服務端所提供的授時證書的真實性。
基於此,本說明書實施例提供一種塊鏈式帳本中的簽名驗證方法,應用於包括資料庫服務端和客戶端的系統中,所述資料庫服務端以中心化的方式透過塊鏈式帳本儲存資料,如圖4所示,圖4為本說明書實施例所提供的一種塊鏈式帳本中的簽名驗證方法的流程示意圖,包括:
S401,客戶端,發送包含驗證對象參數和雜湊值的簽名驗證指令至資料庫服務端,所述驗證對象參數包括其他方參數、平台參數以及授時證書參數。
如圖1所示,個人用戶或者機構用戶均可以透過驗證指令的方式,向服務端發起對於數位簽名的驗證,由於數位簽名可能包含多種,因此,驗證對象參數用於指示服務端本次待驗證對象的類型,以便服務端去對應的獲取待驗證對象。
其中,其他方參數用於指示待驗證對象為其他方數位簽名,平台參數用於指示待驗證對象為服務端數位簽名,授時證書參數用於指示待驗證對象為授時證書。
以下給出幾種驗證指令的具體示例:
1,VerifyProof(Role,hash1),其中的“Role”即為其他方參數;
2,VerifyProof(ANT,hash2),其中的“ANT”即為平台參數;
3,VerifyProof(CA,hash3),其中的“CA”即為授時證書參數。
顯然,在實際應用中,具體的驗證指令的形式以及驗證對象參數的形式可以基於實際需要自行設定,這並不構成對本發明的限定。
S403,服務端,基於驗證對象參數和所述雜湊值獲取待驗證對象,所述待驗證對象的類型包括其他方數位簽名、服務端數位簽名或者授時證書。
服務端首先基於雜湊值確定用戶需要驗證的資料記錄或者資料塊,同時,根據資料記錄或者資料塊得到相應的包含數位簽名的待驗證對象,顯然,待驗證對象的類型是由驗證對象參數指定的,具體而言:
1,當驗證對象參數為其他方參數,本次需要驗證的即為其他方數位簽名。在以“Role”作為其他方參數進行驗證時,操作指令中並不需要用戶指定具體的其他方是誰,服務端可以基於雜湊值確定對應的資料記錄或者資料塊,進而確定資料記錄或者資料塊中所涉及的其他方,例如,將該雜湊值所對應的資料塊中,所有涉及寫入資料的其他用戶確定為其他方。
從而,服務端將雜湊值對應的資料記錄或者資料塊DATA發送給已經確定的其他方,所述其他方在接收到之後即對於資料記錄或者資料塊DATA進行雜湊運算,得到以一個摘要Digest(DATA),並且利用自己的私鑰對摘要加密進行數位簽名,產生對於摘要的加密資料DigestEncode (DATA),並且返回該加密資料至服務端。
2,當驗證對象參數為服務端參數時,本次需要驗證的即為服務端數位簽名,則此時,服務端直接對由雜湊值所確定的資料記錄或者資料塊進行私鑰簽名,產生加密資料DigestEncode(DATA)即可。
3,當驗證對象參數為授時證書參數,本次待驗證對象的類型為授時證書。服務端此時只需確定驗證指令中的雜湊值所對應的資料塊的塊高(如果該雜湊值對應的是一個資料記錄,則確定該資料記錄所處的資料塊的塊高),進而確定出該塊高所對應的授時證書(一份授時證書對應於一段連續的帳本,相當於對應了一個塊高區間)即可。
S405,服務端發送待驗證對象至客戶端。
服務端將獲取得到的加密資料DigestEncode(DATA),或者,授時證書返回至客戶端。顯然,在加密資料DigestEncode(DATA)中已經包含了客戶端想要驗證的對象的數位簽名;如前所述,在授時證書中是已經包含了可信授時機構的私鑰簽名。當然,在返回加密資料DigestEncode(DATA)的同時,服務端還可以放回原文資料DATA至客戶端(一般而言,客戶端本地會保存有DATA原文)。
S407,客戶端對所述待驗證對象執行驗證,產生驗證結果。
具體的驗證方式即為,採用加密對象所對應的公鑰(其他方或者服務端的公鑰是對於任何人都公開,可隨時獲取)對加密資料DigestEncode(DATA)解密,得到摘要Digest(DATA),同時用本地或者服務端返回的DATA再產生一個摘要Digest(DATA)_local,對比Digest(DATA)和(DATA)_local,如果一致,則說明其他方或者服務端的簽名是可靠的。
對於授時證書的驗證與前述類似,採用可信授時機構所公開的公鑰對授時證書進行解密,得到授時證書中所包含的資訊:部分帳本的起點資料塊高、終點資料塊高、可信時間戳記和所述部分帳本的根雜湊。如果能得到前述資訊,則說明服務端所提供的授時證書是真實可信的。
以上本發明實施例提供的技術方案可見,透過用戶在發起驗證時通過驗證對象參數指明需要驗證的類型,以及給出相關的雜湊值,服務端則可以根據雜湊值以及驗證對象參數確定出用戶想要驗證的數位簽名,從而獲取得到對於該雜湊值相關的資料的數位簽名給用戶,以便用戶進行驗證。本實施例可以便於用戶靈活地針對同一帳本中涉及的各種數位簽名進行驗證。
相應地,本說明書實施例還提供一種塊鏈式帳本中的簽名驗證系統,包括資料庫服務端和客戶端的系統中,所述資料庫服務端以中心化的方式透過塊鏈式帳本儲存資料,
客戶端,發送包含驗證對象參數和雜湊值的簽名驗證指令至資料庫服務端,所述驗證對象參數包括其他方參數、平台參數以及授時證書參數,所述驗證對象參數用於指示待驗證對象的類型;
服務端,基於驗證對象參數和所述雜湊值獲取待驗證對象,所述待驗證對象的類型包括其他方數位簽名、服務端數位簽名或者授時證書;
服務端,發送待驗證對象發送至客戶端;
客戶端,對所述待驗證對象執行驗證,產生驗證結果。
進一步地,在所述系統中,當所述驗證對象參數為其他方參數時,服務端基於其他方參數確定待驗證對象的類型為其他方數位簽名;相應地,服務端確定雜湊值所對應的資料記錄或者資料塊,將所述資料記錄發送至所述帳本的其它參與方,以便其他方對所述資料記錄或者資料塊進行數位簽名;接收其他方返回的加密資料,所述加密資料為所述其他方對所述資料記錄或者資料塊進行數位簽名而得到。
進一步地,在所述系統中,當所述驗證對象參數為服務端參數時,服務端基於服務端參數確定待驗證對象為服務端數位簽名;相應地,服務端確定雜湊值所對應的資料記錄或者資料塊;服務端對所述資料記錄或者資料塊進行數位簽名,產生包含服務端數位簽名的加密資料。
進一步地,在所述系統中,當所述驗證對象參數為授時證書參數時,服務端基於授時證書參數確定待驗證對象為授時證書;相應地,服務端確定雜湊值所對應的資料記錄所處的資料塊的塊高,或者確定所述雜湊值所對應的資料塊的塊高;獲取所述資料塊所對應的授時證書,其中,所述授時證書對應一段連續的部分帳本,所述授時證書中包括所述部分帳本的起點資料塊高、終點資料塊高、可信時間戳記和所述部分帳本的根雜湊,用於明確所述部分帳本的產生時間,並且,包含可信授時機構的數位簽名。
進一步地,在所述服務端中,資料塊透過如下方式預先產生:接收待儲存的資料記錄,確定各資料記錄的雜湊值;當達到預設的成塊條件時,確定待寫入資料塊中的各資料記錄,產生包含資料塊的雜湊值和資料記錄的第N個資料塊,具體包括:
當N=1時,初始資料塊的雜湊值和塊高基於預設方式給定;
當N>1時,根據待寫入資料塊中的各資料記錄和第N-1個資料塊的雜湊值確定第N個資料塊的雜湊值,產生包含第N個資料塊的雜湊值、各資料記錄和資料塊的成塊時間的第N個資料塊,其中,資料塊的塊高基於成塊時間的先後順序而單調遞增。
進一步地,在所述系統中的服務端中,所述授時證書透過如下方式預先產生:服務端確定需要進行授時認證的目標帳本,所述目標帳本中至少包含一個資料塊,或者多個塊高連續的資料塊;按照所述目標帳本中資料塊的塊高的順序,產生對應於所述目標帳本的默克爾樹,基於各資料塊的塊雜湊確定所述默克爾樹的根雜湊;將所述默克爾樹的根雜湊和資料塊的相關資訊發送至可信授時機構,其中,所述資料塊的相關資訊包括起始塊高、結束塊高或者資料塊的數量;接收可信授時機構所返回的對應於所述目標帳本的包含可信時間戳記和可信授時機構數位簽名的的授時證書。
相應地,本說明書實施例還提供一種塊鏈式帳本中的簽名驗證方法,應用於以中心化的方式透過塊鏈式帳本儲存資料的資料庫服務端中,如圖5所示,圖5為本說明書實施例所提供的服務端方面的塊鏈式帳本中的簽名驗證方法的流程示意圖,包括:
S501,接收包含驗證對象參數和雜湊值的簽名驗證指令,所述驗證對象參數包括其他方參數、平台參數以及授時證書參數,所述驗證對象參數用於指示待驗證對象的類型;
S503,基於驗證對象參數和所述雜湊值獲取待驗證對象,所述待驗證對象的類型包括其他方數位簽名、服務端數位簽名或者授時證書;
S505,發送待驗證對象發送至客戶端,以便客戶端進行驗證。
進一步地,本說明書實施例還提供一種塊鏈式帳本中的簽名驗證裝置,應用於以中心化的方式透過塊鏈式帳本儲存資料的資料庫服務端中,如圖6所示,圖6是本說明書實施例提供的一種塊鏈式帳本中的簽名驗證裝置的結構示意圖,包括:
接收模組601,接收包含驗證對象參數和雜湊值的簽名驗證指令,所述驗證對象參數包括其他方參數、平台參數以及授時證書參數,所述驗證對象參數用於指示待驗證對象的類型;
確定模組603,基於驗證對象參數和所述雜湊值獲取待驗證對象,所述待驗證對象的類型包括其他方數位簽名、服務端數位簽名或者授時證書;
發送模組605,發送待驗證對象發送至客戶端,以便客戶端進行驗證。
本說明書實施例還提供一種電腦設備,其至少包括記憶體、處理器及儲存在記憶體上並可在處理器上運行的電腦程式,其中,處理器執行所述程式時實現圖5所示的塊鏈式帳本中的簽名驗證方法。
圖7示出了本說明書實施例所提供的一種更為具體的計算設備硬體結構示意圖,該設備可以包括:處理器1010、記憶體1020、輸入/輸出介面1030、通訊介面1040和匯流排1050。其中,處理器1010、記憶體1020、輸入/輸出介面1030和通訊介面1040透過匯流排1050實現彼此之間在設備內部的通訊連接。
處理器1010可以採用通用的CPU(Central Processing Unit,中央處理器)、微處理器、特殊應用積體電路(Application Specific Integrated Circuit,ASIC)、或者一個或多個積體電路等方式來實現,用於執行相關程式,以實現本說明書實施例所提供的技術方案。
記憶體1020可以採用ROM(Read Only Memory,唯讀記憶體)、RAM(Random Access Memory,隨機存取記憶體)、靜態儲存設備,動態儲存設備等形式來實現。記憶體1020可以儲存作業系統和其他應用程式,在透過軟體或者韌體來實現本說明書實施例所提供的技術方案時,相關的程式碼保存在記憶體1020中,並由處理器1010來呼叫執行。
輸入/輸出介面1030用於連接輸入/輸出模組,以實現資訊輸入及輸出。輸入輸出/模組可以作為組件配置在設備中(圖中未示出),也可以外接於設備以提供相應功能。其中,輸入裝置可以包括鍵盤、滑鼠、觸控螢幕、麥克風、各類感測器等,輸出設備可以包括顯示器、揚聲器、振動器、指示燈等。
通訊介面1040用於連接通訊模組(圖中未示出),以實現本設備與其他設備的通訊互動。其中,通訊模組可以透過有線方式(例如,USB、纜線等)來實現通訊,也可以透過無線方式(例如,行動網路、WIFI、藍牙等)來實現通訊。
匯流排1050包括一通路,在設備的各個組件(例如,處理器1010、記憶體1020、輸入/輸出介面1030和通訊介面1040)之間傳輸資訊。
需要說明的是,儘管上述設備僅示出了處理器1010、記憶體1020、輸入/輸出介面1030、通訊介面1040以及匯流排1050,但是在具體實施過程中,該設備還可以包括實現正常運行所必需的其他組件。此外,本領域的技術人員可以理解的是,上述設備中也可以僅包含實現本說明書實施例方案所必需的組件,而不必包含圖中所示的全部組件。
本說明書實施例還提供一種電腦可讀儲存媒體,其上儲存有電腦程式,該程式被處理器執行時實現圖5所示的塊鏈式帳本中的簽名驗證方法。
電腦可讀媒體包括永久性和非永久性、可移動和非可移動式媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存媒體的例子包括,但不限於相變內部記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可擦除可編程唯讀記憶體(EEPROM)、快閃記憶體或其他內部記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存器、磁盒式磁帶,磁帶磁磁片儲存器或其他磁性儲存設備或任何其他非傳輸媒體,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,電腦可讀媒體不包括暫態性電腦可讀媒體(transitory media),如調變的資料信號和載波。
透過以上的實施方式的描述可知,本領域的技術人員可以清楚地瞭解到本說明書實施例可借助軟體加必需的通用硬體平台的方式來實現。基於這樣的理解,本說明書實施例的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該電腦軟體產品可以儲存在儲存媒體中,如ROM/RAM、磁碟、光碟等,包括若干指令用以使得一台電腦設備(可以是個人電腦,伺服器,或者網路設備等)執行本說明書實施例各個實施例或者實施例的某些部分所述的方法。
上述實施例闡明的系統、方法、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦,電腦的具體形式可以是個人電腦、膝上型電腦、蜂巢式電話、相機電話、智慧型電話、個人數位助理、媒體播放機、導航設備、電子郵件收發設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任意幾種設備的組合。
本說明書中的各個實施例均採用漸進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於方法實施例而言,由於其基本相似於方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。以上所描述的方法實施例僅僅是示意性的,其中所述作為分離部件說明的模組可以是或者也可以不是物理上分開的,在實施本說明書實施例方案時可以把各模組的功能在同一個或多個軟體和/或硬體中實現。也可以根據實際的需要選擇其中的部分或者全部模組來實現本實施例方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。
以上所述僅是本說明書實施例的具體實施方式,應當指出,對於本技術領域的普通技術人員來說,在不脫離本說明書實施例原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本說明書實施例的保護範圍。
S201:方法步驟
S203:方法步驟
S205:方法步驟
S207:方法步驟
S401:方法步驟
S403:方法步驟
S405:方法步驟
S407:方法步驟
S501:方法步驟
S503:方法步驟
S505:方法步驟
601:接收模組
603:確定模組
605:發送模組
1010:處理器
1020:記憶體
1030:輸入/輸出介面
1040:通訊介面
1050:匯流排
為了更清楚地說明本說明書實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的圖式作簡單地介紹,顯而易見地,下面描述中的圖式僅僅是本說明書實施例中記載的一些實施例,對於本領域普通技術人員來講,還可以根據這些圖式而獲得其他的圖式。
[圖1]為本說明書實施例所涉及的系統的架構示意圖;
[圖2]是本說明書實施例提供的一種鏈式帳本的授時認證方法的流程示意圖;
[圖3]為本說明書實施例給出的一種具體的產生授時證書的示意圖;
[圖4]為本說明書實施例所提供的一種塊鏈式帳本中的簽名驗證方法的流程示意圖;
[圖5]為本說明書實施例所提供的服務端方面的塊鏈式帳本中的簽名驗證方法的流程示意圖;
[圖6]是本說明書實施例提供的一種塊鏈式帳本中的簽名驗證裝置的結構示意圖;
[圖7]是用於配置本說明書實施例方法的一種設備的結構示意圖。