CN116263834A - 许可区块链的多发布者匿名证书 - Google Patents
许可区块链的多发布者匿名证书 Download PDFInfo
- Publication number
- CN116263834A CN116263834A CN202211485099.XA CN202211485099A CN116263834A CN 116263834 A CN116263834 A CN 116263834A CN 202211485099 A CN202211485099 A CN 202211485099A CN 116263834 A CN116263834 A CN 116263834A
- Authority
- CN
- China
- Prior art keywords
- user
- blockchain
- signature
- block
- knowledge
- 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
- 238000000034 method Methods 0.000 claims description 58
- 230000008569 process Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 14
- 230000006854 communication Effects 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 description 27
- 230000006870 function Effects 0.000 description 25
- 230000004044 response Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 238000004422 calculation algorithm Methods 0.000 description 10
- 230000004048 modification Effects 0.000 description 10
- 238000012986 modification Methods 0.000 description 10
- 230000003287 optical effect Effects 0.000 description 7
- 238000005065 mining Methods 0.000 description 6
- 230000008520 organization Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000010200 validation analysis Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000013475 authorization Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 230000000670 limiting effect Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 101100465059 Arabidopsis thaliana PRK3 gene Proteins 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 101000610537 Homo sapiens Prokineticin-1 Proteins 0.000 description 1
- 101001129076 Homo sapiens Serine/threonine-protein kinase N1 Proteins 0.000 description 1
- 101000691459 Homo sapiens Serine/threonine-protein kinase N2 Proteins 0.000 description 1
- 102100031206 Serine/threonine-protein kinase N1 Human genes 0.000 description 1
- 102100026180 Serine/threonine-protein kinase N2 Human genes 0.000 description 1
- 102100032467 Transmembrane protease serine 13 Human genes 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000000765 microspectrophotometry Methods 0.000 description 1
- 235000019799 monosodium phosphate Nutrition 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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
- H04L9/3221—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 interactive zero-knowledge proofs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
- G06F21/46—Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0407—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
- H04L63/0421—Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- 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/3247—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 involving digital signatures
-
- 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/42—Anonymization, e.g. involving pseudonyms
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Storage Device Security (AREA)
Abstract
区块链网络的用户可以从发布者获得用于用户的证书,所述证书基于用户的一个或多个属性,其中所述发布者选自一个或多个授权的发布者,并且其中所述证书包括关于所述一个或多个属性的签名和密钥;生成由有效载荷和第二签名组成的操作;计算对所述发布者的公钥的承诺;使用一出多证明来证明所述承诺是对所述授权的发布者之一的公钥的有效承诺;使用零知识证明来证明所述签名和所述证书在所述发布者的所述公共密钥下的知识;以及使用知识证明来证明所述经签名的密钥和属性的值。
Description
背景技术
本公开涉及对区块链网络上的操作的处理,并且更具体地涉及针对经许可的区块链的多发布者匿名证书。
区块链是称为块的密码链接记录的列表。区块链网络可用于由多方管理不同类型的操作。
发明内容
本公开的实施例包括用于针对区块链网络中的经许可的区块链的多发布者匿名证书的系统、方法和计算机程序产品。
本公开的实施例包括一种系统,所述系统包括存储器和与所述存储器通信的处理器,所述处理器被配置为执行包括以下的操作:由用户从发布者获得用于所述用户的证书,所述证书基于所述用户的一个或多个属性,其中所述发布者选自一个或多个授权的发布者(issuer),并且其中所述证书包括关于所述一个或多个属性的签名和密钥;由所述用户生成由有效载荷和第二签名组成的操作;由所述用户计算对所述发布者的公钥的承诺;由所述用户使用一出多证明(one-out-of-many proof)来证明所述承诺是对所述授权的发布者之一的公钥的有效承诺;由所述用户使用零知识证明来证明所述签名和所述证书在所述发布者的所述公共密钥下的知识证明;以及由所述用户使用经签名的密钥和属性的值的知识证明来证明。
本公开的附加实施例包括一种方法,所述方法包括:由用户从发布者获得用于所述用户的证书,所述证书基于所述用户的一个或多个属性,其中所述发布者选自一个或多个授权的发布者,并且其中所述证书包括关于所述一个或多个属性的签名和密钥;由所述用户生成由有效载荷和第二签名组成的操作;由所述用户计算对所述发布者的公钥的承诺;由所述用户使用一出多证明来证明所述承诺是对所述授权的发布者之一的公钥的有效承诺;由所述用户使用零知识证明来证明所述签名和所述证书在所述发布者的所述公共密钥下的知识证明;以及由所述用户使用经签名的密钥和属性的值的知识证明来证明。
本公开的其他实施例包括计算机程序产品,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有随其包含的程序指令,所述程序指令可由处理器执行以使所述处理器执行方法,所述方法包括:由用户从发布者获得用于所述用户的证书,所述证书基于所述用户的一个或多个属性,其中所述发布者选自一个或多个授权的发布者,并且其中所述证书包括关于所述一个或多个属性的签名和密钥;由所述用户生成由有效载荷和第二签名组成的操作;由所述用户计算对所述发布者的公钥的承诺;由所述用户使用一出多证明来证明所述承诺是对所述授权的发布者之一的公钥的有效承诺;由所述用户使用零知识证明来证明所述签名和所述证书在所述发布者的所述公共密钥下的知识证明;以及由所述用户使用经签名的密钥和属性的值的知识证明来证明。
以上概述并不旨在描述本公开的每个所示实施例或每个实现方式。
附图说明
包括在本公开中的附图被结合到说明书中并且形成说明书的一部分。它们示出了本公开的实施方式,并且与描述一起用于解释本公开的原理。附图仅说明某些实施例,而并不限制本公开。
图1示出了根据示例性实施方式的包括数据库的系统的网络图。
图2A示出根据示例实施例的示例区块链架构配置。
图2B示出根据示例实施例的区块链事务流程。
图3A示出根据示例实施例的许可网络。
图3B示出根据示例实施方式的另一个许可网络。
图3C示出根据示例实施例的无许可网络。
图4A示出根据示例实施例的新块被添加到分布式分类账的过程。
图4B示出根据示例实施例的新数据块的内容。
图4C示出了根据举例实施例的数字内容的区块链。
图4D示出根据示例实施例的可表示区块链中的块的结构的块。
图5示出了根据本公开的实施方式的可用于实现本文所描述的方法、工具和模块和任何相关功能中的一个或多个的示例性计算机系统的高级框图。
图6示出了根据示例实施例的用于区块链网络中的经许可的区块链的多发布者匿名证书的示例方法的流程图。
虽然在此描述的实施例服从不同修改和替代形式,但是其细节已经通过举例在附图中示出并且将被详细描述。然而,应当理解,所描述的特定实施例不应被视为限制性的。相反,本发明旨在覆盖落入本公开的精神和范围内的所有修改、等同物和替代物。
具体实施方式
本公开的方面涉及对区块链网络上的操作的处理,并且更具体地涉及用于区块链网络中的经许可的区块链的多发布者匿名证书。
将容易理解的是,如在本文的附图中大体描述和图示的,本发明的部件可以以各种不同的配置布置和设计。因此,如附图中表示的方法、装置、非易失性计算机可读介质和系统中的至少一个的实施方式的以下详细描述并不旨在限制所要求保护的应用的范围,而是仅仅表示所选择的实施方式。
在一个或多个实施例中,如贯穿本说明书所描述的即时特征、结构、或特性可以以任何适合的方式被组合或移除。例如,贯穿本说明书的短语“举例实施例”、“一些实施例”或其他类似语言的使用是指结合该实施例所描述的特定特征、结构或特性可以被包括在至少一个实施例中的事实。因此,贯穿本说明书出现的短语“示例实施例”、“在一些实施例中”、“在其他实施例中”或其他类似语言不一定都指同一组实施例,并且所描述的特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合或去除。此外,在图中,元件之间的任何连接可以允许单向和/或双向通信,即使所描绘的连接是单向或双向箭头。而且,在附图中描绘的任何装置可以是不同的装置。例如,如果移动设备被示为发送信息,则有线设备也可被用于发送该信息。
此外,尽管在实施方式的描述中可以使用术语“消息”,但是应用可以应用于许多类型的网络和数据。此外,尽管在示例性实施例中可以描述特定类型的连接、消息和信令,但是本申请不限于特定类型的连接、消息和信令。
在一些实施例中,该方法、系统和/或计算机程序产品利用作为分布式存储系统的分散式数据库(诸如区块链),该分布式存储系统包括彼此通信的多个节点。分散式数据库包括类似于能够在互不信任方之间维护记录的分布式分类账的仅附加不可变数据结构。不可信方在本文中称为对等体或对等节点。每个对等体维护数据库记录的副本,并且没有单个对等体可以修改数据库记录,而在分布式对等体之间没有达成一致。例如,对等体可执行一致协议以验证区块链存储事务,将存储事务分组成块,并在块上建立哈希链(hashchain)。为了一致性,该过程根据需要通过排序存储事务形成分类账。
在不同实施例中,可以使用被许可和/或无许可的区块链。在公共或无权限的区块链中,任何人可在没有特定身份(例如,保留匿名性)的情况下参与。公共区块链可以涉及本地密码并且使用基于不同协议(诸如工作证明)的共识。另一方面,经许可的区块链数据库提供共享共同目标但不完全相互信任的一组实体之间的安全交互,诸如交换资金、商品、信息等的企业。
进一步,在一些实施例中,方法、系统和/或计算机程序产品可以利用操作任意的、可编程逻辑的区块链,该可编程逻辑针对分散式存储方案定制并且被称为“智能合同”或“链接代码”。在一些情况下,可存在被称为系统链接代码的管理功能和参数的专用链接代码。该方法、系统和/或计算机程序产品可以进一步利用智能合同,该智能合同是可信的分布式应用,其利用区块链数据库的防篡改属性和节点之间的基础协议,该协议被称为认可或认可策略。与本申请相关联的区块链事务在被提交至区块链之前可以被“签注”,而未被签注的事务被忽略。
认可策略允许链接代码以对于认可必需的对等节点集合的形式指定用于事务的认可者。当客户端将事务发送给签注策略中指定的对等体时,执行该事务以验证事务。在验证之后,事务进入排序阶段,其中使用一致协议产生被分组为块的批注事务的有序序列。
在一些实施例中,该方法、系统和/或计算机程序产品可以利用作为区块链系统的通信实体的节点。在不同类型的多个节点可在同一物理服务器上运行的意义上,“节点”可执行逻辑功能。节点被分组在信任域中并且与以不同方式控制它们的逻辑实体相关联。节点可以包括不同类型,诸如客户端或提交-客户端节点,其向签注者(例如,对等体)提交事务调用并且向订购服务(例如,订购节点)广播事务建议。
另一类型的节点是对等节点,其可接收客户端提交的事务、提交事务并维持区块链事务的分类账的状态和副本。对等体也可以具有背书人的作用,尽管它不是必需的。订购服务节点或订购者是针对所有节点运行通信服务的节点。在一些实例中,当提交/确认事务和修改区块链的世界状态时,定购服务节点实现递送保证,诸如向系统中的每个对等节点的广播。世界状态是初始区块链事务的另一个名称,其通常包括控制和设置信息。
在一些实施例中,所述方法、系统和/或计算机程序产品可以利用分类账,所述分类账是区块链的所有状态转换的排序、防篡改记录。状态转换可以由参与方(例如,客户端节点、排序节点、签注者节点、对等节点等)提交的链接代码调用(例如,事务)引起。每个参与方(诸如对等节点)可维护分类账的副本。在一些实施例中,参与方是操作中涉及的一方(例如,具有区块链网络上的节点的组织)。事务可以导致一组资产关键字-值对作为一个或多个操作数被提交到分类账,诸如创建、更新、删除等。分类账包括用于在块中存储不可变的排序记录的区块链(也称为链)。分类账还包括维护区块链的当前状态的状态数据库。
在一些实施例中,在此描述的方法、系统和/或计算机程序产品可以利用链,该链是被结构化为哈希链接的块的事务日志,并且每个块包含N个事务的序列,其中N等于或大于1。块报头包括块的事务的哈希以及先前块的报头的哈希。以这种方式,分类账上的所有事务可被排序和加密地链接在一起。因而,不可能篡改分类账数据而不破坏哈希链接。最近添加的区块链块的哈希表示在链之前已经出现的每个事务,从而使得可以确保所有对等节点都处于一致且可信的状态。该链可以存储在对等节点文件系统(例如,本地、附加存储、云等)上,从而有效地支持区块链工作负载的仅附加性质。
不可变分类账的当前状态表示包括在链事务日志中的所有键的最新值。因为当前状态表示信道已知的最新键值,所以有时将其称为世界状态。链调用执行针对分类账的当前状态数据的事务。为了使这些链接代码交互有效,密钥的最新值可以存储在状态数据库中。状态数据库可以简单地是到链的事务日志中的索引视图;因此可以在任何时间从链中重新生成它。在对等节点启动时并且在接受事务之前,可以自动恢复(或者如果需要的话生成)状态数据库。
区块链与传统数据库的不同之处在于,区块链不是中央存储,而是分散的、不可变的和安全的存储,其中节点可以共享对存储中的记录的改变。区块链中固有的并且有助于实现区块链的一些属性包括但不限于本文进一步描述的不可变分类账、智能合同、安全、隐私、分散、一致、认可、可访问性等。
特别地,区块链分类账数据是不可变的,并且其提供用于在区块链网络中处理操作的有效方法。此外,区块链中加密的使用提供安全性和建立信任。智能合同管理资产的状态以完成生命周期,因此专用节点可确保具有匿名要求的区块链操作能够将操作安全地提交到区块链网络。示例区块链是许可分散的。因此,每个终端用户可以有它自己的分类账副本访问。多个组织(和同级)可以在区块链网络上绑定。密钥组织可以充当认可对等体,以验证智能合同执行结果、读取-设置和写入-设置。换言之,区块链固有特征提供在区块链网络中处理私有事务的高效实现。
举例实施例的益处之一是它们通过实现用于在区块链网络中处理私有事务的方法来改进计算系统的功能。通过本文所述的区块链系统,计算系统(或计算系统中的处理器)可通过提供对诸如分布式分类账、对等体、加密技术、MSP、事件处理等能力的访问来执行利用区块链网络的私有事务处理的功能。此外,区块链使得能够创建商业网络并且使任何用户或组织机载参与。这样,该区块链不仅仅是数据库。该区块链具有创建用户网络和机载/机外组织的能力,以便以智能合同的形式协作和执行服务过程。
同时,传统数据库对于实现举例实施例可能不是有用的,因为传统数据库没有带来网络上的所有方,传统数据库没有创建可信协作,并且传统数据库不提供安全且高效地提交操作的高效方法。传统数据库不提供防篡改存储,并且不提供有保证的有效事务。因而,举例实施例提供了针对在区块链网络中匿名提交操作的领域/领域中的问题的特定解决方案。
图1示出了根据示例性实施方式的用于区块链网络中的智能数据注释的逻辑网络图100。
参考图1,示例网络100包括连接到表示文档所有者组织的其他区块链(BC)节点105的节点102。节点102可以连接到区块链106,区块链106具有用于存储要在节点105之间共享的数据110的分类账108。虽然此实例仅详细描述一个节点102,但多个此类节点可连接到区块链106。应当理解,节点102可以包括附加组件,并且在不脱离本文公开的节点102的范围的情况下,可以移除和/或修改本文所述的组件中的一些。节点102可以是计算设备或服务器计算机等,并且可包括处理器104,该处理器104可以是基于半导体的微处理器、中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)和/或另一硬件设备。尽管描绘了单个处理器104,但应当理解,节点102可以包括多个处理器、多个内核等,而不背离节点102系统的范围。分布式文件存储器150可由处理器节点102和其他BC节点105访问。分布式文件存储器150可用于存储在分类账108中识别的文档。
节点102还可以包括非瞬态计算机可读介质112,其可以具有存储在其上的可由处理器104执行的机器可读指令。机器可读指令的示例被示出为114-118并且在下面进一步讨论。非暂时性计算机可读介质112的示例可以包括包含或存储可执行指令的电子、磁性、光学或其他物理存储设备。例如,非暂时性计算机可读介质112可以是随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、硬盘、光盘或其他类型的存储装置。
处理器104可以执行将用户与元组相关联的机器可读指令114。如上所述,区块链分类账108可以存储要在节点105之间共享的数据110。区块链106网络可被配置为使用管理多个参与节点的事务的一个或多个智能合同。链接到注释信息的文档可以存储在分布式文件存储器150中。处理器104可以执行将发布者与PK公钥相关联的机器可读指令116。处理器104可以执行由用户对操作进行签名的机器可读指令118。
图2A示出根据示例实施例的区块链架构配置200。参照图2A,区块链架构200可包括某些区块链元件,例如,一组区块链节点202。区块链节点202可以包括一个或多个对等节点204、206、208(这四个节点仅由示例描绘)。这些节点参与许多活动,诸如区块链事务添加和确认过程(一致)。区块链节点204-210中的一个或多个可以基于背书策略对事务进行背书,并且可以为架构200中的所有区块链节点202提供排序服务。区块链节点204-210可以发起区块链认证,并试图写入存储在区块链层216中的区块链不可变分类账,其副本也可以存储在支撑物理基础设施214上。区块链配置200可以包括被链接到应用编程接口(API)222以访问和执行所存储的程序/应用代码220(例如,链接代码、智能合同等)的一个或多个应用224,所存储的程序/应用代码220可以根据由参与者寻求的定制配置来创建并且可以维持参与者自己的状态、控制参与者自己的资产和接收外部信息。这可以被部署为事务并且经由附加到分布式分类账而被安装在所有区块链节点204-210上。
区块链基础或平台212可以包括不同层的区块链数据、服务(例如,加密信任服务、虚拟执行环境等)和支持物理计算机基础设施214,所述支持物理计算机基础设施214可以用于接收和存储新事务并提供对试图访问数据条目的审核者的访问。区块链层216可以暴露接口,该接口提供对处理程序代码220和参与物理基础设施214所必需的虚拟执行环境的访问。密码信任服务218可用于验证事务(诸如资产交换事务)并保持信息私有。
图2A的区块链架构配置200可以经由由区块链平台212暴露的一个或多个接口和提供的服务来处理和执行程序/应用代码220。代码220可以控制区块链资产。例如,代码220可以存储和转移数据,并且可以由节点204-210以智能合同和相关联的链式代码的形式来执行,该链式代码具有经受其执行的条件或其他代码元素。作为非限制性实例,可以创建智能合同以执行提醒、更新和/或受到改变、更新等的其他通知。智能合同本身可用于识别与分类账的授权和访问要求和使用相关联的规则。例如,文档属性信息226可以由包括在区块链层216中的一个或多个处理实体(例如,虚拟机)处理。该处理的结果228可以包括多个链接的共享文档。物理基础设施214可用于检索本文所述的任何数据或信息。
智能合同可以经由高级应用和编程语言创建,并且然后被写到区块链中的块。智能合同可以包括利用区块链(例如,区块链对等体的分布式网络)注册、存储和/或复制的可执行代码。事务是智能合同代码的执行,其可以响应于满足与智能合同相关联的条件而执行。智能合同的执行可以触发对数字区块链分类账的状态的可信修改。由智能合同执行引起的对区块链分类账的修改可以通过一个或多个一致协议遍及区块链对等体的分布式网络被自动复制。
智能合同可以以键-值对的格式向区块链写入数据。此外,智能合同代码可以读取存储在区块链中的值,并在应用操作中使用它们。智能合同代码可以将不同逻辑操作的输出写入到区块链中。代码可以用于在虚拟机或其他计算平台中创建临时数据结构。写入区块链的数据可以是公共的和/或可以被加密并维持为私有的。由智能合同使用/生成的临时数据由供应的执行环境保存在存储器中,然后一旦识别了区块链需要的数据就删除。
链接代码可以包括具有附加特征的智能合同的代码解释。如本文所描述的,链接代码可以是部署在计算网络上的程序代码,其中链接代码在共有过程期间由链确认器一起执行和验证。链接代码接收哈希并且从区块链中检索与通过使用先前存储的特征提取器创建的数据模板相关联的哈希。如果哈希标识符的哈希和从所存储的标识符模板数据创建的哈希匹配,则链接代码向所请求的服务发送授权密钥。链接代码可以向区块链写入与加密细节相关联的数据。
图2B示出根据示例实施例的区块链(例如,图1中示出的区块链106)的节点之间的区块链事务流250的示例。参照图2B,将给出事务流250的一般描述,随后是更具体的实例。事务流250可包括由应用客户端节点260发送至第一认可对等节点281的事务建议291。第一认可对等体281可验证客户端签名并执行链接代码功能以发起事务。输出可以包括链接代码结果、在链接代码中读取的键/值版本的集合(读取集合)、以及在链接代码中写入的键/值的集合(写入集合)。如果被批准,提议响应292连同认可签名一起被发送回客户端260。客户端260将签章组装成事务有效载荷293并将其广播至定购服务(第四对等体)节点284。定购服务节点284然后将定购事务作为块在相同的信道上递送到所有附加对等体281、282和283。在提交到区块链之前,每个附加对等体281-283可以验证事务。例如,对等体281-283可检查签注策略以确保在事务建议291中指定的对等体的正确分配已对结果进行签名并对事务有效载荷293验证签名。在一些实施例中,对等体中的一个或多个可以是管理器节点。
事务流250的更具体描述可以通过更具体的示例来理解。首先,客户节点260通过构建并向第一对等节点281发送请求来发起事务提议291,第一对等节点281是签注者。客户端260可以包括利用所支持的软件开发工具包(SDK)的应用,所述SDK利用可用的API来生成事务建议。提议是调用链接代码功能以使得数据可以被读取和/或写入到分类账(即,为资产写入新的键值对)的请求。SDK可以充当垫片以将事务提案封装成适当的架构化格式(例如,远程过程调用(RPC)上的协议缓冲器)并采用客户端的加密证书来产生事务提案的唯一签名。
作为响应,认可的对等节点281可验证(a)事务提议形成良好,(b)事务在过去尚未被提交(重放攻击保护),(c)签名有效,以及(d)提交者(在该实例中,客户端260)被适当地授权以在该信道上执行所提议的操作。认可的对等节点281可以将事务提议输入作为对所调用的链接代码函数的自变量。然后,对照当前状态数据库执行链接代码以产生包括响应值、读集合和写集合的事务结果。然而,此时没有对分类账进行更新。该组事务结果以及认可的对等节点281的签名作为提议响应292被传递回客户端260的SDK,SDK解析应用消费的有效载荷。
作为响应,客户端260的应用检查/验证认可的对等体281的签名,并且比较建议响应292以确定建议响应292是否有效。如果链接代码仅查询分类账,则应用将检查查询响应并且通常将不向订购服务节点284提交事务。如果客户端应用程序意图将事务提交给订购服务节点284以更新分类账,则应用程序确定在提交之前指定的认可策略是否已被满足(即,所有对等节点对事务是否认可该事务)。这里,客户端260可仅包括事务的多方中的一个。在这种情况下,每个客户端可具有其自身的认可节点,并且每个认可节点可能需要认可事务。该架构使得即使应用选择不检查响应或以其他方式转发未个性化事务,签注策略仍可由对等体强制执行并在提交验证阶段得到保持。
在成功检查之后,客户端260将签章组装成事务293并且在事务消息内将事务建议和响应广播至订购节点284。事务293可包含读/写集合、认可对等方的签名和信道ID。订购节点284不需要检查事务的全部内容以便执行其操作。相反,排序节点284可以简单地从网络中的所有信道接收事务,按信道对它们按时间顺序进行排序,并且每信道创建事务块。
事务293的块在信道上从排序节点284被递送到所有其他对等节点281-283。块内的事务294被验证以确保任何认可策略被满足并确保对于读集合变量的分类账状态没有改变,因为读集合是由事务执行生成的。块中的事务294被标记为有效或无效。此外,在操作295中,每个对等节点281-283将块附加到通道的链,并且对于每个有效事务,写集合被提交到当前状态数据库。发出事件以通知客户端应用事务(调用)293已经被不可变性地附加到链,以及通知事务293被验证还是被无效。
图3A示出根据示例实施例的以分布式、分散式对等架构为特征的受许可区块链网络300的示例。在该示例中,区块链用户302可以向经许可的区块链304发起事务。在该示例中,事务可以是部署、调用或查询,并且可以通过利用SDK的客户端侧应用、直接通过API等来发布。网络300可以提供对诸如审核者之类的监管器306的访问。区块链网络运营商308管理成员许可,诸如将监管器306登记为“审核者”并且将区块链用户302登记为“客户端”。审核者可以仅限于查询分类账,而客户端可以被授权部署、调用和查询某些类型的链接代码。
区块链开发者310可写入链接代码和客户端侧应用。区块链开发者310可以通过接口直接将链接代码部署到网络300。为了在链接代码中包括来自传统数据源312的证书,开发者310可使用带外连接(out-of-band connection)来访问数据。在该示例中,区块链用户302通过对等节点314中的一个(参考节点314a-e中的任何一个)连接到被许可的区块链304。在进行任何事务之前,对等节点314(例如,节点314a)从管理用户角色和许可的证书授权机构316检索用户302的注册和事务证书。在一些情况下,区块链用户必须拥有这些数字证书以便在许可的区块链304上进行事务。同时,尝试利用链接代码的用户可能被要求在传统数据源312上验证他们的证书。为了确认用户302的授权,链接代码可以使用通过传统处理平台318到该数据的带外连接。
图3B示出根据示例实施例的以分布式、分散式对等架构为特征的受准许的区块链网络320的另一示例。在该示例中,区块链用户322可以向经许可的区块链324提交事务。在该示例中,事务可以是部署、调用或查询,并且可以通过利用SDK的客户端侧应用、直接通过API等来发布。网络可以提供对诸如审核者之类的调节器326的访问。区块链网络运营商328管理成员许可,诸如将调节器326登记为“审核者”并且将区块链用户322登记为“客户端”。审核者可被限制为仅查询分类账,而客户端可被授权部署、调用和查询某些类型的链接代码。
区块链开发者330写入链接代码和客户端侧应用。区块链开发者330可以通过接口将链接代码直接部署到网络。为了在链接代码中包括来自传统数据源332的证书,开发者330可以使用带外连接来访问数据。在该示例中,阻塞链用户322通过对等节点334(参考节点334a-e中的任何一个)连接到网络。在进行任何事务之前,对等节点334(例如,节点334a)从证书授权机构336检索用户的登记和事务证书。在一些情况下,区块链用户必须拥有这些数字证书以便在经许可的区块链324上进行事务。同时,尝试利用链接代码的用户可能被要求在传统数据源332上验证他们的证书。为了确认用户的授权,链接代码可以使用通过传统处理平台338到该数据的带外连接。
在本发明的一些实施例中,本文中的区块链可以是无许可的区块链。与要求允许加入的经许可的区块链(例如,区块链304和324)相反,任何人都可以加入未经许可的区块链。例如,为了加入无许可区块链,用户可以创建个人地址并且通过提交事务开始与网络交互,并且因此将条目添加到分类账。此外,所有方具有在系统上运行节点以及采用挖掘协议来帮助验证事务的选择。
图3C示出根据示例实施例的网络350,其中事务由包括多个节点354的无许可区块链352处理。发送者356希望经由无许可区块链352向接收者358发送支付或某一其他形式的价值(例如,契约、医疗记录、合同、商品、服务或可被封装在数字记录中的任何其他资产)。在一些实施例中,发送方设备356和接收方设备358中的每可具有提供用户界面控制和事务参数的显示的数字钱包(与区块链352相关联)。作为响应,事务贯穿区块链352被广播至节点354(参考节点354a-e中的任何一个)。
根据区块链352的网络参数,节点使用验证模块360基于无许可区块链352创建者建立的规则(其可以是预定义的或动态分配的)来验证事务。例如,这可以包括验证所涉及的各方的身份等。可以立即验证事务,或者可以将其与其他事务放置在队列中,并且节点354基于网络规则集确定事务是否有效。
在结构362中,将有效事务形成为块并且用锁(哈希)密封。该过程可以通过挖掘节点354中的节点来执行。挖掘节点可以利用另外的软件,其特别地用于针对无许可区块链352挖掘和创建块。每个块可由使用由网络350商定的算法创建的哈希(例如,256位数等)来标识。每个块可包括报头、指向链中的先前块的报头的哈希的指针或引用、以及一组有效事务。对先前块的哈希的引用与块的安全独立链的创建相关联。
在块可以被添加到区块链352之前,块必须被验证。对无许可区块链352的验证可包括工作证明(PoW),其是从块的头部导出的谜题的解。虽然在图3C的示例中未示出,但是用于验证块的另一过程是下注证明(proof-of-stake)。与工作证明不同,其中,算法用下注证明来奖励解决数学问题的挖掘者,新块的创建者以确定性方式被选择,取决于其财富,也被定义为“下注”。然后,由选择的/选择的节点执行类似的证明。
利用挖掘模块364,节点尝试通过对一个变量进行增量改变直到解满足全网络目标来解决块。这产生PoW,从而确保正确答案。换言之,潜在的解决方案必须证明在解决该问题时耗尽计算资源。在一些类型的无许可区块链中,可以为矿工奖励用于正确挖掘封锁的价值(例如,硬币等)。
这里,PoW过程在块的链接旁边使对区块链352的修改极其困难,因为攻击者必须修改所有后续块以便接受对一个块的修改。此外,随着新块的挖掘,修改块的难度增加,并且后续块的数量增加。利用分配模块366,成功验证的块被分配通过无许可分组链352,并且所有节点354将该块添加到作为无许可分组链352的可审计的分类账的多数链中。此外,将由发送者356提交的事务中的值存入或以其他方式传送到接收者设备358的数字钱包。
图4A示出根据示例实施例的执行被添加到分布式分类账420的新块的过程400的区块链系统,图4B示出根据示例实施例的用于区块链的新数据块结构430的内容。新数据块430可以包含文档链接数据。
参考图4A,客户端(未示出)可在过程400中向区块链节点411、412和/或413提交事务。客户端可以是从任何源接收的指令以制定在区块链422上的活动。作为示例,客户端可以是代表请求者(诸如设备、个人或实体)行动以提议针对区块链422的事务的应用。多个区块链对等体(例如,区块链节点411、412和413)可以维护区块链网络的状态和分布式分类账420的副本。不同类型的区块链节点/对等体可以存在于区块链网络中,包括认可对等体和提交对等体,认可对等体模拟并认可由客户端提出的事务,提交对等体验证认可、验证事务和将事务提交到分布式分类账420。在此实例中,区块链节点411、412和413中的每一者可执行签注节点、提交节点或两者的作用。
分布式分类账420包括在块(例如,数据块423、424、425、426、427、428、429和430)中存储不可变的排序记录的区块链,和维护区块链422的当前状态的状态数据库424(当前世界状态)。每个通道可以存在分布式分类账420,并且每个对等体维护它们作为其成员的每个通道的分布式分类账420的其自己的副本。区块链422是事务日志,被构造为哈希链接的块,其中每个块包含N个事务的序列。块可包括诸如图4B中所示的各种组件。块(例如,数据块423-430)的链接(图4A中的箭头所示)可通过在当前块的块报头内添加先前块的标头的哈希来生成。以此方式,将区块链422上的所有事务排序并且加密地链接在一起,防止篡改区块链数据而不破坏哈希链接。此外,由于链接,区块链422中的最新块(例如,数据块430)表示它之前出现的每个事务。区块链422可以存储在对等文件系统(本地或附加存储)上,所述对等文件系统支持仅附加的区块链工作负载。
区块链422和分布式分类账420的当前状态可以存储在状态数据库424中。此处,当前状态数据表示曾经包括在区块链422的链事务日志中的所有键的最新值。链调用对照状态数据库424中的当前状态执行事务。为了使这些链接代码交互极其有效,所有密钥的最新值被存储在状态数据库424中。状态数据库424可以包括进入区块链422的事务日志的索引视图。因此,它可以在任何时间从链中再生。在事务被接受之前,在对等体启动时,状态数据库424可自动被恢复(或者如果需要的话被生成)。
认可节点(411、412和/或413)从客户端接收事务并基于模拟结果认可事务。认可节点持有模拟事务建议的智能合同。当认可节点认可事务时,认可节点创建事务认可,该事务认可是从认可节点到客户端应用的表示模拟的事务的认可的签名响应。认可事务的方法取决于可以在链接代码中指定的认可策略。认可策略的实例是“多数认可对等必须认可事务”。不同的信道可具有不同的认可策略。由客户端应用向定购服务410转发经验证的事务。
定购服务410接受签注的事务,将它们定购到块中,并且将这些块递送到提交对等体。例如,当已经达到事务阈值、定时器超时或另一条件时,定购服务410可以发起新块。在图4A的示例中,区块链节点412是已经接收新的数据块430以存储在区块链422上的提交对等体。区块链422中的第一块423可称为产生块,其包括关于区块链、其成员、存储在其中的数据等的信息。
订购服务410可以由订购者集群组成。定单服务410不处理事务、智能合同或维护共享分类账。相反,定单服务410可以接受签注的业务并且指定那些业务被提交到分布式分类账420的次序。可以设计区块链网络的架构,使得‘排序’的具体实现方式(例如,Solo、Kafka、Byzantine容错等)变成可插拔组件。
事务以一致的顺序被写到分布式分类账420。事务的顺序被建立以确保对状态数据库424的更新在它们被提交至网络时是有效的。与其中通过解决密码谜题或挖掘发生排序的密码货币区块链系统(例如,Bitcoin等)不同,在该示例中,分布式分类账420的各方可以选择最适合该网络的排序机制。
当定购服务410初始化新数据块430时,新数据块430可被广播到提交对等体(例如,区块链节点411、412和413)。作为响应,每个提交对等体通过检查以确保读取集和写入集仍匹配状态数据库424中的当前世界状态来验证新数据块430内的事务。具体地,提交对等体可以确定当签注者模拟事务时存在的读数据是否与状态数据库424中的当前世界状态相同。当提交对等体验证事务时,事务被写到分布式分类账420上的区块链422,并且状态数据库424用来自读-写集合的写数据来更新。如果事务失败,即,如果提交对等体发现读-写集合不匹配状态数据库424中的当前世界状态,则排序到块中的事务仍可被包括在该块中,但它可被标记为无效,并且状态数据库424可不被更新。
参考图4B,被存储在分布式分类账420的区块链422上的新数据块430(也被称为数据块)可以包括多个数据段,诸如块报头440、块数据450和块元数据460。应当理解,不同描绘的块和其内容,诸如新数据块430和其内容。图4B中示出的仅是示例,并不意味着限制示例实施方式的范围。新数据块430可以在块数据450内存储N个事务(例如,1、10、100、500、1000、2000、3000等)的事务信息。新数据块430还可以包括到块报头440内的先前块(例如,在图4A中的区块链422上)的链路。特定来说,块报头440可包含先前块的标头的哈希。块报头440还可包括唯一块号(例如,数据块423-430)、新数据块430的块数据450的哈希等。新数据块430的块号可以是唯一的并且以不同顺序分配,诸如从零开始的递增/顺序的顺序。
块数据450可以存储被记录在新数据块430内的每个事务的事务信息。例如,事务数据可以包括事务的类型、版本、时间戳、分布式分类账420的信道ID、事务ID中的一个或多个,时期、有效载荷可见性、链接代码路径(部署事务)、链接代码名称、链接代码版本、输入(链接代码和功能)、客户端(创建者)标识(如公钥和证书),客户端的签名、认可者的身份、认可者签名、建议哈希、链接代码事件、响应状态、命名空间、读取集合(由事务读取的密钥和版本的列表,等等)、写入集合(键和值的列表等等)、开始键、结束键、键的列表、Merkel树查询概要等等。可针对N个事务中的每个事务存储事务数据。
在一些实施例中,块数据450还可以存储新数据462,该新数据将附加信息添加至区块链422中的块的哈希链接链。附加信息包括本文中描述或描绘的步骤、特征、过程和/或动作中的一个或多个。因而,新数据462可以存储在分布式分类账420上的不可变块日志中。存储这样的新数据462的一些益处反映在本文公开和描绘的不同实施例中。尽管在图4B中,在块数据450中描绘了新数据462,但它也可以位于块报头440或块元数据460中。新数据462可以包括用于链接组织内的文档的文档组合键。
块元数据460可存储元数据的多个字段(例如,作为字节阵列等)。元数据字段可以包括关于块创建的签名、对最后配置块的引用、标识块内的有效和无效事务的事务过滤器、对块进行排序的排序服务的存留的最后偏移等。签名、最后配置块、和排序器元数据可以由排序服务410添加。同时,块(诸如区块链节点412)的提交者可以基于批注策略、读/写集合的验证等来添加有效/无效信息。事务过滤器可包括大小等于块数据450中的事务的数量的字节阵列和标识事务是否有效/无效的验证码。
图4C示出了根据本文描述的一些实施方式的用于数字内容的区块链470。数字内容可包括一个或多个文件和相关联的信息。所述文件可包含媒体、图像、视频、音频、文本、链接、图形、动画、网页、文档或其他形式的数字内容。该区块链的不可变的、仅附加的方面充当保护措施来保护数字内容的完整性、有效性和真实性,使其适合用于法律程序中,其中可接受性规则适用,或在其中考虑证据或其中数字信息的呈现和使用以其他方式感兴趣的其他设置中使用。在这种情况下,数字内容可以被称为数字证据。
区块链可以各种方式形成。在一些实施例中,数字内容可以包括在区块链本身中并且从区块链本身访问。例如,区块链的每个块可以沿着相关联的数字内容存储参考信息的哈希值(例如,报头、值等)。然后可以一起加密哈希值和相关联的数字内容。因此,每个块的数字内容可以通过解密区块链中的每个块来访问,并且每个块的哈希值可以用作引用先前块的基础。这可以说明如下:
块1 块2 ...... 块N
哈希值1 哈希值2 哈希值N
数字内容1 数字内容2 数字内容N
在一些实施例中,数字内容可以不包括在区块链中。例如,区块链可在没有任何数字内容的情况下存储每个块的内容的经加密的哈希。数字内容可以被存储在与原始文件的哈希值相关联的另一存储区域或存储器地址中。其他存储区域可以是用于存储区块链的相同存储设备,或者可以是不同的存储区域或者甚至是单独的关系数据库。通过获得或查询感兴趣块的哈希值,然后在存储区域中查找与该实际数字内容对应存储的值,可以引用或访问每个块的数字内容。这个操作可以被执行,例如,数据库网守。这可以说明如下:
区块链 存储区
块1哈希值 块1哈希值…内容
. .
. .
. .
块N哈希值 块N哈希值…内容
在图4C的示例性实施方式中,区块链470包括以有序序列密码连接的多个块4781、4782、…、478N,其中N≥1。用于链接块4781、4782、…、478N的加密可以是多个键控或非键控哈希函数中的任何函数。在一些实施方式中,块4781、4782、…、478N经受哈希函数,该哈希函数从基于块中的信息的输入产生n位字母数字输出(其中,n是256或另一数字)。这种哈希函数的实例包括但不限于SHA类型(SHA代表安全哈希算法)算法、Merkle-Damgard算法、HAIFA算法、Merkle-tree算法、基于随机数的算法、以及非抗冲突伪随机函数(PRF)。在另一实施例中,块4781、4782、…、478N可通过不同于哈希函数的函数加密链接。为了说明的目的,参考哈希函数(例如,SHA-2)进行以下描述。
区块链中的块4781、4782、…、478N中的每一个包括报头、文件的版本、以及值。由于区块链中的哈希,报头和值对于每个块是不同的。在一些实施例中,该值可被包括在报头中。如下文更详细描述的,文件的版本可以是原始文件或原始文件的不同版本。
区块链中的第一块4781被称为产生块,并且包括报头4721、原始文件4741和初始值4761。用于基因块以及实际上在所有后续块中的哈希方案可以变化。例如,第一块4781中的所有信息可一次哈希在一起,或者第一块4781中的信息的一部分可被分开哈希,然后可执行分开哈希的部分的哈希。
第二报头4721可以包括一个或多个初始参数,其例如可以包括版本号、时间戳、随机数、根信息、难度级、一致协议、持续时间、媒体格式、源、描述性关键字和/或与原始文件4741和/或区块链相关联的其他信息。第一标头4721可自动生成(例如,通过区块链网络管理软件)或由区块链参与者手动生成。与区块链中其他嵌段4782至478N中的头不同,起源嵌段4781中的头4721不引用先前的嵌段,只是因为不存在先前的嵌段。
产生块中的原始文件4741可以是,例如,在被包括在区块链中之前进行或不进行处理的情况下由设备捕获的数据。原始文件4741通过系统的接口从设备、媒体源或节点接收。原始文件4741与元数据相关联,该元数据例如可以由用户、装置和/或系统处理器手动地或自动地生成。元数据可以被包括在与原始文件4741相关联的第一块4781中。
产生块中的值4761是基于原始文件4741的一个或多个唯一属性生成的初始值。在一些实施例中,该一个或多个唯一属性可以包括原始文件4741的哈希值、原始文件4741的元数据和与该文件相关联的其他信息。在一个实现方式中,初始值4761可以基于以下唯一属性:
1)原始文件的SHA-2计算的哈希值
2)发端设备ID
3)原始文件的开始时戳
4)原始文件的初始存储位置
5)软件当前控制原始文件和关联元数据的区块链网络成员ID
在区块链中的其他块4782至478N也具有报头、文件和值。然而,与第一块的报头4721不同,其他块中的报头4722至472N中的每包括紧接在前面的块的哈希值。前一个块的哈希值可以仅是前一个块的报头的哈希或者可以是整个前一个块的哈希值。通过在剩余块的每中包括前一块的哈希值,可以在逐块的基础上执行从第N个块返回到起源块(和相关联的原始文件)的跟踪,如箭头480所指示的,以建立可审计的和不可变的监管链。
其他块中的报头4722至472N中的每一个还可以包括其他信息,例如,版本号、时间戳、随机数、根信息、难度级、一致协议和/或其他参数或与对应的文件和/或区块链相关联的信息。
在其他块中的文件4742至474N可以等于原始文件或者可以是取决于例如所执行的处理类型的原始文件在生成块中的修改版本。所执行的处理的类型可从块到块变化。该处理可以涉及,例如,对在前块中的文件的任何修改,如编辑信息或以其他方式改变文件的内容、将信息从这些文件带走、或将信息添加或附加到这些文件上。
另外或可替代地,处理可以涉及仅从在前块复制文件、改变文件的存储位置、分析来自一个或多个在前块的文件、将文件从一个存储或存储器位置移动到另一个、或执行相对于区块链的文件和/或其相关联的元数据的动作。涉及分析文件的处理可以包括例如附加、包括或以其他方式将不同分析、统计或与该文件相关联的其他信息相关联。
其他块中的其他块4762至476N中的每中的值是唯一的值,并且作为所执行的处理的结果全部不同。例如,任何一个块中的值对应于先前块中的值的更新版本。该更新反映在被赋值的块的哈希中。块的值因此提供在块中执行什么处理的指示,并且还允许通过区块链返回到原始文件的跟踪。该跟踪确认文件在整个区块链中的监管链。
例如,考虑先前块中的文件的部分被编辑、阻挡或像素化以便保护在文件中示出的人的身份的情况。在这种情况下,包括编辑文件的块可包括与编辑文件相关联的元数据,例如如何执行编辑、谁执行编辑、编辑发生的时间戳等。元数据可被哈希以形成值。因为块的元数据不同于经哈希以在先前块中形成值的信息,所以所述值彼此不同,且可在解密时恢复。
在一些实施例中,当发生以下任何一个或多个时,可以更新先前块的值(例如,计算的新哈希值)以形成当前块的值。在这个举例实施例中,可以通过对以下指出的信息的全部或一部分进行哈希来计算新的哈希值。
a)如果文件已经以任何方式处理(例如,如果文件被编辑、复制、更改、访问或采取一些其他动作),则新SHA-2计算的哈希值
b)文件的新存储位置
c)所识别的与所述文件相关联的新元数据
d)将所述文件的访问或控制从一个区块链参与者传输至另一个区块链参与者
图4D示出了根据一些实施例的可以表示区块链(例如,470)中的块的结构的块490。块(例如,Blocki)包括报头472i、文件474i和值476i。
报头472i包括前一块Blocki-1的哈希值和附加参考信息,所述附加参考信息例如可以是本文所讨论的任意类型的信息(例如,包括参考、特性、参数等的报头信息)。所有块参考前一块的哈希,当然除了产生块。前一块的哈希值可以仅是前一块中的报头的哈希或前一块中的信息的全部或部分(包括文件和元数据)的哈希。
文件474i包括多个数据,如按顺序的数据1、数据2、…、数据N。使用描述与数据相关联的内容和/或特性的元数据1、元数据2、…、元数据N对数据加标签。例如,每个数据的元数据可以包括用于指示数据的时间戳、处理数据、指示人员或数据中描绘的其他内容的关键词、和/或可以有助于作为整体建立文件的有效性和内容、并且特别是其使用数字证据的其他特征的信息,例如,如结合以下讨论的实施例所描述的。除了元数据之外,每个数据可以被标记有对先前数据的引用REF 1、REF 2、…、REF N以防止篡改、文件中的间隙、以及通过文件的顺序引用。
一旦元数据被分配给数据(例如,通过智能合同),在没有哈希改变的情况下不能更改元数据,这可以容易地被识别用于无效。因此,元数据创建可被访问以供区块链中的参与者使用的信息的数据记录。
值476i是哈希值或基于先前讨论的任何类型的信息计算的其他值。例如,对于任何给定块,Blocki,该块的值可被更新以反映为该块执行的处理,例如,新的哈希值、新的存储位置、相关联的文件的新的元数据、控制或访问的传输、标识符、或将被添加的其他动作或信息。尽管每个块中的值被示出为与文件的数据的元数据和标头分离,但是在另一实施例中,该值可以部分地或整体地基于该元数据。
一旦形成块490,在任何时间点,文件的不可变监管链可以通过查询区块链获得跨块的值的事务历史。该查询或跟踪过程可开始于解密最当前包括的块(例如,最后(第N)块)的值,然后继续解密其他块的值,直到到达生成块并恢复原始文件为止。解密还可包括在每个块解密报头和文件以及相关联的元数据。
解密是基于在每个块中发生的加密的类型来执行的。这可涉及使用私钥、公钥或公钥-私钥对。例如,当使用非对称加密时,网络中的区块链参与者或处理器可使用预定算法生成公钥和私钥对。公钥和私钥通过某种数学关系相互关联。公共密钥可公开分发以用作从其他用户接收消息的地址,例如,IP地址或家庭地址。私有密钥保密并且用于对发送到其他区块链参与者的消息进行数字签名。签名被包括在消息中,使得接收者可以使用发送者的公钥来验证。这样,接收者可以确信只有发送者可能已经发送该消息。
产生密钥对可类似于在区块链上创建账户,但不必实际上在任何地方注册。此外,在区块链上执行的每个事务由发送方使用其私钥进行数字签名。此签名确保仅账户的所有者能够跟踪和处理(如果在由智能合同确定的许可的范围内)区块链的文件。
如在此更详细地讨论的,预期在此描述的方法的一些实施例的一些或全部操作可以按替代顺序执行或可以根本不执行;此外,多个操作可同时发生或作为较大过程的内部部分发生。
图5示出了根据本公开的实施方式的可用于实现本文所描述的方法、工具和模块中的一个或多个和任何相关功能(例如,使用计算机的一个或多个处理器电路或计算机处理器)的示例性计算机系统501的高级框图。在一些实施例中,计算机系统501的主要部件可以包括一个或多个CPU 502、存储器子系统504、终端接口512、存储接口516、I/O(输入/输出)设备接口514、和网络接口518,所有这些可以直接或间接地通信地耦合,以用于经由存储器总线503、I/O总线508、和I/O总线接口单元510的部件间通信。
计算机系统501可以包含一个或多个通用可编程中央处理单元(CPU)502A、502B、502C和502D,这里统称为CPU 502。在一些实施例中,计算机系统501可以包含相对大型系统的典型的多个处理器;然而,在其他实施例中,计算机系统501可以替代地是单个CPU系统。每个CPU 502可执行存储在存储器子系统504中的指令,并且可包括一个或多个板载高速缓存。
系统存储器504可包括易失性存储器形式的计算机系统可读介质,诸如随机存取存储器(RAM)522或高速缓存存储器524。计算机系统501可以进一步包括其他可移动/不可移动、易失性/非易失性计算机系统存储介质。仅通过示例的方式,存储系统526可被设置为从不可移动、非易失性磁介质(诸如,“硬盘驱动器”)读取和写入不可移动、非易失性磁介质。尽管未示出,可以提供用于从可移动非易失性磁盘(例如,“软盘”)读取或向其写入的磁盘驱动器,或用于从可移动非易失性光盘(如CD-ROM、DVD-ROM或其他光学介质)读取或向其写入的光盘驱动器。此外,存储器504可包括闪存,例如闪存棒驱动器或闪存驱动器。存储器设备可通过一个或多个数据介质接口连接到存储器总线503。存储器504可包括具有一组(例如,至少一个)程序模块的至少一个程序产品,这些程序模块被配置为执行不同实施例的功能。
各自具有至少一组程序模块530的一个或多个程序/实用程序528可被存储在存储器504中。程序/实用程序528可以包括管理程序(也称为虚拟机监视器)、一个或多个操作系统、一个或多个应用程序、其他程序模块和程序数据。操作系统、一个或多个应用程序、其他程序模块和程序数据中的每一个或它们的一些组合可以包括网络环境的实现方式。程序528和/或程序模块530一般执行不同实施例的功能或方法。
尽管存储器总线503在图5中示出为提供CPU 502、存储器子系统504和I/O总线接口510之间的直接通信路径的单个总线结构,但是在一些实施例中,存储器总线503可以包括多个不同的总线或通信路径,其可以以各种形式中的任一种布置,诸如分级、星形或网络配置中的点对点链路、多个分级总线、并行和冗余路径、或任何其他适当类型的配置。此外,尽管I/O总线接口510和I/O总线508被示出为单个相应的单元,但是在一些实施例中,计算机系统501可以包含多个I/O总线接口单元510、多个I/O总线508、或两者。进一步,虽然示出了将I/O总线508与运行到不同I/O设备的不同通信路径分开的多个I/O接口单元,但是在其他实施例中,一些或全部I/O设备可以直接连接到一个或多个系统I/O总线。
在一些实施例中,计算机系统501可以是多用户大型计算机系统、单用户系统、或者服务器计算机或具有很少或没有直接用户界面但从其他计算机系统(客户端)接收请求的类似设备。进一步,在一些实施例中,计算机系统501可以被实现为台式计算机、便携式计算机、膝上型或笔记本计算机、平板计算机、袖珍计算机、电话、智能电话、网络交换机或路由器、或任何其他适当类型的电子设备。
要注意的是,图5旨在描述示例性计算机系统501的代表性主要部件。然而,在一些实施例中,单个组件可以具有比图5中所表示的更大或更小的复杂度,可以存在不同于图5中所示出的那些组件或者除图5中所示出的那些组件之外的组件,并且此类组件的数量、类型和配置可以变化。
在典型的情况下,区块链系统的透明度要求用户操作被存储在分布式分类账中,并且这样,对于访问该分类账的任何人可用。这可能阻碍该技术的采用,以免害怕揭示敏感的商业信息或不符合专门设计用于保护个人隐私的现有规定。
保护用户隐私聚焦于两个方面:使事务的内容模糊并且隐藏用户来源的身份。通过可验证的加密技术来实现内容模糊,而在未经许可的区块链的情况下,通过一次密钥来实现事务匿名性,并且在经许可的区块链的情况下,通过匿名证书来实现事务匿名性。
传统的匿名证书假定一个发布者。虽然这些解决方案可以隐藏用户的身份,但是它们仍然揭示发布者的身份。可授权证书方案支持多个发布者,只要根权威机构存在。单个根权限使得这些解决方案不适用于区块链设置,其中发布者可能不一定使用相同的根权限。
在一些实施例中,本公开描述了即使在没有单个根权威机构的情况下也确保用户匿名性的匿名证书方案。
匿名证书允许用户在不公开他们的身份的情况下证明关于他们的声明。用户首先从授权的发布者获得关于用户的密钥和用户的属性集的证书(即,签名)。为了证明拥有属性,用户利用零知识证明来证明(i)来自被授权的发布者的证书的知识,(ii)对应的密钥的知识以及(iii)证书对所公开的属性进行编码。传统技术可隐藏用户的身份,但仍揭示发布者的身份。工作环境是可委托证书:这些允许根权威机构委托发布能力,其方式为证明拥有有效证书仅揭示根权威机构的身份而不揭示其他事物。然而,在区块链设置中,优选的是在不依赖于根权限的情况下启用匿名性。在一些实施例中,用户可以是区块链网络中的节点或者通过节点访问区块链网络的用户。
在一些实施例中,秘密签名方案(诸如Pointcheval-Sanders签名)可用于对用户证书进行签名,以允许用户高效地和以隐私保护的方式证明关于用户证书的声明。这些签名被设计为适应签名及其相应消息的零知识证明。此外,为了防止用户泄露发布者的公钥,使用多项校对方案来示出用户获得相对于提交的公钥的有效签名,并且该公钥对应于授权的发布者之一。
在一些实施例中,Pointtcheval-Sanders或Groth签名方案被用于零知识证明(zero-knowledge proofs)。在一些实施例中,Pointcheval-Sanders或Groth签名是可随机化的签名,其(i)允许签名者在一次尝试中对消息向量进行签名并且(ii)使得证明者能够证明关于签名及其相应消息的零知识语句。
在一些实施例中,给定承诺列表(诸如Pedersen承诺或Elgamal加密),多出证明允许证明器以隐私保护的方式证明对这些承诺之一的打开的知识。在诸如Pedersen或Elgamal的承诺方案中,承诺者(或发送者)决定(或被给予)在具有至少两个元素的一些公共消息空间中取得的秘密消息m。同一提交者(或发送者)随后决定随机秘密r并从该m和r产生提交c=C(m,r)。该承诺是通过应用由该方案定义的某种公开方法(承诺算法C)来使c公开而产生的,并且随后揭示m和r。验证器(或接收器)被给予c、m、r并且可以检查是否确实C(m,r)=c。
在一些实施例中,为了作为证书发布者加入区块链,一方用适用于匿名证书的签名方案的公钥(例如,Pointcheval Sanders或Groth)联系区块链管理员并且相应地参与交互式零知识证明以便示出底层密钥的知识。如果管理员确信,那么他们共同提交操作op=(join,pk,σ),其中σ是管理员自己的消息(join,pk)的多签名。
在一些实施例中,操作tx=(join,pk,σ)是通过检查不存在具有公钥pk的先前联接操作并且σ是相对于管理员的公钥的有效多签名来验证的。
在一些实施例中,用户从注册的发布者获得其属性的证书。在一些实例中,证书由签名组成。例如,签名可以由在n属性ā=(a1,...,an)和密钥sk(即σ←sign(skI,sk,ā))的向量上的Groth签名σ组成。其中,skI是注册发布者的密钥,并且sk是用户的密钥。在一些实施例中,用户不与发布者共享其密钥,而是发布者提供签名(sk,a1,…,a_n)而不揭示sk的实际值。可以使用多种签名(例如,Pointcheval-Sanders,Groth),只要签名方案允许发布者签名sk而不学习其实际值并且用户匿名地签名事务。
在一些实施例中,用户操作由未公开用户身份的有效载荷和签名组成。例如,为了确保操作不泄露关于用户的任何信息,使用语义上安全的加密对有效载荷进行加密,并且签名是匿名的就足够了。在一些实施例中,有效载荷是操作的数据或与操作有关的数据。
为了生成用于操作tx的匿名签名,用户如下处理:计算对他们的发布者的公钥的承诺;使用承诺是对被授权的发布者之一的公钥的有效承诺的一出多证据来证明;在零知识中证明在所提交的公钥下的有效签名的知识;使用对该值的知识的证明(如Schnorr证明)来证明。在一些实例中,知识的证明是一种交互式证明,其中,所述证明器在一定程度上证明对某事物的知识,从而使得验证者将其接受为所述证明器确实拥有所述知识的证明。在一些实例中,通过计算来证明知识。例如,对于给定的输入,证明器提供验证者接受(即,先前已从验证的源接收)的输出作为正确的输出。在一些实施例中,证明器本身不提供知识,而是替代地提供需要知识来生成的数据。
在一些实施例中,证明(例如,Schnorr证明)通过结合操作、迄今为止生成的零知识证明、以及对公钥的承诺来起到知识签名的作用。在一些实施例中,耦合Groth签名和一出多证明允许在没有根权威机构的情况下高效地实现多发布者匿名证书。例如,Groth签名可由支持对涉及签名和对应的消息的语句的高效零知识证明的任何基于配对的签名(例如,Pointtcheval-Sanders签名)来代替。
图6示出了用于在经许可的区块链中使用多发布者匿名证书的示例方法600的流程图。
图6以关联用户与元组的步骤602开始。在一些实施例中,元组是有限有序元素列表。n元组是n个元素的序列,其中n是非负整数。例如,元组可以基于公式用户←(pk,a1,....,an)相关联,其中,pk是用户的公钥并且ai是用户的第i个属性。
图6继续将发布者与PK公钥相关联的步骤604。每个发布者可以具有私有/公共密钥对(PRK/PK),也称为秘密/公共密钥对。在示例中,第一发布者具有PRK1/PK1,第二发布者具有PRK2/PK2,并且第三发布者具有PRK3/PK3。在一些实施例中,每个发布者可以使用公式pkI←X=Qx与公钥相关联,其中X从密钥sk=x中计算。
在一些实施例中,用户与Pk公钥的关联可包括由发布者注册用户。在一些实施例中,发布者可以使用交互式零知识证明来验证用户知道密钥sk和底层pk,检查用户持有属性(a1,....,an),并对(sk,a1,....,an)发布证书σ(即,签名)。在一些实例中,属性可以包括实体或用户的一个或多个标识符。例如,属性可以是用户的公民身份、用户的年龄、用户的标识号码、用户可访问的区块链网络中的节点的标识号码等。在一些实施例中,(多个)属性由系统确定并且不限于上述示例。
图6继续步骤606:用户利用证书(例如,签名)对操作进行签名。在一些实施例中,用户可以计算对某个公钥的操作的承诺。在一些实例中,承诺方案是加密工具。例如,承诺可以允许用户隐藏秘密值,同时将用户绑定到该值,使得发布者可以在不揭露秘密值的情况下验证该秘密值。由此,承诺可用于在将所有者绑定到秘密属性时隐藏操作的值。在一些实施例中,用户可以生成零知识证明,其示出了用户知道元组和在其下的有效签名。
在一些实施例中,用户可生成多分之一的证据以示出提交至与所公布的承诺之一相同的公钥。例如,无数证明允许证明器以隐私保护的方式证明对这些承诺之一的打开的知识。即,证明者未揭示哪个承诺是已知的。在一些实施例中,用户可通过将消息包括在零知识证明的挑战中来签署消息(例如,操作)(来自步骤604)。
在一些实施例中,系统可确定证书是否呈现在正确的时期中。这在步骤607中示出。例如,一些证书可仅在单个时期期间有效。在一些实施例中,如果在证书有效的时期期间呈现用户的证书,则在步骤608中接受签名。在一些实施例中,如果在证书有效的时期期间未呈现用户的证书,则在步骤610拒绝签名。
本公开的实施例包括一种系统,所述系统包括存储器和与所述存储器通信的处理器,所述处理器被配置为执行包括匿名地对用户事务进行签名和验证的操作。即,不揭示产生事务的用户的身份或产生用户证书的发布者的身份。
本公开的附加的实施例包括一种方法,该方法包括签名方案和零知识证明,所述签名方案允许用户以隐私保护的方式证明关于他们的权利要求,所述零知识证明使得用户能够证明混淆的公共密钥(通过加密或提交)是授权的发布者之一的公共密钥。这样的签名的示例是Groth签名或者Pointcheval Sanders签名,并且零知识证明的示例是多数证明中的一项证明。
本披露的进一步的实施例包括一种计算机程序产品,该计算机程序产品包括计算机可读存储介质,该计算机可读存储介质具有与其体现的程序指令,这些程序指令可由处理器执行以致使这些处理器执行一种方法,该方法包括在该区块链上发布者注册、用户注册、用户签名事务并且该区块链认证用户事务。
如在此更详细地讨论的,预期在此描述的方法的一些实施例的一些或全部操作可以按替代顺序执行或可以根本不执行;此外,多个操作可同时发生或作为较大过程的内部部分发生。
本发明可以是任何可能的技术细节集成度的系统、方法和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。
计算机可读存储介质可为可保留和存储供指令执行装置使用的指令的有形装置。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字通用盘(DVD)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输媒体传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
本文中所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如Smalltalk、C++等)和过程程序设计语言(诸如“C”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个方框中规定的功能/动作的方面的指令的制造品。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的或多个方框中规定的功能/动作。
附图中的流程图和框图示出了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,连续示出的两个方框实际上可以作为一个步骤完成,同时、基本上同时、以部分或完全时间上重叠的方式执行,或者方框有时可以以相反的顺序执行,这取决于所涉及的功能。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
已经出于说明的目的呈现了本披露的不同实施例的描述,但并不旨在是详尽的或限于所披露的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域普通技术人员将是显而易见的。这里使用的术语被选择来最好地解释实施例的原理、实际应用或对在市场中找到的技术的技术改进,或者使得本领域普通技术人员能够理解这里公开的实施例。
虽然已经根据具体实施例描述了本披露,但预期其变更和修改将对本领域技术人员变得清楚。因此,以下权利要求旨在被解释为覆盖落入本公开的真实精神和范围内的所有这样的改变和修改。
Claims (15)
1.一种系统,包括:
存储器;以及
与所述存储器通信的处理器,所述处理器被配置为执行包括以下的处理:
由用户从发布者获得用于所述用户的证书,所述证书基于所述用户的一个或多个属性,
其中,所述发布者选自一个或多个授权的发布者,并且
其中,所述证书包括关于所述一个或多个属性的签名和密钥;
由所述用户生成由有效载荷和第二签名组成的操作;
由所述用户计算对所述发布者的公钥的承诺;
由所述用户使用一出多证明来证明所述承诺是对所述授权的发布者之一的公钥的有效承诺;
由所述用户使用零知识证明在所述发布者的所述公共密钥下证明所述签名和所述证书的知识证明;以及
由所述用户使用对所述经签名的密钥和属性的值的知识的证明来进行证明。
2.根据权利要求1所述的系统,其中,所述签名是Groth签名。
3.根据权利要求1所述的系统,其中,使用语义安全加密对所述有效载荷进行加密。
4.根据权利要求1所述的系统,其中,所述知识证明是Schnorr证明。
5.根据权利要求1所述的系统,其中,Groth签名方案有利于有效证书的知识的零知识证明。
6.根据权利要求1所述的系统,其中,所述用户使用知识证明证明所述证书是有效的。
7.根据权利要求1所述的系统,其中,所述证书仅在时期期间有效。
8.一种方法,包括:
由用户从发布者获得用于所述用户的证书,所述证书基于所述用户的一个或多个属性,
其中,所述发布者选自一个或多个授权的发布者,并且
其中,所述证书包括关于所述一个或多个属性的签名和密钥;
由所述用户生成由有效载荷和第二签名组成的操作;
由所述用户计算对所述发布者的公钥的承诺;
由所述用户使用一出多证明来证明所述承诺是对所述授权的发布者之一的公钥的有效承诺;
由所述用户使用零知识证明在所述发布者的所述公共密钥下证明所述签名和所述证书的知识证明;以及
由所述用户使用对所述经签名的密钥和属性的值的知识的证明来进行证明。
9.根据权利要求8所述的方法,其中,所述签名是Groth签名。
10.根据权利要求8所述的方法,其中,使用语义安全加密对所述有效载荷进行加密。
11.根据权利要求8所述的方法,其中,所述知识证明是Schnorr证明。
12.根据权利要求8所述的方法,其中,Groth签名方案促进有效证书的知识的零知识证明。
13.根据权利要求8所述的方法,其中,所述用户使用知识证明证明所述证书是有效的。
14.根据权利要求8所述的方法,其中,所述证书仅在时期期间有效。
15.一种计算机程序产品,包括程序指令,所述程序指令可由处理器执行以使所述处理器执行根据权利要求8至14中任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/644,091 | 2021-12-13 | ||
US17/644,091 US20230188353A1 (en) | 2021-12-13 | 2021-12-13 | Multi-issuer anonymous credentials for permissioned blockchains |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116263834A true CN116263834A (zh) | 2023-06-16 |
Family
ID=86694026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211485099.XA Pending CN116263834A (zh) | 2021-12-13 | 2022-11-24 | 许可区块链的多发布者匿名证书 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230188353A1 (zh) |
JP (1) | JP2023087665A (zh) |
CN (1) | CN116263834A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11870905B1 (en) * | 2023-04-20 | 2024-01-09 | Cplabs, Inc. | Method for providing user identity based on zero-knowledge proof over blockchain network by using user certificate and blockchain system using the same |
-
2021
- 2021-12-13 US US17/644,091 patent/US20230188353A1/en active Pending
-
2022
- 2022-11-24 CN CN202211485099.XA patent/CN116263834A/zh active Pending
- 2022-12-06 JP JP2022194919A patent/JP2023087665A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230188353A1 (en) | 2023-06-15 |
JP2023087665A (ja) | 2023-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111144881B (zh) | 对资产转移数据的选择性访问 | |
CN111800268B (zh) | 用于区块链背书的零知识证明 | |
US11741083B2 (en) | Cross-shard private atomic commit | |
US11621858B2 (en) | Anonymity mechanisms in permissioned blockchain networks | |
CN111753002A (zh) | 基于同意的数据管理 | |
US11804950B2 (en) | Parallel processing of blockchain procedures | |
CN115705571A (zh) | 保护可审计的帐户的隐私 | |
CN111698198A (zh) | 秘密生成和份额分发 | |
US11374755B1 (en) | Entangled token structure for blockchain networks | |
CN116583833A (zh) | 自审计区块链 | |
CN111797426B (zh) | 一种用于去信任通知服务的方法和系统 | |
CN116263834A (zh) | 许可区块链的多发布者匿名证书 | |
US20230412402A1 (en) | Endorsement policy consolidation in blockchain networks | |
US20230308276A1 (en) | Creating non-fungible token shards | |
WO2023099357A1 (en) | Compressible blockchains | |
US11956360B2 (en) | Provable trade secrets on blockchain networks | |
CN116361823A (zh) | 用于隐私保护的区块链的选择性审计处理 | |
US20220399988A1 (en) | Linking blockchain operations | |
US11632237B2 (en) | Configuration override in a blockchain network | |
CN112016118B (zh) | 用于匿名数据库评级更新的方法和系统 | |
JP2023520634A (ja) | 文脈完全性の維持 | |
US11968307B2 (en) | Private ledger partitions in blockchain networks | |
US20230403161A1 (en) | Aggregate anonymous credentials for decentralized identity in blockchain | |
US20230081416A1 (en) | Anonymous private shared partitions in blockchain networks | |
US12010226B2 (en) | Blockchain data segregation |
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 |