TWI646480B - 結合區塊鏈的憑證發行與驗證之系統及其方法 - Google Patents
結合區塊鏈的憑證發行與驗證之系統及其方法 Download PDFInfo
- Publication number
- TWI646480B TWI646480B TW106122498A TW106122498A TWI646480B TW I646480 B TWI646480 B TW I646480B TW 106122498 A TW106122498 A TW 106122498A TW 106122498 A TW106122498 A TW 106122498A TW I646480 B TWI646480 B TW I646480B
- Authority
- TW
- Taiwan
- Prior art keywords
- voucher
- contract
- registration
- client
- service
- Prior art date
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
一種結合區塊鏈的憑證發行與驗證之系統及其方法,透過發行端結合數位憑證與執行智能合約的區塊鏈網路,使數位憑證的驗證由集中化轉變為去中心化,當服務端接收到用戶端的服務請求時,先向用戶端請求數位憑證,再從區塊鏈網路查詢對應此數位憑證的智能合約以進行驗證,以便在通過驗證後提供相應的服務,用以達到提高數位憑證的可利用性之技術功效。
Description
本發明涉及一種憑證發行與驗證系統及其方法,特別是結合區塊鏈的憑證發行與驗證之系統及其方法。
近年來,隨著網際網路的普及與蓬勃發展,各種基於網際網路的應用便如雨後春筍般出現。然而,如何有效識別網際網路的使用者或供應者之身分便成為各家廠商亟欲解決的問題之一。
一般而言,識別網際網路的使用者或供應者之身分可透過數位憑證來實現,此數位憑證通常是經由具公信力的憑證管理中心(Certificate Authority, CA)所頒發,如:台灣網路認證中心、內政部憑證管理中心等等。以網頁供應者為例,其需先向CA申請SSL(Secure Sockets Layer)憑證,再將此SSL憑證安裝在自己提供網頁的伺服器中,當訪客透過瀏覽器連接此伺服器時,會產生一個安全連線,並且在此連線過程中,瀏覽器會驗證此SSL憑證是否由CA所簽發,若是即代表網頁供應者的身分受信任,反之則代表不受信任。然而,此一方式需要由單一憑證管理中心來管理及維護憑證,而且還需要預先在瀏覽器設置憑證管理中心的根憑證(Root Certificate)以供驗證之用。因此,為了維持高可用性及安全性,憑證管理中心需要耗費相當高的營運成本,而且憑證管理中心亦難以與物聯網(Internet of Things, IoT)相互整合,也就是說,難以將數位憑證應用在物聯網,故具有數位憑證的可用性不佳之問題。
另外,以使用者為例,其同樣需先向CA申請數位憑證,如:自然人憑證、工商憑證、金融憑證等等。接著,在進行交易或使用網路服務時,由服務供應者驗證此數位憑證來識別使用者的身分,當驗證通過代表使用者的身分受信任,反之則代表不受信任。然而,由於不同系統之間串接不易,所以不同憑證管理中心所發行的數位憑證並不一定受到其它服務供應者所信賴,舉例來說,美國的服務供應者不一定會信賴台灣的工商憑證;甲銀行不一定會信賴乙銀行認可的數位憑證等等。因此,造成使用者可能會同時擁有多個數位憑證的情況,故同樣具有數位憑證的可用性不佳之問題。
綜上所述,可知先前技術中長期以來一直存在數位憑證的可用性不佳之問題,因此實有必要提出改進的技術手段,來解決此一問題。
本發明揭露一種結合區塊鏈的憑證發行與驗證之系統及其方法。
首先,本發明揭露一種結合區塊鏈的憑證發行與驗證之系統,應用在執行智能合約的區塊鏈網路,此系統包含:用戶端、發行端及服務端。其中,用戶端用以傳送數位憑證,此數位憑證包含數位簽章及公開金鑰。
至於發行端則包含:初始模組及註冊模組。其中,初始模組用以於初始時,透過區塊鏈交易發布憑證註冊合約以提供憑證合約進行註冊,其中,所述憑證註冊合約包含憑證註冊函式及憑證註冊成功事件;註冊模組用以自用戶端接收數位憑證以發布對應的憑證合約,並且透過區塊鏈交易將憑證合約發布至區塊鏈網路以取得憑證合約地址,以及執行憑證註冊函式將憑證合約地址註冊至憑證註冊合約,並且在註冊完成時觸發憑證註冊成功事件。
在服務端的部分,所述服務端包含:合約模組、驗證模組及處理模組。其中,合約模組用以在提供服務之前,預先透過區塊鏈交易發布服務合約,此服務合約包含服務函式及服務事件;驗證模組用以在接收到用戶端的服務請求時,向用戶端請求數位憑證,並且在收到數位憑證後,自憑證註冊合約查詢對應用戶端的憑證合約以驗證數位簽章及公開金鑰;處理模組用以在數位憑證通過驗證後,執行服務函式及觸發相應的服務事件,使服務端對用戶端提供服務。
接著,本發明還揭露一種結合區塊鏈的憑證發行與驗證之系統,應用在執行智能合約的區塊鏈網路,此系統包含:發行端、用戶端及服務端。在發行端的部分,發行端包含:初始模組及註冊模組。其中,初始模組用以於初始時,透過區塊鏈交易發布憑證簽章請求(Certificate Signing Request, CSR)註冊合約以提供憑證簽章請求合約進行註冊,以及透過區塊鏈交易發布憑證註冊合約以提供憑證合約進行註冊,其中,憑證簽章請求註冊合約包含請求註冊函式及請求註冊成功事件,憑證註冊合約包含憑證註冊函式及憑證註冊成功事件;註冊模組用以在偵測到請求註冊成功事件被觸發時,驗證相應的憑證簽章請求合約,並且在通過驗證時,透過區塊鏈交易發布對應的憑證合約以獲得憑證合約地址,以及執行憑證註冊函式將憑證合約地址註冊至憑證註冊合約,並且在註冊完成時觸發憑證註冊成功事件及生成對應此憑證合約的數位憑證。
至於用戶端的部分,用戶端包含:生成模組、執行模組及偵測模組。其中,生成模組用以生成私密金鑰及其對應的公開金鑰,以及根據公開金鑰及識別資料生成憑證簽章請求訊息;執行模組用以透過區塊鏈交易發布憑證簽章請求合約以儲存所述憑證簽章請求訊息及獲得憑證簽章請求合約地址,並且以私密金鑰對所述憑證簽章請求合約進行簽章,以及執行請求註冊函式將憑證簽章請求合約地址註冊至憑證簽章請求註冊合約,並且在註冊完成時觸發請求註冊成功事件。
在服務端的部分,所述服務端包含:合約模組、驗證模組及處理模組。其中,合約模組用以在提供服務之前,預先透過區塊鏈交易發布服務合約,此服務合約包含服務函式及服務事件;驗證模組用以在接收到用戶端的服務請求時,向用戶端請求數位憑證,並且在收到數位憑證後,自憑證註冊合約查詢對應用戶端的憑證合約以進行驗證;處理模組用以在數位憑證通過驗證後,執行服務函式及觸發相應的服務事件,使服務端對用戶端提供服務。
另外,本發明揭露一種結合區塊鏈的憑證發行與驗證之方法,應用在執行智能合約的區塊鏈網路,其步驟包括:提供用戶端、發行端及服務端作為區塊鏈網路的節點,每一服務端在提供服務之前,預先透過區塊鏈交易發布服務合約,此服務合約包含服務函式及服務事件;發行端於初始時,透過區塊鏈交易發布憑證註冊合約以提供憑證合約進行註冊,其中,憑證註冊合約包含憑證註冊函式及憑證註冊成功事件;用戶端傳送數位憑證,此數位憑證包含數位簽章及公開金鑰;發行端自用戶端接收數位憑證以發布對應的憑證合約,並且透過區塊鏈交易將憑證合約發布至區塊鏈網路以取得憑證合約地址,以及執行憑證註冊函式將憑證合約地址註冊至憑證註冊合約,並且在註冊完成時觸發憑證註冊成功事件;服務端在接收到用戶端的服務請求時,向用戶端請求數位憑證,並且在收到數位憑證後,自憑證註冊合約查詢對應用戶端的憑證合約以驗證數位簽章及公開金鑰;服務端在數位憑證通過驗證後,執行服務函式及觸發相應的服務事件,使服務端對用戶端提供服務。
最後,本發明還揭露一種結合區塊鏈的憑證發行與驗證之方法,應用在執行智能合約的區塊鏈網路,其步驟包括:提供發行端、用戶端及服務端作為區塊鏈網路的節點,每一服務端在提供服務之前,預先透過區塊鏈交易發布服務合約,此服務合約包含服務函式及服務事件;發行端於初始時,透過區塊鏈交易發布憑證簽章請求註冊合約以提供憑證簽章請求合約進行註冊,以及透過區塊鏈交易發布憑證註冊合約以提供憑證合約進行註冊,其中,憑證簽章請求註冊合約包含請求註冊函式及請求註冊成功事件,憑證註冊合約包含憑證註冊函式及憑證註冊成功事件;用戶端生成私密金鑰及其對應的公開金鑰,以及根據公開金鑰及識別資料生成憑證簽章請求訊息;用戶端透過區塊鏈交易發布憑證簽章請求合約以儲存憑證簽章請求訊息及獲得憑證簽章請求合約地址,並且以私密金鑰對憑證簽章請求合約進行簽章,以及執行請求註冊函式將憑證簽章請求合約地址註冊至憑證簽章請求註冊合約,並且在註冊完成時觸發請求註冊成功事件;發行端在偵測到請求註冊成功事件被觸發時,驗證相應的憑證簽章請求合約,並且在通過驗證時,透過區塊鏈交易發布對應的憑證合約以獲得憑證合約地址,以及執行憑證註冊函式將憑證合約地址註冊至憑證註冊合約,並且在註冊完成時觸發憑證註冊成功事件及生成對應憑證合約的數位憑證;用戶端在偵測到憑證註冊成功事件被觸發時,自發行端接收對應用戶端的數位憑證;服務端在接收到用戶端的服務請求時,向用戶端請求數位憑證,並且在收到數位憑證後,自憑證註冊合約查詢對應用戶端的憑證合約以進行驗證;服務端在數位憑證通過驗證後,執行服務函式及觸發相應的服務事件,使服務端對用戶端提供服務。
本發明所揭露之系統與方法如上,與先前技術的差異在於本發明是透過發行端結合數位憑證與執行智能合約的區塊鏈網路,使數位憑證的驗證由集中化轉變為去中心化,當服務端接收到用戶端的服務請求時,先向用戶端請求數位憑證,再從區塊鏈網路查詢對應此數位憑證的智能合約以進行驗證,以便在通過驗證後提供相應的服務。
透過上述的技術手段,本發明可以達成提高數位憑證的可利用性之技術功效。
以下將配合圖式及實施例來詳細說明本發明之實施方式,藉此對本發明如何應用技術手段來解決技術問題並達成技術功效的實現過程能充分理解並據以實施。
在說明本發明所揭露之結合區塊鏈的憑證發行與驗證之系統及其方法之前,先對本發明所應用的環境作說明,本發明是應用在執行智能合約的區塊鏈網路中,在區塊鏈網路中的計算機設備皆可視為區塊鏈節點(或簡稱為節點),所述區塊鏈節點透過點對點(Peer to Peer)方式連接,並且用以處理區塊鏈交易(Blockchain Transactions)。在實際實施上,計算機設備可為伺服器、電腦主機、筆記型電腦、平板電腦、智慧型手機等等,用以執行電腦程式指令,例如:區塊鏈程式「Ethereum」。另外,所述智能合約(Smart Contract)是指依據既定的條件及傳輸的資訊來驅動執行指令的電腦程式,在實際實施上,所述智能合約係透過程式語言,如:Solidity、Serpent、LLL、EtherScript、Sidechain等等來撰寫,其可包含各種不同的函式(Function)、事件(Even)、參數狀態等等,以區塊鏈程式「Ethereum」為例,其智能合約是經編譯後得到二進位編碼及應用二進位介面(Application Binary Interface, ABI),以便將智能合約廣播至區塊鏈網路,等候礦工(Miner)將智能合約放上區塊鏈並得到相應的地址,至此即完成智能合約的發布。之後,便可根據此地址執行相應的智能合約,藉由不同的指令來改變智能合約在區塊鏈上的狀態。特別要說明的是,文中所述的「憑證簽章請求註冊合約」、「憑證簽章請求合約」、「憑證註冊合約」、「憑證合約」及「服務合約」等等皆為智能合約。
以下配合圖式對本發明結合區塊鏈的憑證發行與驗證之系統及其方法做進一步說明,請先參閱「第1圖」,「第1圖」為本發明結合區塊鏈的憑證發行與驗證之系統方塊圖,應用在執行智能合約的區塊鏈網路10,此系統包含:用戶端110、發行端120及服務端130。其中,用戶端110用以傳送數位憑證,此數位憑證包含數位簽章及公開金鑰。在實際實施上,所述用戶端110為執行區塊鏈程式的計算機設備,並且預先設置有數位憑證,此數位憑證可為政府權責單位或政府合法授權單位所發行的自然人憑證、工商憑證、金融憑證及網路憑證等等。
所述發行端120包含:初始模組121及註冊模組122。其中,初始模組121用以於初始時,透過區塊鏈交易發布憑證註冊合約以提供憑證合約進行註冊,所述憑證註冊合約包含憑證註冊函式及憑證註冊成功事件。在實際實施上,透過區塊鏈交易發布智能合約及註冊智能合約皆可透過以太坊(Ethereum)的區塊鏈程式來實現。另外,所述發行端120可為設置在政府權責單位或政府合法授權單位的伺服器,並且作為區塊鏈網路10中的區塊鏈節點。
註冊模組122用以自用戶端110接收數位憑證以發布對應的憑證合約,並且透過區塊鏈交易將憑證合約發布至區塊鏈網路10以取得憑證合約地址,以及執行憑證註冊函式將憑證合約地址註冊至憑證註冊合約,並且在註冊完成時觸發憑證註冊成功事件。換句話說,發行端120在收到來自用戶端110傳送的數位憑證時,會發布對應此數位憑證的憑證合約,並且根據其憑證合約地址將此憑證合約註冊在憑證註冊合約中。如此一來,憑證註冊合約便記載了所有的憑證合約地址,進而使所有區塊鏈節點能夠以憑證合約地址查詢到對應的憑證合約。
至於服務端130的部分,所述服務端130包含:合約模組131、驗證模組132及處理模組133。其中,合約模組131用以在提供服務之前,預先透過區塊鏈交易發布服務合約,此服務合約包含服務函式及服務事件。在實際實施上,服務端130可為整合以太坊的輕客戶端(Light Client)及網路功能的物聯網裝置,使物聯網裝置成為區塊鏈網路10的節點,並且在執行服務函式後觸發相應的服務事件,以供區塊鏈網路10的其它節點得知服務事件被觸發而進行相應的處理。所述輕客戶端是指無需要下載完整的區塊鏈或狀態,僅需要下載區塊標頭(Block Header),然後可以從網路下載和驗證梅克爾樹(Merkle Tree)。
驗證模組132用以在接收到用戶端110的服務請求時,向用戶端110請求數位憑證,並且在收到數位憑證後,自憑證註冊合約查詢對應用戶端110的憑證合約以驗證數位簽章及公開金鑰。在實際實施上,假設智能合約的程式語言為「Solidity」,其可透過函式「ecrecover()」來驗證數位憑證是否有效、是否為用戶端110所擁有。
處理模組133用以在數位憑證通過驗證後,執行服務函式及觸發相應的服務事件,使服務端對用戶端110提供服務。舉例來說,假設服務端130為整合以太坊的輕客戶端及網路功能的自行車租借站,每一個自行車租借站會在提供租借服務之前,透過網路以區塊鏈交易發布一個服務合約,以便在執行此服務合約中的服務函式(例如:出租函式「rent()」)之後,改變服務合約的狀態(例如:解鎖或上鎖)及觸發相應的服務事件,達成服務端130對用戶端110提供租借服務的目的。
接著,請參閱「第2圖」,「第2圖」為本發明結合區塊鏈的憑證發行與驗證的另一實施例之系統方塊圖,應用在執行智能合約的區塊鏈網路20,此系統包含:發行端220、用戶端210及服務端230。在發行端220的部分,其包含:初始模組221及註冊模組222。其中,初始模組221用以於初始時,透過區塊鏈交易發布憑證簽章請求(Certificate Signing Request, CSR)註冊合約以提供憑證簽章請求合約進行註冊,以及透過區塊鏈交易發布憑證註冊合約以提供憑證合約進行註冊。所述憑證簽章請求註冊合約包含請求註冊函式及請求註冊成功事件;所述憑證註冊合約包含憑證註冊函式及憑證註冊成功事件。在實際實施上,初始模組221與「第1圖」所示意的初始模組121大同小異,其差異在於初始模組221更發布了憑證簽章請求註冊合約以提供憑證簽章請求合約進行註冊。
註冊模組222用以在偵測到請求註冊成功事件被觸發時,驗證相應的憑證簽章請求合約,並且在通過驗證時,透過區塊鏈交易發布對應的憑證合約以獲得憑證合約地址,以及執行憑證註冊函式將憑證合約地址註冊至憑證註冊合約,並且在註冊完成時觸發憑證註冊成功事件及生成對應憑證合約的數位憑證。同樣地,註冊模組222與「第1圖」所示意的註冊模組122大同小異,其差異在於註冊完成時生成對應憑證合約的數位憑證以提供給用戶端210。
特別要說明的是,在實際實施上,發行端220還可包含提供了解客戶(Know Your Customer, KYC)程序,並且在用戶端210執行了解客戶程序後,才允許用戶端210發布的憑證簽章請求合約進行註冊,反之,倘若用戶端210未執行了解客戶程序,發行端220將不允許用戶端210發布的憑證簽章請求合約註冊在憑證簽章請求註冊合約中。
在用戶端210的部分,其包含:生成模組211、執行模組212及偵測模組213。其中,生成模組211用以生成私密金鑰及其對應的公開金鑰,以及根據公開金鑰及識別資料生成憑證簽章請求訊息。所述識別資料如:國碼、國名、地名、組織單位名稱、部門名稱、憑證名稱、聯絡信箱等等。在實際實施上,生成私密金鑰及其對應的公開金鑰,以及根據公開金鑰及識別資料生成憑證簽章請求訊息,可透過軟體函式庫套件「OpenSSL」來實現。
執行模組212用以透過區塊鏈交易發布憑證簽章請求合約以儲存憑證簽章請求訊息及獲得憑證簽章請求合約地址,並且以私密金鑰對所述憑證簽章請求合約進行簽章,以及執行請求註冊函式將憑證簽章請求合約地址註冊至憑證簽章請求註冊合約,並且在註冊完成時觸發請求註冊成功事件。如此一來,發行端220便可透過偵測請求註冊成功事件是否被觸發來判斷憑證簽章請求訊息是否已經成功被註冊,並且進行後續處理。
偵測模組213用以在偵測到憑證註冊成功事件被觸發時,自發行端220接收對應用戶端210本身的數位憑證。在實際實施上,所述數位憑證可以是副檔名為「crt」或「cer」的檔案。
至於服務端230的部分,其包含:合約模組231、驗證模組232及處理模組233。其中,合約模組231用以在提供服務之前,預先透過區塊鏈交易發布服務合約,此服務合約包含服務函式及服務事件;驗證模組232用以在接收到用戶端210的服務請求時,向用戶端210請求數位憑證,並且在收到數位憑證後,自憑證註冊合約查詢對應用戶端210的憑證合約以進行驗證;處理模組233用以在數位憑證通過驗證後,執行所述服務函式及觸發相應的服務事件,使所述服務端230對用戶端210提供服務。由於服務端230與「第1圖」所示意的服務端130相同,故在此不再多作贅述。
請參閱「第3圖」,「第3圖」為本發明結合區塊鏈的憑證發行與驗證之方法流程圖,應用在執行智能合約的區塊鏈網路10,其步驟包括:提供用戶端110、發行端120及服務端130作為區塊鏈網路10的節點,每一服務端130在提供服務之前,預先透過區塊鏈交易發布服務合約,此服務合約包含服務函式及服務事件(步驟310);發行端120於初始時,透過區塊鏈交易發布憑證註冊合約以提供憑證合約進行註冊,其中,憑證註冊合約包含憑證註冊函式及憑證註冊成功事件(步驟320);用戶端110傳送數位憑證,此數位憑證包含數位簽章及公開金鑰(步驟330);發行端120自用戶端110接收數位憑證以發布對應的憑證合約,並且透過區塊鏈交易將憑證合約發布至區塊鏈網路以取得憑證合約地址,以及執行憑證註冊函式將憑證合約地址註冊至憑證註冊合約,並且在註冊完成時觸發憑證註冊成功事件(步驟340);服務端130在接收到用戶端110的服務請求時,向用戶端110請求數位憑證,並且在收到數位憑證後,自憑證註冊合約查詢對應用戶端110的憑證合約以驗證數位簽章及公開金鑰(步驟350);服務端130在數位憑證通過驗證後,執行服務函式及觸發相應的服務事件,使服務端130對用戶端110提供服務(步驟360)。透過上述步驟,即可透過發行端120結合數位憑證與執行智能合約的區塊鏈網路10,使數位憑證的驗證由集中化轉變為去中心化,當服務端130接收到用戶端110的服務請求時,先向用戶端110請求數位憑證,再從區塊鏈網路10查詢對應此數位憑證的智能合約以進行驗證,以便在通過驗證後提供相應的服務。
另外,請參閱「第4A圖」及「第4B圖」,「第4A圖」及「第4B圖」為本發明結合區塊鏈的憑證發行與驗證的另一實施例之方法流程圖,應用在執行智能合約的區塊鏈網路20,其步驟包括:提供發行端220、用戶端210及服務端230作為區塊鏈網路20的節點,每一服務端230在提供服務之前,預先透過區塊鏈交易發布服務合約,此服務合約包含服務函式及服務事件(步驟410);發行端220於初始時,透過區塊鏈交易發布憑證簽章請求註冊合約以提供憑證簽章請求合約進行註冊,以及透過區塊鏈交易發布憑證註冊合約以提供憑證合約進行註冊,其中,憑證簽章請求註冊合約包含請求註冊函式及請求註冊成功事件,憑證註冊合約包含憑證註冊函式及憑證註冊成功事件(步驟420);用戶端210生成私密金鑰及其對應的公開金鑰,以及根據公開金鑰及識別資料生成憑證簽章請求訊息(步驟430);用戶端210透過區塊鏈交易發布憑證簽章請求合約以儲存憑證簽章請求訊息及獲得憑證簽章請求合約地址,並且以私密金鑰對憑證簽章請求合約進行簽章,以及執行請求註冊函式將憑證簽章請求合約地址註冊至憑證簽章請求註冊合約,並且在註冊完成時觸發請求註冊成功事件(步驟440);發行端220在偵測到請求註冊成功事件被觸發時,驗證相應的憑證簽章請求合約,並且在通過驗證時,透過區塊鏈交易發布對應的憑證合約以獲得憑證合約地址,以及執行憑證註冊函式將憑證合約地址註冊至憑證註冊合約,並且在註冊完成時觸發憑證註冊成功事件及生成對應憑證合約的數位憑證(步驟450);用戶端210在偵測到憑證註冊成功事件被觸發時,自發行端220接收對應用戶端210的數位憑證(步驟460);服務端230在接收到用戶端210的服務請求時,向用戶端210請求數位憑證,並且在收到數位憑證後,自憑證註冊合約查詢對應用戶端210的憑證合約以進行驗證(步驟470);服務端230在數位憑證通過驗證後,執行服務函式及觸發相應的服務事件,使服務端230對用戶端210提供服務(步驟480)。上述「第4A圖」及「第4B圖」的步驟與「第3圖」的步驟差異在於前者會根據用戶端210的憑證簽章請求訊息產生對應的數位憑證,並且發布至區塊鏈網路20,而後者則是直接將用戶端110擁有的數位憑證註冊至區塊鏈網路10,無須執行產生數位憑證的步驟。
特別要說明的是,在步驟420之後,發行端220可提供了解客戶程序,並且在用戶端210執行了解客戶程序後,允許用戶端210發布的憑證簽章請求合約進行註冊(步驟421)。如此一來,可以避免不當的用戶端210申請數位憑證,以及濫用數位憑證的情況。
以下配合「第5圖」及「第6圖」以實施例的方式進行如下說明,請先參閱「第5圖」,「第5圖」為應用本發明以數位憑證租借自行車之示意圖。在實際實施上,由於用戶端有兩種情況:(1)已擁有數位憑證(如:自然人憑證、工商憑證、金融憑證、網路憑證等等);及(2)未擁有數位憑證。因此,以下分別針對不同情況作說明。首先,在第一種情況下,發行端120於初始時僅會透過區塊鏈交易發布憑證註冊合約,至於用戶端110(例如:安裝有「行動自然人憑證」的智慧型手機)則會傳送此數位憑證至發行端120,以便使發行端120發布對應此數位憑證的憑證合約,並且執行憑證註冊函式將此憑證合約的憑證合約地址註冊至憑證註冊合約,當註冊完成時即觸發憑證註冊成功事件。此時,用戶端110可以偵測此憑證註冊成功事件來確認數位憑證是否已被註冊至區塊鏈網路10,假設偵測到憑證註冊成功事件被觸發代表已註冊成功;反之則代表尚未註冊成功。至此,即完成在區塊鏈網路10上發行數位憑證。如此一來,當用戶欲從服務端130(即:自行車租借站500)租借自行車510時,用戶端110可透過無線射頻識別(Radio Frequency Identification, RFID)、物聯網等技術傳送服務請求,而服務端130接收到用戶端110的服務請求時,便能夠向用戶端110請求數位憑證,並且在收到數位憑證後,自憑證註冊合約查詢對應用戶端110的憑證合約以驗證數位簽章及公開金鑰,並且在通過驗證後,執行服務函式及觸發相應的服務事件,例如:解鎖自行車510,此時,用戶即可如「第5圖」下方所示意,將自行車510移出自行車租借站500以進行騎乘,完成服務端130對用戶端110提供服務。
至於第二種情況,發行端220於初始時,除了透過區塊鏈交易發布憑證註冊合約之外,還會發布憑證簽章請求註冊合約。由於用戶端210尚未擁有數位憑證,所以需要生成憑證簽章請求訊息以便向發行端220申請數位憑證。當未擁有數位憑證的用戶端210生成憑證簽章請求訊息之後,會透過區塊鏈交易發布對應的憑證簽章請求合約以儲存憑證簽章請求訊息及獲得憑證簽章請求合約地址,並且將憑證簽章請求合約地址註冊至憑證簽章請求註冊合約中,以及在註冊完成時觸發請求註冊成功事件。當發行端220偵測到請求註冊成功事件被觸發時,驗證相應的憑證簽章請求合約,並且在通過驗證時,透過區塊鏈交易發布對應的憑證合約以獲得憑證合約地址,以及執行憑證註冊函式將憑證合約地址註冊至憑證註冊合約,並且在註冊完成時觸發憑證註冊成功事件及生成對應憑證合約的數位憑證,以將數位憑證提供給用戶端210。至此,發行端220即完成在區塊鏈網路20上發行數位憑證。至於服務端230對數位憑證進行驗證的部分則與第一種情況相同,故在此不再多作贅述。
如「第6圖」所示意,「第6圖」為應用本發明於用戶端輸入識別資料生成憑證簽章請求訊息之示意圖。假設欲生成憑證簽章請求訊息,用戶端210可開啟操作視窗610,在各輸入區塊611中依序輸入識別資料,如:國碼、國名、地名、組織單位名稱、部門名稱、憑證名稱、聯絡信箱等等。接著,點選建立元件612生成憑證簽章請求訊息,並將其顯示在顯示區塊613中,當用戶確認無誤後,即可點選發布元件614以透過區塊鏈交易發布用以儲存憑證簽章請求訊息的憑證簽章請求合約,並且在成功發布後獲得對應的憑證簽章請求合約地址,以及將憑證簽章請求合約地址註冊至憑證簽章請求註冊合約中。
綜上所述,可知本發明與先前技術之間的差異在於透過發行端結合數位憑證與執行智能合約的區塊鏈網路,使數位憑證的驗證由集中化轉變為去中心化,當服務端接收到用戶端的服務請求時,先向用戶端請求數位憑證,再從區塊鏈網路查詢對應此數位憑證的智能合約以進行驗證,以便在通過驗證後提供相應的服務,藉由此一技術手段可以解決先前技術所存在的問題,進而達成提高數位憑證的可利用性之技術功效。
雖然本發明以前述之實施例揭露如上,然其並非用以限定本發明,任何熟習相像技藝者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之專利保護範圍須視本說明書所附之申請專利範圍所界定者為準。
10、20‧‧‧區塊鏈網路
110‧‧‧用戶端
120‧‧‧發行端
121‧‧‧初始模組
122‧‧‧註冊模組
130‧‧‧服務端
131‧‧‧合約模組
132‧‧‧驗證模組
133‧‧‧處理模組
210‧‧‧用戶端
211‧‧‧生成模組
212‧‧‧執行模組
213‧‧‧偵測模組
220‧‧‧發行端
221‧‧‧初始模組
222‧‧‧註冊模組
230‧‧‧服務端
231‧‧‧合約模組
232‧‧‧驗證模組
233‧‧‧處理模組
500‧‧‧自行車租借站
510‧‧‧自行車
610‧‧‧操作視窗
611‧‧‧輸入區塊
612‧‧‧建立元件
613‧‧‧顯示區塊
614‧‧‧發布元件
步驟310‧‧‧提供一用戶端、一發行端及至少一服務端作為該區塊鏈網路的節點,每一服務端在提供服務之前,預先透過區塊鏈交易發布一服務合約,該服務合約包含至少一服務函式及至少一服務事件
步驟320‧‧‧該發行端於初始時,透過區塊鏈交易發布一憑證註冊合約以提供至少一憑證合約進行註冊,其中,該憑證註冊合約包含一憑證註冊函式及一憑證註冊成功事件
步驟330‧‧‧該用戶端傳送一數位憑證,該數位憑證包含一數位簽章及一公開金鑰
步驟340‧‧‧該發行端自該用戶端接收該數位憑證以發布對應的所述憑證合約,並且透過區塊鏈交易將所述憑證合約發布至該區塊鏈網路以取得一憑證合約地址,以及執行該憑證註冊函式將該憑證合約地址註冊至該憑證註冊合約,並且在註冊完成時觸發該憑證註冊成功事件
步驟350‧‧‧所述服務端在接收到該用戶端的一服務請求時,向該用戶端請求該數位憑證,並且在收到該數位憑證後,自該憑證註冊合約查詢對應該用戶端的該憑證合約以驗證該數位簽章及該公開金鑰
步驟360‧‧‧所述服務端在該數位憑證通過驗證後,執行所述服務函式及觸發相應的所述服務事件,使所述服務端對該用戶端提供服務
步驟410‧‧‧提供一發行端、一用戶端及至少一服務端作為該區塊鏈網路的節點,每一服務端在提供服務之前,預先透過區塊鏈交易發布一服務合約,該服務合約包含至少一服務函式及至少一服務事件
步驟420‧‧‧該發行端於初始時,透過區塊鏈交易發布一憑證簽章請求(Certificate Signing Request, CSR)註冊合約以提供至少一憑證簽章請求合約進行註冊,以及透過區塊鏈交易發布一憑證註冊合約以提供至少一憑證合約進行註冊,其中,該憑證簽章請求註冊合約包含一請求註冊函式及一請求註冊成功事件,該憑證註冊合約包含一憑證註冊函式及一憑證註冊成功事件
步驟421‧‧‧該發行端提供一了解客戶(Know Your Customer, KYC)程序,並且在該用戶端執行該了解客戶程序後,允許該用戶端發布的所述憑證簽章請求合約進行註冊
步驟430‧‧‧該用戶端生成一私密金鑰及其對應的一公開金鑰,以及根據該公開金鑰及一識別資料生成一憑證簽章請求訊息
步驟440‧‧‧該用戶端透過區塊鏈交易發布所述憑證簽章請求合約以儲存該憑證簽章請求訊息及獲得一憑證簽章請求合約地址,並且以該私密金鑰對所述憑證簽章請求合約進行簽章,以及執行該請求註冊函式將該憑證簽章請求合約地址註冊至該憑證簽章請求註冊合約,並且在註冊完成時觸發該請求註冊成功事件
步驟450‧‧‧該發行端在偵測到該請求註冊成功事件被觸發時,驗證相應的所述憑證簽章請求合約,並且在通過驗證時,透過區塊鏈交易發布對應的所述憑證合約以獲得一憑證合約地址,以及執行該憑證註冊函式將該憑證合約地址註冊至該憑證註冊合約,並且在註冊完成時觸發該憑證註冊成功事件及生成對應所述憑證合約的一數位憑證
步驟460‧‧‧該用戶端在偵測到該憑證註冊成功事件被觸發時,自該發行端接收對應該用戶端的該數位憑證
步驟470‧‧‧所述服務端在接收到該用戶端的一服務請求時,向該用戶端請求該數位憑證,並且在收到該數位憑證後,自該憑證註冊合約查詢對應該用戶端的該憑證合約以進行驗證
步驟480‧‧‧所述服務端在該數位憑證通過驗證後,執行所述服務函式及觸發相應的所述服務事件,使所述服務端對該用戶端提供服務
第1圖為本發明結合區塊鏈的憑證發行與驗證之系統方塊圖。 第2圖為本發明結合區塊鏈的憑證發行與驗證的另一實施例之系統方塊圖。 第3圖為本發明結合區塊鏈的憑證發行與驗證之方法流程圖。 第4A圖及第4B圖為本發明結合區塊鏈的憑證發行與驗證的另一實施例之方法流程圖。 第5圖為應用本發明以數位憑證租借自行車之示意圖。 第6圖為應用本發明於用戶端輸入識別資料生成憑證簽章請求訊息之示意圖。
Claims (10)
- 一種結合區塊鏈的憑證發行與驗證之系統,應用在執行智能合約的一區塊鏈網路,該系統包含: 一用戶端,用以傳送一數位憑證,該數位憑證包含一數位簽章及一公開金鑰; 一發行端,該發行端包含: 一初始模組,用以於初始時,透過區塊鏈交易發布一憑證註冊合約以提供至少一憑證合約進行註冊,其中,該憑證註冊合約包含一憑證註冊函式及一憑證註冊成功事件;以及 一註冊模組,用以自該用戶端接收該數位憑證以發布對應的所述憑證合約,並且透過區塊鏈交易將所述憑證合約發布至該區塊鏈網路以取得一憑證合約地址,以及執行該憑證註冊函式將該憑證合約地址註冊至該憑證註冊合約,並且在註冊完成時觸發該憑證註冊成功事件;以及 至少一服務端,每一服務端包含: 一合約模組,用以在提供服務之前,預先透過區塊鏈交易發布一服務合約,該服務合約包含至少一服務函式及至少一服務事件; 一驗證模組,用以在接收到該用戶端的一服務請求時,向該用戶端請求該數位憑證,並且在收到該數位憑證後,自該憑證註冊合約查詢對應該用戶端的該憑證合約以驗證該數位簽章及該公開金鑰;以及 一處理模組,用以在該數位憑證通過驗證後,執行所述服務函式及觸發相應的所述服務事件,使所述服務端對該用戶端提供服務。
- 根據申請專利範圍第1項之結合區塊鏈的憑證發行與驗證之系統,其中每一服務端為整合以太坊(Ethereum)的輕客戶端(Light Client)及網路功能的一物聯網裝置,使該物聯網裝置成為該區塊鏈網路的節點。
- 一種結合區塊鏈的憑證發行與驗證之系統,應用在執行智能合約的一區塊鏈網路,該系統包含: 一發行端,該發行端包含: 一初始模組,用以於初始時,透過區塊鏈交易發布一憑證簽章請求(Certificate Signing Request, CSR)註冊合約以提供至少一憑證簽章請求合約進行註冊,以及透過區塊鏈交易發布一憑證註冊合約以提供至少一憑證合約進行註冊,其中,該憑證簽章請求註冊合約包含一請求註冊函式及一請求註冊成功事件,該憑證註冊合約包含一憑證註冊函式及一憑證註冊成功事件;以及 一註冊模組,用以在偵測到該請求註冊成功事件被觸發時,驗證相應的所述憑證簽章請求合約,並且在通過驗證時,透過區塊鏈交易發布對應的所述憑證合約以獲得一憑證合約地址,以及執行該憑證註冊函式將該憑證合約地址註冊至該憑證註冊合約,並且在註冊完成時觸發該憑證註冊成功事件及生成對應所述憑證合約的一數位憑證; 一用戶端,該用戶端包含: 一生成模組,用以生成一私密金鑰及其對應的一公開金鑰,以及根據該公開金鑰及一識別資料生成一憑證簽章請求訊息; 一執行模組,用以透過區塊鏈交易發布所述憑證簽章請求合約以儲存該憑證簽章請求訊息及獲得一憑證簽章請求合約地址,並且以該私密金鑰對所述憑證簽章請求合約進行簽章,以及執行該請求註冊函式將該憑證簽章請求合約地址註冊至該憑證簽章請求註冊合約,並且在註冊完成時觸發該請求註冊成功事件;以及 一偵測模組,用以在偵測到該憑證註冊成功事件被觸發時,自該發行端接收對應該用戶端的該數位憑證;以及 至少一服務端,每一服務端包含: 一合約模組,用以在提供服務之前,預先透過區塊鏈交易發布一服務合約,該服務合約包含至少一服務函式及至少一服務事件; 一驗證模組,用以在接收到該用戶端的一服務請求時,向該用戶端請求該數位憑證,並且在收到該數位憑證後,自該憑證註冊合約查詢對應該用戶端的該憑證合約以進行驗證;以及 一處理模組,用以在該數位憑證通過驗證後,執行所述服務函式及觸發相應的所述服務事件,使所述服務端對該用戶端提供服務。
- 根據申請專利範圍第3項之結合區塊鏈的憑證發行與驗證之系統,其中該發行端更包含提供一了解客戶(Know Your Customer, KYC)程序,並且在該用戶端執行該了解客戶程序後,允許該客戶端發布的所述憑證簽章請求合約進行註冊。
- 根據申請專利範圍第3項之結合區塊鏈的憑證發行與驗證之系統,其中每一服務端為整合以太坊(Ethereum)的輕客戶端(Light Client)及網路功能的一物聯網裝置,使該物聯網裝置成為該區塊鏈網路的節點。
- 一種結合區塊鏈的憑證發行與驗證之方法,應用在執行智能合約的一區塊鏈網路,其步驟包括: 提供一用戶端、一發行端及至少一服務端作為該區塊鏈網路的節點,每一服務端在提供服務之前,預先透過區塊鏈交易發布一服務合約,該服務合約包含至少一服務函式及至少一服務事件; 該發行端於初始時,透過區塊鏈交易發布一憑證註冊合約以提供至少一憑證合約進行註冊,其中,該憑證註冊合約包含一憑證註冊函式及一憑證註冊成功事件; 該用戶端傳送一數位憑證,該數位憑證包含一數位簽章及一公開金鑰; 該發行端自該用戶端接收該數位憑證以發布對應的所述憑證合約,並且透過區塊鏈交易將所述憑證合約發布至該區塊鏈網路以取得一憑證合約地址,以及執行該憑證註冊函式將該憑證合約地址註冊至該憑證註冊合約,並且在註冊完成時觸發該憑證註冊成功事件; 所述服務端在接收到該用戶端的一服務請求時,向該用戶端請求該數位憑證,並且在收到該數位憑證後,自該憑證註冊合約查詢對應該用戶端的該憑證合約以驗證該數位簽章及該公開金鑰;以及 所述服務端在該數位憑證通過驗證後,執行所述服務函式及觸發相應的所述服務事件,使所述服務端對該用戶端提供服務。
- 根據申請專利範圍第6項之結合區塊鏈的憑證發行與驗證之方法,其中每一服務端為整合以太坊(Ethereum)的輕客戶端(Light Client)及網路功能的一物聯網裝置,使該物聯網裝置成為該區塊鏈網路的節點。
- 一種結合區塊鏈的憑證發行與驗證之方法,應用在執行智能合約的一區塊鏈網路,其步驟包括: 提供一發行端、一用戶端及至少一服務端作為該區塊鏈網路的節點,每一服務端在提供服務之前,預先透過區塊鏈交易發布一服務合約,該服務合約包含至少一服務函式及至少一服務事件; 該發行端於初始時,透過區塊鏈交易發布一憑證簽章請求(Certificate Signing Request, CSR)註冊合約以提供至少一憑證簽章請求合約進行註冊,以及透過區塊鏈交易發布一憑證註冊合約以提供至少一憑證合約進行註冊,其中,該憑證簽章請求註冊合約包含一請求註冊函式及一請求註冊成功事件,該憑證註冊合約包含一憑證註冊函式及一憑證註冊成功事件; 該用戶端生成一私密金鑰及其對應的一公開金鑰,以及根據該公開金鑰及一識別資料生成一憑證簽章請求訊息; 該用戶端透過區塊鏈交易發布所述憑證簽章請求合約以儲存該憑證簽章請求訊息及獲得一憑證簽章請求合約地址,並且以該私密金鑰對所述憑證簽章請求合約進行簽章,以及執行該請求註冊函式將該憑證簽章請求合約地址註冊至該憑證簽章請求註冊合約,並且在註冊完成時觸發該請求註冊成功事件; 該發行端在偵測到該請求註冊成功事件被觸發時,驗證相應的所述憑證簽章請求合約,並且在通過驗證時,透過區塊鏈交易發布對應的所述憑證合約以獲得一憑證合約地址,以及執行該憑證註冊函式將該憑證合約地址註冊至該憑證註冊合約,並且在註冊完成時觸發該憑證註冊成功事件及生成對應所述憑證合約的一數位憑證; 該用戶端在偵測到該憑證註冊成功事件被觸發時,自該發行端接收對應該用戶端的該數位憑證; 所述服務端在接收到該用戶端的一服務請求時,向該用戶端請求該數位憑證,並且在收到該數位憑證後,自該憑證註冊合約查詢對應該用戶端的該憑證合約以進行驗證;以及 所述服務端在該數位憑證通過驗證後,執行所述服務函式及觸發相應的所述服務事件,使所述服務端對該用戶端提供服務。
- 根據申請專利範圍第8項之結合區塊鏈的憑證發行與驗證之方法,其中該方法更包含該發行端提供一了解客戶(Know Your Customer, KYC)程序,並且在該用戶端執行該了解客戶程序後,允許該用戶端發布的所述憑證簽章請求合約進行註冊的步驟。
- 根據申請專利範圍第8項之結合區塊鏈的憑證發行與驗證之方法,其中每一服務端為整合以太坊(Ethereum)的輕客戶端(Light Client)及網路功能的一物聯網裝置,使該物聯網裝置成為該區塊鏈網路的節點。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106122498A TWI646480B (zh) | 2017-07-05 | 2017-07-05 | 結合區塊鏈的憑證發行與驗證之系統及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106122498A TWI646480B (zh) | 2017-07-05 | 2017-07-05 | 結合區塊鏈的憑證發行與驗證之系統及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI646480B true TWI646480B (zh) | 2019-01-01 |
TW201907346A TW201907346A (zh) | 2019-02-16 |
Family
ID=65804027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106122498A TWI646480B (zh) | 2017-07-05 | 2017-07-05 | 結合區塊鏈的憑證發行與驗證之系統及其方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI646480B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111935088A (zh) * | 2020-07-03 | 2020-11-13 | 合肥科塑信息科技有限公司 | 一种基于区块链的数字档案系统 |
TWI828857B (zh) * | 2019-02-15 | 2024-01-11 | 瑞士商區塊鏈授權股份有限公司 | 在區塊鏈網路上實施轉移之電腦實施系統及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105871545A (zh) * | 2016-06-03 | 2016-08-17 | 中国银联股份有限公司 | 可信电子凭证托管方法及系统 |
US20160283920A1 (en) * | 2015-03-28 | 2016-09-29 | Justin Fisher | Authentication and verification of digital data utilizing blockchain technology |
CN106384236A (zh) * | 2016-08-31 | 2017-02-08 | 江苏通付盾科技有限公司 | 基于区块链的ca认证管理方法、装置及系统 |
TWI588763B (zh) * | 2016-07-19 | 2017-06-21 | 富邦金融控股股份有限公司 | 基於實體資產授信虛擬貨幣之系統及其方法 |
-
2017
- 2017-07-05 TW TW106122498A patent/TWI646480B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160283920A1 (en) * | 2015-03-28 | 2016-09-29 | Justin Fisher | Authentication and verification of digital data utilizing blockchain technology |
CN105871545A (zh) * | 2016-06-03 | 2016-08-17 | 中国银联股份有限公司 | 可信电子凭证托管方法及系统 |
TWI588763B (zh) * | 2016-07-19 | 2017-06-21 | 富邦金融控股股份有限公司 | 基於實體資產授信虛擬貨幣之系統及其方法 |
CN106384236A (zh) * | 2016-08-31 | 2017-02-08 | 江苏通付盾科技有限公司 | 基于区块链的ca认证管理方法、装置及系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI828857B (zh) * | 2019-02-15 | 2024-01-11 | 瑞士商區塊鏈授權股份有限公司 | 在區塊鏈網路上實施轉移之電腦實施系統及方法 |
CN111935088A (zh) * | 2020-07-03 | 2020-11-13 | 合肥科塑信息科技有限公司 | 一种基于区块链的数字档案系统 |
Also Published As
Publication number | Publication date |
---|---|
TW201907346A (zh) | 2019-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11210661B2 (en) | Method for providing payment gateway service using UTXO-based protocol and server using same | |
EP3424176B1 (en) | Systems and methods for distributed data sharing with asynchronous third-party attestation | |
US10540484B2 (en) | Networked services licensing system and method | |
US7386513B2 (en) | Networked services licensing system and method | |
US20160248746A1 (en) | Automating internet of things security provisioning | |
TWI636411B (zh) | 對非區塊鏈節點提供交易不可否認性之系統及其方法 | |
CN111147432B (zh) | 具隐密性的kyc数据共享系统及其方法 | |
KR102116235B1 (ko) | 블록체인 네트워크를 이용하여 사용자의 아이덴티티를 관리하는 방법 및 서버, 그리고, 블록체인 네트워크 기반의 사용자 아이덴티티를 이용하여 사용자를 인증하는 방법 및 단말 | |
KR102118962B1 (ko) | 블록체인 네트워크를 이용하여 사용자의 아이덴티티를 관리하는 방법 및 서버, 그리고, 블록체인 네트워크 기반의 사용자 아이덴티티를 이용하여 사용자를 인증하는 방법 및 단말 | |
WO2014103663A1 (ja) | 電子契約システム | |
CN112202705A (zh) | 一种数字验签生成和校验方法、系统 | |
CN110535807B (zh) | 一种业务鉴权方法、装置和介质 | |
JP7090161B2 (ja) | セキュアな取引のための装置の自己認証 | |
TWI623904B (zh) | 基於區塊鏈智能合約的函證系統及其方法 | |
TW201843635A (zh) | 基於區塊鏈智能合約的kyc資料共享系統及其方法 | |
CN111460457A (zh) | 不动产权登记监管方法、装置、电子设备及存储介质 | |
TWI646480B (zh) | 結合區塊鏈的憑證發行與驗證之系統及其方法 | |
CN112702419B (zh) | 基于区块链的数据处理方法、装置、设备和存储介质 | |
EP1505530A1 (en) | Networked services licensing system and method | |
CN116975901A (zh) | 基于区块链的身份验证方法、装置、设备、介质及产品 | |
KR20190114422A (ko) | 블록체인 기반의 통합 로그인 방법, 단말 및 이를 이용한 서버 | |
KR20190114421A (ko) | 블록체인 기반의 통합 로그인 방법, 단말 및 이를 이용한 서버 | |
KR102353808B1 (ko) | 블록체인 기반의 통합 로그인 방법, 단말 및 이를 이용한 서버 | |
TWI698113B (zh) | 電子裝置之認證方法及系統 | |
CN110610416A (zh) | 基于区块链智能合约的kyc数据共享系统及其方法 |