TW202137732A - 確定性稀疏樹為基礎之負債的密碼學證明 - Google Patents

確定性稀疏樹為基礎之負債的密碼學證明 Download PDF

Info

Publication number
TW202137732A
TW202137732A TW110111358A TW110111358A TW202137732A TW 202137732 A TW202137732 A TW 202137732A TW 110111358 A TW110111358 A TW 110111358A TW 110111358 A TW110111358 A TW 110111358A TW 202137732 A TW202137732 A TW 202137732A
Authority
TW
Taiwan
Prior art keywords
user
node
nodes
liability
committed
Prior art date
Application number
TW110111358A
Other languages
English (en)
Inventor
康斯坦丁諾斯 查爾基亞斯
凱文 萊威
派曼 莫海瑟
瓦萊里亞 歐勒格納 尼古拉蘭科
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 TW202137732A publication Critical patent/TW202137732A/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
    • 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/3218Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/105Human resources
    • G06Q10/1053Employment or hiring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/08Insurance
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Marketing (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Technology Law (AREA)
  • Data Mining & Analysis (AREA)
  • Development Economics (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Storage Device Security (AREA)

Abstract

本公開係關於用於結合不可變資料庫產生負債之分散式隱私保護密碼學證明的系統、非暫時性電腦可讀取媒體及方法。特定而言,在一或多個具體實例中,所公開系統使得一實體能夠透明且準確地報告其負債、債務或與可替換負面報告相關之其他資料的總量,而無需曝露任何使用者資料或敏感系統資料(例如,負債結構)。此外,所公開系統可產生負債之一密碼學證明,其允許個別使用者獨立地驗證其所承諾負債包括於一所報告總負債中。

Description

確定性稀疏樹為基礎之負債的密碼學證明
本申請案係關於確定性稀疏樹為基礎之負債的密碼學證明。 對相關申請案之交叉參考
本申請案主張2020年3月30日申請之美國臨時專利申請案第63/002,298號的優先權及權益,該申請案以全文引用之方式併入本文中。本申請案亦主張2021年3月19日申請之美國非臨時專利申請案第17/206,423號的優先權及權益,該申請案以全文引用之方式併入本文中。
負債證明為允許公司證明其負債或債務總額之重要方案。舉例而言,負債證明對於證明各個行業中各種類型之負債可為重要的。舉例而言,負債證明可用於諸如密碼貨幣交易所之區塊鏈系統中。償債能力為公司履行其長期財務承諾之能力。在金融領域中且尤其在區塊鏈系統中,償債能力之證明由兩個分量組成:1.負債證明:證明交易所欠其所有客戶之錢幣的總量;及2.儲備證明(亦稱為資產證明):證明區塊鏈中之數位資產(亦即,錢幣)的所有權。典型地,交易所應能夠按需證明所擁有錢幣之總餘額大於或等於其負債,該些負債對應於其使用者在其平台內擁有之錢幣的總和。
習知地,負債證明由人類稽核員執行。然而,使用人類稽核員會引起各種問題。舉例而言,依賴於第三方人類稽核員來驗證索賠可導致不準確且甚至腐敗。試圖避免與人類稽核員相關聯之問題的一種新興類型之負債證明為負債/償債能力之密碼學證明。不幸地,負債方案及系統之習知密碼學證明具有數個缺陷。舉例而言,習知密碼學系統常常曝露關於底層負債結構及/或其使用者群之敏感資訊。特定而言,一些習知密碼學系統洩漏資訊,諸如資料庫大小(例如,使用者之數目)及個人餘額或其他使用者資訊。
另外,負債方案及系統之一些習知密碼學證明可將存取型樣曝露給所提供證明。舉例而言,分散式稽核程序中之脆弱期為在被稽核實體使用先前稽核之資訊來預測使用者檢查其證明之機率時。此資訊可由被稽核實體利用以在即將到來稽核中省略特定餘額,此係因為被捕獲之風險極低。
由於以此等方式洩漏及曝露資料,負債方案之習知密碼學證明導致系統不準確性。舉例而言,藉由利用洩漏及曝露資料,惡意實體可在區塊鏈系統內產生不準確性以便竊取數位資產。由於區塊鏈系統之混淆性質,此等不準確性難以偵測或證明。此外,負債方案之習知密碼學證明在報告負債方面通常不準確。舉例而言,使用負債方案之習知密碼學證明,報告實體通常無法確認特定負債是否包括於所有所報告負債中(例如,在區塊鏈中)。特定實例為報告傳染病之確診陽性病例。檢測呈陽性之個人典型地無法確認其個人陽性檢測包括於政府或機構所報告的感染總數中。
此外,負債方案之習知密碼學證明在應用分散式稽核程序時常常會浪費計算資源。舉例而言,人類稽查員常常將負債技術之各種證明依序應用於資料集以試圖驗證總負債及成員資格。但此依序工作典型地導致重複及冗餘,此又導致驗證之計算成本增加。
關於負債方案及系統之習知證明,存在此等連同額外問題。
本文中所描述之一或多個具體實例藉由用於負債之分散式隱私保護密碼學證明的系統、方法及非暫時性電腦可讀取儲存媒體來提供益處及/或解決此項技術中之前述或其他問題中之一或多者。舉例而言,一或多個具體實例提供負債系統之密碼學證明,其允許實體安全地、透明地且準確地報告其負債、債務或與可替換負面報告相關之其他量度的總量,而無需曝露任何使用者資料或敏感系統資料(例如,負債結構)。此外,一或多個具體實例提供負債系統之密碼學證明,其允許個別使用者獨立地驗證其所承諾負債包括於所報告總負債中。
一或多個具體實例包括負債系統之密碼學證明,其利用確定性稀疏樹為基礎之負債的密碼學證明。特定而言,在負債系統之密碼學證明中,可利用樹型構造(例如,默克爾(Merkle)樹),其使用餘額分割、高效填補、可驗證隨機函數、確定性金鑰導出函數或範圍證明技術中之一或多者來擴展。在至少一個具體實例中,負債系統之密碼學證明利用餘額分割、高效填補、可驗證隨機函數、確定性金鑰導出函數及範圍證明技術中之每一者擴展默克爾樹。在一或多個具體實例中,負債系統之密碼學證明確定性地產生稀疏樹使得稀疏樹中之每個葉節點與鑑認路徑相關聯。在一或多個具體實例中,負債系統之密碼學證明利用稀疏樹中在該葉節點與稀疏樹之根之間的節點之此清單來判定與葉節點相關聯之所承諾負債反映在整個稀疏樹之總負債中。
為進行說明,在一或多個具體實例中,負債系統之密碼學證明產生與不可變資料庫(例如,區塊鏈)相關聯之確定性稀疏樹(例如,稀疏默克爾樹)。舉例而言,負債系統之密碼學證明藉由以下操作產生確定性稀疏樹:針對不可變資料庫中之每個使用者或成員產生及定位稀疏樹中之至少一個葉節點。負債系統之密碼學證明可針對稀疏樹中之每一其他層級產生內部節點,其包括來自子代節點之資訊的總和及串接。藉由根據此等通用規格遞歸地產生稀疏樹,負債系統之密碼學證明可確保稀疏樹之根節點反映整個不可變資料庫之總負債,且準確鑑認路徑在稀疏樹內存在於每個使用者葉節點與根節點之間。
在一或多個具體實例中,負債系統之密碼學證明利用確定性函數來改善安全性且保護使用者負債。舉例而言,負債系統之密碼學證明可將確定性函數應用於稀疏樹葉節點內之使用者負債,使得使用者負債被混淆但可用密碼學方式證明。在一或多個具體實例中,負債系統之密碼學證明可利用諸如同態承諾(例如,佩德森(Pedersen)承諾)之確定性函數,來確保任何特定負債隱藏於稀疏樹內且僅可與另一同態承諾相比較地使用。
為了進一步保護使用者資訊及通常關於稀疏樹的資訊,負債系統之密碼學證明可利用可驗證隨機函數(verifiable random function;VRF)及金鑰導出函數(key derivation function;KDF),來提供稍後可使用證明揭露之確定性預先承諾。舉例而言,負債系統之密碼學證明可利用金鑰導出函數連同可驗證隨機函數,來針對每個使用者產生唯一的稽核 id audit id 盲因子( blinding factor 。基於此等唯一且確定性地產生之值,負債系統之密碼學證明可進一步確保關於使用者及稀疏樹的資訊保持私用,甚至在連續稽核與後續稽核之間亦如此。
在一或多個具體實例中,負債系統之密碼學證明進一步產生確定性稀疏樹以混淆稀疏樹內之使用者或成員的總數。舉例而言,負債系統之密碼學證明可產生稀疏樹,其包括具有零餘額(例如,零負債)之填補節點。此等填補節點並不影響表示於稀疏樹中之總負債,而是用以隱藏該樹中攜載實際負債餘額之真實使用者葉節點的數目。在至少一個具體實例中,負債系統之密碼學證明可將填補節點定位於確定性稀疏樹內之每個空子樹的根處。
在至少一個具體實例中,負債系統之密碼學證明可藉由產生一或多個零知識範圍證明來進一步確保反映在稀疏樹之根節點中的總負債為準確的。舉例而言,負債系統之密碼學證明可針對稀疏樹之通向根節點的每個內部節點而產生零知識範圍證明,其表明每一節點之所承諾負債為預定數字範圍內的小正數。因此,負債系統之密碼學證明可在稀疏樹之每個層級處展示其中所表示之負債為預期的。
在一或多個具體實例中,負債系統之密碼學證明可針對在確定性稀疏樹中所表示之任何使用者而產生及提供成員資格或包括之個別證明。舉例而言,負債系統之密碼學證明可自使用者用戶端裝置接收驗證使用者之所承諾負債(例如,錢幣數目、陽性感染報告、選票)是包括於在稀疏樹之根節點處列出之總負債中的請求。回應於接收到此請求,負債系統之密碼學證明可產生包括鑑認路徑之證明,該鑑認路徑包括稀疏樹中在使用者葉節點與稀疏樹之根節點之間的節點之清單。因為稀疏樹之性質,且在一些狀況下亦因為與清單中之每個節點相關聯的範圍證明,負債系統之密碼學證明可使用鑑認路徑向使用者證明使用者之負債正確地反映在稀疏樹之總負債中。
在至少一個具體實例中,每當稽核稀疏樹時,負債系統之密碼學證明皆可確定性地混洗確定性稀疏樹之使用者葉節點。為進行說明,當在每次稽核中按關係對葉節點進行排序時,惡意行動者可潛在地瞭解關於稀疏樹的資訊。因此,負債系統之密碼學證明可定期確定性地混洗稀疏樹葉節點(例如,在稀疏樹之每次稽核之前),使得後續排序無法提取任何資訊。
如上文所提及,負債系統之密碼學證明提供優於負債系統之習知證明的許多技術優點及益處。舉例而言,負債系統之密碼學證明改善負債系統之習知證明確定各種負債的準確性及安全性。相較於習知系統,負債系統之密碼學證明藉由利用確定性稀疏樹方法來避免其他方案所常見的許多資料洩漏及曝露,除了隱藏關於稀疏樹自身之資訊(例如,樹大小)以外,該確定性稀疏樹方法亦有效地隱藏關於在稀疏樹中表示之使用者及帳戶的資訊。以此方式,負債系統之密碼學證明避免常常由惡意實體利用之習知系統的資料不準確性。
另外,負債系統之密碼學證明藉由利用確定性稀疏樹之結構確定準確負債證明來改善習知系統之準確性。舉例而言,負債系統之密碼學證明結合稀疏樹之每個層級處的節點利用金鑰導出函數及可驗證隨機函數,以確保親代節點準確地反映兩個子代節點之負債資訊。因此,負債系統之密碼學證明可確保在稀疏樹之根節點中反映的總負債準確地反映每一貢獻葉節點負債。
此外,負債系統之密碼學證明亦改善習知系統之效率。舉例而言,負債系統之密碼學證明基於單個所產生確定性稀疏樹而向稽核員或使用者呈現負債之優雅且穩健的證明。因而,負債系統之密碼學證明最小化典型地與證明諸如區塊鏈之不可變資料庫之負債相關聯的計算驗證成本。
除了此等技術優點及益處以外,負債系統之密碼學證明亦提供優於習知系統之各種隱私及安全性方面的進步。舉例而言,負債系統之密碼學證明改善習知系統所常見之以下隱私及安全性缺點。
帳戶資訊洩漏—習知系統通常洩漏帳戶資訊。舉例而言,在結構化為默克爾樹之證明中,驗證使用者可瞭解屬於默克爾樹中之同層級葉節點的餘額。甚至當葉節點經混洗時,驗證者亦可瞭解關於餘額分配之事項。如將更詳細地描述,在一或多個實施方案中,負債系統之密碼學證明確保甚至在獨立稽核之間亦從未揭露關於個別使用者之資料(id或餘額)。
交易所資訊洩漏—在公佈與交易所相關聯之總負債金額時,習知系統通常曝露關於可利用之交易所的資訊。舉例而言,惡意實體可提取關於交易所業務之成功的業務資訊。如將更詳細地描述,在一或多個實施方案中,負債系統之密碼學證明會證明揭露或不揭露總負債之選項。
對完整帳戶持有者驗證之依賴性—習知系統可能不需要普遍參與來驗證負債證明之正確性。相比而言,在一或多個實施方案中,負債系統之密碼學證明將驗證負債證明之完整性及正確性兩者的責任分配給所有帳戶持有者。如下文將進一步論述,此分配進一步確保負債證明之較大準確性,此係因為每一參與使用者皆驗證其鑑認路徑之正確性。
對證明之互動式存取—在一或多個實施方案中,負債系統之密碼學證明確保每一帳戶持有者自交易所接收僅含有在其自身葉節點與根之間的節點的個別包括證明,同時防止洩漏關於使用者包括證明請求之資訊。舉例而言,利用習知系統,惡意證明者可使用包括證明請求使用者之標識來省略很少或從未檢查其包括證明之使用者。如下文將進一步論述,負債系統之密碼學證明可使用填補節點來防止此類型之洩漏。
獨立驗證工具—習知系統通常無法向使用者提供自動化的獨立驗證工具。在一或多個實施方案中,負債系統之密碼學證明向每一帳戶持有者提供僅含有在其自身葉節點與根之間的節點的個別證明。
使用者之數目—如上文所提及,習知系統常常洩漏關於交易所或其他主體之資訊,包括使用者之數目。此資訊可由惡意實體以各種方式利用。如下文將更詳細地論述,負債系統之密碼學證明可產生隱藏使用者之總數的負債證明,使得彼數目不會被漏泄或可探索到。
實施問題—如上文所提及,習知系統常常向稽核員洩漏使用者資訊。如同上文的使用者數目,此漏泄資訊可由惡意實體以各種方式利用。相比而言,負債系統之密碼學證明可產生負債證明,其不會向稽核員曝露使用者資訊(包括個人餘額),除非其為爭議調處及常規取樣所需要的。
後續稽核—習知系統常常在後續稽核之間洩漏資訊。舉例而言,負債之傳統證明主要由對每一使用者餘額之承諾及該餘額在一定範圍內之證明組成。對於所有新的使用者及餘額已改變之使用者,承諾證明在後續稽核中重新產生。對於其他使用者,無需重新產生負債之證明。然而,若不針對餘額保持不變之使用者改變證明,則將會洩漏在兩個證明之間多少使用者正主動地使用其帳戶。因此,在一或多個實施方案中,負債系統之密碼學證明在每次稽核中針對所有使用者重新產生負債之完整證明,使得此使用者資訊保持私用。
如由前文論述所說明,本公開利用多種術語來描述負債系統之密碼學證明的特徵及優點。現提供關於此等術語之含義的額外細節。舉例而言,如本文中所使用,「確定性稀疏樹」係指二元樹資料結構。在一或多個具體實例中,如本文中所描述,確定性稀疏樹包括稀疏默克爾樹,其包括一或多個葉節點、填補節點及單個根節點。
如本文中所使用,「葉節點」係指在稀疏樹之最低層級處的節點。如下文將更詳細地描述,確定性稀疏樹僅在其葉節點中包括使用者資訊。如本文中所使用,「根節點」係指稀疏樹之最頂部節點。如下文將更詳細地描述,確定性稀疏樹僅包括一個根節點,且確定性稀疏樹之根節點包括反映確定性稀疏樹中之所有節點之總負債的所承諾負債。如本文中所使用,「內部節點」係指稀疏樹中在葉節點與根節點之間的節點。如本文中所使用,「填補節點」係指不反映使用者或帳戶之節點。舉例而言,填補節點可包括表示所承諾餘額為零之模擬使用者的節點。如下文將更詳細地描述,負債系統之密碼學證明可利用稀疏樹中之填補節點來模糊包括於稀疏樹中之鑑認使用者的總數。
如本文中所使用,「所承諾負債」係指與使用者相關聯之金額(amount)(例如,錢幣之數目、貨幣餘額、反對票)。舉例而言,所承諾負債可包括藉由諸如佩德森承諾之同態承諾確定性地模糊的金額。在一或多個具體實例中,此同態承諾具有約束力,而不揭露關於所承諾值(例如,使用者之負債)的任何資訊。
如本文中所使用,「總負債」係指負債之總和(例如,由確定性稀疏樹表示之總負債,諸如區塊鏈交易所中之錢幣總數、反對票之總數等)。舉例而言,負債系統之密碼學證明遞歸地產生稀疏樹,使得根節點之餘額反映稀疏樹中之所有節點的總負債。
如本文中所使用,「鑑認路徑」係指確定性稀疏樹中自特定葉節點至根節點之節點的清單。在一或多個具體實例中,自使用者葉節點至確定性稀疏樹之根節點的鑑認路徑輔助證明使用者個人負債反映在整個稀疏樹之總負債中。
如本文中所使用,「確定性函數」係指在應用於相同輸入時返回同一結果的函數。換言之,確定性函數並非隨機或偶然的。如本文中所使用,「可驗證隨機函數」係指提供其輸出正確性之可公開驗證證明的偽隨機函數。如本文中所使用,「金鑰導出函數」係指使用偽隨機函數自諸如主要金鑰或密碼之秘密值導出一或多個秘密金鑰的密碼學雜湊函數。
如本文中所使用,「零知識範圍證明」係指允許證明者向驗證者證明給定值處於某一範圍內之密碼學方法。舉例而言,如本文中所使用,零知識範圍證明會證明節點之餘額為給定範圍內之小正數。
如本文中所使用,「不可變資料庫」係指包括一旦被添加便不可修改之條目的資料集合。如上文所提及,區塊鏈為不可變資料庫之風行實例。
現將參看諸圖提供關於負債系統之密碼學證明的額外細節。舉例而言,圖1說明可實施總帳負債系統106之分散式數位總帳交易網路100的示意圖。如圖1中所說明,分散式數位總帳交易網路100包括通信網路101、電腦節點114(其包括確證者節點裝置108a至108b及全節點裝置108c至108d)及用戶端裝置112a至112n(具有對應使用者116a至116n)。
儘管圖1之分散式數位總帳交易網路100描繪為具有特定數目個組件,但分散式數位總帳交易網路100可具有任何數目個額外或替代組件(例如,任何數目個電腦節點、用戶端裝置或經由通信網路101與總帳負債系統106通信之其他組件)。類似地,儘管圖1說明通信網路101、電腦節點114、用戶端裝置112a至112n及使用者116a至116n之特定配置,但各種額外配置為可能的。
通信網路101、電腦節點114及用戶端裝置112a至112n可直接地或間接地(例如,經由下文關於圖11更詳細地論述之通信網路101)彼此通信耦接。此外,電腦節點114及用戶端裝置112a至112n可包括計算裝置(包括如下文關於圖11更詳細地論述之一或多個計算裝置)。
如上文所提及,分散式數位總帳交易網路100包括電腦節點114。一般而言,電腦節點114可產生、儲存、接收及/或傳輸資料,包括對應於數位總帳之資料。舉例而言,電腦節點114可接收交易請求且傳輸交易執行結果。在一或多個具體實例中,電腦節點114中之至少一者包含資料伺服器。在一些具體實例中,電腦節點114中之至少一者包含通信伺服器或網路代管伺服器。在其他具體實例中,電腦節點114中之一或多者包括由使用者操作之個人計算裝置。
在一或多個具體實例中,如圖1中所展示,電腦節點可將資料傳輸至彼此。舉例而言,給定電腦節點可使用點對點通信將資料傳輸至特定電腦節點(亦即,一個電腦節點)。給定電腦節點亦可使用廣播技術將資料傳輸至所有其他電腦節點。舉例而言,在一或多個具體實例中,電腦節點藉由將資料傳輸至具有投票權之電腦節點(例如,確證者節點裝置)的隨機或半隨機子集來廣播資料。接收確證者節點裝置可接著以相同方式與其他電腦節點重新共用(亦即,重新傳輸至其他電腦節點),直至每個電腦節點已知(亦即,儲存於每個電腦節點處)之資料穩定。
在一或多個具體實例中,電腦節點以若干步驟將資料傳輸至其他電腦節點。舉例而言,在第一步驟處,傳輸電腦節點可使資料可用(亦即,被動地公佈資料)。傳輸電腦節點可接著將通知發送至每一潛在接收者電腦節點,該通知指示資料現可用。隨後,傳輸電腦節點可使潛在接收者電腦節點連接至傳輸電腦節點且擷取可用資料。
如圖1所展示,電腦節點包括確證者節點裝置108a至108b及全節點裝置108c至108d。如下文將更詳細地論述,確證者節點裝置108a至108b及全節點裝置108c至108d可執行不同函數;但在一些具體實例中,確證者節點裝置108a至108b及全節點裝置108c至108d執行至少一些重疊函數。舉例而言,在一或多個具體實例中,確證者節點裝置108a至108b及全節點裝置108c至108d可服務對關於使用者帳戶之交易、事件或狀態之資訊的查詢。
另外,如圖1中所展示,電腦節點114包括總帳負債系統106。特定而言,在一或多個具體實例中,總帳負債系統106利用電腦節點114來執行交易且服務資訊查詢。舉例而言,總帳負債系統106可使用確證者節點裝置108a至108b來執行交易且實施共識協定。另外,總帳負債系統106可利用全節點裝置108c至108d來接收及服務資訊查詢。
舉例而言,在一或多個具體實例中,總帳負債系統106實施拜占庭容錯(Byzantine-fault-tolerant)共識方法。具體而言,在一些具體實例中,確證者節點裝置108a至108b實施經修改之HotStuff共識協定。特定而言,在一或多個具體實例中,電腦節點114選擇主確證者節點裝置以驅動對交易區塊之共識。在一或多個具體實例中,確定性地選擇主確證者節點裝置(例如,經由自預定義清單進行循環選擇)。在一些具體實例中,非確定性地選擇主確證者節點裝置(例如,候選確證者節點裝置試圖解決密碼學難題或參與密碼學彩票,且中獎者變為主確證者節點裝置)。在選定時,主確證者節點裝置可組裝含有自用戶端裝置112a至112n中之一或多者接收到之交易的交易區塊,且向其他確證者節點裝置提議交易區塊。其他確證者節點裝置執行交易區塊內之交易且接著對執行結果進行投票。
舉例而言,假設在確證者節點裝置之當前集合內存在惡意確證者節點裝置(亦稱為「拜占庭確證者節點裝置」)之固定未知子集。進一步假設所有其他確證者節點裝置(被稱為「誠實確證者節點裝置」)嚴格地遵循共識協議。將所有確證者節點裝置之總投票權稱為N 且定義安全臨限值f ,總帳負債系統106可操作使得N >3f 。換言之,總帳負債系統106可操作使得惡意節點裝置之組合投票權不超過安全臨限值f
組合投票權M 驗證交易區塊(亦即,M
Figure 02_image001
N-f )之節點子集可被稱作定額 (quorum)。在一些具體實例中,總帳負債系統106可進一步在「BFT假設」下操作,該假設針對同一時期中之節點的每兩個定額而指示存在屬於兩個定額之誠實節點。
在確定已接收到確認執行結果之臨限數目個選票後,主確證者節點裝置可確定完成交易區塊且將確認傳輸至其他確證者節點裝置。如上文所提及,藉由利用拜占庭失敗模型,總帳負債系統106可容納任意不受約束地偏離協定之確證者。此外,總帳負債系統106可利用拜占庭容錯共識方法來緩解由惡意或被侵入確證者引起的失敗。具體而言,在一或多個具體實例中,總帳負債系統106利用2f +1個選票作為選票之臨限數目,其中f 係指可由共識協定容納之拜占庭投票者(例如,惡意、詐欺或不可信確證者)之數目。舉例而言,在一些具體實例中,f 反映在防止攻擊或其他不安全行為(例如,雙倍花費或分叉)時可容納之拜占庭投票者之數目。在一些具體實例中,2f +1個選票對應於恰好超過參與共識之確證者節點裝置的三分之二。
一旦交易之區塊完成,確證者節點裝置便可將交易結果提送至儲存器。實際上,在一或多個具體實例中,每一確證者節點裝置產生用於儲存與數位總帳相關之資料的資料結構(例如,交易資料結構、狀態資料結構及事件資料結構)。當執行結果達成共識時,確證者節點裝置可基於執行結果而更新此等資料結構。特定而言,每一確證者節點裝置可產生及維持資料結構之獨立複本,且接著基於執行結果而更新儲存於彼確證者節點裝置處之資料結構。
為提供額外實例,在一或多個具體實例中,全節點裝置可接收資訊查詢。作為回應,全節點裝置可將相關資料定位於在全節點裝置處所儲存之資料結構內且將資料傳輸至請求用戶端裝置。實際上,在一或多個具體實例中,每一全節點裝置可產生及維持資料結構之獨立複本。全節點裝置可與確證者節點裝置108a至108b通信,以識別執行交易之結果且相應地更新儲存於全節點裝置處的資料結構。在一或多個具體實例中,全節點裝置可進一步回應於接收到資訊查詢而提交證明(例如,默克爾證明),以表明所提供資料之準確性。特定而言,全節點裝置可實施下文所描述之負債系統102的密碼學證明以提供確定性稀疏樹為基礎之負債的密碼學證明。
在一或多個具體實例中,用戶端裝置112a至112n包括電腦裝置,該些電腦裝置允許裝置之使用者(例如,使用者116a至116n)提交交易請求及資訊查詢。舉例而言,用戶端裝置112a至112n可包括智慧型手機、平板電腦、桌上型電腦、膝上型電腦或其他電子裝置(下文關於圖11描述該些裝置之實例)。用戶端裝置112a至112n可包括一或多個應用程式(例如,用戶端應用程式110),該一或多個應用程式允許使用者116a至116n提交交易請求及資訊查詢。舉例而言,用戶端應用程式110可包括安裝於用戶端裝置112a至112n上之軟體應用程式。另外或替代地,用戶端應用程式110可包括代管於一或多個伺服器上之軟體應用程式,該軟體應用程式可藉由用戶端裝置112a至112n經由諸如網路瀏覽器之另一應用程式存取。
在一些具體實例中,用戶端裝置112a至112n之子集(及/或電腦節點104之子集)可具有密碼學金鑰以修改或管理分散式數位總帳交易網路之特徵(被稱作「經授權裝置」)。特定而言,可實施智慧型合約,該些智慧型合約經由共識協定(經授權裝置間的集體協議)向經授權裝置(或對應於經授權裝置之經授權帳戶)提供修改權限。舉例而言,在用以進行修改之智慧型合約的範圍內,經授權裝置可管理對參與共識(亦即,投票權利)之確證者節點裝置之集合的改變、對用於確證拒絕或在電腦節點114間分配交易費用(亦即,天然氣)之程序的改變、及/或對用以備份分散式數位總帳交易網路上之數位資產(例如,密碼學貨幣)的有形貨幣儲備(例如,各種現實世界資產)之改變。
在一或多個具體實例中,分散式數位總帳交易網路100進一步包括一或多個報告管理器(圖中未示)。報告管理器可追蹤及報告由分散式數位總帳交易網路100之組件(例如,確證者節點裝置108a至108b中之一者)採取的動作,對於該些組件,應提供獎勵或提取費用。報告管理器可追蹤及報告之一些動作包括但不限於:用戶端裝置提交交易請求;主確證者節點裝置提議或未能提議交易區塊;主確證者節點裝置提議不正確或格式錯誤的交易區塊;確證者節點裝置參與共識;確證者節點裝置將交易區塊提送至儲存器;及一般資訊分發(在電腦節點114當中抑或至用戶端裝置112a至112n)。在一或多個具體實例中,報告管理器向電腦節點114報告此等動作以確定及進行對應獎勵或費用。報告管理器可藉由圖1中所展示之分散式數位總帳交易網路100之任何裝置(例如,藉由電腦節點114實施)或另一計算裝置實施。
總帳負債系統106可完全或部分地藉由分散式數位總帳交易網路100之個別元件實施。實際上,儘管圖1說明關於電腦節點114實施之總帳負債系統106,但總帳負債系統106之不同組件可實施於分散式數位總帳交易網路100之任何組件中。特定而言,總帳負債系統106之部分或全部可藉由用戶端裝置(例如,用戶端裝置112a至112n中之一者)實施。
為提供實例,總帳負債系統106可利用用戶端裝置112a至112n來執行各種功能。為進行說明,總帳負債系統106可利用用戶端裝置來輪詢電腦節點114中之一或多者以詢問交易事件更新且請求對應於一連串事件之資料。另外,總帳負債系統106可利用用戶端裝置來產生交易請求。特定而言,總帳負債系統106可利用用戶端裝置來識別對應於使用者帳戶之主要公用位址識別符及子位址識別符且接著使用加密金鑰對子位址識別符進行加密。總帳負債系統106可接著利用用戶端裝置,以使用對應於使用者帳戶之主要公用位址識別符及經加密子位址來產生及提交與使用者帳戶相關聯之交易請求。
在一或多個具體實例中,總帳負債系統106包含如描述於在2019年6月15日申請且特此以全文引用之方式併入的美國專利申請案第16/442,476號中的總帳交易系統106。
如上文所提及,負債系統102之密碼學證明可利用一或多個密碼學基元、演算法或技術來提供上文所識別之優點。現提供此等密碼學基元、演算法或技術之綜述。舉例而言,在一或多個具體實例中,負債系統102之密碼學證明可利用默克爾樹。
默克爾樹為使得能夠安全驗證資料集合之階層式資料結構。在默克爾樹中,每一節點已被給定索引對(i ;j )且表示為N (i ;j )。索引ij 為與樹中之特定位置相關的數值標記。默克爾樹之每一節點的建構可藉由以下(簡化)等式控管:
Figure 02_image003
其中k = (i +j - 1)=2且H 為密碼學雜湊函數。
i =j 狀況對應於葉節點,其為資料Di 之對應第i 封包的雜湊。ij 狀況對應於內部或親代節點,其藉由遞歸地雜湊及串接子代節點而產生,直至發現一個親代節點(默克爾根節點)。樹深度M定義為樹中之節點的最低層級,且節點之深度m為存在節點之層級。
負債系統102之密碼學證明可利用默克爾樹來驗證某一資料封包Di N 個資料封包δ D 1 …… DN 之清單或集合的成員(被稱為集合成員資格)。用於驗證之機制被稱為默克爾證明,且包括獲得被稱為給定資料封包Di 及默克爾根R鑑認路徑 的雜湊集合。資料封包之鑑認路徑 為藉助於重複雜湊及串接重建構根R 所需之雜湊的最小清單。
更特定而言,在一或多個具體實例中,負債系統102之密碼學證明可利用求和默克爾樹,其為修改之默克爾樹。舉例而言,求和默克爾樹經特徵界定為使每個葉皆由(v, h )組成,其中v 為數值(亦即,餘額)且h 為二進位大型物件(blob)(例如,通常為在抗衝突雜湊函數H 下之雜湊結果的結果)。常規默克爾樹與求和默克爾樹之間的主要差異在於,在求和樹中,每一內部節點含有等於其子代金額之總和的數值。因此,所有葉餘額係以自下而上的次序填充,使得根節點之最終餘額為所有葉節點數值之總和。因而,若根節點處之總和等於樹中之所有葉的金額之總和且內部節點與其子代節點之間的累加關係成立,則求和默克爾樹可包含總和正確性方案之安全證明。假設雜湊函數具有抗衝突性,則兩個經成功驗證之路徑的每個相交節點皆保持與已建立之求和默克爾樹上的一個相交節點相同。對於用戶端獨立地驗證其餘額包括於所報告之總額中的負債方案之分散式稽核證明,若在無驗證失敗時,索賠負債不低於資料集中之金額的總和,則方案為安全的。在至少一個具體實例中且基於馬克士威(Maxwell)協定之安全修改,負債系統102之密碼學證明包括未求和之兩個子代餘額而非僅包括其總和(亦即,h =H (v 1|| v 2|| h 1|| h 2 )),以使對應親代內部節點達成求和正確性。此方法為安全的,而h =H (v 1 +v 2|| h 1|| h 2 )不安全。
為保護使用者餘額,負債系統102之密碼學證明可利用承諾方案。舉例而言,在一或多個具體實例中,負債系統102之密碼學證明可利用佩德森承諾。在此等具體實例中,負債系統102之密碼學證明令G 為具有s =| G | 個元件之循環群組,且令ghG 之兩個隨機產生器。接著,負債系統102之密碼學證明如下將承諾設定為整數v 0 1 ……、s- 1:選取承諾隨機性r 且返回承諾c :=COM (v, r ) =gv hr
負債系統102之密碼學證明可利用承諾,此係因為承諾c 不揭露關於所承諾值v 之任何資訊。以類似方式,承諾在計算上亦為有約束力的:若敵手可用兩種不同方式開放承諾c (對於同一r ,兩個不同值vvl ),則同一敵手可用以計算logh (g )且因此打破G 中之離散對數問題。
在一或多個具體實例中,負債系統102之密碼學證明可利用加法同態之承諾。若c 1c 2 為分別使用承諾隨機性r 1r 2 對值v 1v 2 之兩個承諾,則c :=c 1 ×c 2為使用隨機性r 1 +r 2v 1 +v 2 之承諾,此係因為c = (gv 1hr 1 )(gv 2hr 2) =gv 1+v 2hr 1+r 2。
在一或多個實施方案中,負債系統102之密碼學證明可利用承諾方案來保護一些使用者餘額,同時亦曝露其他使用者餘額。舉例而言,在交易所之狀況下,負債系統102之密碼學證明曝露小於臨限金額之餘額,例如一美元或兩美元。負債系統102之密碼學證明可如此操作以減少對此等餘額進行加密的處理時間及計算資源。換言之,在一些具體實例中,對於小的餘額,計算節省可超過隱私問題。
負債系統102之密碼學證明可利用成員資格證明之集合來允許證明者以零知識方式證明其秘密處於給定公用集合中。舉例而言,在電子投票之情況下,負債系統102之密碼學證明可利用此證明,其中投票者需要證明其秘密選票屬於所有可能候選者之集合。在負債狀況下,負債系統102之密碼學證明可利用此證明來證明使用者餘額包括於所報告總值中。當集合S 由吾人指示為[a, b ]之範圍[a, a + 1, a + 2,…, b ]組成時,會出現集合成員資格問題之另一風行的特殊狀況。
負債系統102之密碼學證明可令C = (Gen, Com, Open)為字串承諾方案之產生、提交及開放演算法。對於執行個體c,關於承諾方案C及集合S之集合成員資格的證明為以下陳述式之知識證明:PK(σ, ρ) : c ← Com(σ; ρ) ∧ σ ∈ S。
負債系統102之密碼學證明可關於任何承諾方案來定義。因此,特定而言,若Com 為完全隱藏方案,則語言Γ S 包括所有承諾(假設S 為非空的)。因此,為了健全性,協定可為知識證明。
負債系統102之密碼學證明亦可利用零知識範圍證明(Zero-Knowledge Range Proof;ZKRP)來允許證明數字處於某一範圍內。簡言之,給定對值v 之承諾,用零知識來證明v 屬於某一離散集合S 。出於此工作的目的,S 為諸如[0, 264 1]之數值範圍。因此,關於承諾方案C之範圍證明為集合成員資格之證明的特殊狀況,其中集合S為整數S = [a, b]之連續序列,其中a、b∈ N。
負債系統102之密碼學證明亦可利用可驗證隨機函數(VRF),其為基於公用輸入及私用密鑰產生其輸出之公用可驗證證明的偽隨機函數。簡言之,負債系統102之密碼學證明可利用VRF來將輸入映射至可驗證偽隨機輸出。特定而言,負債系統102之密碼學證明可利用VRF來提供稍後可使用證明來揭露之確定性預先承諾。更特定而言,負債系統102之密碼學證明可利用VRF來確定性地且唯一地產生稽核 id 及固有的默克爾樹。
負債系統102之密碼學證明可利用VRF,其包含以下三個演算法:
KeyGen (r )→(VK, SK )。負債系統102之密碼學證明可利用金鑰產生演算法在隨機輸入r 上產生驗證金鑰VK 及秘密金鑰SK
Eval (SK, M )→(O, π )。負債系統102之密碼學證明可利用評估演算法來獲取秘密金鑰SK 及訊息M 作為輸入且產生偽隨機輸出字串O 及證明π
Verify (VK ,M ,O ,π )→0/1。負債系統102之密碼學證明可利用將輸入獲取為驗證金鑰VK 、訊息M 、輸出字串O 及證明π 的驗證演算法。當且僅當驗證演算法驗證O 為由評估演算法針對輸入秘密金鑰SK 及訊息M 而產生之輸出時,其才可輸出1,否則驗證演算法輸出0。
負債系統102之密碼學證明可利用VRF來支援唯一性,根據唯一性,對於任何固定公用VRF金鑰且對於任何輸入α,存在可證明為有效的唯一VRF輸出β。負債系統102之密碼學證明可利用VRF,其中甚至對於知曉VRF秘密金鑰SK 之敵對證明者,亦保持唯一性。
負債系統102之密碼學證明可利用抗衝突之VRF。換言之,負債系統102之密碼學證明可利用VRF,其中甚至對於知曉VRF秘密金鑰SK 之敵對證明者,亦保持抗衝突性。
負債系統102之密碼學證明可利用為偽隨機函數之VRF。偽隨機性確保對於不知曉私用VRF金鑰SK 之任何計算上受限的敵手,任何敵手選擇之「目標」VRF輸入α上的VRF雜湊輸出β(無其對應VRF證明π)看起來皆不可與隨機區分。
可公開存取之資料庫為對於擷取最新資訊必不可少的資源。但可公開存取之資料庫亦對使用者之隱私構成相當大的風險,此係因為好奇的資料庫操作者可跟蹤使用者查詢且推斷使用者之目的。實際上,在使用者之意圖待保秘的狀況下,使用者常常謹慎地存取資料庫。
在週期性稽核中,完整的分散式負債證明解決方案應滿足的重要性質為在不瞭解已請求哪一證明之情況下將包括證明提供至用戶端。此為合乎需要的,此係因為被稽核實體可提取關於從未或很少檢查其證明之使用者的資訊,且因此自即將到來的稽核證明省略其餘額的風險在統計上較低。
私用資訊擷取(Private Information Retrieval;PIR)為允許用戶端擷取資料庫之元素而彼資料庫之擁有者不能夠確定選擇了哪一元素的協定。雖然此問題允許簡單的解決方案:將整個資料庫發送至用戶端以允許用戶端完全私下地進行查詢,但存在降低此問題之通信複雜度的技術,此對於大型資料庫可為關鍵的。
另外,強私用資訊擷取(Strong Private Information Retrieval;SPIR)為具有用戶端僅瞭解其正查詢之元素而無需瞭解其他資訊之額外要求的私用資訊擷取。此要求俘獲資料庫擁有者之典型隱私需要。
如上文所提到,負債系統102之密碼學證明可利用確定性稀疏樹為基礎之負債的密碼學證明。在一或多個具體實例中,負債系統102之密碼學證明利用默克爾樹。在一或多個具體實例中,每一葉節點含有使用者負債以及與客戶id及新臨時亂數(亦即,雜湊為基礎之承諾)串接之餘額的雜湊。為確保吾人不能索賠比所有使用者供款金額之總和少的負債,負債系統102之密碼學證明可分開地添加至雜湊餘額而非首先將其彙總。內部節點儲存其左子代及右方子代之彙總餘額以及其左子代資料及右子代資料之雜湊。根節點儲存所有客戶之負債的彙總。當使用者希望驗證其負債是否包括於總負債中時,僅接收雜湊樹之部分便足以執行驗證。具體而言,負債系統102之密碼學證明可向使用者發送自使用者葉節點至根節點之唯一路徑上之每一節點的其臨時亂數及同層級節點,此被稱作鑑認路徑
在一或多個具體實例中,為了添加隱私,負債系統102之密碼學證明將負債分割成多個葉(例如,相比與單個葉相關聯,可將使用者負債分割成多個葉)。在此等實施方案中,負債系統102之密碼學證明可混洗所有葉,之後將其添加至樹。舉例而言,圖2說明負債系統102之密碼學證明可如何分割餘額/負債且混洗葉之一個具體實例。如圖2中所展示,負債系統102之密碼學證明可將與葉節點202a相關聯之餘額隨機地分割成六種方式。類似地,負債系統102之密碼學證明可將與葉節點202b、202c相關聯之餘額分別隨機地分割成三種方式及七種方式。在至少一個具體實例中,負債系統102之密碼學證明可針對每一分割餘額產生一葉節點,使得除了所分割餘額以外,每一所產生葉節點亦包括來自原始葉節點202a至202c之資訊(例如,user_id、audit_id)。作為此隨機分割之結果,負債系統102之密碼學證明用十六個分割餘額葉節點替換原始的三個葉節點202a至202b。
在此分割之後,負債系統102之密碼學證明可混洗分割餘額葉節點(204)。舉例而言,如圖2中所展示,負債系統102之密碼學證明可混洗分割餘額葉節點,使得惡意實體將不能確定1)跨越所有節點(例如,50個)表示之總負債,2)使用者之總數(例如,3個)及3)每一使用者之個人餘額。
由於分割,每一使用者將接收多個鑑認路徑 ,且儘管樹高度可增長,但同層級葉曝露較少資訊,而使用者群之大小被混淆。藉由分割葉,負債系統102之密碼學可限制使用者負債對稽核員及其他使用者兩者之曝露,由於相同負債之分割之間無連結而充分保護標識,隱藏使用者之總數,藉由利用獨立稽核及不同分割/混洗來防止後續償債能力證明瞭解前述各者中之任一者,且藉由利用隨機化分割及混洗來防止不同稽核之間的餘額相關性,並防止提取關於特定使用者損益之統計資料。
除了前述操作以外,負債系統102之密碼學證明亦可用同態承諾替換可見餘額。在一或多個具體實例中,負債系統102之密碼學證明可利用零知識證明(ZKP)來防止實體插入具有負餘額之假帳戶。舉例而言,負債系統102之密碼學證明可利用零知識範圍證明(ZKRP)與彙總技術,諸如防彈證明(Bulletproof)中之技術,使得任何證明皆由每個使用者一個承諾主導,藉此確保證明為緊密的。藉由用同態承諾替換可見餘額,負債系統102之密碼學證明可將負債之總值保密(對稽核員、公眾或使用者)且防止曝露個人餘額(亦即,對同層級節點)。
為進一步提供安全性保證,負債系統102之密碼學證明可利用與確定性稀疏默克爾樹構造組合的零知識範圍證明。特定而言,如圖3中所展示,負債系統102之密碼學證明可在VRF之上利用金鑰導出函數(KDF)以確定性地計算每一稽核 id盲因子
在非確定性構造中,惡意實體可使基於一些分析而具有較高檢查證明機率之所有使用者彼此靠近,且因此在統計上,僅可驗證樹之一小部分的正確性。負債系統102之密碼學證明藉由允許在每次稽核中進行確定性混洗來較佳地分散使用者葉。特定而言,負債系統102之密碼學證明可對葉之雜湊值進行分類,之後將其置於樹上。因為負債系統102之密碼學證明確定性地計算雜湊,所以由於VRF之性質,惡意實體無法任意地固定樹中之使用者節點的關係排序。負債系統102之密碼學證明亦可確保此確定性排序在不同稽核輪次之間始終不同,因此後續排序無法提取任何資訊。
當使用確定性稀疏樹用於負債之密碼學證明時,完整證明可為高度H 之整個二進位求和樹,其中藉由應用確定性函數針對每個使用者產生唯一稽核 id audit id 盲因子( blinding factor 而自使用者 user 帳戶產生葉資料。使用者稽核 id 有時被稱作臨時亂數 nonce 。圖3展示用於產生b_factor (盲因子)及h (使用者葉雜湊)之整個程序。
舉例而言,如圖3中所展示,負債系統102之密碼學證明可基於來自使用者葉節點302之資訊而產生audit_id 304a(或替代地,audit_id 304b)。舉例而言,負債系統102之密碼學證明可結合audit_seq_id(例如,用於當前稽核之序列識別符)及「audit_seed_salt」(例如,用於隨機化器之種子金額)基於首先將可驗證隨機函數應用於均獲自使用者葉節點302之user_id及金額而產生audit_id 304a。負債系統102之密碼學證明接下來可將金鑰導出函數應用於可驗證隨機函數之輸出以確定audit_id 304a。替代地,負債系統102之密碼學證明可藉由結合audit_seq_id及audit_key(例如,特定於當前稽核之秘密值)將金鑰導出函數應用於金額(例如,獲自使用者葉節點302)而確定audit_id 304b。
負債系統102之密碼學證明亦可基於audit_id 304a而確定其他值。舉例而言,如圖3中所展示,負債系統102之密碼學證明可藉由結合「b_salt」(例如,另一隨機化器值)將金鑰導出函數應用於audit_id 304a而確定b_factor 306(例如,盲因子)。類似地,負債系統102之密碼學證明可藉由結合「h_salt」(例如,另一隨機化器值)將金鑰導出函數應用於audit_id 304a而確定h_seed 308(例如,用於使用者雜湊函數之種子值)。另外,負債系統102之密碼學證明可藉由結合h_seed 308將金鑰導出函數應用於user_id(例如,來自使用者葉節點302)而確定u_hash 310(例如,使用者雜湊)。
如所提到,負債系統102之密碼學證明可利用稀疏默克爾樹。換言之,如藉由圖4所展示,負債系統102之密碼學證明可將填補節點404a及404b至404n(例如,具有零餘額之假帳戶)添加至包括真實使用者葉節點402a、402b、402c之稀疏樹。藉由填補樹,負債系統102之密碼學證明可混淆使用者群之群體大小。另外,負債系統102之密碼學證明可最小化用於填補目的之假使用者(具有零餘額)的數目。
為了進一步說明,圖5展示在一或多個具體實例中,負債系統102之密碼學證明可如何利用僅對空子樹之根的填補,且因此支援先前在無廣泛且大量計算資源之情況下不可能的樹高度。舉例而言,如圖5中所展示,負債系統102之密碼學證明產生具有使用者葉節點502a、502b及502c之確定性稀疏樹500。負債系統102之密碼學證明藉由進一步添加填補節點504a、504b、504c、504d、504e及504f來混淆使用者之數目。如所展示,負債系統102之密碼學證明僅將填補節點504a至504f添加至空子樹506a、506b、506c、506d、506e及506f之根(例如,不具有子代之節點被視為空子樹之根,如同填補節點504a、504b及504d)。
樹高度揭露使用者之最大數目,因此高度 =40之樹可能夠支援現今之大多數應用程式。實務上,負債系統102之密碼學證明可選取足夠大的樹,甚至在最具前景之預報情境中,該樹亦將在接下來的x 年起作用。因此,樹大小可能將不需要更新,此係合乎需要的,此係因為否則更新樹大小將揭露某些改變(亦即,更多使用者(超出先前填補大小)進入系統)。
如已提及,H =40為合理的選項,以便混淆高達240 之使用者總數,但負債系統102之密碼學證明可使用滿足對應應用程式之隱私要求的任何高度。因此,負債系統102之密碼學證明可將40個節點之鑑認路徑 提供至每一請求使用者。因此,負債系統102之密碼學證明選擇及利用儘可能簡潔的ZKRP系統,因此最小化驗證成本。
關於稀疏樹中之填充大小,給定使用者之數目M ,假設其為2之冪:M =2 m ;及樹之高度H (樹中之葉數目可為至多2 H ),負債系統102之密碼學證明可如下估計待添加至樹之零節點的數目之界限:(1)在一個具體實例中,所有使用者節點佔據樹之最左葉,因此填充高度為m 之最左最低子樹,接著需要沿著自此子樹之根至根的路徑添加零節點,將至多添加其中的(Hm )個;(2)在另一具體實例中,所有使用者均勻地分散於樹之葉中,因此高度為(Hm )之最低子樹各自將具有僅一個節點且將需要添加零節點中之(H m )個以產生子樹之根,待添加之零節點的數目接著至多為(Hm ) ∗ 2 m ;且(3)因此,待「人工地」添加之節點的數目至少為(Hm )且至多為(Hm ) ∗ 2 m 。在至少一個具體實例中,負債系統102之密碼學證明避免用零節點填入整個樹以使樹完整,此係因為零節點之數目將必須為2 H −1 ,此對於具有高度H>=32之樹可能不切實際或過於昂貴,否則顯著大於待添加之零節點的數目。
確定性稀疏樹應由被稽核實體保持私用以便保護其使用者之隱私。負債系統102之密碼學證明可較佳在不可變的公用佈告欄(亦即,一或多個區塊鏈)中僅公佈根節點,且每一個別使用者應安全且私下接收其自身的部分證明樹(鑑認路徑 )。藉由僅公佈一個根節點,負債系統102之密碼學證明可有助於確保每個使用者對負債承諾之所報告證明具有完全相同的視圖。在一或多個具體實例中,負債系統102之密碼學證明產生二元樹,該二元樹並非完整樹且理論上可具有任何形狀。
負債系統102之密碼學證明可將固定高度稀疏樹解決方案(例如,如圖5中所展示)實施為:a)針對每個使用者具有一致且公平的鑑認路徑 長度,且b)提供對高達某一限制之群體大小曝露的較佳估計,甚至在使用者自身之間串通時亦如此。
在一或多個具體實例中,負債系統102之密碼學證明可利用隨機散佈演算法以將使用者葉置於樹中,此為唯一且確定性的。負債系統102之密碼學證明可利用隨機散佈演算法以便證明索引未由證明者操縱(亦即,使定期檢查包括證明之彼等證明者彼此靠近,旨在破壞樹的將不被檢查之機率高的部分)。
在一或多個具體實例中,負債系統102之密碼學證明使用VRF用於計算audit_id ,接著基於其唯一且確定性的u_hash 值對使用者進行排序。在排序之後,負債系統102之密碼學證明可將使用者隨機地置放/散佈於樹中,且接著基於輸出分佈而確定性地計算填補節點(再次藉由使用獲取「假」節點索引作為輸入之VRF)。
假設存在S 個使用者且樹支援多達L 個葉(因此,其高度為logL ),若S<<L 且截短雜湊直至logL 個位元的衝突機率為可忽略的,則每個使用者之索引由截短至logL 個位元之u_hash 定義。對於高度 =256,前述情形對於如SHA2及SHA3之CRH雜湊函數為可接受的。然而,若衝突機率相當大,亦即,其中S =216L =232 ,則衝突機率為大約50%且因此節點可能不以預期索引結束。
然而,節點不在預期索引中之事實曝露關於群體大小之資訊;在此特定狀況下,索引已移動之使用者瞭解到在樹中存在至少另一使用者。負債系統102之密碼學證明可利用試探法以藉由在接近預期索引之範圍內隨機地選取索引來規避此問題,該試探法在S<<L 時良好地起作用。在替代具體實例中,負債系統102之密碼學證明可使用ZKP為基礎之集合成員資格證明來隱藏任何排序或位置證據。
葉節點可表示已經由VRF確定性地產生的使用者資料或填補(具有零負債餘額之假使用者)。舉例而言,圖6展示高度為2的確定性稀疏樹600,其中兩個使用者葉節點602a、602b在葉層級處,且一個填補節點604(用以替換空葉)及一個內部節點606在height =1處。確定性稀疏樹600可容納至多四個使用者,但如此實例中所展示,由於稀疏樹性質,僅需要一個填補節點604。
負債系統102之密碼學證明可確定性地產生稀疏樹600,使得其可在全面稽核之狀況下重新產生。關於稀疏樹600中之任何填補節點,VRF獲取填補節點之索引作為輸入以確保唯一性。另外,稀疏樹600中之任何填補節點的值為對零之承諾。
在一或多個具體實例中,負債系統102之密碼學證明組態葉節點602a、602b以擁有以下值: •user_id :用於使用者之唯一識別符。使用者必須確保此值之唯一性,因此建議使用其電子郵件或電話號碼。應注意,負債系統102之密碼學證明永遠無需揭露此資訊。 •node_index :節點索引,其用作填補節點之KDF/VRF的確定性種子(輸入)。 •prf :串列化VRF輸出(若需要唯一且確定性的葉排序),否則吾人可使用種子化確定性KDF或HMAC。 •audit_id :每次稽核針對每個使用者確定性地產生之唯一值。 •b_factor :用於佩德森承諾中以隱藏金額的確定性地產生之盲因子。 •u_hash :使用者id之雜湊承諾。 •com :佩德森承諾。 •π :佩德森承諾值之範圍證明。 •value :清算(未經加密)餘額。
在至少一個具體實例中,負債系統102之密碼學證明可避免使用u_hash 。然而,在要求更高的稽核中或出於爭議調處目的,有時可能需要統計取樣或樹掃描。需要u_hash 與同態承諾之間的區別以揭露葉節點之餘額或user_id 。因此,負債系統102之密碼學證明可確保當揭露使用者資料時,不會曝露所承諾餘額,且反之亦然。
在一或多個具體實例中,負債系統102之密碼學證明不包括範圍證明610a、610b、610c、610d、610e(π )作為確定性稀疏樹600之構造的部分,但使其伴隨發送至使用者之鑑認路徑 。提供固定大小範圍證明(亦即,具有某一受信任設置之Gro16)或彙總(亦即,Bulletproof)之高效方案可有助於產生用於完整鑑認路徑 之簡潔組合證明。
負債系統102之密碼學證明可使用下文所描述之函數產生內部節點606。負債系統102之密碼學證明可將內部節點606之經加密餘額組態為將其子代同態承諾(例如,葉節點602a及602b之餘額)相加的結果。另外,負債系統102之密碼學證明可將內部節點606之雜湊組態為饋入至某一雜湊函數(例如,sha256)之所有子代承諾及雜湊(例如,葉節點602a、602b之承諾及雜湊)的串接。
如圖7中所展示,負債系統102之密碼學證明可用與所有內部節點(例如,內部節點606)相同之方式組態確定性稀疏樹600之根節點608,以擁有餘額承諾702及雜湊704。在一或多個具體實例中,負債系統102之密碼學證明在一或多個不可變資料庫(亦即,區塊鏈)中公開地公佈與根節點608相關聯之資料,使得所有使用者可確保其正針對同一證明樹進行驗證。由於根節點608之餘額702反映總報告負債,因此當公佈時,此資料可伴有餘額承諾702之範圍證明610e,而包括與稽核(亦即,此證明所指的稽核輪次)相關之時戳706及後設資料(metadata)資訊708的完整有效負載可藉由證明者簽章(由任何類型之憑證指示)。
在一或多個具體實例中,負債系統102之密碼學證明組態鑑認路徑 以僅含有來自完整樹之節點,給定使用者需要該些節點以便驗證其包括於樹中。不同於使用者觀測同層級值之原始馬克士威方案,每一節點伴有關於承諾值之範圍證明以確保其為小正數。
負債系統102之密碼學證明可藉由以使用者葉節點開始且包括直至根之每個親代節點來產生鑑認路徑 。為進行說明,在圖6中,負債系統102之密碼學證明可產生與葉節點602a相關聯之鑑認路徑 ,其包括葉節點602a、內部節點606及根節點608。負債系統102之密碼學證明可接著在每一層級處添加同層級節點,且因此實務上,鑑認路徑 為每高度層之同層級節點的清單。舉例而言,負債系統102之密碼學證明可將葉節點602b及填補節點604添加至葉節點602a之鑑認路徑 。此可使得與葉節點602a相關聯之使用者能夠藉由以下操作來獨立地驗證其餘額包括於所報告負債中:遵循其至根節點608之路徑;在鑑認路徑 中之每一節點處檢查所承諾餘額為其兩個子代節點承諾餘額之乘積。
負債系統102之密碼學證明可避免包括在一或多個具體實例中可直接計算以節省空間的節點且鼓勵使用者計算其自身。然而,在一般狀況下且在所提供之範圍證明的範圍非常接近用於承諾方案中之群組階數時,負債系統102之密碼學證明亦可發送所計算節點之範圍證明。
在一或多個具體實例中,負債系統102之密碼學證明產生鑑認路徑 使得驗證者僅接收同層級節點之範圍證明。儘管如此,存在此接收並不足夠之至少一個邊緣狀況具體實例,且負債系統102之密碼學證明可另外包括鑑認路徑 中之所計算節點的範圍證明。
舉例而言,可利用情境將為使用[0,N ]之範圍,其中N 接近於承諾方案之曲線階數l 。接著,當合併求和樹中之節點時,儘管子代節點在範圍內 ,但其乘積可能不在範圍內 。結果,所計算之乘積值可能會溢出。惡意證明者可藉由以下操作來利用此情形:添加巨大的假餘額以抵消樹中之所有其他資訊且因此設法減小由根節點(例如,根節點608)表示之總負債。
當前真實世界金融應用通常規定高達26 4或21 28之範圍,該範圍遠小於習知密碼學中使用之典型曲線階數。但如已提及,負債系統102之密碼學證明適用於廣泛範圍之應用,甚至在金融之外,其中範圍可大於金融應用中可接受之彼等範圍。
因此,為了安全地省略所計算節點之範圍證明,負債系統102之密碼學證明可將每一承諾之所允許範圍組態為小於l/H ,其中l 為群組階數且H 為樹高度。因此,即使每個餘額非常接近l/H ,但當負債系統102之密碼學證明在鑑認路徑 中將其全部加在一起時,中間或最終值不能超過群組階數l
負債系統之習知證明存在固有缺陷,根據該缺陷,引起爭議之使用者沒有密碼學證據來支援其主張。此係因為帳戶餘額(或反對票)僅為證明者之帳簿或資料庫中的數字,且證明者可始終主張客戶在其帳戶中從未具有彼餘額。問題極類似於描述為「有一天,您去銀行且發現您的帳戶餘額為零,可向法院提供何證據?」之問題。同樣,「銀行如何證明其已獲得您對您所有交易之同意?」
為了進一步說明,一種情境包括想要在密碼貨幣交易所中進行交易之愛麗絲(Alice)。愛麗絲經由TLS連接至交易所且使用其密碼鑑認自身。愛麗絲及交易所兩者均肯定知曉其正與何者進行通信。然而,此未必意謂愛麗絲及交易所兩者能完全信任彼此。愛麗絲需要確認交易實際上發生,且在不具有其權限之情況下交易所不能採取動作。另一方面,交易所希望獲得其實際上自愛麗絲接收到交易訂單之證據。
不幸地,愛麗絲無法容易地證明其實際上已發送交易訂單。同樣地,即使愛麗絲可證明交易訂單,交易所仍可主張交易從未被處理。更糟糕地,交易所之惡意員工可在無愛麗絲同意之情況下容易地產生及儲存交易。
此情境係有問題的,此係因為典型地,交易訂單僅記錄於習知資料庫中,因此主要防禦通常為資料複寫及記入。可悲地,以上對策中無一者可防止詐騙或用作不可否認的證明。原始未簽章儲存之另一副作用為使用者感覺實際上無法控制其資金;資產僅為交易所資料庫中之數字。
此等及其他問題對於區塊鏈交易所尤其成問題。舉例而言,使用者利用交易所來保管資金之主要動機為避免需要記住長期的密碼學秘密。因而,交易所必須能夠執行使用者訂單且改變其餘額而無需來自使用者之密碼學鑑認(例如,密碼鑑認)。不喜歡交易所之使用者亦可錯誤地主張其帳戶驗證失敗,且不可能判斷是否不存在交易證明。
負債系統102之密碼學證明提供一個潛在的解決方案;亦即,每筆交易皆利用簽章或相互合約簽章。然而,在負債系統102之密碼學證明的一些應用(亦即,不批准投票)中,僅自證明者接收經簽章票證/電子郵件將為足夠的。
如上文所提及,在需要連續及後續稽核之環境中,負債系統102之密碼學證明可確保證明者不能夠追蹤何人請求或下載其包括證明。舉例而言,此資訊可曝露關於何人定期檢查證明且何人很少或從未檢查之資料。惡意證明者可自具有低檢查機率之使用者省略添加餘額。然而,若證明者不具有關於何人請求及執行包括鑑認路徑 之線索,則其僅可進行推測且被捕獲之風險高很多。
已建議,理想地,使用者應使用經驗證及稽核之第三方或本端安裝之工具來驗證證明。舉例而言,負債系統102之密碼學證明使得使用者能夠私下下載與其個別葉節點相關聯之葉索引及稽核 id (或相關VRF輸出)。舉例而言,如由圖3中展示之audit_id 304b所展示,負債系統102之密碼學證明亦可在註冊時提供唯一稽核 id
特定而言,負債系統102之密碼學證明可經由KDF使用此稽核 id 以能夠導出承諾之盲因子。負債系統102之密碼學證明可接著使用私用資訊擷取(PIR)、不經意RAM(ORAM)及網路混合服務經由第三方服務來廣播或伺服證明。第二方法可考慮較輕用戶端且加密保護PIR協定,以免受請求下載其他證明索引之使用者的攻擊(即使使用者試圖接收該些索引,其亦無法對承諾進行解密)。總之,使用確定性KDF導出之稽核 id ,負債系統102之密碼學證明可使用常規PIR來模擬經鑑認PIR協定。
在一或多個具體實例中,稽核可能需要節點之完全存取或隨機取樣,尤其在由於爭議而進行調查時。如圖8中所展示,負債系統102之密碼學證明可產生與隨機取樣相容之確定性稀疏樹800,此係因為證明者可將關於最近真實使用者之證明提供至所請求索引。舉例而言,若稽核員請求索引 =11處之空葉節點802,則負債系統102之密碼學證明可回覆使用者葉節點804以及同層級節點806a、806b及806c連同其包括內部節點808a、808b及808c以及根節點810之共用鑑認路徑 ,作為索引 =11處之最近真實使用者為索引 =8處之葉節點804的證明。相比真實使用者節點而用不同輸入建構填補節點806a至806c的事實,可用以區分真實使用者/節點與人工使用者/節點(例如,參見圖6以查看其不同之處)。
下文包括負債系統102之密碼學證明在一或多個具體實例中利用的負債證明(PoL)定義及演算法。
(TL ,aud ) ← AuditSetup(ACCS)。AuditSetup演算法獲取由ACCS指示之帳戶的清單作為輸入,且輸出總負債以及稽核aud 所需之材料。此包括吾人藉由aud = (aud pk ,aud sk )指示之私用材料及公用材料兩者。為簡單起見,負債系統102之密碼學證明令ACCS中之每一帳戶為元組(uid ,bal ),其中uid 為與帳戶相關聯之唯一使用者識別符且bal 為用於負債證明中之帳戶的當前餘額。
aud ) ← AuditorProve(aud )。AuditorProve演算法獲取由AuditSetup輸出之稽核材料aud 及待由稽核員驗證之負債證明Π aud 作為輸入。該證明意欲展示所主張總額 與設置之公用分量audpk 一致。
{0, 1} ← AuditorVerify(TL ,aud pk , Π aud )。AuditorVerify演算法獲取所聲明總負債TL 公用稽核材料aud pk 及證明Π aud 作為輸入。若驗證通過,則AuditorVerify演算法輸出1,否則輸出0。π uid ← UserProve(uid ,aud )。UserProve演算法獲取特定使用者之唯一使用者識別符uid 及稽核材料作為輸入,且輸出使用者特定證明π uid 。{0, 1} ← UserVerify(uid ,aud pk , π uid ,bal )。UserVerify演算法獲取使用者識別符uid 及其餘額bal 、公用稽核材料aud pk 以及證明π uid 作為輸入,且若證明經過驗證,則輸出1,否則輸出0。
為安全起見,負債系統102之密碼學證明可限制如下機率:在針對ACCS 中之總餘額的統一選擇分率c 而AuditorVerify輸出1且UserVerify輸出1之情況下,惡意證明者可使用函數δ (c, t )自總負債消除多於t 個使用者餘額。更正式地: 負債證明方案PoL對於帳戶集合ACCS為δ(c, t)-安全的,若對於每個0 < c < 1及每個S
Figure 02_image005
大小為t之ACCS,對於使用者之隨機選擇集合U = {u1 ,…, uk }
Figure 02_image007
ACCS,其中k = c|ACCS|, Pr [AuditorVerify (audpk , ∏aud )
Figure 02_image008
UserVerify(ui , audpk , πui )
Figure 02_image010
TL' < liab(ACCS \ S) |(TL ', (audpk , audsk )) ← AuditSetup; ∏aud ← AuditorProve; πui ← UserProve(ui , aud),其中ui U ] < δ(c,t)其中 liab(A) 指示集合 A 中之餘額的總負債 且機率超過選擇 U 及各種演算法之拋硬幣 隨機性
負債系統102之密碼學證明亦可分別考慮針對不誠實使用者及不誠實稽核員之隱私保證。
不與任何使用者串通之稽核員僅看到稽核材料之公用部分aud pk 、總負債以及由證明者提供之證明,亦即,Π aud 。負債系統102之密碼學證明在PoL方案之真實執行中將此稱作稽核員視圖且由ViewAuditor(ACCS )指示該視圖。負債系統102之密碼學證明可接著要求此視圖由PPT模擬器(例如,機率多項式時間模擬器)模擬,該模擬器看不到ACCS中之資訊且僅可存取取決於特定方案之洩漏函數L (ACCS )。此類洩漏函數之實例為|ACCS |及liab (ACCS )。更正式地: 負債證明方案PoL對於不誠實稽核員為L-私用的,若對於每個PPT稽核員A,皆存在PPT模擬器SIMA ,使得以下分佈在計算上不可區分,
Figure 02_image012
可彼此串通之使用者U = {u1 , . . . ,un }的子集能夠看到公用稽核材料aud pk 、彼等使用者之餘額(亦即,形式為Bal U ={ (ui , bali )}
Figure 02_image014
之元組)以及由證明者產生之證明的集合,亦即,{πu1 , . . . , π un }。此在PoL方案之實際執行中可被稱作敵手視圖且由ViewAU (ACCS )指示該視圖,其中AU指示控制U 中之使用者的敵手。負債系統102之密碼學證明接著要求此視圖可藉由PPT模擬來模擬,該PPT模擬僅看到U 中之使用者的餘額以及取決於特定方案之洩漏函數L(ACCS )。更正式地: 負債證明方案PoL對於不誠實使用者為L-私用的,若對於使用者U = {u1 , . . . , un }之每個子集及破壞U中之使用者的每個PPT敵手AU ,皆存在PPT模擬器SIMA 使得以下分佈在計算上不可區分,
Figure 02_image016
其中ACCS[U] (uid,baluid ) 之集合,其中所有uidU
集中式馬克士威+設置:
AuditSetup(ACCS ) 1:隨機地混洗ACCS 中之元組,在混洗之後將每一元組之新部位記錄為其葉索引且將索引附加至元組,亦即,將元組更新為(uid ,baluid ,indexuid )。 2:對於每個(uid ,bal ,index ) ∈ACCS ,使用新隨機性r ,令com ← commit(uid; r) ,令h ← H (baluid ||indexuid ||com) ,且將comhr 附加至元組以得到(uid ,bal ,index ,com ,r ,h )。藉由ACCS' 指示元組之新擴增集合。 3:令d =[log2 |ACCS' |]。建立深度為d 之完整二元樹,其中吾人以陣列Di [1...2 i ]儲存深度i 處之節點的資訊。令TL←0 。 4:對於所有1 ≤j ≤ 2 d ,若元組(uid ,bal ,j ,com ,r ,h )存在於ACCS' 中,則令Dd [j ]←hTL ← TL +bal 。若否,則令Dd [j ] ← 0λ 。 5:for i =d - 1 to 1do 6:  for j = 1 to 2 i do 7:      擷取hL =Di +1 [2j - l]且hR =Di +1 [2j ]且令Di [j ] ←H (hL ||hR )。 8:  end for 9:end for 10:輸出aud = (audpk = (TL ,D1 ),audsk = (D2 , ... Dd ,ACCS' ))。
集中式馬克士威+證明及驗證演算法:
AuditorProve(aud ) 1:對於每個元組(uid ,bal ,index ,com ,r ,h ) ∈ACCS' ,將元組(bal ,index ,com )附加至∏ aud 。 2:輸出∏ aud AuditorVerify(TL ,audpk , ∏ aud ) 1:令total =0,
Figure 02_image018
,…,
Figure 02_image020
為空陣列。對於每個元組(a ,index ,com ) ∈ ∏ aud ,驗證a > 0。若並非如此,則輸出0且中止。否則,令totaltotal +a
Figure 02_image022
[index ] ←H (a ||index ||com )。 2:檢查是否total
Figure 02_image024
TL ,且若失敗,則輸出0。 3:for i =d - 1 to 1do 4:  for j = 1 to 2 i do 5:      擷取
Figure 02_image026
Figure 02_image028
且令
Figure 02_image030
。 6:  end for 7:end for 8:檢查是否
Figure 02_image032
。若否,則輸出0,否則輸出1。    UserProve(uid ,aud ) 1:將與uid 相關聯之元組(uid ,bal ,index ,com ,r ,h ) ∈ACCS' 附加至π uid 。 2:將(d ,Dd [index ])附加至π uid 3:for i =d to 1do 4:   if (index mod 2)
Figure 02_image034
1 then 5:      將(i ,Di [index + 1])附加至π uid 6:     index ← (index + l)/2 7:  else 8:      將(i ,Di [index - 1])附加至π uid 9:      index ← index/2 10: end if 11:end for 12:輸出π uid    UserVerify(uid, audpk , πuid , bal) 1:自π uid 擷取(uid ,bal ,index ,com ,r ,h ) 2:給定comuidr ,驗證承諾。 3:自π uid 擷取(d ,v al )。檢查val
Figure 02_image034
 H (bal ||index ||com )。若否,則輸出0。 4:hashval 5:for i =d to 1do 6:   自π uid 擷取(i ,val ) 7:  if (index mod 2)
