CN115152178A - 基于确定性稀疏树的密码学责任证明 - Google Patents
基于确定性稀疏树的密码学责任证明 Download PDFInfo
- Publication number
- CN115152178A CN115152178A CN202180015482.6A CN202180015482A CN115152178A CN 115152178 A CN115152178 A CN 115152178A CN 202180015482 A CN202180015482 A CN 202180015482A CN 115152178 A CN115152178 A CN 115152178A
- Authority
- CN
- China
- Prior art keywords
- user
- responsibility
- node
- nodes
- deterministic
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3218—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3239—Cryptographic 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/105—Human resources
- G06Q10/1053—Employment or hiring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/08—Insurance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/16—Obfuscation or hiding, e.g. involving white box
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial 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的美国临时专利申请的优先权和权利,该申请的全部内容通过引用并入本文。
背景技术
责任证明是允许公司证明其责任或义务总量的重要方案。例如,责任证明对于证明各个行业中的各种类型的责任可能是重要的。例如,责任证明可用于诸如加密货币交换所之类的区块链系统中。偿付能力是公司履行其长期财务承诺的能力。在金融领域中且尤其是在区块链系统中,偿付能力的证明由两部分组成:1.责任证明:证明交换所欠其所有客户的币的总量;2.储备证明(也称为资产证明):证明区块链中的数字资产(即币)的所有权。通常,交换所应该能够按需证明所拥有币的总结余大于或等于其责任,这对应于其用户在其平台内拥有的币的总和。
通常,责任证明由人工审计员执行。然而,使用人工审计员会引起各种问题。例如,依赖于第三方人工审计员来验证权利可能导致不准确甚至讹误(corruption)。一种旨在避免与人工审计员相关联的问题的新兴责任证明类型是责任/偿付能力的密码学证明。不幸的是,传统密码学责任证明方案和系统存在许多缺点。例如,传统的密码学系统经常暴露有关潜在责任结构和/或其用户群的敏感信息。特别地,一些传统的密码学系统会泄漏信息,诸如数据库大小(例如,用户数目)和个人结余或其他用户信息。
此外,一些传统密码学责任证明方案和系统会将访问模式暴露给所提供的证明。例如,分布式审计过程中的易受攻击的时期是在被审计实体使用以前审计的信息来预测用户检查其证明的概率时。这些信息可以被审计实体利用来在即将到来的审计中省略特定结余,因为被捕获的风险非常低。
通过以这些方式泄漏和暴露数据,传统密码学责任证明方案会导致系统不准确性。例如,通过利用泄漏和暴露数据,恶意实体可以在区块链系统内产生不准确性,以便窃取(syphon-off)数字资产。由于区块链系统的混淆性质,这些不准确性难以检测或证明。此外,传统密码学责任证明方案在报告责任方面通常不准确。例如,使用传统密码学责任证明方案,报告实体通常无法证实特定责任是否被包括在所有被报告责任中(例如,在区块链中)。一个特定示例是报告传染病的确诊阳性病例。测试呈阳性的个人通常无法证实他们的个人阳性测试是否被包括在机构所报告的感染总数中。
此外,传统密码学责任证明方案常常在应用分布式审计过程中浪费计算资源。例如,人工审计师经常将各种责任证明技术依次应用于数据集,以尝试验证总责任和成员资格。但是这种依次工作通常会导致重复和冗余,进而引起验证的计算成本增加。
关于传统密码学责任证明方案和系统,存在这些以及附加的问题。
发明内容
本文描述的一个或多个实施例利用用于分散式的、保护隐私的密码学责任证明的系统、方法和非暂态计算机可读存储介质,来提供益处和/或解决本领域中的上述或其他问题中的一个或多个。例如,一个或多个实施例提供了一种密码学责任证明系统,该系统允许实体以安全、透明和准确地报告其责任、义务或与可替代负面报告相关的其他指标的总量,而无需暴露任何用户数据或敏感系统数据(例如,责任结构)。此外,一个或多个实施例提供了一种密码学责任证明系统,该系统允许个人用户独立地验证其所承诺责任被包括在所报告的总责任中。
根据本发明,提供了一种方法,包括:通过将确定性函数应用于与用户相关联的所承诺责任和用户标识符来为用户生成用户叶节点;通过用填充节点和其他用户叶节点确定性地扰乱用户叶节点,将所生成的用户叶节点定位在确定性稀疏树中;接收用于验证与用户相关联的所承诺责任被包括在针对确定性稀疏树的总责任中的请求;以及为用户叶节点生成认证路径,该认证路径包括稀疏树中的、在与用户相关联的用户叶节点和指示总责任的根节点之间的节点列表,其中认证路径确认:与该用户相关联的所承诺责任用户被反映在总责任中。
可选地,将确定性函数应用于所承诺责任和用户标识符包括:将可验证随机函数应用于与用户相关联的所承诺责任和用户标识符。
可选地,将确定性函数应用于所承诺责任和用户标识符还包括:将一个或多个密钥导出函数应用于可验证随机函数的输出以生成审计标识符和盲因子,其中可选地,审计标识符是唯一且确定性生成的值,并且可选地,盲因子是混淆所承诺责任的确定性生成的承诺。
可选地,用填充节点和其他叶节点确定性地扰乱用户叶节点包括:生成与用户叶节点和其他用户叶节点相关联的用户标识符的用户哈希,基于所生成的用户哈希对用户叶节点和其他用户叶节点进行排序,将经排序的用户叶节点和其他用户叶节点随机放置在确定性稀疏树上,并基于确定性稀疏树中的空位置来确定性地计算填充节点。
可选地,该方法还可以包括将填充节点定位在确定性稀疏树中,作为确定性稀疏树的空子树的根。
可选地,填充节点包括为零的所承诺责任。
可选地,该方法还可以包括:生成与所承诺责任相关联的零知识范围证明,零知识范围证明证明了所承诺责任是预定数字范围内的小正数。
可选地,认证路径还包括与稀疏树中的、在用户叶节点和根节点之间的节点列表中的每个节点相关联的零知识范围证明。
可选地,该方法还可以包括通过以下方式生成确定性稀疏树的内部节点:标识内部节点的左子代节点和内部节点的右子代节点,通过添加左子代节点和右子代节点的所承诺责任,为内部节点生成已加密责任,并且通过连接左子代节点和右子代节点的所有所承诺责任和哈希来为内部节点生成哈希。
可选地,为用户叶节点生成认证路径还包括:在从用户叶节点开始并通过父节点向上移动的稀疏树的每一层级处标识同层级节点,并且对于稀疏树的每一层级,将已标识的同层级节点添加到认证路径,以确认在每一层级的所承诺责任反映两个子代节点的所承诺责任的乘积。
可选地,该方法还可以包括:将确定性稀疏树的根节点发布到不可变数据库,接收用于验证与其他用户相关联的所承诺责任被包括在确定性稀疏树的总责任中的附加请求,生成与其他用户相关联的附加认证路径,并将认证路径与已发布的根节点进行比较,以确保每个用户对确定性稀疏树的总责任具有相同的视图。
可选地,该方法还可以包括:接收与确定性稀疏树相关联的审计请求,并且可选地,响应于接收到审计请求,基于每个叶节点中的用户标识符的哈希来对叶节点进行重新扰乱,以及重新确定针对确定性稀疏树的内部节点,使得针对每个内部节点的已加密责任是内部节点的左子代节点和右子代节点的所承诺责任的总和。
根据本发明,还提供了一种系统,包括至少一个处理器,以及在其上存储指令的至少一个非暂态计算机可读存储装置介质,该指令在由至少一个处理器执行时使系统:通过将确定性函数应用于与用户相关联的所承诺责任和用户标识符来为用户生成用户叶节点;通过用填充节点和其他用户叶节点确定性地扰乱用户叶节点,将所生成的用户叶节点定位在确定性稀疏树中;接收用于验证与用户相关联的所承诺责任被包括在确定性稀疏树的总责任中的请求,并为用户叶节点生成认证路径,该认证路径包括稀疏树中的、在与用户相关联的用户叶节点和指示总责任的根节点之间的节点列表,其中认证路径确认:与用户相关联的所承诺责任被反映在总责任中。
可选地,非暂态计算机可读存储装置介质还在其上存储指令,该指令在由至少一个处理器执行时使系统通过以下方式生成确定性稀疏树的内部节点:标识内部节点的左子代节点和内部节点的右子代节点,通过添加左子代节点和右子代节点的所承诺责任来为内部节点生成已加密责任,并且通过连接左子代节点和右子代节点的所有所承诺责任和哈希来为内部节点生成哈希。
可选地,该介质还在其上存储指令,该指令在由至少一个处理器执行时使系统通过以下方式为用户叶节点生成认证路径:在从用户叶节点开始并通过父节点向上移动的稀疏树的每一层级处标识同层级节点,并且对于稀疏树的每一层级,将已标识的同层级节点添加到认证路径,以确认在每一层级的所承诺责任反映两个子代节点的所承诺责任的乘积。
根据本发明,还提供了一种在其上存储指令的非暂态计算机可读介质,该指令在由至少一个处理器执行时,使计算设备:通过将确定性函数应用于与用户相关联的所承诺责任和用户标识符,为用户生成用户叶节点;通过用填充节点和其他用户叶节点确定性地扰乱用户叶节点,将所生成的用户叶节点定位在确定性稀疏树中;接收用于验证与用户相关联的所承诺责任被包括在确定性稀疏树的总责任中的请求,并为用户叶节点生成认证路径,该认证路径包括稀疏树中的、在与用户相关联的用户叶节点和指示总责任的根节点之间的节点列表,其中认证路径确认:与用户相关联的所承诺责任被反映在总责任中。
附图说明
本公开将通过参考附图以附加的特异性和细节来描述本发明的一个或多个实施例。以下段落简要描述了那些附图,其中:
图1图示了根据一个或多个实施例的密码学责任证明系统可以操作在其中的示例分布式网络;
图2图示了根据一个或多个实施例的提供责任拆分和叶扰乱(leaf shuffling)的概述的示意图;
图3图示了根据一个或多个实施例的提供确定性地确定审计标识符的概述的示意图;
图4图示了根据一个或多个实施例的提供添加具有零结余责任的假用户的概述的示意图;
图5图示了根据一个或多个实施例的稀疏树的示意图;
图6图示了根据一个或多个实施例的包括两个用户和一个填充节点的高度为2的稀疏树的示意图;
图7图示了根据一个或多个实施例的经签名责任证明的示意图;
图8图示了根据一个或多个实施例的稀疏树的示意图,其示出了用于证明最靠近的用户的认证路径;
图9图示了根据一个或多个实施例的密码学责任证明系统的示意图;
图10图示了根据一个或多个实施例的用于生成认证路径的一系列动作的流程图,该认证路径确认:用户的所承诺责任被反映在针对确定性稀疏树的总责任中;以及
图11图示了根据一个或多个实施例的示例性计算设备的框图。
具体实施方式
一个或多个实施例包括利用基于确定性稀疏树的密码学责任证明的密码学责任证明系统。特别地,在密码学责任证明中,系统可以利用树构造(例如,默克尔树),该树构造使用结余拆分、有效填充、可验证随机函数、确定性密钥导出函数或范围证明技术中的一种或多种技术来进行扩展。在至少一个实施例中,密码学责任证明系统用结余分割、有效填充、可验证随机函数、确定性密钥导出函数和范围证明技术中的每一种技术来扩展默克尔树。在一个或多个实施例中,密码学责任证明系统确定性地生成稀疏树,以使得稀疏树中的每个叶节点都与认证路径相关联。在一个或多个实施例中,密码学责任证明系统利用稀疏树中的、在叶节点和稀疏树的根之间的该节点列表来确认:与叶节点相关联的所承诺责任被反映在针对整个稀疏树总责任中。
为了说明,在一个或多个实施例中,密码学责任证明系统生成与不可变数据库(例如,区块链)相关联的确定性稀疏树(例如,稀疏默克尔树)。例如,密码学责任证明系统通过为不可变数据库中的每个用户或成员生成和定位在稀疏树中的至少一个叶节点来生成确定性稀疏树。密码学责任证明系统可以进一步为稀疏树中的每个其他层级生成内部节点,其包括来自子节点的信息的总和以及连接。通过根据这些通用规范递归地生成稀疏树,密码学责任证明系统可以确保稀疏树的根节点反映了针对整个不可变数据库的全部责任,并且在每个用户叶节点和根节点之间的稀疏树内存在准确的认证路径。
在一个或多个实施例中,密码学责任证明系统利用确定性函数来提高安全性并保护用户责任。例如,密码学责任证明系统可以将确定性函数应用于稀疏树叶节点内的用户责任,从而使得用户的责任被混淆但是可以通过密码学证明。在一个或多个实施例中,密码学责任证明系统可以利用诸如同态承诺(例如,佩德森(Pedersen)承诺)之类的确定性函数来确保任何特定责任隐藏于稀疏树内并且仅在与另一同态承诺比较时才可用。
为了进一步保护用户信息以及通常关于稀疏树的信息,密码学责任证明系统可以利用可验证随机函数(VRF)和密钥导出函数(KDF),来提供稍后可以使用证明来揭露的确定性预先承诺。例如,密码学责任证明系统可以利用密钥导出函数和可验证随机函数来为每用户生成唯一的审计ID(audit id)和盲因子(blinding factor)。基于这些唯一且确定性生成的值,密码学责任证明系统可以进一步确保有关用户和稀疏树的信息保持私有,即使在连续审计和后续审计之间也是如此。
在一个或多个实施例中,密码学责任证明系统进一步生成确定性稀疏树以混淆稀疏树内的用户或成员的总数。例如,密码学责任证明系统可以生成包括零结余(例如,零责任)的填充节点的稀疏树。这些填充节点不会影响稀疏树中表示的总责任,而是用于隐藏树中承载实际责任结余的真实用户叶节点的数目。在至少一个实施例中,密码学责任证明系统可以将填充节点定位在确定性稀疏树内的每个空子树的根部处。
在至少一个实施例中,密码学责任证明系统可以通过生成一个或多个零知识范围证明来进一步确保反映在稀疏树的根节点中的总责任是准确的。例如,密码学责任证明系统可以为稀疏树中通向根节点的每个内部节点生成零知识范围证明,其表明每个节点的所承诺责任是预定数字范围内的一个小正数。因此,密码学责任证明系统可以在稀疏树的每个层级处示出在其中表示的责任是预期的。
在一个或多个实施例中,密码学责任证明系统可以为确定性稀疏树中表示的任何用户生成和提供成员资格或包括的个人证明。例如,密码学责任证明系统可以接收来自用户客户端设备的请求,以验证用户的所承诺责任(例如,币数目、阳性感染报告、投票)是否被包含在稀疏树的根节点处列出的总责任中。响应于接收到这样的请求,密码学责任证明系统可以生成包括认证路径的证明,该认证路径包括稀疏树中的、在用户的叶节点和稀疏树的根节点之间的节点列表。由于稀疏树的属性,并且在一些情况下还因为与列表中的每个节点相关联的范围证明,密码学责任证明系统可以使用认证路径向用户证明用户的责任被正确反映在针对稀疏树的总责任中。
在至少一个实施例中,密码学责任证明系统可以在每次审计稀疏树时确定性地扰乱确定性稀疏树的用户叶节点。为了说明,当在每次审计中对叶节点按关系排序时,恶意行动者可以潜在地了解有关稀疏树的信息。因此,密码学责任证明系统可以确定性地定期扰乱稀疏树的叶节点(例如,在稀疏树的每次审计之前),以使得后续排序无法提取任何信息。
如上面所提及,与传统责任证明系统相比,密码学责任证明系统提供了许多技术优点和益处。例如,密码学责任证明系统改善了传统责任证明系统确定各种责任的准确性和安全性。与传统系统相比,密码学责任证明系统通过利用确定性稀疏树方法来避免了其他方案常见的许多数据泄漏和暴露,除了隐藏关于稀疏树本身的信息(例如,树的大小)之外,该确定性稀疏树方法还有效地隐藏了关于稀疏树中表示的用户和账户的信息。以这种方式,密码学责任证明系统避免了常常被恶意实体利用的传统系统的数据不准确性。
此外,密码学责任证明系统通过利用确定性稀疏树的结构来确定准确的责任证明从而改善了传统系统的准确性。例如,密码学责任证明系统结合稀疏树的每一层级的节点来利用密钥导出和可验证随机函数,以确保父节点准确地反映两个子节点的责任信息。因此,密码学责任证明系统可以确保在稀疏树的根节点中反映的总责任准确地反映了每个贡献叶节点责任。
此外,密码学责任证明系统还改善了传统系统的效率。例如,密码学责任证明系统基于单个生成的确定性稀疏树而向审计员或用户提供优雅且稳健的责任证明。如此,密码学责任证明系统最小化通常与证明不可变数据库(诸如区块链)的责任相关联的计算验证成本。
除了这些技术优点和益处之外,密码学责任证明系统还提供了优于传统系统的各种隐私和安全性进步。例如,密码学责任证明系统改进了传统系统常见的以下隐私和安全缺陷。
账户信息泄露——传统系统通常泄露账户信息。例如,在结构为默克尔树的证明中,验证用户可以了解属于默克尔树中的同层级叶节点的结余。即使叶节点被扰乱,验证方也可以了解结余分布。如将更详细描述的,在一个或多个实现方式中,密码学责任证明系统确保有关个人用户(id或结余)的数据不被揭露,即使在独立审计之间也是如此。
交换所信息泄露——在公布与交换所相关联的总责任量时,传统系统通常会暴露关于可以被利用的交换所的信息。例如,恶意实体可以提取有关交换所的业务的成功的业务信息。如将更详细描述的,在一个或多个实现方式中,密码学责任证明系统证明了揭露或不揭露总责任的选项。
对完整账户持有者验证的依赖性——传统系统可能不需要普遍参与来验证责任证明的正确性。相比之下,在一个或多个实现方式中,密码学责任证明系统将验证责任证明的完整性和正确性的责任分配给所有账户持有者。正如将在下面进一步讨论的,这种分配进一步确保了责任证明的更高准确性,因为每个参与用户都验证了他或她的认证路径的正确性。
对证明的交互式访问——在一个或多个实现方式中,密码学责任证明系统确保每个账户持有者从仅包含他们自己的叶节点和根之间的节点的交换所接收个体包括证明,同时防止泄露有关用户包括证明请求的信息。例如,利用传统系统,恶意证明者可以使用包括证明请求用户的身份来省略很少或从不检查其包括证明的用户。正如下面将进一步讨论的,密码学责任证明系统可以使用填充节点来防止这种类型的泄漏。
独立验证工具——传统系统通常无法为用户提供自动独立验证工具。在一个或多个实现方式中,密码学责任证明系统为每个账户持有者提供了个体证明,该个体证明仅包含他们自己的叶节点和根之间的节点。
用户数目——如上面所提及,传统系统经常泄露关于包括用户数目的交换所或其他主体的信息。恶意实体可以以各种方式利用此信息。如下文将更详细讨论的,密码学责任证明系统可以生成隐藏用户总数的责任证明,以使得该数目不被泄露或被发现。
实现问题——如上面所提及,传统系统经常将用户信息泄露给审计员。与上述用户数目一样,恶意权利可以以各种方式利用这些被泄露的信息。相比之下,密码学责任证明系统可以生成不向审计员暴露用户信息(包括个人结余)的责任证明,除非争议解决和例行采样需要它。
后续审计——传统系统经常在后续审计之间泄漏信息。例如,传统责任证明主要由对每个用户结余的承诺和所述结余在一定范围内的证明组成。对于所有新的用户和结余已发生变化的用户,承诺证明在后续审计中被重新生成。对于其他用户,无需重新生成责任证明。然而,若不针对结余保持不变的用户改变证明,则将泄露两个证明之间有多少用户正在主动地使用其账户。因此,在一个或多个实现方式中,密码学责任证明系统在每次审计中针对所有用户重新生成完整的责任证明,以使得此用户信息保持私有。
如前述讨论所说明的,本公开利用了多种术语来描述密码学责任证明系统的特征和优点。现在提供关于这些术语的含义的附加细节。例如,如本文中所使用的,“确定性稀疏树”是指二叉树数据结构。在一个或多个实施例中,如本文所述,确定性稀疏树包括稀疏默克尔树,该稀疏默克尔树包括一个或多个叶节点、填充节点和单个根节点。
如本文中所使用的,“叶节点”是指在稀疏树的最低层级的节点。如以下将更详细描述的,确定性稀疏树仅在其叶节点中包括用户信息。如本文中所使用的,“根节点”是指稀疏树的最顶部节点。如以下将更详细描述的,确定性稀疏树仅包括一个根节点,并且确定性稀疏树的根节点包括反映针对确定性稀疏树中所有节点的总责任的所承诺责任。如本文中所使用的,“内部节点”是指稀疏树中位于叶节点和根节点之间的节点。如本文中所使用的,“填充节点”是指不反映用户或账户的节点。例如,填充节点可以包括表示所承诺结余为零的模拟用户的节点。如将在下文更详细描述的,密码学责任证明系统可以利用稀疏树中的填充节点来模糊稀疏树中包括的真实用户的总数。
如本文中所使用的,“所承诺责任”是指与用户相关联的量(例如,币的数目、货币结余、反对票)。例如,所承诺责任可以包括被同态承诺(诸如佩德森承诺)确定性地模糊的量。在一个或多个实施例中,这样的同态承诺是有约束力的,同时没有揭露关于所承诺值(例如,用户的责任)的任何信息。
如本文中所使用的,“总责任”是指责任的总和(例如,由确定性稀疏树表示的总责任,诸如区块链交换所中的币总数、反对票的总数等)。例如,密码学责任证明系统递归地生成稀疏树,以使得根节点的结余反映了针对稀疏树中所有节点的总责任。
如本文中所使用的,“认证路径”是指确定性稀疏树中从特定叶节点到根节点的节点列表。在一个或多个实施例中,从用户的叶节点到确定性稀疏树的根节点的认证路径有助于证明用户的个人责任被反映在针对整个稀疏树的总责任中。
如本文中所使用的,“确定性函数”指的是当被应用于相同输入时返回相同结果的函数。换句话说,确定性函数不是随机的或偶然的。如本文中所使用的,“可验证随机函数”是指提供其输出正确性的公开可验证证明的伪随机函数。如本文中所使用的,“密钥导出函数”是指使用伪随机函数从诸如主密钥或密码之类的秘密值导出一个或多个秘密密钥的密码哈希函数。
如本文中所使用的,“零知识范围证明”是指允许证明者向验证方证明给定值位于特定范围内的密码学方法。例如,如本文中所使用的,零知识范围证明会证明节点的结余是给定范围内的小正数。
如本文中所使用的,“不可变数据库”是指包括一旦添加就不能修改的条目的数据集合。如上面所提及,区块链是不可变数据库的流行示例。
现在将参考附图提供关于密码学责任证明系统的附加细节。例如,图1图示了分布式数字分类账业务网络100的示意图,其中可以实现分类账责任系统106。如图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≥N-f)可以被称为法定人数(quorum)。在一些实施例中,分类账责任系统106可以进一步操作在“BFT假设”下,该“BFT假设”指示对于同一时期(epoch)中的每两个法定人数的节点,存在属于这两个法定人数的诚实节点。
在确定已经接收到证实执行结果的阈值数目的投票时,主验证方节点设备可以确定完成业务区块并将证实传输到其他验证方节点设备。如上面所提及,通过利用拜占庭式故障模型,分类账责任系统106可以容纳任意无约束地偏离协议的验证方。此外,分类账责任系统106可以利用拜占庭容错共识方法来减轻由恶意或被黑客入侵的验证方所引起的故障。具体而言,在一个或多个实施例中,分类账责任系统106利用2f+1个选票作为阈值数目的投数,其中f指代可以由共识协议容纳的拜占庭投票者(例如,恶意的、欺诈的或不可信的验证方)的数目。例如,在一些实施例中,f反映了在防止攻击或其他不安全行为(例如,双倍花费或分叉)时可以容纳的拜占庭投票者的数目。在一些实施例中,2f+1个选票对应于恰好超过参与共识的验证方节点设备的三分之二。
一旦业务区块最终完成,验证方节点设备就可以将业务结果提交到存储装置。实际上,在一个或多个实施例中,每个验证方节点设备生成用于存储与数字分类账相关的数据的数据结构(例如,业务数据结构、状态数据结构和事件数据结构)。当执行结果达成共识时,验证方节点设备可以基于执行结果来更新这些数据结构。特别地,每个验证方节点设备可以生成和维护数据结构的独立副本,然后基于执行结果更新被存储在该验证方节点设备处的数据结构。
为了提供附加示例,在一个或多个实施例中,全节点设备可以接收对信息的查询。作为响应,全节点设备可以在被存储在全节点设备处的数据结构内定位相关数据,并将数据传输到请求客户端设备。实际上,在一个或多个实施例中,每个全节点设备可以生成和维护数据结构的独立副本。全节点设备可以与验证方节点设备108a-108b通信以标识执行业务的结果并相应地更新被存储在全节点设备处的数据结构。在一个或多个实施例中,响应于接收到对信息的查询,全节点设备可以进一步提交证明(例如,默克尔证明)以证明所提供数据的准确性。特别地,全节点设备可以实现下文描述的密码学责任证明系统102以提供基于确定性稀疏树的密码学责任证明。
在一个或多个实施例中,客户端设备112a-112n包括允许设备的用户(例如,用户116a-116n)提交业务请求和对信息的查询的计算机设备。例如,客户端设备112a-112n可以包括智能手机、平板电脑、台式计算机、膝上型计算机或其他电子设备(其示例在下面结合图11进行描述)。客户端设备112a-112n可以包括允许用户116a-116n提交业务请求和对信息的查询的一个或多个应用(例如,客户端应用110)。例如,客户端应用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)。索引i,j是与树中的特定位置相关的数字标签。默克尔树的每个节点的构造可以由以下(简化)等式来掌控:
其中k=(i+j-1)=2并且H是密码学哈希函数。
i=j的情况对应于叶节点,它是数据Di的对应第i个分组的哈希。i≠j的情况对应于一个内部或父节点,它是通过对子节点进行递归哈希和连接来生成的,直到找到一个父节点(默克尔根节点)。树深度M被定义为树中的最低层级的节点,并且节点的深度m是该节点所在的层级。
密码学责任证明系统102可以利用默克尔树来验证某个数据分组Di是N个数据分组δ的列表或集合的成员(称为集合成员)D1,...,DN。用于验证的机制被称为默克尔证明,并且包括获得哈希集合,被称为针对给定数据分组Di和默克尔根R的认证路径(authentication path)。针对数据分组的认证路径是通过重复的哈希和连接来重构根R所需的最小哈希列表。
更具体地,在一个或多个实施例中,密码学责任证明系统102可以利用求和默克尔树,其是修改的默克尔树。例如,求和默克尔树的特征是每个叶都由(v,h)组成,其中v是数值(即结余),h是二进制大型物件(blob)(例如,通常是抗冲突哈希函数H下的哈希结果的结果)。常规默克尔树和求和默克尔树之间的主要区别在于,在求和树中,每个内部节点都包含数值,该数值等于其子代量的总和。因此,所有的叶结余都以自下而上的顺序被填充,以使得根节点的最终结余是所有叶节点数值的总和。如此,如果根节点处的总和等于树中所有叶的量的总和并且内部节点与其子代节点之间的累积关系成立,则求和默克尔树可以包括总和正确性方案的安全证明。假设哈希函数具有抗冲突性,两条被成功验证的路径的每个交叉节点都保持与已确认的求和默克尔树上的节点相同。对于分散式审计责任证明方案,其中客户端独立地验证他们的结余是否被包括在所报告的总量中,如果在没有验证失败的情况下所要求的责任不低于数据集中的量的总和,则该方案是安全的。在至少一个实施例中并且基于麦克斯韦协议的安全修改,密码学责任证明系统102包括未求和的两个子代结余,而不仅仅是它们的总和(即,h=H(v1||v2||h1||h2)),以使对应的父内部节点达成求和正确性。这种方法是安全的,而h=H(v1+v2||h1||h2)是不安全的。
为了保护用户结余,密码学责任证明系统102可以利用承诺方案。例如,在一个或多个实施例中,密码学责任证明系统102可以利用佩德森承诺。在这样的实施例中,密码学责任证明系统102让G是具有s=|G|元素的循环群组,并且让g和h是G的两个随机生成器。然后密码学责任证明系统102将承诺设置为整数v 0,1,...,s-1如下:选取承诺随机性r,并返回承诺c:=COM(v,r)=gvhr。
密码学责任证明系统102可以利用承诺,因为承诺c没有揭露关于所承诺值v的任何信息。以类似的方式,承诺在计算上也具有约束力:如果对手可以以两种不同的方式开放承诺c(对于相同的r,两个不同的值v和vl),那么相同的对手可以被用来计算logh(g),并且因此打破G中的离散对数问题。
在一个或多个实施例中,密码学责任证明系统102可以利用加法同态的承诺。如果c1和c2是对值v1和v2的两个承诺,分别使用承诺随机性r1和r2,则c:=c1 x c2是使用随机性r1+r2对v1+v2的承诺,因为c=(gv1 hr1)(gv2 hr2)=gv1+v2 hr1+r2。
在一个或多个实现方式中,密码学责任证明系统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还可以利用零知识范围证明(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(audit id)和固有的默克尔树。
密码学责任证明系统102可以利用VRF,该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证明π)看起来与随机的无法区分。
可公开访问的数据库是用于检索最新信息的必需的资源。但是可公开访问的数据库也对用户的隐私构成重大风险,因为好奇的数据库操作员可以跟踪用户的查询并推断出用户想要什么。事实上,在用户的意图要被保密的情况下,用户常常对访问数据库持谨慎态度。
在循环审计中,完整分布式责任证明解决方案应满足的一个重要属性是在不了解已请求哪个证明的情况下向客户提供包括证明。这是所期望的,因为被审计实体可以提取有关从不或很少检查其证明的用户的信息,并且因此从即将到来的审计证明中省略其结余的风险在统计上较低。
私有信息检索(PIR)是允许客户端检索数据库的元素而该数据库的所有者不能够确定选择了哪个元素的协议。虽然这个问题容许简单的解决方案——将整个数据库发送给客户端允许客户端完全私下地进行查询——但是存在可以降低这个问题的通信复杂性的技术,这对于大型数据库来说可能是至关重要的。
此外,强私有信息检索(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)而从用户的账户数据生成叶数据。用户的审计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=2m,以及树的高度H(树中的叶数目可以为最多2H),密码学责任证明系统102可以如下估计要添加到树的零节点数目的界限:(1)在一个实施例中,所有用户节点占据树的最左边的叶,因此填补高度为m的最左边最低的子树,然后需要沿着从该子树的根到根的路径添加零节点,最多将添加它们中的(H-m)个;(2)在另一实施例中,所有用户被均匀地分散在树的叶中,因此高度为(H-m)的最低子树各自将只有一个节点,并且将需要添加零节点中的(H m)个以产生子树的根,然后要被添加的零节点的数目最多为(H-m)*2m;(3)因此,要“人为”添加的节点的数目至少是(H-m)且最多为(H-m)*2m。在至少一个实施例中,密码学责任证明系统102避免用零节点填充整个树,以使树完整,因为零节点的数目必须是2H-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=216和L=232,则冲突概率大约为50%,并且因此节点可能不会以预期的索引结束。
然而,节点不在预期索引中的事实暴露了关于群体大小的信息;在这种特定情况下,索引已被移动的用户了解到树中存在至少另一用户。密码学责任证明系统102可以利用启发式方法来通过在接近预期索引的范围内随机选取索引以规避该问题,该方法在S<<L时运行得很好。在替代实施例中,密码学责任证明系统102可以使用基于ZKP的集合成员资格证明来隐藏任何排序或位置证据。
叶节点可以表示已经经由VRF被确定性地生成的用户数据或填充(责任结余为零的假用户)。例如,图6示出了高度为2的确定性稀疏树600,其中两个用户叶节点602a、602b在叶层级处,并且一个填充节点604(以替换空叶)和一个内部节点606在高度=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和元数据信息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)所表示的总责任。
当前现实世界的金融应用通常规定高达264或2128的范围,这远远小于传统密码学中使用的典型曲线阶数。但是如已经提及的,密码学责任证明系统102适用于广泛范围的应用,甚至在金融之外,其中范围可大于金融应用中可接受的那些范围。
因此,为了安全地省略所计算节点的范围证明,密码学责任证明系统102可以将每个承诺的允许范围配置为小于l/H,其中l是群组阶数并且H是树高度。因此,即使每个结余都非常接近l/H,但是当密码学责任证明系统102将它们全部添加到认证路径中时,中间值或最终值都不会超过群组阶数l。
传统责任证明系统存在固有的缺陷,根据该缺陷,引起争议的用户没有密码学证据来支持他/她的权利。这是因为账户结余(或反对票)只是证明者的账簿或数据库中的数字,而证明者总是可以声称客户在他/她的账户中从未拥有该结余。这个问题非常类似于被描述为“有一天你去银行并且你发现你的账户结余为零,你能向法院提供什么证据?”的问题。同样,“银行如何证明它已获得了你对你的所有业务的同意?”
为了进一步说明,一种场景包括想要在加密货币交换所中进行业务的爱丽丝。爱丽丝经由TLS连接到交换所并使用她的密码认证她自己。爱丽丝和交换所都知道他们正在与谁通信。然而,这并不一定意味着爱丽丝和交换所都可以完全信任对方。爱丽丝需要证实业务确实发生了,并且交换所未经她的许可不能采取行动。另一方面,交换所希望有证据证明它确实接收到了来自爱丽丝的业务订单。
不幸的是,爱丽丝不能容易地证明她实际上已经发送了业务订单。同样,即使爱丽丝可以证明业务订单,交换所仍然可以声称该业务从未被处理。更糟糕的是,交换所的恶意员工可以在未经爱丽丝同意的情况下容易地生成和存储业务。
这种场景是有问题的,因为通常业务订单只是传统数据库中的记录——因此,主要的防御措施通常是数据复制和日志记录。可悲的是,上述对策都不能防止欺诈或用作不可否认的证明。原始未签名存储装置的另一副作用是用户感觉实际上无法控制自己的资金;资产仅仅是交换所的数据库中的数字。
这些和其他问题对于区块链交换所来说尤其成问题。例如,用户利用交换所来保管资金的主要动机是避免需要记住长期的密码学秘密。因此,交换所必须能够执行用户订单并改变其结余,而无需来自用户的密码学认证(例如密码认证)。不喜欢交换所的用户也可能虚假地声称其账户验证失败,并且无法判断是否不存在业务证明。
密码学责任证明系统102提供了一种潜在的解决方案;即,每个业务都利用签名或相互合同签名。然而,在密码学责任证明系统102的一些应用(即,不赞成投票)中,仅从证明者接收经签名票据/电子邮件将是足够的。
如上面所提及,在需要连续和后续审计的环境中,密码学责任证明系统102可以确保证明者不能跟踪谁请求或下载了他/她的包括证明。例如,此类信息可能会暴露有关谁定期检查证明以及谁很少或从不检查证明的数据。恶意证明者可能会从低检查概率的用户省略添加结余。但是,如果证明者不知道是谁请求并执行了包括认证路径的线索,则他/她只能进行推测,并且被抓获的风险要高得多。
已经建议,理想地,用户应该使用经验证和审计的第三方或本地安装的工具来验证证明。例如,密码学责任证明系统102使得用户能够私密地下载与他们个体叶节点相关联的叶索引和审计id(或相关的VRF输出)。例如,如图3中所示的audit_id 304b所示,密码学责任证明系统102还可以在注册时提供唯一审计ID。
特别地,密码学责任证明系统102可以经由KDF来使用该审计id,以便能够导出承诺的盲因子。密码学责任证明系统102然后可以使用PIR(私有信息检索)、ORAM(不经意RAM)和网络混合服务经由第三方服务来广播或提供证明。第二种方法可以允许更轻的客户端,并且加密保护了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=(audpk,audsk)标示的私有和公共材料。为简单起见,密码学责任证明系统102令ACCS中的每个账户是元组(uid,bal),其中uid是与账户相关联的唯一用户标识符,而bal是责任证明中使用的账户的当前结余。
(πaud)←auditorProve(aud)。auditorProve算法将由auditSetup输出的审计材料aud和由审计员验证的责任证明Πaud作为输入。该证明旨在表明所声称的总数(total)与设置的公共分量audpk一致。
{0,1}←auditorVerify(TL,audpk,πaud)。auditorVerify算法将所申报的总责任TL、公共审计材料audpk和证明Πaud作为输入。如果验证通过,则auditorVerify算法输出1,否则输出0。πuid←UserProve(uid,aud)。UserProve算法将特定用户的唯一用户标识符uid和审计材料作为输入,并输出用户特定的证明πuid。{0,1}←UserVerify(uid,audpk,πuid,bal)。UserVerify算法将用户标识符uid及其结余bal、公共审计材料audpk和证明πuid作为输入,如果证明验证通过,则输出1,否则输出0。
为安全起见,假设auditorVerify输出1和UserVerify输出1,则密码学责任证明系统102可以限制如下概率:在针对ACCS中的总结余的统一选择分数c而AuditorVerify输出1并且UserVerify输出1的情况下,恶意证明者可以使用函数δ(c,t)从总责任中消除多于t个用户结余。更正式地:
其中liab(A)标示集合A中的结余的总责任,并且概率超过选择U及各种算法的抛硬币的随机性。
密码学责任证明系统102还可以分别考虑针对不诚实用户和不诚实审计员的隐私保证。
不与任何用户串通的审计员只能看到审计材料的公开部分audpk、总责任以及由证明者提供的证明,即Πaud。密码学责任证明系统102在PoL方案的实际执行中将此称为审计员的视图,并用Viewauditor(ACCS)来标示它。然后,密码学责任证明系统102可以要求该视图可以由PPT模拟器(例如,概率多项式时间模拟器)模拟,该模拟器看不到ACCS中的信息并且只能访问取决于特定方案的泄漏函数L(ACCS)。此类泄漏函数的示例是|ACCS|和liab(ACCS)。更正式地:责任证明方案PoL针对不诚实审计员是L-私密的,如果对于每个PPT审计员A,存在PPT模拟器SIMA,以使得以下分布在计算上是不可区分的,
可以相互串通的用户子集U={u1,...,un}可以看到公共审计材料audpk,那些用户的结余,即形式的元组以及由证明者生成的证明集合,即{πu1,...,πun}。这可以被称为在PoL方案的实际执行中的对手的视图,并用ViewAU(ACCS)来标示它,其中AU标示控制U中用户的对手。密码学责任证明系统102然后要求该视图可以由PPT模拟来模拟,该PPT模拟仅看到U中的用户的结余以及取决于特定方案的泄漏函数L(ACCS)。更正式地:
责任证明方案PoL针对不诚实用户是L-私密的,如果对于用户U={u1,…,un}的每个子集以及破坏U中的用户的每个PPT对手AU,存在PPT模拟器SIMA,以使得以下分布在计算上是不可区分的,
其中ACCS[U]是(uid,baluid)的集合,其中所有uid∈U。
集中式麦克斯韦+设置:
AuditSetup(ACCS)
集中式麦克斯韦+证明和验证算法:
AuditorProve(aud)
UserProve(uid,aud)
UserVerify(uid,audpk,πuid,bal)
分布式麦克斯韦+设置:
AuditSetup(ACCS)
分布式麦克斯韦+证明和验证算法:
UserProve(uid,aud)
UserVerify(uid,audpk,πuid,bal)
树提供设置:
AuditSetup(ACCS)
树提供证明和验证算法:
UserProve(uid,aud)
UserVerify(uid,audpk,πuid,bal)
此处为基本API列表,我们需要佩德森承诺及随附范围证明:
证明。类似于定理7的证明,总体证明的主要分量为以下引理。引理10。令N为结余的总量,并且k为运行UserVerify并且输出1的统一采样用户的数目。恶意证明者可能会破坏t个用户的结余而不被抓获的概率由限定。
我们开始于将问题简化为仅考虑通过将用户结余设置为零来作弊但诚实地执行所有其他证明者步骤的恶意证明者。特别地,引理11示出:对于表现为任意恶意的任何证明者,存在除了在叶中将用户结余的子集设置为零(或从树省略这些结余)以外而诚实地执行所有证明者步骤的替代策略,其具有相同的获胜优点并且具有相等或较低的声明责任。
如早先在定理7的证明中所论证的,对于此讨论的其余部分,我们假设:给定承诺方案的约束属性以及哈希函数H的抗冲突性,我们假设除了可忽略概率以外,用户和审计员两者将从证明者接收到相同的视图。
引理11。对于每个PPT证明者A,存在具有相等的被抓获概率以及相等或较少所声明责任的PPT证明者B,其仅通过将用户结余设置为零或从树省略这些用户结余而破坏用户结余。证明。首先观察到,除了将结余设置为零以外,由对手A执行的两个主要恶意行为是:(i)在计算求和默克尔树时使用负结余或部分总和,或(ii)针对内部节点使用部分总和,其不是它的两个子代的正确总和。对于证明者,我们忽略不影响或仅增加总责任的所有其他恶意行为,因为这些行为仅伤害作弊证明者。
考虑证明者A,其创建具有负结余、负部分总和或不正确部分总和的求和树。如果指派给节点的值为负或者它的值不是其两个子代的值的总和(仅针对非叶节点),则我们称该节点被破坏。对于任何被破坏节点a,考虑未被破坏的被称作b的最低上代节点(最远离根)。根据定义,b的两个子代中的至少一个被破坏。这暗示如果b的下代中的任一个在执行用户验证的k个用户之中,则他们将检测作弊并报告之。
用零结余替换为b的下代的所有叶的结余并且确保所有非叶节点未被破坏的替代策略(由B采用)具有相同的被抓获概率。此外,应注意,在前者中,总责任至多减少l个结余,其中l是b下方的叶的数目,因为根据定义,b的值为正。在前者中,我们明确地令b下方的所有叶的结余为零并且因此获得总声明责任的相等或较高减少。
反复地,针对所有剩余的被破坏节点重复此过程,直到没有节点剩余,产生我们对对手证明者B的最终描述,该对手证明者B具有与A相同的获胜优点以及相等或较低的总责任。
虽然在本文中主要参考证明加密货币交换所的偿付能力来描述密码学责任证明系统,但是其他实施例也是可能的。例如,密码学责任证明系统可以证明与其他应用相关的偿付能力,下面将描述其中的几个。无论用例或应用如何,密码学责任证明系统都以如下方式提供总责任或义务或“反对”投票的证明:其值/结余应被包括在汇总责任中的每个用户都可以在证明中透明地验证他/她的包括,而无需了解有关其他用户的结余的任何信息。
偿付能力的证明——密码学责任证明系统可以生成偿付能力的证明。例如,偿付能力的证明是用于验证托管服务不作为部分储备运行的公开证明,例如,客户资产中是一些在任何给定时刻都无法被提取。偿付能力的证明涉及检查是否责任<=储备。附加地,偿付能力的证明由两部分组成:1)责任证明,2)储备的证明。例如,密码学责任证明系统可以提供与任何区块链交换所和/或托管钱包相关的偿付能力证明,以透明地向审计师和用户证明偿付能力。
不赞成投票——术语反对投票有时用于允许投票者拒绝整个领域的候选者;这也可能意味着向投票者提供的唯一选项是投票反对一个或多个候选者,但是有时它被用于允许投票者选择是否投票支持或反对候选者的系统。例如,在至少一个实施例中,反对(或不赞成)投票是对候选者、提议或服务的投票(例如,对酒店或餐馆的负面反馈)并且被计为减一或计为权重。与大多数选举制度不同,不赞成投票要求只呈现反对措施或选择。例如,不赞成投票方案通常包括证明者没有动机增加这些投票的数量。
本文描述的密码学责任证明系统可以证明与不赞成投票方案相关的责任,其中每个候选者都接收到反对票并将它们存储在本地分类账中。这种不赞成投票方案包括没有中央机构或网络服务来接收投票、审计和监督投票过程。例如,密码学责任证明系统可以生成责任证明,以使得投票者可以在所报告的投票结果中检查他/她的包括——从而防止恶意实体通过不将任何实际投票包括在所报告的投票总数中来试图作弊。
在一些实施例中,密码学责任证明系统利用同态承诺来确保所报告的总量保持隐藏,并且仅被用于与另一同态承诺进行比较(即,在不了解候选者实际投票百分比差异的情况下对候选者进行分类)。例如,在选举系统中竞争各方比较同态承诺,模糊投票总数,而不揭露实际的反对票的数目(即,通过使用多方计算来产生投票的数目中的差异的范围证明)。
不喜欢行为和令人反感的内容——社交平台中的不喜欢行为可以被认为是不赞成投票的实例。例如,反对投票方案中的每个社交平台用户可以接收到对特定帖子的反对票,并且有义务发布关于接收到的不喜欢行为的总数目的报告。密码学责任证明系统可以提供与不喜欢行为的总数目相关联的责任证明,以使得用户不能从所发布的报告中省略部分或全部反对票。在这个实施例中,社交平台不需要运行不喜欢行为跟踪服务,因为本文所描述的密码学责任证明系统是完全去中心化的。
密码学责任证明系统可以将这种不赞成投票方案应用于任何类型的令人反感的内容(包括假新闻和仇恨言论)的透明报告。与本文所描述的任何应用一样,密码学责任证明系统可以使得任何投票者能够检查他们的投票是否已被包括在所报告的总数中。在至少一个实施例中,社交平台可以将不赞成票的总数目达到阈值的任何帖子视为令人反感的而自动丢弃。
筹款和ICO——出于税务审计目的,企业必须定期报告收益。本文所描述的密码学责任证明系统可以使得与商业公司相关联的每个公民/购买者能够自动地为验证该商业公司的纳税责任证明做出贡献。利用密码学责任证明系统,国税系统不需要跟踪个人收据来交叉检查账户报告的正确性。
银团贷款——银团贷款由共同运作以向大额借方提供信贷的一组贷方提供。借方可以是公司、或个人项目。银团中的每个贷方都贡献部分贷款量,并且所有贷方均承担贷款风险。其中一位贷方充当管理者(安排银行),其代表银团中的其他贷方管理贷款。
在一个或多个实施例中,由于额外的隐私要求,贷方不必知道其他贷方的供款。同时,如果牵头银行报告假的总供款,则其可能会承担责任。因此,在这个实施例中,本文所描述的密码学责任证明系统在密码学责任证明系统中提供了高效且准确的密码学工具,其生成保护用户隐私的责任证明。
彩票奖金——彩票在大多数地方受到严格控制、受到限制或者至少受到监管。尽管如此,仍有关于操纵中奖和大规模欺诈丑闻的报道——这使得很难表明真正彩票的公平性。一些彩票系统利用区块链技术和智能合约,以使得玩家可以真正知晓和信任概率和收益分配。本文所描述的密码学责任证明系统可以为传统彩票系统添加额外的安全性,这是因为奖池实际上是一种责任,并且组织者没有任何动机来增加它。例如,本文所描述的密码学责任证明系统可以透明地隐藏个人供款和/或仅向获胜者揭露总奖金量。
信用评分和金融义务——信用评分是一个数字,它表示对一个人的信用度的评估,或者这个人将偿还他或她的义务的可能性。信用评分传统上是根据个人信用报告的统计分析生成的。除了其最初的目的,信用评分还被用来确定保险费率和就业前筛选。
通常,这些服务是集中式的,并且信用局维护个人借贷和还款活动的记录。本文所描述的密码学责任证明系统可以支持制定金融义务的新分布式信用系统,其中用户在不需要第三方跟踪方的情况下维持他们的信用评分。这种分布式信用系统将比传统的信用评分系统具有更小的侵入性并且更私密。
推荐方案——推荐网站是被用来将访问者推荐到另一站点的互联网地址或主机名。例如,访问者可以点击推荐网站上的超链接,其然后将用户引导至被推荐网站。推荐行业通常通过介绍费用来赚钱;被推荐网站应该对推荐方进行支付。但是在许多情况下,费用与被推荐用户的活动相联,例如注册或存入资金。传统上,推荐网站管理员必须盲目地信任来自被推荐网站的报告以接收公平的支付费用。类似的场景是房地产业务中的推荐费用,其中一个代理或经纪人向另一代理或经纪人收取客户推荐的费用。
本文所描述的密码学责任证明系统可以在推荐业务中提供额外的透明层。例如,密码学责任证明系统为推荐生成用户提供了自动的方式来检查他们的个人包括证明,并捕捉报告假或不准确数目的报告实体。
关于病毒爆发的透明报告——在流行病和大流行期间,受影响的国家和卫生组织报告由病毒或细菌引起的感染和死亡的官方数字。对于每个业务部门的各种疾病甚至职业事故,这同样适用于微观层级(即,城市、医院)。历史已表明,受影响的国家或组织有时可能有动机歪曲或误报这些数字,主要是因为疫情和坏消息可能造成的经济影响和社会问题。
一个示例是最近的2019-2020冠状病毒大流行(COVID-19),其由严重的急性呼吸综合征冠状病毒2(SARS-CoV-2)引起。除了对世界各个经济体的负面影响外,错误信息也不允许从死亡率轨迹中得出结论性的见解,其最终导致为抵御大流行的卫生设施和其他卫生进程的准备出现延误。本文所描述的密码学责任证明系统提供了额外层级的分散式透明度,同时保护了患者数据隐私。例如,被证明感染了病毒的每个人都可以接收到来自地方授权机构或医院的经签名回复。然后,每天,密码学责任证明系统可以发布如本文所述的确定性稀疏树,其中每个叶节点对应于一个人(或者如果家庭中的多个成员感染了病毒,则对应于一个群组)。然后,具有经签名回复的每个感染者都可以检查他们包括在稀疏树中。同样,密码学责任证明系统可以使得卫生组织能够在不公开实际量的情况下交叉比较他们的数目。
如在图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、固态驱动器(“SSD”)(例如,基于RAM)、闪存、相变存储器(“PCM”)、其他类型的存储器、其他光盘存储装置、磁盘存储装置或其他磁存储装置、或者可以被用来存储计算机可执行指令或数据结构形式的期望的程序代码部件并可通过通用或专用计算机访问的任何其他介质。
“网络”被定义为使得能够在计算机系统和/或模块和/或其他电子设备之间传送电子数据的一个或多个数据链路。当信息通过网络或其他通信连接(有线、无线或者有线或无线的组合)而被传送或提供给计算机时,计算机将连接正确地视为传输介质。传输介质可以包括网络和/或数据链路,其可以被用来以计算机可执行指令或数据结构的形式携带期望的程序代码部件并且可由通用或专用计算机访问。上述的组合也应被包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件时,计算机可执行指令或数据结构形式的程序代码部件可以从传输介质自动传送到非暂态计算机可读存储装置介质(设备)(反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可以被缓存在网络接口模块(例如“NIC”)内的RAM中,然后最终被传送到计算机系统RAM和/或计算机系统中的较不易失性计算机存储装置介质(设备)。因此,应当理解,非暂态计算机可读存储装置介质(设备)可以被包括在也(或甚至主要)利用传输介质的计算机系统组件中。
计算机可执行指令例如包括指令和数据,该指令和数据在由处理器执行时使通用计算机、专用计算机或专用处理设备执行特定功能或功能群组。在一些实施例中,计算机可执行指令在通用计算机上执行以将通用计算机变成实现本公开的元件的专用计算机。计算机可执行指令可以是例如二进制、中间格式指令(诸如汇编语言)或甚至源代码。尽管已经以特定于结构特征和/或方法行为的语言描述了主题,但是应当理解,在所附权利要求中定义的主题不一定限于上述描述的特征或行为。相反,所描述的特征和动作作为实现权利要求的示例形式而被公开。
本领域技术人员将领会,本公开可以被实践在具有多种类型的计算机系统配置的网络计算环境中,包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持设备、多处理器系统、基于微处理器或可编程的消费电子产品、网络PC、小型计算机、大型计算机、移动电话、PDA、平板电脑、寻呼机、路由器、交换机等。本公开还可以被实践在分布式系统环境中,其中通过网络(通过硬连线数据链路、无线数据链路或通过硬连线和无线数据链路的组合)来链接的本地和远程计算机系统都执行任务。在分布式系统环境中,程序模块可以位于本地和远程存储器存储装置设备中。
本公开的实施例也可以被实现在云计算环境中。在本描述中,“云计算”被定义为一种用于实现对可配置计算资源的共享池的按需网络访问的模型。例如,可以在市场中采用云计算来提供对可配置计算资源的共享池的无处不在且方便的按需访问。可配置计算资源的共享池可以经由虚拟化来快速布署,并以较低的管理工作量或服务提供商交互来释放,然后相应地进行扩展。
云计算模型可以由各种特性组成,诸如例如按需自助服务、广泛的网络访问、资源池、快速弹性、测量到的服务等。云计算模型还可以暴露各种服务模型,诸如例如软件即服务(“SaaS”)、平台即服务(“PaaS”)和基础设施即服务(“IaaS”)。云计算模型也可以使用不同的部署模型来进行部署,诸如私有云、社区云、公共云、混合云等。在本说明书和权利要求书中,“云计算环境”是采用云计算的环境。
图11图示了示例计算设备1100的框图,该示例计算设备1100可以被配置为执行上述过程中的一个或多个。人们将领会,诸如计算设备1100之类的一个或多个计算设备可以表示上述计算设备(例如,客户端设备112a-112n和计算机节点114)。在一个或多个实施例中,计算设备1100可以是移动设备(例如,移动电话、智能手机、PDA、平板电脑、膝上型电脑、相机、跟踪器、手表、可穿戴设备等)。在一些实施例中,计算设备1100可以是非移动设备(例如,台式计算机或另一类型的客户端设备)。此外,计算设备1100可以是包括基于云的处理和存储装置能力的服务器设备。
如图11中所示,计算设备1100可以包括一个或多个处理器1102、存储器1104、存储装置设备1106、输入/输出接口1108(或“I/O接口1108”)和通信接口1110,它们可以通过通信基础设施(例如总线1112)来通信耦合。虽然计算设备1100在图11中示出,但是图11中所图示的组件不旨在进行限制。在其他实施例中可以使用附加的或替代的组件。此外,在某些实施例中,计算设备1100包括比图11中所示的组件更少的组件。现在将更加详细地描述图11中所示的计算设备1100的组件。
在特定实施例中,处理器1102包括用于执行指令的硬件,诸如构成计算机程序的那些。作为示例而非限制,为了执行指令,(多个)处理器1102可以从内部寄存器、内部高速缓存、存储器1104或存储装置设备1106检索(或获取)指令并解码和执行它们。
计算设备1100包括存储器1104,其耦合到处理器1102。存储器1104可以被用于存储数据、元数据和程序以供(多个)处理器执行。存储器1104可以包括易失性和非易失性存储器中的一个或多个,诸如随机存取存储器(“RAM”)、只读存储器(“ROM”)、固态盘(“SSD”)、闪存、相变存储器(“PCM”)或其他类型的数据存储装置。存储器1104可以是内部存储器或分布式存储器。
计算设备1100包括存储装置1106,该存储装置1106包括用于存储数据或指令的存储装置。作为示例而非限制,存储装置1106可以包括上述的非暂态存储装置介质。存储装置1106可以包括硬盘驱动器(HDD)、闪存、通用串行总线(USB)驱动器或这些或其他存储装置设备的组合。
如图所示,计算设备1100包括一个或多个I/O接口1108,其被提供以允许用户向计算机设备1100提供输入(诸如用户笔划)、接收来自计算机设备1100的输出、以及以其他方式将数据传送到计算机设备1100和从计算机设备1100传送数据。这些I/O接口1108可以包括鼠标、小键盘或键盘、触摸屏、相机、光学扫描仪、网络接口、调制解调器、其他已知的I/O设备或这些I/O接口1108的组合。触摸屏可以用手写笔或手指激活。
I/O接口1108可以包括用于向用户呈现输出的一个或多个设备,包括但不限于图形引擎、显示器(例如,显示屏)、一个或多个输出驱动器(例如,显示驱动器)、一个或多个音频扬声器、以及一个或多个音频驱动器。在某些实施例中,I/O接口1108被配置为向显示器提供图形数据以呈现给用户。图形数据可以表示一个或多个图形用户界面和/或可以服务于特定实现的任何其他图形内容。
计算设备1100还可以包括通信接口1110。通信接口1110可以包括硬件、软件或两者。通信接口1110为计算设备与一个或多个其他计算设备或一个或多个网络之间的通信(诸如例如,基于分组的通信)提供一个或多个接口。作为示例而非限制,通信接口1110可以包括用于与以太网或其他基于有线的网络进行通信的网络接口控制器(NIC)或网络适配器,或者用于与诸如WI-FI之类的无线网络进行通信的无线NIC(WNIC)或无线适配器。计算设备1100还可以包括总线1112。总线1112可以包括将计算设备1100的组件彼此连接的硬件、软件或两者。
在前述说明书中,已经参考本发明的特定示例实施例描述了本发明。参考本文讨论的细节描述了(多个)本发明的各种实施例和方面,并且附图图示了各种实施例。上面的描述和附图是对本发明的说明,并且不应被解释为限制本发明。描述了许多特定细节以提供对本发明的各种实施例的透彻理解。
在不背离其精神或基本特征的情况下,本发明可以以其他特定形式来实现。所描述的实施例在所有方面都被认为仅是说明性的而不是限制性的。例如,本文描述的方法可以用更少或更多的步骤/动作来执行,或者步骤/动作可以以不同的顺序来执行。此外,本文所描述的步骤/动作可以彼此并行地重复或执行,或者与相同或相似步骤/动作的不同实例并行地执行。因此,本发明的范围由所附权利要求而不是由前述描述来指示。在权利要求的等效性的含义和范围内的所有变化都应被涵盖在其范围内。
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所述的非暂态计算机可读介质,其中将所述确定性函数应用于所述所承诺责任和所述用户标识符包括:
将可验证随机函数应用于与所述用户相关联的所述所承诺责任和所述用户标识符;以及
将一个或多个密钥导出函数应用于所述可验证随机函数的输出以生成审计标识符和盲因子,其中:
所述审计标识符是唯一且确定性生成的值;以及
所述盲因子是混淆所述所承诺责任的确定性生成的承诺。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063002298P | 2020-03-30 | 2020-03-30 | |
US63/002,298 | 2020-03-30 | ||
US17/206,423 | 2021-03-19 | ||
US17/206,423 US20210336789A1 (en) | 2020-03-30 | 2021-03-19 | Deterministic sparse-tree based cryptographic proof of liabilities |
PCT/US2021/024415 WO2021202289A1 (en) | 2020-03-30 | 2021-03-26 | Deterministic sparse-tree based cryptographic proof of liabilities |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115152178A true CN115152178A (zh) | 2022-10-04 |
Family
ID=75540070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180015482.6A Pending CN115152178A (zh) | 2020-03-30 | 2021-03-26 | 基于确定性稀疏树的密码学责任证明 |
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 (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116629175B (zh) * | 2023-07-26 | 2023-12-15 | 深圳中安辰鸿技术有限公司 | 对npu中的译码单元进行验证的方法及相关装置、设备 |
Family Cites Families (24)
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 |
CA2404161C (en) * | 2000-03-24 | 2006-05-23 | Votehere, Inc. | Verifiable, secret shuffles of encrypted data, such as elgamal encrypteddata for secure multi-authority elections |
WO2005093671A2 (en) * | 2004-03-25 | 2005-10-06 | 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 |
WO2010024931A1 (en) * | 2008-08-29 | 2010-03-04 | 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 |
WO2015156786A1 (en) * | 2014-04-08 | 2015-10-15 | Hewlett-Packard Development Company, L.P. | 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 |
US11645658B2 (en) * | 2017-06-30 | 2023-05-09 | 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 |
WO2019111056A1 (en) * | 2017-12-06 | 2019-06-13 | Vchain Technology 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 |
GB201809887D0 (en) * | 2018-06-15 | 2018-08-01 | Iothic Ltd | Decentralised authentication |
CN109242675B (zh) * | 2018-07-27 | 2021-09-24 | 创新先进技术有限公司 | 基于区块链的资产发布方法及装置、电子设备 |
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 |
-
2021
- 2021-03-19 US US17/206,423 patent/US20210336789A1/en not_active Abandoned
- 2021-03-26 WO PCT/US2021/024415 patent/WO2021202289A1/en unknown
- 2021-03-26 EP EP21719490.1A patent/EP4128655A1/en active Pending
- 2021-03-26 CN CN202180015482.6A patent/CN115152178A/zh active Pending
- 2021-03-29 TW TW110111358A patent/TW202137732A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
US20210336789A1 (en) | 2021-10-28 |
TW202137732A (zh) | 2021-10-01 |
EP4128655A1 (en) | 2023-02-08 |
WO2021202289A1 (en) | 2021-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11588803B2 (en) | Systems, methods, and apparatuses for implementing super community and community sidechains with consent management for distributed ledger technologies in a cloud based computing environment | |
US20230342734A1 (en) | Systems, methods, and apparatuses for implementing smart flow contracts using distributed ledger technologies in a cloud based computing environment | |
US11546144B2 (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 | |
US20190236562A1 (en) | Systems, methods, and apparatuses for implementing document interface and collaboration using quipchain in a cloud based computing environment | |
US20190238316A1 (en) | Systems, methods, and apparatuses for implementing intelligent consensus, smart consensus, and weighted consensus models for distributed ledger technologies in a cloud based computing environment | |
US20190236606A1 (en) | Systems, methods, and apparatuses for implementing a virtual chain model for distributed ledger technologies in a cloud based computing environment | |
Smith | The blockchain litmus test | |
WO2019010392A1 (en) | SYSTEMS, METHODS AND DEVICES FOR REDUCING AND / OR ELIMINATING DATA LEAKAGE IN ELECTRONIC REGISTER TECHNOLOGIES FOR NON-TRUST ORDER MATCHING | |
Cruz et al. | E-voting system based on the bitcoin protocol and blind signatures | |
CN115152177B (zh) | 提供机密知识的专门证明的系统和方法 | |
Kumar et al. | Decentralising finance using decentralised blockchain oracles | |
Chalkias et al. | Distributed auditing proofs of liabilities | |
Braghin et al. | Towards blockchain-based e-voting systems | |
Qu et al. | A electronic voting protocol based on blockchain and homomorphic signcryption | |
Ruoti et al. | SoK: Blockchain technology and its potential use cases | |
Zhang et al. | OBBC: A blockchain-based data sharing scheme for open banking | |
Ji et al. | Generalized proof of liabilities | |
Dash et al. | Artificial intelligence models for blockchain-based intelligent networks systems: Concepts, methodologies, tools, and applications | |
CN115174087A (zh) | 用于用多方计算执行的零知识证明的装置和系统 | |
CN115152178A (zh) | 基于确定性稀疏树的密码学责任证明 | |
Srivastava et al. | Event‐driven data alteration detection using block‐chain | |
Haffke | Technical analysis of established blockchain systems | |
Gurushankar et al. | Decentralized universally verifiable stake voting system with perfect privacy | |
Melander et al. | Blockchain-What it is, and a non-financial use case |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |