CN115152177A - 提供机密知识的专门证明的系统和方法 - Google Patents
提供机密知识的专门证明的系统和方法 Download PDFInfo
- Publication number
- CN115152177A CN115152177A CN202180009307.6A CN202180009307A CN115152177A CN 115152177 A CN115152177 A CN 115152177A CN 202180009307 A CN202180009307 A CN 202180009307A CN 115152177 A CN115152177 A CN 115152177A
- Authority
- CN
- China
- Prior art keywords
- node
- proof
- generated
- shared data
- attestation
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 109
- 238000012795 verification Methods 0.000 claims abstract description 106
- 230000009471 action Effects 0.000 claims abstract description 40
- 238000003860 storage Methods 0.000 claims description 26
- 238000010200 validation analysis Methods 0.000 claims description 21
- 230000004044 response Effects 0.000 claims description 14
- 230000002452 interceptive effect Effects 0.000 claims description 12
- 230000008569 process Effects 0.000 description 61
- 230000006870 function Effects 0.000 description 32
- 238000004422 calculation algorithm Methods 0.000 description 26
- 241000501754 Astronotus ocellatus Species 0.000 description 19
- 238000004891 communication Methods 0.000 description 18
- 238000004364 calculation method Methods 0.000 description 14
- 238000004590 computer program Methods 0.000 description 13
- 230000007246 mechanism Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 230000010354 integration Effects 0.000 description 4
- 238000012552 review Methods 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000013467 fragmentation Methods 0.000 description 3
- 238000006062 fragmentation reaction Methods 0.000 description 3
- 230000007774 longterm Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 239000000758 substrate Substances 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 230000004075 alteration Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000004883 computer application Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013138 pruning Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 206010007559 Cardiac failure congestive Diseases 0.000 description 1
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- LFQSCWFLJHTTHZ-UHFFFAOYSA-N Ethanol Chemical compound CCO LFQSCWFLJHTTHZ-UHFFFAOYSA-N 0.000 description 1
- 239000002253 acid Substances 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000027455 binding Effects 0.000 description 1
- 238000009739 binding Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000002775 capsule Substances 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000009563 continuous hemofiltration Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 230000003292 diminished effect Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000005242 forging Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- WZWYJBNHTWCXIM-UHFFFAOYSA-N tenoxicam Chemical compound O=C1C=2SC=CC=2S(=O)(=O)N(C)C1=C(O)NC1=CC=CC=N1 WZWYJBNHTWCXIM-UHFFFAOYSA-N 0.000 description 1
- 229960002871 tenoxicam Drugs 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
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/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/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
-
- 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
- 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
- H04L9/3252—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 using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
-
- 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)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
提供了用于在不揭露共享的数据的情况下验证根据共享的数据而生成的证明的系统和方法。在一个方面,该方法包括:从第一节点接收根据与第一节点相关联的第一私钥和在第一节点与第二节点之间共享的数据而生成的第一证明;从第二节点接收根据与第二节点相关联的第二私钥和共享的数据而生成的第二证明;在不揭露共享的数据的情况下,利用在数学上与第一私钥相关的第一公钥和在数学上与第二私钥相关的第二公钥来验证第一证明和第二证明两者都是根据共享的数据而生成的;以及基于第一证明和第二证明两者都是根据共享的数据而生成的验证来执行动作。
Description
相关申请的交叉引用
本申请要求于2020年7月30日提交的美国专利申请第63/058,918号的优先权,出于所有目的,该申请通过引用并入本文。
技术领域
所公开的技术总体上涉及用于提供增强的数据验证和加密签名的系统和方法。
背景技术
在经典的加密签名方案中,私钥是由签名者处理的唯一秘密数据。对应的公钥是公知的数据。例如,签名实体可以存储它们的私钥并与任何其他方共享对应的公钥。
被签名的消息是公共数据,并且是验证签名的任何人都需要的,就像与签名者的私钥相对应的公钥一样。
验证者实体可以验证消息、公钥和数字签名是否与彼此对应。验证过程或接受(例如,输出“成功”等)或拒绝(例如,输出“失败”等)三种数据一致性(即消息、公钥和数字签名与彼此对应)。如果验证过程输出“成功”,则第三方很有可能确信该消息已由秘密私钥的持有者签名。假设在不知道该实体的私钥的情况下,由签名实体生成有效的数字签名在计算上是不可行的。验证者可以依赖于签名实体的身份是由拥有私钥的实体实现的假设。在一些示例中,验证者可以在假设其数字确定身份的情况下向签名实体提供商品或服务。在一些示例中,验证者可以响应于所验证的信息来执行其他活动,这取决于其中使用签名的应用(例如,批准所签署的文档上的合约/协议/动作等)。
发明内容
本文描述的系统采用机密知识的专门证明(SPoCK)方案。该方案提出了私钥仍然是秘密但消息也是秘密的场景。该方案可以由所描述的系统中的证明者采用来使用这两个秘密数据生成证明。在一些实施方式中,该方案允许两方或更多方提供公开证明以表明他们知道相同的秘密(例如秘密消息)。在一些实施方式中,生成证明并验证两个或更多个证明的过程是非交互式的。在一些实施方式中,每个证明都专用于证明者,因为它是使用证明者的私钥而生成的。在一些实施方式中,证明可以由证明者公开揭露,同时对秘密消息保密。
证明可以是专门的或非专门的。如果一个证明只能归属于一个证明者用户,那么它就是“专门的”。可以通过使用仅由证明者用户拥有的数据(例如私钥)来生成“专门的”证明。“非专门的”证明是不能归因于特定证明者用户并声称由任何证明者用户而生成的证明。
在说明性示例中,两个证明者用户A和B都知道秘密并且想要向验证者用户证明或甚至公开证明。证明者用户不能公开揭露秘密(否则它不再是秘密)并且不能共享秘密的非专门证明。例如,对秘密进行散列并公开共享散列保护秘密,但任何一方都可以复制散列并声称他们也知道该秘密。在本公开内容的一些实施方式中,可以生成证明使得生成证明的设备仅归属于其证明者用户。该方案可能适用于两个证明者用户,但它可以推广到任何数量的证明者用户,以表明他们都知道相同的秘密。
作为示例,在一些实施方式中,证明者用户可以使用秘密消息和设备的私钥来生成证明(例如机密知识的专门证明)。所生成的证明不能由仅使用一个证明者用户的对应的公钥的验证者自行验证。这是因为消息是秘密的,并且验证者不知道。但是,如果持有第二私钥的第二方(第二证明者用户)也使用相同的秘密消息和该第二私钥生成证明(例如,机密知识的专门证明),则使用证明者用户的两个公钥的验证者可以确定是否已从相同的秘密消息生成了两个证明。在这样的实施方式中,验证者将无法访问秘密消息的内容,但是如果验证过程输出“成功”,则验证者可以确定两个证明者用户是否使用了相同的秘密消息。
因此,在一方面,本文描述的是用于在不揭露共享的数据的情况下验证根据共享的数据而生成的证明的计算机实现的方法。方法由一个或更多个处理器执行。方法包括:从第一节点接收根据与第一节点相关联的第一私钥和在第一节点与第二节点之间共享的数据而生成的第一证明;从第二节点接收根据共享的数据和与第二节点相关联的第二私钥而生成的第二证明;在不揭露共享的数据的情况下,利用在数学上与第一私钥相关的第一公钥和在数学上与第二私钥相关的第二公钥来验证第一证明和第二证明两者都是根据共享的数据而生成的;以及基于第一证明和第二证明两者都是根据共享的数据而生成的验证来执行动作。在一些实施方式中,第一证明和第二证明分别由第一节点和第二节点公开揭露。在一些实施方式中,动作包括公开揭露第一证明和第二证明两者都是根据共享的数据而生成的验证。在一些实施方式中,第一证明仅归属于第一节点。在一些实施方式中,第二证明仅归属于第二节点。在一些实施方式中,第一证明或第二证明不能仅利用相应的公钥来验证。在一些实施方式中,第一证明和第二证明每个都包括利用相应的私钥来生成的共享的数据的签名。在一些实施方式中,签名基于BLS签名方案。在一些实施方式中,第一证明和第二证明的验证包括基于两个签名、第一公钥和第二公钥的配对相等性检查。在一些实施方式中,验证第一证明和第二证明包括配对相等性检查。在一些实施方式中,第一证明和第二证明是在非交互协议中生成和验证的。在一些实施方式中,共享的数据包括证明区块链内的区块的至少一个交易的执行的执行跟踪。在一些实施方式中,第一节点包括用于保证执行节点的计算的正确性的验证节点。在一些实施方式中,计算包括执行跟踪。在一些实施方式中,第二节点包括用于执行区块的至少一个交易的执行节点。在一些实施方式中,验证节点发布第一证明作为计算已被验证的证明。在一些实施方式中,动作包括向客户端提供状态响应,该状态响应是基于区块的输出来确定的。在一些实施方式中,计算被分解成块,以允许以并行且独立的方式进行更轻量的计算验证。在一些实施方式中,动作包括通过执行节点和验证节点仲裁块中的每一个是根据相同的中间结果一致地生成的。
在另一方面,本文描述的是用于在不揭露共享的数据的情况下验证根据共享的数据而生成的证明的系统。这些系统包括:一个或更多个处理器;以及计算机可读存储设备,其耦接至一个或更多个处理器并具有存储在其上的指令,所述指令当由一个或更多个处理器执行时,使一个或更多个处理器执行操作。这些操作包括:从第一节点接收根据与第一节点相关联的第一私钥和在第一节点与第二节点之间共享的数据而生成的第一证明;从第二节点接收根据共享的数据和与第二节点相关联的第二私钥而生成的第二证明;在不揭露共享的数据的情况下,利用在数学上与第一私钥相关的第一公钥和在数学上与第二私钥相关的第二公钥来验证第一证明和第二证明两者都是根据共享的数据而生成的;以及基于第一证明和第二证明两者都是根据共享的数据而生成的验证来执行动作。在一些实施方式中,第一证明和第二证明分别由第一节点和第二节点公开揭露。在一些实施方式中,动作包括公开揭露第一证明和第二证明两者都是根据共享的数据而生成的验证。在一些实施方式中,第一证明仅归属于第一节点。在一些实施方式中,第二证明仅归属于第二节点。在一些实施方式中,第一证明或第二证明不能仅利用相应的公钥来验证。在一些实施方式中,第一证明和第二证明每个都包括利用相应的私钥来生成的共享的数据的签名。在一些实施方式中,签名基于BLS签名方案。在一些实施方式中,第一证明和第二证明的验证包括基于两个签名、第一公钥和第二公钥的配对相等性检查。在一些实施方式中,验证第一证明和第二证明包括配对相等性检查。在一些实施方式中,第一证明和第二证明是在非交互协议中生成和验证的。在一些实施方式中,共享的数据包括证明区块链内的区块的至少一个交易的执行的执行跟踪。在一些实施方式中,第一节点包括用于保证执行节点的计算的正确性的验证节点。在一些实施方式中,计算包括执行跟踪。在一些实施方式中,第二节点包括用于执行区块的至少一个交易的执行节点。在一些实施方式中,验证节点发布第一证明作为计算已被验证的证明。在一些实施方式中,动作包括向客户端提供状态响应,该状态响应基于区块的输出而确定。在一些实施方式中,计算被分解成块,以允许以并行且独立的方式进行更轻量的计算验证。在一些实施方式中,动作包括通过执行节点和验证节点仲裁块中的每一个是根据相同的中间结果一致地生成的。
在另一方面中,本文描述了非暂态计算机可读存储介质,其耦接至一个或更多个处理器并具有存储在其上的指令,所述指令当由一个或更多个处理器执行时,使一个或更多个处理器执行操作。这些操作包括:从第一节点接收根据与第一节点相关联的第一私钥和在第一节点与第二节点之间共享的数据而生成的第一证明;从第二节点接收根据共享的数据和与第二节点相关联的第二私钥而生成的第二证明;在不揭露共享的数据的情况下,利用在数学上与第一私钥相关的第一公钥和在数学上与第二私钥相关的第二公钥来验证第一证明和第二证明两者都是根据共享的数据而生成的;以及基于第一证明和第二证明两者都是根据共享的数据而生成的验证来执行动作。在一些实施方式中,第一证明和第二证明分别由第一节点和第二节点公开揭露。在一些实施方式中,动作包括公开揭露第一证明和第二证明两者都是根据共享的数据而生成的验证。在一些实施方式中,第一证明仅归属于第一节点。在一些实施方式中,第二证明仅归属于第二节点。在一些实施方式中,第一证明或第二证明不能仅利用相应的公钥来验证。在一些实施方式中,第一证明和第二证明每个都包括利用相应的私钥来生成的共享的数据的签名。在一些实施方式中,签名基于BLS签名方案。在一些实施方式中,第一证明和第二证明的验证包括基于两个签名、第一公钥和第二公钥的配对相等性检查。
在一些实施方式中,验证第一证明和第二证明包括配对相等性检查。在一些实施方式中,第一证明和第二证明是在非交互协议中生成和验证的。在一些实施方式中,共享的数据包括证明区块链内的区块的至少一个交易的执行的执行跟踪。在一些实施方式中,第一节点包括用于保证执行节点的计算的正确性的验证节点。在一些实施方式中,计算包括执行跟踪。在一些实施方式中,第二节点包括用于执行区块的至少一个交易的执行节点。在一些实施方式中,验证节点发布第一证明作为计算已被验证的证明。在一些实施方式中,动作包括向客户端提供状态响应,该状态响应基于区块的输出而确定。在一些实施方式中,计算被分解成块,以允许以并行且独立的方式进行更轻量的计算验证。在一些实施方式中,动作包括通过执行节点和验证节点仲裁块中的每一个是根据相同的中间结果一致地生成的。
在另一方面,本文描述的是用于在不揭露共享的数据的情况下验证根据共享的数据而生成的证明的系统。这些系统包括:一个或更多个处理器;以及计算机可读存储设备,其耦接至一个或更多个处理器并具有存储在其上的指令,所述指令当由一个或更多个处理器执行时,使一个或更多个处理器执行操作。这些操作包括:从多个节点中的每个节点接收根据节点之间共享的数据以及与每个节点相关联的相应的私钥而生成的相应的证明;在不揭露共享的数据的情况下,利用每个都在数学上与私钥中的相应的一个私钥相关的多个公钥来验证证明中的每一个是根据共享的数据而生成的;以及基于证明是根据共享的数据而生成的验证来执行动作。在一些实施方式中,证明中的每一个都由它们相应的节点公开揭露。在一些实施方式中,动作包括公开揭露第一证明和第二证明两者都是根据共享的数据而生成的验证。在一些实施方式中,证明中的每一个仅归属于相应的生成节点。在一些实施方式中,证明中的每一个不能仅利用相应的公钥来验证。在一些实施方式中,证明每个都包括利用相应的私钥来生成的共享的数据的签名。在一些实施方式中,证明的验证包括基于签名和公钥的配对相等性检查。在一些实施方式中,验证证明包括配对相等性检查。在一些实施方式中,证明是在非交互协议中生成和验证的。在一些实施方式中,共享的数据包括证明区块链内的区块的至少一个交易的执行的执行跟踪。
在另一方面,本文描述的是用于在不揭露共享的数据的情况下验证根据共享的数据而生成的证明的计算机实现的方法。方法由一个或更多个处理器执行。方法包括:从多个节点中的每个节点接收根据节点之间共享的数据以及与每个节点相关联的相应的私钥而生成的相应的证明;在不揭露共享的数据的情况下,利用每个都在数学上与私钥中的相应的一个私钥相关的多个公钥来验证证明中的每一个是根据共享的数据而生成的;以及基于证明是根据共享的数据而生成的验证来执行动作。在一些实施方式中,证明中的每一个都由它们相应的节点公开揭露。在一些实施方式中,动作包括公开揭露第一证明和第二证明两者都是根据共享的数据而生成的验证。在一些实施方式中,证明中的每一个仅归属于相应的生成节点。在一些实施方式中,证明中的每一个不能仅利用相应的公钥来验证。在一些实施方式中,证明每个都包括利用相应的私钥来生成的共享的数据的签名。在一些实施方式中,证明的验证包括基于签名和公钥的配对相等性检查。在一些实施方式中,验证证明包括配对相等性检查。在一些实施方式中,证明是在非交互协议中生成和验证的。在一些实施方式中,共享的数据包括证明区块链内的区块的至少一个交易的执行的执行跟踪。
在另一方面中,本文描述了非暂态计算机可读存储介质,其耦接至一个或更多个处理器并具有存储在其上的指令,所述指令当由一个或更多个处理器执行时,使一个或更多个处理器执行操作。这些操作包括:从多个节点中的每个节点接收根据节点之间共享的数据以及与每个节点相关联的相应的私钥而生成的相应的证明;在不揭露共享的数据的情况下,利用每个都在数学上与私钥中的相应的一个私钥相关的多个公钥来验证证明中的每一个是根据共享的数据而生成的;以及基于证明是根据共享的数据而生成的验证来执行动作。在一些实施方式中,证明中的每一个都由它们相应的节点公开揭露。在一些实施方式中,动作包括公开揭露第一证明和第二证明两者都是根据共享的数据而生成的验证。在一些实施方式中,证明中的每一个仅归属于相应的生成节点。在一些实施方式中,证明中的每一个不能仅利用相应的公钥来验证。在一些实施方式中,证明每个都包括利用相应的私钥来生成的共享的数据的签名。在一些实施方式中,证明的验证包括基于签名和公钥的配对相等性检查。在一些实施方式中,验证证明包括配对相等性检查。在一些实施方式中,证明是在非交互协议中生成和验证的。在一些实施方式中,共享的数据包括证明区块链内的区块的至少一个交易的执行的执行跟踪。在一些实施方式中,若干证明的验证在节点的数量方面是线性的,而不是二次的。在一些实施方式中,验证证明需要比节点的数量少一个验证。
应当理解,根据本公开内容的方法可以包括本文中描述的各方面和特征的任何组合。也就是说,根据本公开内容的方法不限于本文具体描述的方面和特征的组合,还可以包括所提供的方面和特征的任何组合。
在附图和下面的描述中阐述了本公开内容的一个或更多个实施方式的细节。本公开内容的其他特征和优点根据说明书和附图以及根据权利要求是明显的。本发明内容并非旨在限制本文所描述的任何发明的范围,所述发明仅由所附权利要求限定。
附图说明
根据一个或更多个不同实施方式,本文公开的技术将参照以下附图进行详细描述。提供附图仅用于说明目的并且仅描绘所公开技术的典型或示例实施方式。提供这些附图是为了便于读者理解所公开的技术并且不应被视为限制其广度、范围或适用性。应当注意,为了清楚和便于说明,这些图不一定按比例绘制。
图1示出了如本公开内容的各种实施方式中所示的分布式账本和/或区块链系统;
图2描绘了可以用于执行本公开内容的实现方式的非限制性示例性环境;
图3描绘了所描述的系统的非限制性示例性架构;
图4至图7描绘了描述方案的各种特性的非限制性示例性流程图;
图8至图9描绘了可以由本文描述的系统的实施方式实现的非限制性示例性过程;以及
图10描绘了可以被编程或以其他方式配置成实现本公开内容的方法或系统的非限制性示例性计算机系统。
附图并不旨在穷举所公开的精确形式或将本发明限于所公开的精确形式。应当理解,本发明可以通过修改和变更来实践,并且所公开的技术仅受权利要求及其等同物的限制。
具体实施方式
除非另有定义,否则本文使用的所有技术术语具有与本主题所属领域的普通技术人员通常理解的相同含义。如在本说明书和所附权利要求中所使用的,除非上下文另有明确指示,否则单数形式“一”、“一个”和“该”包括复数指示。除非另有说明,否则本文对“或”的任何提及旨在涵盖“和/或”。
如本文所用的,术语“实时”是指在给定系统的处理限制、准确获得数据和图像所需的时间以及数据和图像的变化率的情况下,在没有故意延迟的情况下传输或处理数据。在一些示例中,“实时”用于描述从本公开内容的实施方式的部件获得的信息的呈现。
如本文所使用的,术语“智能合约(smart contract)”是指一组计算机实现的指令,所述指令可以在数字化环境中自动执行、控制或记录计算事件和动作。在一些示例中,可以在区块链或计算设备的分布式账本上执行计算。可以使用区块链网络上的加密签名交易来部署智能合约的实现。在一些示例中,智能合约实现一组与协议的规则和处罚相关的计算机实现的指令。智能合约可以通过将信息作为输入、通过在智能合约中陈述的规则将值分配给该输入、以及自执行那些规则所需的计算机实现的动作来实现这一点。例如,智能合约可以确定资产是否应当被发送到目的地实体或者它是否应当被返回到始发实体。
作为说明性示例,可以对智能合约进行编程以在接收到物品时交付付款。在这种格式中,智能合约可以生成为计算机代码,存储和复制在系统上(例如在区块链或分布式账本等中),并由运行区块链的计算机的网络监督。智能合约可以存储数据。存储的数据可以用于记录信息、事实、关联、余额和实现现实世界合约的逻辑所需的任何其他信息。在一些实施方式中,智能合约在虚拟机内部署、存储和执行。
如本文所使用的,术语“可组合性”包括处理部件的相互关系的系统设计原则。例如,高度可组合的系统提供了可以以各种组合方式选择并组装的部件,以满足特定的用户要求。在区块链和智能合约的背景下,可组合性包括将涉及多个独立智能合约的操作链接在一起的能力。最近一个可组合性的示例是dY/dX,它是建立在以太坊区块链上的金融衍生品的去中心化协议。dY/dX通过启用抵押贷款允许去中心化保证金交易。典型的dY/dX交易至少将以下三个独立的智能合约进行组合:核心dY/dX合约本身、像0x的去中心化交易所以及诸如如DAI的至少一个以太坊征求意见(ERC)-20代币。
如本文所使用的,术语“分片(sharding)”一般地指的是将网络划分为异步交互的一系列子单元的各种缩放提议。该概念已广泛用于数据库中,以使它们更具可扩展性。最近,分片已被用于区块链以提高区块链中的交易速度。例如,在数据库上下文中,分片可以包括一种用于在数据库内水平划分数据的方法。更一般地,数据库被分成称为“分片”的小片,当它们聚合在一起时形成原始数据库。在分布式区块链网络中,网络由以点对点格式连接的一系列节点组成,而没有中央机构(central authority)。在区块链系统的一些示例中,每个节点存储网络的所有状态并处理所有交易。虽然这通过去中心化特别是在诸如比特币和以的工作证明(PoW)系统中提供了高级别的安全性,但它可能导致合法的扩展问题。例如,以太坊网络中的全节点存储了区块链的整个状态,其包括账户余额、存储和合约代码。不幸的是,随着参与者的数量线性增加,他们之间的相互通信开销以指数速度增加。这种限制是由于达成共识所需的节点之间所需的通信。网络中的节点不具有特权,网络中的每个节点都存储和处理每个交易。因此,在以太坊规模的网络中,当网络紧张时,高的gas费用(gas cost)和更长的交易确认时间等问题成为明显的问题。网络仅与单个节点一样快,而不是与其各部分的总和一样快。这样,分片有助于减轻这些问题。该概念涉及将节点的子集分组到分片中,这些分片进而处理特定于该分片的交易。采用这种类型的架构允许系统并行处理许多交易。
如本文所使用的,术语“共识算法”或“共识协议”包括描述在诸如节点的电子设备之间的数据的通信和传输如何工作的一组规则。当足够多的设备关于什么是真实的以及应当记录到区块链上的内容达成一致时,就会达成共识。因此,共识协议是这样的管理规则:允许分散在世界各地的设备事实上达成协议,允许区块链网络在不被破坏的情况下运行。
如本文所使用的,在分布式系统的上下文中,术语“拜占庭容错(Byzantine faulttolerance,BFT)共识算法”包括分布式计算机网络(例如所描述的系统中的节点的对等网络)尽管系统的恶意部件(节点)失效或向其他对等体传播不正确的信息,但能够如所期望地运行并正确地达到足够的共识。目标是通过减轻这些恶意节点对网络的正确功能和系统中诚实节点达成的正确共识的影响来防御灾难性的系统故障。
如本文所使用的,术语“削减(slash)”是为了惩罚例如网络参与者,因为网络参与者未能遵守针对网络设定的规则。惩罚的形式可能是对他们托管或质押的资金处以罚款。
如本文所使用的,各方(例如、节点)之间的术语“交互协议”包括各方在一种对话(例如,通过问答)中交换消息的约束。在一些实施方式中,这种消息交换需要某种形式的同步以便发送和接收消息。
如本文所使用的,各方(例如、节点)之间的术语“非交互协议”允许各方中的每一方在无需等待其他方的情况下执行动作。在所描述的系统的一些实施方式中,节点自己生成证明并且不需要来自任何其他节点的输入。类似地,在所描述的系统的一些实施方式中,验证不需要与用户进一步讨论,因为仅他们的初始证明就足够了。
图1示出了如本公开内容的各种实施方式中所示的分布式账本和/或区块链系统。分布式账本可以包括一个或更多个计算设备102、104、106、108和可以用于形成对等网络的网络110。在一些实施方式中,网络110包括局域网(LAN)、广域网(WAN)、因特网或其组合,并且连接设备(例如、计算设备102、104、106、108)。在一些实施方式中,网络110包括内联网、外联网或与因特网通信的内联网或外联网。在一些实施方式中,网络110包括电信或数据网络。在一些实施方式中,网络110可以通过有线或无线通信链路访问。
分布式账本(例如、区块链)可以被描述为跨不同位置和人员以去中心化形式维护的任何交易或合同的账本,从而消除了中央机构对操纵进行检查的需要。关于它的所有信息使用加密技术安全并准确地存储,并且可以使用密钥和加密签名来访问。一旦信息被存储,它就变成了由网络规则控制的不可变的数据库。分布式账本本质上比例如集中式账本更难攻击,因为所有分布式副本都需要同时受到攻击才能成功。此外,这些记录可抵抗单方的恶意更改。
效率是解决在区块链空间中观察到的两个实质问题的多面柱。第一个是工作证明(PoW),它一直因过度使用电力和资源配置效率低下而受到批评。PoW被拒绝作为用于保护系统的选项。第二个问题是区块链需要大量的重复工作才能运行,即使在基于权益证明(PoS)的系统中,即使它们没有解决PoW问题,仍然需要所有节点保持所有状态。例如,在传统的区块链中,每个节点都可以执行与区块生产相关联的每一项任务。这种重复不仅是规模的瓶颈,而且资源分配较差,如果将其应用于它们相应的优势,将会得到更好的服务。
此外,区块链技术可以创建无需许可和自主的软件系统,因为自主、可互操作的软件的生态系统的长期价值可能确实是去中心化革命最引人注目的结果。对于开放的、消费者规模的区块链系统,绝大多数现有提议都依赖于某种分片。虽然分片的各种方法可能会合法地增加网络能够处理的交易的数量,但它们可能会限制这些交易的能力。特别地,每个交易只能在自己的分片内读取和修改信息。在一些分片的区块链实现中,与其他分片的通信必须异步发生,并且在没有昂贵和复杂的锁定操作的情况下,存在作用于陈旧信息的风险。此外,现有的分片区块链的提案不提供单个原子交易与多个分片交互的能力。例如,可能在每个分片上发出单独的交易,如果需要原子性保证(例如,如果存在一些互惠的价值交换),可能存在某种复杂的锁定和承诺系统建立在区块链之上。
示例分布式账本是众所周知的区块链。为了说明的目的,在本公开内容中引用了区块链。然而,预期任何适当的分布式账本都可以用于本公开内容的实现中。区块链是使用加密技术来链接和保护的不断增长的记录或区块的列表。区块链中的每个区块可以包括从已在一个或更多个上下文中执行的交易提供的交易数据,例如流通票据交易、数字货币交易等等。在一些示例中,交易包括买方与卖方、供应商与消费者、或提供商与消费者之间的协议,即目前或将来将交换资产、产品或服务来代替货币、加密货币或一些其他资产。在一些示例中,单个区块可以包括从多个交易(例如,不同人对不同支票的多次存款)提供的交易数据。区块链可能会随着已完成的区块与一组新交易的添加而增长,从而形成交易的账本。每个区块可以包括指向前一个区块的哈希指针和时间戳以及永久方式的交易数据。
在一些实施方式中,区块链的区块中的交易被散列并编码到默克尔树(Merkletree)中(例如,交易是默克尔树的叶节点)。默克尔树(或基于散列的树)是基于散列的数据结构,其可以是散列列表的泛化。默克尔树包括下述树结构,其中每个叶节点是应用于交易以生成哈希值或“哈希”的加密哈希函数(CHF)的结果,并且每个非叶节点用其子节点的标签的加密哈希来标记。示例CHF包括安全哈希算法256(SHA-256)、SHA-3和消息摘要5(MD5)等。一般而言,CHF接收信息作为输入,并提供哈希值作为输出。哈希值可以是预定长度。例如,SHA-256输出256位(32字节,64字符)的哈希值。在一些示例中,哈希值是单向哈希值,因为哈希值不能被“取消散列(un-hash)”以确定输入是什么。此外,默克尔树可以实现为k-ary树,其是有根树数据结构,其中每个节点具有不多于k个子节点。例如,默克尔树可以实现为二叉树,其中每个节点可以具有0、1或2个子节点。这种二叉树的默克尔根(或根哈希)可以通过重复对每对节点进行哈希处理直到只剩下一个哈希来生成。在某些示例中,当交易的数量为奇数时,最后一个哈希可以复制一次以创建偶数个叶节点。如果任何交易中的单个细节或交易顺序发生变化,默克尔根也会发生变化。因此,默克尔根汇总了相关交易中的所有数据,并且可以存储在区块中以保持数据的完整性。因此,采用默克尔树允许快速并简单地测试特定交易是否包括在集合中。
一般而言,由执行区块链协议的互连计算设备的对等网络中的一个或更多个计算设备以线性、时间顺序将区块添加到区块链。简而言之,对等网络可以被描述为多个互连节点,每个节点是使用客户端来验证和中继交易(例如支票存款)的计算设备。每个节点都维护一份区块链副本,该副本会在加入对等网络时自动下载到节点。区块链协议提供了安全且可靠的区块链更新方法,其副本分布在对等网络中,无需使用中央机构。
因为区块链网络上的所有实体可能需要知道所有先前的交易(例如存款、取款等)以验证请求的交易,所以实体可以就实际发生的交易和交易顺序达成一致。例如,如果两个实体观察到不同的交易历史,他们可能无法就交易的有效性得出相同的结论。区块链使实体能够就已经发生的交易以及交易顺序达成一致。简而言之,如下文进一步详细描述的,交易的账本基于将交易添加到交易的账本(例如,将区块添加到区块链)所需的工作量而达成一致。在这种情况下,该工作是对等网络中的任何单个节点(例如计算设备)难以快速完成、但节点(例如计算设备)相对容易验证的任务。
典型的对等网络可以包括基于区块链协议将区块添加到区块链的所谓的矿工(例如计算设备)。一般而言,多个矿工验证要添加到区块的交易,并竞争(例如,执行工作,如上所述)以将他们的区块添加到区块链。交易的验证可以包括验证与各个交易相关联的数字签名。对于要添加到区块链的区块,矿工必须在其提供的交易的区块被对等网络接受之前演示PoW。区块链协议包括基于CHF的PoW方案。在一些实施方式中,区块链协议可能需要多条信息作为对CHF的输入。例如,CHF的输入可以包括对区块链中前一个(最新)区块的引用、要包括在要创建的区块中的交易的详细信息以及随机数值。
多个节点可以竞争散列一组交易并提供要添加到区块链的下一个区块。区块链协议可以提供阈值哈希来限定要添加到区块链的区块。例如,阈值哈希可以包括哈希值在开始时必须具有的预定义数量的零(0)(例如,哈希值的至少前四个字符必须每个都为零)。零的数量越多,获得合格的哈希值就越耗时。
例如,在一些基于区块链的平台中,每个区块产生节点都可能会经过若干步骤以创建候选区块。例如,若干交易是从公开共享的待处理交易池中选择的。在一些实施方式中,所选择的交易以例如线性列表中的顺序被分配。通常,存在某种机制来限制可以包括的交易的最大数量。然而,在许多实施方式中,没有强制的最小值。执行由交易指定的计算。在一些实施方式中,每个计算都可以访问全局共享状态,并且可以对该共享状态进行某些改变。此外,在一些实施方式中,一个交易的输入可能取决于另一交易的输出。在这样的实施方式中,重要的是这些计算必须严格按顺序执行。交易可以与处理这些交易所得到的最终规范状态的快照相结合。结果被广播到网络的其余部分。在一些实施方式中,“快照”是规范状态的哈希,并且可以是以例如默克尔树的根节点的形式。
在一些实施方式中,接收候选区块的网络中的每个节点验证由交易列表暗示的计算已被正确地计算。这些节点可以按照候选区块指定的顺序重复每个计算。然后,节点将它们已计算的最终规范状态的快照与来自原始节点的候选区块中的快照进行比较。如果快照匹配,则该区块可以被认为是有效候选。
在诸如比特币的未使用的交易输出(UTXO)区块链中,只有成功转移令牌的交易可以包括在区块中。另一方面,在像以太坊一样的状态模型区块链中,包括失败的交易可能是有效的(甚至是常见的)。在一些实施方式中,这些交易被包括在区块中,但不修改规范状态(除了支付交易费用)。因此,“正确处理”的交易可能实际上并没有按照用户发起交易的意图进行。
一旦产生了一个或更多个有效候选区块,网络就可以使用某种共识机制来共同同意单个有效候选。这通常是当前区块链中的“工作证明”,但是对于未来的网络——或现有网络的演进——存在许多使用“权益证明”的提议。本文描述的去中心化计算系统的实施方式与任一共识机制家族或在与即时确定性、权益证明共识相结合时同样可以很好地工作。
在一些实施方式中,可以采用所描述的方案的示例性系统提供了具有高吞吐量和无分片的架构方法,这导致可组合性。在一些实施方式中,这种可组合性提供通过更简单的去信任系统的新颖组合来创建复杂的新的去信任系统。示例去中心化计算系统可以用于例如支持去中心化应用。在一些实施方式中,示例去中心化计算系统将对等网络划分成三个不同的节点类型,每个节点类型负责三个任务中的一个:从外部访问网络、保护网络免受攻击以及计算网络的状态。这种关注的分离使得能够进行节点专门化,这显著地提高了网络的吞吐量,同时增强了所部署的系统的安全性和去中心化可能性。另外,可组合性可以是软件重用的有力表现,但是没有原子性的可组合性可以导致不一致的结果(例如“不期望的状态”)。示例去中心化计算系统可以采用缩放机制,其允许每个交易以原子方式访问和修改被授权以与其交互的规范状态的任何部分的能力。
如上所述,在一些实施方式中,示例去中心化计算系统将网络中的节点划分为三个不同的作用:访问、安全性和执行。这种关注的分离可以在表征和维持去中心化系统的完整性的访问、安全性、可靠性和可验证性保证的环境中实现高吞吐量而不牺牲同步性。在一些实施方式中,不同节点类型之间的核心关系是检查和平衡中的一个,其确保对交易包含、顺序和输出的强共识,并确定历史的规范状态。这种方法的挑战中的一个是协调三个不同的节点组并确保它们之间的有效交互。
在一些实施方式中,示例去中心化计算系统提供交易能力和计算吞吐量以支持可以被大量市场受众(例如数十亿的活跃用户)获得的繁荣且吸引人的生态系统。在一些实施方式中,示例去中心化计算系统每秒处理多达一百万个交易(TPS)或更多。
示例去中心化计算系统可以不牺牲实际效用。特别地,在一些实施方式中,系统保持智能合约之间的完全同步通信。完全同步确保了合约间通信保留了正确的ACID保证(原子性、一致性、隔离性、耐久性),而没有易于出错或开发的复杂锁定方案。简而言之,一个智能合约可能需要同步,以确保另一个智能合约正确执行,并允许独立的智能合约在不牺牲安全性的情况下组成复杂的系统。
长期、持续的去中心化可以是示例去中心化计算系统提供的一个方面。许多支持区块链的系统将去中心化视为可选的或不重要的,而不是系统的核心价值。虽然这可能会在短期内带来一些快速的胜利,但这些系统可能会随着时间的推移而劣化。此外,如果没有明确的激励措施,具有任何中心化程度的有价值的系统都倾向于进一步中心化。示例去中心化计算系统提供的去中心化的质量包括:访问、安全性、可靠性和可验证性。
在一些实施方式中,示例去中心化计算系统通过以固定成本(假设用户能够为其使用付费)使用网络的系统资源的能力来提供访问。这样的访问提供了不存在可以拒绝任何类别的用户使用网络或者可以将一些流量优先于其他流量的行为者或行为者的合理组。
在一些实施方式中,示例去中心化计算系统通过确保网络中的每个诚实参与者具有与其他诚实参与者相同的历史视图并且该历史记录在事后不能被修改来维护安全性。
可靠性包括保证系统的规则被统一应用、严格执行并且只能以可预测的、透明的方式改变。在一些实施方式中,示例去中心化计算系统通过确保不存在可以以某种方式改变这些规则而不允许系统的用户退出这些改变(例如,通过硬分叉)的行为者或行为者的合理组来提供可靠性。
在一些实施方式中,示例去中心化计算系统是可验证的,因为它允许一些或所有动作的透明性(例如遵循协议规则的高级链上操作等)。因此,任何人都可以使用例如他们自己控制下的计算机资源来确认协议(以及协议中定义的规则)已被正确遵循。这隐含地包括查看所有链上活动的能力。例如,用户可以验证他们提交的交易在链上正确执行。
示例去中心化计算系统对访问、安全性、可靠性和可验证性的保证从去中心化环境中捕获了更广泛的一组好处。例如,保证访问可能有助于确保任何人都可以加入网络并轻松地理解网络绑定的规则。此外,安全的网络可以制定这些规则而不会失败。这种组合可能会产生下述环境,在该环境中,用户可以对系统进行推理,并利用一组已知的输入可靠地预测并最终验证结果。这些要求共同提供了实现完全去中心化所需的稳健标准以及透明性、自主性、互操作性和不变性的相关好处。
图2描绘了可以用于执行本公开内容的实现的示例环境。该示例系统包括计算设备102、104、106、108和可以用于形成对等网络的网络110。在一些实施方式中,网络110包括局域网(LAN)、广域网(WAN)、因特网或其组合,并且连接设备(例如计算设备102、104、106、108)。在一些实施方式中,网络110包括内联网、外联网或与因特网通信的内联网或外联网。在一些实施方式中,网络110包括电信或数据网络。在一些实施方式中,网络110可以通过有线或无线通信链路访问。例如,移动计算设备(例如智能电话设备102和平板设备106)可以使用蜂窝网络来访问网络110。
在一些示例中,用户122至用户128可以作为采用代理软件与去中心化计算系统交互的用户代理工作。例如,用户可以采用他们相应的设备102至设备108来提供交易或充当所描述的系统中的节点。
在一些实施方式中,计算设备102、104、106和108可持续地类似于图5中描绘的计算设备510。为了简单起见,在图1至图2中描绘了四个计算设备。然而,可以设想,本公开内容的实现可以利用诸如前面提到的那些的任何适当的计算设备来实现。此外,本公开内容的实现可以根据需要采用在对等网络中充当节点的任何数量的设备。
计算设备102、104、106可以每个都包括任何适当类型的计算设备,诸如台式计算机、膝上型计算机、手持式计算机、平板计算机、个人数字助理(PDA)、蜂窝电话、网络设备、相机、智能电话、增强型通用分组无线电服务(EGPRS)移动电话、媒体播放器、导航设备、电子邮件设备、游戏控制台、或这些设备中的任何两个或更多个的适当组合、或其他数据计算设备。在所描绘的示例中,计算设备102是智能电话,计算设备104是平板计算设备,并且计算设备106是台式计算设备。
服务器计算设备108可以包括诸如上文针对计算设备102至计算设备106以及具有服务器级硬件的计算设备所描述的任何适当类型的计算设备。在一些实施方式中,服务器计算设备108可以包括使用集群计算机和部件来充当单个无缝资源池的计算机系统。例如,这样的实现可以用在数据中心和云计算中。在一些实施方式中,使用虚拟机来部署后端系统130。
在一些实施方式中,计算设备102至计算设备108被部署为示例去中心化计算系统内的节点并且形成对等网络。例如,计算设备102至计算设备108可以在所描述的去中心化计算中用作如图3所示的所形成的对等网络内的访问节点、安全节点或执行节点。在一些实施方式中,所形成的对等网络是分布式网络,其中每个网络节点(例如计算设备102至计算设备108)直接或间接地连接到网络上的每个其他节点。这样,信息(例如交易)可以直接在节点之间共享,而不需要中央服务器。在一些实施方式中,节点采用对等协议进行通信。
在一些实施方式中,该系统可以与可以存储在计算设备102至计算设备108中的每一个上的去中心化区块链相对应。在一些实施方式中,一组计算设备存储了区块链。区块链包括包含交易的区块。在一些实施方式中,这样的交易由示例去中心化计算系统接收、验证和执行。在一些实施方式中,存储到区块链的交易包括智能合约。在一些实施方式中,智能合约可以用定制功能来扩展,并由如图3所示的所形成的对等网络内的执行节点作为交易的一部分来调用。例如,计算设备102至计算设备108可以被相应的用户222至用户226用来接收要被处理并存储在区块链上的区块内的交易。在一些实施方式中,计算设备102至计算设备108采用虚拟机作为执行运行时来执行智能合约代码。例如,这样的机制允许从一种状态转换到另一种状态:给定特定的区块(其中存储有若干交易),并给定状态s,执行计算将使机器进入新的状态S'。在一些实施方式中,状态转换机制包括访问交易相关账户、计算操作和更新/写入虚拟机的状态。无论在虚拟机上执行什么(例如智能合约代码)都可能改变其状态。在一些实施方式中,在执行区块的所有交易之后,可以存储当前状态。
图3描绘了示例去中心化计算系统的通用架构的示例,其可以通过例如图1至图2的示例环境来部署。通用架构包括客户端302、访问节点310、安全节点320和执行节点330,它们可以通过诸如图1至图2的设备102至设备108的设备来部署。在一些实施方式中,访问节点310维护客户端302的网络可用性并回答与世界状态相关的查询。在一些实施方式中,安全节点320通过参与BFT共识算法来确保网络的安全,这为区块提供了强有力的保证。在一些实施方式中,执行节点一旦从安全节点320接收到就处理区块(最终区块325)。在一些实施方式中,执行节点可以提供计算能力以确定由安全节点320完成的诸如交易305的交易的结果,并存储所得到的世界状态。下面提供了对这些作用的更详细的说明。
在一些实施方式中,示例去中心化计算系统采用诸如图1至图2的区块链的去中心化区块链。在一些实施方式中,去中心化区块链的工作可以分为多种部件功能;这些功能中的一些功能可能是完全确定性的并且具有客观上正确的输出,而这些任务中的一些功能可能是主观的并且需要网络级别的共识。去中心化的区块链系统可以创建自主、无领导和去中心化的系统,以可靠地就自然主观的事物达成网络共识:共享状态中包括哪些交易,以及以什么顺序(“交易日志”)。在一些实施方式中,这样的主观任务可能需要全能的中央机构来规定交易日志,或者允许去中心化网络确定规范交易日志的共享视图的许多共识系统中的一个。区块链的另外两个任务可能不是主观的,并且可能是完全确定性的:存储交易日志,以及确定由以共识顺序正确应用日志内容得到的世界状态。防止区块链达到消费者规模的主要瓶颈落入第二类别。
在一些实施方式中,示例去中心化计算系统被设计为使得确定性过程中的所有拜占庭故障具有四个重要属性:可检测性、可归因性、可惩罚性和可纠正性。在一些实施方式中,确定性过程可以具有客观上正确的输出。这意味着即使网络中的单个诚实节点也可以检测确定性故障,并且通过要求所有其他诚实节点重新创建不正确执行的过程的一部分来向所有其他诚实节点证明错误。此外,在一些实施方式中,可以使用可验证随机函数(VRF)将示例去中心化计算系统中的确定性过程分配给节点。因此,已检测到的任何错误都可以清楚地归因于负责该过程的那些节点。在一些实施方式中,参与示例去中心化计算系统的所有节点,即使在确定性过程中,也必须提出如果发现它们表现出拜占庭行为则可以被削减的权益。由于确定性过程中的所有错误都可以轻松检测和归因,因此可以经由削减来可靠地惩罚这些错误。在一些实施方式中,所描述的系统必须具有一旦检测到错误就快速撤消错误的手段。这有助于阻止恶意行为者引发使恶意行为者比削减惩罚更有利的错误。
所描述的系统的设计是通过这样的理解来告知的,即需要许多参与者来支持过程的非确定性部分,而对于确定性过程需要少得多的参与者,由于他们的特性规定了明确的检测,因此规定了不遵守协议的人的惩罚。因此,所描述的系统可以分离确定性过程(如图3所示),并且可以将它们分配给由广大受众仔细检查的更少、更强大的参与者。更少的节点使网络的确定性元素更加高效,尤其是在执行计算方面。例如,一项概念证明表明,这种方法可以实现超过100000TPS,而没有安全性保证的任何劣化。作为在五个大陆上的十一个不同数据中心中运行的多于三十个节点的异构网络的测试床设置中的性能的概念的证明。这只是将问题分为确定性部分和非确定性部分并进行相应分配时可能进行的改进的一个示例。
在一些实施方式中,访问节点310可以调解与示例去中心化计算系统之外的世界的信息交换,这可以帮助确保关于状态和历史两者的系统性和及时的通信。在一些实施方式中,访问节点310的任务可以是管理交易池并收集诸如来自客户端302的交易305的良好形成的交易,以提供给安全节点320。在一些实施方式中,良好形成的交易可以包括来自交易的担保人的凭证。在一些实施方式中,当访问节点310看到良好形成的交易时,访问节点310可以散列该交易的文本并签署该交易以指示两件事:第一,它是良好形成的,第二,它将承诺存储事务文本,直到执行节点330完成对它的处理。在一些实施方式中,当临界数量的访问节点310已审查了交易并且断定它是良好形成的时,它们可以将其传输到安全节点320以供审查。访问节点310的临界数量可以因实施方式而变化。例如,访问节点310的临界数量可以取决于各种协议参数。在一些示例中,访问节点310的临界数量可以以这样的方式来选择:少数恶意访问节点不能通过对某些交易优先化或删截其他交易来威胁区块链的完整性。
在一些实施方式中,在安全节点320和执行节点330都已构建并处理了区块之后,访问节点310可以向执行节点330查询它们的输出(例如计算的结果)。在一些实施方式中,访问节点310存储从执行节点330接收到的那个输出的缓存。在一些实施方式中,访问节点310向客户端302提供计算的缓存结果(例如状态响应345)而不必用更直接的查询加重执行节点330的负担。在一些实施方式中,可验证随机函数(VRF)确定访问节点310可以查询来自执行节点330的哪些输出以检查它们被正确地计算。最终,访问节点310可以保持执行节点330“诚实”。这可以被执行以维护由所描述的系统提供的去中心化的访问、安全性和可验证性标准之间的能力的平衡。所提供的协议和系统的底层结构是高度拜占庭容错(BFT)的,因为在一些实施方式中,即使在访问节点310的池中存在大量拜占庭错误,安全节点320仍需要批准它们签署的交易被临界量的网络审查。BFT协议可以保护网络免受几个恶意访问节点或安全节点的侵害(例如,“几个”意味着少于某个临界数量),使得它们不会威胁网络的完整性和活跃度。节点的任何故意或非故意错误都可能被网络的其余部分可检测、可修复、可归因和可惩罚。
在一些实施方式中,访问节点310需要高水平的带宽和低延迟来与公众进行通信,因为它们的查询和交易可以分别被回答和捕获。在一些实施方式中,访问节点310(例如图2的用户222至用户228)可以针对它们保证的每个交易以及针对它们成功验证的每个交易支付固定费用(或其他奖励)。在一些实施方式中,如果访问节点310提供了不良形成的集合,或者如果它们未能存储它们表示将持有的交易文本,则访问节点310被削减。
削减可以是一种内置于区块链协议(例如权益证明)中以阻止节点的不当行为并维护整体网络安全性和可用性的机制。类似地,可以设计激励措施来激励协议安全性、可用性和网络参与。削减是一种惩罚形式,并且可能包括移除节点、货币惩罚和/或其他处罚。
在一些实施方式中,安全节点320参与所描述的系统所采用的共识算法以实现区块最终性以确保区块链的完整性。在这种情况下,最终性包括已由临界多数签署并被确认为由访问节点310良好形成并存储的交易的最终区块325。在一些实施方式中,安全节点320主要有助于安全性和规模,因为它们能够在设置了了解交易的确定性输出所需的顺序的候选区块315上快速投票。在一些实施方式中,安全节点320验证由访问节点310提交给它们的签名交易散列是由所描述的系统要求的临界量的访问节点签名的。在一些实施方式中,访问节点的临界量由可配置阈值确定。
由安全节点320执行的共识算法(例如权益证明算法等)可以是子协议。共识算法可以帮助安全节点320就下一区块添加到链中达成一致(例如,达成“共识”)。
在一些实施方式中,一旦安全节点320已成功地达成共识:所呈现的交易是由临界数量的访问节点310签名的,则该交易被认为是最终区块325。所描述的系统内的过程的安全性依赖于基础共识算法的安全性,所述安全性的考虑中的一些是支持大量参与者的速度和能力。在一些实施方式中,示例去中心化计算系统所采用的共识算法包括Casper CBC、源于Tendermint的SBFT(Tendermint-derived SBFT)、Hot Stuff、Fantomette或其他非常适合支持许多参与者的变体。在一些实施方式中,最终区块可以确定所包括的交易的顺序。在一些实施方式中,交易的排序基于集合的顺序以及集合内交易的排序。在一些实施方式中,这些元素的排序可以对应于由提议节点执行的伪随机算法。
在一些实施方式中,安全节点320针对访问节点310提供检查点,因为它们是检查临界数量的访问节点310是否审查并签署了交易的组。在一些实施方式中,安全节点320尤其仅由同伴安全节点320负责。基于PoW和PoS的系统的常见问题是群体的小子集可以控制重要资源(诸如生产区块和对区块进行投票所需的采矿或权益),这是系统的安全性的劣化。在一些实施方式中,通过降低参与的要求,示例去中心化计算系统可能使得例如协调拜占庭卡特尔(Byzantine cartel)或不良行为者的其他共谋活动变得更加困难或昂贵。
在一些实施方式中,安全节点320可以具有最小的带宽和计算要求,甚至允许诸如智能电话或低功率系统的适度的计算设备,以参与投票过程并确保网络安全。许多网络可能声称通过大量参与去中心化网络来公开参与。维持这样的阈值会破坏网络的安全性。降低参与需求,例如上面针对安全节点320所描述的,保留了协调问题,这对于提供高度的BFT可能是重要的,因为坏的行为者的子集可能极难破坏网络。在一些实施方式中,安全节点320可以为它们包括在区块中的交易付费。在一些实施方式中,参与共识过程需要这些节点建立权益,如果它们签署无效区块,则权益可能被削减。在一些实施方式中,无效区块不能具有来自访问节点310的临界数量的签名。
在一些实施方式中,执行节点330计算它们被提供的最终区块325的输出。在一些实施方式中,执行节点330执行可能已由安全节点320最终确定和提供的候选区块315(例如最终区块325)。在一些实施方式中,执行节点330向访问节点310查询与它们已由安全节点320提供的散列相匹配的交易文本。利用该数据,执行节点330可能能够计算输出,在一些实施方式中,该输出稍后由随机分配的访问节点310的子集随机查询以确保诚实。在一些实施方式中,执行节点330可以负责系统在规模和效率方面的至少一些改进,因为仅需要非常少量的这些强大的计算机资源来计算和存储历史状态。
在一些实施方式中,一旦执行节点330中的一个已计算了最终区块325的输出或最终区块325内的交易的子集,它就呈现散列承诺。散列承诺可以对应于状态承诺,该状态承诺可以是执行新区块后区块链的整个状态的哈希值。在一些示例中,当区块链的状态存储在默克尔树中时,该散列承诺可以对应于默克尔树散列。在一些实施方式中,该输出可以仅在其共同执行者(例如由例如VRF确定的其他执行节点330)也已提交其输出时才被揭露。这对于确保节点不会欺骗彼此的工作很重要。在一些实施方式中,一旦执行节点330已提交了它们的答案,就揭露了输出。在一些实施方式中,一旦揭露,输出就会受到访问节点310运行的随机查询和检查。在一些实施方式中,执行节点330可以具有相对低的BFT。但是,这不会损害系统的整体安全性,因为它们执行的过程是确定性的。例如,任何不良行为者都可以容易地被访问节点310检测到并受到惩罚。
在一些实施方式中,节点(例如执行节点330)的这个相对较小的组对处理器速度和带宽具有最实质性的技术要求,因为它们可以被赋予运行或执行确定网络的输出所需的计算的任务。在一些实施方式中,与其他传统分布式网络相比,允许这种专业化程度可以将计算成本降低至少一千倍,并且可能更多。
在一些实施方式中,虽然执行节点330负责计算和存储区块链的整个世界状态,但是执行节点330可能不需要回答关于该状态的所有外部查询。在一些实施方式中,执行节点330可以在验证周期期间至少一次回答访问节点310以确认它们的输出。在一些实施方式中,该查询向访问节点310提供针对来自客户端302的未来查询的答案(例如状态响应345),诸如上文所描述的,这使得执行节点330免于那些在未来给它们带来负担的过多查询。然而,在一些实施方式中,如果执行节点330在提示时未能向访问节点310提供关于其输出的答案,则执行节点330可能被惩罚(例如削减)。在一些实施方式中,一旦执行节点330的输出被验证,执行节点330就可以在验证周期结束时为其工作付费。在一些实施方式中,执行节点330收取的成本因计算而变化,并且可能基于计算所需的指令数量。
在一些实施方式中,这些不同节点类型(例如访问节点310、安全节点320和执行节点330)之间的共同线程可以是它们与网络所保持的状态的关系以及对网络所保持的状态的授权。例如,在一些实施方式中,整个世界状态可以由每个执行节点330保持以便执行计算。在一些实施方式中,一旦执行节点330已运行了计算并确定了输出,它们可以更新世界状态,之后由访问节点310对其进行验证。在一些实施方式中,执行节点330必须为所讨论的输出状态提供默克尔证明。这种复杂性可以允许验证输出的完整性。
在一些实施方式中,访问节点310可以以分片方式(例如缓存状态340)缓存最近更新或访问的数据,其中每个访问节点310保持整体规范状态335的一部分。在执行节点330忙并且不能回答的情况下,该缓存状态340可以帮助确保数据易于访问以回答用户查询(例如,向客户端302提供回答状态345)。这种更快地提供答案的能力有助于确保公众的网络访问和可验证性。在一些实施方式中,访问节点310还负责保存交易数据,直到交易被处理并且结果被执行节点330验证。在一些实施方式中,一旦被处理,交易本身就成为规范状态345的一部分,并且不再需要访问节点310来存储缓存状态340(例如交易文本)。
在一些实施方式中,当(例如,由客户端设备302中的一个)生成交易时,它包括:要运行的显式代码和/或显式数据(例如智能合约),以及来自支付交易的账户的凭证,其可以不同于生成交易的用户帐户或数据持有者。在一些实施方式中,该交易被提交给网络,在该网络中它由访问节点310处理以例如检查凭证。在一些实施方式中,访问节点310签署交易以承诺持有该交易直到执行节点330已处理它并且它们的输出已被验证。在一些实施方式中,一旦临界量的访问节点310已签署了交易,它可以被传输到安全节点320以验证两件事:1)临界量的访问节点310已看到了交易,同意存储它,并确认它是良好形成的,以及2)安全节点320将永远不会确认该高度的另一个区块,除非向它们提供证据证明它们之前发布的内容是无效的。
在一些实施方式中,安全节点320遵循BFT共识算法以就最终区块325达成一致。在一些实施方式中,一旦候选区块305被安全节点320最终确定,最终区块325可以被传送到执行节点330以用于计算。在一些实施方式中,VRF用于确定负责计算每个最终区块325的执行节点330的子集。在一些实施方式中,一旦执行节点330已计算了输出,执行节点330产生结果的散列承诺。在一些实施方式中,当所有选择的节点(例如确定的子集中的执行节点)已提交了它们的承诺时,它们可以揭露未加密的结果输出。在一些实施方式中,当这个输出被示为与所有参与执行节点330相同时,访问节点310中的每一个使用VRF来选择要验证的少量交易。在一些实施方式中,一旦将答案提供给访问节点310,它们将其缓存以回答来自客户端302的未来查询。例如,当用户想要从系统检索状态时,它们可以(例如,通过客户端302)提出对访问节点310的查询。例如,查询可以是诸如“这个寄存器在这个区块高度的内容是什么?”的形式。在一些实施方式中,访问节点310将通过它们所保持的缓存状态来完成查询,或者它们可以查询执行节点330以获得输出。
在一些实施方式中,仅在验证周期结束之后,交易以及它所包括在内的相应区块才可以被认为是规范的。在一些实施方式中,在验证周期期间,例如,结果对访问节点310和公众都开放以提交不正确输出的证明。在一些实施方式中,验证周期可以长达几个小时。
在一些实施方式中,通过划分如上所描述的示例去中心化计算系统的架构,可以实现若干好处:同步、效率和规模等。例如,在去中心化的环境中进行开发会给开发人员带来许多不确定性,其中不是最不重要的是在改变的数据可以写入之前从改变的数据中读取。考虑到这一点,强大的可串行性保证,即相当于没有重叠交易的顺序调度的结果,是去中心化开发环境例如由示例去中心化计算系统提供的环境可以提供的最重要的事情中的一个。通过对交易的顺序的承诺,交易可以看起来以绝对顺序执行,以便开发人员可以对系统进行推理,即使一些并行执行以提高吞吐量。一些系统采用锁定机制来保持可串行性,尤其是当交易在分片之间移动时。然而,在一些实施方式中,在执行节点330确定输出之前,示例去中心化计算系统协议的顺序协议确保一旦对交易进行排序,关于其结果存在确定性。
在一些实施方式中,为了有效地利用资源,示例去中心化计算系统可以包括基于权益证明(PoS)的系统并且被设计为消除尽可能多的冗余任务。例如,在经典的区块链实现中,可能要求每个节点审查每个交易并存储所有状态。通过划分确定性任务和非确定性任务并将它们分配给可以专用于其相应执行的资源,可以极大地提高示例去中心化计算系统的吞吐量。
在一些实施方式中,在架构级别,示例去中心化计算系统的安全性由以下提供:1)三种不同节点类型之间的能力和责任的划分,2)共识算法支持的高度参与,以及3)将访问节点310指定为网络的接口。这些设计元素可能会以不同的方式出现,以解决去中心化系统经常面临的常见攻击中的每一种。示例去中心化计算系统的访问和可验证性要求确保更广泛的网络,并且公众能够在验证周期期间验证过程并对其提出异议。虽然计算的输出是确定性的,但在一些实施方式中,一旦其顺序在最终区块325中设置,在可证明的错误被提交给网络的情况下,为要重新计算的状态保留验证周期,从而确保可检测性的机会。例如,在一些实施方式中,访问节点310签署每个交易以确保存在签名担保人来支付交易,从而保证归属。在一些实施方式中,所有节点相对于它们在从网络的该部分移除的情况下经受丢失的值而被质押,这确保了在承诺违约的情况下的惩罚(例如,削减)。
在区块链上下文中,审查阻力可能对应于一个组拒绝另一组访问网络的难度。因此,在一些实施方式中,访问节点310的作用是保证访问并确保任何人都可以审计和提交交易。除了为打击审查而实施的架构级措施之外,在一些实施方式中,安全节点320可能只看到交易散列。因此,在这样的实施方式中,为了使安全节点320审查交易,它们将需要知道其签名者、数据和动作的散列。在一些实施方式中,通常防止安全节点通过大量的共同参与者来破坏所描述的系统。因此,在任何问题上的共谋都将非常难以协调。
在一些实施方式中,安全节点320可以防止双重花费攻击。例如,在一些实施方式中,广泛参与该组显著降低了小组共谋以兑现相同高度的替代区块的风险。例如,当向该节点池呈现一组交易时,它们就签署该组的足够数量的访问节点310以及就该组形成它们将在该高度——均在那一刻和未来——兑现的唯一区块达成共识。在一些实施方式中,呈现的任何其他区块都将被网络拒绝,除非在验证时段期间成功提交了针对在竞争高度的区块拒绝该区块的欺诈证明。
在前沿攻击中,对抗节点决定将其交易插入另一个之前是有利的。这样的举动可能像在竞争投标之前提出更高的投标一样简单,也可能像战略性地插入交易以错误地操纵其输出一样狡猾。为了解决这个问题,在一些实施方式中,执行节点330执行VRF来计算交易的顺序。这确保了交易的顺序是不可知的,也不能由任何人决定,直到交易已经被确定性地排序。
在一些实施方式中,访问节点310和安全节点320每个都在区块中包括的交易中具有发言权。在这样的实施方式中,当任一组能够预先设置交易的顺序时,它为它们呈现了利用该顺序并优先考虑它们自己的交易的机会。在一些实施方式中,通过要求执行节点执行VRF以揭露交易的规范顺序(规范状态335),节点无法操纵该次序。在一些实施方式中,用于确定VRF的参数将是确定性的并且取决于来自安全节点320的输出。
对虚假账户和活动的潜在繁忙的抵抗是维持网络吞吐量的一个方面,因为这样的恶意交易可能导致节点上的巨大压力。在一些实施方式中,作为网络的接口,访问节点310知晓签署交易的每个账户的余额。在一些实施方式中,为交易付费的用户还必须持有最低余额以提交交易以确保防止垃圾邮件。
在一些实施方式中,访问节点310执行的第一过程是确定应当提交给安全节点320以包含在区块中的交易的列表,以及它们应当发生的顺序。这个过程是“纯粹的共识问题”,这个问题有很多可能的答案,每个答案都同样“正确”。然而,网络可能会就单个答案达成一致,因为不同的选择会导致不同的规范状态。
一旦就交易的排序列表达成一致,对于处理这些交易可能会产生什么规范状态,可能会存在单一的、客观上正确的答案。例如,处理该交易列表且没有错误的任何节点最终都可以与正确处理该相同交易列表的任何其他节点完全相同的规范状态。在一些示例中,区块链计算可能是完全确定性的,以允许它们被其他节点验证。因此,两个性能配置文件可能存在两个问题。首先,排序过程可能是可以通过多种BFT共识算法来解决的纯粹的共识问题。在一些实施方式中,这样的过程可能需要共识节点之间的大量通信(例如大于阈值的通信消息),但在计算上可能并不复杂。网络安全性直接来自这个过程,因为这个过程中涉及的节点越多,破坏链条就越难。其次,在一些实施方式中,当网络繁忙时,计算过程可能需要计算能力强大的节点,但它不需要大量节点,因为它们中的任何都可以客观地“检查”计算节点的工作,并在发生错误时证明错误。在一些实施方式中,当节点呈现无效输出时,它失去其权益的一些或全部,并且可以利用诚实节点重新运行错误处理的计算。在一些实施方式中,上述过程的结果是能够实现最大吞吐量而不会由于中心化而降低安全性的单个非分片网络。
方案的示例集成
在一些实施方式中,上述示例去中心化计算系统包括基于流水线架构和网络中节点作用的分离实现大于阈值的吞吐量的区块链。如上所述,区块中交易的执行由执行节点330执行。在一些实施方式中,所描述的证明方案(例如机密知识的专门证明)的集成可以包括由称为验证节点(未示出)的另一种类型的节点重新运行的执行,以保证计算的正确性(例如,用作用户)。这些节点(执行节点330和验证节点)中的每一个的执行过程导致执行跟踪,这可以被认为是执行区块的交易的证明。
执行跟踪可以包括跟踪区块交易的执行的一系列步骤。步骤的识别可以包括写入区块链状态和从区块链状态写出。
在一些实施方式中,为了确保验证节点正在做验证计算的正确工作并且没有通过跳过昂贵的检查来验证执行节点330的结果,证明方案的集成强制每个验证节点发布知道执行跟踪的证明。发布执行跟踪本身会导致任何验证节点声称它们计算了交易。因此,执行跟踪是场景中的秘密,必须受到保护。执行节点330和验证节点发布知道执行跟踪的专门证明(例如证明)。
在一些实施方式中,充当共识节点的访问节点310收集所有证明并验证它们都是根据相同的执行跟踪而生成的。如果验证有效,则执行跟踪应当是有效的,因为协议确保存在正确地计算执行跟踪的诚实验证节点的阈值。验证中的任何不匹配都是可检测的,并且可以归咎于不诚实的一方。
在一些实施方式中,验证节点以并行方式重新计算交易,而共识节点310使用上述证明来保证结果的安全。在一些实施方式中,上述示例去中心化计算系统采用过程或协议来实现简明且高效的方案。本文根据方案的正式通用描述及其安全性定义来描述此过程。在一些实施方式中,该过程包括基于Boneh-Lynn-Shacham(BLS)签名方案的构造。下面的描述提供了在该方案的适当计算假设下的安全性证明。
在一些实施方式中,执行节点330对最终区块中的所有交易执行繁重的计算。所描述的过程引入了通过分配验证节点重新计算区块交易来检测和归因错误结果的机制。在一些实施方式中,该计算被分解成块,以允许以并行且独立的方式进行更轻量的计算验证。在一些实施方式中,共识节点310承诺区块结果并确保计算被大多数验证节点验证。在一些实施方式中,所描述的基于BLS的过程实现涉及采用块计算的中间结果作为执行该块的交易的证明,假设不能比通过执行整个块更便宜地得到中间结果。
在一些示例中,使用分块算法来分解块(chunk)。分块算法可以将区块划分成块,使得块具有可比较的计算时间。在一些示例中,由于块,验证节点以更轻量、并行且独立的方式计算区块。
在一些实施方式中,执行节点330提供证明作为对每个区块块的计算中间结果的承诺,并且验证节点提供另一个证明作为对它们验证的每个块的它们自己的中间结果的承诺。在一些实施方式中,共识节点310的作用是通过验证每个块的证明是根据相同的中间结果一致地生成的来进行仲裁。单个诚实验证节点允许协议检测块计算中的错误结果。该过程确保区块计算以高概率正确。尽管采用的过程阻止“惰性”验证节点声称它们重新计算了块,但这并不能阻止或检测与计算中间结果的任何一方的共谋。然而,从诚实结果生成证明的单个非共谋节点足以帮助共识节点310发现其他错误证明。
在一些实施方式中,基于BLS的过程包括允许一方检查两个或更多个签名已签署相同秘密消息而无需更多地了解秘密本身(例如配对相等性检查)的方案。在一些实施方式中,特别是基于BLS的流程构造还提供了超出了示例去中心化计算系统中采用的方案所需的特性的一些雅致的特性。
与验证者的困境的关系
在一些示例中,该系统可以帮助缓解验证者的困境。验证者的困境可能出现在分布式系统中,其中一些参与节点应当验证其他节点的工作。此外,对于其中验证者的补偿随其速度(统计地)增加并且其中验证者检查的结果以足够接近一的概率是正确的系统,大多数区块链具有对节点尽可能快地运行并且递送正确结果的内在激励。即使对验证器的工作进行了补偿,在这样的环境下盲目地批准所有结果可能仍然是最有利可图的策略,因为这种策略不仅节省了时间,而且还节省了用于验证工作的硬件和能量的开支。而且,从长远来看,采用这样的策略的节点破坏了网络对恶意行为者的恢复力。
在一些实施方式中,所描述的系统通过其架构减轻了验证者的困境。具体地,在一些实施方式中,验证节点必须证明它们知道它们被分配到的块的执行跟踪;它们因批准错误的结果而被削减;少数诚实验证节点检查错误结果足以削减生成错误结果的执行节点以及批准它的所有验证节点。
问题的理论/数学抽象
设G1和G2是两个循环群,设g1和g2分别是G1和G2的生成元。计算co-Diffie-Hellman(co-CDH)问题是在给定的情况下计算g1 xy。co-CDH假设指出,没有概率多项式时间算法以不可忽略的概率求解co-CDH问题。
引理1
(G1,G2)中的co-DCDH和co-CDH假设是等价的。
证明。求解了co-DCDH问题的对手A也求解了co-CDH问题,反之亦然。
这两个问题是等价的,因此这两个假设也是等价的。
BLS签名
作为对BLS签名方案的简要回顾,设G1、G2和GT是素数阶p的三个循环群,其中(G1,G2)是双线性群对。设e是有效可计算的非退化配对e:G1×G2→GT,并且H是哈希函数H:{0,1}*→G1(建模为随机预言)。乘法符号用于这三个组。签名方案定义如下:
.BLS-Sign(sk,m)→σ,其中σ←H(m)sk∈G1。
.BLS-Verify(pk,m,a)→v∈{OK,FAIL},其中如果e(H(m),pk),v是OK,否则是FAIL。
Dan Boneh、Ben Lynn和Hovav Shacham。Short signatures from the Weilpairing。在ASIACRYPT,2001年12月(下文为Boneh等人)中证明了签名方案在选择的消息攻击、随机预言和(G1,G2)中的co-CDH假设下对存在伪造是安全的。
秘密密钥模型的注册密钥和知识
Thomas Ristenpart和Scott Yilek。The power of proofs-of-possession:Securing multiparty signatures against rogue-key attacks。在EUROCRYPT,2007年5月(下文为Ristenpart等人)中定义了注册密钥模型,其是协议R=(Reg-Prove,Reg-Verify):
·Reg-Prove(sk,pk)→π,生成注册证明。
.Reg-Verify(pk,π)→{OK,FAIL},如果证明对于pk有效,输出OK,否则输出FAIL。
如果不需要密钥注册,(Reg-Prove,Reg-Verify)可以如下替换为vacuous函数:对于任何输入,Reg-Prove输出空字符串,Reg-Verify输出OK。
在下面基于BLS签名的证明部分中,考虑了一类密钥注册协议,其中各方证明知道与其公钥对应的秘密;这称为密钥知识(KOSK)模型。在这个模型中,各方都可以访问函数RKOSK=(KOSK-Prove,KOSK-Verify),其分别生成和验证证明。
为了实例化该模型,各方需要使用其秘密的知识的零知识证明(ZKPK)。基于ZKPK的密钥注册协议提供了两种额外的算法,KOSK-Simulate和KOSK-Extract,它们从底层ZKPK继承:
·KOSK-Simulate(pk)→π是模拟器,其在给定访问用于证明验证的随机性的情况下,输出在计算上与真实证明无法区分的证明。
·KOSK-Extract(pk,π)→sk是提取器,其与生成π的一方交互(特别是倒带)以从令人信服的证明中输出sk。
模拟和提取是ZKPK的标准概念,因此没有更正式地定义它们。
证明方案
在示例去中心化计算系统中,诚实的执行节点和验证节点使用它们的权益私钥和本文被称为机密知识的秘密来生成证明。共识节点使用相应的公钥验证执行节点和验证节点生成的证明。验证过程应确保所有证明都是基于相同的机密知识生成的。基于此用例,给出了方案的通用定义。
方案定义
定义1
机密知识的专门证明可以包括四种算法:
·SP-Setup(1λ)→pp。生成公共参数pp,这是其余算法的隐式输入。
.SP-Prove(sk,m)→a。在密钥sk下针对消息m生成证明a。
·SP-Verify(pka,σa,pkb,σb)→v∈{OK,FAIL}。对于ska,秘密对应于pka,同样的,对于skb,秘密对应于pkb,如果
返回OK,否则返回FAIL,除非以最多可忽略不计的概率。
如果证明是从相同的机密知识中诚实生成的,则需要SP-Verify以高概率输出OK,这定义了方案的正确性。
定义2
正确性。如果
则方案正确,其中,negl(λ)在安全参数λ中是可忽略的函数。
该方案也在上面的注册密钥模型部分中定义。在这种情况下,正确性条件仅对注册的密钥成立。
SP-Verify定义仅要求存在与σa和σb一致的消息m。虽然这个定义对两方来说已足够了,但将其扩展到三方或更多方则更为微妙。要了解原因,考虑ska和skb的所有者共享秘密m1,而ska和skc的所有者共享秘密的情况。根据SP-Verify的定义,甚至当m1≠m2时,SP-Verify(pka,σa,pkb,σb)和SP-Verify(pka,σa,pkc,σc)都可能输出OK。因此,这两个检查不足以保证skb和skc的所有者共享任何秘密。
然而,回想一下,在示例去中心化计算系统中,可以采用验证过程来确保ska、skb和skc的持有者都共享相同的秘密知识m(对于超过三个的组也是如此)。为了反映这一特性,定义了方案的强传递性。
定义3
强传递性。如果对于所有整数n≥3,对于所有有效的密钥对(sk1,pk1),....,(skn,pkn),并且对于所有证明σ1,…,σn,满足以下性质,则方案满足强传递性:
如果存在消息m,使得对于所有i,SP-Prove(ski,m)=σi,则所有证明σi相互验证,即,对于所有1≤i,j≤n,j,SP-Verify(pk1,σ1,pki,σi)=成功。
强传递性定义指出,如果多个证明针对相同的参考证明σi进行验证,那么不仅这些证明应当相互验证(传递性),而且存在一条消息m,可以从其生成所有这些证明(包括参考证明)。
在示例去中心化计算系统中,执行节点生成参考证明,而多个证明由不同的验证节点生成。对于满足强传递性的方案,只需针对单个执行节点的证明验证所有证明,以确保所有节点共享相同的秘密知识,就足够了。
方案安全性
共识节点除了两个证明和相应的密钥以外不需要关于机密知识的任何信息,以运行SP-Verify算法。直观地说,除了那些执行区块的人,机密知识应当对网络中的所有各方保密。这意味着证明不应当允许恢复机密知识。
更具体地,该方案应当抵抗恶意行为者,恶意行为者或者恢复秘密知识,或者在不访问该知识的情况下伪造证明。在示例去中心化计算系统中,这样的攻击可能由“惰性”验证节点发起,“懒惰”节点旨在跳过昂贵的区块执行,同时声称他们知道秘密。攻击者还可能试图代表另一个节点伪造证明,例如,在错误结果上积累更多“投票”。
直观地说,生成证明需要知道两个秘密,密钥sk和消息m。这种直觉在下面经由两个安全性博弈形式化,每个博弈在挑战者C与对手A之间。第一个博弈,知识伪造,模拟了懒惰节点在不知道机密知识m的情况下,在自己的密钥下伪造证明的能力。第二个博弈,密钥伪造,模拟了恶意节点在不知道相应密钥的情况下,在另一个节点的公钥下针对某些选定的m创建证明的能力。这些博弈是在假设密钥注册方案(Reg-Prove、Reg-Verify)的情况下定义的,如果不需要注册,则该密钥注册方案可以是空方案。
定义4
知识伪造博弈。
·查询。A对C进行任何数量的查询。在每个这样的查询中,C采样新的密钥计算注册证明π←Reg-Prove(ski,pki)和证明σi←SP-Prove(ski,m),并将(pki,πi,σi)发送到A。
·输出。对手输出(pka,πa,σa),如果,
则赢得博弈。
定义5
密钥伪造博弈。
·查询。A可以按任何顺序进行任何数量的两种类型的查询:
-Q1:A将(mi,pkq)发送到C。C检索Lk中的第一个元组(sk,pk),其中pk=pkg;如果没有这样的元组,C返回⊥。否则,C计算σi←SP-Prove(ski,mi),并将σi发送到A。最终,如果pk=pkc,则C将mirni添加到列表Lm。
·输出。如果,
A输出(mo,σa,pko)并且获胜。
可以定义第三个博弈来捕捉对手既不具有机密知识也不具有密钥的情况。这种情况对应于在示例去中心化计算系统中伪造证明,当攻击者不知道秘密或目标的密钥时,声称目标节点可以访问某些秘密。这种伪造显然比其他两个博弈更难:具有成功进行这样的伪造的算法的对手可以轻松赢得其他两场博弈中的任何一场。因此,该博弈不予考虑。
定义6
不可伪造性。如果除了最多可忽略的概率之外,没有概率多项式时间对手A赢得知识伪造,则方案对于知识伪造是安全的。如果除了最多可忽略的概率之外,没有概率多项式时间对手A赢得密钥伪造,则方案对于密钥伪造是安全的。如果方案对知识伪造和密钥伪造都是安全的,那么该方案是不可伪造的。
定义了方案的另一属性,非可延展性。直观地说,对于一个证明σb和两个公钥,pka和pkb,给定针对(σb,pkb,pka)进行验证的证明aa,产生也针对(σb,pkb,pka)进行验证的不同的证明σ′a是不可行的。经由各种系统例如上面的示例去中心化计算系统实现该方案,不需要具有该属性,但实际上不可延展性可以消除微妙的攻击。
定义7
不可延展性。如果对于所有概率多项式时间对手A,
则该方案是不可延展的。
与不可延展性相关的稍强的概念是唯一性:
定义8-唯一性
如果对于所有证明σa,并且对于所有公钥pka和pkb,方案满足唯一性,则存在唯一证明ab,使得SP-Verify(pka,σa,pkb,σb)=OK。
推论1
满足唯一性的方案也是不可延展的。
基于BLS签名的方案
在本节中,方案是利用BLS签名实现并定义的。这可以称为BLS-SPoCK方案,或将BLS签名与本文讨论的机密知识的专门证明方案相结合。
定义9
BLS-SPoCK包括四个算法:BSP-Setup、BSP-KeyGen、BSP-Prove和BSP-Verify。
·BSP-Setup(1λ)→ppBLS:输出公共参数包括:
-分别具有生成元g1和g2的p阶双线性群对(G1,G2)。
—p阶目标群GT。
—非劣化配对e:G1×G2→GT。
—哈希函数H:{0,1}*→G1建模为随机预言。
.BSP-KeyGen()→(sk,pk):输出(sk,pk)←BSP-KeyGen0∈(Zp×G2)。
·BSP-Prove(sk,m)→σ:输出σ←BSP-Sign(sk,m)∈G1。
换句话说,σ是消息m在私钥sk下的BLS签名。
·BSP-Verify(pka,σa,pkb,σb)→v∈{OK,FAIL}:如果
e(σa,pkb)=e(σb,pka)
输出OK,否则输出FAIL。
因此,可以使用配对相等性检查(包括使用本文讨论的配对特征)来完成验证。
引理2
BLS-SPoCK方案是正确的方案。
证明。对于任何消息m和密钥对(ska,pka)、(skb,pkb),通过e的定义提供如下:
这意味着e(BSP-Prove(ska,m),pkb)=e(BSP-Prove(skb,m),pka),满足定义2。
引理3
BLS-SPoCK方案满足强传递性。
证明。设整数n大于3,设n个有效密钥对的集合为(sk1,pk1),...,(skn,pkn),并且n个证明的集合为σ1,...,σn,使得:
推论2
BLS-SPoCK方案满足唯一性(定义8)。
推论3
BLS-SPoCK方案是不可延展的。
安全性证明
在本节中,如定义6所示,BLS-SPoCK方案针对伪造是安全的。假设BLS-SPoCK在KOSK模型中使用离散对数知识的Schnorr零知识证明进行实例化。
定理1
在KOSK模型中的(G1,G2)中的co-CDH假设下,BLS-SPoCK方案对于知识伪造是安全的。
证明。示出了破坏知识伪造的对手Aknow可以用作黑匣子来破坏co-DCDH(因此co-CDH;引理1)。为此,算法Ckonw被构造为充当知识伪造博弈的挑战者和co-DCDH博弈的对手。
首先,Ckonw请求co-DCDH挑战在A的查询的每一个中,Ckonw采样设置和πi←KOSK-Simulate(pki);并将(pki,πi,σi)发送到A。最后,Aknow以(pka,πa,σa)响应,如果KOSK-Verify(pka,πa)=FAIL或如果则Ckonw中止。
假设C没有中止,这通过假设Aknow破坏知识伪造的Ckonw而以不可忽略的概率发生。然后Ckonw通过首先计算ska←KOSK-Extract(πa),然后针对co-DCDH博弈回答来赢得co-DCDH博弈。
要了解为什么会这样,请注意,由于针对设置了e(σa,pki)=e(σi,pka)的某些,iBSP-Verify返回OK,这意味着因此正确的co-DCDH答案。此外,所有的pki、πi和σi如真实的知识伪造博弈分布:ski=y·ri是对应于的均匀随机密钥,并且πi通过KOSK-Simulate的定义与KOSK证明无法区分。
因此,当Aknow获胜时,Cknow赢得co-DCDH博弈,KOSK-Simulate输出令人信服的πi,并且KOSK-Extract输出ska。根据定义,KOSK-Simulate和KOSK-Extract以压倒性的概率成功,因此Cknow以不可忽略的概率赢得co-DCDH博弈。根据引理1,这与co-CDH很难的假设相矛盾,因此Aknow无法以不可忽略的概率赢得知识伪造。
定理2
在一些示例中,在(G1,G2)中的co-CDH假设下,BLS-SPoCK方案在随机预言模型中对密钥伪造是安全的。
证明。为了赢得密钥伪造博弈,A必须针对消息mo伪造BLS-SPoCK证明σo,使得对于某些诚实生成的密钥对(pk,sk),σo针对pkc、pk和BSP-Prove(sk,mo)进行验证。通过BLS-SPoCK证明的唯一性,必须是下述情况:其实相对于密钥对(skc,pkc)的BLS签名消息mo。换句话说,赢得密钥伪造需要在mo上伪造BLS签名。Boneh等人在随机预言模型中并在(G1,G2)的co-CDH假设下针对所选消息的存在伪造(即EUF-CMA安全性)证明BLS签名的安全性,这证明了定理。
推论4
在一些示例中,BLS-SPoCK方案在KOSK中是不可伪造的,并且可以是在(G1,G2)的co-CDH假设下的随机预言模型。
图4至图7描绘了描述系统和/或证明方案的各种上述特性的示例流程图。流程图描述了用户Alice、Bob和Eve以及验证者Oscar。用户生成证明(p_a,p_b,p_e)或利用他们相应的私钥(sk_a,sk_b,sk_e)和共享消息(m)(如果他们有权访问)。验证者采用验证(Verify)函数来验证提供的证明。在一些实施方式中,用户和验证者每个都采用计算设备,例如图1和图2中描绘的计算设备102、104、106、108和图10中描绘的计算设备1010,以执行相应的证明(Proof)函数或验证函数,如以上详细描述的。例如,用户和验证者可以作为系统例如上述示例去中心化计算系统中的节点操作。
在一些示例中,验证函数可以对应于传递性(例如图5中所示)。传递性定义指出,如果多个证明针对相同的参考证明σi进行验证,那么不仅这些证明应当相互验证(传递性),而且存在一条消息m,可以从其生成所有这些证明(包括参考证明)。关于验证函数及其在认证和验证中的使用的附加信息在图4至图7中说明(例如,作为“Verify()”等)。
图4描绘了示出该方案的正确性特性的流程图。如图所示,证明者用户Alice和Bob可以访问(知道)他们相应的私钥(sk_a,sk_b)、秘密数据(m)和系统中的其他公钥。使用证明函数,证明者用户每个都利用其相应的私钥(sk_a,sk_b)和秘密数据(m)生成秘密数据(m)的知识的专门证明(p_a,p_b)。验证者Oscar可以访问这些生成的专门证明(p_a、p_b)和系统中的其他公钥。Oscar特别无法访问秘密数据(m)。采用验证函数利用针对证明者用户中的每一个的提供的专门证明(p_a,p_b)和相应的公钥(pk_a,pk_b),Oscar可以在不获取秘密数据(m)的内容的知识的情况下确定证明者用户是否共享相同的秘密数据(m)。如果提供的专门证明(p_a,p_b)未经由验证函数进行验证(例如,因为证明不是使用相同的秘密数据生成的,或者公钥(pk_a,pk_b)与用于生成专门证明的他们相应的私钥(p_a,p_b)没有配对),那么提供的专门证明(p_a,p_b)并没有使Oscar相信任何事情。
图5描绘了示出该方案的强传递性特性的流程图。如图所示,证明者用户Alice和Bob_i(Bob_1至Bob_n)可以访问(知道)他们相应的私钥(sk_a、sk_b1至sk_bn)、秘密数据(m)和系统中的其他公钥。使用证明函数,证明者用户每个都利用他们相应的私钥(sk_a,sk_b1至sk_bn)和秘密数据(m)生成秘密数据(m)的专门证明(p_a,p_b1至p_bn)。验证者Oscar可以访问这些生成的专门证明(p_a,p_b1至p_bn)和系统中的其他公钥。Oscar特别无法访问秘密数据(m)。采用验证函数利用针对证明者用户中的每一个的提供的专门证明(p_a,p_b1至p_bn)和相应的公钥(pk_a,pk_b1至pk_bn),Oscar可以在不获取秘密数据(m)的内容的知识的情况下确定每个证明者用户Bob_1至Bob_n是否与证明者用户Alice共享相同的秘密数据(m)。如果所提供的专门证明(p_a,p_bi)未经由验证函数进行验证,则所提供的专门证明(p_a,p_bi)不会使Oscar相信关于Alice和特定Bob_i的任何事情。
图6描绘了示出该方案的知识不可伪造性特性的流程图。如图所示,证明者用户Alice和Eve可以访问(知道)他们相应的私钥(sk_a,sk_e)和系统中的其他公钥。但是,只有Alice可以访问秘密数据(m);Eve无法访问秘密数据(m)。使用证明函数,Alice利用她的私钥(sk_a)和秘密数据(m)生成专门证明p_a。因为Eve无法访问秘密数据(m),她利用她的私钥(p_e)经由恶意证明(Malicious Proof)函数生成证明p_e(例如,Eve试图欺骗Oscar相信她可以访问秘密数据(m))。验证者Oscar可以访问这些生成的专门证明(p_a、p_b)和系统中的其他公钥。Oscar特别无法访问秘密数据(m)。采用验证函数利用针对证明者用户中的每一个的提供的专门证明(p_a,p_e)和相应的公钥(pk_a,pk_e),Oscar可以在不获取秘密数据(m)的内容的知识的情况下确定证明者用户是否共享相同的秘密数据(m)。在所描述的用例中,提供的专门证明(pk_a,pk_e)无法使Oscar相信Alice和Eve可以访问相同的秘密数据(m)。
图7描绘了示出该方案的关键不可伪造性特性的流程图。如图所示,证明者用户Alice和Eve可以访问(知道)秘密数据(m)和系统中的其他公钥。但是,Alice可以访问她的私钥(sk_a);而Eve无权访问Bob的私钥(sk_b)。使用证明函数,Alice利用她的私钥(sk_a)和秘密数据(m)生成专门证明p_a。因为Eve无法访问Bob的私钥,她利用秘密数据(m)经由恶意证明函数生成证明p_b'(例如,Eve试图欺骗Oscar相信Bob可以访问秘密数据(m))。验证者Oscar可以访问这些而生成的专门证明(p_a、p_b')和系统中的其他公钥。Oscar特别无法访问秘密数据(m)。采用验证函数利用所提供的专门证明(p_a,p_b')和与Alice相关联的公钥(pk_a)以及与Bob相关联的公钥(pk_b),Oscar可以在不获取秘密数据(m)的内容的知识的情况下确定Alice和Bob是否都能够访问秘密数据(m)。在所描述的用例中,提供的专门证明(p_a、p_b')无法使Oscar相信Alice和Bob可以访问相同的秘密数据(m)。
图8描绘了可以由示例去中心化计算系统中的各个节点(例如如图3中所描述的)实现的示例过程800的流程图。该过程可以示出系统如何在不揭露共享的数据的情况下使用共享的数据来验证证明。该过程可以由任何其他合适的系统、环境、软件和硬件或者适当的系统、环境、软件和硬件的组合来执行。在一些实施方式中,过程的各种操作可以并行、组合、循环或以任何顺序运行。
在802处,从第一节点接收第一证明;第一证明是根据与第一节点相关联的第一私钥和在第一节点与第二节点之间共享的数据而生成的。过程800从802进行到804。
在804处,从第二节点接收第二证明;第二证明是根据共享的数据和与第二节点关联的第二私钥而生成的。过程800从804进行到806。
在806处,在不揭露共享的数据的情况下,验证第一证明和第二证明两者都是根据共享的数据而生成的。使用在数学上与第一私钥相关的第一公钥和在数学上与第二私钥相关的第二公钥来验证证明。在一些实施方式中,第一证明仅归属于第一节点。在一些实施方式中,第二证明仅归属于第二节点。在一些实施方式中,第一证明或第二证明不能仅利用相应的公钥来验证。在一些实施方式中,第一证明和第二证明每个都包括利用相应的私钥来生成的共享的数据的签名。在一些实施方式中,签名基于BLS签名方案。在一些实施方式中,第一证明和第二证明的验证包括基于两个签名、第一公钥和第二公钥的配对相等性检查。在一些实施方式中,验证第一证明和第二证明包括配对相等性检查。在一些实施方式中,第一证明和第二证明是在非交互协议中生成和验证的。过程800从806进行到808。
在808处,基于根据共享的数据而生成的第一证明和第二证明的验证来执行动作。在一些实施方式中,第一证明和第二证明分别由第一节点和第二节点公开揭露。在一些实施方式中,动作包括公开揭露第一证明和第二证明两者都是根据共享的数据而生成的验证。在一些实施方式中,共享的数据包括证明区块链内的区块的至少一个交易的执行的执行跟踪。在一些实施方式中,第一节点包括用于保证执行节点的计算的正确性的验证节点。在一些实施方式中,计算包括执行跟踪。在一些实施方式中,第二节点包括用于执行区块的至少一个交易的执行节点。在一些实施方式中,验证节点发布第一证明作为计算已被验证的证明。在一些实施方式中,动作包括向客户端提供状态响应,该状态响应是基于区块的输出来确定的。在一些实施方式中,计算被分解成块,以允许以并行且独立的方式进行更轻量的计算验证。在一些实施方式中,动作包括通过执行节点和验证节点仲裁块中的每一个是根据相同的中间结果一致地生成的。从808,过程800结束。
图9描绘了可以由示例去中心化计算系统中的各个节点(例如如图3中所描述的)实现的示例过程900的流程图。该过程可以示出系统如何在不揭露共享的数据的情况下使用共享的数据来验证证明。该过程可以由任何其他合适的系统、环境、软件和硬件或者适当的系统、环境、软件和硬件的组合来执行。在一些实施方式中,过程的各种操作可以并行、组合、循环或以任何顺序运行。
在902处,从多个节点中的每个节点接收证明,每个证明已根据节点之间共享的数据和与每个节点相关联的相应的私钥生成。在一些实施方式中,证明中的每一个都由它们相应的节点公开揭露。在一些实施方式中,证明中的每一个仅归属于相应的生成节点。在一些实施方式中,证明中的每一个不能仅利用相应的公钥来验证。在一些实施方式中,共享的数据包括证明区块链内的区块的至少一个交易的执行的执行跟踪。过程900从902进行到904。
在904处,在不揭露共享的数据的情况下,验证证明中的每一个都是根据共享的数据而生成的。使用每个都在数学上与私钥中的相应的一个私钥相关的多个公钥来验证证明。在一些实施方式中,证明每个都包括利用相应的私钥来生成的共享的数据的签名。在一些实施方式中,证明的验证包括基于签名和公钥的配对相等性检查。在一些实施方式中,签名基于BLS签名方案。在一些实施方式中,验证证明包括配对相等性检查。在一些实施方式中,证明是在非交互协议中生成和验证的。在一些实施方式中,若干证明的验证在节点的数量方面是线性的,而不是二次的。在一些实施方式中,验证证明需要比节点的数量少一个验证。过程900从904进行到906。
在906处,基于证明是根据共享的数据而生成的验证来执行动作。在一些实施方式中,动作包括公开揭露第一证明和第二证明两者都是根据共享的数据而生成的验证。从906,过程900结束。
在一些实施方式中,本文描述的平台、系统、介质和方法包括计算设备、处理器或它们的使用。在进一步的实施方式中,计算设备包括执行设备的功能的一个或更多个硬件中央处理单元(CPU)或通用图形处理单元(GPU)。在更进一步的实施方式中,计算设备还包括被配置成执行可执行指令的操作系统。在一些实施方式中,计算设备可选地连接到计算机网络。在进一步的实施方式中,计算设备可选地连接到因特网,使得它访问万维网。在更进一步的实施方式中,计算设备可选地连接到云计算基础设施。在其他实施方式中,计算设备可选地连接到内联网。在其他实施方式中,计算设备可选地连接到数据存储设备。
根据本文的描述,作为非限制性示例,合适的计算设备包括云计算资源、服务器电脑、服务器集群、台式计算机、膝上型计算机、笔记本计算机、子笔记本计算机、上网本计算机、上网计算机、掌上计算机、移动智能电话、平板计算机。本领域技术人员将认识到许多智能电话适用于本文描述的系统中。本领域技术人员还将认识到具有可选计算机网络连接性的选定电视、视频播放器和数字音乐播放器适用于本文描述的系统中。合适的平板计算机包括本领域技术人员已知的具有小册子、平板和可转换配置的那些平板计算机。
在一些实施方式中,计算设备包括被配置成执行可执行指令的操作系统。操作系统是例如软件(包括程序和数据),其管理设备的硬件并针对应用的执行提供服务。本领域技术人员将认识到,作为非限制性示例,合适的服务器操作系统包括FreeBSD、OpenBSD、Linux、Mac OS XWindows和 本领域技术人员将认识到,作为非限制性示例,合适的个人计算机操作系统包括Mac OS和类UNIX操作系统例如在一些实施方式中,操作系统由云计算提供。本领域技术人员还将认识到,作为非限制性示例,合适的移动智能电话操作系统包括OS、Research InBlackBerryWindowsOS、WindowsOS、和
在一些实施方式中,计算设备包括存储设备和/或存储器设备。存储设备和/或存储器设备是一个或更多个用于临时或永久存储数据或程序的物理装置。在一些实施方式中,该设备是易失性存储器并且需要电力来保持所存储的信息。在一些实施方式中,该设备是非易失性存储器并且在计算设备未通电时保留存储的信息。在进一步的实施方式中,非易失性存储器包括闪存。在一些实施方式中,非易失性存储器包括动态随机存取存储器(DRAM)。在一些实施方式中,非易失性存储器包括铁电随机存取存储器(FRAM)。在一些实施方式中,非易失性存储器包括相变随机存取存储器(PRAM)。在其他实施方式中,该设备是存储设备,作为非限制性示例,包括CD-ROM、DVD、闪存设备、磁盘驱动器、磁带驱动器、光盘驱动器和基于云计算的存储设备。在进一步的实施方式中,存储设备和/或存储器设备是诸如本文所公开的那些设备的组合。
在一些实施方式中,计算设备包括向用户发送视觉信息的显示器。在一些实施方式中,显示器是阴极射线管(CRT)。在一些实施方式中,显示器是液晶显示器(LCD)。在进一步的实施方式中,显示器是薄膜晶体管液晶显示器(TFT-LCD)。在一些实施方式中,显示器是有机发光二极管(OLED)显示器。在各种进一步的实施方式中,OLED显示器是无源矩阵OLED(PMOLED)或有源矩阵OLED(AMOLED)显示器。在一些实施方式中,显示器是等离子显示器。在其他实施方式中,显示器是视频投影仪。在又一实施方式中,显示器是与计算机通信的头戴式显示器,例如虚拟现实(VR)头戴设备。在进一步的实施方式中,作为非限制性示例,合适的VR头戴设备包括HTC Vive、Oculus Rift、Samsung Gear VR、MicrosoftHoloLens、Razer Open-Source Virtual Reality(OSVR)、FOVE VR、Zeiss VR One、AvegantGlyph、Freefly VR头戴装置等。在更进一步的实施方式中,显示器是诸如本文所公开的那些设备的组合。
在一些实施方式中,计算设备包括用于从用户接收信息的输入设备。在一些实施方式中,输入设备是键盘。在一些实施方式中,输入设备是指点设备,作为非限制性示例,包括鼠标、轨迹球、轨迹板、操纵杆、游戏控制器或触控笔。在一些实施方式中,输入设备是触摸屏或多点触摸屏。在其他实施方式中,输入设备是用于捕捉语音或其他声音输入的麦克风。在其他实施方式中,输入设备是用于捕捉运动或视觉输入的摄像机或其他传感器。在进一步的实施方式中,输入设备是Kinect、Leap Motion等。在更进一步的实施方式中,输入设备是诸如本文所公开的设备的组合。
本文提供了可用于实现本公开内容的平台、系统、介质和方法的计算机控制系统。图10描绘了可以被编程或以其他方式配置成实现本公开内容的平台、系统、介质和方法的示例计算设备1010。例如,计算设备1010可以被编程或以其他方式配置,例如关于图1至图2中描绘的计算设备102、104、106、108的描述。
在所描绘的实施方式中,计算设备1010包括CPU(在本文中也称为“处理器”和“计算机处理器”)1012,其可选地是单核处理器、多核处理器或用于并行处理的多个处理器。计算设备1010还包括存储器或存储器位置1017(例如随机存取存储器、只读存储器、闪存)、电子存储单元1014(例如硬盘)、用于与一个或更多个其他系统通信的通信接口1015(例如网络适配器)、以及外围设备1016例如高速缓存、其他存储器、数据存储设备或电子显示适配器。
在一些实施方式中,存储器1017、存储单元1014、通信接口1015和外围设备1016通过通信总线(实线)诸如母板与CPU 1012通信。存储单元1014包括用于存储数据的数据存储单元(或数据储存库)。计算设备1010在通信接口1015的帮助下可选地可操作地耦接至计算机网络,例如图1至图2中描绘的网络110。在一些实施方式中,计算设备1010被配置为部署在所描述的平台内的后端服务器。
在一些实施方式中,CPU 1012可以执行可以体现在程序或软件中的一系列机器可读指令。指令可以存储在存储器位置诸如存储器1017中。指令可以被引导到CPU 1012,其可以随后对CPU 1012进行编程或以其他方式配置以实现本公开内容的方法。CPU 1012执行的操作的示例可以包括获取、解码、执行和写回。在一些实施方式中,CPU 1012是电路例如集成电路的一部分。计算设备1010的一个或更多个其他部件可以可选地包括在电路中。在一些实施方式中,电路是专用集成电路(ASIC)或现场可编程门阵列(FPGA)。
在一些实施方式中,存储单元1014可以存储文件,例如驱动程序、库和保存的程序。在一些实施方式中,存储单元1014存储数据,例如检测逻辑;分析企业遇到的各种威胁;关于为减轻威胁、误报和性能指标等而执行的分类的元数据。在一些实施方式中,计算设备1010包括一个或更多个外部例如位于通过内联网或因特网通信的远程服务器上的附加数据存储单元。
在一些实施方式中,计算设备1010通过网络与一个或更多个远程计算机系统通信。例如,计算设备1010可以与远程计算机系统通信。远程计算机系统的示例包括个人计算机(例如便携式PC)、平板或平板PC(例如iPad、Galaxy Tab等)、智能电话(例如iPhone、支持Android的设备、等),或个人数字助理,如图1至图2所描绘的。在一些实施方式中,用户可以经由例如在图1至图2中所描绘的网络访问计算设备1010。
在一些实施方式中,如本文所描述的平台、系统、介质和方法借助存储在计算设备1010的电子存储位置上例如在存储器1017或电子存储单元1014上的机器(例如计算机处理器)可执行代码来实现。在一些实施方式中,CPU 1012适于执行代码。在一些实施方式中,机器可执行代码或机器可读代码以软件的形式提供。在一些实施方式中,在使用期间,代码由CPU 1012执行。在一些实施方式中,代码从存储单元1014中检索并存储在存储器1017上以供CPU 1012随时访问。在一些情况下,电子存储单元1014被排除,并且机器可执行指令被存储在存储器1017上。在一些实施方式中,代码是预编译的。在一些实施方式中,代码是在运行时期间编译的。代码可以用编程语言提供,可以选择编程语言以使代码能够以预编译或编译的方式来执行。
在一些实施方式中,计算设备1010可以包括电子显示器1035或与电子显示器1035通信。在一些实施方式中,电子显示器1035提供用户接口(UI)1040。
在一些实施方式中,本文公开的平台、系统、介质和方法包括一个或更多个非暂态计算机可读存储介质,所述非暂态计算机存储介质编码有程序,所述程序包括可由可选联网的计算设备的操作系统执行的指令。在进一步的实施方式中,计算机可读存储介质是计算设备的有形部件。在更进一步的实施方式中,计算机可读存储介质可选地可从计算设备中移除。在一些实施方式中,作为非限制性示例,计算机可读存储介质包括CD-ROM、DVD、闪存设备、固态存储器、磁盘驱动器、磁带驱动器、光盘驱动器、包括云计算系统和服务的分布式计算系统等。在一些情况下,程序和指令被永久地、基本上永久地、半永久地、或非暂态地编码在介质上。
在一些实施方式中,本文所公开的平台、系统、介质和方法包括至少一个计算机程序或其使用。计算机程序包括可在计算设备的CPU中执行、被编写以执行一个或更多个指定的任务的指令序列。计算机可读指令可以被实现为执行特定任务或实现特定抽象数据类型的程序模块,例如函数、对象、应用编程接口(API)、数据结构等。根据本文提供的公开内容,本领域技术人员将认识到计算机程序可以用各种语言的各种版本编写。
通常,计算机可读指令的功能可以根据需要在各种环境中组合或分布。在一些实施方式中,计算机程序包括一个指令序列。在一些实施方式中,计算机程序包括多个指令序列。在一些实施方式中,从一个位置提供计算机程序。在其他实施方式中,从多个位置提供计算机程序。在各种实施方式中,计算机程序包括一个或更多个软件模块。在各种实施方式中,计算机程序部分或全部包括一个或更多个网络应用、一个或更多个移动应用、一个或更多个独立应用、一个或更多个网络浏览器插件(plug-in)、扩展、插件(add-in)或插件(add-on)、或其组合。
在一些实施方式中,计算机程序包括网络应用。根据本文提供的公开内容,本领域技术人员将认识到,在各种实施方式中,网络应用利用一个或更多个软件框架和一个或更多个数据库系统。在一些实施方式中,在软件框架诸如Microsoft.NET或Ruby on Rails(RoR)上创建网络应用。在一些实施方式中,网络应用利用一个或更多个数据库系统,作为非限制性示例,包括关系的、非关系的、面向对象的、关联的和XML数据库系统。在进一步的实施方式中,作为非限制性示例,合适的关系数据库系统包括SQL Server、mySQLTM和本领域技术人员还将认识到,在各种实施方式中,网络应用是用一种或更多种语言的一种或更多种版本编写的。网络应用可以用一种或更多种标记语言、表示定义语言、客户端脚本语言、服务器端编码语言、数据库查询语言或它们的组合来编写。在一些实施方式中,网络应用在某种程度上以标记语言诸如超文本标记语言(HTML)、可扩展超文本标记语言(XHTML)或可扩展标记语言(XML)编写。在一些实施方式中,网络应用在某种程度上以表示定义语言诸如级联样式表(CSS)编写。在一些实施方式中,网络应用在某种程度上以客户端脚本语言诸如异步JavaScript和XML(AJAX)、ActionScript、JavaScript或编写。在一些实施方式中,网络应用在某种程度上以服务器端编码语言诸如动态服务器页面(ASP)、Perl、JavaTM、JavaServer Pages(JSP)、超文本预处理器(PHP)、PythonTM、Ruby、Tcl、Smalltalk、或Groovy编写。在一些实施方式中,网络应用在某种程度上以数据库查询语言诸如结构化查询语言(SQL)编写。在一些实施方式中,网络应用集成企业服务器产品诸如Lotus在一些实施方式中,网络应用包括媒体播放器元素。在各种进一步的实施方式中,媒体播放器元素利用许多合适的多媒体技术中的一种或更多种,作为非限制性示例,包括HTML 5、 JavaTM和
在一些实施方式中,计算机程序包括提供给移动计算设备的移动应用。在一些实施方式中,移动应用在制造时被提供给移动计算设备。在其他实施方式中,移动应用经由本文所述的计算机网络提供给移动计算设备。
鉴于本文提供的公开内容,移动应用通过本领域技术人员已知的技术使用本领域已知的硬件、语言和开发环境来创建。本领域技术人员将认识到,移动应用是用几种语言编写的。作为非限制性示例,合适的编程语言包括C、C++、C#、Objective-C、JavaTM、JavaScript、Pascal、Object Pascal、PythonTM、Ruby、VB.NET、WML和带有或没有CSS的XHTML/HTML、或它们的组合。
合适的移动应用开发环境可从多个源获得。作为非限制性示例,商业上可获得的开发环境包括AirplaySDK、alcheMo、Celsius、Bedrock、Flash Lite、.NET Compact Framework、Rhomobile和WorkLight Mobile Platform。其他开发环境可免费获得,作为非限制性示例,包括Lazarus、MobiFlex、MoSync和Phonegap。此外,作为非限制性示例,移动设备制造商分发软件开发者工具包包括iPhone和iPad(iOS)SDK、AndroidTMSDK、SDK、BREW SDK、OS SDK、Symbian SDK、webOS SDK和Mobile SDK。
本领域技术人员将认识到,若干商业论坛可用于分发移动应用,作为非限制性示例,包括App Store、Play、Chrome WebStore、AppWorld、用于Palm装置的App Store、用于webOS的App Catalog、用于移动设备的Marketplace、用于设备的Ovi Store、Apps和DSi Shop。
在一些实施方式中,本文公开的平台、系统、介质和方法包括软件、服务器和/或数据库模块、或它们的使用。鉴于本文提供的公开内容,通过本领域技术人员已知的技术使用本领域已知的机器、软件和语言来创建软件模块。本文公开的软件模块以多种方式实现。在各种实施方式中,软件模块包括文件、代码段、编程对象、编程结构或其组合。在进一步的各种实施方式中,软件模块包括多个文件、多个代码段、多个编程对象、多个编程结构或其组合。在各种实施方式中,作为非限制性示例,一个或更多个软件模块包括网络应用、移动应用和独立应用。在一些实施方式中,软件模块在一个计算机程序或应用中。在其他实施方式中,软件模块在多于一个计算机程序或应用中。在一些实施方式中,软件模块托管在一个机器上。在其他实施方式中,软件模块托管在多于一个机器上。在进一步的实施方式中,软件模块托管在云计算平台上。在一些实施方式中,软件模块托管在一个位置的一个或更多个机器上。在其他实施方式中,软件模块托管在多于一个位置的一个或更多个机器上。
在一些实施方式中,本文公开的平台、系统、介质和方法包括一个或更多个数据库、或它们的使用。鉴于本文提供的公开内容,本领域技术人员将认识到许多数据库适用于数据记录的存储和检索。在各种实施方式中,作为非限制性示例,合适的数据库包括关系数据库、非关系数据库、面向对象的数据库、对象数据库、实体关系模型数据库、关联数据库和XML数据库。其他非限制性示例包括SQL、PostgreSQL、MySQL、MongoDB、Oracle、DB2和Sybase。在一些实施方式中,数据库是基于网络的。在更进一步的实施方式中,数据库是基于云计算的。在其他实施方式中,数据库基于一个或更多个本地计算机存储设备。
Claims (30)
1.一种用于在不揭露共享的数据的情况下验证根据所共享的数据而生成的证明的计算机实现的方法,所述方法包括:
从第一节点接收根据与所述第一节点相关联的第一私钥和在所述第一节点与第二节点之间共享的数据而生成的第一证明;
从所述第二节点接收根据所共享的数据和与所述第二节点相关联的第二私钥而生成的第二证明;
在不揭露所共享的数据的情况下,利用在数学上与所述第一私钥相关的第一公钥和在数学上与所述第二私钥相关的第二公钥来验证所述第一证明和所述第二证明两者都是根据所共享的数据而生成的;以及
基于所述第一证明和所述第二证明两者都是根据所共享的数据而生成的验证来执行动作。
2.根据权利要求1所述的方法,其中,所述第一证明和所述第二证明分别由所述第一节点和所述第二节点公开揭露。
3.根据权利要求1所述的方法,其中,所述动作包括公开揭露所述第一证明和所述第二证明两者都是根据所共享的数据而生成的验证。
4.根据权利要求1所述的方法,其中,所述第一证明仅归属于所述第一节点,并且其中,所述第二证明仅归属于所述第二节点。
5.根据权利要求1所述的方法,其中,所述第一证明或所述第二证明不能仅利用相应的公钥来验证。
6.根据权利要求1所述的方法,其中,所述第一证明和所述第二证明每个都包括利用相应的私钥来生成的所共享的数据的签名。
7.根据权利要求6所述的方法,其中,所述签名基于Boneh-Lynn-Shacham(BLS)签名方案。
8.根据权利要求6所述的方法,其中,所述第一证明和所述第二证明的验证包括基于两个签名、所述第一公钥和所述第二公钥的配对相等性检查。
9.根据权利要求1所述的方法,其中,验证所述第一证明和所述第二证明包括配对相等性检查。
10.根据权利要求1所述的方法,其中,所述第一证明和所述第二证明是在非交互协议中生成和验证的。
11.根据权利要求1所述的方法,其中,所共享的数据包括证明区块链内的区块的至少一个交易的执行的执行跟踪。
12.根据权利要求11所述的方法,其中,所述第一节点包括用于保证执行节点的计算的正确性的验证节点,并且其中,所述计算包括所述执行跟踪。
13.根据权利要求12所述的方法,其中,所述第二节点包括用于执行所述区块的至少一个交易的执行节点,并且其中,所述验证节点发布所述第一证明作为所述计算已被验证的证明。
14.根据权利要求12所述的方法,其中,所述动作包括向客户端提供状态响应,并且其中,所述状态响应是基于所述区块的输出来确定的。
15.根据权利要求12所述的方法,其中,所述计算被分解成块,以允许以并行且独立的方式进行计算验证,并且其中,所述动作包括通过所述执行节点和所述验证节点仲裁所述块中的每一个是根据相同的中间结果一致地生成的。
16.一种用于在不揭露共享的数据的情况下验证根据所共享的数据而生成的证明的系统,所述系统包括:
一个或更多个处理器;以及
计算机可读存储设备,其耦接至所述一个或更多个处理器并具有存储在其上的指令,所述指令当由所述一个或更多个处理器执行时,使所述一个或更多个处理器执行包括下述的操作:
从第一节点接收根据与所述第一节点相关联的第一私钥和在所述第一节点与第二节点之间共享的数据而生成的第一证明;
从所述第二节点接收根据所共享的数据和与所述第二节点相关联的第二私钥而生成的第二证明;
在不揭露所共享的数据的情况下,利用在数学上与所述第一私钥相关的第一公钥和在数学上与所述第二私钥相关的第二公钥来验证所述第一证明和所述第二证明两者都是根据所共享的数据而生成的;以及
基于所述第一证明和所述第二证明两者都是根据所共享的数据而生成的验证来执行动作。
17.根据权利要求16所述的系统,其中,所述动作包括公开揭露所述第一证明和所述第二证明两者都是根据所共享的数据而生成的验证。
18.根据权利要求16所述的系统,其中,所共享的数据包括证明区块链内的区块的至少一个交易的执行的执行跟踪,其中,所述第一节点包括用于保证执行节点的计算的正确性的验证节点,其中,所述计算包括所述执行跟踪,并且其中,所述第二节点包括用于执行所述区块的至少一个交易的执行节点。
19.根据权利要求16所述的系统,其中,所述计算被分解成块,以允许以并行且独立的方式进行更轻量的计算验证,并且其中,所述动作包括通过所述执行节点和所述验证节点仲裁所述块中的每一个是根据相同的中间结果一致地生成的。
20.一种或更多种非暂态计算机可读存储介质,耦接至一个或更多个处理器并具有存储在其上的指令,所述指令当由所述一个或更多个处理器执行时,使所述一个或更多个处理器执行包括下述的操作:
从多个节点中的每个节点接收根据所述节点之间共享的数据以及与每个节点相关联的相应的私钥而生成的相应的证明;
在不揭露所共享的数据的情况下,利用每个都在数学上与所述私钥中的相应的一个私钥相关的多个公钥来验证所述证明中的每一个是根据所共享的数据而生成的;以及
基于所述证明是根据所共享的数据而生成的验证来执行动作。
21.根据权利要求20所述的介质,其中,所述证明中的每一个由它们相应的节点公开揭露。
22.根据权利要求20所述的介质,其中,所述动作包括公开揭露所述第一证明和所述第二证明两者都是根据所共享的数据而生成的验证。
23.根据权利要求20所述的介质,其中,所述证明中的每一个仅归属于相应的生成节点。
24.根据权利要求20所述的介质,其中,所述证明中的每一个不能仅利用相应的公钥来验证。
25.根据权利要求20所述的介质,其中,所述证明每个都包括利用相应的私钥来生成的所共享的数据的签名,并且其中,所述证明的验证包括基于所述签名和所述公钥的配对相等性检查。
26.根据权利要求20所述的介质,其中,所述证明是在非交互协议中生成和验证的。
27.根据权利要求20所述的介质,其中,所共享的数据包括证明区块链内的区块的至少一个交易的执行的执行跟踪。
28.根据权利要求20所述的介质,其中,所述证明的验证的次数在所述节点的数量方面是线性的,而不是二次的。
29.根据权利要求20所述的介质,其中,验证所述证明需要比所述节点的数量少一个验证。
30.根据权利要求20所述的介质,其中,验证所述证明包括配对相等性检查。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063058918P | 2020-07-30 | 2020-07-30 | |
US63/058,918 | 2020-07-30 | ||
PCT/IB2021/000518 WO2022023816A1 (en) | 2020-07-30 | 2021-07-30 | Systems and methods providing specialized proof of confidential knowledge |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115152177A true CN115152177A (zh) | 2022-10-04 |
CN115152177B CN115152177B (zh) | 2023-11-21 |
Family
ID=80003571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180009307.6A Active CN115152177B (zh) | 2020-07-30 | 2021-07-30 | 提供机密知识的专门证明的系统和方法 |
Country Status (8)
Country | Link |
---|---|
US (2) | US11394550B2 (zh) |
EP (1) | EP4055773A4 (zh) |
JP (1) | JP7251035B2 (zh) |
KR (1) | KR102537774B1 (zh) |
CN (1) | CN115152177B (zh) |
AU (1) | AU2021316961B2 (zh) |
CA (1) | CA3158874C (zh) |
WO (1) | WO2022023816A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11824990B2 (en) | 2020-07-30 | 2023-11-21 | Dapper Labs, Inc. | Systems and methods providing specialized proof of confidential knowledge |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10887090B2 (en) * | 2017-09-22 | 2021-01-05 | Nec Corporation | Scalable byzantine fault-tolerant protocol with partial tee support |
US11336685B1 (en) * | 2021-12-22 | 2022-05-17 | Nasuni Corporation | Cloud-native global file system with rapid ransomware recovery |
CN114499885B (zh) * | 2022-02-14 | 2024-03-19 | 中国农业银行股份有限公司 | 一种工作量证明的方法及系统 |
US20230269082A1 (en) * | 2022-02-18 | 2023-08-24 | RISC Zero, Inc. | Zero knowledge prover |
CN114661637B (zh) * | 2022-02-28 | 2023-03-24 | 中国科学院上海天文台 | 针对射电天文数据密集型科学运算的数据处理系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110198213A (zh) * | 2019-04-01 | 2019-09-03 | 上海能链众合科技有限公司 | 一种基于秘密共享随机数共识算法的系统 |
US20190296915A1 (en) * | 2017-08-05 | 2019-09-26 | Proclus Technologies Limited | Method and System for Implementing Automatic Transaction Rebroadcasting for Transient Blockchains |
CN110999206A (zh) * | 2017-08-15 | 2020-04-10 | 区块链控股有限公司 | 阈值数字签名方法及系统 |
Family Cites Families (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070071243A1 (en) * | 2005-09-23 | 2007-03-29 | Microsoft Corporation | Key validation service |
US7930597B2 (en) * | 2008-09-18 | 2011-04-19 | Alcatel-Lucent Usa Inc. | Method and apparatus for validating system properties exhibited in execution traces |
JP6261538B2 (ja) * | 2015-03-24 | 2018-01-17 | 日本電信電話株式会社 | 楕円曲線暗号装置、楕円曲線暗号システム、楕円曲線暗号方法、およびプログラム |
JP2017118447A (ja) * | 2015-12-25 | 2017-06-29 | 学校法人東京理科大学 | 管理局装置、著作権保護装置、編集装置、検証装置、管理プログラム、著作権保護プログラム、編集プログラム、及び検証プログラム |
US20210111880A1 (en) * | 2016-02-18 | 2021-04-15 | Agency For Science, Technology And Research | Access control methods, access control devices, and computer readable media |
US10587609B2 (en) * | 2016-03-04 | 2020-03-10 | ShoCard, Inc. | Method and system for authenticated login using static or dynamic codes |
JP6684930B2 (ja) * | 2016-09-18 | 2020-04-22 | 深▲セン▼前▲海▼▲達▼▲闥▼▲雲▼端智能科技有限公司Cloudminds (Shenzhen) Robotics Systems Co., Ltd. | ブロックチェーンに基づくアイデンティティ認証方法、装置、ノード及びシステム |
GB201709760D0 (en) * | 2017-06-19 | 2017-08-02 | Nchain Holdings Ltd | Computer-Implemented system and method |
EP3662636B1 (en) * | 2017-08-05 | 2022-07-20 | Proclus Technologies Limited | Method and system for securing blockchain with proof-of-transactions |
US10685175B2 (en) * | 2017-10-21 | 2020-06-16 | ScienceSheet Inc. | Data analysis and prediction of a dataset through algorithm extrapolation from a spreadsheet formula |
US11379832B2 (en) * | 2018-12-07 | 2022-07-05 | 0Chain, LLC | Systems and methods of blockchain for transaction rewards on token locking |
US11042934B2 (en) * | 2017-11-13 | 2021-06-22 | Bank Of America Corporation | Crypto-machine learning enabled blockchain based profile pricer |
US10997125B2 (en) * | 2017-11-29 | 2021-05-04 | Technion Research & Development Foundation Limited | Proof of lottery (PoL) blockchain |
US20190164150A1 (en) * | 2017-11-29 | 2019-05-30 | Bank Of America Corporation | Using Blockchain Ledger for Selectively Allocating Transactions to User Accounts |
US11159537B2 (en) * | 2017-11-30 | 2021-10-26 | Bank Of America Corporation | Multicomputer processing for data authentication and event execution using a blockchain approach |
US10567156B2 (en) * | 2017-11-30 | 2020-02-18 | Bank Of America Corporation | Blockchain-based unexpected data detection |
US10949511B2 (en) * | 2017-11-30 | 2021-03-16 | Bank Of America Corporation | Multicomputer processing for data authentication using a blockchain approach |
US11196747B2 (en) * | 2017-12-07 | 2021-12-07 | Bank Of America Corporation | Automated event processing computing platform for handling and enriching blockchain data |
US20190180276A1 (en) * | 2017-12-07 | 2019-06-13 | Bank Of America Corporation | Automated Event Processing Computing Platform for Handling and Enriching Blockchain Data |
US11296863B2 (en) * | 2018-01-04 | 2022-04-05 | Bank Of America Corporation | Blockchain enterprise data management |
US20190207751A1 (en) * | 2018-01-04 | 2019-07-04 | Bank Of America Corporation | Blockchain enterprise data management |
US10659217B2 (en) * | 2018-01-05 | 2020-05-19 | Bank Of America Corporation | Blockchain-based automated user matching |
EP3740919A4 (en) * | 2018-01-17 | 2021-11-10 | tZERO IP, LLC | MULTI-APPROVAL SYSTEM USING M OF N KEYS TO RESTORE A CUSTOMER PORTFOLIO |
US11188897B2 (en) * | 2018-02-13 | 2021-11-30 | Bank Of America Corporation | Multi-tiered digital wallet security |
US10693646B2 (en) * | 2018-02-27 | 2020-06-23 | Bank Of America Corporation | Event execution using a blockchain approach |
US11153069B2 (en) * | 2018-02-27 | 2021-10-19 | Bank Of America Corporation | Data authentication using a blockchain approach |
US20190303939A1 (en) * | 2018-03-27 | 2019-10-03 | Bank Of America Corporation | Cryptocurrency Storage Distribution |
US10498808B2 (en) * | 2018-03-28 | 2019-12-03 | Bank Of America Corporation | Blockchain-based property management |
US11295402B2 (en) * | 2018-03-28 | 2022-04-05 | Bank Of America Corporation | Blockchain-based property repair |
US20190333030A1 (en) * | 2018-04-30 | 2019-10-31 | Bank Of America Corporation | Blockchain-based digital token utilization |
US11012242B1 (en) * | 2018-09-28 | 2021-05-18 | Wells Fargo Bank, N.A. | Systems and methods for trusted chain code system |
US11139985B2 (en) | 2018-12-04 | 2021-10-05 | Journey.ai | Receiving information through a zero-knowledge data management network |
US11308184B2 (en) * | 2018-12-07 | 2022-04-19 | Nike, Inc. | Video game integration of cryptographically secured digital assets |
US11271963B2 (en) * | 2018-12-20 | 2022-03-08 | Micro Focus Llc | Defending against domain name system based attacks |
US10735205B1 (en) * | 2019-03-08 | 2020-08-04 | Ares Technologies, Inc. | Methods and systems for implementing an anonymized attestation chain |
US20200320527A1 (en) * | 2019-04-03 | 2020-10-08 | Coolbitx Ltd. | Method for digital currency transaction with authorization of multiple private keys |
US11507569B2 (en) * | 2019-05-20 | 2022-11-22 | Chia Network Inc. | Methods for extending a proof-of-space-time blockchain |
US11157899B1 (en) * | 2019-05-28 | 2021-10-26 | Hiro Systems Pbc | System and method for bootstrapping a separate proof of work chain |
US11290280B1 (en) * | 2019-05-28 | 2022-03-29 | Hiro Systems Pbc | Cryptocurrency mining using a single-leader election algorithm |
US11223475B2 (en) * | 2019-06-05 | 2022-01-11 | International Business Machines Corporation | Document validation |
US11811933B2 (en) * | 2019-11-27 | 2023-11-07 | Visa International Service Association | System and method for fair, secure n-party computation using at least one blockchain |
US11113677B1 (en) * | 2020-01-14 | 2021-09-07 | Hiro Systems Pbc | Data processing using proof-of-transfer |
US11463258B2 (en) * | 2020-03-13 | 2022-10-04 | Ebay Inc. | Secure token refresh |
AU2021316961B2 (en) | 2020-07-30 | 2023-04-13 | Dapper Labs Inc. | Systems and methods providing specialized proof of confidential knowledge |
-
2021
- 2021-07-30 AU AU2021316961A patent/AU2021316961B2/en active Active
- 2021-07-30 KR KR1020227020662A patent/KR102537774B1/ko active IP Right Grant
- 2021-07-30 WO PCT/IB2021/000518 patent/WO2022023816A1/en unknown
- 2021-07-30 CA CA3158874A patent/CA3158874C/en active Active
- 2021-07-30 CN CN202180009307.6A patent/CN115152177B/zh active Active
- 2021-07-30 EP EP21850707.7A patent/EP4055773A4/en active Pending
- 2021-07-30 US US17/389,905 patent/US11394550B2/en active Active
- 2021-07-30 JP JP2022544416A patent/JP7251035B2/ja active Active
-
2022
- 2022-05-17 US US17/745,874 patent/US11824990B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190296915A1 (en) * | 2017-08-05 | 2019-09-26 | Proclus Technologies Limited | Method and System for Implementing Automatic Transaction Rebroadcasting for Transient Blockchains |
CN110999206A (zh) * | 2017-08-15 | 2020-04-10 | 区块链控股有限公司 | 阈值数字签名方法及系统 |
CN110198213A (zh) * | 2019-04-01 | 2019-09-03 | 上海能链众合科技有限公司 | 一种基于秘密共享随机数共识算法的系统 |
Non-Patent Citations (1)
Title |
---|
DR. ALEXANDER HENTSCHEL 等: "Flow: Separating Consensus and Compute—Block Formation and Execution—", ARXIV.ORG(HTTPS://ARXIV.ORG/PDF/2002.07403.PDF) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11824990B2 (en) | 2020-07-30 | 2023-11-21 | Dapper Labs, Inc. | Systems and methods providing specialized proof of confidential knowledge |
Also Published As
Publication number | Publication date |
---|---|
CA3158874A1 (en) | 2022-02-03 |
AU2021316961B2 (en) | 2023-04-13 |
WO2022023816A1 (en) | 2022-02-03 |
CN115152177B (zh) | 2023-11-21 |
EP4055773A1 (en) | 2022-09-14 |
US20220278844A1 (en) | 2022-09-01 |
JP2023504935A (ja) | 2023-02-07 |
KR102537774B1 (ko) | 2023-05-30 |
EP4055773A4 (en) | 2023-12-13 |
US11824990B2 (en) | 2023-11-21 |
AU2021316961A1 (en) | 2022-06-02 |
KR20220088956A (ko) | 2022-06-28 |
JP7251035B2 (ja) | 2023-04-04 |
US11394550B2 (en) | 2022-07-19 |
US20220038285A1 (en) | 2022-02-03 |
CA3158874C (en) | 2023-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11770238B2 (en) | Decentralized computation system architecture based on node specialization | |
US11778024B2 (en) | Decentralized computation system architecture based on node specialization | |
CN115152177B (zh) | 提供机密知识的专门证明的系统和方法 | |
US20230106484A1 (en) | Cryptographic Asset Collateral Management | |
US20200311678A1 (en) | Smart contract execution using distributed coordination | |
JP7361103B2 (ja) | 演算および信用できる確認のための分散型プラットフォーム | |
US20210099283A1 (en) | Pruning entries in tamper-evident data stores | |
CN112131254A (zh) | 用于区块链分类账的sql处理引擎 | |
CN111414413A (zh) | 区块链背书验证 | |
WO2022236406A1 (en) | Decentralized computation system based on node specialization | |
Pop et al. | Blockchain based decentralized applications: Technology review and development guidelines | |
Zhang et al. | Deconstructing Blockchains: Concepts, Systems, and Insights. | |
Haffke | Technical analysis of established blockchain systems | |
Antal et al. | Distributed Ledger Technology Review and Decentralized Applications Development Guidelines. Future Internet 2021, 13, 62 | |
US20230412393A1 (en) | Multisignature Custody of Digital Assets | |
George | Introducing blockchain applications | |
WO2023180486A1 (en) | Ordered, append-only data storage |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |