TW202131659A - 用以儲存已認證資料於區塊鏈上之電腦實行方法及系統 - Google Patents

用以儲存已認證資料於區塊鏈上之電腦實行方法及系統 Download PDF

Info

Publication number
TW202131659A
TW202131659A TW109131385A TW109131385A TW202131659A TW 202131659 A TW202131659 A TW 202131659A TW 109131385 A TW109131385 A TW 109131385A TW 109131385 A TW109131385 A TW 109131385A TW 202131659 A TW202131659 A TW 202131659A
Authority
TW
Taiwan
Prior art keywords
key
public key
data
private key
private
Prior art date
Application number
TW109131385A
Other languages
English (en)
Inventor
克瑞格 S 萊特
克洛伊 C 塔爾登
亞歷山大 T 蒙凱
Original Assignee
安地卡及巴布達商區塊鏈控股有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 安地卡及巴布達商區塊鏈控股有限公司 filed Critical 安地卡及巴布達商區塊鏈控股有限公司
Publication of TW202131659A publication Critical patent/TW202131659A/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/006Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
    • H04L9/007Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models involving hierarchical structures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3252Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3265Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate chains, trees or paths; Hierarchical trust model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本發明揭示一種儲存已認證資料於一區塊鏈上之方法。該方法包含產生一第一區塊鏈交易(Tx1),其具有一第一輸出(輸出3),該第一輸出含有一加密系統之一第一私用/公用密鑰對(包含一第一私用密鑰及一第一公用密鑰)的一第一公用密鑰、與該第一公用密鑰相關的第一資料,及藉助於一加密系統之一第二私用/公用密鑰對(包含一第二私用密鑰及一第二公用密鑰)的一第二私用密鑰應用於該第一資料及該第一公用密鑰的一第一數位簽名。該第一區塊鏈交易經廣播至該區塊鏈。

Description