Figure 02_image036
1then 8:     hashH (hash ||val ),index ← (index + l)/2 9:  else 10:     hashH (val ||hash ,indexindex /2 11: end if 12:end for 13:檢查hash
Figure 02_image038
D 1 [1]。若否,則輸出0,否則輸出1。
分散式馬克士威+設置:
AuditSetup(ACCS ) 1:隨機地混洗ACCS 中之元組,在混洗之後將每一元組之新部位記錄為其葉索引且將索引附加至元組,亦即,將元組更新為(uid ,baluid ,indexuid )。 2:對於每個(uid ,bal ,index ) ∈ACCS ,使用新隨機性r ,令com ← commit(uid; r) ,令h ← H (baluid ||indexuid ||com) ,且將comhr 附加至元組以得到(uid ,bal ,index ,com ,r ,h )。藉由ACCS' 指示元組之新擴增集合。 3:令d =[log2 |ACCS' |]。建立深度為d 之完整二元樹,其中吾人以陣列Di [1...2 i ]儲存深度i 處之節點的資訊。令TL←0 。 4:對於所有1 ≤j ≤ 2 d ,若元組(uid ,bal ,j ,com ,r ,h )存在於ACCS' 中,則令Dd [j ]←(h ,bal )且TL ← TL +bal 。若否,則令Dd [j ] ← (0λ , 0) 5:for i =d - 1 to 1do 6:  for j = 1 to 2 i do 7:      擷取(hL ,balL ) =Di +1 [2j - 1]且(hR ,balR ) =Di +1 [2j ] 8:      令Di [j ] ← (H (balL ||balR ||hR ||hL ),balL +balR )。 9:   end for 10:end for 11:輸出aud = (audpk = (TL ,D1 ),audsk = (D2 , ... Dd ,ACCS' ))。
分散式馬克士威+證明及驗證演算法:
UserProve(uid ,aud ) 1:將與uid 相關聯之元組(uid ,bal ,index ,com ,r ,h ) ∈ACCS' 附加至π uid 。 2:for i =d to 1do 3:   if (index mod 2)
Figure 02_image034
1 then 4:      將(path ,i ,Di [index ])及(sib ,i ,Di [index + 1])附加至π uid 5:     index ← (index + l)/2 6:  else 7:      將(path ,i ,Di [index ])及(sib ,i ,Di [index - 1])附加至π uid 8:      index ← index/2 9:  end if 10:end for 11:輸出π uid    UserVerify(uid, audpk , πuid , bal) 1:自π uid 擷取(uid ,bal ,index ,com ,r ,h ) 2:給定comuidr ,驗證承諾。 3:自π uid 擷取(path ,d , (hp ,balp ))。檢查hp
Figure 02_image034
 H (balp ||index ||com )且bal
