Distributed Network with Multiple Subnets
The distributed network with static verification keys and shared secret key redistribution addresses the challenge of securely verifying subnet information across multiple subnets, ensuring efficient and adaptable verification.
Patent Information
- Application Number
- JP2023523326
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2020-06-30
- Publication Date
- 2025-12-10
- Estimated Expiration
- 2040-06-30
AI Technical Summary
Distributed networks face challenges in securely, efficiently, and user-friendly verification of computational results, particularly state information, across multiple subnets.
A distributed network with multiple subnets uses a distributed key generation protocol to create a distinct static verification key and a set of shared secret keys for each subnet, which are redistributed over time to maintain security and flexibility while using a static verification key for verification.
This approach ensures secure and efficient verification of subnet information with a constant verification key, adapting to subnet configuration changes without user awareness, thereby enhancing network security and flexibility.
Smart Images

Figure 0007783643000001 
Figure 0007783643000002 
Figure 0007783643000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to a distributed network having multiple subnets, each subnet comprising one or more nodes.
[0002] Further aspects relate to a method of key management in a distributed network having multiple subnets, a node of the distributed network, a corresponding computer program product, and a software architecture encoded on a non-transitory medium. [Background technology]
[0003] In a distributed network, multiple nodes are distributed. In computing on a distributed network, software and data are distributed across multiple nodes. The nodes constitute computing resources, and the distributed network may use distributed computing techniques.
[0004] An example of a distributed network is a blockchain network. A blockchain network is a consensus-based electronic ledger made up of blocks. Each block contains multiple transactions and other information. Furthermore, each block is chained by including the hash of the previous block, creating a permanent, immutable record of all transactions written to the blockchain. Transactions may include, for example, small programs known as smart contracts. Before a transaction can be written to the blockchain, it must be "verified" by the network. In other words, network nodes must agree on a block to be written to the blockchain. Such agreement can be achieved through various consensus protocols.
[0005] One form of consensus protocol is the proof-of-work consensus protocol. Generally, proof-of-work consensus protocols require some work, usually equivalent to computer time, from participants in the consensus protocol. Proof-of-work-based cryptocurrency systems, such as Bitcoin, validate transactions and create new blocks by solving computationally intensive puzzles.
[0006] Another form of consensus protocol is the proof-of-stake consensus protocol. Such proof-of-stake protocols have the advantage of not requiring time-consuming and energy-intensive computations. In a proof-of-stake based blockchain network, for example, the creator of the next block is selected through a combination of random selection and the stake of each node in the network. Besides cryptocurrencies, distributed networks may be used in a variety of other applications. In particular, they may be used for distributed computing and the provision of distributed computing functions and services.
[0007] One challenge in distributed networks is to provide a subnet's computational results, e.g., state information, to external users of the subnet and / or to other subnets in a secure, efficient, verifiable, and / or user-friendly manner. [Prior art documents] [Non-patent literature]
[0008] [Non-Patent Document 1] Paul Feldman. A practical scheme for non-interactive verifiable secret sharing. In 28th Annual Symposium on Foundations of Computer Science, pages 427-437, Los Angeles, California, October 12-14, 1987. IEEE Computer Society Press. [Non-Patent Document 2] Torben P. Pedersen. A threshold cryptosystem without a trusted party (extended abstract) (rump session). In Donald W. Davies, editor, Advances in Cryptology - EUROCRYPT’91, volume 547 of Lecture Notes in Computer Science, pages 522-526, Brighton, UK, April 8-11, 1991. Springer, Heidelberg, Germany. [Non-Patent Document 3] Rosario Gennaro, Stanislaw Jarecki, Hugo Krawczyk, and Tal Rabin. Secure distributed key generation for discrete-log based cryptosystems. In Jacques Stern, editor, Advances in Cryptology - EUROCRYPT’99, volume 1592 of Lecture Notes in Computer Science, pages 295-310, Prague, Czech Republic, May 2-6, 1999. Springer, Heidelberg, Germany. [Non-Patent Document 4] 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 on Advances in Cryptology. London, UK: Springer-Verlag. pp. 339-352. ISBN 978-3-540-60221-7. [Non-patent document 5] A simplified approach to threshold and proactive RSA“, by T Rabin - Annual International Cryptology Conference, 1998 - Springer. Summary of the Invention [Problem to be solved by the invention]
[0009] It is therefore an object of one aspect of the present invention to provide a distributed network with advanced capabilities, particularly with regard to key management. It is a further object of a further aspect of the present invention to provide a distributed network that facilitates verification of network computation results, particularly state information, in a secure, efficient and / or user-friendly manner. [Means for solving the problem]
[0010] In an embodiment of a first aspect of the present invention, there is provided a distributed network comprising a plurality of subnets, each of the plurality of subnets having a changeable set of nodes, wherein the network is configured such that a distributed key generation protocol generates, for each of the plurality of subnets, a distinct static verification key of a public key signature scheme and a first set of shared secret keys corresponding to a first set of nodes for each subnet of the network.
[0011] The network is further configured, for each of the plurality of subnets, for the secret redistribution protocol to redistribute each shared secret key of the first set of shared secret keys to a second set of nodes in each subnet to generate a second set of shared secret keys corresponding to the same static verification key for each subnet.
[0012] In such an embodied method, each of the multiple subnets has its own distinct, i.e., time-invariant, static verification key. In some embodiments, the static verification key may remain constant throughout the lifetime of the corresponding subnet. Thus, the static verification key may also be referred to as a constant verification key. While the static verification key remains constant, the corresponding shared secret key may change over time. Furthermore, the set of nodes forming or representing a subnet may also change over time. That is, nodes may be added and removed from each subnet. More specifically, a subnet initially comprises a first set of nodes, also referred to as an initial node set. In one embodiment, each node in the first set of nodes holds a shared secret key from a first set of shared secret keys. The first set of shared secret keys corresponds to a static verification key; more specifically, the static verification key enables verification of joint signatures performed with an allowed subset of the shared secret keys.
[0013] The static verification key is a key of a public key signature scheme and may be referred to as a public key. The corresponding shared secret key may be referred to as a shared signature key or a signature key. A public key signature scheme according to an embodiment of the present invention may comprise, for example, keys of a public key signature and encryption scheme such as RSA, or keys of a public key signature scheme such as Schnorr signature or DSA. The first shared secret key set may then be redistributed to a second shared secret key set by a secret redistribution protocol. In other words, the secret redistribution protocol updates the shared secret key of the private key corresponding to the static verification key.
[0014] Such a distributed network with static verification keys for multiple subnets offers advantages in terms of key management, verification, and / or authentication. More specifically, on the one hand, since the static verifications for multiple subnets are constant over time, verifiers can always use the same static verification key to verify information provided by the subnets. On the other hand, by redistributing the shared secret key, the distributed network can be adapted to its respective needs in terms of security and flexibility. Thus, such a distributed network offers users of the distributed network the advantage that the same static verification key can always be used to verify information provided by each subnet of the network. Furthermore, subnets have the flexibility to update the shared secret key within the subnet for security or other reasons.
[0015] In one embodiment, each node in the subset of nodes in the first set of nodes holds one shared secret key from a first set of shared secret keys, and in one embodiment, each node in the subset of nodes in the second set of nodes holds one shared secret key from a second set of shared secret keys.
[0016] In one embodiment, the subset of the first set of nodes may include all nodes in the first set of nodes, or may not include all nodes in the first set of nodes. In the former case, each node in the first set of nodes holds one shared secret key from a first set of shared secret keys. In the latter case, only the selection committee for the first set of nodes may hold the shared secret keys. In one embodiment, the subset of the second set of nodes may include all nodes in the second set of nodes, or may not include all nodes in the second set. In the former case, each node in the second set of nodes holds one shared secret key from a second set of shared secret keys. In the latter case, only the selection committee for the second set of nodes may hold the shared secret keys.
[0017] In one embodiment, nodes in each subnet are configured to run an assigned set of compute units. The compute units of a subnet are configured to perform computations in a deterministic and replicated manner across the subnet. Such a network performs computations that are replicated across the subnets. Thus, a subnet may be described as a replicated computing cluster. In such a network, it is more preferable to provide a constant, static verification key across multiple subnets. A compute unit may be defined as a piece of software that runs on nodes in the network and has its own unit or execution state. Each subnet is configured to replicate its assigned set of compute units, particularly its unit state or execution state or compute unit state across the subnet. In some embodiments, unit state replication may be facilitated by performing an active replication within the space of a subset of the compute units assigned on each node in the subnet.
[0018] In one embodiment, the network is configured such that the secret redistribution protocol redistributes shared secrets of the second set of shared secrets for each of a plurality of subnets to a third set of nodes for each subnet, thereby generating a third set of shared secrets corresponding to the same static verification key for each of said subnets.
[0019] In one embodiment, each node in a subset of the third set of nodes holds one shared secret key from the third set of shared secret keys.
[0020] In such an embodiment, a secret redistribution protocol may be used to perform further updates of the shared secret key. This may be particularly useful with respect to network security and / or network configuration flexibility. This step may be repeated as necessary.
[0021] More specifically, in some embodiments, a subset of the first set of nodes may be equal to a subset of the second set of nodes, and / or a subset of the second set of nodes may be equal to a subset of the third set of nodes. That is, the configuration of the corresponding subnet remains unchanged. In such a configuration, updating the shared secret key improves security, particularly for distributed networks. Such a procedure may be used, among other things, by implementing proactive security. In this regard, in one embodiment, a secret redistribution protocol may be performed for each subnet periodically at predefined time intervals. This may prevent an adversary from gaining control of a subnet by collecting a sufficient number of shared secret keys that enable the reconstructing of a secret key corresponding to the static verification key for the subnet.
[0022] In other embodiments, the subset of the first set of nodes may be different from the subset of the second set of nodes, and / or the subset of the second set of nodes may be different from the subset of the third set of nodes.
[0023] In such a configuration, updating the shared secret key can adapt the shared secret key to a new or adapted configuration of the subnet, even though the static verification key remains the same. Thus, even if the configuration of a subnet changes, external users or external subnets receiving information from this subnet do not need to be concerned about the change. In fact, they do not even need to be aware of this change, since the static verification key remains the same. In this regard, some embodiments of the present invention enable the current subnet configuration to be hidden from users of a distributed network. Because users only need the static verification key to verify information from the subnet, the distribution of the corresponding subnet configuration and shared secret key can be hidden. This can prevent, or at least mitigate, adaptive attacks against nodes in the subnet.
[0024] In some embodiments, the distributed key generation protocol may be, in particular, a threshold distributed key generation protocol.
[0025] Thus, in such an embodiment, the distributed key generation protocol generates a threshold static verification key for the public key signature scheme and a set of threshold shared secret keys corresponding to a first set of nodes in each subnet.
[0026] In such embodiments, an allowable subset of the shared secret keys held by the node may be used to generate the signature under the static verification key. Such an allowable subset may be a predefined number of shared secret keys, or in general, any predefined combination of shared secret keys. In some embodiments, the allowable subset may generally be defined as a predefined access structure. In some embodiments, the secret redistribution protocol may be, in particular, a threshold key redistribution protocol.
[0027] In such an embodiment, the secret redistribution protocol is configured to redistribute a threshold shared secret key corresponding to the threshold verification key.
[0028] In some embodiments, multiple nodes of multiple subnets are configured such that an acceptable subset of the nodes perform joint signing on subnet information with their shared secret key.
[0029] This provides proof of subnet information through a joint signature. The joint signature corresponds to a static verification key, i.e., can be verified using the static verification key. The subnet information can generally be any information about the subnet, particularly information about the execution state of the subnet's computational units. The signed subnet information is provided to users of the distributed network and / or other receiving subnets.
[0030] In one embodiment, users of the distributed network and / or the receiving subnet are configured to verify the joint signature of the subnet information using the static verification key of the corresponding subnet.
[0031] In one embodiment, a distributed network includes a management subnet consisting of multiple constituent nodes. The management subnet is configured to store static verification keys for multiple subnets and to maintain a root verification key and multiple corresponding shared secret keys of a public key signature scheme. The management subnet is further configured to receive verification key requests providing the static verification keys for one or more subnets and to provide verification key responses including the static verification keys for one or more subnets in response to the verification key requests. The management subnet is further configured such that a subset of nodes in the management subnet jointly sign the verification key response by signing the verification key response using an allowed subset of the shared secret keys corresponding to the root verification key. Such a management subnet can provide a single root of trust for users. More specifically, users do not need to be aware of each subnet configuration or manage the static verification keys for their subnets. Instead, users can obtain the required static verification keys from the management subnet and validate the received static verification keys with the root verification key.
[0032] In some embodiments, the joint signature may in particular be a threshold signature, or in other words a signature with a threshold key or a threshold private key.
[0033] In one embodiment of the method aspect of the present invention, a computer-implemented method for managing verification keys in a distributed network including multiple subnets is provided.
[0034] The method includes a distributed key generation protocol generating, for each of a plurality of subnets, a separate static verification key of the public key signature scheme and generating a first set of shared secret keys corresponding to a first set of nodes in each subnet. The method also includes a secret redistribution protocol redistributing each shared secret key of the first set of shared secret keys to a second set of nodes in each subnet, thereby generating a second set of shared secret keys corresponding to the same static verification key for each subnet. In one embodiment, each node in a subset of the first set of nodes holds one shared secret key from the first set of shared secret keys. In one embodiment, each node in a subset of the second set of nodes holds one shared secret key from the second set of shared secret keys.
[0035] In one embodiment of another aspect of the invention, a node of a distributed network is provided. In one embodiment of another aspect of the invention, a computer program product for operating a distributed network is provided. The computer program product comprises a computer-readable storage medium having a plurality of program instructions embodied thereon, the plurality of program instructions being capable of carrying out aspects of the method of the invention on one or more of the plurality of nodes.
[0036] In one embodiment of another aspect of the present invention, a computer program product for operating a node of a distributed network is provided.
[0037] In one embodiment of another aspect of the present invention, there is provided a software architecture encoded on a non-transitory computer-readable medium, the software architecture being configured to operate one or more nodes of a distributed network, the encoded software architecture comprising program instructions executable by one or more of the plurality of nodes to perform a method at the one or more of the plurality of nodes comprising steps of a method aspect of the present invention.
[0038] Features and advantages of one aspect of the invention may be applied to other aspects of the invention, as appropriate.
[0039] Further useful embodiments are listed in the dependent claims and the following description.
[0040] The invention will be better understood and further objects will become apparent from the following detailed description, such description being made with reference to the accompanying drawings. [Brief explanation of the drawings]
[0041] [Figure 1] FIG. 1 is an exemplary block diagram of a distributed network according to one embodiment of the present invention. [Figure 2] FIG. 2 is a diagram showing the change over time of the second subnet. [Figure 3] FIG. 3 is a correspondence table showing changes corresponding to the secret key set of the second subnet. [Figure 4] FIG. 4 shows in more detail the computational units operating on the nodes of the network. [Figure 5] FIG. 5 is a flowchart of method steps of a method according to one embodiment of the present invention. [Figure 6] FIG. 6 is a flow chart of further method steps of a method according to one embodiment of the present invention. [Figure 7] FIG. 7 is a schematic diagram of a distributed network according to one embodiment of the present invention. [Figure 8] FIG. 8 is an exemplary message flow for a key exchange between a management subnet and a user or other subnet. [Figure 9a] FIG. 9a illustrates an embodiment of a verification key and a corresponding shared secret key that may be used in some embodiments of the present invention. [Figure 9b] FIG. 9b illustrates an embodiment of a verification key and a corresponding shared secret key that may be used in some embodiments of the present invention. [Figure 10] FIG. 10 is a diagram illustrating the generation of blocks in a decentralized network according to some embodiments of the present invention. [Figure 11]FIG. 11 is a more detailed block diagram of a network node according to some embodiments of the invention. [Figure 12] FIG. 12 is a more detailed diagram of a computation unit according to one embodiment of the present invention. DETAILED DESCRIPTION OF THE INVENTION
[0042] First, some general aspects and terminology of embodiments of the present invention are introduced.
[0043] In some embodiments, a distributed network comprises multiple nodes arranged in a distributed manner. In computing on such a distributed network, software and data are distributed across multiple nodes. The multiple nodes constitute computing resources, and the distributed network may use, among other things, distributed computing techniques.
[0044] In some embodiments, the distributed network may be specifically embodied as a blockchain network. The term "blockchain" may include all forms of electronic, computer-based distributed ledgers. In some embodiments, the blockchain network may be embodied as a proof-of-work blockchain network. In other embodiments, the blockchain network may be embodied as a proof-of-stake blockchain network.
[0045] A verification key is a bit string in a public key signature scheme that is intended to be widely disclosed. The verification key is also called a public key and can be used, for example, to verify a digital signature in the public key signature scheme.
[0046] The public key signature scheme of some embodiments of the present invention may comprise, for example, keys for a public key signature and encryption scheme such as RSA, or keys for a public key signature scheme such as Schnorr signatures or DSA.
[0047] A private key (sk) is a bit string that is related to a public key, particularly a verification key, and that enables cryptographic operations, particularly the digital signing of messages and / or the encrypting of ciphertext.
[0048] Distributed Key Generation (DKG) is a protocol that allows a set of dealers (holders of secret information) to generate public keys, particularly verification keys, and provide a set of corresponding shared secrets to a set of recipients. A secret redistribution protocol, also referred to as a secret re-sharing protocol, is a protocol for updating a shared secret. In some embodiments, the protocol may provide a new or updated shared secret to the previous holder of that shared secret. In other embodiments, the protocol may provide a new or updated shared secret to a new, particularly a different, set of recipients.
[0049] An (n, t)-threshold key or threshold private key has a threshold t and a number of shared private keys s1,...,sn, where any t shared private keys allow reconstruction of the private key, but t-1 shares are not sufficient to determine the private key. A threshold public key signature scheme allows any t private key shares to perform a valid signature under the threshold public key or verification key, but t-1 shares are not sufficient to perform a valid signature.
[0050] Verifiable secret sharing (VSS) is a protocol that allows a single dealer to generate a random secret s, a set of secret share thresholds s1,...,sn for a set of recipients, and a proof that each recipient can use to verify the validity of its share si.
[0051] Proactive security is a security concept that obtains a multi-party system that tolerates the compromise of t-1 parties at any given time. Time is divided into periods, and each period compromises at most t-1 parties, but the attacker is flexible in the sense that the set of compromised parties can be different in each period. A distributed key management system with proactive security can be created by dividing time into periods and using a new threshold secret sharing of a private key in each period. Public key encryption with forward secrecy is a public key encryption scheme in which time is divided into periods and the private decryption key evolves over time, so that even if it is compromised, it is ineffective at decrypting ciphertext from past periods.
[0052] In some embodiments, the Feldman protocol (Fel87), the joint Feldman protocol (Ped91), and the GJKR protocol (GJKR99) may be used as distributed key generation protocols. These protocols are published, for example, in [Illegible], [Illegible], and [Illegible], the corresponding disclosures of which are incorporated herein by reference.
[0053] In some embodiments of the present invention, the protocols described in Non-Patent Document 4 and Non-Patent Document 5 may also be used as secret redistribution protocols.
[0054] FIG. 1 illustrates an exemplary block diagram of a distributed network 100 according to an embodiment of the present invention. The distributed network 100 includes multiple nodes 10, which may also be referred to as network nodes 10. The multiple nodes 10 are distributed across multiple subnetworks 11, which may also be referred to as subnets. In the example of FIG. 1, four subnets 11, denoted SNA, SNB, SNC, and SND, are configured. Each of the multiple subnets 11 is configured to execute a set of computational units on each node 10 of the subnet 11. In some embodiments, a computational unit is understood as a piece of software, particularly a piece of software that includes or has its own computational unit state. The unit state may also be referred to as an execution state. Within each subnet 11, the network 100 includes communication links 12 for intra-subnet communication, particularly for communication of intra-subnet inter-unit messages exchanged between computational units assigned to the same subnet. Furthermore, network 100 includes communication links 13 for inter-subnet communication between different subnets 11, particularly for communication of inter-subnet inter-unit messages exchanged between computing units assigned to different subnets. Accordingly, communication links 12 may be referred to as intra-subnet or peer-to-peer (P2P) communication links. Communication links 13 may also be referred to as inter-subnet or subnet-to-subnet (SN2SN) communication links. Network 100 is configured to exchange inter-unit messages between computing units of the network via a messaging protocol based on subnet assignments.
[0055] In some embodiments, the distributed network 100 may be configured to exchange inter-subnet messages 16 between the subnets SNA, SNB, SNC, and SND via a messaging protocol. The inter-subnet messages 16 may be implemented as inter-subnet inter-unit messages 16a exchanged between computing units assigned to different subnets according to subnet assignment. As an example, the distributed network 100 may be configured to exchange inter-unit messages 16a between a computing unit CUA1 running on the subnet SNA as a sending computing unit and a computing unit CUB2 running on the subnet SNB as a receiving computing unit (see FIG. 4). Furthermore, the inter-subnet messages 16 may be embodied as signaling messages 16b. The signaling messages 16b may include an affirmative message (ACK) adapted to acknowledge acceptance or receipt of the inter-unit message, or a negative message (NACK) adapted to not acknowledge (equivalent to a rejection) the inter-unit message, e.g., indicating a transmission failure.
[0056] In some embodiments, the unit state or execution state may be understood to include all data or information used by the computing unit, particularly data that the computing unit stores in variables, as well as data that the computing unit obtains from remote calls. The unit state may particularly represent storage locations in each memory location of each node. In some embodiments, the contents of these storage locations are referred to as the unit state at any point in time that the computing unit is executing. The computing unit may particularly be embodied as a stateful computing unit. That is, in some embodiments, the computing unit is designed to remember previous events or user interactions.
[0057] In some embodiments of the present invention, multiple subnets 11 are configured to replicate a set of computational units across each subnet 11. More specifically, the subnets 11 are configured to replicate the unit state or execution state of the computational units across each subnet 11.
[0058] Network 100 may include multiple interfaces 101 that can be used to exchange information with users U of the distributed network. As an example, users U may send read requests to the distributed network and receive read responses, e.g., for execution state information including computation results, via interfaces 101. In a preferred embodiment, users need not be aware of the internal structure of distributed network 100. In particular, users preferably need not be aware of the subnet configuration and the respective subnets that are processing their read requests.
[0059] The multiple subnets 11 may be reconfigured over time. More specifically, the number of nodes in a subnet 11 may change over time. As an example, nodes may be added to and / or removed from a subnet 11. Thus, a subnet 11 includes a changeable set of nodes. Each of the subnets 11 maintains an individual, or in other words, separate static verification key for the public key signature scheme. In this example, the subnet SNA has a static verification key pk A The subnet SNB holds a static verification key pk B and the subnet SNC holds the static verification key pk C and the subnet SND holds the static verification key pk D The static verification key is generally referred to as pk X where X represents the corresponding subnet. In some embodiments, the static verification key pk X is constant, in other words, fixed for the entire lifetime of each subnet 11.
[0060] static verification key pk X are generated by a distributed key generation protocol, which generates the corresponding shared secret keys sks1, sks2, and sks n The first set of static verification keys pk XThe first set of shared secret keys is assigned to a first set of nodes in each subnet. The first set of nodes may be, in particular, the nodes in each subnet at time t0, where time t0 may be, for example, the time at which each subnet is generated. X is the verification key for the public key signature scheme. Therefore, the verification key pk X Using the shared secret keys sks1, sks2, sks n The distributed key generation protocol may in particular be a threshold key generation protocol.
[0061] Static verification key pk for the distributed network 100 X While the static verification key sks does not change over time, the corresponding shared secret key sks may change over time. Such a change of the shared secret key may occur when the set of nodes in the respective subnet changes, or may occur even without a change in the nodes in the subnet. The latter may be used to provide proactive security. To change the shared secret key, the distributed network 100 executes a secret redistribution protocol. The secret redistribution protocol redistributes the shared secret keys of a first shared secret set for each subnet to a second set of nodes in the respective subnet. This creates a second shared secret set corresponding to the same static verification key for each subnet. As a result, each node, or a subset of the second set of nodes, holds one of the shared secret keys of the second shared secret set.
[0062] This will be explained in more detail with reference to Figures 2 and 3. Figure 2 shows the changes over time of the subnet SNA. Figure 3 shows a correspondence table containing the corresponding changes to the secret key set of the subnet SNA.
[0063] 2, the subnet SNA has a first subnet configuration 201 at time t0, for example, at the time when the subnet configuration 201 is generated. In the subnet configuration 201, the subnet SNA includes five nodes N1, N2, N3, N4, and N5. The subnet SNA has a static verification key pk of a public key signature scheme. A Nodes N1, N2, N3, N4, and N5 constitute the first node set. Referring now to FIG. 3, left column 301 contains subnet SNA corresponding node numbers, more specifically, nodes N1, N2, N3, N4, N5, N6, and N7. Columns 302, 303, 304, 305, and 306 contain shared secret keys for corresponding nodes at different times. More specifically, column 302 corresponds to time t0, column 303 corresponds to time t1, column 304 corresponds to time t2, column 305 corresponds to time t3, and column 306 corresponds to time t4. Rows 311, 312, 313, 314, 316, and 317 contain the shared secret keys for nodes N1, N2, N3, N4, N5, N6, and N7, respectively.
[0064] At time t0, nodes N1, N2, N3, N4, and N5 of subnet SNA each have a shared secret key, share 1,0 , share 2,0 , share 3,0 , share 4,0 , and share 5,0 The first subscript number represents the respective node, and the second subscript number represents the respective time point.
[0065] At a later time t1, the subnet SNA still has the same set of nodes. Nevertheless, the distributed network performs a secret redistribution protocol to obtain the shared secret key share. 1,0 , share 2,0 , share 3,0 , share 4,0 , and share 5,0to a second set of nodes formed by the same set of nodes N1, N2, N3, N4, and N5. The secret redistribution protocol involves the creation of a second set of shared secrets, share, that are different from the first set. 1,1 , share 2,1 , share 3,1 , share 4,1 , and share 5,1 The second set of shared secrets is created or generated using the same static verification key pk A Corresponds to.
[0066] Referring to Figure 2, a second subnet configuration 202 of the subnet SNA is shown, which includes an additional node N6 in addition to the previous nodes N1, N2, N3, N4, and N5. This subnet configuration 202 is valid for times t2 and t3. Also referring to Figure 3, column 304 shows the shared secrets of the new set of nodes at time t2. The distributed network performs a secret redistribution protocol to distribute the shared secrets, 1,1 , share 2,1 , share 3,1 , share 4,1 , and share 5,1 to a third set of nodes formed by the augmented set of nodes N1, N2, N3, N4, N5, and N6. The secret redistribution protocol uses a third set of shared secret keys, which differs from the second set in that it has six shared keys instead of five. 1,2 , share 2,2 , share 3,2 , share 4,2 , share 5,2 , and share 6,2 Again, the third set of shared secrets is created or generated using the same static verification key pk A At a later time t3, subnet SNA still has the same set of nodes N1, N2, N3, N4, N5, and N6. The distributed network runs a secret redistribution protocol to distribute the shared secret set share 1,2 , share 2,2 , share3,2 , share 4,2 , share 5,2 , and share 6,2 Therefore, the secret redistribution protocol generates a new set of shared secrets, different from the previous set. 1,3 , share 2,3 , share 3,3 , share 4,3 , share 5,3 , and share 6,3 The new shared secret set also uses the same static verification key pk A 2, a third subnet configuration 203 of subnet SNA is shown with an additional node N7, where node N3 has been removed. The subnet configuration 203 is valid for time t4. Referring to FIG. 3, the shared secrets of the new set of nodes at time t4 are shown. The distributed network performs a secret redistribution protocol to distribute the shared secret set share 1,3 , share 2,3 , share 3,3 , share 4,3 , share 5,3 , and share 6,3 to a new set of nodes N1, N2, N4, N5, N6, and N7. Thus, the secret redistribution protocol generates a new set of shared secrets, share, that are different from the previous set. 1,4 , share 2,4 , share 4,4 , share 5,4 , share 6,4 , and share 7,4 These also use the same static verification key pk A Corresponds to.
[0067] The distributed key generation and secret redistribution protocols may be performed by a set of dealers that hold shared secret keys, typically private keys associated with a static public key and corresponding to a static verification key, and a set of recipients that receive a new set of shared secret keys corresponding to the same static verification key. The set of dealers and the set of recipients may be the same or different. The set of dealers and the set of recipients may generally be formed by multiple nodes of a distributed network. In some embodiments, the set of dealers and the set of recipients may belong to the same subnet. In other embodiments, the set of dealers and the set of recipients may belong to different subnets. In some embodiments, the set of dealers may be provided by a management subnetwork that acts as a central authority, and the management subnetwork provides or redistributes shared secret keys or shares of shared secret keys corresponding to each static verification key to other subnets.
[0068] 4 illustrates in more detail the computing units 15 operating on the nodes 10 of the network 100. The network 100 is configured to assign each of the computing units running on the network 100 to one of a number of subnets. In this example, each computing unit is assigned to one of the subnets SNA, SNB, SNC, or SND according to a subnet assignment. The subnet assignments of the distributed network 100 create a subset of the total set of computing units assigned to each of the subnets SNA, SNB, SNC, and SND.
[0069] More specifically, the left column diagram 401 of Figure 4 illustrates a node 10 of the subnet SNA of Figure 1. The subnet assignment of the distributed network 100 assigns a subset of five computing units 15 to the subnet SNA, more specifically computing units CU A1 , C.U. A2 , C.U. A3 , C.U. A4 , and C.U. A5 The assigned computation unit CU A1 , C.U. A2 , C.U. A3 , C.U.A4 , and C.U. A5 A subset of the sub-nodes 10 of the SNA is executed on each node 10 of the SNA. A1 , C.U. A2 , C.U. A3 , C.U. A4 , and C.U. A5 The allocated subset of A1 , C.U. A2 , C.U. A3 , C.U. A4 , and C.U. A5 This is replicated throughout the subnet SNA so that each of the computing units CU of the nodes 10 of the subnet SNA passes through the same unit state or execution state. A1 , C.U. A2 , C.U. A3 , C.U. A4 , and C.U. A5 This can be implemented by performing active replication in the unit state space of
[0070] Furthermore, the right column diagram 402 of Fig. 4 shows a node 10 of the subnet SNB of Fig. 1, in which four computing units 15 are grouped, more specifically, into a computing unit set CU B1 , C.U. B2 , C.U. B3 , and C.U. B4 The calculation unit set CU B1 , C.U. B2 , C.U. B3 , and C.U. B4 is executed on each node 10 of the subnet SNB. B1 , C.U. B2 , C.U. B3 , and C.U. B4 For example, by performing active replication in the unit state space as described above, the set of computation units CU B1 , C.U. B2 , C.U. B3 , and C.U. B4 The SNBs are replicated across subnets so that each has the same unit state.
[0071] FIG. 5 shows a flow chart of the method steps of one embodiment of the method of the present invention.
[0072] The method executes multiple processing loops 510 in successive order with increasing height index N, where N is an integer that increases, for example, from 0 to N. The processing loop 510 includes a first loop step 511, a second loop step 512, a third loop step 513, a fourth loop step 514, and a fifth loop step 515. In the first loop step 511, a consensus subset of nodes in the network, particularly a plurality of nodes in a subnet or a subset of nodes in the subnet, executes a consensus protocol to reach agreement, for example, on the selection and processing order of the current set of execution messages to be executed in each subnet. In the second loop step 512, the computational units of the plurality of nodes in the execution subset, particularly a plurality of nodes in a subnet or a subset of nodes in the subnet, independently select execution messages in a deterministic manner that is replicated across each subnet. In the third loop step 513, the plurality of nodes in the subnet create a state snapshot and store it in their respective cache memories. A state snapshot may include a unit state or execution state of a compute unit at a single point in time. A state snapshot constitutes an instance of subnet information. In general, subnet information may be any information of a subnet that the subnet may provide.
[0073] In step 514, the nodes of each subnet, by an admissible subset of the nodes, are configured to perform a joint signature on the state snapshot, or more generally on the subnet information with their shared secret key. In step 514, each subnet provides the signed state snapshot to users of the decentralized network.
[0074] FIG. 6 shows a flow chart of further method steps according to one embodiment of the method of the present invention.
[0075] In step 611, a user of the distributed network may read the signed state snapshot, for example, via user interface 101 as shown in Figure 1. Then, in step 612, the user may verify the joint signature of the state snapshot with the static verification key of the corresponding subnet.
[0076] 7 shows a schematic diagram of a distributed network 700 according to one embodiment of the present invention. The distributed network 700 comprises a management subnet 701, SN0. The management subnet SN0 includes a plurality of management nodes 10 and a plurality of further subnets, exemplified as subnet SNA, 702 and subnet SNB, 703. The management subnet SN0 also includes all static verification keys pk X , i.e., in this example, the static verification keys pk for the subnets SNA and SNB A and pk B Furthermore, the management subnet SN0 holds a root verification key pk0 of the public key signature scheme. The multiple nodes 10 of the subnet SN0 hold multiple shared secret keys corresponding to the root verification key pk0.
[0077] Thus, the management subnet SN0 establishes a single root of trust for the distributed network 700, and nodes in further subnets may use the root verification key pk0 to verify information signed by the management subnet SN0. In particular, further subnets of the distributed network may use the management subnet SN0 to verify one or more of their static verification keys pk X, may be received. In this regard, an exemplary message flow for a key exchange between a user U or a subnet SNX and, in particular, one of the nodes of the subnet SNX is further illustrated in FIG. 8. In step 801, a user or a node of one of the subnets SNX may send a verification key request to the management subnet SN0, in which the static verification keys of one or more subnets are provided. The management subnet SN0 may then compile a verification key response including the verification keys of the requested subnets in response to the received verification key request. The management subnet SN0 may then further sign the verification key response. More specifically, the verification key response may be signed by a subset of the nodes 10 of the management subnet SN0 that have an acceptable subset of the shared secret keys corresponding to the root verification key pk0. This allows for a joint signature σ of the entire verification key response or the static verification keys of the verification key response. pk0 Then, in step 802, the management subnet SN0 creates the claimed static verification key pk X Then, the user U may send a signed verification key response containing the signature σ pk0 can be verified by each node or user of the root verification key pk0.
[0078] 9a and 9b show an embodiment of a verification key and its corresponding shared secret key that may be used in embodiments of the present invention.
[0079] 9a illustrates one embodiment of a key set 910 generated by a distributed key generation protocol according to one embodiment of the present invention. The distributed key generation protocol is embodied as a distributed threshold key generation protocol. In this example, assume that N nodes participate in the distributed key generation protocol. The nodes may generally be nodes in any subnet, or specifically nodes in a management subnet that have been assigned to the initial generation of static verification keys for the subnet and an initial subset of corresponding shared secret keys. Each of the N nodes is assigned a shared secret key sk, where i=1,...,N. iThe N nodes each have a common static verification key (public key) pk X and a predetermined threshold, say at least two-thirds or one-third of the nodes, must agree on a static verification key and jointly sign the new static verification key generating a threshold signature σpkX.
[0080] 9b shows one embodiment of a set of keys 920 generated by a distributed key generation protocol in one embodiment of the present invention. The distributed key generation protocol is embodied as a multi-signature protocol.
[0081] In this example, we again assume that N nodes participate in a distributed key generation protocol. For each round of the distributed key generation protocol, each of the N nodes generates a shared secret key sk, where i=1,...,N. i In this embodiment, the shared secret key is an independent secret key sk i The N nodes jointly agree on a common public key or common verification key vector pk, embodied as a vector. Again, a predefined threshold, e.g., at least two-thirds or one-third of the nodes, must provide a signature with a private key (shared key) for the new public key or verification key vector pk. In this embodiment, the N nodes share their respective private keys sk i , sk2, ···, sk N , and then, for the corresponding elements of the vector verification key vector pk, individual signatures σ 1pk1 , σ 2pk2 , , σ NpkN More specifically, each signature σ ipki Each of these has a corresponding individual public key pk i Thus, in such an embodiment, the verification key is the individual public key pk i Vector pk=(pk i , pk2, ···, pk N ) and the joint signature is also realized as a vector σ pk =(σ 1pk1 , σ 2pk2 , , σ NpkN) In other embodiments, aggregated signature schemes may also be used.
[0082] 10 illustrates the generation of a block in a distributed network according to an embodiment of the present invention. A block may be, in particular, an input block to be processed by a computation unit of an execution subset. The block to be processed by the execution subset is agreed upon by a consensus subset of nodes in each subnet.
[0083] In this exemplary embodiment, three input blocks 1001, 1002, and 1003 are shown. Block 1001 comprises multiple transactions, namely, transactions tx1.1, tx1.2, and further transactions that may be denoted by dots. Block 1002 also comprises multiple transactions, namely, transactions tx2.1, tx2.2, and further transactions that may be denoted by dots. Block 1003 also comprises multiple transactions, namely, transactions tx3.1, tx3.2, and further transactions that may be denoted by dots. Input blocks 1001, 1002, and 1003 are chained together. More specifically, each block comprises the block hash of the previous block, thereby cryptographically binding the current block to the previous block. In some embodiments, a transaction may be, in particular, an execution message executed by multiple nodes of an execution subset. In some embodiments, input blocks 1001, 1002, and 1003 may be created via a proof-of-stake protocol. However, it should be noted that the input blocks generated by the consensus component need not be chained together in some embodiments. Rather, any consensus protocol that reaches some kind of agreement among nodes regarding the selection and / or processing order of received messages may be used in some embodiments.
[0084] Referring to FIG. 11, a more detailed block diagram of a network node 10 according to an embodiment of the present invention, for example, of the network 100 of FIG. 1, is shown. The network node 10 constitutes a computing node capable of performing computing functions and may therefore generally be embodied as a computing system or computer. The network node 10 may be, for example, a server computer. The network node 10 may be configured to perform or participate in computer-implemented methods according to some embodiments of the present invention. The network node 10 may operate in numerous other general-purpose or special-purpose computing system environments or configurations. The network node 10 may be described in the general context of computer system-executable instructions, such as program modules, executed by a computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, etc., that perform particular tasks or implement particular abstract data types. The network node 10 is shown in the form of a general-purpose computing device. Components of the network node 10 may include, but are not limited to, one or more processors or processing units 1115, a system memory 1120, and a bus 1116 that couples various system components, including the system memory 1120, to the processor 1115. Bus 1116 may implement any one or more of a variety of forms of bus architectures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus used in any of a variety of bus architectures. By way of example, and without limitation, such architectures include an Industry Standard Architecture (ISA) bus, a MicroChannel Architecture (MCA) bus, an Enhanced ISA (EISA) bus, a Video Electronics Standards Association (VESA) local bus, and a Peripheral Component Interconnect (PCI) bus. Network node 10 typically includes a variety of computer system-readable media.Such media may be any available media accessible by network node 10, including both volatile and nonvolatile media, removable and non-removable media. System memory 1120 may include computer system-readable media in the form of volatile memory, such as random access memory (RAM) 1121 and / or cache memory 1122. Network node 1110 may further include other removable or non-removable, volatile or non-volatile computer system storage media. By way of example only, storage system 1123 may include a non-removable, non-volatile magnetic medium (not shown, commonly referred to as a "hard drive") that reads from and writes to the medium. Although not shown, a magnetic disk drive, such as a removable, non-volatile magnetic disk (e.g., a "floppy disk"), or an optical disk drive, which reads from and writes to a removable, non-volatile optical disk, such as a CD-ROM, DVD-ROM, or other optical medium, may also be included. Each of these may be connected to bus 1116 by one or more data carrier interfaces. As further illustrated and described below, memory 1120 may include at least one computer program product having a series of program modules (e.g., at least one) configured to perform the functions of embodiments of the present invention. Programs or utilities 1130 have a series of program modules 1131 (at least one of which) may be stored in memory 1120, including, by way of example and not limitation, an operating system, one or more application programs, other program modules, and program data. Implementations of each of the operating system, one or more application programs, other program modules, and program data, or any combination thereof, in a networked environment may also be included. Program modules 1131 may generally perform the functions and / or methods of embodiments of the present invention described herein.The program modules 1131 may, among other things, perform one or more steps of a computer-implemented method, such as one or more steps of the methods described above, for inter-subnet communication including a consensus protocol in a distributed network. The network node 10 may also communicate with one or more external devices 1117, such as a keyboard or pointing device, as well as a display 1118. Such communication may occur via an input / output (I / O) interface 1119. Additionally, the network node 10 may communicate with one or more networks 40, such as a local area network (LAN), a general wide area network (WAN), and / or a public network (e.g., the Internet), via a network adapter 1141. In some embodiments, the network 1140 may, among other things, be a distributed network comprising multiple network nodes 10, e.g., the network 100 shown in FIG. 1. As shown, the network adapter 1141 communicates with other components of the network node 10 via a bus 1116. It should be understood that, although not shown, other hardware and / or software components may be used in conjunction with the network node 10.
[0085] 12 shows a more detailed diagram of a computing unit 1200 according to an embodiment of the present invention. The computing unit 1200 comprises a user or application state 1201 and a system state 1202.
[0086] User state 1201 includes a main web assembly (WASM) module that implements the functionality of the compute unit and its associated modules, along with an instance of each of the modules. An instance of a WASM module consists of memories, global variables, and tables. System state 1202 is not freely modifiable by the compute unit's code. This includes metadata, other state maintained by the system on behalf of the compute unit, particularly WASM modules in compiled form, and outstanding message context and callbacks. Aspects of the present invention may be embodied as a system, particularly a distributed network with multiple subnets, a method, and / or a computer program product. The computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions for a processor to execute aspects of the present invention.
[0087] A computer-readable storage medium may be a tangible device capable of holding and storing instructions for use by an instruction execution device. The computer-readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. As used herein, computer-readable storage medium should not be interpreted as a transitory signal itself, such as an electric wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., a light pulse passing through a fiber optic cable), or an electrical signal transmitted through a wire.
[0088] The computer-readable program instructions described herein can be downloaded to a respective computing or processing device from a computer-readable storage medium, or from an external computer or storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network may include copper transmission cables, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface within each computing or processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium within the respective computing / processing device.
[0089] The computer readable program instructions for carrying out the operations of the present invention may be either assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, and conventional procedural programming languages such as the "C" programming language or similar programming languages.
[0090] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, networks, apparatus (systems) and computer program products according to embodiments of the invention.
[0091] Computer-readable program instructions according to embodiments of the present invention may be provided to a processor of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus to produce a machine, whereby the instructions, when executed by the processor of the computer or other programmable data processing apparatus, produce means for implementing the function / act specified in the flowchart and / or block diagram block or blocks. These computer-readable program instructions may also be stored on a computer-readable storage medium capable of instructing a computer, programmable data processing apparatus, and / or other device to function in a particular manner. The computer-readable storage medium with stored instructions comprises a product containing instructions that implement aspects of the function / act specified in the flowchart and / or block diagram block or blocks.
[0092] The computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to generate a series of operational steps performed on the computer, other programmable apparatus, or other device to generate a computer-implemented process executed on the computer, other programmable apparatus, or other device, such that the instructions executed on the computer, other programmable data processing apparatus, or other device implement the functions / acts specified in the flowcharts and / or block diagrams or blocks.
[0093] The illustrated flowcharts and block diagrams illustrate the architecture, functionality, and operation of possible implementations of networks, systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions, comprising one or more executable instructions that implement a particular logical function. In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently. The blocks may also be executed in the reverse order, depending on the functionality involved.
[0094] While presently preferred embodiments of the invention have been shown and described herein, it is to be expressly understood that the invention is not limited thereto and may be variously embodied and carried out in other ways within the scope of the appended claims.
Claims
1. A distributed network having a plurality of subnets, each of the plurality of subnets having a changeable set of a plurality of nodes, the network comprising: a distributed key generation protocol for generating, for each of the plurality of subnets, a separate static verification key of a public key signature scheme and a first set of shared secret keys corresponding to a first set of nodes in each of the subnets; a secret redistribution protocol configured to redistribute each shared secret key in the first set of shared secret keys to a second set of nodes in each of the subnets to generate a second set of shared secret keys corresponding to the same static verification key for each of the subnets; the plurality of nodes in each of the subnets are configured to execute an assigned set of a plurality of computational units, each computational unit being a piece of software running on a node of the network and having its own unit state; the plurality of computing units of the plurality of subnets are configured to perform computations in a deterministic and replicated manner across the plurality of subnets by performing active replication in space of a subset of computing units allocated on each node of the subnet; A distributed network in which the plurality of nodes of the plurality of subnets are configured such that an allowed subset of the plurality of nodes performs joint signing of subnet information with their shared secret key and provides the signed subnet information to a user of the distributed network and / or another receiving subnet.
2. each node of the subset of the first set of nodes holds a shared secret key from the first set of shared secret keys; The distributed network of claim 1 , wherein each node in a subset of the second set of nodes holds one shared secret key from the second set of shared secret keys.
3. 3. The distributed network of claim 1, wherein the network is configured such that, for each of the plurality of subnets, the secret redistribution protocol redistributes the shared secrets of the second set of shared secrets to a third set of nodes in each of the subnets to generate a third set of shared secrets corresponding to the same static verification key for each of the subnets.
4. a subset of the first set of nodes is equal to a subset of the second set of nodes; and / or 4. The distributed network of claim 3, wherein a subset of the second set of nodes is equal to a subset of the third set of nodes.
5. the subset of the first set of nodes is different from the subset of the second set of nodes; and / or The distributed network of claim 3 , wherein the subset of the second set of nodes is different from the subset of the third set of nodes.
6. 6. The distributed network of claim 1, wherein the distributed network is configured to periodically execute the secret redistribution protocol for each of the subnets at predefined time intervals.
7. The distributed network of claim 1 , wherein the distributed key generation protocol is a threshold distributed key generation protocol.
8. The distributed network of claim 1 , wherein the secret redistribution protocol is a threshold key redistribution protocol.
9. The distributed network of claim 1 , wherein the users and / or the recipient subnets of the distributed network are configured to verify the joint signature of the subnet information with the static verification key of the corresponding subnet.
10. The distributed network includes a management subnet having a plurality of constituent nodes, the management subnet including: storing static verification keys for the plurality of subnets; holding a root verification key and a plurality of corresponding shared secret keys for a public key signature scheme; receiving a verification key request for providing one or more subsets of the static verification keys; providing a verification key response in response to the verification key request, the verification key response comprising one or more subsets of the static verification keys; a subnet of the plurality of nodes of the management subnet creating a joint attestation of the verification key response by signing the verification key response with an allowed subnet of the shared secret key corresponding to the root verification key; 10. A distributed network according to any one of claims 1 to 9, configured so that
11. 1. A computer-implemented method for managing multiple verification keys in a distributed network having multiple subnets, each of the multiple subnets comprising multiple nodes, the method comprising: a distributed key generation protocol for generating, for each of the plurality of subnets, a separate static verification key of a public key signature scheme and a first set of shared secret keys corresponding to a first set of nodes in each of the subnets; a secret redistribution protocol redistributing each shared secret key of the first set of shared secret keys to a second set of nodes in each of the subnets to generate a second set of shared secret keys corresponding to the same static verification key for each of the subnets; the nodes of each subnet running an assigned set of computing units, each computing unit being a piece of software running on a node of the network and having its own unit state; performing computations in a deterministic and replicated manner across the plurality of subnets by the plurality of compute units of the plurality of subnets performing active replication in space of a subset of compute units allocated on each node of the subnet; the plurality of nodes of the plurality of subnets, an allowed subset of the plurality of nodes, performing joint signing of subnet information with their shared secret key; providing the signed subnet information to a user and / or another receiving subnet of the distributed network.
12. 1. A computer program for operating a distributed network having a plurality of subnets, each subnet having a node set consisting of a plurality of nodes, comprising: the computer program comprises a plurality of program instructions; The plurality of program instructions are executable by one or more of the plurality of nodes to cause one or more of the plurality of nodes to perform a method comprising: a distributed key generation protocol for generating, for each of the plurality of subnets, a separate static verification key of a public key signature scheme and a first set of shared secret keys corresponding to a first set of nodes in each of the subnets; a secret redistribution protocol redistributing each shared secret key of the first set of shared secret keys to a second set of nodes in each of the subnets to generate a second set of shared secret keys corresponding to the same static verification key for each of the subnets; the nodes of each subnet running an assigned set of computing units, each computing unit being a piece of software running on a node of the network and having its own unit state; performing computations in a deterministic and replicated manner across the plurality of subnets by the plurality of compute units of the plurality of subnets performing active replication in space of a subset of compute units allocated on each node of the subnet; the plurality of nodes of the plurality of subnets, an allowed subset of the plurality of nodes, performing joint signing of subnet information with their shared secret key; and providing the signed subnet information to a user and / or another receiving subnet of the distributed network.
Citation Information
Patent Citations
Method and system for secure data record distribution using blockchain
JP2020516164A
Rapid decentralized consensus on the blockchain
JP2020517134A
Secure Private Key Reuse for Dynamic Node Groups
JP2020517136A
JPP6651042B