用以儲存已認證資料於區塊鏈上之電腦實行方法及系統
發明領域
本發明係關於用於儲存已認證資料於區塊鏈上之電腦實行方法及系統。
發明背景 引言
憑證授權機構(CA)經由發佈數位憑證將公用密鑰鏈接至使用者身分識別而確保數位資產之真實性及合法所有權。數位憑證為安全網頁瀏覽之整體部分,使得能夠經由網際網路安全交換敏感資訊。商業及社交活動之逐漸增加的比例正發生在數位空間中。舉例而言,全球世界範圍的零售電子商務銷售額在2017年為2.3萬億美元且預計到2021年達至4.8萬億美元[「全域零售電子商務市場大小2014至2021」,2019年Statista,https://www.statista.com/statistics/379046/worldwide-retail-e-commerce-sales/]。僅僅藉由憑證授權機構及數位憑證鞏固的安全網頁瀏覽之普遍信任而使此有可能。涉及數位資產之轉移的任何商業活動將需要相同信任層級且不能單獨依賴於加密。
在區塊鏈生態系統內,實體使用私用/公用密鑰對化名地交換值。不存在當互動時實體顯露其身分識別的固有要求。儘管此係必要隱私特徵,但對於潛在商業及消費者呈現明顯安全風險。當前,非常少電子錢包軟體實施及數位資產交換具有足夠強瞭解你的客戶(KYC)協定以確保公用密鑰可安全地鏈接至「真實世界」身分識別。用於KYC之行業寬標準或用於身分識別管理之鏈上方法的發展亦具有極少進展。結果,為了安全,付款人及收款人限於使用藉由集中實體之相同軟體管理的電子錢包。
區塊鏈架構強得足以支援身分識別憑證之鏈上發佈及管理而不依賴於除安全密鑰管理以外的鏈外安全協定。此外,讀取與其安全及資料完整性組合的區塊鏈資料之相對低成本為憑證提供者提供優於現有方法的顯著經濟優點。 預備性措施 數位憑證
數位憑證用於認證公用密鑰之所有權。X.509係當前用於公用密鑰憑證之標準格式。圖1展示最新版本(v3)之資料結構在旁邊展示每一屬性之描述。數位憑證允許依賴方信任關於對應於已認證公用密鑰之私用密鑰得到的簽名或認定。
發佈者(稱為憑證授權機構(CA))提供在憑證之最後欄位中的簽名。CA使用其私用密鑰來簽名自X.509標準中之所有其他欄位之散列建立的訊息摘要,包括用於散列演算法之識別符。此經簽名摘要作為憑證中之最終條目出現。
數位憑證之驗證類似於發佈者簽名過程。所指示散列演算法用於自憑證中除CA之簽名外的所有欄位建立摘要。CA之公用密鑰接著用於驗證在憑證末端的簽名以獲得圍封訊息摘要。若所有欄位之散列等於圍封摘要,則憑證被視為有效且未被篡改。
應注意對於X.509憑證中之每一簽名,涉及兩個公用密鑰演算法:受CA保護的主體公用密鑰及簽名憑證所使用的演算法。此等演算法彼此獨立;已認證公用密鑰可屬於160位元橢圓曲線方案而憑證可運用RSA 2048位元演算法簽名,如在下文更詳細地描述。[2010年柏林:施普林格,C. Paar及J. Pelzl之理解密碼學]。 CA生態系統
CA為發佈數位憑證之實體。CA充當受憑證之主體(擁有者)及依賴於憑證之方信任的受信任第三方。CA最常簽名用於HTTPS(用於全球資訊網之安全瀏覽協定)的憑證,或發佈用於文獻之電子簽名的國家政府之身分證[https://en.wikipedia.org/wiki/Certificate_authority]。
CA可在組織內部或外部。商業CA收費以發佈憑證;一些常見外部CA包括Symantec(先前Verisign)、Digicert、Comodo、Geotrust及Equifax[https://slideplayer.com/slide/4254412/]。Let's Encrypt [https://letsencrypt.org/getting-started/ ]為開放原始碼CA及藉由諸如Mozilla、Cisco、Facebook、Chrome及更多之公司支持的合作倡議。儘管其提供高安全性,但免費憑證之缺點係缺乏任何保證或額外特徵。最高CA之比較性綜述可見於[https://premium.wpmudev.org/blog/ssl-certificate-authorities-reviewed/]。
雖然較小組織往往會使用管控/主控CA服務,但政府機構及中等大小組織常常部署其自身內部CA(例如視窗伺服器中之憑證服務或Google之Google Trust Services - GlobalSign Root CA-R2)。在此情況下,憑證之信任係基於發佈其的組織[https://sachi73blog.wordpress.com/2013/11/21/x509-certificate-asymmetric-encryption-and-digital-signatures/]。
圖2說明用戶端(主體)2提交憑證簽名請求(CSR)4給外部(商業)CA 6以用於發佈數位憑證8的過程。CSR含有主體名稱10、公用密鑰12及所使用的演算法(大部分使用RSA-如下文詳細描述)。私用14-公用12密鑰對16之公用密鑰12係藉由用戶端2產生且私用密鑰14經保護於私用密鑰儲存器18中。公用密鑰12係在CSR 4中提交至CA 6。CA 6驗證用戶端的身分識別並使用X.509格式簽名用戶端的公用密鑰12(運用CA之私用密鑰)。經簽名數位憑證8接著經發佈至用戶端2。 信任之鏈
CA生態系統使用階層式信任鏈條而可擴展及可信。所謂的根CA充當錨定器,形成鏈條基礎。根CA跨越從屬(中間)CA分配其憑證發佈負載,從屬CA又可分配其負載至發佈CA。應注意通常在最終實體與根CA之間的鏈條中將存在至少一個中間憑證,但可存在多於一個憑證。
在分支末端的CA與用戶端互動以發佈數位憑證。此階層式方法改良生態系統之容量、可操縱性及回彈性。從屬CA允許分段不同組織區域以支援專業功能性、不同應用或引入地區性分離。舉例而言,可建立在不同合法管轄區域中操作的策略授權機構(策略CA)[https://www.ncipher.com/resources/research-reports-and-white-papers/securing-your-pki]。CA亦可選擇使用代表CA執行個別或組織之身分識別檢查的註冊授權機構(RA)。應注意RA實際上不簽名/發佈任何憑證[https://www.tutorialspoint.com/cryptography/public_key_infrastructure.htm]。
圖3說明由CA之階層產生的信任之憑證鏈條。根CA自行簽名根憑證,驗證其身分識別為CA。從屬CA係經由藉由根CA簽名及發佈之中間憑證來認證。從屬CA發佈最終實體憑證以認證鏈條中之最終CA(發佈CA)。依賴方可選擇在鏈條內之任一層級處的信任憑證,使得其自動地信任沿著鏈條向下之所有憑證。 密鑰管理 PKI生態系統
公用密鑰基礎架構(PKI)提供用於加密資料安全之可擴展框架,涵蓋產生、管理、分配、使用、儲存及撤銷數位憑證及公用密鑰所需要的硬體、軟體、策略、過程及程序之集合[https://www.ncipher.com/resources/research-reports-and-white-papers/securing-your-pki]。CA藉由經由信任之階層式鏈條鞏固此加密框架之安全而充當PKI之核心組件。PKI之應用包括用於面向公用網站之SSL/TLS憑證、VPN、企業使用者鑑認、裝置鑑認、基於雲中之app、電子郵件安全及行動鑑認[https://www.ncipher.com/resources/research-reports-and-white-papers/securing-your-pki]。
在理想世界中,將存在一個CA及因此一個真值來源。又存在在不同根CA下操作並發佈具有其各別根公用密鑰之數位憑證的多個CA。此導致多個PKI。考慮兩個用戶(愛麗絲及鮑勃)使用不同CA;愛麗絲使用Symantec並具有Symantec公用密鑰,而鮑勃使用Equifax並具有Equifax公用密鑰的情況。鮑勃發送他的數位憑證給愛麗絲。愛麗絲需要驗證鮑勃之憑證以提取他的已認證公用密鑰,但她不擁有Equifax公用密鑰。
為解決此,每一根CA必須維持用於所有其他根CA之憑證。每一CA亦可保持來自其他CA之其他有用資訊,諸如撤銷清單。圖4說明PKI如何在個別根CA之間映射。雙端箭頭指示X及Y簽名彼此之憑證[https://slideplayer.com/slide/4254412/]。
用戶因此可聯繫其CA以獲得含有用於另一CA之公用密鑰的憑證。在愛麗絲及鮑勃之實例中,鮑勃發送憑證Symantec<<Equifax>>及Equifax<<Bob>>至愛麗絲。愛麗絲使用Symantec之公用密鑰驗證Symantec<<Equifax>>並提取Equifax之公用密鑰以驗證Equifax<<Bob>>。愛麗絲接著能夠提取鮑勃之已認證公用密鑰。此過程被稱為憑證鏈接。 密鑰對
數位憑證係運用以下演算法中之一者簽名:Rivest - Shamir - Adleman ( RSA ) 演算法 -RSA為第一公用密鑰密碼系統中之一者且為數位憑證中的最廣泛使用之演算法。其安全係關於較大整數因子分解之難度且因此不需要安全隨機數產生器。相較於DSA,RSA對於簽名驗證較快但對於簽名產生較慢[https://askubuntu.com/questions/363207/what-is-the-difference-between-the-rsa-dsa-and-ecdsa-keys-that-ssh-uses/363221。
數位簽名演算法 ( DSA ) -DSA為用於數位簽名之US標準。其使用與RSA相同之密鑰大小但係基於離散對數問題。演算法之安全依賴於用於導出DSA的隨機數產生器之強度,與RSA相比DSA在產生簽名時較快但驗證其較慢,[https://askubuntu.com/questions/363207/what-is-the-difference-between-the-rsa-dsa-and-ecdsa-keys-that-ssh-uses/363221]。
橢圓曲線數位簽名演算法 (ECDSA ) -ECDSA為由於其藉由橢圓曲線上的(兩個中之一者)座標表示而計算上較輕的DSA之橢圓曲線實施,[https://askubuntu.com/questions/363207/what-is-the-difference-between-the-rsa-dsa-and-ecdsa-keys-that-ssh-uses/363221]。一般認為其與DSA相比更安全,但其共用相同的對密碼系統之熵之靈敏度[https://security.stackexchange.com/questions/178958/what-are-the-differences-between-the-rsa-dsa-and-ecdsa-keys-that-ssh-uses?noredirect=1&lq=1。基於橢圓曲線密碼學(ECC),ECDSA為較小密鑰大小提供與RSA相同層級之安全性;ECC256位元憑證等效於3072位元RSA密鑰[https://www.digicert.com/ecc.htm]。此等小但強密鑰允許計算能力之高效使用,此係由於對於相同層級安全性,在ECC憑證中傳輸較少資料。ECC憑證因此有利於行動平台。對於較少CPU及記憶體的要求亦增加網路效能。應注意雖然ECC提供計算效率方面的益處,但ECDSA簽名之驗證可為計算密集任務且可能在一些裝置上比RSA較慢[https://www.digicert.com/ecc.htm]。 HD電子錢包
確定性密鑰為自單一「種子」值初始化的私用密鑰[2017年,加利福尼亞O'Reilly,93至98頁,A. M. Antonopoulos之主控比特幣 中之「第5章」]。種子為用於產生主控私用-公用密鑰對隨機產生數。確定性密鑰彼此相關且可藉由種子密鑰完全恢復。如圖5中所展示,HD電子錢包20為確定性密鑰之最常見導出方法。在HD電子錢包中,呈主控密鑰22形式的母密鑰由種子密鑰24產生且又產生子代密鑰26之序列,子代密鑰之序列又導出孫代密鑰28之序列,等等。下文給出關於其導出的其他細節。圖5中所展示之此樹狀結構為用於依據密鑰之安全及恢復來管理若干密鑰的有效機構。使用者可在無對應私用密鑰情況下產生公用密鑰之序列。由於需要儲存較少秘密,因此存在較低曝露風險。另外,若密鑰丟失/損毀,則可自種子密鑰24恢復密鑰。 秘密值分配
提供在國際專利申請案WO 2017/145016中關於兩方(愛麗絲與鮑勃)之間的秘密值分配描述之技術規範的簡要概述。 1.       愛麗絲產生一訊息並將其散列。 2.       愛麗絲使用散列訊息以經由ECC加法產生二級私用-公用密鑰對。 3.       愛麗絲發送經散列訊息至鮑勃,藉由她的二級私用密鑰簽名該訊息。 4.       鮑勃驗證愛麗絲之簽名。 5.       鮑勃使用經散列訊息以經由ECC加法產生二級私用-公用密鑰對。 6.       愛麗絲及鮑勃現在皆能夠計算彼此的二級公用密鑰。 7.       愛麗絲及鮑勃將其個別二級私用密鑰與彼此二級公用密鑰相乘以導出共享密鑰共用秘密(交換律)。 8.       散列經散列訊息(及散列經散列訊息之散列等)使得能夠產生共用秘密之階層,其中僅僅原始訊息需要知曉。
將需要儲存例如上文所描述的類型之數位憑證於區塊鏈上。
發明概要
因此,根據本發明,提供一種如隨附申請專利範圍中所界定之方法。
可提供儲存已認證資料於區塊鏈上的方法,該方法包含:- 產生一第一區塊鏈交易,其中該第一區塊鏈交易之一第一輸出含有基於一加密系統的一第一私用/公用密鑰對(包含第一私用密鑰及第一公用密鑰)之一第一公用密鑰的第一資料,該第一區塊鏈交易含有藉助於加密系統的第二私用/公用密鑰對(包含第二私用密鑰及第二公用密鑰)之第二私用密鑰簽名的第一數位簽名,且該第一數位簽名具有含有與該第一公用密鑰相關的第二資料之輸入;及 廣播該第一區塊鏈交易至該區塊鏈。
可提供驗證儲存於區塊鏈交易中之已認證資料的方法,該方法包含: 識別(i)基於加密系統的第一私用/公用密鑰對(包含第一私用密鑰及第一公用密鑰)之第一公用密鑰的第一資料及(ii)儲存於區塊鏈交易中的第一數位簽名,其中該區塊鏈交易之第一輸出含有該第一資料,該第一數位簽名係藉助於加密系統的第二私用/公用密鑰對(包含第二私用密鑰及第二公用密鑰)之第二私用密鑰簽名,且第一數位簽名具有含有與該第一公用密鑰相關的第二資料之輸入;及 藉助於該第二公用密鑰驗證該第一數位簽名。
可提供在第一參與者與第二參與者之間共用加密系統之公用密鑰的方法,其中第一參與者具有加密系統的具有同態性質之第一私用/公用密鑰對(包含第一私用密鑰及第一公用密鑰)之第一私用密鑰,第二參與者具有加密系統的第二私用/公用密鑰對(包含第二私用密鑰及第二公用密鑰)之第二私用密鑰,第一數位簽名係藉助於第三私用密鑰簽名,第一數位簽名具有含有與該第一公用密鑰相關的第一資料之輸入,第二數位簽名係藉助於第三私用密鑰簽名,且第二數位簽名具有含有與該第二公用密鑰相關的第二資料之輸入,該方法包含: 藉由該第一參與者藉助於該第一私用密鑰及該第二公用密鑰判定共同秘密,其中該共同秘密亦可藉助於該第二私用密鑰及該第一公用密鑰判定;及 藉由該第一參與者基於第一公用密鑰及共同秘密判定加密系統之至少另一種公用密鑰。
可提供產生加密系統之至少一個私用密鑰的方法,其中第一數位簽名係藉助於第二私用密鑰簽名,且第一數位簽名具有含有與加密系統之具有同態性質的第一私用/公用密鑰對(包含第一私用密鑰及該第一公用密鑰)之第一公用密鑰相關的第一資料之輸入,該方法包含基於第一私用密鑰及確定性私用密鑰產生加密系統之至少一個第三私用密鑰。
可提供一種系統,其包含: 一處理器;及 記憶體,其包括由於由該處理器執行時使得系統執行本文中所描述之電腦實行方法之任何具體實例的可執行指令。
可提供一種其上儲存有可執行指令的非暫時性電腦可讀儲存媒體,該等指令由於由電腦系統之處理器執行而使得電腦系統至少執行本文中所描述的電腦實行方法之具體實例。
較佳實施例之詳細說明 鏈上之數位憑證 CA階層
圖1中展示的格式之標準數位憑證可嵌入於區塊鏈上。此處,可假定簡化之兩層CA階層(諸如圖6中所展示之階層),其中根CA 30及一個從屬CA存在,諸如表示單一司法管轄權的策略CA 32。策略CA 32簽名多個發佈CA 34之公用密鑰以形成根據圖3之信任鏈條。發佈CA 34與不同使用者及裝置互動,代表其母CA發佈數位憑證36。在以下章節中,將描述使用者之公用密鑰向CA註冊及數位憑證之所得發佈。亦考慮憑證之驗證、更新及撤銷。 數位憑證 數位憑證格式
在區塊鏈數位憑證協定內,憑證後設資料含於藉由憑證發佈者簽名的交易之OP_RETURN(可證明不可花費)輸出內。憑證資料結構可與圖1中展示的X.509標準相同或經修改以移除冗餘資料(亦即,已經為區塊鏈平台所固有的資訊)。
圖7展示例示性區塊鏈數位憑證。所提議資料結構類似於X.509但具有一些顯著差異。新資料結構之意義在於其為建立新標準以表示區塊鏈平台內之真實世界身分識別的方式。
OP_RETURN酬載中之第一四位元組為數位憑證識別前綴。監控區塊鏈之裝置將在擷取憑證資料時查詢彼前綴。前綴之實例包括: BDC: 0x4244430a CER: 0x4345520a BCT: 0x4243540a 其中3字母縮寫使用ASCII轉換成六。
32位元組唯一ID指派給憑證。此可藉由將剩餘憑證資料之串接散列而產生。
憑證資料以識別鏈條上之CA的三個欄位開始。此等欄位包含至CA之發佈、中間及根憑證的指標,其更多細節在下文給出。
接下來兩個欄位編碼憑證有效性週期。
以下四個欄位編碼憑證主體資料且包括「真實世界」名稱、裝置及由發佈CA使用的主體識別符(可選)。
最後兩個欄位允許包括於憑證中之額外未指定後設資料(可選)。
應注意存在於X.509標準憑證中的「簽名」及「簽名演算法識別符」欄位並不明確地含於區塊鏈憑證中。此係因為簽名欄位(基於ECDSA)已經存在於交易輸入中。移除此冗余資訊增強鏈條上之資料儲存效率。
總計,區塊鏈數位憑證需要OP_RETURN空間之352至1408個位元組。 註冊及發佈
讓吾人假定愛麗絲提交CSR至鏈外之商業CA。隨後,代表CA起作用的RA對愛麗絲之身分識別進行必要檢查。在此資訊經驗證並傳達至發佈CA後,發佈CA藉由根據以下設置演算法設置鏈上交易而回應。設置
假設愛麗絲將想要用於數位簽名方案之她的公用密鑰
Figure 02_image001
待藉由CA認證。 1.     在自愛麗絲接收關於
Figure 02_image003
之請求後,CA驗證愛麗絲之身分識別。 2.       當CA確信愛麗絲實際上係她已主張成為的誰時,CA產生稱作憑證交易(CTX)之交易: a.       輸入:CA之UTXO及含有CA之簽名的解鎖指令碼 b.     輸出1:P2PKH(藉由CA選擇的獨立公用密鑰,比方說
Figure 02_image005
) c.      輸出2:OP_RETURN:
Figure 02_image003
3.       當CTX經挖礦時,CA將交易ID
Figure 02_image007
提供給愛麗絲。
關於
Figure 02_image001
的憑證為
Figure 02_image009
在圖8中說明所謂的憑證交易(CTX),其展示具有藉由CA產生以認證公用密鑰
Figure 02_image011
的交易ID(
Figure 02_image009
)之CTX。交易之輸入含有發佈CA之UTXO,籍此產生至鏈上CA的鏈路。第一輸出為至藉由發佈CA選擇的獨立公用密鑰之P2PKH(支付至公用密鑰散列)。此輸出確保CTX將看起來在UTXO集合中,且實現愛麗絲之公用密鑰的直接有效性檢查(如下文關於驗證所描述)。
設置演算法中之第二輸出含有愛麗絲之公用密鑰及她的CA簽名公用密鑰,皆在OP_RETURN可證明不可花費輸出內。此處,演算法經修改以在交易之第二輸出中包括整個數位憑證。憑證在OP_RETURN輸出內含有愛麗絲之公用密鑰資訊以及呈標準化及公認格式的CA之簽名。在圖8中之CTX經挖礦之後,CA將交易ID
Figure 02_image013
發佈給愛麗絲,她的憑證嵌入於該ID中。愛麗絲隨後可導引希望驗證她的鏈上身分識別的任何依賴方至此憑證交易ID。
區塊鏈數位憑證中之公用密鑰
Figure 02_image011
藉由散列函數而模糊。此可對於提供鏈上隱私係極有用的,但鏈外知曉公用密鑰的任何人仍然可將其鏈接至散列摘要。此亦允許區塊鏈數位憑證比標準數位憑證更可撓。 驗證
愛麗絲之數位簽名可經由她的已認證公用密鑰驗證。驗證過程之第一部分採用以下驗證演算法,藉此初始有效性檢查係藉由檢查交易ID存在於UTXO集合內而進行。驗證
為驗證來自愛麗絲之數位簽名,使用者需要首先驗證她的公用密鑰。 1.     給定
Figure 02_image001
Figure 02_image009
,吾人查找
Figure 02_image009
。 2.       檢查彼交易之輸入含有CA之公用密鑰。 3.       檢查彼交易之第一輸出是否在UTXO集合中。若否,則拒絕
Figure 02_image001
並中斷。 4.     檢查OP_RETURN輸出並將內容剖析為
Figure 02_image015
。 5.     檢查是否
Figure 02_image017
。若否,則拒絕
Figure 02_image001
並中斷 6.     接受
Figure 02_image003
為驗證經提供於第二輸出內的資訊認證愛麗絲之公用密鑰,驗證演算法需要經擴展以驗證X.509憑證內之內容。經更新的算法如下: 1.     給定
Figure 02_image003
Figure 02_image019
,吾人查找
Figure 02_image019
。 2.       檢查彼交易之第一輸出是否在UTXO集合中。若否,則拒絕
Figure 02_image003
並中斷。 3.       檢查OP_RETURN輸出並將X.509憑證之除CA之簽名外的內容剖析為
Figure 02_image021
。 4.       使用藉由憑證中之識別符指示的散列演算法產生摘要
Figure 02_image023
。 5.     使用
Figure 02_image025
以驗證在憑證末端之簽名並獲得圍封訊息摘要
Figure 02_image027
。 6.    檢查是否
Figure 02_image029
。若否,則拒絕
Figure 02_image001
並中斷。 7.     接受
Figure 02_image003
在區塊鏈平台上之交易係藉由其創建者使用以下橢圓曲線密碼系統簽名。CTX係藉由CA之私用密鑰用數位方式簽名;此使X.509憑證(CA之簽名)之最終條目冗餘。類似地,將數位憑證嵌入至區塊鏈交易中使X.509標準內的簽名演算法識別符之欄位無效,此係由於使用ECDSA簽名所有交易。因此,嵌入至數位憑證中的資料可使用為區塊鏈平台所固有的加密資訊優化。 更新及撤銷
數位憑證可根據用於撤銷及更新之以下過程來更新及撤銷。撤銷
為撤銷愛麗絲之公用密鑰,CA花費參考
Figure 02_image001
的CTX之第一輸出,此係因為此將使驗證過程中之步驟2失敗。更新
存在公用密鑰需要經更新的情境。舉例而言,愛麗絲已丟失她的私用密鑰,或她的私用密鑰已受損。
假設愛麗絲提交新的公用密鑰
Figure 02_image031
至CA且CA確信愛麗絲實際上係她已主張成為的誰。 1.        CA建立憑證交易(CTX): a.       輸入:來自
Figure 02_image033
之輸出1及含有CA之簽名的解鎖指令碼 b.       輸出1:P2PKH(藉由CA選擇的獨立公用密鑰,比方說
Figure 02_image035
) c.      輸出2:OP_RETURN:
Figure 02_image037
2.       當CTX經挖礦時,CA將新的交易ID
Figure 02_image039
提供給愛麗絲。
為了撤銷,CA可簡單地花費CTX之第一輸出,以使得驗證演算法中之步驟2失敗。為更新數位憑證,可建立使用交易輸入鏈接至先前CTX ID的新CTX,如下文在圖9中所展示,圖9展示具有藉由CA產生以認證經更新公用密鑰
Figure 02_image041
(
Figure 02_image043
= Tx費用)之交易ID
Figure 02_image045
的CTX。應注意存在可能需要取決於CA、使用者或多方撤銷方案調適撤銷機制的不同使用者情況。 憑證到期(計時密鑰)
每一數位憑證含有關於其有效性週期的資訊,如圖1及圖7之資料結構中所展示。藉由提取此資訊,時間可作為變數添加至憑證交易(CTX)輸出之鎖定指令碼,籍此增強指令碼之功能性以併入偽自主憑證到期/更新。
使用OP_CHECKLOCKTIMEVERIFY(CLTV),可藉由在某一時間花費交易而使含有數位憑證之CTX到期。時間可在UNIX中或經同步至在未來某時的區塊高度。此意謂任何時間同步裝置可運用「經計時」密鑰來驗證/失效。
當使用者提交CSR至商業CA時,其轉移用於憑證之相關支付以保持有效直至某一時間為止。藉由在指令碼中(使用nLockTime或CLTV)編碼此資訊,經簽名CTX不能自UTXO集合移除(不能被花費)直至一定時間量過去為止。 鏈上方法
圖10展示伴隨下文概述之方法的CTX。交易具有藉由CA建立以認證經更新公用密鑰
Figure 02_image041
(
Figure 02_image047
=
Figure 02_image049
費用)的交易ID(
Figure 02_image045
)。UTXO註冊含有確保UTXO不能被花費直至憑證到期日為止的CLTV作業碼。
步驟1:憑證發佈者建立憑證交易CTX。到期日係使用資料<到期時間>而編碼至第一輸出(UTXO註冊輸出)中。
步驟2:在發佈後,數位憑證係有效的直至到期日已到達且UTXO可花費為止。
步驟3:在<到期時間>過去後,
Figure 02_image051
能夠花費UTXO籍此撤銷憑證。
應注意此方法仍需要藉由憑證發佈者
Figure 02_image051
之主動參與以確保撤銷。 已認證電子錢包
電子錢包為密鑰/位址之集合。典型區塊鏈使用者定期更新其位址,以使得其所有資金並不位於一處且其私用密鑰不反覆地用於產生交易簽名。大多數(安全)電子錢包軟體實施將在沒有來自使用者之輸入情況下自動地產生一次性密鑰之序列。給定此應用層約束條件,需要CA簽名最終使用者可每天需要的每單一密鑰係不切實際的。
實際上,可藉由發佈將不直接用於交易但實際上用於電子錢包位址之導出路徑的公用密鑰之憑證而發佈用於整個電子錢包的單一數位憑證。 階層式密鑰
迄今為止,已論證明行數位憑證以認證區塊鏈上之個別密鑰對。為了安全原因,週期性地更新及再新密鑰以便防止損害使用者之資金係高度合理的。供區塊鏈使用者管理及更新其密鑰的常見方法係經由在HD電子錢包(上文所定義)中使用階層式密鑰。強調PKI中之階層與HD電子錢包中之階層之間的區別係重要的;前者係經由數位簽名密鑰(自根CA密鑰開始)建立,而後者係經由階層式密鑰(自主控密鑰開始)之確定性產生而建立。
當共用兩方之間的密鑰時,可另外考慮國際專利申請案WO 2017/145016中描述之秘密值分配技術的使用。此方法描述如何設置秘密的(僅僅為所涉及的兩方知曉)共用密鑰之階層且為自原始共用秘密產生秘密的高效方法。再次,強調PKI中之階層與自原始共用秘密之依序散列建立的秘密密鑰之階層之間的區別。
給定此等細微差異,不同技術可經組合以對於相同工作量外插在階層式密鑰之系統中的母(主控或根)密鑰之所需特徵。舉例而言,HD電子錢包利用鏈上的ECDSA密鑰對之同態性質。此性質可藉由自HD電子錢包內之已認證主控密鑰推斷所有子代/孫代密鑰之憑證而進一步利用。此亦可經擴展至共用秘密密鑰之階層。下文藉由引入已認證電子錢包之概念來論證階層式密鑰之此隱式品質。 基於確定性之密鑰更新
方法: 1.     假設愛麗絲擁有確定性電子錢包。她向CA註冊公用密鑰
Figure 02_image053
。在上文描述如何註冊
Figure 02_image053
及發佈數位憑證的方法。愛麗絲可自由廣播
Figure 02_image053
。她將永不使用
Figure 02_image053
建立簽名。 2.       使用確定性電子錢包設計,她產生子代密鑰
Figure 02_image055
Figure 02_image057
Figure 02_image059
此處,
Figure 02_image061
Figure 02_image063
,……為基於僅為愛麗絲知曉的種子之確定性密鑰。私用密鑰亦為相關
Figure 02_image065
。 3.     愛麗絲藉由簽名交易使用
Figure 02_image067
Figure 02_image069
,……進行支付。她僅僅一直每公用密鑰使用一個簽名。 4.     若任何人挑戰愛麗絲之密鑰
Figure 02_image067
,則她可證明
Figure 02_image055
且她藉由提供簽名
Figure 02_image071
Figure 02_image061
知曉為
Figure 02_image073
之私用密鑰。注意此必須為不同於藉由
Figure 02_image067
簽名之訊息的訊息。 用於
Figure 02_image067
Figure 02_image061
之兩個簽名證明愛麗絲知曉對應於
Figure 02_image053
的私用密鑰。
特徵 ‧ 愛麗絲僅僅需要一個公用密鑰以藉由CA認證。所有其他密鑰可經證明地鏈接。 ‧
Figure 02_image075
可自由地廣播至網路。其永不用於簽名交易。 ‧ 確定性電子錢包約定已用作本發明之一實施例。然而,其並不限於此。所有需要的係
Figure 02_image055
,其中
Figure 02_image073
私用密鑰為愛麗絲所知曉。 ‧ 使用分解,
Figure 02_image055
可在指令碼中驗證,允許引起關注的花費條件。 已認證密鑰更新
用於提供上文所描述的基於確定性之密鑰更新的方法可經擴展至HD電子錢包。基集為例如使用BIP0032協定導出的電子錢包,而非使用
Figure 02_image061
,
Figure 02_image063
,……作為經明確導出密鑰之基集。用於認證電子錢包之方法簡單地係添加已認證公用密鑰至由HD電子錢包產生的每一密鑰
Figure 02_image077
其中
Figure 02_image079
。 HD電子錢包
使用者首先選擇種子
Figure 02_image081
,通常12字片語。主控節點(或主控私用密鑰)接著使用HMAC-SHA512之1與50,000輪之間自種子導出。自主控密鑰產生所有電子錢包位址
Figure 02_image083
其中
Figure 02_image085
表示帳號,
Figure 02_image087
表示密鑰編號且
Figure 02_image089
為SHA256散列函數(關於密鑰導出方法之更多細節參看[https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki])。藉由secp256k1 產生器乘以私用密鑰而計算對應公用密鑰
Figure 02_image091
已認證HD電子錢包
為了認證電子錢包,使用者需要簡單地添加
Figure 02_image093
至電子錢包中之每一密鑰。新的已認證密鑰具有以下形式
Figure 02_image095
其中對應公用密鑰
Figure 02_image097
圖12展示已認證HD電子錢包之導出路徑。為證明已認證密鑰之所有權,HD電子錢包之使用者可遵循上文所描述的基於確定性密鑰更新過程中之步驟4,從而簽名來自對應
Figure 02_image099
Figure 02_image101
的訊息。或替代地,可如上文所描述遵循零知識證明協定。 分析
此方法使得來自已認證電子錢包之密鑰能夠以密碼方式鏈接至已發佈數位憑證的公用密鑰。此方法之密鑰特徵係 •  已認證密鑰被保護 •  對於CA之要求係最小的
此外,對於最終使用者之要求亦係最小的,此係因為驗證整個電子錢包僅僅需要添加常數至電子錢包私用密鑰。結果,導出路徑因此根本上不改變,且不需要另外安全考慮因素。 已認證支付渠道
儘管數位憑證對於實現KYC係重要的,但其可具有減少已認證方隱私之非所要效果。舉例而言,將某人之真實身分識別鏈接至公用密鑰的鏈上數位憑證將允許任何人監控彼人之財務活動。在一些情況下,交易方可想要經由數位憑證之發佈初始地建立信任,但在彼信任已建立後能夠混淆其位址與公用。已認證支付渠道藉由允許一對實體以安全及私用方式交易而解決此問題。 設置
愛麗絲及鮑勃必須具有已發佈有效數位憑證之密鑰。此等被稱作
Figure 02_image053
Figure 02_image103
。需要數位憑證,以使得愛麗絲及鮑勃兩者能夠在建立支付渠道之前驗證彼此真實世界身分識別。已在上文描述用於發佈及參考數位憑證之準確機制。 鏈上方法
步驟1:愛麗絲及鮑勃使用橢圓曲線Diffie Hellman產生共用秘密 步驟1a:愛麗絲將她的秘密密鑰乘以鮑勃之公用密鑰
Figure 02_image105
步驟1b:鮑勃將他的秘密密鑰乘以愛麗絲之公用密鑰
Figure 02_image107
觀測到
Figure 02_image109
步驟1c:共用秘密為經聯合導出橢圓曲線點之x座標
Figure 02_image111
Figure 02_image081
可僅僅藉由知曉愛麗絲之私用密鑰(
Figure 02_image113
)及鮑勃之公用密鑰(
Figure 02_image103
)(或反過來)的某人可行地導出。
步驟2:共用秘密用於產生秘密密鑰之散列鏈
Figure 02_image115
Figure 02_image117
Figure 02_image119
Figure 02_image121
此恰好為使用共用秘密種子之確定性密鑰產生路徑之一個實例。可使用諸如國際專利申請案WO 2017/145016中描述之方法的其他方法。亦應注意,實務上確定性電子錢包使用
Figure 02_image123
(基於散列之訊息鑑認碼)以產生私用密鑰。出於本發明之目的,可假定
Figure 02_image125
Figure 02_image127
係可互換的,且用於產生密鑰的確切函數為實施細節。
步驟3:自第
Figure 02_image129
個秘密密鑰開始產生更新公用密鑰
Figure 02_image131
Figure 02_image133
Figure 02_image135
Figure 02_image137
應注意,為添加安全性,自
Figure 02_image139
開始及以
Figure 02_image141
結束而反向導出更新密鑰。
步驟4:愛麗絲及鮑勃兩者使用此等更新密鑰建立索引位址之序列 愛麗絲:
Figure 02_image143
鮑勃:
Figure 02_image145
Figure 02_image147
愛麗絲及鮑勃現在具有發送及接收支付所藉以的索引公用密鑰位址之序列。如已使用共用秘密導出密鑰,支付渠道中之位址將僅僅為愛麗絲及鮑勃知曉,使得其能夠建立安全支付渠道,籍此確保隱私。 分析
已認證支付渠道演算法組合秘密共用及確定性密鑰更新且其安全模型依賴於ECC及散列函數兩者。即使攻擊者能夠判定單一更新密鑰之私用密鑰(用於
Figure 02_image149
Figure 02_image151
),其接著將不能夠判定
Figure 02_image153
Figure 02_image155
對於此方法之實例用例係隨用隨付串流服務,諸如有線電視服務,藉此支付渠道設置於用戶與供應商之間。為了建立初始信任,服務使用者必須確定支付位址實際上屬於服務提供者。相反地,服務提供者將需要能夠將支付鏈路至每一客戶ID。出於安全性及靈活性目的,已認證支付渠道演算法產生用於提供者及使用者兩者之多個密鑰並確保其交易資訊(儘管在鏈上)保持混淆第三方。 證明已認證密鑰 數位簽名
已認證密鑰之所有權可容易地藉由證明兩個數位簽名而論證:用於
Figure 02_image061
之簽名及用於
Figure 02_image157
)之簽名。比方說Carol想要驗證愛麗絲為已認證公用密鑰
Figure 02_image053
之擁有者。然而,愛麗絲不想要直接運用
Figure 02_image113
簽名訊息。她可使用以下演算法。
步驟1:Carol發送訊息
Figure 02_image159
至愛麗絲。此可為隨機產生之位元串。
步驟2:愛麗絲以用於訊息
Figure 02_image159
之兩個簽名回應:
Figure 02_image161
其中
Figure 02_image163
對於
Figure 02_image061
有效且
Figure 02_image165
對於
Figure 02_image067
有效。若簽名係有效的,則此證明愛麗絲知曉
Figure 02_image167
Figure 02_image169
步驟3:Carol可驗證
Figure 02_image171
給定
Figure 02_image113
=
Figure 02_image173
. Carol因此可推斷愛麗絲知曉
Figure 02_image113
。 散列原像
用於證明
Figure 02_image113
之知識的更高效方法將提供用於
Figure 02_image067
之一個簽名及產生用於
Figure 02_image175
之私用密鑰的散列原像。應注意,
Figure 02_image055
Figure 02_image057
其中
Figure 02_image177
Figure 02_image179
其中
Figure 02_image129
為支付渠道/電子錢包之密鑰的數目。 演算法(密鑰簽證方法2)
步驟1:Carol發送訊息
Figure 02_image159
至愛麗絲。此可為隨機產生之位元串。 步驟2:愛麗絲藉由發送
Figure 02_image181
及以下簽名而回應
Figure 02_image183
其中
Figure 02_image165
對於
Figure 02_image067
Figure 02_image185
係有效的  其中
Figure 02_image187
Figure 02_image189
全部三個資訊片段證明愛麗絲知曉
Figure 02_image191
Figure 02_image169
Figure 02_image193
步驟3:Carol可驗證
Figure 02_image171
且推斷
Figure 02_image057
假定
Figure 02_image113
=
Figure 02_image195
. Carol因此可推斷愛麗絲知曉
Figure 02_image197
應注意,與先前方法相比,此方法在密碼方面不大安全,此係因為其揭示關於
Figure 02_image061
的更多私用資訊。然而,其實現對於Carol的更高效驗證。效率之改良發生,原因在於Carol可判定確定性密鑰之鏈,此取決於提供哪一散列原像,籍此使得較大數目個簽名能夠被驗證。
零知識證明作為提供簽名以證明為
Figure 02_image199
之知識(及藉由暗示
Figure 02_image053
)替代方案,愛麗絲可提供她知曉私用密鑰
Figure 02_image199
的零知識證明。證明為
Figure 02_image199
之知識使得
Figure 02_image073
的零知識協定(在愛麗絲與鮑勃之間)如下: 演算法(密鑰簽證方法3)
設置: 系統之公開知曉之共用參數為:
Figure 02_image201
(群組)、
Figure 02_image203
(次序)、
Figure 02_image205
(EC產生器點)
方法: 1.     愛麗絲產生隨機見證(整數)
Figure 02_image207
並計算
Figure 02_image209
2.    愛麗絲發送
Figure 02_image211
至鮑勃 3.     鮑勃選擇隨機挑戰
Figure 02_image213
並發送
Figure 02_image215
至愛麗絲。應注意此挑戰亦可為訊息散列 4.    愛麗絲計算回應
Figure 02_image217
且發送
Figure 02_image219
回至鮑勃 5.    鮑勃使用
Figure 02_image219
Figure 02_image215
Figure 02_image211
以檢查等式:
Figure 02_image221
a.       若真,則證明係有效的 b.      若假,則證明係無效的
在圖11中說明步驟1-5,其中以粗體突顯的所有值保持秘密且所有帶下劃線的值經展現/公開。驗證之完整性:
給定
Figure 02_image219
Figure 02_image215
,可檢查步驟5中之方程式的LHS等於RHS
Figure 02_image223
Figure 02_image225
Figure 02_image227
Figure 02_image229
由於有限域橢圓曲線之代數特性,易於安全地遮蔽私用密鑰且仍使用橢圓曲線運算證明所有權。然而,用於
Figure 02_image199
的零知識證明之額外重要特徵為僅僅隨機挑戰之發佈者(鮑勃)可藉由證明確信。
對此之原因係產生/接收
Figure 02_image231
Figure 02_image233
Figure 02_image219
的次序
Figure 02_image235
係證明自身之部分。換言之,容易拾取隨機
Figure 02_image237
Figure 02_image213
接著計算
Figure 02_image211
,使得驗證方程式(步驟5)驗證為真。結果,鮑勃不能取得由愛麗絲產生的資料且確信除愛麗絲以外的任何其他人知曉
Figure 02_image199
。此不同於數位簽名,藉此用於訊息之單一簽名可使多個驗證者確信簽名者擁有私用密鑰。 擴展 鏈上之PKI
區塊鏈可以用於公開地註冊CA密鑰及根憑證。當前三個密鑰PKI標準可使用為區塊鏈架構所固有的交易輸入及輸出容易地複製於區塊鏈上。 鏈上之CA PKI
在此方法中,將假定CA具有可產生多個私用/公用密鑰對之電子錢包。用於發佈數位憑證之PKI需要三個密鑰: ‧ 根密鑰
Figure 02_image239
‧ 從屬密鑰
Figure 02_image241
‧ 發佈密鑰
Figure 02_image243
CA可使用區塊鏈交易以鏈接一階層中之此等三個密鑰。
圖13至圖15說明用於使用區塊鏈上之交易的方法並展現
Figure 02_image239
Figure 02_image245
Figure 02_image243
之間的鏈接。包括根密鑰之交易必須包括在OP_RETURN中或在ScriptPubKey自身(OP_PUSHDATAx <憑證位元組大小><憑證>OP_DROP)中的根憑證。當根憑證自我簽名時,其必須包括可獨立於區塊鏈(亦即可找到根公用密鑰的用於CA之網站)驗證的資料。
註冊: 步驟1:CA建立如圖14中所展示的交易
Figure 02_image247
,具有藉由
Figure 02_image239
簽名的一個輸入及三個輸出。一個輸出可藉由
Figure 02_image239
花費並提供撤銷工具。第二輸出為含有從屬密鑰
Figure 02_image241
的P2PK(支付至公用密鑰)。應注意此等效於簽名從屬密鑰。第三輸出為含有連續形式之根憑證的OP_RETURN
步驟2:為註冊
Figure 02_image241
,CA建立如圖15中所展示的交易
Figure 02_image249
,具有藉由
Figure 02_image241
簽名的花費來自
Figure 02_image247
之第二輸出的一個輸入。
Figure 02_image249
具有3個輸出。第一輸出可藉由
Figure 02_image241
花費並提供撤銷工具。第二輸出為含有從屬密鑰
Figure 02_image243
的P2PK(支付至公用密鑰)。應注意此等效於簽名發佈密鑰並可證明鏈接發佈密鑰至根密鑰。第三輸出為含有連續形式之中間密鑰註冊憑證的OP_RETURN。
步驟3:作為最終步驟,CA藉由建立
Figure 02_image251
註冊
Figure 02_image243
,其係在圖13中展示,具有藉由
Figure 02_image243
簽名的花費來自
Figure 02_image249
之第二輸出的一個輸入。
Figure 02_image251
具有兩個輸出。在密鑰撤銷之情況下,第一者可藉由
Figure 02_image243
花費。第二者為含有連續形式之包括CA資料的發佈密鑰註冊憑證的OP_RETURN。
步驟4:全部三個交易公佈於區塊鏈上。對應未花費輸出可見於UTXO集合中。交易共同形成信任之區塊鏈PKI鏈。
根憑證後設資料含於Tx1之OP_RETURN中。整個Tx(包括OP_RETURN資料)係藉由根密鑰簽名。中間憑證後設資料含於Tx2之OP_RETURN中並藉由從屬密鑰簽名。驗證:
對於需要藉由數位憑證認可的任何後續交易,註冊之證明接著變為 UTXO 集合中之3 個輸出點的108 位元組參考 。自此參考,任何人可建構鏈接
Figure 02_image243
(經由區塊鏈)至
Figure 02_image239
及根憑證的路徑,其又可與受信任CA相關聯。
步驟1:驗證者檢查來自每一交易(
Figure 02_image253
)之輸出1係在UTXO集合中。若三個輸出點中之任一者不呈現,則驗證失敗。
步驟2:驗證者接著請求用於
Figure 02_image255
之全部交易資料並檢查 I.      用於
Figure 02_image251
之輸入花費來自
Figure 02_image249
的輸出2 II.    用於
Figure 02_image249
之輸入花費來自
Figure 02_image247
的輸出2
步驟3:驗證者接著解析
Figure 02_image247
之OP_RETURN中之資料以研究根憑證(用於將數位憑證編碼至六資料中的實際方法本文未描述但存在許多存在的方法)。
根憑證形成信任的基礎並藉由某一塊外機制而可信。此處應包括關於CA的資訊以及非區塊鏈相關安全性資料。撤銷
為撤銷PKI階層內之任何密鑰,CA簡單地需要花費來自藉由彼密鑰簽名的交易之輸出1。此將自UTXO集合移除對含有註冊證明的交易之任何參考且因此藉由搜尋UTXO集合驗證密鑰將失敗。
應注意階層內之任何密鑰的撤銷將導致再向下所有密鑰的撤銷。此係因為自UTXO集合移除任何註冊Tx參考中斷自彼密鑰至根密鑰及根憑證的鏈路。 分析
組合UTXO成員資格及用於區塊鏈交易之OP_RETURN輸出及簽名提供將密鑰/憑證階層映射至區塊鏈上的安全及便宜之方式。圖16展示用於CA信任鏈之憑證的密鑰欄位及區塊鏈PKI中之
Figure 02_image257
內的其類似物之列表。圖13展示區塊鏈PKI中之信任鏈。 用例 專用SPV(簡化支付驗證)節點
使得使用者能夠將電子錢包鏈接至「真實世界」身分識別資料開拓建立可提供數位資產交換之服務的專用SPV節點的可能性。代幣化協定例如具有專用節點軟體,其處理請求並以區塊鏈交易之形式發佈回應,但其初級任務係代幣資產之自動化管理。
專用SPV節點可在任何交互開始時藉由提供數位簽名及對其CTX之參考自身容易地識別客戶。結果,客戶始終能夠獨立地驗證由此節點使用的公用密鑰之真實性。若互動需要高值轉移或待發送至專用節點之資訊係敏感的,則此係尤其重要的。
比方說,服務提供者(Sam)想要能夠自身識別客戶(Carol)。以下為方法之高層級描述。 用於服務提供者之身分識別驗證
步驟1:發佈CA建立將Sam鏈接至他的公用密鑰的CTX。此憑證含有Sam之身分識別資料以及對憑證授權機構PKI階層的參考。假定憑證發佈者為受信任第三方且每個人可鑑認發佈者之根憑證。
步驟2:Carol藉由發送給他任意(隨機)訊息而開始與Sam交互。
步驟3:為識別自身,服務提供者提供用於藉由Carol發送的訊息的ECDSA簽名以及參考CTX之32位元組TXID。
步驟4:Carol可藉由擷取CTX及使用數位憑證中之公用密鑰檢查簽名來驗證Sam之身分識別
下文在圖17中說明方法。
現在轉向圖18,提供計算裝置2600之說明性簡化方塊圖,該計算裝置可用於實踐本發明之至少一個實施例。在各種實施例中,計算裝置2600可用以實行上文所說明及描述之系統中之任一者。舉例而言,計算裝置2600可經組配以用作資料伺服器、網頁伺服器、攜帶型計算裝置、個人電腦或任何電子計算裝置。如圖18中所展示,計算裝置2600可包括具有快取記憶體之一或多個層級的一或多個處理器及可經組配以與包括主記憶體2608及持久性儲存器2610之儲存子系統2606通訊的記憶體控制器(共同地標記為2602)。主記憶體2608可包括如所展示之動態隨機存取記憶體(DRAM) 2618及唯讀記憶體(ROM) 2620。儲存子系統2606及快取記憶體2602且可用於儲存資訊,諸如與如本發明中所描述之交易及區塊相關聯的細節。一或多個處理器2602可用以提供如本發明中所描述之任何實施例的步驟或功能性。
一或多個處理器2602亦可與一或多個使用者介面輸入裝置2612、一或多個使用者介面輸出裝置2614及網路介面子系統2616通訊。
匯流排子系統2604可提供用於使計算裝置2600之各個組件及子系統能夠按預期彼此通訊之機制。儘管匯流排子系統2604經示意性地展示為單一匯流排,但匯流排子系統之替代實施例可利用多個匯流排。
網路介面子系統2616可提供至其他計算裝置及網路之介面。網路介面子系統2616可充當用於自其他系統接收資料及將資料自計算裝置2600傳輸至其他系統之介面。舉例而言,網路介面子系統2616可使資料技術員能夠將裝置連接至網路,使得資料技術員可能夠在處於諸如資料中心之遠端位置中時傳輸資料至裝置及自裝置接收資料。
使用者介面輸入裝置2612可包括:一或多個使用者輸入裝置,諸如鍵盤;指標裝置,諸如整合式滑鼠、軌跡球、觸控板或圖形平板電腦;掃描器;條形碼掃描器;觸控螢幕,其併入至顯示器中;音訊輸入裝置,諸如語音辨識系統、麥克風;及其他類型之輸入裝置。大體而言,使用術語「輸入裝置」意欲包括用於將資訊輸入至計算裝置2600之所有可能類型的裝置及機構。
一或多個使用者介面輸出裝置2614可包括顯示子系統、印表機或諸如音訊輸出裝置之非視覺顯示器等。顯示子系統可係陰極射線管(CRT)、諸如液晶顯示器(LCD)之平板裝置、發光二極體(LED)顯示器,或投影裝置或其他顯示裝置。大體而言,使用術語「輸出裝置」意欲包括用於輸出來自計算裝置2600之資訊的所有可能類型的裝置及機構。舉例而言,一或多個使用者介面輸出裝置2614可用以呈現使用者介面以在使用者與應用程式之互動可係適當的時促進此互動,該等應用程式執行所描述之過程及其中之變化。
儲存子系統2606可提供電腦可讀儲存媒體,該電腦可讀儲存媒體用於儲存可提供本發明之至少一個實施例之功能性的基本程式設計及資料建構。應用程式(程式、程式碼模組、指令)在由一或多個處理器執行時可提供本發明之一或多個實施例的功能性,且可儲存於儲存子系統2606中。此等應用程式模組或指令可由一或多個處理器2602執行。儲存子系統2606可另外提供用於儲存根據本發明所使用之資料的儲存庫。舉例而言,主記憶體2608及快取記憶體2602可提供用於程式及資料之揮發性儲存器。持久性儲存器2610可提供用於程式及資料之持久性(非揮發性)儲存器且可包括快閃記憶體、一或多個固態驅動機、一或多個磁性硬碟驅動機、具有相關聯抽取式媒體之一或多個軟碟驅動機、具有相關聯抽取式媒體之一或多個光學驅動機(例如CD-ROM或DVD或Blue-Ray)驅動機,及其他類似儲存媒體。此程式及資料可包括用於進行如本發明中所描述的一或多個實施例之步驟的程式以及與如本發明中所描述之交易及區塊相關聯的資料。
計算裝置2600可具有各種類型,包括攜帶型電腦裝置、平板電腦、工作站或下文所描述之任何其他裝置。另外,計算裝置2600可包括可經由一或多個埠(例如USB、頭戴式耳機插口、雷電型連接器等)連接至計算裝置2600的另一裝置。可連接至計算裝置2600之裝置可包括經組配以接受光纖連接器之多個埠。因此,此裝置可經組配以將光學信號轉換成可藉由將裝置連接至計算裝置2600之埠傳輸的電信號以供處理。歸因於電腦及網路不斷改變之本質,出於說明裝置之較佳實施例之目的,圖18中所描繪之計算裝置2600之描述僅意欲作為特定實例。具有比圖18中描繪之系統多或少之組件的許多其他組態係可能的。
應注意,上文所提及之實施例說明而非限制本發明,且熟習此項技術者將能夠設計許多替代實施例而不背離本發明之如由所附申請專利範圍定義的範圍。在申請專利範圍中,置放於圓括號中之任何參考符號不應被認為限制申請專利範圍。詞「包含(comprising及comprises)」及其類似者並不排除除任何技術方案或說明書中整體列出之彼等元件或步驟外的元件或步驟之存在。在本說明書中,「包含」意謂「包括或由……組成」。元件之單數參考並不排除此等元件之複數參考,且反之亦然。本發明可藉助於包含若干獨特元件之硬體且藉助於經適當程式設計之電腦予以實行。在枚舉若干構件之裝置技術方案中,此等構件中之若干者可由硬體之同一物件體現。在相互不同之附屬技術方案中敍述某些措施之純粹實情並不指示不能有利地使用此等措施之組合。 經枚舉實例實施例
本發明之實施例的實例可鑒於以下條項來描述:
1. 一種儲存已認證資料於一區塊鏈上的方法,該方法包含:- 產生一第一區塊鏈交易,其中該第一區塊鏈交易之一第一輸出含有基於一加密系統的一第一私用/公用密鑰對(包含第一私用密鑰及第一公用密鑰)之一第一公用密鑰的第一資料,該第一區塊鏈交易含有藉助於加密系統的第二私用/公用密鑰對(包含第二私用密鑰及第二公用密鑰)之第二私用密鑰簽名的第一數位簽名,且該第一數位簽名具有含有與該第一公用密鑰相關的第二資料之輸入;及 廣播該第一區塊鏈交易至該區塊鏈。
2. 如條項1之方法,其進一步包含產生至少一個第二區塊鏈交易,其中該第二區塊鏈交易之一第一輸出含有基於一加密系統的一第三私用/公用密鑰對(包含第三私用密鑰及第三公用密鑰)之一第三資料,該第二區塊鏈交易含有藉助於加密系統的第四私用/公用密鑰對(包含第四私用密鑰及第四公用密鑰)之第四私用密鑰簽名的第二數位簽名,且該第二數位簽名具有含有與該第三公用密鑰相關的第四資料之輸入;及 廣播該第二區塊鏈交易至該區塊鏈。
3. 如條項2之方法,其中該第二區塊鏈交易之第一輸出含有第三資料、第四資料及第二數位簽名,且第二數位簽名具有含有第三資料之輸入。
4. 如條項2或3之方法,其中第二區塊鏈交易之輸入對應於第一區塊鏈交易之輸出。
5. 如條項4之方法,其中該第二區塊鏈交易之該輸入含有藉助於第二私用密鑰簽名的數位簽名。
6. 如條項2至5中任一項之方法,其中第四資料係藉由將單向函數應用於包括於第二區塊鏈交易之第一輸出中及與第三公用密鑰相關的資料而導出。
7. 如條項2至6中任一項之方法,其中該第二區塊鏈交易之第二輸出可藉助於對應於預定公用密鑰之私用密鑰花費,其中該預定公用密鑰不同於該第四公用密鑰。
8. 如條項2至7中任一項之方法,其進一步包含自第三公用/私用密鑰對及確定性私用/公用密鑰對產生至少另一種公用/私用密鑰對。
9. 如條項2至8中任一項之方法,其中第二區塊鏈交易之第三輸出可藉助於對應於預定公用密鑰之私用密鑰花費。
10. 如條項9之方法,其中第二區塊鏈交易之第三輸出時間鎖定。
11. 如條項2至10中任一項之方法,其中第一公用密鑰及第四公用密鑰為相同公用密鑰。
12. 如條項2至10中任一項之方法,其中第二公用密鑰及第四公用密鑰為相同公用密鑰。
13. 如條項2至12中任一項之方法,其中該第三資料係藉由將單向函數應用於包括該第三公用密鑰之資料而導出。
14. 如前述條項中任一項之方法,其中該第一資料係藉由將單向函數應用於包括該第一公用密鑰之資料而導出。
15. 如前述條項中任一項之方法,其進一步包含產生經更新的第一區塊鏈交易,其中經更新第一區塊鏈交易之第一輸出含有基於經更新第一公用密鑰的經更新第一資料,經更新第一區塊鏈交易含有藉助於該第二私用密鑰簽名的經更新第一數位簽名,且經更新第一數位簽名具有含有與該經更新第一公用密鑰相關之經更新第二資料的輸入;及 廣播該經更新第一區塊鏈交易至該區塊鏈。
16. 如條項15之方法,其中經更新第一區塊鏈交易之第一輸出含有經更新第一資料、經更新第二資料及經更新第一數位簽名,且經更新第一數位簽名具有含有經更新第二資料的輸入。
17. 如前述條項中任一項之方法,其中第一區塊鏈交易之第一輸出含有第一資料、第二資料及第一數位簽名,且第一數位簽名具有含有該第二資料之輸入。
18. 如前述條項中任一項之方法,其中第二資料係藉由將單向函數應用於包括於第一區塊鏈交易之第一輸出中並與第一公用密鑰相關的資料而導出。
19. 如前述條項中任一項之方法,其中該第一區塊鏈交易之第二輸出可藉助於對應於預定公用密鑰之私用密鑰花費,其中該預定公用密鑰不同於該第二公用密鑰。
20. 如前述條項中任一項之方法,其中至少一個該第一輸出為不可花費輸出。
21. 如前述條項中任一項之方法,其中第一區塊鏈交易之第一輸入含有藉助於第二私用密鑰簽名的數位簽名。
22. 如前述條項中任一項之方法,其中該第一區塊鏈交易之第二輸出可藉助於對應於預定公用密鑰之私用密鑰而花費。
23. 如條項22之方法,其中第一區塊鏈交易之第二輸出時間鎖定。
24. 如前述條項中任一項之方法,其中該第一區塊鏈交易之第三輸出可藉助於對應於預定公用密鑰之私用密鑰花費,其中該預定公用密鑰不同於該第二公用密鑰。
25. 如前述條項中任一項之方法,其進一步包含自第一公用/私用密鑰對及確定性私用/公用密鑰對產生至少另一種公用/私用密鑰對。
26. 如條項8或25之方法,其進一步包含提供藉助於至少該另一種私用密鑰及藉助於對應確定性私用密鑰簽名的數位簽名。
27. 如條項8或25之方法,其進一步包含提供藉助於至少該另一種私用密鑰簽名的數位簽名及提供與對應確定性私用密鑰相關之資料。
28. 如條項27之方法,其中對應確定性私用密鑰係藉由將單向函數應用於與對應確定性私用密鑰相關的資料而導出。
29. 如條項8或條項25至28中任一項之方法,其進一步包含基於確定性密鑰之經加密版本及藉由驗證者所選擇的值提供該確定性私用密鑰之知識證明至驗證者。
30. 如前述條項中任一項之方法,其進一步包含基於第一方之私用密鑰及第二方之公用密鑰在第一方與第二方之間共用秘密值,其中秘密亦可依據第一方之公用密鑰及第二方之私用密鑰判定。
31. 如前述條項中任一項之方法,其進一步包含藉助於將單向函數重複應用於資料而產生複數個確定性密鑰。
32. 如條項31之方法,其中待更新的私用密鑰係基於將單向函數應用於經更新密鑰。
33. 如前述條項中任一項之方法,其中第一區塊鏈交易之第一輸出包括用於指示鏈外資料之位置的位置資料。
34. 一種驗證儲存於一區塊鏈交易中之已認證資料的方法,該方法包含: 識別(i)基於加密系統的第一私用/公用密鑰對(包含第一私用密鑰及第一公用密鑰)之第一公用密鑰的第一資料及(ii)儲存於區塊鏈交易中的第一數位簽名,其中該區塊鏈交易之第一輸出含有該第一資料,該第一數位簽名係藉助於加密系統的第二私用/公用密鑰對(包含第二私用密鑰及第二公用密鑰)之第二私用密鑰簽名,且第一數位簽名具有含有與該第一公用密鑰相關的第二資料之輸入;及 藉助於該第二公用密鑰驗證該第一數位簽名。
35. 如條項34之方法,其中區塊鏈交易之第一輸出含有第一資料、第二資料及第一數位簽名,且第一數位簽名具有含有該第一資料之輸入。
36. 如條項34或35之方法,其中至少一個該第一輸出為不可花費輸出且方法進一步包含自該不可花費輸出識別該第一數位簽名及該第一公用密鑰。
37. 如條項34至36中任一項之方法,其中第二資料係藉由將單向函數應用於包括於區塊鏈交易之第一輸出中並與第一公用密鑰相關的資料而導出,且該方法進一步包含識別該第二資料及包括於第一輸出中之該資料,及將該單向函數應用於包括於該第一輸出中的該資料並驗證所得資料對應於該第一資料。
38. 如條項34至37中任一項之方法,其進一步包含藉助於對應於該交易的區塊鏈上之識別資料而識別該區塊鏈交易。
39. 如條項34至38中任一項之方法,其中該第一資料係藉由將單向函數應用於基於該第一公用密鑰之資料而導出。
40. 如條項34至39中任一項之方法,其進一步包含判定區塊鏈交易是否未花費。
41. 如條項34至40中任一項之方法,其中該第一數位簽名係在提交區塊鏈交易至區塊鏈後藉助於該第二公用密鑰而驗證。
42. 一種在一第一參與者與一第二參與者之間共用一加密系統之一公用密鑰的方法,其中該第一參與者具有一加密系統的具有一同態性質之一第一私用/公用密鑰對(包含一第一私用密鑰及一第一公用密鑰)之第一私用密鑰,第二參與者具有加密系統的第二私用/公用密鑰對(包含第二私用密鑰及第二公用密鑰)之第二私用密鑰,第一數位簽名係藉助於第三私用密鑰簽名,第一數位簽名具有含有與該第一公用密鑰相關的第一資料之輸入,第二數位簽名係藉助於第三私用密鑰簽名,且第二數位簽名具有含有與該第二公用密鑰相關的第二資料之輸入,該方法包含: 藉由該第一參與者藉助於該第一私用密鑰及該第二公用密鑰判定共同秘密,其中該共同秘密亦可藉助於該第二私用密鑰及該第一公用密鑰判定;及 藉由該第一參與者基於第一公用密鑰及共同秘密判定加密系統之至少另一種公用密鑰。
43. 如條項42之方法,其中加密系統為橢圓曲線加密系統或基於數位簽名演算法之加密系統。
44. 如條項42或43之方法,其中至少該另一種公用密鑰係基於第一公用密鑰及藉助於基於共同秘密將確定性函數應用於資料判定的確定性密鑰而判定。
45. 如條項44之方法,其中確定性函數為單向函數。
46. 如條項44或45之方法,其進一步包含自該第一公用密鑰及藉助於基於共同秘密將確定性函數重複應用於資料判定的複數個確定性密鑰而判定複數個該另外公用密鑰。
47. 如條項44至46中任一項之方法,其進一步包含藉由提供藉助於對應於至少該另一種公用密鑰之私用密鑰簽名的數位簽名及提供與至少一個對應該確定性密鑰相關之資料而證明第一私用密鑰之所有權。
48. 如條項47之方法,其中對應於至少一個該確定性密鑰的私用密鑰係藉由將單向函數應用於與對應該確定性密鑰相關的資料而導出。
49. 如條項42至48中任一項之方法,其進一步包含藉助於零知識證明來證明該第一私用密鑰之所有權。
50. 如條項42至49中任一項之方法,其進一步包含藉由基於加密系統之具有同態性質的各別私用密鑰提供一對數位簽名來證明該第一私用密鑰之所有權,其中該各別私用密鑰藉由該第一私用密鑰而彼此相關。
51. 如條項42至50中任一項之方法,其中第一該數位簽名含於第一區塊鏈交易中。
52. 如條項42至51中任一項之方法,其中第二該數位簽名含於第二區塊鏈交易中。
53. 一種產生一加密系統之至少一個私用密鑰的方法,其中一第一數位簽名係藉助於一第二私用密鑰簽名,且該第一數位簽名具有含有與一加密系統之具有一同態性質的一第一私用/公用密鑰對(包含一第一私用密鑰及一第一公用密鑰)之該第一公用密鑰相關的第一資料之一輸入,該方法包含基於該第一私用密鑰及一確定性私用密鑰產生該加密系統之至少一個第三私用密鑰。
54. 如條項53之方法,其中加密系統為橢圓曲線加密系統或基於數位簽名演算法之加密系統。
55. 如條項53或54之方法,其中至少一個該確定性私用密鑰係藉助於將確定性函數應用於資料來判定。
56. 如條項55之方法,其中確定性函數為單向函數。
57. 如條項55或56之方法,其進一步包含判定藉助於將確定性函數重複應用於資料判定的複數個該確定性密鑰。
58. 如條項53至57中任一項之方法,其進一步包含藉由提供藉助於至少一個該第三私用密鑰簽名的數位簽名及提供與至少一個對應該確定性私用密鑰相關之資料而證明第一私用密鑰之所有權。
59. 如條項53至58中任一項之方法,其進一步包含藉助於零知識證明來證明該第一私用密鑰之所有權。
60. 如條項53至59中任一項之方法,其進一步包含藉由基於加密系統之具有同態性質的各別私用密鑰提供一對數位簽名來證明該第一私用密鑰之所有權,其中該各別私用密鑰藉由該第一私用密鑰而彼此相關。
61. 如條項60之方法,其中第一該數位簽名含於第一區塊鏈交易中。
62. 如條項60或61之方法,其中第二該數位簽名含於第二區塊鏈交易中。
63. 一種電腦實行系統,其包含; 一處理器;及 記憶體,其包括由於由該處理器執行時使得系統執行如條項1至62中任一項中主張的電腦實行方法之任何具體實例的可執行指令。
64. 一種其上儲存有可執行指令的非暫時性電腦可讀儲存媒體,該等指令由於經由電腦系統之處理器執行而使得電腦系統至少執行如條項1至62中任一項中所主張的方法之具體實例。
References
Reference Author,date, name and location
[1] “Global Retail E-Commerce Market Size 2014-2021,” Statista, 2019. [Online]. Available: https://www.statista.com/statistics/379046/worldwide-retail-e-commerce-sales/ [Accessed 5 June 2019].
[2] [Online]. Available: https://slideplayer.com/slide/4254412/ [Accessed 11 April 2019].
[3] C. Paar and J. Pelzl, Understanding Cryptography, Berlin: Springer, 2010.
[4] [Online]. Available: https://en.wikipedia.org/wiki/Certificate_authority [Accessed 11 April 2019].
[5] [Online]. Available: https://letsencrypt.org/getting-started/ [Accessed 11 April 2019].
[6] [Online]. Available: https://premium.wpmudev.org/blog/ssl-certificate-authorities-reviewed/ [Accessed 11 April 2019].
[7] [Online]. Available: https://sachi73blog.wordpress.com/2013/11/21/x509-certificate-asymmetric-encryption-and-digital-signatures/ [Accessed 11 April 2019].
[8] [Online]. Available: https://www.ncipher.com/resources/research-reports-and-white-papers/securing-your-pki [Accessed 11 April 2019].
[9] [Online]. Available: https://www.tutorialspoint.com/cryptography/public_key_infrastructure.htm [Accessed 11 April 2019].
[10] [Online]. Available: https://en.wikipedia.org/wiki/Chain_of_trust#/media/File:Chain_of_trust.svg [Accessed 11 April 2019].
[11] [Online]. Available: https://askubuntu.com/questions/363207/what-is-the-difference-between-the-rsa-dsa-and-ecdsa-keys-that-ssh-uses/363221 [Accessed 11 April 2019].
[12] [Online]. Available: https://security.stackexchange.com/questions/178958/what-are-the-differences-between-the-rsa-dsa-and-ecdsa-keys-that-ssh-uses?noredirect=1&lq=1 [Accessed 11 April 2019].
[13] [Online]. Available: https://www.digicert.com/ecc.htm [Accessed 11 April 2019].
[14] A. M. Antonopoulos, “Chapter 5,” inMastering Bitcoin , California, O'Reilly, 2017, pp. 93-98
[15] [Online]. Available: https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki [Accessed 11 April 2019].
2:用戶端(主體) 4:憑證簽名請求(CSR) 6:外部(商業)CA 8,36:數位憑證 10:主體名稱 12:公用密鑰 14:私用密鑰 16:私用-公用密鑰對 18:私用密鑰儲存器 20:HD電子錢包 22:主控密鑰 24:種子密鑰 26:子代密鑰 28:孫代密鑰 30:根CA 32:策略CA 34:發佈CA 2600:計算裝置 2602:處理器 2604:匯流排子系統 2606:儲存子系統 2608:主記憶體 2610:持久性儲存器 2612:使用者介面輸入裝置 2614:使用者介面輸出裝置 2616:網路介面子系統 2618:動態隨機存取記憶體(DRAM) 2620:唯讀記憶體(ROM)
將參看圖式描述根據本發明之各種實施例,其中: 圖1為數位憑證之資料結構的圖式; 圖2展示用於發佈數位憑證之過程; 圖3展示發佈數位憑證時的信任鏈條; 圖4展示公用密鑰基礎架構(PKI)在多個根憑證授權機構之間的映射; 圖5為階層式確定性(HD)電子錢包中之確定性密鑰的樹狀結構之圖式; 圖6展示數位憑證於區塊鏈上的儲存; 圖7展示儲存於區塊鏈上的數位憑證之資料結構; 圖8展示含有數位憑證之區塊鏈交易; 圖9展示圖8之區塊鏈交易的經更新版本; 圖10展示圖9之數位憑證的時間鎖定版本; 圖11展示私用密鑰之知識的零知識證明; 圖12展示用於已認證HD電子錢包之私用密鑰的導出; 圖13展示用於儲存已認證資料的區塊鏈上之交易鏈條的使用; 圖14展示圖13之配置的根交易; 圖15展示圖13之配置的中間交易; 圖16展示儲存於鏈外及儲存於區塊鏈上的數位憑證之欄位的比較; 圖17展示用於建立及參考服務提供者之數位憑證的過程;且 圖18為說明各種實施例可實行於其中之計算環境的示意圖。

Claims (64)

  1. 一種儲存已認證資料於區塊鏈上的方法,該方法包含: 產生一第一區塊鏈交易,其中該第一區塊鏈交易之一第一輸出含有基於一加密系統的一第一私用/公用密鑰對(包含一第一私用密鑰及一第一公用密鑰)之一第一公用密鑰的第一資料,該第一區塊鏈交易含有藉助於一加密系統的一第二私用/公用密鑰對(包含一第二私用密鑰及一第二公用密鑰)之一第二私用密鑰所簽名的一第一數位簽名,且該第一數位簽名具有含有與該第一公用密鑰相關的第二資料之一輸入;及 廣播該第一區塊鏈交易至該區塊鏈。
  2. 如請求項1之方法,其進一步包含產生至少一個第二區塊鏈交易,其中該第二區塊鏈交易之一第一輸出含有基於一加密系統的一第三私用/公用密鑰對(包含一第三私用密鑰及一第三公用密鑰)之一第三公用密鑰的第三資料,該第二區塊鏈交易含有藉助於一加密系統的一第四私用/公用密鑰對(包含一第四私用密鑰及一第四公用密鑰)之一第四私用密鑰所簽名的一第二數位簽名,且該第二數位簽名具有含有與該第三公用密鑰相關的第四資料之一輸入;及 廣播該第二區塊鏈交易至該區塊鏈。
  3. 如請求項2之方法,其中該第二區塊鏈交易之該第一輸出含有該第三資料、該第四資料及該第二數位簽名,且該第二數位簽名具有含有該第三資料之一輸入。
  4. 如請求項2或3之方法,其中該第二區塊鏈交易之一輸入對應於該第一區塊鏈交易之一輸出。
  5. 如請求項4之方法,其中該第二區塊鏈交易之該輸入含有藉助於該第二私用密鑰所簽名的一數位簽名。
  6. 如請求項2至5中任一項之方法,其中該第四資料藉由將一單向函數應用於包括於該第二區塊鏈交易之該第一輸出中並與該第三公用密鑰相關的資料而導出。
  7. 如請求項2至6中任一項之方法,其中該第二區塊鏈交易之一第二輸出可藉助於對應於一預定公用密鑰之一私用密鑰花費,其中該預定公用密鑰不同於該第四公用密鑰。
  8. 如請求項2至7中任一項之方法,其進一步包含自該第三公用/私用密鑰對及一確定性私用/公用密鑰對產生至少一個另外公用/私用密鑰對。
  9. 如請求項2至8中任一項之方法,其中該第二區塊鏈交易之一第三輸出可藉助於對應於一預定公用密鑰之一私用密鑰花費。
  10. 如請求項9之方法,其中該第二區塊鏈交易之該第三輸出被時間鎖定。
  11. 如請求項2至10中任一項之方法,其中該第一公用密鑰及該第四公用密鑰為一相同公用密鑰。
  12. 如請求項2至10中任一項之方法,其中該第二公用密鑰及該第四公用密鑰為一相同公用密鑰。
  13. 如請求項2至12中任一項之方法,其中該第三資料係藉由將一單向函數應用於包括該第三公用密鑰之資料而導出。
  14. 如請求項1至13中任一項之方法,其中該第一資料係藉由將一單向函數應用於包括該第一公用密鑰之資料而導出。
  15. 如請求項1至14中任一項之方法,其進一步包含產生一經更新的第一區塊鏈交易,其中該經更新第一區塊鏈交易之一第一輸出含有基於一經更新第一公用密鑰的經更新第一資料,該經更新第一區塊鏈交易含有藉助於該第二私用密鑰所簽名的一經更新第一數位簽名,且該經更新第一數位簽名具有含有與該經更新第一公用密鑰相關之經更新第二資料的一輸入;及 廣播該經更新第一區塊鏈交易至該區塊鏈。
  16. 如請求項15之方法,其中該經更新第一區塊鏈交易之該第一輸出含有該經更新第一資料、該經更新第二資料及該經更新第一數位簽名,且該經更新第一數位簽名具有含有該經更新第二資料的一輸入。
  17. 如請求項1至16中任一項之方法,其中該第一區塊鏈交易之該第一輸出含有該第一資料、該第二資料及該第一數位簽名,且該第一數位簽名具有含有該第二資料之一輸入。
  18. 如請求項1至17中任一項之方法,其中該第二資料係藉由將一單向函數應用於包括於該第一區塊鏈交易之該第一輸出中並與該第一公用密鑰相關的資料而導出。
  19. 如請求項1至18中任一項之方法,其中該第一區塊鏈交易之一第二輸出可藉助於對應於一預定公用密鑰之一私用密鑰而花費,其中該預定公用密鑰不同於該第二公用密鑰。
  20. 如請求項1至19中任一項之方法,其中至少一個該第一輸出為一不可花費輸出。
  21. 如請求項1至20中任一項之方法,其中該第一區塊鏈交易之一第一輸入含有藉助於該第二私用密鑰所簽名的一數位簽名。
  22. 如請求項1至21中任一項之方法,其中該第一區塊鏈交易之一第二輸出可藉助於對應於一預定公用密鑰之一私用密鑰而花費。
  23. 如請求項22之方法,其中該第一區塊鏈交易之該第二輸出被時間鎖定。
  24. 如請求項1至23中任一項之方法,其中該第一區塊鏈交易之一第三輸出可藉助於對應於一預定公用密鑰之一私用密鑰花費,其中該預定公用密鑰不同於該第二公用密鑰。
  25. 如請求項1至24中任一項之方法,其進一步包含自該第一公用/私用密鑰對及一確定性私用/公用密鑰對產生至少一個另外公用/私用密鑰對。
  26. 如請求項8或25之方法,其進一步包含提供藉助於至少一個該另外私用密鑰及藉助於該對應確定性私用密鑰所簽名的數位簽名。
  27. 如請求項8或25之方法,其進一步包含提供藉助於至少一個該另外私用密鑰所簽名的一數位簽名及提供與該對應確定性私用密鑰相關之資料。
  28. 如請求項27之方法,其中該對應確定性私用密鑰係藉由將一單向函數應用於與該對應確定性私用密鑰相關的該資料而導出。
  29. 如請求項8或請求項25至28中任一項之方法,其進一步包含基於確定性密鑰之一經加密版本及藉由一驗證者所選擇的一值來提供該確定性私用密鑰之知識證明給該驗證者。
  30. 如請求項1至29中任一項之方法,其進一步包含基於第一方之一私用密鑰及第二方之一公用密鑰在第一方與第二方之間共用一秘密值,其中該秘密亦可依據該第一方之公用密鑰及該第二方之私用密鑰判定。
  31. 如請求項1至30中任一項之方法,其進一步包含藉助於將一單向函數重複應用於資料而產生複數個確定性密鑰。
  32. 如請求項31之方法,其中待更新的一私用密鑰係基於將一單向函數應用於該經更新密鑰。
  33. 如請求項1至32中任一項之方法,其中該第一區塊鏈交易之該第一輸出包括用於指出鏈外資料之位置的位置資料。
  34. 一種驗證儲存於區塊鏈交易中之已認證資料的方法,該方法包含: 識別(i)基於一加密系統的一第一私用/公用密鑰對(包含一第一私用密鑰及一第一公用密鑰)之一第一公用密鑰的第一資料及(ii)儲存於一區塊鏈交易中的一第一數位簽名,其中該區塊鏈交易之一第一輸出含有該第一資料,該第一數位簽名係藉助於一加密系統的一第二私用/公用密鑰對(包含一第二私用密鑰及一第二公用密鑰)之一第二私用密鑰來簽名,且該第一數位簽名具有含有與該第一公用密鑰相關的第二資料之一輸入;及 藉助於該第二公用密鑰來驗證該第一數位簽名。
  35. 如請求項34之方法,其中該區塊鏈交易之該第一輸出含有該第一資料、該第二資料及該第一數位簽名,且該第一數位簽名具有含有該第一資料之一輸入。
  36. 如請求項34或35之方法,其中至少一個該第一輸出為一不可花費輸出,且該方法進一步包含自該不可花費輸出識別該第一數位簽名及該第一公用密鑰。
  37. 如請求項34至36中任一項之方法,其中該第二資料係藉由將一單向函數應用於包括於該區塊鏈交易之該第一輸出中並與該第一公用密鑰相關的資料而導出,且該方法進一步包含識別該第二資料及包括於該第一輸出中之該資料,及將該單向函數應用於包括於該第一輸出中的該資料並驗證所得資料對應於該第一資料。
  38. 如請求項34至37中任一項之方法,其進一步包含藉助於對應於該交易的該區塊鏈上之識別資料而識別該區塊鏈交易。
  39. 如請求項34至38中任一項之方法,其中該第一資料係藉由將一單向函數應用於基於該第一公用密鑰之資料而導出。
  40. 如請求項34至39中任一項之方法,其進一步包含判定該區塊鏈交易是否未花費。
  41. 如請求項34至40中任一項之方法,其中該第一數位簽名係在提交該區塊鏈交易給一區塊鏈後藉助於該第二公用密鑰而驗證。
  42. 一種在第一參與者與第二參與者之間共用加密系統之公用密鑰的方法,其中該第一參與者具有一加密系統的具有一同態性質之一第一私用/公用密鑰對(包含一第一私用密鑰及一第一公用密鑰)之該第一私用密鑰,該第二參與者具有該加密系統的一第二私用/公用密鑰對(包含一第二私用密鑰及一第二公用密鑰)之該第二私用密鑰,一第一數位簽名係藉助於一第三私用密鑰來簽名,該第一數位簽名具有含有與該第一公用密鑰相關的第一資料之一輸入,一第二數位簽名係藉助於該第三私用密鑰來簽名,且該第二數位簽名具有含有與該第二公用密鑰相關的第二資料之一輸入,該方法包含: 藉由該第一參與者藉助於該第一私用密鑰及該第二公用密鑰判定一共同秘密,其中該共同秘密亦可藉助於該第二私用密鑰及該第一公用密鑰判定;及 藉由該第一參與者基於該第一公用密鑰及該共同秘密判定該加密系統之至少一個另外公用密鑰。
  43. 如請求項42之方法,其中該加密系統為一橢圓曲線加密系統或基於一數位簽名演算法之一加密系統。
  44. 如請求項42或43之方法,其中至少一個該另外公用密鑰係基於該第一公用密鑰及藉助於基於該共同秘密將一確定性函數應用於資料所判定的一確定性密鑰而判定。
  45. 如請求項44之方法,其中該確定性函數為一單向函數。
  46. 如請求項44或45之方法,其進一步包含自該第一公用密鑰及藉助於基於該共同秘密將該確定性函數重複應用於資料所判定的複數個確定性密鑰而判定複數個該另外公用密鑰。
  47. 如請求項44至46中任一項之方法,其進一步包含藉由提供藉助於對應於至少該另一種公用密鑰之一私用密鑰所簽名的一數位簽名、及提供與至少一個對應該確定性密鑰相關之資料而證明該第一私用密鑰之所有權。
  48. 如請求項47之方法,其中對應於至少一個該確定性密鑰的一私用密鑰係藉由將一單向函數應用於與對應該確定性密鑰相關的該資料而導出。
  49. 如請求項42至48中任一項之方法,其進一步包含藉助於一零知識證明來證明該第一私用密鑰之所有權。
  50. 如請求項42至491中任一項之方法,其進一步包含藉由基於一加密系統之具有一同態性質的各別私用密鑰提供一對數位簽名來證明該第一私用密鑰之所有權,其中該各別私用密鑰藉由該第一私用密鑰而彼此相關。
  51. 如請求項42至50中任一項之方法,其中一第一的該數位簽名含於一第一區塊鏈交易中。
  52. 如請求項42至51中任一項之方法,其中一第二的該數位簽名含於一第二區塊鏈交易中。
  53. 一種產生加密系統之至少一個私用密鑰的方法,其中一第一數位簽名係藉助於一第二私用密鑰來簽名,且該第一數位簽名具有含有與一加密系統之具有一同態性質的一第一私用/公用密鑰對(包含一第一私用密鑰及一第一公用密鑰)之該第一公用密鑰相關的第一資料之一輸入,該方法包含基於該第一私用密鑰及一確定性私用密鑰產生該加密系統之至少一個第三私用密鑰。
  54. 如請求項53之方法,其中該加密系統為一橢圓曲線加密系統或基於一數位簽名演算法之一加密系統。
  55. 如請求項53或54之方法,其中至少一個該確定性私用密鑰係藉助於將一確定性函數應用於資料來判定。
  56. 如請求項55之方法,其中該確定性函數為一單向函數。
  57. 如請求項55或56之方法,其進一步包含判定藉助於將該確定性函數重複應用於資料來判定的複數個該確定性密鑰。
  58. 如請求項53至57中任一項之方法,其進一步包含藉由提供藉助於至少一個該第三私用密鑰所簽名的一數位簽名、及提供與至少一個對應該確定性私用密鑰相關之資料而證明該第一私用密鑰之所有權。
  59. 如請求項53至58中任一項之方法,其進一步包含藉助於一零知識證明來證明該第一私用密鑰之所有權。
  60. 如請求項53至59中任一項之方法,其進一步包含藉由基於一加密系統之具有一同態性質的各別私用密鑰提供一對數位簽名來證明該第一私用密鑰之所有權,其中該各別私用密鑰藉由該第一私用密鑰而彼此相關。
  61. 如請求項60之方法,其中一第一的該數位簽名含於一第一區塊鏈交易中。
  62. 如請求項60或61之方法,其中一第二的該數位簽名含於一第二區塊鏈交易中。
  63. 一種電腦實行系統,其包含; 一處理器;及 包括有可執行指令之記憶體,,作為由該處理器執行之一結果,該等可執行指令使得該系統執行如請求項1至62中任一項之電腦實行方法的任何實施例。
  64. 一種儲存有可執行指令之非暫時性電腦可讀儲存媒體,作為經由一電腦系統之處理器執行的一結果,該等可執行指令使得該電腦系統至少執行如請求項1至62中任一項之方法的一實施例。
TW109131385A 2019-09-23 2020-09-11 用以儲存已認證資料於區塊鏈上之電腦實行方法及系統 TW202131659A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB201913704A GB201913704D0 (en) 2019-09-23 2019-09-23 Computer implemented method and system for storing certified data on a blockchain
GB1913704.1 2019-09-23

Publications (1)

Publication Number Publication Date
TW202131659A true TW202131659A (zh) 2021-08-16

Family

ID=68281762

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109131385A TW202131659A (zh) 2019-09-23 2020-09-11 用以儲存已認證資料於區塊鏈上之電腦實行方法及系統

Country Status (8)

Country Link
US (1) US20220368539A1 (zh)
EP (1) EP4035304A1 (zh)
JP (1) JP2022549070A (zh)
KR (1) KR20220065049A (zh)
CN (1) CN114503508A (zh)
GB (1) GB201913704D0 (zh)
TW (1) TW202131659A (zh)
WO (1) WO2021059057A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3794766A1 (en) 2018-05-14 2021-03-24 Nchain Holdings Limited Computer-implemented systems and methods for using a blockchain to perform an atomic swap
US11645632B2 (en) * 2020-05-26 2023-05-09 Derek Norman La Salle System and method for a decentralized portable information container supporting privacy protected digital information credentialing, remote administration, local validation, access control and remote instruction signaling utilizing blockchain distributed ledger and container wallet technologies
CN113541938A (zh) * 2021-06-25 2021-10-22 国网山西省电力公司营销服务中心 一种基于无欺骗非阻塞信道的计算量非对称的存证方法
US20230291579A1 (en) * 2022-03-08 2023-09-14 Western Digital Technologies, Inc. Cryptographic keys for authorization requests from a data storage device

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114282926A (zh) * 2016-02-23 2022-04-05 区块链控股有限公司 用于从区块链中安全提取数据的密码方法和系统
AU2017223133B2 (en) 2016-02-23 2022-09-08 nChain Holdings Limited Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
US20170346639A1 (en) * 2016-05-24 2017-11-30 Business Information Exchange System Corp. Public Key Infrastructure based on the Public Certificates Ledger
US10715312B2 (en) * 2016-07-29 2020-07-14 Workday, Inc. System and method for blockchain-based device authentication based on a cryptographic challenge
US10382485B2 (en) * 2016-12-23 2019-08-13 Vmware, Inc. Blockchain-assisted public key infrastructure for internet of things applications
US10530585B2 (en) * 2017-06-07 2020-01-07 Bar-Ilan University Digital signing by utilizing multiple distinct signing keys, distributed between two parties
WO2019161412A1 (en) * 2018-02-16 2019-08-22 Verimatrix, Inc. Systems and methods for decentralized certificate hierarchy using a distributed ledger to determine a level of trust

Also Published As

Publication number Publication date
KR20220065049A (ko) 2022-05-19
JP2022549070A (ja) 2022-11-24
CN114503508A (zh) 2022-05-13
US20220368539A1 (en) 2022-11-17
WO2021059057A1 (en) 2021-04-01
EP4035304A1 (en) 2022-08-03
GB201913704D0 (en) 2019-11-06

Similar Documents

Publication Publication Date Title
US11842317B2 (en) Blockchain-based authentication and authorization
US20230068423A1 (en) Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
US11979493B2 (en) Methods and systems to establish trusted peer-to-peer communications between nodes in a blockchain network
US20190295069A1 (en) Systems and methods for integrating cryptocurrency wallet identifiers with digital certificates
TW202131659A (zh) 用以儲存已認證資料於區塊鏈上之電腦實行方法及系統
WO2015072203A1 (ja) 情報配信システム
TWI807125B (zh) 用以分配數位簽署資料之份額的電腦實施系統及方法
US20210344500A1 (en) Computer-implemented system and method for transferring access to digital resource
KR20220011165A (ko) 컴퓨터 구현 시스템 및 방법
US20210306135A1 (en) Electronic device within blockchain based pki domain, electronic device within certification authority based pki domain, and cryptographic communication system including these electronic devices
TW202232913A (zh) 共享金鑰產生技術
TW202231018A (zh) 識別阻斷服務攻擊之技術
CN114051031B (zh) 基于分布式身份的加密通讯方法、系统、设备及存储介质
CN110519040B (zh) 基于身份的抗量子计算数字签名方法和系统
EP4035305A1 (en) Partitioning a request into transactions for a blockchain
KR102354044B1 (ko) 니모닉 코드를 이용한 개인키 복구 방법
JP7492508B2 (ja) コンピュータにより実施される、デジタル署名されたデータのシェアを分配するシステム及び方法
Azeem URS–A universal revocation service for applying in self-sovereign identity
Kim et al. A Comprehensive Approach to User Delegation and Anonymity within Decentralized Identifiers for IoT
Yue et al. A 2 SHE: An Anonymous Authentication Scheme for Health Emergencies in Public Venues