Figure 02_image040
balp 。若否,則輸出0。 4:for i =d to 2do 5:   自π uid 擷取(path ,i , (hp ,balp ))及(sib ,i , (hs ,bals ))、(path ,i -1, (h ,bal )) 6:   檢查balp bals > 0且bal
Figure 02_image042
 balp +bals 。若否,則輸出0。 7:  if (index mod 2)
Figure 02_image042
1then 8:      檢查是否
Figure 02_image044
,且若否,則輸出0。 9:     index ← (index + l)/2 10: else 11:     檢查是否
Figure 02_image046
,且若否,則輸出0。 12:     index ← index/2 13: end if 14:end for 15:輸出1。
樹布建設置:
AuditSetup(ACCS ) l:隨機地混洗ACCS 中之元組,在混洗之後將每一元組之新部位記錄為其葉索引且將索引附加至元組,亦即,將元組更新為(uid ,baluid ,indexuid )。 2:對於每個(uid ,bal ,index ) ∈ACCS ,使用新隨機性r ,令RH (uid ;r ),令Pcom =gbal hR hH (index ||Pcom ),且將hPcomr 附加至元組以得到(uid ,bal ,index ,h ,Pcom ,r ,R )。藉由ACCS' 指示元組之新擴增集合。 3:令d =[log2 |ACCS' |]。建立深度為d 之完整二元樹,其中吾人以陣列Di [1...2 i ]儲存深度i 處之節點的資訊。令TL←0 。 4:對於所有1 ≤j ≤ 2 d ,若元組(uid ,bal ,j ,h ,Pcom ,r ,R )存在於ACCS' 中,則令Dd [j ]← (h ,Pcom ,bal ,R )且TL ← TL +bal 。若否,則令Dd [j ] ← (0λ ,Pcom (0,r '), 0,r ') 5:for i =d - 1 to 1do 6:  for j = 1 to 2 i do 7:      擷取(hL ,PcomL ,balL ,RL ) =Di+ 1 [2j - 1]且(hR ,PcomR ,balR ,RR ) =Di +1 [2j ] 8:      令Di [j ]←(H (PcomL ||PcomR ||h L ||hR ),PcomL PcomR ,balL +balR ,R L +R R )。 9:   end for 10:end for 11:輸出aud = (audpk = (TL ,D1 ),audsk = (D2 , ... Dd ,ACCS' ))。
樹布建證明及驗證演算法:
UserProve(uid ,aud ) 1:將與uid 相關聯之元組(uid ,bal ,index ,h ,Pcom ,r ,R )∈ACCS' 附加至π uid 。 2:for i =d to 1do 3:   if (index mod 2)
Figure 02_image034
1 then 4:      擷取(hL , PcomL , balL , RL ) = Di [index]及(hR , PcomR , balR , RR ) = Di [index + 1] 5:      使用balR RR 計算範圍證明
Figure 02_image048
6:      將(path ,i ,hL ,PcomL )及(sib ,i ,hR ,PcomR ,
Figure 02_image050
)附加至π uid 7:     index ← (index + l)/2 8:  else 9:      擷取(hL , PcomL ,bal L , RL )= Di [index -1]及(hR , PcomR , balR , RR ) =Di [index ] 10:     使用balL RL 計算範圍證明
Figure 02_image052
11:     將(path ,i ,hR ,PcomR )及(sib ,i ,hL ,PcomL ,
Figure 02_image054
)附加至π uid 12:     index ← index/2 13:  end if 14:end for 15:輸出π uid    UserVerify(uid ,audpk ,π uid ,bal ) 1:自π uid 擷取(uid ,bal ,index ,h ,Pcom ,r ,R ) 2:驗證R
Figure 02_image056
H (uid ||r ),且Rbal 對於Pcom 為有效空缺 3:自π uid 擷取(path ,d ,hp ,Pcomp )。檢查hp
Figure 02_image058
H (index ||Pcom )。若否,則輸出0。 4:for i =d to 2do 5:   自π uid 擷取(path ,i ,hp ,Pcomp )及(sib ,i ,hs ,Pcoms ,
Figure 02_image060
)、(path ,i -1,h ,Pcom ) 6:   驗證
Figure 02_image062
,且檢查Pcom
Figure 02_image064
Pcomp Pcoms 。若否,則輸出0。 7:  if (index mod 2)
Figure 02_image042
1then 8:      檢查是否(h
Figure 02_image067
H (Pcoms ||Pcomp ||hs ||hp ),且若否,則輸出0。 9:     index ← (index + 1)/2 10: else 11:     檢查是否(h
Figure 02_image067
H (Pcoms ||Pcomp ||hs ||hp ),若否,則輸出0。 12:    indexindex /2 13: end if 14:end for 15:輸出1。
此處為基本API之清單,吾人需要佩德森承諾及隨附範圍證明: 1. 對於純量r、s,ADD (r ,s ) 2.Com (m ,r ) =gm hr 3. Verify(c, m, r) =
Figure 02_image069
4.Com (m 1 ,r 1 ) ⊗Com (m 2 ,r 2 ) =Com (m 1 +m 2 ,r 1 +r 2 ) 5.Prove (com (m ,r ),m ,r ) →
Figure 02_image071
。此為固定範圍之範圍證明。 6. Verify (Com (m ,r ),
Figure 02_image071
),當且僅當rangem >0時,其輸出1。證明 。類似於定理7之證明,總體證明之主要分量為以下引理。引理 10 令N為餘額總額,且k為運行UserVerify且輸出1之統一取樣使用者的數目。惡意證明者可破壞t個使用者之餘額而不被捕獲的機率由
Figure 02_image074
限定。 吾人開始於將問題簡化為僅考慮藉由將使用者餘額設定為零來作弊但誠實地執行所有其他證明者步驟之惡意證明者。特定而言,引理11展示:對於表現為任意惡意之任何證明者,存在除了在葉中將使用者餘額之子集設定為零(或自樹省略該些餘額)以外,亦誠實地執行所有證明者步驟的替代策略,其具有相同的獲勝優點且具有相等或較低聲明負債。 如早先在定理7之證明中所論證的,對於此論述之其餘部分,吾人假設:給定承諾方案之約束性質及雜湊函數H 之抗衝突性,吾人假設除了可忽略的機率以外,使用者及稽核員兩者將自證明者接收到相同視圖。引理 11 對於每個PPT證明者,皆存在具有相等之被捕獲機率及相等或較少所聲明負債之PPT證明者B,其僅藉由將使用者餘額設定為零或自樹省略該些使用者餘額而破壞使用者餘額。證明 。首先觀察到,除了將餘額設定為零以外,由敵手A 執行之兩個主要惡意行為係(i)在計算求和默克爾樹時使用負餘額或部分總和,或(ii)針對內部節點使用部分總和,而非其兩個子代之正確總和。對於證明者,吾人忽略不影響或僅增加總負債之所有其他惡意行為,此係因為該些行為僅傷害作弊證明者。 考慮證明者A ,其建立具有負餘額、負部分總和或不正確部分總和之求和樹。若指派給節點之值為負或其值並非其兩個子代之值的總和(僅針對非葉節點),則吾人稱該節點被破壞 。對於任何被破壞節點a ,考慮未被破壞之被稱作b 的上代節點(最遠離根)。根據定義,b 之兩個子代中之至少一者被破壞。此暗示若b 之下代中之任一者在執行使用者驗證之k 個使用者當中,則其將偵測且報告作弊。 用零餘額替換為b 之下代的所有葉之餘額且確保所有非葉節點未被破壞的替代策略(由B 採用)具有相同的被捕獲機率。此外,應注意,在前者中,總負債至多減少l 個餘額,其中lb 下方之葉的數目,此係因為根據定義,b 之值為正。在前者中,吾人明確地令b 下方之所有葉的餘額為零且因此獲得總聲明負債之相等或較高減少。 反覆地,針對所有剩餘的被破壞節點 重複此程序,直至無節點剩餘,得到吾人對敵手證明者B 之最終描述,該證明者具有與A 相同的獲勝優點及相等或較低的總負債。 基於引理11,吾人可僅將注意力集中於將使用者餘額之子集設定為零的敵手。在彼狀況下,吾人可在定理7之證明中調用分析以展示任何此敵手藉由破壞t 個餘額來逃脫的機率由
Figure 02_image076
限定。
雖然負債系統之密碼學證明在本文中主要參考證明密碼貨幣交易所之償債能力來描述,但其他具體實例為可能的。舉例而言,負債系統之密碼學證明可結合其他應用程式證明償債能力,該些應用程式中之若干者在下文進行描述。無關於使用案例或應用程式,負債系統之密碼學證明以如下方式提供總負債或債務或「反對」票之證明:值/餘額應包括於彙總負債中之每個使用者可透明地驗證其包括於證明中而無需瞭解關於其他使用者餘額之任何資訊。
償債能力證明—負債系統之密碼學證明可產生償債能力證明。舉例而言,償債能力證明為一種公開證明,其用以驗證託管服務不會作為部分儲備運行,例如,一些客戶資產在任何給定時刻皆無法被提取。償債能力證明涉及檢查負債是否<=儲備。另外,償債能力證明由兩個分量組成:1)負債證明;及2)儲備證明。舉例而言,負債系統之密碼學證明可結合任何區塊鏈交易所及/或託管錢包來提供償債能力證明,以類似地向稽核員及使用者透明地證明償債能力。
不贊成投票—術語反對投票有時用於允許投票者拒絕整個範圍之候選者;其亦意謂提供給投票者之僅有選項為對一或多個候選者投反對票,但其有時用於允許投票者選擇對候選者投票抑或投反對票的系統。舉例而言,在至少一個具體實例中,反對(或不贊成)票為對候選者、提議或服務投反對票(例如,對旅館或餐館之負面反饋),且計數為負一或權重。不同於大多數選舉系統,不贊成投票要求僅呈現反對措施或選擇。舉例而言,不贊成投票方案通常包括證明者沒有動機增加此等選票之量。
本文中所描述之負債系統的密碼學證明可結合不贊成投票方案來證明負債,其中每個候選者接收反對票且將其儲存於本端總帳中。此不贊成投票方案不包括用以接收選票且稽核及監管投票程序之中央授權機構或網路服務。舉例而言,負債系統之密碼學證明可產生負債證明,使得投票者可檢查其包括於所報告投票結果中,因此防止惡意實體藉由不將實際選票中之任一者包括於所報告投票總數中來試圖作弊。
在一些具體實例中,負債系統之密碼學證明利用同態承諾來確保總報告量保持被隱藏,且僅與另一同態承諾相比較地使用(亦即,用以在不瞭解實際投票百分比差之情況下將候選者進行分類)。舉例而言,競爭方比較同態承諾之選舉系統模糊投票總數而不揭露反對票之實際數目(亦即,藉由使用多方計算以產生選票數目之差的範圍證明)。
不喜歡行為及令人反感的內容—社交平台中之不喜歡行為可被視為不贊成投票之例項。舉例而言,在不贊成投票方案中,每一社交平台使用者可在特定帖文上接收到反對票,且有義務公佈關於接收到之不喜歡行為之總數的報告。負債系統之密碼學證明可提供與不喜歡行為之總數相關聯的負債證明,使得使用者無法自所公佈報告省略反對票中之一些或全部。在此具體實例中,社交平台無需運行不喜歡行為追蹤服務,此係因為本文中所描述之負債系統的密碼學證明為完全分散的。
負債系統之密碼學證明可將此不贊成投票方案應用於任何類型之令人反感的內容(包括假新聞及仇恨言論)的透明報告。如同本文中所描述之任何應用,負債系統之密碼學證明可使得任何投票者能夠檢查其選票已包括於所報告總數中。在至少一個具體實例中,社交平台可自動地將不贊成選票之總數達到臨限值的任何帖文視為令人反感的。
籌款及ICO—出於稅務稽核目的,企業必須定期報告收益。本文中所描述之負債系統的密碼學證明可使得與商業公司相關聯之每個公民/買方能夠自動地促成驗證彼商業公司之稅務負債證明。利用負債系統之密碼學證明,政府或國內稅收系統(Internal Revenue System)無需追蹤個人收據來交叉檢查帳戶處理報告之正確性。
銀團貸款(Syndicated Loan)—銀團貸款係由共同向大額借款人提供信貸的一組貸款人提供。借款人可為公司、個人項目或政府。銀團中之每個貸款人皆貢獻部分貸款金額,且所有貸款人承擔貸款風險。貸款人中之一者充當管理者(牽頭銀行),其代表銀團中之其他貸款人系統管理貸款。
在一或多個具體實例中,由於額外隱私要求,貸款人不必一定知曉其他貸款人之供款額。同時,若牽頭銀行報告假的總供款額,則其可能要承擔責任。因此,在此具體實例中,本文中所描述之負債系統的密碼學證明在負債系統之密碼學證明中提供高效且準確的密碼學工具,其產生保護使用者隱私之負債證明。
彩票獎金—在大多數地方,彩票受嚴格控制、受限制或至少受調控。儘管如此,仍已報告存在操縱中獎及大規模詐騙醜聞,此使得難以表明真正彩票之公平性。一些彩票系統利用區塊鏈技術及智慧型合約,使得玩家實際上可知曉並信任機率及收益分配。本文中所描述之負債系統的密碼學證明可為傳統彩票系統添加額外安全性,此係因為獎池實際上為一種負債且組織者不具有任何動機來增加負債。舉例而言,本文中所描述之負債系統的密碼學證明可透明地隱藏個人供款額及/或僅向獲獎者揭露總獎金金額。
信用評分及金融債務—信用評分為表示對人員之信用度或該人員將償還其債務之可能性之評估的數字。傳統上,信用評分係基於對人員信用報告之統計分析而產生。除了其原始目的以外,信用評分亦用以確定保險費率及職前篩選。
通常,此等服務為集中式的且信貸局維持人員之借款及還款活動的記錄。本文中所描述之負債系統的密碼學證明可支援制定金融債務之新分散式信用系統,其中使用者在不需要第三追蹤方之情況下維持其信用評分。相比傳統的信用評分系統,此分散式信用系統將具有更小的侵入性及更大的私用性。
轉介方案—轉介網站為用以將訪客轉介至另一網站之網際網路位址或主機名稱。舉例而言,訪客可點選轉介網站上之超鏈接,其接著將使用者引導至轉介網站。轉介行業通常藉由介紹費用來賺錢;轉介網站應向轉介者進行償付。然而,在許多狀況下(亦即,在賭博網站)中,費用與轉介使用者之活動有關,例如註冊資金或存款。傳統上,轉介網站系統管理員必須盲目地信任來自轉介網站之報告以接收公平的償付費用。類似情境為房地產業務中之轉介費,其中費用由一個代理或經紀人向另一代理或經紀人收取以轉介客戶。
本文中所描述之負債系統的密碼學證明可在轉介業務中提供額外透明層。舉例而言,負債系統之密碼學證明為轉介產生使用者提供檢查其個人包括證明且捕獲正報告假或不準確數字之報告實體的自動方式。
關於病毒爆發之透明報告—在流行病及大流行期間,受影響的國家及健康組織報告由病毒或細菌引起的官方感染及死亡人數。對於每個業務部門的各種疾病或甚至職業事故,此情形亦適用於微觀層級(亦即,城市,醫院)。歷史已展示,受影響的國家或組織有時可能有動機詐報或誤報此等數目,主要係因為爆發及壞消息可能導致經濟影響及社會問題。
一個實例為最近的2019-20冠狀病毒大流行(COVID-19),其由嚴重的急性呼吸綜合征冠狀病毒2(SARS-CoV-2)引起。疫情於2019年12月在中國湖北武漢首次識別到,且在2020年3月11日被世界衛生組織(World Health Organization;WHO)辨識為大流行。有報告及謠言暗示,一些政府隱瞞了冠狀病毒病例總數之真實資料,且向新聞媒體低估了疫情的嚴重性。除了對世界各個經濟體的負面影響外,錯誤資訊亦不允許自死亡率軌跡中得出結論性的見解,其最終導致為抵禦大流行之衛生設施及其他衛生程序的準備出現延誤。本文中所描述之負債系統的密碼學證明提供額外的分散透明度,同時保護患者資料隱私。舉例而言,被證明感染了病毒的每一人員皆可自地方授權機構或醫院接收到經簽章回應。接著,負債系統之密碼學證明每日可公佈諸如本文中所描述之確定性稀疏樹,其中每一葉節點對應於一個人員(或若家庭中之多個成員感染了病毒,則對應於一群組)。接著,具有經簽章回應之每個被感染人員可接著檢查其包括於稀疏樹中。類似地,負債系統之密碼學證明可使得政府能夠交叉比較其數字而不公開實際量。
如關於圖1至圖8所描述,負債系統102之密碼學證明產生確定性稀疏樹且提供驗證稀疏樹之總負債中之個別負債的鑑認路徑。圖9說明上文所描述之負債系統102之密碼學證明的具體實例之詳細示意圖。在一或多個具體實例中,負債系統102之密碼學證明包括稀疏樹產生器902、用戶端通信器904、零知識證明產生器906及鑑認路徑產生器908。
如上文所論述,擴增實境系統102可由伺服器代管或可駐存於電腦節點114或用戶端裝置112a至112n中之任一者上。在一或多個具體實例中,負債系統102之密碼學證明的功能性可完全由電腦節點114及/或用戶端裝置112a至112n中之任一者包含。另外或替代地,負債系統102之密碼學證明的功能性之部分可由伺服器代管,而負債系統102之密碼學證明的功能性之其他部分可由電腦節點114及/或用戶端裝置112a至112n中之任一者執行。
如圖9中所展示且如上文所提及,負債系統102之密碼學證明可包括稀疏樹產生器902。在一或多個具體實例中,稀疏樹產生器902存取不可變資料庫且確定性地產生包括不可變資料庫中之資訊的稀疏樹。舉例而言,稀疏樹產生器902可產生稀疏默克爾樹,該樹針對不可變資料庫中之每一使用者條目包括一葉節點。如上文所論述,稀疏樹產生器902可回應於稽核請求或驗證證明請求而產生確定性稀疏樹。
在一或多個具體實例中,稀疏樹產生器902可確定性地將填補節點定位於稀疏樹中。舉例而言,為了模糊稀疏樹中真實使用者之數目且取決於稀疏樹之高度,稀疏樹產生器902可將複數個填補節點定位於稀疏樹中使得每一填補節點定位於空子樹之根處。
另外,稀疏樹產生器902亦可針對由稀疏樹表示之每個使用者產生使用者葉節點。舉例而言,如上文所論述,稀疏樹產生器902可確定與特定使用者相關聯之所承諾負債及使用者識別符。稀疏樹產生器902可進一步將可驗證隨機函數應用在與使用者相關聯之所承諾負債及使用者識別符,以確定可驗證隨機函數輸出。稀疏樹產生器902可接著將金鑰導出函數應用於此輸出以產生稽核識別符(例如,audit_id )及盲因子(例如,b_factor )。如上文所論述,稀疏樹產生器902可導出包括於每一葉節點中之其他確定性地產生之值,以確保維持稀疏樹之隱私及安全性,該些值係基於稽核識別符及盲因子。
另外,稀疏樹產生器902可確定性地分割及混洗葉節點。舉例而言,為了進一步模糊使用者數目及餘額,稀疏樹產生器902可跨越多個葉節點分割與單個使用者相關聯之餘額。此外,稀疏樹產生器902可在後續稽核中混洗及重新混洗葉節點,以便隱藏未能定期請求驗證證明之使用者。
如圖9中所展示且如上文所提及,負債系統102之密碼學證明包括用戶端通信器904。在一或多個具體實例中,用戶端通信器904處置負債系統102之密碼學證明與稽核員及/或個別使用者之間的通信。舉例而言,用戶端通信器904可接收稽核請求及/或驗證請求。用戶端通信器904可回應於所接收請求而將證明及/或鑑認路徑提供至稽核員及/或個別使用者。
如圖9中所展示且如上文所提及,負債系統102之密碼學證明包括零知識證明產生器906。在一或多個具體實例中,零知識證明產生器906針對確定性稀疏樹中之每個節點計算一證明,其證明與每一節點相關聯之餘額在離散範圍內,而無需實際餘額之任何知識。如上文所論述,零知識證明產生器906可為鑑認路徑中之每個節點提供零知識證明,以展示每個節點之餘額為小的正數。
如圖9中所展示且如上文所提及,負債系統102之密碼學證明包括鑑認路徑產生器908。在一或多個具體實例中,回應於接收到驗證使用者之所承諾負債(例如,錢幣數目)是包括於稀疏樹之總負債中的請求,鑑認路徑產生器908可遞歸地識別自使用者葉節點返回至稀疏樹之根節點的每個節點。鑑認路徑產生器908可提供此節點清單作為使用者之鑑認路徑。在至少一個具體實例中,鑑認路徑產生器908可進一步為使用者之鑑認路徑中的每個節點提供零知識證明(例如,由零知識證明產生器906計算),該些證明展示由每一節點反映之餘額為小的正數。
負債系統102之密碼學證明的組件902至908中之每一者可包括軟體、硬體或其兩者。舉例而言,組件902至908可包括一或多個指令,該一或多個指令儲存於電腦可讀取儲存媒體上且可由諸如用戶端裝置或伺服器裝置之一或多個計算裝置的處理器執行。在由一或多個處理器執行時,負債系統102之密碼學證明的電腦可執行指令可使計算裝置執行本文中所描述之方法。替代地,組件902至908可包括諸如專用處理裝置之硬體以執行某一功能或功能群組。替代地,負債系統102之密碼學證明的組件902至908可包括電腦可執行指令與硬體之組合。
此外,負債系統102之密碼學證明的組件902至908可例如實施為一或多個作業系統、一或多個獨立應用程式、應用程式之一或多個模組、一或多個外掛程式、一或多個程式庫函式或可被其他應用程式呼叫之函式及/或雲端計算模型。因此,組件902至908可實施為獨立應用程式,諸如桌面或行動應用程式。此外,組件902至908可實施為代管於遠端伺服器上的一或多個網路為基礎之應用程式。組件902至908亦可實施為行動裝置應用程式或「app」之套件。
圖1至圖9、對應文字及實例提供負債系統102之密碼學證明的數個不同方法、系統、裝置及非暫時性電腦可讀取媒體。除了前述內容以外,亦可依據包含用於實現特定結果之動作的流程圖來描述一或多個具體實例,如圖10中所展示。圖10可用更多或更少動作來執行。另外,該些動作可按不同次序執行。另外,本文中所描述之動作可重複或彼此並列地執行或與相同或類似動作之不同例項並列地執行。
如所提及,圖10說明根據一或多個具體實例之用於產生鑑認路徑的動作系列1000之流程圖,該鑑認路徑判定使用者之所承諾負債反映在確定性稀疏樹之總負債中。雖然圖10說明根據一個具體實例之動作,但替代具體實例可省略、添加、重新排序及/或修改圖10中所展示之動作中之任一者。圖10之動作可作為方法之部分執行。替代地,非暫時性電腦可讀取媒體可包含在由一或多個處理器執行時使計算裝置執行圖10之動作的指令。在一些具體實例中,系統可執行圖10之動作。
如圖10中所展示,該動作系列1000包括為使用者產生使用者葉節點之動作1010。舉例而言,動作1010可涉及藉由將確定性函數應用在與使用者相關聯之所承諾負債及使用者識別符來為使用者產生使用者葉節點。在一或多個具體實例中,將確定性函數應用於所承諾負債及使用者識別符包括將可驗證隨機函數應用在與使用者相關聯之所承諾負債及使用者識別符。在至少一個具體實例中,將確定性函數應用於所承諾負債及使用者識別符進一步包括將一或多個金鑰導出函數應用於可驗證隨機函數之輸出以產生稽核識別符及盲因子,其中:稽核識別符為唯一且確定性地產生之值;且盲因子為混淆所承諾負債之確定性地產生之承諾。另外,該動作系列1000可包括產生與所承諾負債相關聯之零知識範圍證明,其證明所承諾負債為預定數字範圍內之小正數。
該動作系列亦包括將所產生之使用者葉節點定位於確定性稀疏樹中的動作1020。舉例而言,動作1020可涉及藉由確定性地混洗使用者葉節點與填補節點及其他使用者葉節點,將所產生之使用者葉節點定位於確定性稀疏樹中。在一或多個具體實例中,確定性地混洗使用者葉節點與填補節點及其他使用者葉節點包括:產生與使用者葉節點及其他使用者葉節點相關聯之使用者識別符的使用者雜湊;基於所產生之使用者雜湊對使用者葉節點及其他使用者葉節點進行排序;將經排序之使用者葉節點及其他使用者葉節點隨機地定位於確定性稀疏樹上;及基於確定性稀疏樹中之空位置而確定性地計算填補節點。在至少一個具體實例中,該動作系列1000包括將確定性稀疏樹中之填補節點定位為確定性稀疏樹之空子樹之根的動作。舉例而言,填補節點可包括零之所承諾負債。
此外,該動作系列包括如下動作1030:接收驗證使用者之所承諾負債反映在與確定性稀疏樹相關聯之總數中的請求。舉例而言,動作1030可涉及接收驗證與使用者相關聯之所承諾負債是包括於確定性稀疏樹之總負債中的請求。
另外,該動作系列包括產生使用者葉節點之鑑認路徑的動作1040,該鑑認路徑證明使用者之所承諾負債反映在總數中。舉例而言,動作1040可涉及產生使用者葉節點之鑑認路徑,該鑑認路徑包含稀疏樹中在與使用者相關聯之使用者葉節點與指示總負債之根節點之間的節點之清單,其中該鑑認路徑判定與使用者相關聯之所承諾負債反映在總負債中。在至少一個具體實例中,鑑認路徑可進一步包括與稀疏樹中在使用者葉節點與根節點之間的節點之清單中的每個節點相關聯之零知識範圍證明。
在至少一個具體實例中,該動作系列1000進一步包括藉由以下操作產生確定性稀疏樹之內部節點:識別內部節點之左子代節點及內部節點之右方子代節點;藉由將左子代節點及右方子代節點之所承諾負債相加而產生內部節點之經加密負債;及藉由串接左子代節點及右方子代節點之所有所承諾負債及雜湊而產生內部節點之雜湊。舉例而言,產生使用者葉節點之鑑認路徑可包括:在開始於使用者葉節點處之稀疏樹的每個層級處識別同層級節點,及藉由親代節點向上移動同層級節點;及針對稀疏樹之每個層級,將經識別同層級節點添加至鑑認路徑,以判定每個層級處之所承諾負債反映兩個子代節點之所承諾負債的乘積。
在至少一個具體實例中,該動作系列1000包括以下動作:將確定性稀疏樹之根節點公佈至不可變資料庫;接收驗證與其他使用者相關聯之所承諾負債是包括於確定性稀疏樹之總負債中的額外請求;產生與其他使用者相關聯之額外鑑認路徑;及比較鑑認路徑與所公佈根節點以確保每個使用者對確定性稀疏樹之總負債具有相同視圖。
另外,在至少一個具體實例中,該動作系列1000包括以下動作:接收與確定性稀疏樹相關聯之稽核請求;回應於接收到稽核請求,基於葉節點中之每一者中的使用者識別符之雜湊而重新混洗葉節點;及重新確定確定性稀疏樹之內部節點使得每一內部節點之經加密負債為內部節點之左子代節點及右方子代節點的所承諾負債之總和。
本公開之具體實例可包含或利用專用或通用電腦,包括電腦硬體,諸如一或多個處理器及系統記憶體,如下文更詳細地論述。在本公開之範圍內的具體實例亦包括用於攜載或儲存電腦可執行指令及/或資料結構之實體及其他電腦可讀取媒體。特定而言,本文中所描述之程序中之一或多者可至少部分地實施為體現於非暫時性電腦可讀取媒體中且可由一或多個計算裝置(例如,本文中所描述之媒體內容存取裝置中之任一者)執行的指令。一般而言,處理器(例如,微處理器)自非暫時性電腦可讀取媒體(例如,記憶體等)接收指令且執行彼等指令,藉此執行一或多個程序,包括本文中所描述之程序中之一或多者。
電腦可讀取媒體可為可由通用或專用電腦系統存取之任何可用媒體。儲存電腦可執行指令之電腦可讀取媒體為非暫時性電腦可讀取儲存媒體(裝置)。攜載電腦可執行指令之電腦可讀取媒體為傳輸媒體。因此,作為實例且非限制,本公開之具體實例可包含至少兩個明顯不同種類之電腦可讀取媒體:非暫時性電腦可讀取儲存媒體(裝置)及傳輸媒體。
非暫時性電腦可讀取儲存媒體(裝置)包括RAM、ROM、EEPROM、CD-ROM、固態磁碟機(「solid state drive;SSD」)(例如,基於RAM)、快閃記憶體、相變記憶體(「phase-change memory;PCM」)、其他類型之記憶體、其他光碟儲存器、磁碟儲存器或其他磁性儲存裝置,或可用以儲存呈電腦可執行指令或資料結構形式之所要程式碼部件且可由通用或專用電腦存取的任何其他媒體。
「網路」定義為使得能夠在電腦系統及/或模組及/或其他電子裝置之間輸送電子資料的一或多個資料鏈路。當資訊經由網路或另一通信連接(硬接線、無線或硬接線或無線之組合)傳送或提供至電腦時,電腦適當地將連接視為傳輸媒體。傳輸媒體可包括可用以攜載呈電腦可執行指令或資料結構形式之所要程式碼部件且可由通用或專用電腦存取的網路及/或資料鏈路。以上各者的組合亦應包括於電腦可讀取媒體之範圍內。
另外,在到達各種電腦系統組件後,呈電腦可執行指令或資料結構形式之程式碼部件可自傳輸媒體自動地傳送至非暫時性電腦可讀取儲存媒體(裝置)(或反之亦然)。舉例而言,經由網路或資料鏈路接收之電腦可執行指令或資料結構可緩衝於網路介面模組(例如,「network interface module;NIC」)內之RAM中,且接著最終傳送至電腦系統RAM及/或在電腦系統處之揮發性較低的電腦儲存媒體(裝置)。因此,應理解,非暫時性電腦可讀取儲存媒體(裝置)可包括於亦(或甚至主要)利用傳輸媒體之電腦系統組件中。
舉例而言,電腦可執行指令包含在由處理器執行時使通用電腦、專用電腦或專用處理裝置執行某一功能或功能群組之指令及資料。在一些具體實例中,電腦可執行指令在通用電腦上執行以將通用電腦變成實施本公開之元件的專用電腦。電腦可執行指令可為例如二進位文件、諸如組合語言之中間格式指令,或甚至原始程式碼。儘管已以特定於結構特徵及/或方法動作之語言描述主題,但應理解,隨附申請專利範圍中所定義之主題未必限於上文所描述之所描述特徵或動作。確切而言,將所描述特徵及動作公開為實施申請專利範圍之實例形式。
所屬技術領域中具有通常知識者應瞭解,本公開可實踐於具有許多類型之電腦系統組態的網路計算環境中,包括個人電腦、桌上型電腦、膝上型電腦、訊息處理器、手持型裝置、多處理器系統、微處理器為基礎或可程式化消費型電子裝置、網路PC、小型電腦、大型電腦、行動電話、PDA、平板電腦、呼叫器、路由器、交換器及其類似者。本公開亦可實踐於分散式系統環境中,在分散式系統環境中,經由網路鏈接(藉由硬接線資料鏈路、無線資料鏈路或藉由硬接線資料鏈路與無線資料鏈路之組合)之本端及遠端電腦系統兩者執行任務。在分散式系統環境中,程式模組可位於本端及遠端記憶體儲存裝置兩者中。
本公開之具體實例亦可實施於雲端計算環境中。在本說明書中,「雲端計算」定義為用於使得能夠對可組態計算資源之共用集區進行按需網路存取的模型。舉例而言,雲端計算可在市場中使用,以提供對可組態計算資源之共用集區的無處不在且便利的按需存取。可組態計算資源之共用集區可經由虛擬化快速地佈建且以低管理工作量或服務提供者互動來釋放,且接著相應地進行擴展。
雲端計算模型可包括各種特性,諸如按需自助服務、廣泛網路存取、資源彙集、快速彈性、所量測服務等。雲端計算模型亦可曝露各種服務模型,諸如軟體即服務(「Software as a Service;SaaS」)、平台即服務(「Platform as a Service;PaaS」)及基礎架構即服務(「Infrastructure as a Service;IaaS」)。雲端計算模型亦可使用諸如私用雲端、社群雲端、公用雲端、混合雲端等之不同部署模型來部署。在本說明書中且在申請專利範圍中,「雲端計算環境」為使用雲端計算之環境。
圖11說明可經組態以執行上文所描述之程序中之一或多者的實例計算裝置1100之方塊圖。吾人應瞭解,諸如計算裝置1100之一或多個計算裝置可表示上文所描述之計算裝置(例如,用戶端裝置112a至112n及電腦節點114)。在一或多個具體實例中,計算裝置1100可為行動裝置(例如,行動電話、智慧型手機、PDA、平板電腦、膝上型電腦、攝影機、追蹤器、手錶、可穿戴式裝置等)。在一些具體實例中,計算裝置1100可為非行動裝置(例如,桌上型電腦或另一類型之用戶端裝置)。另外,計算裝置1100可為包括雲端處理及儲存能力之伺服器裝置。
如圖11中所展示,計算裝置1100可包括可藉助於通信基礎架構(例如,匯流排1112)通信耦接之一或多個處理器1102、記憶體1104、儲存裝置1106、輸入/輸出介面1108(或「I/O介面1108」)及通信介面1110。雖然圖11中展示計算裝置1100,但圖11中所說明之組件並不意欲為限制性的。在其他具體實例中可使用額外或替代組件。此外,在某些具體實例中,計算裝置1100包括比圖11中所展示之彼等組件少的組件。現將額外詳細地描述圖11中所展示之計算裝置1100的組件。
在特定具體實例中,處理器1102包括用於執行指令(諸如,組成電腦程式之彼等指令)之硬體。作為實例而非作為限制,為執行指令,處理器1102可自內部暫存器、內部快取記憶體、記憶體1104或儲存裝置1106擷取(或提取)指令,且解碼並執行該些指令。
計算裝置1100包括耦接至處理器1102之記憶體1104。記憶體1104可用於儲存資料、後設資料及程式以供處理器執行。記憶體1104可包括揮發性及非揮發性記憶體中之一或多者,諸如隨機存取記憶體(「Random-Access Memory;RAM」)、唯讀記憶體(「Read-Only Memory;ROM」)、固態磁碟(「solid-state disk;SSD」)、快閃記憶體、相變記憶體(「PCM」)或其他類型之資料儲存器。記憶體1104可為內部或分散式記憶體。
計算裝置1100包括儲存裝置1106,其包括用於儲存資料或指令之儲存器。作為實例而非作為限制,儲存裝置1106可包括上文所描述之非暫時性儲存媒體。儲存裝置1106可包括硬碟驅動機(hard disk drive;HDD)、快閃記憶體、通用串列匯流排(Universal Serial Bus;USB)驅動機或此等或其他儲存裝置之組合。
如所展示,計算裝置1100包括一或多個I/O介面1108,該一或多個介面經提供以允許使用者將輸入(諸如,使用者筆劃)提供至計算裝置1100,自計算裝置接收輸出且以其他方式將資料傳送至計算裝置及自計算裝置傳送資料。此等I/O介面1108可包括滑鼠、小鍵盤或鍵盤、觸控式螢幕、攝影機、光學掃描器、網路介面、數據機、其他已知I/O裝置或此等I/O介面1108之組合。觸控式螢幕可藉由手寫筆或手指啟動。
I/O介面1108可包括用於向使用者呈現輸出之一或多個裝置,包括但不限於圖形引擎、顯示器(例如,顯示螢幕)、一或多個輸出驅動器(例如,顯示驅動器)、一或多個音訊揚聲器及一或多個音訊驅動器。在某些具體實例中,I/O介面1108經組態以將圖形資料提供至顯示器以供向使用者呈現。圖形資料可表示一或多個圖形使用者介面及/或可伺服特定實施方案之任何其他圖形內容。
計算裝置1100可進一步包括通信介面1110。通信介面1110可包括硬體、軟體或其兩者。通信介面1110提供用於計算裝置與一或多個其他計算裝置或一或多個網路之間的通信(諸如,封包為基礎之通信)的一或多個介面。作為實例而非作為限制,通信介面1110可包括用於與乙太網路或其他有線網路通信之網路介面控制器(network interface controller;NIC)或網路配接器,或用於與諸如WI-FI之無線網路通信的無線NIC(WNIC)或無線配接器。計算裝置1100可進一步包括匯流排1112。匯流排1112可包括將計算裝置1100之組件連接至彼此的硬體、軟體或其兩者。
在前述描述中,已參考本發明之特定實例具體實例描述了本發明。參考本文中所論述之細節描述了本發明之各種具體實例及態樣,且隨附圖式說明各種具體實例。以上描述及圖式為對本發明之說明且不應解釋為限制本發明。描述眾多特定細節以提供對本發明之各種具體實例的透徹理解。
在不脫離本發明之精神或本質特徵的情況下,本發明可以其他特定形式體現。所描述具體實例應被視為在所有方面皆僅為說明性而非限制性的。舉例而言,本文中所描述之方法可用更少或更多步驟/動作執行,或該些步驟/動作可按不同次序執行。另外,本文中所描述之步驟/動作可重複或彼此並列地執行或與相同或類似步驟/動作之不同例項並列地執行。因此,本發明之範圍藉由隨附申請專利範圍而非藉由前述描述指示。在申請專利範圍之等效性之含義及範圍內出現的所有改變皆包涵在其範圍內。
100:分散式數位總帳交易網路 101:通信網路 102:負債系統/擴增實境系統 106:總帳負債系統 108a:確證者節點裝置 108b:確證者節點裝置 108c:全節點裝置 108d:全節點裝置 110:用戶端應用程式 112a~112n:用戶端裝置 114:電腦節點 116a~116n:使用者 202a:葉節點 202b:葉節點 202c:葉節點 204:混洗分割餘額葉節點 302:使用者葉節點 304a:audit_id 304b:audit_id 306:b_factor 308:h_seed 310:u_hash 402a:真實使用者葉節點 402b:真實使用者葉節點 402c:真實使用者葉節點 404a:填補節點 404b~404n:填補節點 500:確定性稀疏樹 502a:使用者葉節點 502b:使用者葉節點 502c:使用者葉節點 504a:填補節點 504b:填補節點 504c:填補節點 504d:填補節點 504e:填補節點 504f:填補節點 506a:空子樹 506b:空子樹 506c:空子樹 506d:空子樹 506e:空子樹 506f:空子樹 600:確定性稀疏樹 602a:使用者葉節點 602b:使用者葉節點 604:填補節點 606:內部節點 608:根節點 610a:範圍證明 610b:範圍證明 610c:範圍證明 610d:範圍證明 610e:範圍證明 702:餘額承諾 704:雜湊 706:時戳 708:後設資料資訊 800:確定性稀疏樹 802:空葉節點 804:使用者葉節點 806a:同層級節點 806b:同層級節點 806c:同層級節點 808:內部節點 808a:內部節點 808b:內部節點 808c:內部節點 902:稀疏樹產生器/組件 904:用戶端通信器/組件 906:零知識證明產生器/組件 908:鑑認路徑產生器/組件 1000:動作系列 1010:動作 1020:動作 1030:動作 1040:動作 1100:計算裝置 1102:處理器 1104:記憶體 1106:儲存裝置 1108:輸入/輸出介面 1110:通信介面 1112:匯流排
本公開將藉由參看隨附圖式以額外特定性及細節描述本發明之一或多個具體實例。以下段落簡要地描述彼等圖,其中:
[圖1]說明根據一或多個具體實例之實例分散式網路,負債系統之密碼學證明可在該網路中操作;
[圖2]說明提供根據一或多個具體實例的負債分割及葉混洗之綜述的示意圖;
[圖3]說明提供根據一或多個具體實例的確定性地確定稽核識別符之綜述的示意圖;
[圖4]說明提供根據一或多個具體實例的添加具有零餘額負債之假使用者之綜述的示意圖;
[圖5]說明根據一或多個具體實例之稀疏樹的示意圖;
[圖6]說明根據一或多個具體實例之高度為二的稀疏樹之示意圖,該稀疏樹包括兩個使用者及一個填補節點;
[圖7]說明根據一或多個具體實例的負債之經簽章證明的示意圖;
[圖8]說明根據一或多個具體實例之稀疏樹的示意圖,其展示鑑認路徑以證明最近使用者;
[圖9]說明根據一或多個具體實例的負債系統之密碼學證明的示意圖;
[圖10]說明根據一或多個具體實例的用於產生鑑認路徑之動作系列的流程圖,該鑑認路徑判定使用者之所承諾負債反映在確定性稀疏樹之總負債中;及
[圖11]說明根據一或多個具體實例之例示性計算裝置的方塊圖。
1000:動作系列
1010:動作
1020:動作
1030:動作
1040:動作

