CN116171442A - 分布式网络中的验证密钥生成 - Google Patents
分布式网络中的验证密钥生成 Download PDFInfo
- Publication number
- CN116171442A CN116171442A CN202080104330.9A CN202080104330A CN116171442A CN 116171442 A CN116171442 A CN 116171442A CN 202080104330 A CN202080104330 A CN 202080104330A CN 116171442 A CN116171442 A CN 116171442A
- Authority
- CN
- China
- Prior art keywords
- network
- sub
- nodes
- key
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- 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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/065—Network architectures or network communication protocols for network security for supporting key management in a packet data network for group communications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold 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/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/3255—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 group based signatures, e.g. ring or threshold 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/3263—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- 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)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Bioethics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明的实施例涉及一种用于在分布式网络中生成公钥签名方案的验证密钥的计算机实现的方法。该方法包括由节点的第一子网络的节点的子集执行第一分布式密钥生成协议,第一分布式密钥生成协议被配置为联合生成用于第一子网络的验证密钥和用于第一子网络的节点的对应的多个私钥分享。该方法还包括对于第二子网络由第一子网络的多个节点的子集执行第二分布式密钥生成协议的步骤,第二分布式密钥生成协议被配置为联合生成第二子网络的验证密钥和用于第二子网络的节点的对应的多个私钥分享。进一步的步骤包括由第一子网络的节点的子集使用第一子网络的节点的私钥分享的允许子集对第二子网络的验证密钥进行签名,从而在第二子网络的验证密钥上生成联合签名。其它方面涉及分布式网络、分布式网络的节点和对应的计算机程序产品。
Description
技术领域
本发明涉及一种用于在分布式网络中生成公钥签名方案的验证密钥的计算机实现的方法。
进一步的方面涉及一种分布式网络、分布式网络的节点、对应的计算机程序产品以及编码在非暂态介质上的软件体系架构。
背景技术
在分布式网络中,多个节点以分布式方式布置。在分布式网络计算中,软件和数据分散在多个节点上。节点建立计算资源,并且分布式网络可以使用分布式计算技术。
分布式网络的示例是区块链网络。区块链网络是基于共识的、基于区块的电子账簿。每个区块包括交易和其它信息。此外,每个区块包含前一个区块的散列,使得区块变得链接在一起,以为已写入区块链的所有交易创建永久的、不可更改的记录。交易可以调用例如已知为智能合约的小程序。
为了将交易写入到区块链,它必须由网络“核实”并同意。换句话说,网络节点必须就要写入到区块链的区块达成共识。这种共识可以通过各种共识协议来实现。
在一种类型的区块链网络中,共识是通过使用工作量证明算法实现的。工作量证明共识协议通常需要参与共识协议的各方进行一些工作,通常对应于计算机的处理时间。基于工作量证明的加密货币系统(诸如比特币)涉及解决计算密集型难题以核实交易和创建新区块。
另一种类型的共识协议基于权益证明算法。这种权益证明协议的优点在于它们不需要耗时和耗能的计算。例如,在基于权益证明的区块链网络中,下一个区块的创建者是经由网络中相应节点的权益以及随机选择的组合来选择的。
区块链网络中使用的共识协议可以被设计为通过应用“拜占庭容错”(BFT)协定协议来快速确定区块中包含的交易。“同步”BFT协议依赖网络同步假设来确保安全,而“异步”BFT协议则不然。异步BFT协议通常可以容忍少于1/3(三分之一)的损坏参与节点。
除加密货币外,分布式网络还可以用于各种其它应用。
特别地,它们可以用于提供去中心化和分布式计算能力和服务。为此,分布式网络可以使用状态机复制协议来跨多个节点可靠地运行应用和存储状态,即使在出现节点崩溃和对抗性攻击的情况下也是如此。
提供分布式计算服务的这种分布式网络的一个挑战是提供用于生成和分发公钥签名方案的验证密钥的机制。这种验证密钥是例如可以用于验证公钥签名方案的签名的公钥。
这种分布式网络的另一个挑战是提供允许不是最新(再也不是最新)的节点连接或重新连接到分布式网络的机制。这样的节点可以是例如已经崩溃并且想要恢复其参与分布式网络的节点、或者想要参与的新节点。
发明内容
因此,本发明一方面的一个目的是提供一种用于在分布式网络中生成和分发验证密钥的新的有利的方法。
本发明的实施例的另一方面的另一个目的是提供一种方法,该方法允许分布式网络的不是最新的节点连接或重新连接到分布式网络,特别是以高效和安全的方式连接或重新连接。
根据本发明的第一方面的实施例,提供了一种用于在分布式网络中生成公钥签名方案的验证密钥的计算机实现的方法。分布式网络包括多个节点,该多个节点被细分为两个或更多个子网络,其中多个节点中的每个节点被配置为运行一个或多个计算单元。计算单元被配置为跨多个节点的子网络以确定性和复制的方式执行计算,从而遍历执行状态的链。该方法包括由节点的第一子网络的节点的子集执行第一分布式密钥生成协议,第一分布式密钥生成协议被配置为联合生成用于第一子网络的验证密钥和用于第一子网络的节点的子集的对应的多个私钥分享。该方法还包括对于第二子网络,由第一子网络的多个节点的子集执行第二分布式密钥生成协议的步骤,第二分布式密钥生成协议被配置为联合生成第二子网络的验证密钥和用于第二子网络的节点的子集的对应的多个私钥分享。还有的步骤包括由第一子网络的节点的子集使用第一子网络的节点的私钥分享的允许子集对第二子网络的验证密钥进行签名,从而在第二子网络的验证密钥上生成联合签名。
根据这样的实施方法,多个节点被细分为称为子网络的子集。单个子网络中的所有节点遍历相同的执行状态的链。
表示为第一子网络的一个特定子网络被配置成为其自己的子网络以及至少一个其它子网络(表示为第二子网络)生成验证密钥。根据实施例,第一子网络被配置成为多个第二子网络或更一般地为分布式网络的所有子网络生成验证密钥。子网络的验证密钥随时间保持不变,因此也可以表示为静态验证密钥。
根据实施例,第一子网络可以充当治理受托方(committee)以控制和改变全局必要的协议配置,包括分配到子网络的节点和密钥注册表。
根据实施例,第一子网络,更特别地是第一子网络的节点的子集,执行第一分布式密钥生成协议。由此,第一子网络生成表示为第一验证密钥的其自己的验证密钥,以及用于子集,特别是用于第一子网络的所有节点的对应的私钥分享。
当第二子网络被创建为新的子网络时,第一子网络,更特别地,第一子网络的节点的子集,为这个新的子网络执行第二分布式密钥生成协议,从而生成用于新的第二子网络的第二验证密钥以及用于子集,特别是用于第二子网络的所有节点的对应的多个私钥分享。
该方法还包括第一子网络的节点的子集使用它们的私钥分享对第二(新)子网络的公开验证密钥进行签名,从而生成充当用于由第一子网络发出的第二网络的验证密钥的证书的联合签名。这确保(一个或多个)第二子网络的验证密钥可以被认为是有效的。更特别地,第二子网络的每个新验证密钥链接到属于第一子网络的验证密钥。联合签名是使用私钥分享的允许子集执行的。允许子集通常可以被定义为访问结构,并且可以取决于分布式网络的相应安全性要求。根据实施例,联合签名可以是阈值签名并且允许子集可以被定义为最小数量的私钥分享。
这样的分布式网络促进了分布式网络的子网络的验证密钥的高效和安全的分发。利用一个或多个第二子网络的相应验证密钥,分布式网络中的所有节点可以验证信息是否已被该第二子网络签名。这也适用于充当治理子网络的第一子网络。此外,利用子网络的这种组织,第一子网络具有对新子网络的创建的控制,并且可以避免以未授权的方式创建新子网络。作为附加的优点,第一子网络的公开验证密钥充当单个信任根,因为它允许验证第二子网络的所有验证密钥。
根据实施例,该方法还包括由第二子网络使用与第二子网络的验证密钥对应的私钥分享的允许子集对第二子网络的状态信息包进行签名,从而在第二子网络的状态信息包上生成联合签名,状态信息包包括第二子网络的执行状态或执行状态的散列。
这样的实施方法向不再是最新的节点提供状态信息包,以使其能够以高效且安全的方式重新连接到网络。状态信息包包括最近执行状态或最近执行状态的散列。状态信息包上的联合签名可以用相应的第二验证密钥进行验证。
多个节点中的每个节点运行一个或多个计算单元。更特别地,同一子网络中的每个节点运行同一组计算单元,其中该组计算单元可以包括一个或多个计算单元。计算单元可以被定义为正在网络上运行并且具有其自己的单元/执行状态的一段软件。节点的计算单元跨子网络以确定性和复制的方式执行计算,并由此遍历执行状态的链。换句话说,子网络中节点的计算单元以确定性方式执行相同的计算并遍历相同的执行状态,但子网络中的不同节点可能处于执行状态的链的不同位置。
根据实施例,计算单元可以被定义为确定性程序。
子网络的私钥分享由子网络节点的子集联合持有。该子集可以包括子网络的所有节点,特别是对于相当小的子网络,或者对于大的子网络仅包括一部分节点。子集可以随时间改变并且子集的节点数量可以随时间动态地适应。
子网络的验证密钥可以经由可以充当治理受托方的第一子网络的注册表存储并提供给系统中的所有节点。对于每个验证密钥,存在多个对应的私钥分享。这些私钥分享中的每一个仅被子集的对应节点所知,并且相应的密钥分享由子集的相应节点保密。根据实施例,术语私钥分享应包含私钥。
验证密钥也可以表示为公钥,并且私钥分享也可以表示为签名密钥分享或签名密钥。
根据本发明的实施例的公钥签名方案可以包括例如诸如RSA之类的公钥签名和加密方案的密钥、或者诸如Schnorr或DSA之类的公钥签名方案的密钥。
状态信息包包括网络的最近执行状态或最近执行状态的散列。这允许追赶(catch-up)节点再次变为最新并将其“旧”状态与状态信息包提供的最新状态同步。
因此,利用这样的状态信息包,追赶节点可以以一种快进模式将其旧状态同步到网络的当前状态。
状态信息包仅包括执行状态的散列的实施例具有以下优点:相应节点可以首先验证散列,并且仅在散列的肯定验证的情况下才下载完整的执行状态。这可以避免不必要地下载完整状态。在散列的验证是肯定的情况下,可以单独获取(完整的)执行状态本身。
为了便于说明/描述,在下文中术语执行状态也可以适当地包括或指代执行状态的散列。
根据实施例,该方法还包括由第一子网络用与第一子网络的验证密钥对应的私钥分享的允许子集对第一子网络的状态信息包进行签名,从而在第一子网络的状态信息包上生成联合签名,状态信息包包括第一子网络的执行状态或执行状态的散列。
这样的实施方法向不再是最新的第一子网络的节点提供状态信息包,以使其能够以高效且安全的方式重新连接到第一子网络。此外,它可以允许第二子网络的节点验证第一子网络的状态信息包。状态信息包上的联合签名可以用相应的第一验证密钥进行验证。
根据实施例,分布式网络包括多个第二子网络。根据另一个实施例,第一子网络的状态信息包包括第二子网络的列表、多个第二子网络的对应节点验证密钥以及第二子网络的多个节点。
这允许或多或少完全失去其状态的节点找出它属于哪个子网络。特别是它允许不知道它们属于第二子网络中的哪个子网络的节点发现这一点。更特别地,首先,节点可以使用第一验证密钥来验证第一子网络的状态信息包。根据第一子网络的这个已验证的状态信息包,节点可以看到它属于哪个第二子网络,并从该子网络请求另一个状态信息包以重新连接到相应的第二子网络。
根据实施例,对于第二子网络执行第二分布式密钥生成协议包括由第一子网络的节点为第一子网络的节点生成第二验证密钥和与第二验证密钥对应的第一组私钥分享,其中第一子网络的每个节点保持第一组私钥分享中的一个私钥分享。
此外,该方法包括通过秘密重新分发协议将第一组私钥分享中的私钥分享重新分发给第二子网络的节点,从而创建与第二子网络的第二验证密钥对应的第二组私钥分享的进一步的步骤。
因此,第二分布式密钥生成协议可以分两个阶段执行,或者换句话说,可以包含两个阶段。首先,第一子网络的节点或节点的子集生成第二子网络的验证密钥和对应的多个私钥分享。第一组私钥分享由第一子网络的节点的子集保持。然后,第一子网络的节点将这些分享重新分发给第二子网络的节点。分享的这种重新分发也可以表示为分享的重新分享。分享的重新分享可以特别地通过将第一组分享中的分享的分享向第二子网络的节点进行分享来执行。
更特别地,根据实施例,重新分发可以包括由第一子网络的节点的子集生成与第二验证密钥对应的第一组私钥分享中的私钥分享的分享。然后,重新分发可以包括将私钥分享中的分享传送或换句话说重新分享给第二子网络的节点。最后,可以执行由第二子网络的节点根据私钥分享中的分享计算它们各自的私钥分享的步骤。换句话说,第二子网络的节点根据接收到的第一组分享中的分享重建它们的第二组私钥分享。
根据本发明的实施例,第一子网络的节点充当第二分布式密钥生成协议中的经销商,并且第二子网络的节点充当私钥分享的接收者。
根据实施例,该方法还包括发布用于新的第二子网络的新生成的第二验证密钥以及充当治理受托方的第一子网络的联合签名。这提供用于第二子网络的验证密钥的证书。
这样的证书允许验证新的第二验证密钥。
可以以各种方式执行新验证密钥的发布,并且相应的方式可以特别地取决于相应的分布式网络的消息传递和通信信道。
在这方面,术语发布通常是指使新的第二验证密钥对于想要连接或重新连接到分布式网络的节点可得的任何类型的机制。
根据实施例,该方法还包括由节点,特别地由想要连接或重新连接到第二子网络之一的追赶节点,来验证第二子网络的状态信息包。状态信息包的验证包括两个子步骤。
第一子步骤包括通过用第一子网络的验证密钥验证证书来验证与状态信息包的联合签名对应的第二子网络的验证密钥。通过这样,对应的节点得到它可以信任的第二子网络的验证密钥。在进一步的子步骤中,节点可以使用与状态信息包的联合签名对应的第二子网络的经验证的验证密钥来验证状态信息包上的联合签名。
因此,节点得到包括它可以信任的最近执行状态的状态信息包。
根据实施例,该方法包括由分布式网络生成区块的区块链的步骤。每个区块与执行状态的链中的执行状态对应。
因此,本发明的实施例的方法可以有利地应用于利用区块的区块链的分布式网络。区块特别地可以是要由节点的计算单元处理的输入区块。输入区块特别地可以包括应由节点的计算单元执行的执行消息。节点的执行状态与对应区块的执行消息的执行结果对应。
根据实施例,状态信息包包括区块验证信息,以用于验证区块链的后续区块,特别是后续区块的有效性。
状态信息包建立执行状态的链在某个时间点的执行状态的一种快照,并且可以仅在每第i个区块处(例如,在每第500个区块处)提供。例如,如果追赶节点想要重新连接到网络,而网络例如已经处于执行状态600,那么它只能得到执行状态500的状态信息包。
因此,为了完全追赶到执行状态600,相应节点需要借助于区块验证信息来自己执行并验证后续区块501至600。区块验证信息特别地可以包括验证区块链的区块(特别是状态信息包的执行状态之后的区块)的有效性所需要的一组验证密钥。
根据实施例,状态信息包包括用于生成第二子网络的验证密钥的分布式密钥生成协议的密钥生成信息。
这种密钥生成信息特别地可以包括追赶节点恢复其参与分布式密钥生成协议所需的一组完整信息。恢复参与分布式密钥生成所需的相应信息取决于相应的分布式密钥生成协议。根据一个实施例,密钥生成信息可以包含分布式密钥生成协议的完整副本。根据另一个实施例,它可以包括分布式密钥生成协议的摘要,该摘要包括允许提取追赶节点的私钥分享使得它可以再次参与分布式密钥生成协议和联合签名生成的信息的压缩版本。
密钥生成信息的这种提供进一步有利于节点的高效恢复。更特别地,它有利于恢复节点不仅能够更新其执行状态,而且有利于它能够再次参与签名执行。
根据实施例,状态信息包包括完整证书。
这允许追赶节点以高效的方式验证追赶包的联合签名。
一般而言,根据本发明的实施例,状态信息包包括一组完整信息,其允许将想要连接或重新连接到分布式网络的追赶节点的执行状态与当前间隔的执行状态同步。相应组的具体信息可以取决于相应网络的技术实现。
根据实施例,该方法包括将状态信息包添加到预定义间隔的区块之一,特别是添加到预定义间隔的第一区块的进一步的步骤。
这有利于该方法的高效实施以及追赶节点容易访问状态信息包。
根据实施例,状态信息包将执行状态提供为默克尔树(Merkle-tree)结构,特别是提供为默克尔树结构的散列根。这允许存储器高效存储。
根据实施例,该方法包括如下进一步的步骤:由想要连接或重新连接到分布式网络的追赶节点从最新节点请求默克尔树结构的叶子散列,由追赶节点将其自身状态的叶子散列与最新节点的叶子散列进行比较,以及由追赶节点从最新节点仅请求与具有不同叶子散列的叶子对应的状态信息。
这进一步促进了快速且高效的状态同步。
根据实施例,分布式密钥生成协议是分布式阈值密钥生成协议。根据其它实施例,分布式密钥生成协议是多重签名协议或聚合签名协议。不同的分布式密钥生成协议的共同点是需要两个或更多个节点来生成有效密钥。
这样的实施例进一步促进了节点的追赶。通常,节点只接受来自已知节点的通信。这样的已知节点特别地包含可信节点。这些特别地可以是例如相同子网络的节点和根据分布式网络的通信方案或通信协议分配给相应节点以进行通信的节点。扩大追赶节点可以与之通信的节点集合可以帮助追赶节点更快地追赶。
根据本发明的另一方面的实施例,提供了一种分布式网络。
根据本发明的另一方面的实施例,提供了一种分布式网络的节点。
根据本发明的另一方面的实施例,提供了一种用于操作分布式网络的计算机程序产品。该计算机程序产品包括包含有程序指令的计算机可读存储介质,该程序指令可由分布式网络的多个节点中的一个或多个节点执行以使多个节点中的一个或多个节点执行本发明的方法方面的步骤。
根据本发明的另一方面的实施例,提供了一种编码在非暂态计算机可读介质上的软件体系架构。软件体系架构被配置为操作分布式网络的一个或多个节点。编码的软件体系架构包括可由多个节点中的一个或多个节点执行以使得多个节点中的一个或多个节点执行包括本发明的方法方面的步骤的方法的程序指令。
本发明的一个方面的特征和优点可以适当地应用于本发明的其它方面。
在从属权利要求以及下面的描述中列出了其它有利的实施例。
附图说明
通过下面的详细描述,本发明将得到更好的理解,并且上述目的以外的目的将变得清楚。这种描述参考了附图,其中:
图1示出了根据本发明的实施例的分布式网络的示例性图;
图2以更详细的方式图示了在网络的示例性节点上运行的计算单元;
图3图示了根据本发明的实施例的分布式网络中的区块的创建;
图4图示了要由执行子集的节点处理的输入区块的逐区块处理;
图5示出了与图4对应的节点的状态图;
图6示出了根据本发明的实施例的已经由治理子网的签名认证的子网的验证密钥;
图7a示出了根据本发明的实施例的状态信息包的创建的时序图;
图7b示出了状态信息包的框图;
图8a示出了根据本发明的实施例的用于生成公钥签名方案的验证密钥的计算机实现的方法的方法步骤的高级流程图;
图8b示出了图8a的方法的一些步骤的更详细的流程图;
图8c示出了由图8a和图8b中所示的方法步骤生成的对应密钥材料;
图9示出了图示追赶节点可以如何更新其执行状态的方法步骤的流程图;
图10示出了本发明的实施例的方法方面的流程图;
图11示出了执行状态的执行状态信息的示例;
图12图示了最新节点和过时的追赶节点之间的同步;
图13a示出了由分布式阈值密钥生成协议生成的密钥的实施例;
图13b示出了由多重签名协议生成的密钥的实施例;
图14示出了根据本发明的实施例的计算单元的更详细图示;以及
图15示出了根据本发明的实施例的节点的示例性实施例。
具体实施方式
首先,将介绍本发明的实施例的一些一般方面和术语。
根据实施例,分布式网络包括以分布式方式布置的多个节点。在这种分布式网络计算中,软件和数据分布在多个节点上。节点建立计算资源,并且分布式网络可以特别地使用分布式计算技术。
根据实施例,分布式网络可以被实施为区块链网络。术语“区块链”应包括所有形式的电子、基于计算机的分布式账簿。根据一些实施例,区块链网络可以被实施为工作量证明区块链网络。根据其它实施例,区块链网络可以被实施为权益证明区块链网络。
验证密钥:旨在被广泛公开的公钥签名方案的比特串。验证密钥也可以表示为公钥,并且可以用于例如公钥签名方案的数字签名的验证。
根据本发明的实施例的公钥签名方案可以包括例如诸如RSA之类的公钥签名和加密方案的密钥或者诸如Schnorr或DSA之类的公钥签名方案的密钥。
私钥(sk):与公钥(特别是验证密钥)相关的比特串,使得能够进行某种加密操作,特别是对消息进行数字签名。
分布式密钥生成(DKG):一种协议,使得一组经销商能够创建公钥,特别是验证密钥,并为一组接收者提供对应私钥的私钥分享。
秘密重新分发协议:秘密重新分发协议也可以表示为秘密重新分享协议。更新私钥的私钥分享的协议。根据一些实施例,该协议可以向私钥分享的以前保持者提供新的或更新后的私钥分享。根据其它实施例,该协议可以向新的、特别是不同的一组接收者提供新的或更新后的私钥分享。
可验证秘密分享(VSS):一种协议,使得单个经销商能够为一组接收者生成随机秘密s,阈值秘密分享s1,...,sn,以及每个接收者可以用来验证其分享si正确的证据。
根据实施例,Feldman协议[Fel87]、联合Feldman协议[Ped91]和GJKR协议[GJKR99]可以用作分布式密钥生成协议。例如,这些协议公布如下,并且其对应的公开内容通过引用并入本文:
[Fel87]Paul Feldman。A practical scheme for non-interactive verifiablesecret sharing。
在第28届计算机科学基础年会(Annual Symposium on Foundations ofComputer Science)上,第427-437页,Los Angeles,California,1987年10月12-14日。IEEEComputer Society Press。
[Ped91]Torben P.Pedersen。A threshold cryptosystem without a trustedparty(extended abstract)(rump session)。In Donald W.Davies,editor,Advances inCryptology–EUROCRYPT’91,volume 547of Lecture Notes in Computer Science,第522-526页,Brighton,UK,1991年4月8-11日。Springer,Heidelberg,德国。
[GJKR99]Rosario Gennaro,Stanislaw Jarecki,Hugo Krawczyk和Tal Rabin。Secure distributed key generation for discrete-log based cryptosystems。InJacques Stern,editor,Advances in Cryptology–EUROCRYPT’99,volume1592 ofLecture Notes in Computer Science,第295-310页,Prague,Czech Republic,1999年5月2-6日。Springer,Heidelberg,德国。
例如,根据本发明的实施例,可以使用以下协议作为秘密重新分发协议:
Herzberg,Amir;Jarecki,Stanislaw;Hugo,Krawczyk;Yung,Moti(1995)。Proactive Secret Sharing Or:How to Cope With Perpetual Leakage.CRYPTO'95:Proceedings of the 15th Annual International Cryptology Conference onAdvances in Cryptology。London,UK:Springer-Verlag.第339-352页。ISBN 978-3-540-60221-7。
Ran Canetti,Nikolaos Makriyannis,Udi Peled:
UC Non-Interactive,Proactive,Threshold ECDSA.IACR Cryptol.ePrintArch.2020:492(2020)。
David A.Schultz,Barbara Liskov,Moses D.Liskov:MPSS:Mobile ProactiveSecret Sharing。ACM Trans.Inf.Syst.Secur.13(4):34:1-34:32(2010)。
图1示出了根据本发明的实施例的分布式网络100的示例性框图。
分布式网络100包括多个节点10,其也可以表示为网络节点10。多个节点10分布在多个子网络11上。多个子网络11在下文中也可以表示为子网11。在图1的示例中,提供了用SN0、SNA、SNB和SNC表示的四个子网11。子网11建立第一子网并且也可以表示为治理子网。子网SNA、SNB和SNC通常可以称为第二子网。
多个子网11中的每个子网被配置为在相应子网11的每个节点10上运行一组计算单元。根据实施例,计算单元应当被理解为一段软件,特别是包含或具有其自己的单元状态的一段软件。单元状态也可以表示为执行状态。
网络100包括通信链路12,用于相应子网11内的子网内通信,特别是用于在分配给相同子网的计算单元之间交换子网内单元到单元消息。
此外,网络100包括通信链路13,用于不同子网11之间的子网间通信,特别是用于在分配给不同子网的计算单元之间交换子网间单元到单元消息。
因此,通信链路12也可以表示为子网内或对等(P2P)通信链路,并且通信链路13也可以表示为子网间或子网到子网(SN2SN)通信链路。
根据实施例,分布式网络可以特别地被配置为经由消息传递协议在子网SNA、SNB、SNC和SND之间交换子网间消息16。
根据实施例,单元状态或执行状态应被理解为计算单元使用的所有数据或信息,特别是计算单元存储在变量中的数据,还有计算单元从远程调用获得的数据。单元状态/执行状态可以特别地表示相应节点的相应存储器位置中的存储位置。根据实施例,这些存储器位置的内容在计算单元的执行中的任何给定点被称为单元状态。计算单元可以特别地被实施为状态计算单元,即计算单元根据实施例被设计为记住先前事件或用户交互。
根据本发明的实施例,子网11被配置为跨相应的子网11复制计算单元集合。更特别地,子网11被配置为跨相应子网11复制计算单元的单元状态/执行状态。
每个子网11保持公钥签名方案的单独的(或换句话说分离的)验证密钥。在这个示例中,子网SN0保持验证密钥pk0,子网SNA保持验证密钥pkA,子网SNB保持验证密钥pkB,并且子网SNC保持验证密钥pkC。验证密钥在下文中可以统称为pkX,其中X表示对应的子网。根据实施例,验证密钥pkX是恒定的,或者换句话说在相应子网11的整个生命周期内是固定的。因此验证密钥pkX也可以表示为静态验证密钥或恒定验证密钥。
根据本发明的实施例,静态验证密钥pkX由第一子网络SN0执行的分布式密钥生成协议生成。更特别地,第一子网络SN0生成它自己的验证密钥pk0以及用于子网络SNA、SNB和SNC的验证密钥pkA、pkB和pkC。因此,第一子网络SN0形成治理子网络。
现在参考图8a、图8b和图8c,更详细地解释由第一子网络SN0生成验证密钥。该方法步骤例如可以由图1中所示的分布式网络100执行,并参考图1中所示的子网结构进行图示。
图8a示出了根据本发明的实施例的用于生成公钥签名方案的验证密钥的计算机实现的方法的方法步骤的高级流程图。
图8b示出了图8a的方法的一些步骤的更详细的流程图,并且图8c示出了由方法步骤生成的对应密钥材料。
对于以下示例性和简化的解释,假设子网络SN0作为第一子网络(或者换句话说治理子网络)操作并且包括3个节点N1、N2和N3,并且子网络SNA作为示例性第二子网络操作并且包括3个节点N4、N5和N6,如图8c中所示。
在步骤810处,节点的第一子网络SN0的节点10的子集,例如包括所有节点N1、N2和N3的子集,执行第一分布式密钥生成协议。更特别地,子集的节点联合生成作为第一验证密钥的用于第一子网络SN0的验证密钥pk0和分别用于第一子网络的节点N1、N2和N3的多个对应私钥分享share0,N1、share0,N2和share0,N3。第一DKG协议的结果示出在方框820中。
在步骤830处,节点的第一子网络SN0的节点10为第二子网络SNA执行第二分布式密钥生成协议。因此,如方框840中所示,节点N4、N5和N6保持与验证密钥pkA对应的私钥分享shareA,N4、shareA,N5和shareA,N6。
现在参考图8b,更详细地图示了步骤830。
更特别地,在步骤831处,第一子网络的子集的节点,即节点N1、N2和N3,联合生成作为第二验证密钥的用于第二子网络SNA的验证密钥pkA和用于第一子网络的节点N1、N2和N3的多个对应私钥分享shareA,N1、shareA,N2和shareAN3 SNA。换句话说,最初第一子网络SN0的节点N1、N2和N3保持与验证密钥pkA对应的私钥分享shareA,N1、shareA,N2和shareA,N3。该步骤的结果示出在方框832中。
然后,在步骤833处,第一子网络SN0的节点N1、N2和N3执行秘密重新分发协议并将它们的私钥分享shareA,N1、shareA,N2和shareA,N3重新分发(或者换句话说重新分享)到第二子网络SNA的节点N4、N5和N6。这创建了与第二子网络SNA的第二验证密钥pkA对应的第二组私钥分享shareA,N4、shareA,N5和shareA,N6。该步骤的结果示出在方框834中。因此,第二组节点N4、N5和N5中的每个节点保持第二组密钥分享shareA,N4、shareA,N5和shareA,N6中的私钥分享之一。
秘密再分发协议可以特别地如下实现。第一子网络SN0的节点N1、N2和N3创建其分享shareA,N1、shareA,N2和shareA,N3的分享,并将其分享的这些分享分发给节点N4、N5和N6。然后节点N4、N5和N6根据这些接收到的分享shareA,N1、shareA,N2和shareA,N3的分享计算它们自己的单独的私钥分享shareA,N4、shareA,N5和shareA,N6。
返回参考图8a,进一步的步骤850包括由第一子网络的节点的子集,例如由节点N1、N2和N3,用私钥分享SNA的允许子集和第一子网络SN0的节点N1、N2和N3的多个对应私钥分享share0,N1、share0,N2和share0,N3对第二子网络SNA的验证密钥pkA进行签名。这在第二子网络的验证密钥pkA上生成了联合签名σpk0。
图2以更详细的方式图示了在网络100的节点10上运行的计算单元15。网络100被配置为根据子网分配将在网络100上运行的每个计算单元分配给多个子网之一,在这个示例中分配给子网SN0、SNA、SNB或SNC之一。分布式网络100的子网分配为子网SN0、SNA、SNB和SNC中的每个子网创建整组计算单元的分配子集。
更特别地,图2在左侧201示出了图1的子网SN0的节点10。分布式网络100的子网分配已经将五个计算单元15的子集(更特别地,计算单元CU01、CU02、CU03、CU04和CU05的子集)分配给子网SN0。分配的计算单元CU01、CU02、CU03、CU04和CU05的子集在子网SN0的每个节点10上运行。此外,分配的计算单元的子集在整个子网SN0上被复制,使得每个计算单元CU01、CU02、CU03、CU04和CU05遍历相同的单元状态/执行状态。
此外,图2在右侧202示出了图1的子网SNA的节点10,四个计算单元15在节点10上运行,更特别地是一组计算单元CUA1、CUA2、CUA3和CUA4。该组计算单元CUA1、CUA2、CUA3和CUA4在子网SNB的每个节点10上运行。此外,该组计算单元在整个子网SNA上被复制,使得计算单元CUA1、CUA2、CUA3和CUA4中的每一个具有相同的单元状态/执行状态。
图3图示了根据本发明的实施例的分布式网络中的区块的创建。区块特别地可以是要由执行子集的计算单元处理的输入区块。执行子集要处理的区块已经由子网的相应节点的共识子集达成一致。
在该示例性实施例中,图示了三个输入区块301、302和303。区块301包括多个交易,即交易tx1.1、tx1.2以及可能的用点指示的其它交易。区块302也包括多个交易,即交易tx2.1、tx2.2以及可能的用点指示的其它交易。区块303也包括多个交易,即交易tx3.1、tx3.2和可能的用点指示的其它交易。输入区块301、302和303链接在一起。更特别地,每个区块包括前一个区块的区块散列。这在密码学上将当前区块与先前的(一个或多个)区块联系起来。
根据实施例,交易特别地可以是要由执行子集的节点执行的执行消息。
根据实施例,输入区块301、302和303可以通过权益证明共识协议来创建。
但是,应当注意的是,根据实施例,不需要将由共识部件生成的输入区块链接在一起。而是,根据实施例可以使用在节点之间就接收消息的选择和/或处理顺序达成某种共识的任何共识协议。
图4以简化和示意的方式图示了将由执行子集的节点N1-N6处理的输入区块的逐区块处理。
几个执行消息可以被分组在一起以形成区块,但是执行消息在区块内保持它们的逻辑顺序。也可以表示为突变的执行消息的示例如下所示:
-用户U请求使用自变量X在计算单元B上执行方法M。
-开发人员V请求以初始状态S安装计算单元D。
-开发人员V请求移除计算单元D。
执行子集的每个节点N1、N2、N3、N4、N5和N6被配置为执行输入区块的相同的链,通常包括区块N、N-1、N-2等的执行消息。区块N、N-1、N-2的数量可以表示为区块链的高度。
根据该示例,假设底层分布式网络的节点的执行子集,特别是相应子网的节点,包括三个计算单元CU1、CU2和CU3。六个节点N1-N6中的每一个运行三个计算单元CU1、CU2和CU3的复制品。
如所提到的,六个节点N1-N6中的每一个以确定性方式进行执行区块的处理,但是输入区块的处理可以不同时执行,而是可以交错执行。换句话说,节点可以位于区块链的不同高度。
在节点处理或执行了高度为N的输入区块之后,该节点具有对应的执行状态N。换句话说,节点的执行状态N与输入区块N的执行结果对应。
在图4的示例中,节点N1已成功执行输入区块87、处于执行状态87并且适于处理作为下一个输入区块的输入区块88。
此外,节点N2已成功执行输入区块88、处于执行状态88并且适于处理作为下一个输入区块的输入区块89。
以对应的方式,节点N3已经处于执行状态93,节点N4处于执行状态91,并且节点N5处于执行状态92。
节点N1-N5的执行状态仍然彼此接近,并且稍微落后的节点只需要处理剩余的输入区块来遍历执行状态。
但是,假设节点N6为已经失去跟踪的节点。例如,它可能是已经崩溃的节点,其用闪电图示。节点N6已经失去执行状态的跟踪,并且需要一种方法或方式来追赶接近最新执行状态的节点N1-N5。在下文中,节点N6也可以表示为追赶节点6。
图5示出了对应于图4的节点N1-N6的状态图。节点N1-N6可以经由通信链路510相互通信,通信链路510由实箭头图示。但是,追赶节点N6不再是最新的,并且因此已失去它与其余节点N1-N5的连接,这由虚线箭头520图示。
本发明的实施例向追赶节点N6提供一组信息,或者换句话说,促进节点N6或使节点N6能够将其执行状态赶上网络的当前执行状态的信息包。这样的包或一组信息在下文中也表示为状态信息包或追赶包。下面将进一步描述这种状态信息包可能包含的信息的细节。
参考图6,将解释根据本发明的实施例的方法,该方法允许追赶节点(例如追赶节点N6)来验证这样的状态信息包。
更特别地,图6分别示出了第二子网SNA、SNB和SNC的多个第二验证密钥pkA、pkB和pkC,统称为第二验证密钥610,它们已经通过第一/治理子网SN0的签名σpk0进行认证。
因此,所有第二验证密钥610引用回第一/治理子网SN0的验证密钥pk0。相应地,第一/治理子网SN0的验证密钥pk0建立分布式网络的根信任。
公开验证密钥pkA、pkB和pkC中的每一个由治理子网的预定义最小数量的私钥分享签名,即由与验证密钥pk0对应的私钥分享签名。由与公开验证密钥pki对应的预定义最小数量的私钥分享联合生成的签名形成所涉及节点的联合签名620并且在下文中用σpki表示。
以这种方式形成的密钥可以使用验证密钥pk0进行验证,验证密钥pk0为分布式网络建立信任根。密钥610与签名620一起形成密钥证书630。
为了允许对网络的节点进行验证,特别是对追赶节点,网络可以发布新生成的第二子网络的验证密钥以及治理受托方/治理子网的联合签名。
验证密钥证书630的发布可以以各种方式进行,这取决于相应分布式网络的通信机制。但一般而言,发布应理解为对于网络的节点可用,特别是对于追赶节点可用。
根据本发明的实施例,可以使用密钥证书630和对应的验证密钥来验证状态信息包的签名。
图7a图示了区块链710的时序图,其包括区块编号为22至32的区块711。根据所示示例,4个区块建立了区块链710的4个区块711的预定义间隔720。对应于区块链710,分布式网络的节点遍历执行状态22-31的链740。执行状态22-31通常用参考数字741表示,并且还用方块741图示。分布式网络的执行子集的节点在已执行对应区块N的执行消息之后捕获或者换句话说移动到执行状态N。作为示例,执行子集的节点在已执行区块24的执行消息之后捕获或者移动到执行状态24。为此,表示图7a中的状态的方块741被示为与对应区块711稍微偏移。
在图7a的示例中,包括区块25-28的第七间隔的状态信息包可以用与该子网的验证对应的私钥分享来签名。根据实施例,状态信息包也可以表示为追赶包或恢复包。状态信息包特别地包括执行状态或执行状态的散列。状态信息包仅包括执行状态的散列的实施例具有以下优点:相应节点可以首先检查该散列,并且仅在该散列的肯定验证的情况下才下载完整的执行状态。在这样的实施例中,状态信息包包括散列以及从pk0验证它所需的所有密钥和证书。这可以避免不必要地下载完整状态。在散列的验证是肯定的情况下,可以单独获取(完整的)执行状态本身。
执行状态特别地可以是最近的执行状态,特别是当前间隔的执行状态。作为示例,参考图7a,与相应子网的相应验证密钥pkX对应的私钥分享可以对包括与区块24的执行之后的执行状态对应的执行状态24的状态信息的状态信息包SIP,750进行签名。
根据实施例,状态信息包SIP,750可以被添加到区块链的区块。根据实施例,间隔720的每个第一区块包括状态信息包SIP,750。
图7b示出了状态信息包SIP,750的更详细的框图。状态信息包750首先包括执行状态741。
此外,状态信息包750包括证书730,其可以与如图6中所示的证书630对应。
此外,状态信息包750包括区块验证信息752。这样的区块验证信息752可以特别地包括验证区块链的后续区块(特别是后续区块的有效性)所需的信息。在这方面,后续区块是在状态信息包的执行状态之后要执行的区块。区块验证信息可以特别地包括验证区块链的区块的有效性所需的一组验证密钥。
完整的状态信息包750用通过与相应子网的验证密钥pkX对应的预定义最小数量的私钥分享的联合签名σpkX来签名。
证书730包括验证pkX所需的验证密钥。在用验证密钥证书对pkX进行验证之后,相应节点可以用验证过的验证密钥pkX来验证状态信息包750上的签名σpkX。
应当注意的是,根据实施例,证书730可能不需要被包括在状态信息包750中,但是它也可以经由另一个通信信道被传送到相应的追赶节点。
图9示出了图示追赶节点可以如何更新其执行状态的方法的步骤的流程图900。
在步骤910处,追赶节点接收状态信息包,例如,如图7b中所示的状态信息包750。追赶节点可以例如从包含状态信息包的区块中提取状态信息包。
然后,追赶节点对接收到的状态信息包以两步方法进行验证。
首先,追赶节点在步骤920处从状态信息包中提取证书。此外,在步骤930处,它使用证书来验证与状态信息包的联合签名对应的验证密钥。
步骤920和930形成状态信息包的验证的第一部分或第一步骤。
接下来,在步骤940处,追赶节点使用之前在步骤920和930处验证过的验证密钥验证状态信息包上的联合签名。
在成功验证之后,追赶节点可以在步骤950处借助于状态信息包的其它元素,特别是借助于状态信息包提供的执行状态741,同步其执行状态。
图10示出了本发明的实施例的方法方面(更特别地是用于将状态信息包定期添加到分布式网络的区块的方法和相关联协议)的流程图。
该方法在循环1010处定期执行共识协议,以就应由节点的执行子集(特别是由子网络)执行的一组执行消息达成共识。共识协议可以由网络的节点的共识子集执行,特别是由子网的共识子集执行。循环1010包括步骤1011,在该步骤处,共识子集的节点就新输入区块达成共识。输入区块可以用递增的高度索引N来编号。N是递增的整数,即,例如0、1、2、3...N。高度索引也可以表示为区块高度。
然后,在步骤1021处,由执行子集的节点的计算单元以确定性方式单独执行已达成一致的输入区块的执行消息。
作为执行的结果,执行子集的节点在步骤1022处更新它们的执行状态,并由此遍历执行状态的链。如上所述,执行子集的不同节点可能在某个时间点在链的不同位置操作。在循环1020中重复步骤1021和1022。
此外,该方法包括用于生成状态信息包SIP并对其进行签名的循环1040。状态信息包SIP不是为每个区块生成的,而是只在每第i个区块才生成,例如在每第500个区块生成。这可以例如用计数器来实现。相应地,在每个区块的生成之后,在步骤941处,触发计数器并检查计数器是否已到期。计数器可以以各种方式实施。特别地,它可以被编程为在预定义数量的处理循环1010之后到期,例如,在500个处理循环1010之后到期。
如果计数器已到期,那么节点在步骤1042处编译状态信息包SIP,其可以包括如上所述的信息,特别是最近的执行状态。然后,在步骤1043处,当前间隔或循环的状态信息包用与相应子网络的验证密钥对应的预定义最小数量的私钥分享来签名。
接下来,在步骤1044处,状态信息包SIP被添加到区块链的区块并且计数器被重置。
图11示出了执行状态“状态@5000”的执行状态信息1100的示例。
执行状态作为树结构化数据提供。这样的执行状态可能具有多个千兆字节的总大小。为了在盘上的高效存储,它可以包括例如64K字节的存储器页。
执行状态“状态@5000”包括计算单元的执行状态信息以及系统元数据。计算单元的执行状态信息包括计算执行消息的计算结果。执行状态信息可以存储为存储器页。系统元数据可以包括由系统代表计算单元维护的其它状态以及未完成消息的上下文和回调。根据实施例,树结构化数据的叶子可以仅包括对应数据的散列,例如相应存储器页的散列。
根据实施例,执行状态可以被提供为默克尔树结构。根据实施例,状态信息包可以仅存储树结构的散列根(特别是默克尔树结构的散列根)作为执行状态信息。这有利于存储器高效存储。
树结构促进了最新节点与过时并希望恢复参与分布式网络的追赶节点之间的有效同步。
图12图示了具有执行状态“状态@5000”的最新节点1210和具有过时状态“状态@4000”的过时追赶节点1220之间的这种同步。
根据实施例,追赶节点1220可以从最新节点1210仅请求树结构的叶子散列,并将其自身状态的叶子散列与最新节点的叶子散列进行比较。在进一步的步骤中,追赶节点1220然后可以从最新节点1210仅请求与具有不同叶子散列的叶子对应的状态信息。这避免了下载完整的状态信息包,而是只下载状态信息包中与追赶节点的状态不同的部分。
图13a和图13b图示了根据本发明的实施例的从治理受托方子网获得的验证密钥及其对应的私钥分享的实施例。
图13a示出了由分布式阈值密钥生成协议生成的密钥1310的实施例。
对于该示例,假设有N个节点参与分布式密钥生成协议。对于分布式密钥生成协议的每一轮,N个节点中的每一个具有私钥分享ski,其中i=1,...,N。N个节点联合生成共同公钥pk,其中预定义阈值(例如,至少三分之二或三分之一)的节点需要同意新的公钥/新的验证密钥,并对新的公钥/验证密钥进行联合签名,以生成阈值签名σpk。
图13b示出了由多重签名协议生成的密钥1320的实施例。
对于该示例,再次假设有N个节点参与分布式密钥生成协议。对于分布式密钥生成协议的每一轮,N个节点中的每一个具有私钥分享ski,其中i=1,...,N。
根据该实施例,私钥分享可以被实施为独立的私钥ski。N个节点联合对被实施为向量的共同公钥/共同验证密钥达成一致。同样,预定义阈值(例如,至少三分之二的节点或三分之一)的节点需要用其私钥(密钥分享)在新的公钥/验证密钥/>上提供签名。根据该实施例,N个节点使用它们各自的私钥sk1、sk2、...、skN在向量验证密钥/>的对应元素上执行各自的签名σ1pk1、σ2pk2、...、σNpkN。更特别地,每个单独的签名σipki具有对应的单独的公钥pki。因此,根据这样的实施例,验证密钥被实施为各个公钥pki的向量/> 并且联合签名也被实施为向量/>
根据其它实施例,也可以使用聚合签名方案。
在下文中,给出了可以根据本发明的实施例使用的分布式密钥生成协议的一些更多细节。
图14示出了根据本发明的实施例的计算单元1400的更详细图示。
计算单元1400包括用户或应用状态1401和系统状态1402。
用户状态1401由实现计算单元及其依赖模块的功能的主Web组件(WASM)模块以及每个模块的实例组成。WASM模块实例由存储器、全局变量和表组成。
系统状态1402不能由计算单元的代码自由修改。它包括元数据、系统代表计算单元维护的其它状态,特别是WASM模块的编译形式,以及未完成消息的上下文和回调。
现在参考图15,示出了例如图1的网络100的根据本发明的实施例的网络节点10的更详细的框图。网络节点10建立可以执行计算功能并且因此通常可以被实施为计算系统或计算机的计算节点。网络节点10例如可以是服务器计算机。网络节点10可以被配置为执行用于向分布式网络的用户提供对由分布式网络计算的计算结果的访问的计算机实现的方法。网络节点10可以与许多其它通用或专用计算系统环境或配置一起操作。
网络节点10可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般上下文中描述。一般而言,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、部件、逻辑、数据结构等。网络节点10以通用计算设备的形式示出。网络节点10的部件可以包括但不限于一个或多个处理器或处理单元1515、系统存储器1520和将包括系统存储器1520的各种系统部件耦合到处理器1515的总线1516。
总线1516表示几种类型的总线结构中的任何一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口以及使用各种总线体系架构中的任何一种的处理器或本地总线。作为示例而非限制,此类体系架构包括行业标准体系架构(ISA)总线、微通道体系架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线和外围部件互连(PCI)总线。
网络节点10通常包括各种计算机系统可读介质。这样的介质可以是网络节点10可访问的任何可用介质,并且它包括易失性和非易失性介质、可移除和不可移除介质。
系统存储器1520可以包括易失性存储器形式的计算机系统可读介质,诸如随机存取存储器(RAM)1521和/或高速缓存存储器1522。网络节点1510还可以包括其它可移除/不可移除、易失性/非易失性计算机系统存储介质。仅作为示例,可以提供存储系统1523用于从不可移除、非易失性磁介质(未示出并且通常称为“硬盘驱动器”)读取和写入。虽然未示出,但是可以提供用于从可移除非易失性磁盘(例如,“软盘”)读取和写入的磁盘驱动器,以及用于从可移除非易失性光盘(诸如CD-ROM、DVD-ROM或其它光学介质)读取或写入的光盘驱动器。在这些情况下,每个可以通过一个或多个数据介质接口连接到总线1516。如将在下面进一步描绘和描述的,存储器1520可以包括至少一个计算机程序产品,其具有一组(例如,至少一个)程序模块,所述程序模块被配置为执行本发明的实施例的功能。
具有一组(至少一个)程序模块1531的程序/实用程序1530可以作为示例而非限制存储在存储器1520中,以及操作系统、一个或多个应用程序、其它程序模块和程序数据也可以存储在存储器1520中。操作系统、一个或多个应用程序、其它程序模块和程序数据或其某种组合中的每一个可以包括联网环境的实施方式。程序模块1531通常执行如本文所述的本发明的实施例的功能和/或方法。程序模块1531可以特别地执行用于向分布式网络的用户提供对由分布式网络计算的计算结果的访问的计算机实现的方法的一个或多个步骤,例如,如上所述的方法的一个或多个步骤。
网络节点10还可以与一个或多个外部设备1517(诸如键盘或定点设备)以及显示器1518进行通信。这种通信可以经由输入/输出(I/O)接口1519进行。此外,网络节点10可以经由网络适配器1541与诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,互联网)之类的一个或多个网络40通信。根据实施例,网络1540特别地可以是包括多个网络节点10的分布式网络,例如图1中所示的网络100。如所描绘的,网络适配器1541经由总线1516与网络节点10的其它部件通信。应该理解的是,虽然未示出,但是其它硬件和/或软件部件可以与网络节点10结合使用。
本发明的方面可以被实施为系统,特别是包括多个子网的分布式网络、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的(一个或多个)计算机可读存储介质,用于使处理器执行本发明的各方面。
计算机可读存储介质可以是可以保留和存储指令以供指令执行设备使用的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。如本文所使用的,计算机可读存储介质不应被解释为瞬态信号本身,诸如无线电波或其它自由传播的电磁波、通过波导或其它传输介质传播的电磁波(例如,通过光纤电缆的光脉冲),或者通过电线传输的电信号。
本文所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络(例如互联网、局域网、广域网和/或无线网)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明的操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及传统过程式编程语言—诸如“C”编程语言或类似的编程语言。
本文参考根据本发明的实施例的方法、网络、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各方面。
根据本发明的实施例的计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而产生一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,创建实现流程图和/或框图中的一个或多个方框中规定的功能/动作的手段。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令可以使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,以使在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
各图中的流程图和框图图示了根据本发明的各种实施例的网络、系统、方法和计算机程序产品的可能实施方式的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实施方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,连续的两个方框实际上可以基本并行地执行,或者它们有时也可以按相反的顺序执行,这依所涉及的功能而定。
虽然示出和描述了本发明的当前优选实施例,但应清楚地理解本发明不限于此,而是可以在所附权利要求的范围内以其它方式实施和实践。
Claims (22)
1.一种用于在分布式网络中生成公钥签名方案的验证密钥的计算机实现的方法,所述分布式网络包括多个节点,所述多个节点被细分为两个或更多个子网络,其中所述多个节点中的每个节点被配置为运行一个或多个计算单元,其中所述计算单元被配置为跨所述多个节点的子网络以确定性和复制的方式执行计算,从而遍历执行状态的链,所述方法包括:
由节点的第一子网络的节点的子集执行第一分布式密钥生成协议,第一分布式密钥生成协议被配置为联合生成用于第一子网络的验证密钥和用于第一子网络的节点的子集的对应的多个私钥分享;
对于第二子网络,由第一子网络的多个节点的子集执行第二分布式密钥生成协议,第二分布式密钥生成协议被配置为联合生成第二子网络的验证密钥和用于第二子网络的节点的子集的对应的多个私钥分享;以及
由第一子网络的节点的子集使用第一子网络的节点的私钥分享的允许子集对第二子网络的验证密钥进行签名,从而在第二子网络的验证密钥上生成联合签名。
2.根据权利要求1所述的计算机实现的方法,还包括:
由第二子网络使用与第二子网络的验证密钥对应的私钥分享的允许子集对第二子网络的状态信息包进行签名,从而在第二子网络的状态信息包上生成联合签名,状态信息包包括第二子网络的执行状态或第二子网络的执行状态的散列。
3.根据权利要求1所述的计算机实现的方法,还包括:
由第一子网络使用与第一子网络的验证密钥对应的私钥分享的允许子集对第一子网络的状态信息包进行签名,从而在第一子网络的状态信息包上生成联合签名,状态信息包包括第一子网络的执行状态或第一子网络的执行状态的散列。
4.根据权利要求3所述的计算机实现的方法,其中所述分布式网络包括多个第二子网络,其中第一子网络的状态信息包包括包含以下的列表:
所述多个第二子网络的节点验证密钥;以及
所述多个第二子网络的多个节点。
5.根据权利要求1所述的计算机实现的方法,其中对于第二子网络执行第二分布式密钥生成协议包括:
由第一子网络的节点为第一子网络的节点生成第二验证密钥和对应的第一组私钥分享;其中第一子网络的每个节点保持第一组私钥分享中的一个私钥分享;
通过秘密重新分发协议将第一组私钥分享中的私钥分享重新分发给第二子网络的节点,从而创建与第二子网络的第二验证密钥对应的第二组私钥分享。
6.根据权利要求1所述的计算机实现的方法,还包括:
将第二子网络的验证密钥与第一子网络的联合签名一起发布,从而提供第二子网络的验证密钥的证书。
7.根据权利要求6所述的计算机实现的方法,还包括:
由节点,特别是由想要连接或重新连接到所述分布式网络的第二子网络的追赶节点,通过以下操作验证状态信息包:
通过使用第一子网络的验证密钥验证所述证书来验证与状态信息包的联合签名对应的第二子网络的验证密钥;以及
使用经验证的与状态信息包的联合签名对应的第二子网络的验证密钥来验证状态信息包上的联合签名。
8.根据前述权利要求中的任一项所述的计算机实现的方法,还包括:
由所述分布式网络生成区块的区块链;其中状态信息包包括区块验证信息以用于验证区块链的后续区块,特别是后续区块的有效性。
9.根据权利要求8所述的计算机实现的方法,其中区块验证信息包括验证区块链的区块的有效性所需的一组验证密钥。
10.根据权利要求7所述的计算机实现的方法,其中第二子网络的状态信息包包括第二子网络的验证密钥和所述证书。
11.根据前述权利要求中的任一项所述的计算机实现的方法,其中状态信息包还包括:
用于生成第二子网络的验证密钥的分布式密钥生成协议的密钥生成信息。
12.根据前述权利要求中的任一项所述的计算机实现的方法,其中状态信息包包括允许将想要连接或重新连接到所述分布式网络的追赶节点的执行状态与最近执行状态进行同步的一组完整信息。
13.根据前述权利要求8-12中的任一项所述的计算机实现的方法,还包括:
以预定义的间隔将状态信息包添加到区块链的区块。
14.根据前述权利要求2-13中的任一项所述的计算机实现的方法,
其中状态信息包将执行状态提供为默克尔树结构,特别是提供为默克尔树结构的散列根。
15.根据权利要求14所述的计算机实现的方法,还包括:
由想要连接或重新连接到第二子网络的追赶节点从第二子网络的最新节点请求默克尔树结构的叶子散列;
由追赶节点将它自身状态的叶子散列与最新节点的叶子散列进行比较;以及
由追赶节点从最新节点仅请求与具有不同叶子散列的叶子对应的状态信息。
16.根据前述权利要求中的任一项所述的计算机实现的方法,其中分布式密钥生成协议是分布式阈值密钥生成协议。
17.根据权利要求5所述的计算机实现的方法,
其中秘密重新分发协议是阈值密钥重新分发协议。
18.根据前述权利要求中的任一项所述的计算机实现的方法,其中联合签名是多重签名。
19.根据前述权利要求中的任一项所述的计算机实现的方法,其中分布式密钥生成协议包括:
由追赶节点接受来自未知节点的一个或多个连接;
将与所述未知节点的通信交换限于与状态信息包和证书相关的通信;以及
一旦接收到了状态信息包和证书,就停止与所述未知节点的通信。
20.一种包括多个节点的分布式网络,其中所述多个节点中的每个节点被配置为运行一个或多个计算单元,其中所述多个节点中的每个节点被配置为运行一个或多个计算单元,其中所述计算单元被配置为跨所述多个节点的子网络以确定性和复制的方式执行计算,从而遍历执行状态的链,其中所述分布式网络被配置为:
由节点的第一子网络的节点的子集执行第一分布式密钥生成协议,第一分布式密钥生成协议被配置为联合生成用于第一子网络的验证密钥和用于第一子网络的节点的子集的对应的多个私钥分享;
对于第二子网络,由第一子网络的多个节点的子集执行第二分布式密钥生成协议,第二分布式密钥生成协议被配置为联合生成第二子网络的验证密钥和用于第二子网络的节点的子集的对应的多个私钥分享;以及
由第一子网络的节点的子集使用第一子网络的节点的私钥分享的允许子集对第二子网络的验证密钥进行签名,从而在第二子网络的验证密钥上生成联合签名。
21.一种用于根据权利要求20所述的分布式网络的节点,所述节点被配置为:
参与第一分布式密钥生成协议,第一分布式密钥生成协议被配置为联合生成用于第一子网络的验证密钥和用于第一子网络的节点的子集的对应的多个私钥分享;
参与第二分布式密钥生成协议,第二分布式密钥生成协议被配置为联合生成第二子网络的验证密钥和用于第二子网络的节点的子集的对应的多个私钥分享;以及
参与对第二子网络的验证密钥的联合签名,联合签名包括第一子网络的节点的私钥分享的允许子集。
22.一种用于操作分布式网络的计算机程序产品,所述分布式网络包括多个节点,所述计算机程序产品包括包含有程序指令的计算机可读存储介质,所述程序指令能够由所述多个节点中的一个或多个节点执行,以使所述多个节点中的所述一个或多个节点执行包括以下的方法:
跨所述多个节点的子网络以确定性和复制的方式执行计算,从而遍历执行状态的链;
由节点的第一子网络的节点的子集执行第一分布式密钥生成协议,第一分布式密钥生成协议被配置为联合生成用于第一子网络的验证密钥和用于第一子网络的节点的子集的对应的多个私钥分享;
对于第二子网络,由第一子网络的多个节点的子集执行第二分布式密钥生成协议,第二分布式密钥生成协议被配置为联合生成第二子网络的验证密钥和用于第二子网络的节点的子集的对应的多个私钥分享;以及
由第一子网络的节点的子集使用第一子网络的节点的私钥分享的允许子集对第二子网络的验证密钥进行签名,从而在第二子网络的验证密钥上生成联合签名。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063046371P | 2020-06-30 | 2020-06-30 | |
US63/046,371 | 2020-06-30 | ||
PCT/EP2020/087410 WO2022002428A1 (en) | 2020-06-30 | 2020-12-21 | Verification key generation in distributed networks |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116171442A true CN116171442A (zh) | 2023-05-26 |
Family
ID=74175807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080104330.9A Pending CN116171442A (zh) | 2020-06-30 | 2020-12-21 | 分布式网络中的验证密钥生成 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20230179409A1 (zh) |
EP (1) | EP4173223A1 (zh) |
JP (1) | JP2023550886A (zh) |
KR (1) | KR20230038494A (zh) |
CN (1) | CN116171442A (zh) |
WO (1) | WO2022002428A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230385814A1 (en) * | 2022-05-27 | 2023-11-30 | Toposware, Inc. | Decentralized interoperable cross subnet architecture |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020061593A1 (en) * | 2018-09-22 | 2020-03-26 | Yakira David | Decentralized key generation and distribution over a blockchain-based network |
-
2020
- 2020-12-21 EP EP20839005.4A patent/EP4173223A1/en active Pending
- 2020-12-21 CN CN202080104330.9A patent/CN116171442A/zh active Pending
- 2020-12-21 US US18/014,108 patent/US20230179409A1/en active Pending
- 2020-12-21 WO PCT/EP2020/087410 patent/WO2022002428A1/en unknown
- 2020-12-21 KR KR1020237003387A patent/KR20230038494A/ko unknown
- 2020-12-21 JP JP2023523329A patent/JP2023550886A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4173223A1 (en) | 2023-05-03 |
KR20230038494A (ko) | 2023-03-20 |
US20230179409A1 (en) | 2023-06-08 |
JP2023550886A (ja) | 2023-12-06 |
WO2022002428A1 (en) | 2022-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9049011B1 (en) | Secure key storage and distribution | |
CN111066285A (zh) | 基于sm2签名恢复公钥的方法 | |
Li et al. | Synchronized provable data possession based on blockchain for digital twin | |
CN113328997B (zh) | 联盟链跨链系统及方法 | |
CN108574687B (zh) | 通信连接建立方法、装置、电子设备和计算机可读介质 | |
CN116391346A (zh) | 秘密分享的重新分发 | |
Zhao et al. | Fuzzy identity-based dynamic auditing of big data on cloud storage | |
Zhang et al. | Multi-party electronic contract signing protocol based on blockchain | |
CN116171442A (zh) | 分布式网络中的验证密钥生成 | |
Guan et al. | Distributed audit system of SDN controller based on blockchain | |
Peng et al. | Secure lightweight stream data outsourcing for internet of things | |
US20230269092A1 (en) | Distributed network having a plurality of subnets | |
CN113206738B (zh) | 一种数字证书管理方法和装置 | |
WO2022233437A1 (en) | Data authentication in distributed networks | |
Anada et al. | Identity-embedding method for decentralized public-key infrastructure | |
Huo et al. | Efficient public integrity auditing with secure deduplication in cloud computing | |
Tabassum et al. | Securely Transfer Information with RSA and Digital Signature by using the concept of Fog Computing and Blockchain | |
US20240154820A1 (en) | Multi-party computations in a distributed network | |
Hahn et al. | Verifiable outsourced decryption of encrypted data from heterogeneous trust networks | |
CN116057505A (zh) | 分布式网络中的计算单元的迁移 | |
Koppl et al. | Application of Cryptography Based on Elliptic Curves | |
Vanrenen et al. | Distributing security-mediated PKI | |
Ren et al. | Flexico: An efficient dual-mode consensus protocol for blockchain networks | |
US20240154821A1 (en) | Randomness in distributed networks | |
US20240064023A1 (en) | Cryptographic proof of identity with independent verification and provable recovery |
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 |