Account Working Shard Change System and Method in a Blockchain Network
The system dynamically changes working shards in blockchain networks to enhance scalability and security by tracking shard information and rebalancing nodes, addressing scalability and malicious node risks.
Patent Information
- Application Number
- JP2024573582
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-06-14
- Filing Date
- 2023-05-18
- Publication Date
- 2025-07-03
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
Blockchain networks face scalability issues due to the need for all nodes to receive and store all messages, and the risk of data manipulation increases with sharding, as malicious nodes can exceed half the number in certain shards, leading to fake blocks being linked to the chain.
A system and method for dynamically changing the working shard of accounts in a blockchain network, using a working shard change detection unit and request unit to track and update shard information, ensuring balanced distribution and reducing the risk of malicious node concentration.
This approach enhances scalability by reducing transaction processing volume and ledger size while mitigating the risk of malicious node attacks by periodically rebalancing shards and tracking account shard changes.
Smart Images

Figure 2025520466000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to an account working shard change system and method in a blockchain network. More specifically, in a blockchain network applying dynamic sharding technology, the present invention relates to a system and method for changing the shard (working shard) to which an arbitrary account belongs to another shard (working shard).
Background Art
[0002] Blockchain is a decentralized distributed transaction management technology born to eliminate the centralized method in which an existing central agency stores transaction contents at a single point. Blockchain is a distributed ledger system that makes it impossible to forge and alter records by having all participants in a P2P (Peer-to-Peer) communication network own a shared ledger determined through a consensus algorithm. That is, a distributed ledger system is a system in which each node synchronizes and maintains a database called a ledger in a distributed environment without being under the control of a central administrator.
[0003] In order for all nodes in a blockchain to maintain a synchronized ledger, all transactions and blocks occurring within the network must be stored. For this purpose, conventionally, all messages have been propagated to all nodes in a blockchain network by a flooding method. However, this involves the problem that all nodes must receive and store all messages, that is, the problem of scalability.
[0004] To solve the problem of scalability, recently in the blockchain field, a sharding method has been proposed in which multiple nodes are distributed among multiple shard groups, and multiple transactions are divided and processed in parallel for each of the distributed shards. Sharding divides the transactions and blocks generated in a blockchain network into shard units, which are small groups. Nodes belonging to each shard no longer need to process transactions and blocks of different shards, but only process the transactions and blocks of the shard to which they belong, thereby reducing the transaction processing volume of the entire network and the size of the distributed ledger.
[0005] However, by introducing the sharding technique, the number of nodes for verifying transactions decreases according to the number of shards. As a result, there is a problem that the risk of data being manipulated by a malicious node's consensus attack increases. A consensus attack is the most dangerous type of attack on a blockchain. In a blockchain, a verification committee containing multiple nodes basically verifies blocks through a consensus by a majority vote of the committee, and blocks that do not reach a consensus are excluded from selection and deleted from the chain.
[0006] In a general blockchain, since tens of thousands to hundreds of thousands of nodes are included in the verification committee, it is realistically impossible for the number of malicious nodes to exceed more than half. However, if the sharding technique is introduced, there are differences in the frequency of transactions, the number of nodes, and the ratio of validators for each shard. Over time, imbalance between shards may occur, and there may be a problem that the stability of some shards becomes vulnerable. That is, there may be a case where the number of malicious nodes in some shards exceeds more than half. When the number of malicious nodes exceeds more than half in this way, there is a risk that a fake block will be linked to the chain. That is, when applying the sharding technique, the number of nodes that the attacker has to persuade decreases, and it becomes easier to secure more than half of the nodes, thereby increasing the risk that a fake block will be linked to the chain.
[0007] To solve such problems, even after the shards are determined, it is necessary to re - arrange the members (nodes) of the shards to balance between the shards. Also, when the overall traffic of the blockchain network becomes high, it is necessary to increase the number of shards. The applicant of the present invention proposes a technique of re - equalizing the members of the shards and increasing the number of shards as a dynamic sharding technique.
[0008] On the other hand, in a blockchain network applying the sharding technique, an account shares only information about accounts belonging to the shard to which it belongs and does not have account information belonging to other shards. Therefore, in order to perform cross - shard transactions between accounts belonging to different shards, the shard information to which the counterparty's account belongs must be known.
[0009] Therefore, when applying the dynamic sharding technique, even if the shard to which an account belongs is changed, the shard information of the account must be tracked and shared continuously, and the shard information to which the account belongs must be searchable during cross - shard transactions.
Summary of the Invention
Problems to be Solved by the Invention
[0010] The object of the present invention is to meet the above-mentioned necessity, and to provide an account working shard change system and method capable of tracking the change of the working shard (working shard) of any account in a blockchain network to which a dynamic sharding technology is applied.
Means for Solving the Problems
[0011] The present invention can be realized in various ways including an apparatus (system), a method, a computer program stored in a computer-readable medium, or a computer-readable medium storing a computer program.
[0012] Included is a working shard change system for an account in a node constituting a blockchain network according to an embodiment of the present invention. The node is a node belonging to the source working shard of the first reallocation account, communicates with the node belonging to the first home shard of the first reallocation account and the node belonging to the first destination working shard of the first reallocation account, and executes the working shard change procedure of the first reallocation account. The node includes a working shard change sensing unit that senses that the working shard of the first reallocation account is changed, and a working shard change request unit that requests the node belonging to the first destination working shard to change the working shard of the first reallocation account.
[0013] More preferably, the node further includes a home shard information acquisition unit that acquires the home shard information of the first reallocation account, and a current working shard information acquisition unit that acquires the current working shard information of the first reallocation account from the node belonging to the first home shard based on the home shard information of the first reallocation account. When the current working shard information of the first reallocation account does not match the destination working shard information of the first reallocation account, the working shard change request unit sends a request to change the working shard of the first reallocation account to the node belonging to the first destination working shard.
[0014] More preferably, when the current working shard information of the first reallocation account matches the destination working shard information of the first reallocation account, the node further includes an account deactivation processing unit that deactivates the transaction chain of the first reallocation account and ends the working shard change procedure of the first reallocation account.
[0015] More preferably, the home shard information acquisition unit acquires the home shard information of the first reallocation account by using a function with the address information of the first reallocation account and the total shard number information of the blockchain network as parameters.
[0016] More preferably, the node performs peer-to-peer communication with the node belonging to the first home shard and the node belonging to the first destination working shard.
[0017] More preferably, the node is the node belonging to the home shard of the second reallocation account, and communicates with the node belonging to the second source working shard and the node belonging to the second destination working shard of the second reallocation account to execute the working shard change procedure of the second reallocation account.
[0018] The node further includes a working shard information request receiving unit that receives a current working shard information request for the second relocation account from at least one information request node among the nodes to which the second source working shard belongs and the nodes to which the second destination working shard belongs, an account directory search unit that searches for the current working shard information of the second relocation account in the account directory, a search result sending unit that sends the current working shard information of the second relocation account searched by the account directory search unit to the information request node, a working shard information change request receiving unit that receives a working shard information change request from the node to which the second destination working shard belongs, and an accounting directory update unit that changes the current working shard information of the second relocation account in the account directory to the destination working shard information of the second relocation account.
[0019] More preferably, the node performs peer-to-peer communication with the nodes to which the second source working shard belongs and the nodes to which the second destination working shard belongs.
[0020] Even more preferably, the node is the node to which the destination working shard of the third relocation account belongs, and communicates with the node to which the third source working shard of the third relocation account belongs and the node to which the third home shard of the third relocation account belongs to execute the working shard change procedure of the third relocation account. The node further includes a working shard information change request receiving unit that receives a working shard information change request for the third relocation account from the node to which the third source working shard belongs, an account recording unit that records the transaction chain of the third relocation account, a home shard information acquisition unit that acquires the home shard information of the third relocation account, and a working shard information change request sending unit that sends a working shard information change request to the node to which the third home shard belongs based on the home shard information of the third relocation account.
[0021] More preferably, it further includes a current working shard information acquisition unit that acquires the current working shard information of the third relocated account from the node belonging to the third home shard based on the home shard information of the third relocated account. When the current working shard information of the third relocated account does not match the destination working shard information of the third relocated account, the working shard information change request sending unit sends a working shard information change request to the node belonging to the third home shard.
[0022] More preferably, when the current working shard information of the third relocated account matches the destination working shard information of the third relocated account, the node ends the working shard change procedure of the third relocated account.
[0023] More preferably, the home shard information acquisition unit acquires the home shard information of the third relocated account by using a function with the address information of the third relocated account and the total shard number information of the blockchain network as parameters.
[0024] More preferably, the node performs peer-to-peer communication with the node belonging to the third source working shard and the node belonging to the third home shard.
[0025] In addition, in the node constituting the blockchain network, the node is the node belonging to the source working shard of the first relocated account, communicates with the node belonging to the first home shard of the first relocated account and the node belonging to the first destination working shard of the first relocated account, and executes the working shard change procedure of the first relocated account. The working shard change method of the account according to the present invention realized by at least one processor includes a step of detecting whether the working shard of the first relocated account has been changed, and a step of sending a working shard change request of the first relocated account to the node belonging to the first destination working shard.
[0026] More preferably, it further includes the steps of obtaining the home shard information of the first reallocated account, obtaining the current working shard information of the first reallocated account from the node belonging to the first home shard based on the home shard information of the first reallocated account, and if the current working shard information of the first reallocated account does not match the destination working shard information of the first reallocated account, sending a request to change the working shard of the first reallocated account to the node belonging to the first destination working shard.
[0027] Even more preferably, if the current working shard information of the first reallocated account matches the destination working shard information of the first reallocated account, it further includes the steps of deactivating the transaction chain of the first reallocated account and ending the procedure for changing the working shard of the first reallocated account.
[0028] More preferably, the step of obtaining the home shard information of the first reallocated account further includes the step of obtaining the home shard information of the first reallocated account by using a function with the address information of the first reallocated account and the total number of shards information of the blockchain network as parameters.
[0029] More preferably, the node performs peer-to-peer communication with the node belonging to the first home shard and the node belonging to the first destination working shard.
[0030] More preferably, the node is a node belonging to the home shard of the second reallocation account, and communicates with the node belonging to the second source working shard of the second reallocation account and the node belonging to the second destination working shard of the second reallocation account to execute the working shard change procedure for the second reallocation account. The method for changing the working shard of an account further includes the steps of receiving a request for the current working shard information of the second reallocation account from at least one information requesting node among the node belonging to the second source working shard and the node belonging to the second destination working shard, searching for the current working shard information of the second reallocation account from the account directory, sending the retrieved current working shard information of the second reallocation account to the information requesting node, receiving a request for changing the working shard information from the node belonging to the second destination working shard, and changing the current working shard information of the second reallocation account in the account directory to the destination working shard information of the second reallocation account.
[0031] More preferably, the node communicates with the node belonging to the second source working shard and the node belonging to the second destination working shard in a peer-to-peer manner.
[0032] More preferably, the node is a node belonging to the destination working shard of the third reallocation account, and communicates with the node belonging to the third source working shard of the third reallocation account and the node belonging to the third home shard of the third reallocation account to execute the working shard change procedure for the third reallocation account. The method for changing the working shard of an account further includes the steps of receiving a request for changing the working shard of the third reallocation account from the node belonging to the third source working shard, recording the transaction chain of the third reallocation account, obtaining the home shard information of the third reallocation account, and sending a request for changing the working shard information to the node belonging to the third home shard based on the home shard information of the third reallocation account.
[0033] More preferably, it further includes the steps of obtaining the current working shard information of the third relocation account from the node belonging to the third home shard based on the home shard information of the third relocation account, and sending a request to change the working shard information to the node belonging to the third home shard when the current working shard information of the third relocation account does not match the destination working shard information of the third relocation account.
[0034] More preferably, when the current working shard information of the third relocation account matches the destination working shard information of the third relocation account, the procedure for changing the working shard of the third relocation account is terminated.
[0035] More preferably, the step of obtaining the home shard information of the third relocation account obtains the home shard information of the third relocation account by using a function with the address information of the third relocation account and the total number of shards information of the blockchain network as parameters.
[0036] More preferably, the node performs peer-to-peer communication with the node belonging to the third source working shard and the node belonging to the third home shard.
Advantages of the Invention
[0037] According to the present invention, the following effects are achieved.
[0038] According to the present invention, by dividing the blockchain network into shards and processing transactions and blocks, the transaction processing volume and the size of the distributed ledger can be reduced, and the scalability of the blockchain network can be increased.
[0039] According to the present invention, by periodically and randomly changing the nodes and / or accounts belonging to the shards for rebalancing, the risk that malicious nodes are concentrated and arranged in any shard can be blocked.
[0040] The present invention introduces the concepts of a home shard and a working shard, makes the home shard information of any account derivable by calculation, saves the working shard information, which is the shard to which the account currently belongs, in the home shard of the account, and when any account changes its working shard, updates the changed working shard information in the home shard of the account, so that even if the account moves its working shard, the working shard of the account can be tracked.
[0041] The effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned can be clearly understood by those with ordinary knowledge in the technical field to which the present invention belongs (referred to as "ordinary technicians") from the description of the claims.
Brief Description of the Drawings
[0042] Embodiments of the present invention are described with reference to the accompanying drawings described below, where like reference numerals indicate like elements but are not limited thereto.
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Explanation of Reference Numerals
[0043] 222; Account Transaction System 224; Account Management Module 226; Peer-to-Peer Communication Module 228; Working Shard Change Module 230; Transaction Processing Module 232; Home Shard Calculation Module 411; Working Shard Change Sensing Unit 412; Home Shard Information Acquisition Unit 413; Current Working Shard Information Acquisition Unit 414; Working Shard Change Request Unit 415; Account Deactivation Processing Unit 421; Working Shard Information Request Receiving Unit 422; Account Directory Search Unit 423; Search Result Sending Unit 424; Working Shard Information Change Request Receiving Unit 425; Account Directory Update Unit 431; Working Shard Change Request Receiving Unit 432; Account Recording Unit 433; Home Shard Information Acquisition Unit 434; Current Working Shard Information Acquisition Unit 435; Working Shard Information Change Request Sending Unit Embodiments of the present invention will be described with reference to the accompanying drawings described below, where like reference numerals indicate like elements but are not limited thereto.
Modes for Carrying Out the Invention
[0044] Hereinafter, specific contents for carrying out the present invention will be described in detail with reference to the accompanying drawings. However, in the following description, specific descriptions of well-known functions and configurations may be omitted if there is a risk of unnecessarily obscuring the gist of the present invention.
[0045] In the accompanying drawings, the same or corresponding components are given the same reference numerals. Also, in the description of the following embodiments, the description of the same or corresponding components may be omitted from being repeated. However, even if the technology related to the components is omitted, it is not intended that such components are not included in any of the embodiments.
[0046] The advantages and features of the embodiments disclosed in this specification, and the methods for achieving them, will become apparent by referring to the embodiments described below together with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, and can be realized in various different forms, and the present embodiments are merely provided to fully inform those of ordinary skill in the art related to the present invention of the scope of the invention.
[0047] Unless otherwise defined, all terms (including technical and scientific terms) used in this specification can be used in a meaning commonly understood by those of ordinary skill in the technical field to which the present invention pertains. Also, terms defined in commonly used dictionaries are not to be interpreted ideally or overly unless specifically and clearly defined.
[0048] For example, the term "technique" can refer to a system, method, computer-readable instruction words, module, algorithm, hardware logic, and / or operations as permitted by the context described above and can refer to operations throughout the document.
[0049] Briefly explain the terms used in this specification and specifically describe the disclosed embodiments. The terms used in this specification are generally selected as widely used terms as possible while considering the functions in the present invention. However, this may change due to the intentions of those skilled in the relevant art, precedents, or the emergence of new technologies. In addition, in certain cases, there are terms arbitrarily selected by the applicant, and in this case, the meaning thereof will be described in detail in the explanatory part of the corresponding invention. Therefore, the terms used in the present invention should be defined based not only on the names of the terms but also on the meanings they have and the overall content of the present invention.
[0050] In this specification, singular expressions include plural expressions unless specifically specified as singular in the context. Also, plural expressions include singular expressions unless specifically specified as plural in the context. When a part of the specification states that a certain component is included, this means that, unless otherwise stated to the contrary, it does not exclude other components but may further include other components.
[0051] In the present invention, terms such as "include" and "included" can indicate the existence of features, steps, operations, elements, and / or components, but such terms do not exclude the addition of one or more other functions, steps, operations, elements, components, and / or combinations thereof.
[0052] In the present invention, when it is mentioned that a specific component is "coupled", "combined", "connected", "associated" with any other component, or "reacts", the specific component can be directly coupled, combined, connected, and / or associated with or react with the other component, but is not limited thereto. For example, one or more intermediate components can exist between a specific component and another component. Further, "and / or" in the present invention can include each of the one or more listed items or a combination of at least some of the one or more items.
[0053] In the present invention, terms such as "first" and "second" are used to distinguish specific components from other components, and the components described above are not limited by such terms. For example, the "first" component may be used to refer to an element having the same or a similar form as the "second" component.
[0054] In the present invention, the "blockchain network" is an aggregate of a plurality of computers (nodes) that participate in a blockchain system and communicate with each other peer-to-peer via the Internet or the like. In the present invention, a "node" can be a computer that participates in a blockchain network. Here, the computer includes all devices having CPU, memory, communication, and input / output functions. Specifically, it can include a server computer, a personal computer (PC), a mobile phone terminal, a small household electrical appliance, and the like.
[0055] A node can execute sharing and dissemination of information through a blockchain network. A node manages user accounts (accounts). The accounts managed by a node may include the account of the node owner (hereinafter referred to as the host account) and the accounts entrusted by other users for management (hereinafter referred to as guest accounts). A node stores all information regarding the host accounts and guest accounts it manages, transmits it to other nodes on the blockchain network, and can receive the latest information regarding the host accounts and guest accounts managed by each node from other nodes.
[0056] In the present invention, an "account" is a user account participating in a blockchain, which can be a data structure representing a single user. An account can add information to the blockchain system by issuing a transaction, and can be a ringed list of transactions issued by a user. A transaction can be a unit of data added to the system by a user. An account can own a node and directly manage its own transaction information, and such an account can be referred to as a host account. Alternatively, an account can entrust other users' nodes to manage its transaction information, and such an account can be regarded as a guest account, and the node receiving the entrustment of account management can be referred to as an entrusted node. The authentication of a node and an account can be performed using a cryptographic key, and the same cryptographic key can be used to sign a transaction. A guest account can also operate its own node to become a host account, or change the entrusted node, and a host account can also select an entrusted node to become a guest account.
[0057] In the present invention, a "transaction" is a unit of information added to a blockchain, and can be issued independently by one account. The content of a transaction is nominally any information provided by a user, and can actually be a meaningful message within the system. For example, a transaction may include messages such as "Account A sent 100 coins to Account B" and "Account B received 100 coins from Account A". In the present invention, the serial number of a transaction starts from a positive integer of 0, increases by 1 for each transaction, and an account-wise transaction chain (ANTC) that manages a ledger for each account is used. The technology of the account-wise transaction chain (AWTC) can be understood by referring to the content described in Korean Patent Publication No. 2021-0015196.
[0058] In the present invention, a "block" can be a signed list of transactions added to a shard or blockchain network during a specific period. A block can be generated by having the generated transactions sign the list through a consensus algorithm. Only one block can be generated at a time, and a blockchain can be formed by adding a new block to an existing block list.
[0059] In the present invention, a "shard" can be a small set of nodes participating in a blockchain network. The entire blockchain network is generally divided into multiple shards. If not divided, all nodes are considered to participate in one shard, and each shard has a unique address. Generally, in a blockchain network applying sharding techniques, nodes belonging to the same shard perform peer-to-peer communication with each other and share the account-wise transaction chain (AWTC) of all accounts belonging to the same shard.
[0060] In the present invention, all accounts can have one working shard and one home shard. The working shard and home shard of any account may be the same or different from each other. In the present invention, the "home shard" of an account can be calculated based on a function taking the account address and the total number of shards as parameters. The "working shard" of an account in the present invention is currently the shard to which the account belongs and operates, and can be a general shard. That is, in a blockchain network applying general sharding techniques, shards perform peer-to-peer communication among the same nodes and share the ledgers of all accounts belonging to the same shard. On the other hand, in a blockchain network applying the present invention, working shards perform peer-to-peer communication among the same nodes and can share the account-wise transaction chain (AWTC) of all accounts belonging to the same working shard.
[0061] In the present invention, "intra-shard transaction" can mean a transaction between nodes having the same working shard. In the present invention, "inter-shard transaction" can mean a transaction between nodes having different working shards.
[0062] Each shard can have a set of nodes and accounts for which the shard is a home shard, and a set of nodes and accounts for which the shard is a working shard. Each node and account must belong to one working shard.
[0063] A node can change the working shard to which it belongs from one working shard to another. When a node changes its working shard, the host account and guest account managed by the node can change their working shards simultaneously. For example, each node belonging to a blockchain network includes a shard rebalancing algorithm and can execute the shard rebalancing algorithm to change the working shards of the node and its accounts when specific conditions are met.
[0064] On the other hand, any account can, separately from the node, change the working shard to which it belongs from one working shard to another. For example, when an account that was entrusted to a certain node changes the entrusted node to a node belonging to another working shard, or when any host account is newly entrusted to a node belonging to another working shard, or when any guest account operates a node by itself to become a host account, the working shard to which it belongs can be changed separately from the existing node.
[0065] In the present invention, "peer-to-peer communication" in a blockchain network and a shard means that when any node receives certain information, it replicates the received information and transmits it to other nodes, and the nodes that receive the transmission also replicate the information and transmit it to other nodes, repeating this process until, after sufficient time, all nodes belonging to the blockchain network and the shards share the information.
[0066] In the present invention, the "adjacent shard" of any shard can be a shard having an address with a bit distance of 1 from the address of the said shard. A bit distance of 1 means that when comparing any two binary values digit by digit, only one digit value is different. For example, for the binary value "0101", the binary value that differs only in the first digit is "0100", the binary value that differs only in the second digit is "0111", the binary value that differs only in the third digit is "0001", and the binary value that differs only in the fourth digit is "1101". Therefore, for the binary value "0101", the binary values "0100", "0111", "0001", and "1101" are all binary values that differ by only one digit value. Thus, in the present invention, a binary value that differs by only one digit value from any binary value is defined as having a bit distance of 1, and a shard having an address with a bit distance of 1 from the address of any shard is defined as an adjacent shard.
[0067] The operating system described below constitutes one embodiment and is not intended to limit the scope of the claims to any one specific operating environment. It can be used in other environments without departing from the technical idea and scope of the claimed gist.
[0068] FIG. 1 is a diagram showing a conceptual diagram of a blockchain network divided into three shards of the present invention.
[0069] The plurality of nodes constituting the blockchain network can be divided into three shards 110, 120, and 130, but are not limited thereto. The number of shards can be increased as the number of nodes and accounts constituting the blockchain network increases, and at this time, one shard can be divided into two. Each of the shards 110, 120, and 130 can be the working shard of the nodes currently belonging to the shard. All nodes belonging to the current working shard can share the same information.
[0070] Each node stores a list of in-shard communication nodes that store peer-to-peer communication target (in-shard communication node) information among the nodes in the working shard, and peer-to-peer communication target (inter-shard communication node) information among the nodes outside the working shard. It can include a list of inter-shard communication nodes of one.
[0071] The in-shard communication nodes that are the peer-to-peer communication targets within the working shard of each node can be determined according to the kademlia rule. The inter-shard communication nodes that are the peer-to-peer communication targets outside the working shard of each node can be randomly determined among some of the nodes belonging to the adjacent shards.
[0072] Based on the in-shard communication node list and the inter-shard communication node list determined in such a manner, information sharing via peer-to-peer communication within and outside the working shard becomes possible. The information shared by any node with the in-shard communication nodes may be different from the information shared with the inter-shard communication nodes. That is, the information shared with the inter-shard communication nodes may be more restricted than the information shared with the in-shard communication nodes. The in-shard communication nodes and the inter-shard communication nodes included in the in-shard communication node list and the inter-shard communication node list assigned to each node can be randomly reconfigured.
[0073] In FIG. 1, nodes 111, 121, and 131 that communicate with nodes inside the working shard are shown as non-hatched circles, and nodes 112, 122, and 132 that communicate with nodes outside the working shard are shown as hatched circles. Nodes 112, 122, and 132 that communicate with nodes outside the working shard can communicate with nodes belonging to adjacent shards based on the inter-shard communication node list. Here, an adjacent shard can be a shard with a bit distance of 1 in the shard address. The bit distance of 1 can mean that the addresses of the shards differ by only one digit of bit value. That is, the addresses with a bit distance of 1 from the address "00" can be "01" and "10".
[0074] In the example of FIG. 1, when the address of the first shard 110 is "00", the address of the second shard 120 is "01", and the address of the third shard 130 is "10", the addresses of the first shard 110 and the second shard 120 are "00" and "01" respectively, with a bit distance of 1, and the addresses of the first shard 110 and the third shard 130 are "00" and "10" respectively, with a bit distance of 1. However, the addresses of the second shard 110 and the third shard 130 are "01" and "10" respectively, with two different digit values, so the bit distance is not 1.
[0075] Therefore, the first shard and the second shard are adjacent shards, and the first shard and the third shard can directly communicate as adjacent shards. However, the second shard and the third shard are not adjacent shards and cannot directly communicate, and can communicate through the first shard, which is an adjacent shard for each of them.
[0076] Each node in FIG. 1 includes a shard rebalancing algorithm and can execute the shard rebalancing algorithm according to preset conditions. The shard rebalancing algorithm can use, but is not limited to, the Bounded Cuckoo algorithm. The Bounded Cuckoo algorithm is detailed in the introduction material of rapidchain (RapidChain: Scaling Blockchain via Full Sharding, see https: / / eprint.iacr.org / 2018 / 460.pdf). The present invention can calculate the health index of shards based on the Bounded Cuckoo algorithm, classify them into strong shards and weak shards, and periodically randomly extract some nodes from the strong shards and move them to the weak shards.
[0077] When the shard rebalancing algorithm is executed, a node that changes the working shard is randomly selected, and the working shard of the node may be reallocated and changed. When the working shard of a node is changed, the node can execute the working shard change procedure for all host accounts and guest accounts it manages.
[0078] Furthermore, a node can also execute an individual working shard change procedure for the host accounts and guest accounts it manages. For example, if the guest account entrusted by a node changes the entrusted node, and the changed entrusted node belongs to another working shard, the node can execute the working shard change procedure for the guest account. Alternatively, when newly entrusting the management of a third account that was previously managed by a node belonging to another working shard, the working shard change procedure for the third account can be performed.
[0079] FIG. 2 is a block diagram showing an exemplary configuration of a node 200 including an account transaction system of the present invention. Each node may be implemented as a computer device.
[0080] In some examples, the various devices and / or components of node 200 may include distributed computer resources 250 that can communicate with each other and with external devices through one or more networks 260.
[0081] In various embodiments, the distributed computer resources 250 may include devices 250(1) to 250(N).
[0082] Embodiments of the present invention support scenarios where distributed computer resources 250 operate in a clustered or other grouped configuration to share resources, distribute load, improve performance, or for other purposes and may include one or more computer devices.
[0083] The distributed computer resources 250 may fall into various categories such as conventional server-type devices, desktop computer-type devices, mobile devices, special-purpose devices, built-in devices, and / or wearable devices. Thus, although described in terms of desktop and laptop computers, the distributed computer resources 250 can include various types of devices and are not limited to a particular form of device. The distributed computer resources 250 can be a desktop computer, a server computer, a web server computer, a personal computer, a mobile computer, a laptop computer, a tablet computer, a wearable computer, a portable computer, a communication device, an automotive computer, a network-assisted television, a thin client, a terminal, a PDA, a game console, a gaming device, a workstation, a media player, a personal video recorder (PVR), a set-top box, a camera, and an integrated component for inclusion in a computer device.
[0084] Node 200 can be one computer device that is a distributed computer resource 250. Node 200 can include any type of computer device having one or more processing units 202 operably connected to a computer readable medium (CRM) 204 through a bus 240, and in some cases, can include one or more of these. Such a bus 240 can include a system bus, a data bus, an address bus, a PCI bus, a mini PCI bus, and various local, peripheral device and / or independent buses.
[0085] In node 200, the processing unit 202 can include, for example, a processing unit 202 representing a CPU type processing unit, a GPU type processing unit, a field programmable gate array (FPGA), a digital signal processor (DSP), or other hardware logic components that can be driven by a CPU.
[0086] For example, these hardware logic components can include application-specific integrated circuits (ASICs), application-specific standard products (ASPs), system-on-a-chip (SOC) systems, complex programmable logic devices (CPLDs), etc. Specifically, the CRM 204 can store instructions executable by external processing units 208 such as an external CPU type processing unit 206, an external GPU type processing unit 208, and / or external accelerators 210 such as an FPGA type accelerator 210(1), a DSP type accelerator 210(2) or other accelerators 210(N).
[0087] The CRM 204 described herein can include a computer storage medium and / or a communication medium.
[0088] A computer storage medium can include volatile memory, non-volatile memory, and / or other types of storage units such as other permanent or auxiliary computer storage media, removable and non-removable computer storage media, realized by any method or technology for storing information such as computer-readable instructions, data structures, program modules, or other data.
[0089] The computer storage medium can be, for example, RAM, static RAM (SRAM), dynamic RAM (DRAM), phase change memory (PRAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory, DVD, optical storage media, magnetic cassette, magnetic tape, solid state drive (SSD), etc.
[0090] The executable instruction words stored in CRM204 can include other modules, programs, or applications that can be loaded and executed by the operating system 220 and the processing unit 202.
[0091] Additionally or alternatively, what is functionally described herein can be at least partially executed by one or more hardware logic components such as an accelerator.
[0092] For example, exemplary types of hardware logic components that can be used include FPGA (Field-programmable Gate Array), ASIC (Application-Specific Integrated Circuits), ASSP (Application-Specific Standard Products), System-on-a chip system (SOC), complex programmable logic device (CPLD), etc. For example, the accelerator can be a hybrid device of XILINX or ALTERA that includes a CPU built into the FPGA fabric.
[0093] In the illustrated embodiment, CRM204 may also include a data store 212. In some embodiments, the data store 212 may include a data store such as a database, a data warehouse, or other types of structured or unstructured data stores.
[0094] In some embodiments, the data store 212 may include one or more tables, indexes, storage procedures, etc. that enable data access, such as Web tables including one or more Hypertext Markup Language (HTML) tables, Resource Description Framework (RDF) tables, Web Ontology Language (OWL) tables, and / or XML (Extensible Markup Language) tables, and / or a corpus and / or a relational database.
[0095] For example, the data store 212 can store data and / or instruction words for the operation of processes, applications, components, and / or modules stored in CRM204 and executed by the processing unit 202.
[0096] The node 200 can further include one or more input / output (I / O) interfaces 216. The input / output (I / O) interface 216 can be an I / O interface that enables the node 200 to communicate with a user input device including a peripheral input device (e.g., keyboard, mouse, pen, game controller, voice input device, touch input device, gesture input device, camera, etc.) and a peripheral output device (e.g., display, printer, etc.).
[0097] Furthermore, the node 200 can be a node of a blockchain network and can further include one or more input / output (I / O) network interfaces 218 that enable the node 200 to communicate with other nodes of the blockchain network through the network 260.
[0098] Such an input / output (I / O) network interface 218 may include one or more network interface controllers (NICs) or other types of transceiver devices for transmitting and receiving communications through network 260.
[0099] Network 260 can include a shared network such as the Internet, a private network such as an institutional and / or personal intranet, or a combination of parts of private and shared networks. Network 260 can include any type of wired and / or wireless network including, but not limited to, a local area network (LAN), a wide area network (WAN), a satellite network, a cable network, a Wi-Fi network, a WiMax network, and can include a mobile communication network (e.g., 3G, 4G, 5G, etc.) or any combination thereof. Network 260 can use a communication protocol including packet-based and / or datagram-based protocols such as Internet Protocol (IP), Transmission Control Protocol (TCP), User Datagram Protocol (UDP), or other types of protocols.
[0100] Furthermore, network 260 can include a plurality of devices that facilitate network communication or form a hardware base for the network such as switches, routers, gateways, access points, firewalls, base stations, repeaters, backbone devices.
[0101] In some embodiments, network 260 may further include a device that enables connection to a wireless network, such as a wireless access point (WAP). Embodiments according to the present invention include a WAP that supports the IEEE (Institute of Electrical and Electronics Engineers) 802.11 standard (e.g., 802.11g, 802.11n, etc.) and can support connections via a WAP that transmits and receives data through various electromagnetic frequencies (e.g., radio frequencies).
[0102] In the illustrated embodiment, CRM 204 can include an operating system 220 and an account transaction system 222. The account transaction system 222 can include one or more modules and / or APIs shown as blocks 224, 226, 228, 230, and 232, but this is merely illustrative and the number may be more or less. The functions described in connection with each block 224, 226, 228, 230, and 232 can be combined to be performed by fewer modules and / or APIs, or can be divided and performed by more modules and / or APIs.
[0103] Alternatively, the operating system, the data stored in the data store, and part or all of the account transaction system can be stored in separate memories 234, such as memory 214 on process unit 202, memory 234(1) on CPU-type processing unit 206, memory 234(2) on GPU-type processing unit 208, memory 234(3) on FPGA-type accelerator 210(1), memory 234(4) on DSP-type accelerator 210(2), and / or memory 234(M) on other accelerator 210(N).
[0104] The account transaction system 222 can include an account management module 224, a peer-to-peer communication module 226, a working shard change module 228, a transaction processing module 230, and a home shard calculation module 232.
[0105] The account management module 224 can manage host accounts and guest accounts. The account management module 224 can receive and save the input of the account-specific transaction chain (AWTC) of all accounts belonging to the same working shard.
[0106] For any message generated within a working shard, the peer-to-peer communication module 226 can transmit the message to other nodes within the working shard and nodes outside the working shard through peer-to-peer communication based on the in-shard communication node list and the inter-shard communication node list. The peer-to-peer communication module 226 can receive and process a message generated by the node itself or a message shared from another node, or share it with other nodes. Such message sharing can be performed across multiple nodes, but for the sake of simplicity, the procedure for sharing messages is omitted.
[0107] When the working shard of any account is changed, the working shard change module 228 can update the working shard information stored in the home shard of the account with the changed working shard information. At this time, the account whose working shard is changed is called the relocation account, the working shard before the change of the relocation account is called the source working shard, and the working shard after the change of the relocation account can be called the destination working shard.
[0108] For example, when the working shard of the rearrangement account is changed from the source working shard to the destination working shard, the node with the home shard of the rearrangement account as the working shard, the node with the source working shard of the rearrangement account as the working shard, and the node with the destination working shard of the rearrangement account as the working shard each execute different working shard change operations to change the working shard information stored in the home shard of the rearrangement account from the source working shard to the destination working shard.
[0109] Hereinafter, in the present invention, the node with the home shard of the rearrangement account as the working shard is defined as the node belonging to the home shard, the node with the source working shard of the rearrangement account as the working shard is defined as the node belonging to the source working shard (the node belonging to the same working shard as the rearrangement account before the change), and the node with the destination working shard of the rearrangement account as the working shard (the node belonging to the same working shard as the rearrangement account after the change) is defined as the node belonging to the destination working shard.
[0110] Therefore, the working shard change module 228 can determine whether it is the node belonging to the home shard, the node belonging to the source working shard, or the node belonging to the destination working shard, and execute different working shard change operations accordingly.
[0111] In the example of FIG. 1, when the home shard of any account managed by node 111 is the second shard 120, the first shard 110 information is stored in nodes 121 and 122 that use the second shard 120 as the working shard as the working shard information of the account. On the other hand, when the working shard of this account (relocated account) is changed from the first shard 110 to the third shard 130, the working shard information of the relocated account stored in nodes 121 and 122 is changed from the first shard 110 to the third shard 130. At this time, nodes 111 and 112 belonging to the first shard 110, which is the working shard before the change of the relocated account, nodes 121 and 122 belonging to the second shard 120, which is the home shard of the relocated account, and nodes 131 and 132 belonging to the third shard 130, which is the working shard after the change of the relocated account, each execute different working shard change operations to execute the working shard change of the relocated account according to the present invention.
[0112] The transaction processing module 230 can process a transaction between any two accounts. The transaction processing module 230 can process an intra-shard transaction when any two accounts belong to the same working shard and an inter-shard transaction when any two accounts belong to different working shards. At this time, the account attempting the transaction can be named the sending account, and the account targeted by the transaction can be named the receiving account. The node (sending node) managing the sending account, the node (the node using the home shard of the receiving account as the working shard) belonging to the home shard of the receiving account, and the node (receiving node) managing the receiving account can each operate differently.
[0113] The home shard calculation module 232 can calculate the home shard address of any account based on the account address and the total number of shards information. The home shard calculation module 232 can be driven by the working shard change module 228 and the transaction processing module 230. When the working shard change module 228 requests the home shard information of the relocated account or the transaction processing module 230 requests the home shard information of the received account, the function with the address of the account and the total number of shards information as parameters can be applied to calculate the home shard address of the account.
[0114] FIG. 3 is a diagram showing the information stored in the data store 300 to implement the account transaction system of the present invention.
[0115] In the node's data store 300, there are account-specific transaction chains (AWTC) 302, 304, 306, 308 of all accounts belonging to the node's working shard, an account directory 310 storing the working shard history information of the accounts with the node's working shard as the home shard, a round state chain 312 that combines the account-specific transactions of all accounts belonging to the working shard and stores the round state blocks agreed among all nodes belonging to the working shard as a chain, a world round state chain 314 that combines and agrees on all round state blocks belonging to the blockchain network and stores them as a chain, a list of in-shard communication nodes 316 storing the information of the communication target nodes within the node's working shard, and a list of inter-shard communication nodes 318 storing the information of the communication target nodes outside the node's working shard.
[0116] The account directory 310 stores the working shard history information of the accounts with the working shards of the nodes as the home shards. In this example, for convenience, it is assumed that each node manages only one account, that is, the host account. Therefore, in this example, the node can be the same concept as the account. For example, in the example of FIG. 1, when the home shard of the account managed by node 111 is the second shard 120, the information of the first shard 110 is stored as the working shard information of the account managed by node 111 in the account directories of nodes 121 and 122 with the second shard 120 as the working shard. On the other hand, in the example of FIG. 1, when the home shard of the account managed by node 112 is the third shard 130, the information of the first shard 110 is stored as the working shard information of the account managed by node 112 in the account directories of nodes 131 and 132 with the third shard as the working shard.
[0117] As described above, the node and the account can change the working shard. When the working shard is changed in this way, the working shard change module of the present invention is driven, and the changed working shard information can be updated in the node belonging to the home shard of the account.
[0118] In the present invention, it is preferable that the latest working shard address of the account is updated in the account directory of the node belonging to the home shard of any account by the working shard change module.
[0119] FIG. 4 is a configuration diagram showing a working shard change system 400 of an account according to an embodiment of the present invention. Such a working shard change system 400 can be realized by a computer system of a node, and the working shard change system 400 of the account in FIG. 4 can be the working shard change module in FIG. 2.
[0120] To implement the working shard change system of the present invention, a node includes an account management module 401 that stores and manages an account-specific transaction chain (AWTC) for all accounts belonging to the same working shard, a home shard calculation module 402 that calculates the home shard address of any account based on the account address and the total number of shards information, a peer-to-peer communication module 403 that transmits a message to other nodes within the working shard and nodes outside the working shard via peer-to-peer communication for any message based on the in-shard communication node list and the inter-shard communication node list, and an account directory 404 that stores the working shard history information of the accounts with the working shard of the node as the home shard.
[0121] In the present invention, an account whose working shard is to be changed can be defined as a relocation account, the working shard of the moving count before the change can be defined as the source working shard, and the working shard of the relocation account after the change can be defined as the destination working shard. When the working shard of the relocation account is changed from the source working shard to the destination working shard, nodes with the home shard of the relocation account as the working shard (home shard belonging nodes), nodes with the source working shard of the relocation account as the working shard (source working shard belonging nodes), and nodes with the destination working shard of the relocation account as the working shard (destination working shard belonging nodes) can each execute different working shard change operations.
[0122] That is, each node can include a working shard change module 410 as the node to which the source working shard belongs, a working shard change module 420 as the node to which the home shard belongs, and a working shard change module 430 as the node to which the destination working shard belongs. It can determine whether it is the node to which the home shard belongs, the node to which the source working shard belongs, or the node to which the destination working shard belongs, and operate different working shard change modules respectively.
[0123] The working shard change module 410 as the node to which the source working shard belongs includes a working shard change detection unit 411 that detects whether the working shard of any relocation account belonging to the same working shard is changed, and a working shard change request unit 414 that requests a working shard change of the relocation account to the node to which the destination working shard belongs.
[0124] The working shard change module 410 as the node to which the source working shard belongs further includes a home shard information acquisition unit 412 that acquires the home shard information of the relocation account through the home shard calculation module 402, and a current working shard information acquisition unit 413 that acquires the current working shard information of the relocation account by requesting the current working shard information of the relocation account to the node to which the home shard belongs based on the home shard information of the relocation account.
[0125] When the current working shard information of the relocation account acquired by the current working shard information acquisition unit 413 is different from the destination working shard information, the working shard change request unit 414 requests a working shard change of the relocation account to the node to which the destination working shard belongs again, and then re-drives the current working shard information acquisition unit 413.
[0126] The working shard change module 410 as the node where the source working shard belongs further includes an account inactivation processing unit 415 that inactivates the transaction chain of the account to be relocated if the current working shard information of the account to be relocated obtained by the current working shard information acquisition unit 413 and the destination working shard information match.
[0127] The working shard change module 420 as the node where the home shard belongs includes a working shard information request receiving unit 421 that receives a request for the current working shard information of the account to be relocated from at least one information requesting node among the node where the source working shard belongs and the node where the destination working shard belongs, an account directory search unit 422 that searches for the current working shard information of the account to be relocated in the account directory 404, a search result sending unit 423 that sends the searched current working shard information of the account to be relocated to the information requesting node, a working shard information change request receiving unit 424 that receives a working shard information change request from the node where the destination working shard belongs, and an account directory update unit 425 that changes the current working shard information of the account to be relocated in the account directory 404 to the destination working shard after verifying the working shard information change request.
[0128] The working shard change module 430 as the node where the destination working shard belongs includes a working shard change request receiving unit 431 that receives a working shard change request of the account to be relocated from the node where the source working shard belongs, an account recording unit 432 that records the transaction chain of the account to be relocated after verifying the working shard change request of the account to be relocated, a home shard information acquisition unit 433 that acquires the home shard information of the account to be relocated through the home shard calculation module 402, and a working shard information change request sending unit 435 that sends a working shard information change request to the node where the home shard belongs based on the home shard information of the account to be relocated.
[0129] The working shard change module 430 as the node where the destination working shard belongs further includes a current working shard information acquisition unit 434 that requests the current working shard information of the relocation account from the node where the home shard belongs to obtain the current working shard information of the relocation account. If the current working shard information of the relocation account obtained by the current working shard information acquisition unit 434 does not match the destination working shard information, the working shard information change request sending unit 435 can send a working shard information change request to the node where the home shard belongs.
[0130] First, when the node is the node where the source working shard belongs, the node drives the working shard change module 410 as the node where the source working shard belongs to change the working shard of the relocation account. The operations of each component of the working shard change module 410 as the node where the source working shard belongs will be described. At this time, let the relocation account be the first relocation account, the node where the source working shard belongs be the first node where the source working shard belongs, the node where the home shard belongs be the first node where the home shard belongs, and the node where the destination working shard belongs be the first node where the destination working shard belongs. That is, the node can be the node where the source working shard of the first relocation account belongs.
[0131] The working shard change detection unit 411 senses that a working shard movement reason has occurred for any first reallocation account belonging to the same working shard, and when the working shard movement reason is included and confirmed in the round state RS, it senses this and causes the working shard change operation to be executed. The reasons for the movement of the working shard include, as mentioned earlier, the reallocation of shards of nodes by the shard rebalancing algorithm, the change of the guest account to the host account, the change of the guest account to the trustee node, the change of the host account to the guest account, and the like. The working shard change request unit 414 can generate a working shard change message for the first reallocation account and send it to the node belonging to the first destination working shard through the peer-to-peer communication module 403.
[0132] After sending the working shard change message of the first reallocation account and after the elapse of a preset time, the home shard information acquisition unit 412 can request the home shard calculation module 402 for the home shard information of the first reallocation account and receive the home shard information of the first reallocation account from the home shard calculation module 402. The home shard calculation unit 402 can calculate the home shard information of the first reallocation account using a function with the address information of the first reallocation account and the total shard number information of the blockchain network as parameters.
[0133] Currently, the working shard information acquisition unit 413 generates a request message for the working shard information of the first relocation account based on the home shard information of the first relocation account, and sends it to the node belonging to the first home shard through the peer-to-peer communication module 403, and can receive the current working shard information of the first relocation account from the node belonging to the first home shard. At this time, the peer-to-peer communication module 403 sends a request message for the working shard information to the communication target node based on the in-shard communication node list and the inter-shard communication node list through peer-to-peer communication. The node that receives the transmission of the request message for the working shard information shares the request message for the working shard information with its own in-shard communication nodes and inter-shard communication nodes through peer-to-peer communication. In this way, the request message for the working shard information can be transmitted to the node belonging to the first home shard through peer-to-peer communication.
[0134] If the current working shard information of the first relocation account received from the node belonging to the first home shard does not match the destination working shard information, the working shard change request unit 414 can re-send a working shard change message of the first relocation account to the node belonging to the first destination working shard through the peer-to-peer communication module 403.
[0135] When the current working shard information of the first relocation account received from the node belonging to the first home shard matches the destination working shard information, the account deactivation processing unit 415 deactivates the transaction chain (AWTC) of the first relocation account through the account management module 401 to end the working shard change procedure of the first relocation account.
[0136] Next, when the node is a node belonging to the home shard, the node drives the working shard change module 420 as the node belonging to the home shard to change the working shard of the relocation account. The operations of the components of the working shard change module 420 as the node belonging to the home shard will be described. At this time, the relocation account is the second relocation account, the source working shard belonging node is the second source working shard belonging node, the home shard belonging node is the second home shard belonging node, and the destination working shard belonging node is the second destination working shard belonging node. That is, the node can be the node belonging to the home shard of the second relocation account.
[0137] The working shard information request receiving unit 421 can receive a working shard information request message for the second relocation account from the second source working shard belonging node or the second destination working shard belonging node. The working shard information request message for the second relocation account is generated at the second source working shard belonging node or the second destination working shard belonging node and can be transmitted through peer-to-peer communication.
[0138] The account directory search unit 422 can query the second relocation account in the account directory 404 to obtain the current working shard information of the second relocation account.
[0139] The search result sending unit 423 can send the current working shard information of the second relocation account retrieved in the account directory 404 to the second source working shard belonging node or the second destination working shard belonging node through peer-to-peer communication.
[0140] The working shard information change request receiving unit 424 can receive a working shard information change request message that requests the second moving destination working shard to change the working shard information of the second relocation account from the node to which the second moving destination working shard belongs.
[0141] The account directory update unit 425 verifies the received working shard information change request message, and updates the working shard information of the second relocation account stored in the account directory 404 from the second moving source working shard to the second moving destination working shard.
[0142] Next, when the node is the node to which the moving destination working shard belongs, the node drives the working shard change module 430 as the node to which the moving destination working shard belongs in order to change the working shard of the relocation account. The operations of each component of the working shard change module 430 as the node to which the moving destination working shard belongs will be described. At this time, the relocation account is referred to as the third relocation account, the node to which the moving source working shard belongs is referred to as the third moving source working shard belonging node, the node to which the home shard belongs is referred to as the third home shard belonging node, and the node to which the moving destination working shard belongs is referred to as the third moving destination working shard belonging node. That is, the node can be the node to which the moving destination working shard of the third relocation account belongs.
[0143] The working shard change request receiving unit 431 can receive a working shard change message from the node to which the third moving source working shard belongs. This working shard change message is generated by the working shard change request unit 414 of the node to which the third moving source working shard belongs and can be received through the peer-to-peer communication module 403.
[0144] The account recording unit 432 can record the transaction chain (AWTC) of the third relocation account through the account management module 401.
[0145] The home shard information acquisition unit 433 can request the home shard information of the third relocation account from the home shard calculation module 402 and receive the home shard information of the third relocation account from the home shard calculation module 402. The home shard calculation unit 402 can calculate the home shard information of the third relocation account using a function with the address information of the third relocation account and the total shard number information of the blockchain network as parameters.
[0146] The working shard information change request sending unit 435 can generate a working shard information change request message for the third relocation account and send the message to the node belonging to the third home shard based on the home shard information of the third relocation account through peer-to-peer communication.
[0147] On the other hand, the current working shard information acquisition unit 434 can generate a working shard information request message for the third relocation account based on the home shard information of the third relocation account and send it to the node belonging to the third home shard through the peer-to-peer communication module 403, and can receive the current working shard information of the third relocation account from the node belonging to the third home shard.
[0148] If the current working shard information of the third relocation account received from the node belonging to the third home shard does not match the destination working shard information, the working shard information change request sending unit 435 can send a working shard information change request message for the third relocation account to the node belonging to the third home shard.
[0149] FIG. 5 is an operation flowchart showing a method for changing the working shard of an account according to an embodiment of the present invention.
[0150] The operations of the exemplary process are shown as separate blocks and are described with reference to these blocks. The process is shown as a logical flow of blocks, and each block can represent one or more operations that can be implemented in hardware, software, or a combination thereof. In relation to software, the operations represent computer-executable instructions stored on one or more computer-readable media that enable one or more processors to perform the operations cited by the one or more processors when executed by the one or more processors. Generally, computer-executable instructions include performing routines, programs, objects, modules, components, data structures, executing specific functions, or implementing specific abstract data types. The order in which the operations are described should not be construed as limiting, and the number of operations described can be subdivided into multiple sub-operations or executed in parallel in any order.
[0151] The node to which the source working shard belongs senses the change of the working shard of the relocation account, generates a message for the change of the working shard of the relocation account, and sends it to the node to which the destination working shard belongs through peer-to-peer communication (S501).
[0152] When a certain period of time has elapsed after sending the message for the change of the working shard of the relocation account, the node to which the source working shard belongs obtains the home shard information of the relocation account by using a function with the address information of the relocation account and the total number of shards information of the blockchain network as parameters (S502).
[0153] The node to which the source working shard belongs acquires the current working shard information of the relocated account from the node to which the home shard belongs (S503). To explain this specifically, the node to which the home shard belongs updates and manages the working shard information of the relocated account in the account directory (S504). The node to which the source working shard belongs generates a working shard information request message for requesting the current working shard information of the relocated account and sends it to the node to which the home shard belongs via peer-to-peer communication. The node to which the home shard belongs receives the working shard information request message, searches for the current working shard information of the relocated account from the account directory, and sends the searched current working shard information of the relocated account to the node to which the source working shard belongs (S505).
[0154] The node to which the source working shard belongs compares the current working shard information of the relocated account obtained in step S505 with the destination working shard information (S506).
[0155] If the current working shard information of the relocated account and the destination working shard information in the comparison result of step S506 do not match, since the change procedure of the relocated account is not completed, a working shard change message of the relocated account is sent to the node to which the destination working shard belongs via peer-to-peer communication (S507).
[0156] The node to which the destination working shard belongs receives the working shard change message of the moving count as a result of step S501 and / or step S507 (S508).
[0157] The node where the destination working shard belongs obtains the home shard information of the relocation account by using a function with the address information of the relocation account and the total number of shards in the blockchain network as parameters, generates a message for changing the working shard information of the relocation account, and sends it to the node where the home shard belongs via peer-to-peer communication (S509).
[0158] Send a message for changing the working shard information of the relocation account to the node where the home shard belongs. After the elapse of the preset time, the node where the destination working shard belongs obtains the current working shard information of the relocation account from the node where the home shard belongs (S510). Specifically explained, the node where the destination working shard belongs generates a message for requesting the current working shard information of the relocation account, and sends it to the node where the home shard belongs via peer-to-peer communication. The node where the home shard belongs receives the message for requesting the working shard information, searches for the current working shard information of the relocation account from the account directory, and sends the searched current working shard information of the relocation account to the node where the destination working shard belongs (S505).
[0159] The node where the destination working shard belongs compares the current working shard information of the relocation account obtained in step S510 with the destination working shard information (S511).
[0160] If, as a result of the comparison in step S511, the current working shard information of the relocation account and the destination working shard information do not match, since the change procedure of the relocation account is not completed, a message for changing the working shard information of the relocation account is generated and sent to the node where the home shard belongs via peer-to-peer communication (S512). After a certain period of time has elapsed, step S510 is repeated.
[0161] In step S509 or step S512, the home shard node that has received the working shard information change message for the relocation account from the node where the destination working shard belongs executes step S504 to update the working shard information of the relocation account stored in the account directory to the destination working shard information.
[0162] In this way, with the current working shard information of the relocation account stored in the home shard node changed to the destination working shard information, the source working shard node obtains the current working shard information (S503) and compares the current working shard information with the destination working shard information (S506). The two pieces of information match. When the two pieces of information match, the relocation account is deactivated, and the process of changing the working shard of the relocation account ends (S513).
[0163] Also, in this way, with the current working shard information of the relocation account stored in the home shard node changed to the destination working shard information, the destination working shard node obtains the current working shard information (S510) and compares the current working shard information with the destination working shard information (S511). The two pieces of information match. If the two pieces of information match, the process of changing the working shard of the relocation account ends (S514).
[0164] All of the above methods and processes are implemented by software code modules executed by one or more general-purpose computers or processors and can be fully automated. The code modules can be stored in any type of computer-readable storage medium or other computer storage device. Some or all of the methods can be implemented with special computer hardware.
[0165] Any routine description, element, or block of a flowchart described herein and / or shown in the accompanying drawings should be understood to potentially represent code, a module, a segment, or a portion that includes one or more executable instructions for implementing a particular logical function or element. Alternative examples are within the scope of the examples described herein, and depending on the functions understood herein, elements or functions may be substantially synchronized or in reverse order, removed, illustrated, or executed in order from those shown and discussed.
[0166] Many modifications and variations can be made to the above-described embodiments, and the elements thereof should be understood to be one of the other acceptable examples. All such modifications and variations are intended to be included within the scope of the present disclosure and are protected by the following claims. The embodiments according to the present invention described above can be realized in the form of program instruction words that can be executed through various computer components and can be recorded on a computer-readable recording medium. The computer-readable recording medium can include program instruction words, data files, data structures, etc. alone or in combination. The program instruction words recorded on the computer-readable recording medium may be those specially designed and configured for the present invention or those known and usable by those skilled in the field of computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, magnetic tapes, optical recording media such as CD-ROMs, DVDs, magneto-optical media such as floptical disks, and hardware devices specially configured to store and execute program instruction words such as ROMs, RAMs, flash memories, etc. Examples of program instruction words include not only machine language code such as that created by a compiler but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device can be configured to operate as one or more software modules for executing the processing according to the present invention, and vice versa.
[0167] As described above, the present invention has been described by way of specific embodiments and drawings limited to specific matters such as specific components, etc., but this is only provided to assist in a more overall understanding of the present invention, and the present invention is not limited to the above embodiments. Those with ordinary knowledge in the technical field to which the present invention pertains can make various modifications and variations from such descriptions.
[0168] Therefore, the idea of the present invention should not be limited to the embodiments described above, and not only the claims described below, but also all those equivalently or equivalently modified to the claims belong to the scope of the idea of the present invention.
Claims
1. In an account working shard change system in a node constituting a blockchain network, the node is a node belonging to the source working shard of the first reallocation account, communicates with the node belonging to the first home shard of the first reallocation account and the node belonging to the first destination working shard of the first reallocation account, and executes the working shard change procedure of the first reallocation account, the node is, a working shard change sensing unit that senses whether the working shard of the first reallocation account is changed, a working shard change request unit that requests the node belonging to the first destination working shard to change the working shard of the first reallocation account, An account working shard change system in a blockchain network, including.
2. The node is, a home shard information acquisition unit that acquires the home shard information of the first reallocation account, further includes a current working shard information acquisition unit that acquires the current working shard information of the first reallocation account from the node belonging to the first home shard based on the home shard information of the first reallocation account, The working shard change request unit requests the node belonging to the first destination working shard to change the working shard of the first reallocation account when the current working shard information of the first reallocation account does not match the destination working shard information of the first reallocation account. The account working shard change system in the blockchain network according to claim 1.
3. The belonging node is, When the current working shard information of the first reallocation account matches the destination working shard information of the first reallocation account, further includes an account inactivation processing unit that inactivates the transaction chain of the first reallocation account and ends the working shard change procedure of the first reallocation account. The account working shard change system in the blockchain network according to claim 2.
4. The home shard information acquisition unit is, The system for changing the working shard of an account in the blockchain network according to claim 2, wherein the home shard information of the first reconfigured account is obtained by using a function with the address information of the first reconfigured account and the total number of shards information of the blockchain network as parameters.
5. The system for changing the working shard of an account in the blockchain network according to claim 1, wherein the node performs peer-to-peer communication with the node belonging to the first home shard and the node belonging to the first destination working shard.
6. The node is a node belonging to the home shard of the second reconfigured account, and communicates with the node belonging to the second source working shard of the second reconfigured account and the node belonging to the second destination working shard of the second reconfigured account to execute the procedure for changing the working shard of the second reconfigured account. The node is a working shard information request receiving unit that receives a request for the current working shard information of the second reconfigured account from at least one information requesting node among the node belonging to the second source working shard and the node belonging to the second destination working shard; an account directory search unit that searches for the current working shard information of the second reconfigured account from the account directory; a search result sending unit that sends the current working shard information of the second reconfigured account searched by the account directory search unit to the information requesting node; a working shard information change request receiving unit that receives a request for changing the working shard information from the node belonging to the second destination working shard; an account directory update unit that changes the current working shard information of the second reconfigured account in the account directory to the destination working shard information of the second reconfigured account; The system for changing the working shard of an account in the blockchain network according to claim 1, further comprising:
7. The system for changing the working shard of an account in the blockchain network according to claim 6, wherein the node performs peer-to-peer communication with the node belonging to the second source working shard and the node belonging to the second destination working shard.
8. The node is the node to which the working shard to which the third relocation account belongs, communicates with the node to which the third source working shard of the third relocation account belongs and the node to which the third home shard of the third relocation account belongs, and executes the working shard change procedure of the third relocation account. The node is a working shard change request receiving unit that receives a working shard change request for the third relocation account from the node to which the third source working shard belongs; an account recording unit that records the transaction chain of the third relocation account; a home shard information acquisition unit that acquires the home shard information of the third relocation account; a working shard information change request sending unit that sends a working shard information change request to the node to which the third home shard belongs based on the home shard information of the third relocation account; The working shard change system for an account in the blockchain network according to claim 1, further comprising:
9. The node is further comprising a current working shard information acquisition unit that acquires the current working shard information of the third relocation account from the node to which the third home shard belongs based on the home shard information of the third relocation account; The working shard information change request sending unit sends a working shard information change request to the node to which the third home shard belongs when the current working shard information of the third relocation account does not match the destination working shard information of the third relocation account. The working shard change system for an account in the blockchain network according to claim 8.
10. The node is When the current working shard information of the third relocation account matches the destination working shard information of the third relocation account, the working shard change procedure of the third relocation account is terminated. The working shard change system for an account in the blockchain network according to claim 8.
11. The home shard information acquisition unit is The system for changing the working shard of an account in a blockchain network according to claim 8, wherein the home shard information of the third relocation account is obtained by using a function with the address information of the third relocation account and the total shard number information of the blockchain network as parameters.
12. The system for changing the working shard of an account in a blockchain network according to claim 8, wherein the node performs peer-to-peer communication with the node to which the third source working shard belongs and the node to which the third home shard belongs.
13. In a method for changing the working shard of an account realized by at least one processor in a node constituting a blockchain network, the node is the node to which the source working shard of the first relocation account belongs, and communicates with the node to which the first home shard of the first relocation account belongs and the node to which the first destination working shard of the first relocation account belongs to realize the procedure for changing the working shard of the first relocation account. The method includes: a step of detecting that the working shard of the first relocation account is changed; a step of executing a request to change the working shard of the first relocation account to the node to which the first destination working shard belongs. A method for changing the working shard of an account in a blockchain network.
14. a step of obtaining the home shard information of the first relocation account; a step of obtaining the current working shard information of the first relocation account from the node to which the first home shard belongs based on the home shard information of the first relocation account; a step of executing a request to change the working shard of the first relocation account to the node to which the first destination working shard belongs if the current working shard information of the first relocation account does not match the destination working shard information of the first relocation account. The method for changing the working shard of an account in a blockchain network according to claim 13, further comprising the above steps.
15. When the current working shard information of the first reallocation account matches the destination working shard information of the first reallocation account, the method for changing the working shard of an account in the blockchain network according to claim 14 further includes deactivating the transaction chain of the first reallocation account and ending the working shard change procedure of the first reallocation account.
16. The step of obtaining the home shard information of the first reallocation account The method for changing the working shard of an account in the blockchain network according to claim 14 further includes obtaining the home shard information of the first reallocation account by using a function with the address information of the first reallocation account and the total shard number information of the blockchain network as parameters.
17. The method for changing the working shard of an account in the blockchain network according to claim 13, wherein the node performs peer-to-peer communication with the node belonging to the first home shard and the node belonging to the first destination working shard.
18. The node is a node belonging to the home shard of the second reallocation account, and communicates with the node belonging to the second source working shard and the node belonging to the second destination working shard of the second reallocation account to execute the working shard change procedure of the second reallocation account. The method includes receiving a request for the current working shard information of the second reallocation account from at least one information requesting node among the node belonging to the second source working shard and the node belonging to the second destination working shard; searching the account directory for the current working shard information of the second reallocation account; sending the retrieved current working shard information of the second reallocation account to the information requesting node; receiving a request for changing the working shard information from the node belonging to the second destination working shard; changing the current working shard information of the second reallocation account in the account directory to the destination working shard information of the second reallocation account. A method for changing a working shard of an account in the blockchain network according to claim 13, further comprising
19. The method for changing a working shard of an account in the blockchain network according to claim 18, wherein the node performs peer-to-peer communication with the node to which the second source working shard belongs and the node to which the second destination working shard belongs.
20. The node is a node to which the destination working shard of the third reallocation account belongs, and communicates with the node to which the third source working shard of the third reallocation account belongs and the node to which the third home shard of the third reallocation account belongs to execute the working shard change procedure of the third reallocation account. The method comprises receiving a request to change the working shard of the third reallocation account from the node to which the third source working shard belongs; recording the transaction chain of the third reallocation account; acquiring the home shard information of the third reallocation account; sending a request to change the working shard information to the node to which the third home shard belongs based on the home shard information of the third reallocation account; A method for changing a working shard of an account in the blockchain network according to claim 13, further comprising
21. acquiring the current working shard information of the third reallocation account from the node to which the third home shard belongs based on the home shard information of the third reallocation account; if the current working shard information of the third reallocation account does not match the destination working shard information of the third reallocation account, sending a request to change the working shard information to the node to which the third home shard belongs; further comprising A method for changing a working shard of an account in the blockchain network according to claim 20.
22. If the current working shard information of the third reallocation account matches the destination working shard information of the third reallocation account, ending the working shard change procedure of the third reallocation account. A method for changing a working shard of an account in the blockchain network according to claim 21.
23. The step of obtaining the home shard information of the third reallocated account is obtaining the home shard information of the third reallocated account by using a function with the address information of the third reallocated account and the total shard number information of the blockchain network as parameters. The method for changing the working shard of an account in the blockchain network according to claim 20.
24. The node performs peer-to-peer communication with the node to which the third source working shard belongs and the node to which the third home shard belongs. The method for changing the working shard of an account in the blockchain network according to claim 20.
Citation Information
Patent Citations
Splitting the Blockchain Network
JP2021522704A
Transaction Record Systems and Programs
JP6389542B1