Claims (20)

  1. 一種方法,其包含 藉由將一確定性函數應用於與一使用者相關聯之一所承諾負債及使用者識別符來為該使用者產生一使用者葉節點; 藉由確定性地混洗該使用者葉節點與填補節點及其他使用者葉節點來將所產生之使用者葉節點定位於一確定性稀疏樹中; 接收驗證與該使用者相關聯之該所承諾負債是包括於該確定性稀疏樹之一總負債中的一請求;及 產生該使用者葉節點之一鑑認路徑,該鑑認路徑包含該稀疏樹中在與該使用者相關聯之該使用者葉節點與指示該總負債之一根節點之間的節點之一清單,其中該鑑認路徑判定與該使用者相關聯之該所承諾負債反映在該總負債中。
  2. 如請求項1之方法,其中將該確定性函數應用於該所承諾負債及該使用者識別符包含將一可驗證隨機函數應用於與該使用者相關聯之該所承諾負債及該使用者識別符。
  3. 如請求項2之方法,其中將該確定性函數應用於該所承諾負債及該使用者識別符進一步包含將一或多個金鑰導出函數應用於該可驗證隨機函數之一輸出以產生一稽核識別符及一盲因子,其中: 該稽核識別符為一唯一且確定性地產生之值;且 該盲因子為混淆該所承諾負債之一確定性地產生之承諾。
  4. 如請求項3之方法,其中確定性地混洗該使用者葉節點與填補節點及其他使用者葉節點包含: 產生與該使用者葉節點及該些其他使用者葉節點相關聯之使用者識別符的使用者雜湊; 基於所產生之該些使用者雜湊而對該使用者葉節點及該些其他使用者葉節點進行排序; 將經排序之該使用者葉節點及該些其他使用者葉節點隨機地置放於該確定性稀疏樹上;及 基於該確定性稀疏樹中之空位置而確定性地計算該些填補節點。
  5. 如請求項4之方法,其進一步包含將該確定性稀疏樹中之該些填補節點定位為該確定性稀疏樹之空子樹的根。
  6. 如請求項5之方法,其中一填補節點包含零之一所承諾負債。
  7. 如請求項3之方法,其進一步包含產生與該所承諾負債相關聯之一零知識範圍證明,其證明該所承諾負債為一預定數字範圍內之一小正數。
  8. 如請求項7之方法,其中該鑑認路徑進一步包含與該稀疏樹中在該使用者葉節點與該根節點之間的節點之該清單中的每個節點相關聯之一零知識範圍證明。
  9. 如請求項3之方法,其進一步包含藉由以下操作產生該確定性稀疏樹之一內部節點: 識別該內部節點之一左子代節點及該內部節點之一右子代節點; 藉由將該左子代節點及該右子代節點之所承諾負債相加而產生該內部節點之一經加密負債;及 藉由串接該左子代節點及該右子代節點之所有所承諾負債及雜湊而產生該內部節點之一雜湊。
  10. 如請求項9之方法,其中產生該使用者葉節點之該鑑認路徑進一步包含: 在開始於該使用者葉節點處之該稀疏樹的每個層級處識別同層級節點,及藉由親代節點向上移動同層級節點;及 對於該稀疏樹之每個層級,將經識別之同層級節點添加至該鑑認路徑,以判定每個層級處之一所承諾負債反映兩個子代節點之所承諾負債的一乘積。
  11. 如請求項1之方法,其進一步包含: 將該確定性稀疏樹之該根節點公佈至一不可變資料庫; 接收驗證與其他使用者相關聯之所承諾負債是包括於該確定性稀疏樹之該總負債中的額外請求; 產生與該些其他使用者相關聯之額外鑑認路徑;及 比較該些鑑認路徑與所公佈之根節點以確保每個使用者對該確定性稀疏樹之該總負債具有相同視圖。
  12. 如請求項1之方法,其進一步包含: 接收與該確定性稀疏樹相關聯之一稽核請求; 回應於接收到該稽核請求,基於該些葉節點中之每一者中的使用者識別符之雜湊而重新混洗該些葉節點;及 重新確定該確定性稀疏樹之內部節點,使得每一內部節點之一經加密負債為該內部節點之一左子代節點及一右子代節點的所承諾負債之一總和。
  13. 一種系統,其包含: 至少一個處理器;及 至少一個非暫時性電腦可讀取儲存媒體,其將在由該至少一個處理器執行時使該系統進行以下操作之指令儲存於其上: 藉由將一確定性函數應用於與一使用者相關聯之一所承諾負債及使用者識別符來為該使用者產生一使用者葉節點; 藉由確定性地混洗該使用者葉節點與填補節點及其他使用者葉節點來將所產生之使用者葉節點定位於一確定性稀疏樹中; 接收驗證與該使用者相關聯之該所承諾負債包括於該確定性稀疏樹之一總負債中的一請求;及 產生該使用者葉節點之一鑑認路徑,該鑑認路徑包含該稀疏樹中在與該使用者相關聯之該使用者葉節點與指示該總負債之一根節點之間的節點之一清單,其中該鑑認路徑判定與該使用者相關聯之該所承諾負債反映在該總負債中。
  14. 如請求項13之系統,其中將該確定性函數應用於該所承諾負債及該使用者識別符包含: 將一可驗證隨機函數應用於與該使用者相關聯之該所承諾負債及該使用者識別符;及 將一或多個金鑰導出函數應用於該可驗證隨機函數之一輸出以產生一稽核識別符及一盲因子,其中: 該稽核識別符為一唯一且確定性地產生之值;且 該盲因子為混淆該所承諾負債之一確定性地產生之承諾。
  15. 如請求項14之系統,其中確定性地混洗該使用者葉節點與填補節點及其他使用者葉節點包含: 產生與該使用者葉節點及該些其他使用者葉節點相關聯之使用者識別符的使用者雜湊; 基於所產生之該些使用者雜湊而對該使用者葉節點及該些其他使用者葉節點進行排序; 將經排序之該使用者葉節點及該些其他使用者葉節點隨機地置放於該確定性稀疏樹上;及 藉由將該確定性稀疏樹中之該些填補節點定位為該確定性稀疏樹之空子樹的根,基於該確定性稀疏樹中之空位置而確定性地計算該些填補節點。
  16. 如請求項15之系統,其進一步將指令儲存於其上,該些指令在由該至少一個處理器執行時使該系統產生與該所承諾負債相關聯之一零知識範圍證明,其證明該所承諾負債為一預定數字範圍內之一小正數,其中該鑑認路徑進一步包含與該稀疏樹中在該使用者葉節點與該根節點之間的節點之該清單中的每個節點相關聯之一零知識範圍證明。
  17. 如請求項16之系統,其進一步將指令儲存於其上,該些指令在由該至少一個處理器執行時使該系統進一步將指令儲存於其上,該些指令在由該至少一個處理器執行時使該系統藉由以下操作產生該確定性稀疏樹之一內部節點: 識別該內部節點之一左子代節點及該內部節點之一右子代節點; 藉由將該左子代節點及該右子代節點之所承諾負債相加而產生該內部節點之一經加密負債;及 藉由串接該左子代節點及該右子代節點之所有所承諾負債及雜湊而產生該內部節點之一雜湊。
  18. 如請求項17之系統,其進一步將指令儲存於其上,該些指令在由該至少一個處理器執行時使該系統進一步將指令儲存於其上,該些指令在由該至少一個處理器執行時使該系統藉由以下操作產生該使用者葉節點之該鑑認路徑: 在開始於該使用者葉節點處之該稀疏樹的每個層級處識別同層級節點,及藉由親代節點向上移動同層級節點;及 對於該稀疏樹之每個層級,將經識別之同層級節點添加至該鑑認路徑,以判定每個層級處之一所承諾負債反映兩個子代節點之所承諾負債的一乘積。
  19. 一種非暫時性電腦可讀取媒體,其儲存在由至少一個處理器執行時使一計算裝置進行以下操作之指令: 藉由將一確定性函數應用於與一使用者相關聯之一所承諾負債及使用者識別符來為該使用者產生一使用者葉節點; 藉由確定性地混洗該使用者葉節點與填補節點及其他使用者葉節點將所產生之使用者葉節點定位於一確定性稀疏樹中; 接收驗證與該使用者相關聯之該所承諾負債是包括於該確定性稀疏樹之一總負債中的一請求;及 產生該使用者葉節點之一鑑認路徑,該鑑認路徑包含該稀疏樹中在與該使用者相關聯之該使用者葉節點與指示該總負債之一根節點之間的節點之一清單,其中該鑑認路徑判定與該使用者相關聯之該所承諾負債反映在該總負債中。
  20. 如請求項19之非暫時性電腦可讀取媒體,其中將該確定性函數應用於該所承諾負債及該使用者識別符包含: 將一可驗證隨機函數應用於與該使用者相關聯之該所承諾負債及該使用者識別符;及 將一或多個金鑰導出函數應用於該可驗證隨機函數之一輸出以產生一稽核識別符及一盲因子,其中: 該稽核識別符為一唯一且確定性地產生之值;且 該盲因子為混淆該所承諾負債之一確定性地產生之承諾。
TW110111358A 2020-03-30 2021-03-29 確定性稀疏樹為基礎之負債的密碼學證明 TW202137732A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063002298P 2020-03-30 2020-03-30
US63/002,298 2020-03-30
US17/206,423 US20210336789A1 (en) 2020-03-30 2021-03-19 Deterministic sparse-tree based cryptographic proof of liabilities
US17/206,423 2021-03-19

Publications (1)

Publication Number Publication Date
TW202137732A true TW202137732A (zh) 2021-10-01

Family

ID=75540070

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110111358A TW202137732A (zh) 2020-03-30 2021-03-29 確定性稀疏樹為基礎之負債的密碼學證明

Country Status (5)

Country Link
US (1) US20210336789A1 (zh)
EP (1) EP4128655A1 (zh)
CN (1) CN115152178A (zh)
TW (1) TW202137732A (zh)
WO (1) WO2021202289A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4142211A1 (en) * 2021-08-26 2023-03-01 BitFlow GmbH Document integrity protection
WO2024197102A1 (en) * 2023-03-21 2024-09-26 Unity Chain, Inc. Output private distributed vrfs and application toblockchains
CN116629175B (zh) * 2023-07-26 2023-12-15 深圳中安辰鸿技术有限公司 对npu中的译码单元进行验证的方法及相关装置、设备
US12015713B1 (en) 2023-08-23 2024-06-18 Yuga Labs, Inc. Artificial intelligence protocols for enhancing token holder autonomy

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4309569A (en) * 1979-09-05 1982-01-05 The Board Of Trustees Of The Leland Stanford Junior University Method of providing digital signatures
AU2001250976A1 (en) * 2000-03-24 2001-10-08 Votehere, Inc. Verifiable, secret shuffles of encrypted data, such as elgamal encrypted data for secure multi-authority elections
US20080000969A1 (en) * 2004-03-25 2008-01-03 Cryptomathic A/S Electronic Voting Systems
US7586892B2 (en) * 2004-04-26 2009-09-08 Hewlett-Packard Development Company, L.P. Computer method and apparatus for periodic scheduling with jitter-approximation tradeoff
US8245038B2 (en) * 2008-03-26 2012-08-14 Palo Alto Research Center Incorporated Method and apparatus for verifying integrity of redacted documents
EP2338127B1 (en) * 2008-08-29 2015-07-29 Brown University Cryptographic accumulators for authenticated hash tables
US8078642B1 (en) * 2009-07-24 2011-12-13 Yahoo! Inc. Concurrent traversal of multiple binary trees
US8396896B2 (en) * 2010-11-10 2013-03-12 International Business Machines Corporation Assigning resources to a binary tree structure
US20140245020A1 (en) * 2013-02-22 2014-08-28 Guardtime Ip Holdings Limited Verification System and Method with Extra Security for Lower-Entropy Input Records
US9356965B2 (en) * 2013-12-30 2016-05-31 Alexander Kjeldaas Method and system for providing transparent trusted computing
US9792431B1 (en) * 2014-02-11 2017-10-17 Veritas Technologies Llc Systems and methods for selectively masking data on virtual storage devices
US10237074B2 (en) * 2014-04-08 2019-03-19 Hewlett Packard Enterprise Development Lp Redactable document signatures
US10812274B2 (en) * 2015-05-07 2020-10-20 Blockstream Corporation Transferring ledger assets between blockchains via pegged sidechains
US10740474B1 (en) * 2015-12-28 2020-08-11 Ionic Security Inc. Systems and methods for generation of secure indexes for cryptographically-secure queries
US10291408B2 (en) * 2016-12-23 2019-05-14 Amazon Technologies, Inc. Generation of Merkle trees as proof-of-work
EP3646563B1 (en) * 2017-06-30 2023-12-13 Visa International Service Association Method, system, and computer program product for determining solvency of a digital asset exchange
EP3442160A1 (en) * 2017-08-07 2019-02-13 Siemens Aktiengesellschaft Pruning of authentication trees
US11151259B2 (en) * 2017-12-06 2021-10-19 Zamna Technologies Limited Method and system for data security, validation, verification and provenance within independent computer systems and digital networks
EP3522064B1 (en) * 2018-02-02 2021-12-22 Università Degli Studi Di Trento A method and apparatus for distributed, privacy-preserving and integrity-preserving exchange, inventory and order book
US11438139B2 (en) * 2018-02-07 2022-09-06 Raouf Boutaba Blockchain based secure naming and update verification
CN113989047A (zh) * 2018-07-27 2022-01-28 创新先进技术有限公司 基于区块链的资产发布方法及装置、电子设备
TW202034656A (zh) * 2019-01-31 2020-09-16 柯賓漢數位金融科技有限公司 產生區塊鏈上之安全隨機數的方法
US11018856B2 (en) * 2019-09-11 2021-05-25 Guardtime Sa Auditable system and methods for secret sharing

Also Published As

Publication number Publication date
WO2021202289A1 (en) 2021-10-07
EP4128655A1 (en) 2023-02-08
US20210336789A1 (en) 2021-10-28
CN115152178A (zh) 2022-10-04

Similar Documents

Publication Publication Date Title
Zhang et al. Enabling execution assurance of federated learning at untrusted participants
Abuidris et al. Secure large‐scale E‐voting system based on blockchain contract using a hybrid consensus model combined with sharding
EP4117228B1 (en) Systems and methods for communication, storage and processing of data provided by an entity over a blockchain network
US20200311678A1 (en) Smart contract execution using distributed coordination
TW202137732A (zh) 確定性稀疏樹為基礎之負債的密碼學證明
ES2836526T3 (es) Métodos y aparato para una base de datos distribuida dentro de una red
CN115152177B (zh) 提供机密知识的专门证明的系统和方法
CN110263584B (zh) 一种基于区块链的数据完整性审计方法和系统
Chalkias et al. Distributed auditing proofs of liabilities
CN112235109B (zh) 一种基于区块链的账户恢复方法及系统
Platt et al. Sybil attacks on identity-augmented Proof-of-Stake
CN112613601A (zh) 神经网络模型更新方法、设备及计算机存储介质
Ruoti et al. SoK: Blockchain technology and its potential use cases
Ji et al. Generalized proof of liabilities
CN115174087A (zh) 用于用多方计算执行的零知识证明的装置和系统
Lu et al. Self-tallying e-voting with public traceability based on blockchain
Mi et al. [Retracted] Privacy‐Oriented Transaction for Public Blockchain via Secret Sharing
KR102717970B1 (ko) 분산 조정을 사용한 스마트 계약 실행
Sayyad et al. Voting Using Blockchain Technology
Gurushankar et al. Decentralized universally verifiable stake voting system with perfect privacy
CN117879860B (zh) 一种基于区块链的可信数据验证处理方法、装置及设备
Williams Remote Voting in the Age of Cryptography
Dewangan et al. Blockchain with Fault Tolerance Mechanism
Neumann et al. Formal treatment of distributed trust in electronic voting
Hicks Design and Usage of Transparency Enhancing Technologies