WO2024096420A1 - System and method for distributing nodes in blockchain network - Google Patents

System and method for distributing nodes in blockchain network Download PDF

Info

Publication number
WO2024096420A1
WO2024096420A1 PCT/KR2023/016521 KR2023016521W WO2024096420A1 WO 2024096420 A1 WO2024096420 A1 WO 2024096420A1 KR 2023016521 W KR2023016521 W KR 2023016521W WO 2024096420 A1 WO2024096420 A1 WO 2024096420A1
Authority
WO
WIPO (PCT)
Prior art keywords
shard
split
nodes
node
equation
Prior art date
Application number
PCT/KR2023/016521
Other languages
French (fr)
Korean (ko)
Inventor
최지영
주영현
Original Assignee
주식회사 블룸테크놀로지
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 블룸테크놀로지 filed Critical 주식회사 블룸테크놀로지
Publication of WO2024096420A1 publication Critical patent/WO2024096420A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1042Peer-to-peer [P2P] networks using topology management mechanisms

Definitions

  • the present invention relates to a system and method for fairly distributing nodes belonging to a divided shard into two shards during dynamic sharding, which divides a shard into two in a blockchain network.
  • Blockchain is a decentralized, distributed transaction management technology that emerged to break away from the centralized method in which existing centralized institutions store transaction details in a single point.
  • Blockchain is a distributed ledger system in a P2P (Peer-to-Peer) communication network where all participants own a shared ledger determined through a consensus algorithm, making forgery and alteration of records impossible.
  • P2P Peer-to-Peer
  • a distributed ledger system is a system in which each node synchronizes and maintains a database called the ledger in a distributed environment without the control of a central administrator.
  • a sharding method has been used to distribute multiple nodes into multiple shards (shard groups) and split multiple transactions into each distributed shard to process them in parallel.
  • Sharding divides transactions and blocks that occur in a blockchain network into small groups of shards, so the nodes in each shard only process the transactions and blocks of the shard they belong to without having to process transactions and blocks of other shards, thus processing the entire network. It is a method of reducing transaction throughput and the size of the distributed ledger.
  • a verification committee that includes multiple nodes basically verifies blocks through the consensus of the majority of the committee, and blocks that do not reach consensus are excluded from selection and separated from the chain. In order to reach consensus on a specific block, a certain number of nodes above a threshold among all nodes constituting the network must agree.
  • the applicant of the present invention proposes a technology that increases the number of shards according to the traffic volume of the blockchain network as dynamic sharding technology.
  • Dynamic sharding means dividing one shard into two, and dividing one shard into two means dividing and distributing the nodes belonging to the shard into two shards. Therefore, a technology is needed to relatively fairly distribute the nodes belonging to the shard (hereinafter referred to as split shard) divided into two during dynamic sharding.
  • the purpose of the present invention is to meet the above-mentioned need.
  • dynamic sharding which splits one shard into two and adds a new shard in a blockchain network
  • the nodes belonging to the split shard are distributed fairly into two shards. It is intended to provide a system and method.
  • the present invention can be implemented in various ways, including a device (system), a method, a computer program stored in a computer-readable medium, or a computer-readable medium on which the computer program is stored.
  • a node distribution system running on split shard nodes constituting a blockchain network includes a node placement unit that virtually arranges split shard nodes on the surface of an n-dimensional (n is the number of split parameters) sphere.
  • a center of gravity derivation unit that derives n center points in an n-dimensional sphere using the split parameter characteristic values of each split shard node for each split parameter;
  • a partition equation deriving unit that derives a partition equation passing through n center points of gravity;
  • a post-split shard allocation unit that assigns shards after the split of the split shard nodes based on the split equation;
  • a partition equation sharing unit that shares the partition equation and information for arranging the partitioned shard nodes on the surface of the n-dimensional sphere with the non-partitioned shard nodes.
  • the node placement unit derives a pseudo-random value based on the address information and seed value of the split shard nodes, uses the derived pseudo-random value to calculate the position on the surface of the n-dimensional sphere, and places the split shard nodes.
  • the partitioning equation sharing unit shares the seed value with the non-partitioning shard nodes.
  • the splitting parameters include stake amount and boat count.
  • the partition equation is at least one equation among n-1-dimensional straight lines, planes, and hyperplanes that pass through all n center points.
  • the shard allocation unit after splitting divides the split shard nodes placed on the surface of the n-dimensional sphere into two groups using a splitting equation, and assigns each split group to an old shard or a new shard.
  • the partition equation sharing unit shares the coefficient values and constant values of the variable terms of the partition equation to the non-partition shard nodes.
  • a node distribution system running on non-split shard nodes constituting a blockchain network places split shard nodes from split shard nodes on the surface of an n-dimensional (n is the number of split parameters) sphere.
  • a division equation sharing unit that receives information and division equations;
  • a node placement unit that virtually arranges split shard nodes on the surface of an n-dimensional (n is the number of split parameters) sphere;
  • a partition equation application unit that applies the partition equation to an n-dimensional sphere to split the split shard nodes into two groups; and a shard allocation confirmation unit that checks the shards assigned after splitting for each of the two groups of split shard nodes.
  • the partition equation sharing unit receives the coefficient values and constant values of the variable terms of the partition equation.
  • the information for placing split shard nodes on the surface of an n-dimensional (n is the number of split parameters) sphere is a seed value
  • the node placement unit derives a pseudo-random value based on the address information and seed value of the split shard nodes. Then, the location on the surface of the n-dimensional sphere is calculated using the derived pseudo-random value, and the split shard nodes are placed.
  • the node distribution method implemented by at least one processor in the split shard node constituting the blockchain network is a split shard node that divides the split shard nodes into n-dimension (n is the number of split parameters) Virtually placing on the surface of a sphere; A split shard node deriving n centers of gravity in an n-dimensional sphere using split parameter characteristic values of each split shard node for each split parameter; Deriving a split equation in which the split shard node passes through n center points; A step of allocating shards after the split shard node splits the split shard nodes based on the split equation; and a step where the split shard node shares the information for placing the split shard nodes on the surface of the n-dimensional sphere and the split equation to the non-split shard node.
  • the step of the split shard node virtually arranging the split shard nodes on the surface of an n-dimensional (n is the number of split parameters) sphere includes deriving a pseudo-random value based on the address information and seed value of the split shard nodes, and , It includes the step of calculating the position on the surface of the n-dimensional sphere using the derived pseudo-random value and arranging the split shard nodes.
  • the split shard node shares the seed value with the non-split shard node.
  • the splitting parameters include stake amount and boat count.
  • the partition equation is at least one equation among n-1-dimensional straight lines, planes, and hyperplanes that pass through all n center points.
  • the step of assigning shards after the split shard nodes are divided based on the split equation is to divide the split shard nodes placed on the surface of the n-dimensional sphere into two groups using the split equation, and divide each divided group into two groups. It includes the step of assigning to old shards or new shards.
  • the split shard node includes the step of sharing the coefficient value and constant value of the variable term of the split equation with the non-split shard node.
  • the node distribution method implemented by at least one processor in the non-split shard node constituting the blockchain network is where the non-split shard node divides the split shard nodes from the split shard node into n dimensions (n is Number of division parameters) sharing information and division equations for placement on the surface of the sphere; A non-split shard node virtually arranging the split shard nodes on the surface of an n-dimensional (n is the number of partition parameters) sphere; A non-split shard node applying a partition equation to an n-dimensional sphere such that the split shard nodes are split into two groups; and a step where the non-split shard node checks the shards assigned after splitting for each of the two groups of split shard nodes.
  • the non-partitioned shard node includes the step of receiving the coefficient value and constant value of the variable term of the partition equation.
  • the information for placing the split shard nodes on the surface of an n-dimensional (n is the number of split parameters) sphere is a seed value
  • the non-split shard node is a pseudo-random value based on the address information and seed value of the split shard nodes. It includes the step of deriving and calculating the position on the surface of the n-dimensional sphere using the derived pseudo-random value and arranging the split shard nodes.
  • the present invention divides the blockchain network into shards to process transactions and blocks, thereby reducing transaction throughput and the size of the distributed ledger, thereby increasing the scalability of the blockchain network.
  • the present invention distributes nodes by adding shards according to the traffic volume of the blockchain network, and allows multiple transactions to be processed in parallel in each distributed shard, thereby reducing the transaction throughput of the entire network and the size of the distributed ledger.
  • the present invention creates a new shard by dividing the existing shard without creating a blank shard, and ensures the continuity of information and the stability of the new shard by assigning nodes relatively evenly to the new shard. It can be.
  • the node information assigned to each of the two shards can be calculated using the node address and the splitting equation, so the shard information of the node after splitting can be calculated. The amount of information required to share can be minimized.
  • Figure 1 is a conceptual diagram of a blockchain network divided into three shards of the present invention.
  • Figure 2 is a block diagram showing an exemplary configuration of a node including the dynamic sharding system of the present invention.
  • Figure 3 is a diagram showing information stored in a data storage in the blockchain network of the present invention.
  • Figure 4 is a configuration diagram showing a node distribution system running on split shard nodes according to an embodiment of the present invention.
  • Figure 5 is a configuration diagram illustrating a node distribution system running on non-partitioned shard nodes according to an embodiment of the present invention.
  • Figure 6 is an operation flowchart showing a node distribution method in a split shard node during dynamic sharding according to an embodiment of the present invention.
  • Figure 7 is an exemplary diagram illustrating a process of dividing split shard nodes into two groups in a split shard node according to an embodiment of the present invention.
  • Figure 8 is an operation flowchart showing a node distribution method in a non-split shard node during dynamic sharding according to an embodiment of the present invention.
  • Figure 9 is an example diagram illustrating a process of dividing split shard nodes into two groups in a non-split shard node according to an embodiment of the present invention.
  • the term “technique” may refer to a system, method, computer-readable instructions, module, algorithm, hardware logic, and/or operation as permitted by the context described above and throughout the document.
  • terms such as 'comprise', 'comprising', etc. may indicate the presence of features, steps, operations, elements and/or components, but may indicate that such terms include one or more other functions, This does not preclude the addition of steps, operations, elements, components and/or combinations thereof.
  • a specific component when referred to as being 'coupled', 'combinated', 'connected', 'connected', or 'reacting' to any other component, the specific component is directly bound to the other component. , may be combined, connected and/or associated, or react, but is not limited thereto. For example, one or more intermediate components may exist between a particular component and another component. Additionally, in the present invention, “and/or” may include each of one or more listed items or a combination of at least a portion of one or more items.
  • 'first' and 'second' are used to distinguish specific components from other components, and the above-described components are not limited by these terms.
  • a 'first' component may be used to refer to an element of the same or similar form as the 'second' component.
  • a 'blockchain network' is a collection of several computers (nodes) that participate in a blockchain system and communicate peer-to-peer with each other through the Internet, etc.
  • a 'node' may be a computer participating in a blockchain network.
  • a computer encompasses all devices with CPU, memory, communication, and input/output functions, and may specifically include server computers, personal computers (PCs), mobile phone terminals, and small home appliances.
  • Nodes can share and spread information through the blockchain network.
  • a node manages at least one user account. Accounts managed by a node may include the node owner's account (hereinafter referred to as a host account) and an account entrusted with management by another user (hereinafter referred to as a guest account).
  • a node stores all information about the host accounts and guest accounts it manages and transmits it to other nodes on the blockchain network, and can receive the latest information about the host accounts and guest accounts managed by each node from other nodes. You can.
  • 'account' refers to a user account participating in a blockchain and may be a data structure representing one user.
  • An account can add information to the blockchain system by issuing transactions, and can be a linked list of transactions issued by a user.
  • a transaction can be a unit of data that a user adds to the system.
  • An account can own a node and directly manage its own transaction information, and this account can be called a host account.
  • the account can entrust transaction information to another user's node for management.
  • This account can be called a guest account, and the node entrusted with account management can be called a entrusted node.
  • the identity of the node and account can be verified using an encryption key, and transactions can be signed with the same encryption key.
  • a guest account can operate a node on its own and become a host account or change the entrusted node.
  • a host account can also select a entrusted node and become a guest account.
  • a 'transaction' is a unit of information added to the blockchain, and can be issued independently by one account.
  • the content of a transaction is nominally random information provided by the user, but may actually be a meaningful message within the system.
  • the transaction may include messages such as 'Account A sent 100 coins to Account B', 'Account B received 100 coins from Account A', etc.
  • the serial number of the transaction starts from 0. As a positive integer, it increases by 1 for each transaction, and the technology for Account-Wise Transaction Chain (AWTC), which manages the ledger for each account, is a Korean open patent. It can be understood by referring to the contents described in No. 2021-0015196.
  • AWTC Account-Wise Transaction Chain
  • a 'block' may be a signed list of transactions added to a shard or blockchain network during a specific period of time.
  • Blocks can be created by signing the transaction list generated through the consensus algorithm. Only one block can be created at a time, and a blockchain can be formed by adding new blocks to the existing block list.
  • a 'shard' may be a collection of nodes participating in a blockchain network.
  • the entire blockchain network can be divided into at least two or more shards. If there is no division, all nodes are considered to participate in one shard, and each shard has a unique address.
  • a blockchain network that applies the sharding technique performs peer-to-peer communication between nodes belonging to the same shard, and shares the account-specific transaction chain (AWTC) of all accounts belonging to the same shard.
  • AWTC account-specific transaction chain
  • every account can have one working shard and one home shard.
  • the working shard and home shard of any account may be the same or different.
  • the 'home shard' of an account can be calculated based on a function that uses the address of the account and the total number of shards as parameters.
  • the 'working shard' of an account is a shard to which the account currently operates and may be a typical shard. In other words, in a blockchain network that applies the typical shard technique, shards communicate peer-to-peer with each other between the same nodes, and the ledger of all accounts belonging to the same shard is shared.
  • working shards communicate peer-to-peer with each other between the same nodes, and the account-specific transaction chain (AWTC) of all accounts belonging to the same working shard can be shared.
  • AWTC account-specific transaction chain
  • the nodes that have the shard as a working shard are split into two. That is, some nodes remain in the shard before the split, but other nodes move to the new shard.
  • the working shards of all accounts (host account and guest account) managed by each node are moved simultaneously.
  • Each shard can have a set of accounts that have the shard as a home shard and a set of accounts that have the shard as a working shard.
  • the accounts that make up the blockchain network must each belong to one home shard and one working shard.
  • Home shards and working shards may be the same or different.
  • a node can change its working shard from one working shard to another, and when a node changes a working shard, the host account and guest account managed by the node can change the working shard at the same time.
  • all nodes belonging to the blockchain network include the dynamic sharding system, shard splitting conditions, the address of the new shard (hereinafter referred to as new shard), the address of the split shard (hereinafter referred to as split shard), and the existing shard.
  • new shard the address of the new shard
  • split shard the address of the split shard
  • the existing shard Nodes remaining in a shard and nodes moving to a new shard can be calculated.
  • nodes belonging to a split shard are split into two. One of the shards divided into two maintains the same address as the split shard (this is called an old shard), and the other shard is a new shard and can be given a new address.
  • Nodes belonging to a split shard are divided into nodes that remain in the old shard and nodes that move to the new shard.
  • a split account refers to an account that has a split shard as a working shard
  • a split shard node refers to a node that belongs to a split shard and manages the split account.
  • the node is divided into two based on the split nodes, and the accounts managed by the node are split all at once. After shard splitting, the working shard of the split account may be maintained as an old shard or changed to a new shard.
  • an account whose working shard has been changed to a new shard is called a new shard account
  • a node whose working shard has been changed to a new shard among split shard nodes is called a new shard node.
  • the account whose working shard remains in the old shard is called an old shard account
  • the node whose working shard remains in the old shard is called an old shard node.
  • the old shard node deletes the account-specific transaction chain (AWTC) of the new shard account and only manages information about the old shard account
  • the new shard node deletes the account-specific transaction chain (AWTC) of the old shard account and manages information about the old shard account.
  • AWTC account-specific transaction chain
  • Manage information about a node belonging to the home shard of the new shard account (hereinafter referred to as the home shard node of the new shard account) can change the working shard information of the new shard account stored in the account directory from old shard to new shard.
  • all shards that make up the blockchain network can have addresses.
  • the address of a shard may be a value given in the order in which the shard was created in the network.
  • the highest value of the shard address that makes up the blockchain network may be a value based on the total number of shards.
  • the address of the new shard may be ‘highest value of the shard address in the current network + 1’.
  • shard division is not a physical division, but may mean an operation of making some of the nodes belonging to the divided shard belong to the old shard and the rest to belong to the new shard.
  • all nodes belonging to the split shard communicate peer-to-peer and share the account-specific transaction chain (AWTC) of all accounts belonging to the split shard.
  • AWTC account-specific transaction chain
  • the split shard is divided into old shards and new shards, only the nodes assigned to the old shard share the account-specific transaction chain (nodes assigned to the old shard share the account-specific transaction chain of the nodes assigned to the new shard). does not share), and only the nodes assigned to the new shard share the account-specific transaction chain (nodes assigned to the new shard do not share the account-specific transaction chain of the nodes assigned to the old shard).
  • 'peer-to-peer communication' in blockchain networks and shards means that when a random node receives some information, it copies the received information and transmits it to other nodes, and the received node also copies the information to other nodes. This may mean that all nodes belonging to the blockchain network and shard share the information after a sufficient period of time by repeating the process of transmitting to the nodes.
  • 'round' may be a unit of time of the sum.
  • a transaction shared in a previous round may be the subject of agreement in the current round.
  • the 'neighbor shard' of any shard may be a shard with an address whose bit distance from the address of the corresponding shard is 1.
  • a bit distance of 1 means that only one digit value is different when comparing two arbitrary binary values digit by digit. For example, for the binary value '0101', the binary value that differs only in the 1st digit is '0100', the binary value that differs only in the 2nd digit is '0111', the binary value that differs in only the 3rd digit is '0001', and 4 The binary value that differs only in the second digit is '1101'.
  • the binary value '0101', the binary value '0100', the binary value '0111', the binary value '0001', and the binary value '1101' are all binary values that differ by only one place value.
  • a binary value that differs by only one place value from a random binary value is defined as having a bit distance of 1
  • a shard having an address with a bit distance of 1 from the address of a random shard is defined as a neighboring shard.
  • the old shard and the new shard divided from the split shard may be neighboring shards whose addresses have a bit distance of 1.
  • Figure 1 is a conceptual diagram of a blockchain network divided into three shards of the present invention.
  • the multiple nodes that make up the blockchain network can be divided into three shards (110, 120, and 130), but it is not limited to this.
  • the number of shards can increase as the number of nodes and accounts that make up the blockchain network increases, and in this case, one shard can be split into two.
  • Each shard (110, 120, 130) may be a working shard of nodes currently belonging to the shard. Currently, all nodes belonging to a working shard can share the same information.
  • Each node has an intra-shard communication node list that stores information on P2P communication targets (intra-shard communication nodes) among nodes within the working shard, and an inter-shard that stores information on peer-to-peer communication targets (inter-shard communication nodes) among nodes outside the working shard. May include a communication node list.
  • the intra-shard communication node that is the communication target within the working shard of each node can be determined according to kademlia rules.
  • the inter-shard communication node that is the communication target can be randomly determined to be some of the nodes belonging to neighboring shards.
  • Intra-shard communication nodes and inter-shard communication nodes included in the intra-shard communication node list and inter-shard communication node list assigned to each node can be randomly reconfigured.
  • nodes 111, 121, and 131 that communicate with nodes within the working shard are indicated as unhatched circles, and nodes 112, 122, and 132 that communicate with nodes other than the working shard are hatched. It is indicated by a circular shape.
  • Nodes 112, 122, and 132 that communicate with nodes other than the working shard can communicate with nodes belonging to neighboring shards based on the inter-shard communication node list.
  • the neighboring shard may be a shard whose bit distance of the shard address is 1.
  • a bit distance of 1 may mean that the shard address differs by only one bit value. That is, addresses with a bit distance of 1 from address '00' can be '01' and '10'.
  • the first shard 130 is The addresses of (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 '01', respectively.
  • the bit distance is 10', but the addresses of the second shard 110 and the third shard 130 are '01' and '10', respectively, and the bit distance is not 1 because the two place values are different.
  • the first shard 110 and the second shard 120 are neighboring shards
  • the first shard 110 and the third shard 130 are neighboring shards and can communicate directly.
  • the second shard 120 and the third shard 130 cannot communicate directly because they are not neighboring shards, and can communicate through the first shard 110, which is a neighboring shard.
  • Each node in Figure 1 includes a shard rebalancing algorithm, and the shard rebalancing algorithm can be executed according to preset conditions.
  • the shard rebalancing algorithm may use the Bounded Cuckoo algorithm, but is not limited to this.
  • the Bounded Cuckoo algorithm is described in detail in the RapidChain introduction material (see RapidChain: Scaling Blockchain via Full Sharding, https :/ eprint . iacr . org /2018/460. pdf ).
  • the present invention calculates the health index of the shards based on the Bounded Cuckoo algorithm, classifies them into strong shards and weak shards, and periodically extracts some nodes randomly from the strong shards to determine the weak shards. It can be moved to .
  • nodes to change working shards are randomly selected, and the working shards of the nodes may be reallocated and changed.
  • the working shard can be randomly changed to a split shard among nodes belonging to shards other than the split shard.
  • the node can perform the working shard change procedure for all host accounts and guest accounts it manages.
  • nodes can also perform individual working shard change procedures for host accounts and guest accounts that they manage. For example, if a guest account that the node manages changes the entrusted node, and the changed entrusted node belongs to a different working shard, the node can perform the working shard change procedure for the guest account. Alternatively, when a third account managed by a node belonging to another working shard is newly entrusted to be managed, the working shard change procedure for the third account can be performed.
  • FIG. 2 is a block diagram showing an exemplary configuration of a node 200 including the dynamic sharding system of the present invention.
  • Each node may be implemented as a computer device.
  • the various devices and/or components of node 200 may include distributed computer resources 250 that can communicate with each other and external devices over one or more networks 260.
  • distributed computer resources 250 may include devices 250(1) - 250(N).
  • Embodiments of the present invention allow distributed computer resources 250 to operate in a cluster or other grouped configuration, which may include one or more computer devices to share resources, distribute load, increase performance, or for other purposes. Supports scenarios.
  • Distributed computer resources 250 may fall into various categories, such as traditional server-like devices, desktop computer-like devices, mobile devices, special-purpose devices, embedded devices, and/or wearable devices. Accordingly, although illustrated as desktop and laptop computers, distributed computer resources 250 may include a variety of device types and are not limited to a particular type of device. Distributed computer resources 250 may include desktop computers, server computers, web server computers, personal computers, mobile computers, laptop computers, tablet computers, wearable computers, implantable computers, communication devices, automotive computers, network-enabled televisions, thin clients, and terminals. , may be an integrated component for inclusion in a PDA, game console, gaming device, workstation, media player, personal video recorder (PVR), set-top box, camera, or computer device.
  • PDA personal video recorder
  • Node 200 may be a single computer device that is a distributed computer resource 250.
  • Node 200 may include any type of computer device having one or more processing units 202 operably coupled to a computer readable media (CRM) 204 via bus 240; , and in some cases may include one or more of these.
  • These buses 240 may include system buses, data buses, address buses, PCI buses, mini PCI buses, and various local, peripheral, and/or independent buses.
  • processing unit 202 may be, for example, a CPU-type processing unit, a GPU-type processing unit, a field programmable gate array (FPGA), a digital signal processor (DSP), or other hardware that may be driven by a CPU. It may include a processing unit 202 representing logic components.
  • FPGA field programmable gate array
  • DSP digital signal processor
  • these hardware logic components include application-specific integrated circuits (ASICs), application-specific standard products (ASPs), system-on-a-chip (SOC) systems, and complex programmable logic devices (CPLDs). It can be included.
  • the CRM 204 includes an external processing unit 208 such as an external CPU type processing unit 206, an external GPU type processing unit 208, and/or an FPGA type accelerator 210(1), a DSP type accelerator ( Commands executable by an external accelerator 210, such as 210(2)) or other accelerator 210(N), may be stored.
  • CRM 204 described herein may include computer storage media and/or communication media.
  • Computer storage media refers to types of memory, such as volatile memory, non-volatile memory, and/or other permanent or secondary computer storage media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data. storage units, and may include removable and non-removable computer storage media.
  • Computer storage media includes RAM, static RAM (SRAM), dynamic RAM (DRAM), phase-change memory (PRAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), and electrically erasable programmable read-only memory. It may be memory (EEPROM), flash memory, DVD, optical storage media, magnetic cassette, magnetic tape, solid state memory (SSD), etc.
  • Executable instructions stored in CRM 204 may include operating system 220 and other modules, programs, or applications that are loadable and executable by processing unit 202.
  • the functionality described herein may be performed, at least in part, by one or more hardware logic components, such as an accelerator.
  • example types of hardware logic components include Field-programmable Gate Arrays (FPGAs), Application-Specific Integrated Circuits (ASICs), Application-Specific Standard Products (ASSPs), and System-on-a chip systems. (SOC), Complex Programmable Logic Device (CPLD), etc.
  • the accelerator could be a hybrid device from XILINX or ALTERA that includes a CPU embedded in an FPGA fabric.
  • CRM 204 may also include data store 212.
  • data store 212 may include a data store, such as a database, data warehouse, or other type of structured or unstructured data store.
  • data store 212 may include one or more hypertext markup language (HTML) tables, resource description framework (RDF) tables, Web Ontology Language (OWL) tables, and/or Extensible Markup (XML) tables. It may include a corpus and/or relational database with one or more tables, indexes, stored procedures, etc. that enable data access, such as web tables containing Language) tables.
  • HTML hypertext markup language
  • RDF resource description framework
  • OWL Web Ontology Language
  • XML Extensible Markup
  • It may include a corpus and/or relational database with one or more tables, indexes, stored procedures, etc. that enable data access, such as web tables containing Language) tables.
  • data store 212 may store data and/or instructions for the operation of processes, applications, components and/or modules stored in CRM 204 and executed by processing unit 202.
  • the node 200 may further include one or more input/output (I/O) interfaces 216, where the node 200 can connect peripheral input devices (e.g. For example, it can communicate with user input devices, including keyboards, mice, pens, game controllers, voice input devices, touch input devices, gesture input devices, cameras, etc., and peripheral output devices (e.g. displays, printers, etc.). It may be an I/O interface 216 that allows communication with an input/output device.
  • I/O interface 216 that allows communication with an input/output device.
  • node 200 may be a node in a blockchain network and one or more input/output (I/O) networks that enable node 200 to communicate with other nodes in the blockchain network via network 260. It may further include an interface 218.
  • I/O input/output
  • Such 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 data over network 260.
  • NICs network interface controllers
  • Network 260 may include a public network such as the Internet, a private network such as an institutional and/or private intranet, or some combination of private and public networks.
  • Network 260 may 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, and a WiMax network. It may include a mobile communication network (e.g., 3G, 4G, 5G, etc.) or any combination thereof.
  • Network 260 may utilize communication protocols, 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. there is.
  • IP Internet Protocol
  • TCP Transmission Control Protocol
  • UDP User Datagram Protocol
  • network 260 may include a number of devices that facilitate network communications or form the hardware infrastructure for the network, such as switches, routers, gateways, access points, firewalls, base stations, repeaters, and backbone devices.
  • network 260 may further include devices that enable connection to a wireless network, such as a wireless access point (WAP).
  • WAP wireless access point
  • Embodiments according to the present invention include WAPs that support the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standard (e.g., 802.11g, 802.11n, etc.) via various electromagnetic frequencies (e.g., radio frequencies). It can support connection through WAP for sending and receiving data.
  • IEEE Institute of Electrical and Electronics Engineers
  • CRM 204 may include an operating system 220 and a dynamic sharding system 222.
  • Dynamic sharding system 222 may include one or more modules and/or APIs shown as blocks 224, 226, 228, 230, and 232, but these are examples only and the number may be more or less.
  • the functions described with respect to each block 224, 226, 228, 230, 232 may be combined to be performed by fewer modules and/or APIs or may be performed by a larger number of modules and/or APIs. It can be divided and performed by.
  • some or all of the operating system, data stored in the data store, and the dynamic sharding system may include memory 214 on the processing unit 202, memory 236(1) on the CPU-type processing unit 206, and GPU-type memory 214 on the processing unit 206.
  • Memory 236(2) on processing unit 208, memory 236(3) on FPGA-type accelerator 210(1), memory 236(4) on DSP-type accelerator 210(2), and /or may be stored in a separate memory 236, such as memory 236(M) on another accelerator 210(N).
  • the dynamic sharding system 222 may include a shard addition determination module 224, a new shard address calculation module 226, a split shard calculation module 228, a node distribution module 230, and an account processing module 232. there is.
  • the node distribution system of the present invention may refer to the node distribution module 230. All nodes that make up the blockchain network include a dynamic sharding system.
  • the dynamic sharding system to which the present invention is applied can be understood by referring to Republic of Korea Application No. 2022-0102456, 'Dynamic sharding system and method in a blockchain network' filed by the applicant of the present invention.
  • the shard addition determination module 224 may compare the traffic volume of the blockchain network or affiliated working shard with a preset standard value, and determine that a shard should be added if the traffic volume exceeds the standard value. The shard addition determination module 224 can determine whether to add a shard based on the number of nodes belonging to the shard and the number of accounts.
  • the new shard address calculation module 226 can calculate the address of a new shard based on the number of shards currently included in the network.
  • the new shard address may be ‘the highest value of the shard address in the current network + 1’. All nodes included in the network can calculate new shard address information by running the new shard address calculation module 226.
  • the split shard calculation module 228 can calculate the split shard address divided into new shards based on the new shard address. New shards and split shards can be neighboring shards with a bit distance of 1. The split shard calculation module 228 can calculate the split shard address by replacing the 1 of the most significant set bit (MSSB) set to 0 in the binary value of the new shard address with 0.
  • MSSB most significant set bit
  • the node distribution module 230 may assign some of the nodes that have split shards as working shards to old shards, and assign the rest to new shards.
  • the node distribution module 230 may assign nodes to each shard so that the stake, number of nodes, and vote count of the two shards are similar after shard division.
  • the node distribution module 230 included in the split shard node belonging to the split shard virtually arranges the split shard nodes in an n-dimensional sphere (n is the number of partition parameters), and divides the split shard nodes placed in the n-dimensional sphere into 2
  • the partitioning equation for separation into groups is derived, and the information for placing the split shard nodes in an n-dimensional sphere and the partitioning equation information are shared with nodes belonging to the non-partitioned shard (hereinafter referred to as non-partitioned shard nodes).
  • the node distribution module 230 included in the non-split shard node divides the old shard nodes and new shards assigned to the old shard among the split shard nodes based on the information for placing the split shard nodes in an n-dimensional sphere and the partition equation information. New shard nodes assigned to can be calculated.
  • the account processing module 232 manages the transaction chain and account directory for each account managed by the node according to the node's shard allocation results. For example, old shard nodes delete the account-specific transaction chain (AWTC) of the new shard account, new shard nodes delete the account-specific transaction chain (AWTC) of the old shard account, and home shard nodes of the new shard account delete the account transaction chain (AWTC). In the directory, change the working shard information of the split account from split shard (old shard) to new shard.
  • AWTC account-specific transaction chain
  • AWTC account-specific transaction chain
  • Figure 3 is a diagram showing information stored in the data storage 300 in the blockchain network of the present invention.
  • the account-specific transaction chain (AWTC) (302, 304, 306, 308) of all accounts belonging to the node's working shard, and the working shard history of accounts that have the node's working shard as their home shard.
  • AWTC account-specific transaction chain
  • An account directory 310 that stores information
  • a round state chain 312 that combines account-specific transactions of all accounts belonging to the working shard and stores the round state block agreed upon among all nodes belonging to the working shard as a chain
  • a block World Round State Chain (314) which combines all Round State blocks belonging to the chain network and stores the agreed upon World Round State blocks as a chain
  • Intra-Shard Communication Node List (316) which stores communication target node information within the node's working shard.
  • an inter-shard communication node list 318 that stores communication target node information other than the node's working shard may be stored.
  • the account directory 310 stores working shard history information of accounts that have a node's working shard as their home shard.
  • each node manages only one account, that is, the host account. Therefore, in this example, node may have the same concept as account.
  • the account directories of node 121 and node 122 with the second shard 120 as the working shard First shard 110 information is stored as working shard information of the node 111 management account. Meanwhile, in the example of FIG.
  • the node is registered in the account directories of node 131 and node 132 with the third shard as the working shard.
  • the first shard (110) information is stored as the working shard information of the management account.
  • nodes and accounts can change working shards.
  • the working shard change module is run, and the changed working shard information can be updated in the nodes belonging to the home shard of the corresponding account.
  • the latest working shard address of the account is updated in the account directory of the nodes belonging to the home shard of any account by the working shard change module.
  • Figure 4 is a configuration diagram illustrating a node distribution system 400 running on split shard nodes according to an embodiment of the present invention.
  • the node distribution system 400 running on these split shard nodes may be implemented by the node's computer system and may be part of the node distribution module 230 of FIG. 2.
  • the node distribution system 400 which runs on the split shard nodes of the present invention, determines the split parameters and seed values and divides the split shard nodes into n dimensions (n is the split parameter) based on the address information and seed values of the split shard nodes.
  • a node placement unit 402 that virtually arranges on the surface of the sphere, and a center of gravity derivation unit (402) that derives n center of gravity points in an n-dimensional sphere by applying the split parameter characteristic values of each split shard node for each split parameter ( 404), a partition equation derivation unit 406 that derives a partition equation including n center points, and a post-split shard allocation unit 408 that allocates shards after the split shard nodes based on the partition equation, It includes a split equation sharing unit 410 that shares seed values and split equations.
  • the node placement unit 402 may derive a pseudo-random value based on the address information and seed value of the split shard nodes, and virtually arrange the split shard nodes on the surface of the n-dimensional sphere based on the derived pseudo-random value.
  • Splitting parameters may include stake and vote count, and other splitting parameters may further include the number of nodes. Splitting parameters may have different values for each split shard node. If the splitting parameters are stake amount and vote count, n is 2, and if the splitting parameters include the number of nodes, n is 3.
  • the split shard nodes can be placed on the surface (i.e., circumference) of a two-dimensional sphere (i.e., a circle), and when the splitting parameter is three, the split shard nodes can be placed on the surface (i.e., circumference) of a three-dimensional sphere (i.e., a sphere).
  • Split shard nodes can be placed on the sphere surface.
  • the node arrangement unit 402 can determine the location on the surface of the n-dimensional sphere using the result obtained by multiplying the addresses of the split shard nodes and the seed value. For example, if the split parameter is 2, the split shard nodes are placed on the surface (circumference) of a two-dimensional sphere (circle), which corresponds to a one-dimensional line space of 0 degrees to 360 degrees. Therefore, by using some bit values of the pseudo-random value derived by multiplying the address of the split shard node and the seed value, the location of the corresponding split shard node on the circumference can be determined.
  • the splitting parameter is 3
  • the split shard nodes are placed on the surface of a 3-dimensional sphere, which corresponds to a 2-dimensional flat space. Therefore, by using the two groups of bit values selected from the pseudo-random values derived by multiplying the address of the split shard node and the seed value as the latitude and longitude values, the location of the split shard node on the surface of the three-dimensional sphere can be determined.
  • the seed value is a value for randomly arranging split shard nodes on the surface of an n-dimensional sphere, and can be determined randomly. This seed value may be changed to another value depending on the distribution of n center points, which will be described later.
  • the center of gravity derivation unit 404 applies the split parameter value of each split shard node to obtain the center of gravity in the n-dimensional sphere.
  • split shard nodes are placed on the circumference of a two-dimensional sphere (circle).
  • the stake amount and vote count value of each split shard node may be different as characteristic values of each split shard node.
  • the center of gravity in the two-dimensional sphere (circle) is obtained based on the stake amount of the split shard nodes, and the center of gravity in the two-dimensional sphere (circle) is obtained based on the boat count values of the split shard nodes. In this way, two center points of gravity can be obtained from a two-dimensional sphere (circle) based on the division parameter values. If the two centers of gravity coincide, the arrangement of the split shard nodes can be changed by changing the seed value.
  • the center of gravity derivation unit 404 can derive three center of gravity points, one for each division parameter.
  • the partition equation deriving unit 406 derives a partition equation passing through n center points.
  • the division equation can use the equation of a straight line, plane, or hyperplane passing through n centers of gravity. For example, if there are two division parameters, two center of gravity points are derived within a two-dimensional sphere (circle), and the equation of a one-dimensional straight line passing through the two center points can be derived and used as the division equation.
  • the shard allocation unit 408 divides the divided shard nodes arranged on the surface of the n-dimensional sphere using a division equation and assigns each divided group to an old shard or a new shard.
  • split shard nodes are assigned to old shards or new shards, all accounts managed by the split shard nodes are assigned to the same shard.
  • one random bit value (highest level) of the pseudo-random value derived from the address and seed value of the split shard node Bit or least significant bit) can be used to assign shards after division.
  • the partition equation sharing unit 410 shares the seed value for arranging the partitioned shard nodes on the surface of the n-dimensional sphere and the coefficient and constant values of the variable terms of the partition equation with the non-partitioned shard nodes.
  • the account processing module 232 running on the old shard node processes the account-specific transaction chain (AWTC) of the new shard account managed by the new shard node. Delete and manage only the account-specific transaction chain (AWTC) of the old shard account. Additionally, the account processing module 232 running on the new shard node deletes the account-specific transaction chain (AWTC) of the old shard account managed by the old shard node and manages only the account-specific transaction chain (AWTC) of the new shard account.
  • AWTC account-specific transaction chain
  • Figure 5 is a configuration diagram illustrating a node distribution system 500 running on non-partitioned shard nodes according to an embodiment of the present invention.
  • the node distribution system 500 running on these non-split shard nodes may be implemented by the node's computer system and may be part of the node distribution module 230 of FIG. 2.
  • This non-split shard node may include a node belonging to the home shard of the new shard account (home shard node of the new shard account).
  • the node distribution system 500 which runs on the non-split shard nodes of the present invention, shares the seed value for placing the split shard nodes on the surface of the n-dimensional sphere from the split shard node, and the coefficient value and constant value of the variable term of the partition equation.
  • a split equation sharing unit 502 that receives the split shard nodes, a node placement unit 504 that virtually arranges the split shard nodes on the surface of the n-dimensional sphere based on the address information and seed values of the split shard nodes, and a split equation on the n-dimensional sphere. It includes a partition equation application unit 506 that applies the split shard nodes to be split into two groups, and a shard allocation confirmation unit 508 that checks the shards assigned to the two groups of split shard nodes.
  • the split equation sharing unit 502 receives a seed value for arranging split shard nodes on the surface of an n-dimensional sphere, and the coefficient and constant values of the variable terms of the split equation from the split shard node.
  • a seed value for arranging split shard nodes on the surface of an n-dimensional sphere and the coefficient and constant values of the variable terms of the split equation from the split shard node.
  • the node placement unit 504 may derive a pseudo-random value based on the address information and seed value of the split shard nodes, and virtually place the split shard nodes on the surface of the n-dimensional sphere based on the derived pseudo-random value.
  • the node arrangement unit 504 may be the same as the node arrangement unit 402 performed in the split shard node of FIG. 4. In other words, the location on the surface of the n-dimensional sphere can be determined using the result obtained by multiplying the addresses of the split shard nodes and the seed value.
  • split shard nodes can be placed on the surface (circumference) of a 2-dimensional sphere (circle), and if the split parameter is 3, split shard nodes can be placed on the surface of a 3-dimensional sphere. .
  • the split equation application unit 506 splits the n-dimensional sphere using the split equation so that the split shard nodes placed on the surface of the n-dimensional sphere are separated into two groups by the split equation.
  • the shard assignment confirmation unit 508 checks the results of assignment of split shard nodes in two groups to old shards or new shards for each group. When split shard nodes are assigned to old shards or new shards, all accounts managed by the split shard nodes are assigned to the same shard.
  • one random bit value (highest level) of the pseudo-random value derived from the address and seed value of the split shard node bit or least significant bit) can be used to allocate shards after splitting, and the shard allocation confirmation unit 508 can check the shard allocation result after splitting of the split shard node in the splitting equation based on preset rules.
  • the account processing module 232 performed on the home shard node of the new shard account divides the working shard information of the new shard account stored in the account directory into a split shard (old shard). Change the address to New Shard address.
  • FIG. 6 is an operation flowchart illustrating a node distribution method in a split shard node during dynamic sharding according to an embodiment of the present invention
  • FIG. 7 is a flowchart of dividing the split shard nodes into two groups in a split shard node according to an embodiment of the present invention. This is an example diagram showing the division process.
  • Figure 7 shows the process of dividing split shard nodes into two groups when the split parameter is two.
  • a process is depicted as a logical flow of blocks, each block representing one or more operations that may be implemented in hardware, software, or a combination thereof.
  • operations represent computer-executable instructions stored on one or more computer-readable media that, when executed by one or more processors, enable one or more processors to perform the recited operations.
  • computer executable instructions include routines, programs, objects, modules, components, data structures, things that perform a particular function or implement a particular abstract data type.
  • the order in which operations are described should not be construed as limiting, and the number of operations described may be performed in any order, subdivided into multiple sub-operations, or executed in parallel.
  • the split shard node derives a pseudo-random value based on the address information and seed value of the split shard nodes, and divides the shard on the surface 700 of an n-dimensional sphere (n is 2, a circle) based on the derived pseudo-random value.
  • Nodes 702 may be placed (S602).
  • Splitting parameters may include stake and vote count.
  • the seed value is a value for randomly arranging split shard nodes on the surface of an n-dimensional sphere, and can be determined randomly.
  • the split shard node applies the split parameter value of each split shard node to obtain the center of gravity in the n-dimensional sphere (S604).
  • Figure 7(b) shows the first center of gravity 704 derived based on the characteristic values of the first division parameters of each divided shard node.
  • the size of the circle in (b) of FIG. 7 means the size of the first split parameter characteristic value of each split shard node.
  • Figure 7(c) shows the second center of gravity 706 derived based on the characteristic values of the second split parameters of each split shard node.
  • the split shard node calculates a split equation 708 that passes through all n center points 704 and 706 (S606).
  • a split equation 708 that passes through all n center points 704 and 706 (S606).
  • two center of gravity points are derived within a two-dimensional sphere (circle), and the division equation of a one-dimensional straight line passing through the two center points can be derived.
  • the partition equation 708 of a one - dimensional straight line in two-dimensional XY space can be expressed as A 1
  • three center of gravity points can be derived within a three-dimensional sphere, and a division equation for a two-dimensional plane passing through the three center points can be derived.
  • the partition equation of a two - dimensional plane in three -dimensional XYZ space can be expressed as A 1 You can.
  • the split shard node divides the split shard nodes placed on the surface of the n-dimensional sphere using a split equation and assigns each divided group to an old shard or a new shard (S608).
  • S608 a new shard
  • the split shard node shares the seed value for arranging the split shard nodes on the surface of the n-dimensional sphere and the coefficient and constant values of the variable terms of the split equation with the non-split shard node (S610).
  • FIG. 8 is an operation flowchart showing a node distribution method in a non-split shard node during dynamic sharding according to an embodiment of the present invention
  • FIG. 9 is an operation flowchart showing a method of distributing nodes in a non-split shard node according to an embodiment of the present invention.
  • This is an example diagram showing the process of dividing into two groups.
  • Figure 9 shows the process of dividing split shard nodes into two groups when there are two split parameters as shown in Figure 7.
  • the non-split shard node shares the seed value for placing the split shard nodes on the surface of the n-dimensional sphere and the coefficient value and constant value of the variable term of the partition equation from the split shard node (S802).
  • the non-split shard node derives a pseudo-random value based on the address information and seed value of the split shard nodes, and divides the shard nodes on the surface 900 of an n-dimensional sphere (2-dimensional circle) based on the derived pseudo-random value. (902) can be placed virtually (S804). If the split parameter is 2, split shard nodes can be placed on the surface (circumference) of a 2-dimensional sphere (circle), and if the split parameter is 3, split shard nodes can be placed on the surface of a 3-dimensional sphere.
  • the non-split shard node divides the n-dimensional sphere by the partition equation 904 so that the split shard nodes placed on the surface of the n-dimensional sphere are separated into two groups by the partition equation 904 (S806).
  • the non-split shard node checks the results of the split shard nodes in the two groups being assigned to old shards or new shards for each group (S808). When split shard nodes are assigned to old shards or new shards, all accounts managed by the split shard nodes are assigned to the same shard.
  • Embodiments according to the present invention described above may be implemented in the form of program instructions that can be executed through various computer components and recorded on a computer-readable recording medium.
  • a computer-readable recording medium may include program instructions, data files, data structures, etc., singly or in combination.
  • Program instructions recorded on a computer-readable recording medium may be specially designed and configured for the present invention or may be known and usable by those skilled in the computer software field.
  • Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical recording media such as CD-ROMs and DVDs, and magneto-optical media such as floptical disks. media), and hardware devices specifically configured to store and perform program instructions, such as ROM, RAM, flash memory, etc.
  • Examples of program instructions 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 may be configured to operate as one or more software modules to perform processing according to the invention and vice versa.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Mathematical Physics (AREA)

Abstract

The present invention relates to a dynamic sharding system and method, wherein new shards are added in a blockchain network by splitting a single shard in two. A dynamic sharding system running on nodes constituting a blockchain network, according to one embodiment of the present invention, comprises: a shard addition determination module which determines whether it is necessary to add shards; a new shard address calculation module which calculates new shard addresses on the basis of the number of shards currently included in the blockchain network; a split shard calculation module which calculates split shards split into the new shards on the basis of the new shard addresses; and a shard assignment module which assigns some of the nodes belonging to the split shards to old shards and the rest to the new shards.

Description

블록체인 네트워크에서 노드 분배 시스템 및 방법Node distribution system and method in blockchain network
본 발명은 블록체인 네트워크에서 샤드를 둘로 분할하는 다이나믹 샤딩시 분할 샤드에 소속된 노드들을 두 개의 샤드로 공평하게 분배하는 시스템 및 방법에 관한 것이다.The present invention relates to a system and method for fairly distributing nodes belonging to a divided shard into two shards during dynamic sharding, which divides a shard into two in a blockchain network.
블록체인은 기존의 중앙화된 기관이 거래 내용을 단일 위치(single point)에 저장하는 중앙화된 방식을 탈피하고자 등장한 탈중앙화 분산 트랜잭션 관리 기술이다. 블록체인은 P2P(Peer-to-Peer) 통신망에서, 모든 참여자가 합의 알고리즘을 통해서 정해진 공유 원장을 소유함으로써, 기록의 위조 및 변조를 불가능하게 만드는 분산 원장 시스템(Distributed Ledger System)이다. 즉, 분산 원장 시스템은 중앙관리자의 제어없이 각 노드가 분산 환경에서 원장이라는 데이터베이스를 동기화하여 유지하는 시스템이다.Blockchain is a decentralized, distributed transaction management technology that emerged to break away from the centralized method in which existing centralized institutions store transaction details in a single point. Blockchain is a distributed ledger system in a P2P (Peer-to-Peer) communication network where all participants own a shared ledger determined through a consensus algorithm, making forgery and alteration of records impossible. In other words, a distributed ledger system is a system in which each node synchronizes and maintains a database called the ledger in a distributed environment without the control of a central administrator.
블록체인에서 모든 노드가 동기화된 원장을 유지하기 위해서는 네트워크에서 발생하는 모든 트랜잭션과 블록이 저장되어야 한다. 이를 위해 종래에는 블록체인 네트워크의 모든 노드에 플러딩(Flooding) 방식으로 모든 메시지를 전파하였다. 그러나 이는 모든 노드가 모든 메시지를 수신하고 저장해야 한다는 문제, 즉 확장성의 문제를 수반한다.In order for all nodes to maintain a synchronized ledger in a blockchain, all transactions and blocks that occur in the network must be stored. To achieve this, conventionally, all messages were spread to all nodes in the blockchain network using a flooding method. However, this entails the problem that all nodes must receive and store all messages, that is, the problem of scalability.
확장성 문제를 해결하기 위해서, 최근 블록체인 분야에서는 다수의 노드를 다수의 샤드(shard group)에 분배하고, 분배된 각 샤드에 다수의 트랜잭션을 분할하여 병렬로 처리하도록 하는 샤딩(sharding) 방법이 제시되었다. 샤딩은 블록체인 네트워크에서 발생하는 트랜잭션과 블록을 작은 그룹인 샤드 단위로 나누어, 각 샤드에 속한 노드들은 다른 샤드의 트랜잭션과 블록을 처리할 필요없이 자신이 속한 샤드의 트랜잭션과 블록만을 처리하여 전체 네트워크의 트랜잭션 처리량과 분산 원장의 크기를 줄이는 방법이다.To solve the scalability problem, in the recent blockchain field, a sharding method has been used to distribute multiple nodes into multiple shards (shard groups) and split multiple transactions into each distributed shard to process them in parallel. presented. Sharding divides transactions and blocks that occur in a blockchain network into small groups of shards, so the nodes in each shard only process the transactions and blocks of the shard they belong to without having to process transactions and blocks of other shards, thus processing the entire network. It is a method of reducing transaction throughput and the size of the distributed ledger.
그러나, 샤딩 기법을 도입함에 따라 트랜잭션을 검증하기 위한 노드의 개수는 샤드의 수에 대응하여 줄어들게 되기 때문에, 이로 인해 악의적 노드들의 합의 공격에 의해 데이터가 조작될 위험성이 높아지게 되는 문제가 있다. 합의 공격은 블록체인에 대한 공격 유형 중 가장 위험한 공격이다. 블록체인에서 다수의 노드를 포함하는 검증 커미티(committee)는 기본적으로 커미티 다수의 합의를 통해 블록을 검증하며, 합의에 도달하지 못한 블록은 선택에서 제외되어 체인에서 분리된다. 특정 블록에 대해 합의에 도달하기 위해서는 네트워크를 구성하는 전체 노드들 중 임계치 이상의 일정수의 노드가 합의해야 한다.However, with the introduction of the sharding technique, the number of nodes to verify transactions decreases in response to the number of shards, which increases the risk of data being manipulated by consensus attacks by malicious nodes. Consensus attacks are the most dangerous type of attack on blockchain. In a blockchain, a verification committee that includes multiple nodes basically verifies blocks through the consensus of the majority of the committee, and blocks that do not reach consensus are excluded from selection and separated from the chain. In order to reach consensus on a specific block, a certain number of nodes above a threshold among all nodes constituting the network must agree.
일반적인 블록체인에서는 수만 내지 수십만의 노드가 검증 커미티에 포함되므로 악의적 노드의 수가 임계치 이상의 일정수를 차지하는 것은 현실적으로 불가능하다. 그러나 샤딩 기법이 도입되면, 샤드마다 트랜잭션의 빈도, 노드의 수, 밸리데이터의 비율 등에서 차이가 나기 때문에, 시간이 지나면서 샤드간 불균형이 일어나서 일부 샤드의 안정성이 취약해지는 문제가 발생할 수 있다. 즉, 일부 샤드에서 악의적 노드의 수가 임계치 이상의 일정수를 차지하게 되는 경우가 발생될 수 있으며, 이렇게 악의적 노드의 수가 임계치 이상의 일정수를 차지하게 되는 경우, 거짓 블록이 체인에 연결될 위험이 있다. 샤딩 기법을 적용하면, 공격자가 포섭해야 하는 노드의 개수가 줄어들어, 보다 용이하게 임계치 이상의 일정수의 노드를 포섭할 수 있으며, 이로 인해 거짓 블록이 체인에 연결될 위험이 높아진다. In a typical blockchain, tens to hundreds of thousands of nodes are included in the verification committee, so it is realistically impossible for the number of malicious nodes to occupy a certain number above the threshold. However, when the sharding technique is introduced, since each shard has differences in transaction frequency, number of nodes, and validator ratio, an imbalance between shards may occur over time, which may cause the stability of some shards to become vulnerable. In other words, there may be cases where the number of malicious nodes in some shards occupies a certain number above the threshold, and if the number of malicious nodes occupies a certain number above the threshold, there is a risk that false blocks will be connected to the chain. Applying the sharding technique reduces the number of nodes that an attacker must capture, making it easier to capture a certain number of nodes above the threshold, which increases the risk of false blocks being connected to the chain.
한편, 샤드를 구성하는 어카운트 및 노드의 개수가 많아지면, 노드간 트래픽 량이 증가하게 되며, 이로 인해 트랜잭션의 처리 속도가 느려지게 된다. 따라서, 블록체인 네트워크의 전체 트래픽 량이 많아질 경우, 샤드의 개수를 늘릴 필요가 있다. 본 발명의 출원인은 블록체인 네트워크의 트래픽 량에 따라 샤드의 개수를 늘리는 기술을 다이나믹 샤딩 기술로 제안한다.Meanwhile, as the number of accounts and nodes constituting a shard increases, the amount of traffic between nodes increases, which slows down the transaction processing speed. Therefore, if the total traffic volume of the blockchain network increases, it is necessary to increase the number of shards. The applicant of the present invention proposes a technology that increases the number of shards according to the traffic volume of the blockchain network as dynamic sharding technology.
다이나믹 샤딩이라 함은 하나의 샤드를 둘로 나누는 것을 의미하며, 하나의 샤드를 둘로 나눈다 함은 샤드에 소속된 노드들을 두 개의 샤드로 나누어 분배하는 것을 의미한다. 따라서, 다이나믹 샤딩시에 분할되는 샤드(이하, 분할 샤드라 함)에 소속된 노드들을 비교적 공평하게 둘로 분배하는 기술이 필요하다.Dynamic sharding means dividing one shard into two, and dividing one shard into two means dividing and distributing the nodes belonging to the shard into two shards. Therefore, a technology is needed to relatively fairly distribute the nodes belonging to the shard (hereinafter referred to as split shard) divided into two during dynamic sharding.
본 발명의 목적은 상기와 같은 필요성을 충족시키기 위한 것으로서, 블록체인 네트워크에서 하나의 샤드를 둘로 분할하여 새로운 샤드를 추가하는 다이나믹 샤딩시, 분할 샤드에 소속된 노드들을 공평하게 두 개의 샤드로 분배하는 시스템 및 방법을 제공하기 위한 것이다.The purpose of the present invention is to meet the above-mentioned need. In the case of dynamic sharding, which splits one shard into two and adds a new shard in a blockchain network, the nodes belonging to the split shard are distributed fairly into two shards. It is intended to provide a system and method.
본 발명은 장치(시스템), 방법, 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램 또는 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능 매체를 포함한 다양한 방식으로 구현될 수 있다.The present invention can be implemented in various ways, including a device (system), a method, a computer program stored in a computer-readable medium, or a computer-readable medium on which the computer program is stored.
본 발명의 일 실시예에 따른, 블록체인 네트워크를 구성하는 분할 샤드 노드에서 구동하는 노드 분배 시스템은, 분할 샤드 노드들을 n차원(n은 분할 파라미터의 개수) 구의 표면에 가상으로 배치하는 노드 배치부; 분할 파라미터별로 각각의 분할 샤드 노드의 분할 파라미터 특성값을 이용하여 n차원 구에서의 n개의 무게중심점을 도출하는 무게중심점 도출부; n개의 무게중심점을 지나가는 분할 방정식을 도출하는 분할 방정식 도출부; 분할 방정식을 기반으로 분할 샤드 노드들의 분할후 샤드를 배정하는 분할후 샤드 배정부; 및 분할 샤드 노드들을 n차원 구의 표면에 배치하기 위한 정보와 분할 방정식을 비분할 샤드 노드에게 공유하는 분할 방정식 공유부를 포함한다.According to an embodiment of the present invention, a node distribution system running on split shard nodes constituting a blockchain network includes a node placement unit that virtually arranges split shard nodes on the surface of an n-dimensional (n is the number of split parameters) sphere. ; A center of gravity derivation unit that derives n center points in an n-dimensional sphere using the split parameter characteristic values of each split shard node for each split parameter; A partition equation deriving unit that derives a partition equation passing through n center points of gravity; A post-split shard allocation unit that assigns shards after the split of the split shard nodes based on the split equation; and a partition equation sharing unit that shares the partition equation and information for arranging the partitioned shard nodes on the surface of the n-dimensional sphere with the non-partitioned shard nodes.
바람직하게는, 노드 배치부는 분할 샤드 노드들의 주소 정보 및 시드값을 기반으로 의사 랜덤값을 도출하고, 도출된 의사 랜덤값을 이용하여 n차원 구의 표면 상의 위치를 산출하여 분할 샤드 노드들을 배치한다.Preferably, the node placement unit derives a pseudo-random value based on the address information and seed value of the split shard nodes, uses the derived pseudo-random value to calculate the position on the surface of the n-dimensional sphere, and places the split shard nodes.
보다 바람직하게는, 분할 방정식 공유부는 시드값을 비분할 샤드 노드에게 공유한다.More preferably, the partitioning equation sharing unit shares the seed value with the non-partitioning shard nodes.
바람직하게는, 분할 파라미터는 지분량 및 보트 카운트를 포함한다.Preferably, the splitting parameters include stake amount and boat count.
바람직하게는, 분할 방정식은 n개의 무게 중심점을 모두 지나가는 n-1차원의 직선, 평면 및 초평면 중 적어도 하나의 방정식이다.Preferably, the partition equation is at least one equation among n-1-dimensional straight lines, planes, and hyperplanes that pass through all n center points.
바람직하게는, 분할후 샤드 배정부는 n차원 구의 표면에 배치된 분할 샤드 노드들을 분할 방정식으로 두 그룹으로 분할하고, 분할된 각 그룹별로 올드 샤드 또는 뉴 샤드로 배정한다.Preferably, the shard allocation unit after splitting divides the split shard nodes placed on the surface of the n-dimensional sphere into two groups using a splitting equation, and assigns each split group to an old shard or a new shard.
보다 바람직하게는, 분할 방정식 공유부는 분할 방정식의 변수항의 계수값 및 상수값을 비분할 샤드 노드에 공유한다.More preferably, the partition equation sharing unit shares the coefficient values and constant values of the variable terms of the partition equation to the non-partition shard nodes.
본 발명의 일 실시예에 따른, 블록체인 네트워크를 구성하는 비분할 샤드 노드에서 구동하는 노드 분배 시스템은, 분할 샤드 노드로부터 분할 샤드 노드들을 n차원(n은 분할 파라미터의 개수) 구의 표면에 배치하기 위한 정보와 분할 방정식을 공유받는 분할 방정식 공유부; 분할 샤드 노드들을 n차원(n은 분할 파라미터의 개수) 구의 표면에 가상으로 배치하는 노드 배치부; n차원 구에 분할 방정식을 적용하여 분할 샤드 노드들이 두 그룹으로 분할되도록 하는 분할 방정식 적용부; 및 두 그룹의 분할 샤드 노드들에 대해 각각 분할후 배정된 샤드를 확인하는 샤드 배정 확인부를 포함한다.According to an embodiment of the present invention, a node distribution system running on non-split shard nodes constituting a blockchain network places split shard nodes from split shard nodes on the surface of an n-dimensional (n is the number of split parameters) sphere. a division equation sharing unit that receives information and division equations; A node placement unit that virtually arranges split shard nodes on the surface of an n-dimensional (n is the number of split parameters) sphere; A partition equation application unit that applies the partition equation to an n-dimensional sphere to split the split shard nodes into two groups; and a shard allocation confirmation unit that checks the shards assigned after splitting for each of the two groups of split shard nodes.
바람직하게는, 분할 방정식 공유부는 분할 방정식의 변수항의 계수값 및 상수값을 공유받는다.Preferably, the partition equation sharing unit receives the coefficient values and constant values of the variable terms of the partition equation.
바람직하게는, 분할 샤드 노드들을 n차원(n은 분할 파라미터의 개수) 구의 표면에 배치하기 위한 정보는 시드값이고, 노드 배치부는 분할 샤드 노드들의 주소 정보 및 시드값을 기반으로 의사 랜덤값을 도출하고, 도출된 의사 랜덤값을 이용하여 n차원 구의 표면 상의 위치를 산출하여 분할 샤드 노드들을 배치한다.Preferably, the information for placing split shard nodes on the surface of an n-dimensional (n is the number of split parameters) sphere is a seed value, and the node placement unit derives a pseudo-random value based on the address information and seed value of the split shard nodes. Then, the location on the surface of the n-dimensional sphere is calculated using the derived pseudo-random value, and the split shard nodes are placed.
본 발명의 일 실시예에 따른, 블록체인 네트워크를 구성하는 분할 샤드 노드에서 적어도 하나의 프로세서에 의해 구현되는 노드 분배 방법은, 분할 샤드 노드가 분할 샤드 노드들을 n차원(n은 분할 파라미터의 개수) 구의 표면에 가상으로 배치하는 단계; 분할 샤드 노드가 분할 파라미터별로 각각의 분할 샤드 노드의 분할 파라미터 특성값을 이용하여 n차원 구에서의 n개의 무게중심점을 도출하는 단계; 분할 샤드 노드가 n개의 무게중심점을 지나가는 분할 방정식을 도출하는 단계; 분할 샤드 노드가 분할 방정식을 기반으로 분할 샤드 노드들의 분할후 샤드를 배정하는 단계; 및 분할 샤드 노드가 분할 샤드 노드들을 n차원 구의 표면에 배치하기 위한 정보와 분할 방정식을 비분할 샤드 노드에게 공유하는 단계를 포함한다.According to an embodiment of the present invention, the node distribution method implemented by at least one processor in the split shard node constituting the blockchain network is a split shard node that divides the split shard nodes into n-dimension (n is the number of split parameters) Virtually placing on the surface of a sphere; A split shard node deriving n centers of gravity in an n-dimensional sphere using split parameter characteristic values of each split shard node for each split parameter; Deriving a split equation in which the split shard node passes through n center points; A step of allocating shards after the split shard node splits the split shard nodes based on the split equation; and a step where the split shard node shares the information for placing the split shard nodes on the surface of the n-dimensional sphere and the split equation to the non-split shard node.
바람직하게는, 분할 샤드 노드가 분할 샤드 노드들을 n차원(n은 분할 파라미터의 개수) 구의 표면에 가상으로 배치하는 단계는, 분할 샤드 노드들의 주소 정보 및 시드값을 기반으로 의사 랜덤값을 도출하고, 도출된 의사 랜덤값을 이용하여 n차원 구의 표면 상의 위치를 산출하여 분할 샤드 노드들을 배치하는 단계를 포함한다.Preferably, the step of the split shard node virtually arranging the split shard nodes on the surface of an n-dimensional (n is the number of split parameters) sphere includes deriving a pseudo-random value based on the address information and seed value of the split shard nodes, and , It includes the step of calculating the position on the surface of the n-dimensional sphere using the derived pseudo-random value and arranging the split shard nodes.
보다 바람직하게는, 분할 샤드 노드가 시드값을 비분할 샤드 노드에게 공유하는 단계를 포함한다.More preferably, the split shard node shares the seed value with the non-split shard node.
바람직하게는, 분할 파라미터는 지분량 및 보트 카운트를 포함한다.Preferably, the splitting parameters include stake amount and boat count.
바람직하게는, 분할 방정식은 n개의 무게 중심점을 모두 지나가는 n-1차원의 직선, 평면 및 초평면 중 적어도 하나의 방정식이다.Preferably, the partition equation is at least one equation among n-1-dimensional straight lines, planes, and hyperplanes that pass through all n center points.
바람직하게는, 분할 샤드 노드가 분할 방정식을 기반으로 분할 샤드 노드들의 분할후 샤드를 배정하는 단계는, n차원 구의 표면에 배치된 분할 샤드 노드들을 분할 방정식으로 두 그룹으로 분할하고, 분할된 각 그룹별로 올드 샤드 또는 뉴 샤드로 배정하는 단계를 포함한다.Preferably, the step of assigning shards after the split shard nodes are divided based on the split equation is to divide the split shard nodes placed on the surface of the n-dimensional sphere into two groups using the split equation, and divide each divided group into two groups. It includes the step of assigning to old shards or new shards.
보다 바람직하게는, 분할 샤드 노드가 분할 방정식의 변수항의 계수값 및 상수값을 비분할 샤드 노드에 공유하는 단계를 포함한다.More preferably, the split shard node includes the step of sharing the coefficient value and constant value of the variable term of the split equation with the non-split shard node.
본 발명의 일 실시예에 따른, 블록체인 네트워크를 구성하는 비분할 샤드 노드에서 적어도 하나의 프로세서 의해 구현되는 노드 분배 방법은, 비분할 샤드 노드가 분할 샤드 노드로부터 분할 샤드 노드들을 n차원(n은 분할 파라미터의 개수) 구의 표면에 배치하기 위한 정보와 분할 방정식을 공유받는 단계; 비분할 샤드 노드가 분할 샤드 노드들을 n차원(n은 분할 파라미터의 개수) 구의 표면에 가상으로 배치하는 단계; 비분할 샤드 노드가 n차원 구에 분할 방정식을 적용하여 분할 샤드 노드들이 두 그룹으로 분할되도록 하는 단계; 및 비분할 샤드 노드가 두 그룹의 분할 샤드 노드들에 대해 각각 분할후 배정된 샤드를 확인하는 단계를 포함한다.According to an embodiment of the present invention, the node distribution method implemented by at least one processor in the non-split shard node constituting the blockchain network is where the non-split shard node divides the split shard nodes from the split shard node into n dimensions (n is Number of division parameters) sharing information and division equations for placement on the surface of the sphere; A non-split shard node virtually arranging the split shard nodes on the surface of an n-dimensional (n is the number of partition parameters) sphere; A non-split shard node applying a partition equation to an n-dimensional sphere such that the split shard nodes are split into two groups; and a step where the non-split shard node checks the shards assigned after splitting for each of the two groups of split shard nodes.
바람직하게는, 비분할 샤드 노드가 분할 방정식의 변수항의 계수값 및 상수값을 공유받는 단계를 포함한다.Preferably, the non-partitioned shard node includes the step of receiving the coefficient value and constant value of the variable term of the partition equation.
바람직하게는, 분할 샤드 노드들을 n차원(n은 분할 파라미터의 개수) 구의 표면에 배치하기 위한 정보는 시드값이고, 비분할 샤드 노드가 분할 샤드 노드들의 주소 정보 및 시드값을 기반으로 의사 랜덤값을 도출하고, 도출된 의사 랜덤값을 이용하여 n차원 구의 표면 상의 위치를 산출하여 분할 샤드 노드들을 배치하는 단계를 포함한다.Preferably, the information for placing the split shard nodes on the surface of an n-dimensional (n is the number of split parameters) sphere is a seed value, and the non-split shard node is a pseudo-random value based on the address information and seed value of the split shard nodes. It includes the step of deriving and calculating the position on the surface of the n-dimensional sphere using the derived pseudo-random value and arranging the split shard nodes.
본 발명에 의하면, 다음과 같은 효과가 있다.According to the present invention, the following effects are achieved.
본 발명은 블록체인 네트워크를 샤드 단위로 나누어 트랜잭션과 블록을 처리함으로써, 트랜잭션 처리량과 분산 원장의 크기를 줄일 수 있어 블록체인 네트워크의 확장성을 증대시킬 수 있다.The present invention divides the blockchain network into shards to process transactions and blocks, thereby reducing transaction throughput and the size of the distributed ledger, thereby increasing the scalability of the blockchain network.
본 발명은 블록체인 네트워크의 트래픽 량에 따라 샤드를 추가하여 노드들을 분배하고, 분배된 각 샤드에서 다수의 트랜잭션이 병렬로 처리되도록 함으로써, 전체 네트워크의 트랜잭션 처리량과 분산 원장의 크기를 줄일 수 있다.The present invention distributes nodes by adding shards according to the traffic volume of the blockchain network, and allows multiple transactions to be processed in parallel in each distributed shard, thereby reducing the transaction throughput of the entire network and the size of the distributed ledger.
본 발명은 샤드를 추가할 때, 공백 샤드를 생성하지 않고 기존 샤드를 분할하여 새로운 샤드를 생성하고 새로운 샤드에도 비교적 균등하게 노드들이 할당되도록 함으로써, 정보의 연속성이 확보되며, 새로운 샤드의 안정성이 확보될 수 있다.When adding a shard, the present invention creates a new shard by dividing the existing shard without creating a blank shard, and ensures the continuity of information and the stability of the new shard by assigning nodes relatively evenly to the new shard. It can be.
본 발명은 기존 샤드에 소속된 노드들을 둘로 분할하여 두 개의 샤드에 할당할 때 노드의 주소와 분할 방정식을 이용하여 두 샤드에 각각 배정되는 노드 정보를 계산할 수 있기 때문에 분할 후 노드의 소속 샤드 정보를 공유하는데 요구되는 정보량을 최소화할 수 있다.In the present invention, when nodes belonging to an existing shard are split into two and assigned to two shards, the node information assigned to each of the two shards can be calculated using the node address and the splitting equation, so the shard information of the node after splitting can be calculated. The amount of information required to share can be minimized.
본 발명의 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급되지 않은 다른 효과들은 청구범위의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자("통상의 기술자"라 함)에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned are clear to a person skilled in the art (referred to as a “person skilled in the art”) in the technical field to which the present invention pertains from the description of the claims. It will be understandable.
본 발명의 실시예들은, 이하 설명하는 첨부 도면들을 참조하여 설명될 것이며, 여기서 유사한 참조 번호는 유사한 요소들을 나타내지만, 이에 한정되지는 않는다.Embodiments of the present invention will be described with reference to the accompanying drawings described below, in which like reference numerals indicate like elements, but are not limited thereto.
도 1은 본 발명의 3개의 샤드로 분할된 블록체인 네트워크의 개념도를 도시한 도면이다.Figure 1 is a conceptual diagram of a blockchain network divided into three shards of the present invention.
도 2는 본 발명의 다이나믹 샤딩 시스템을 포함하는 노드의 예시적인 구성을 도시한 블록도이다.Figure 2 is a block diagram showing an exemplary configuration of a node including the dynamic sharding system of the present invention.
도 3은 본 발명의 블록체인 네트워크에서, 데이터 저장소에 저장된 정보를 도시한 도면이다.Figure 3 is a diagram showing information stored in a data storage in the blockchain network of the present invention.
도 4는 본 발명의 일 실시예에 따른 분할 샤드 노드들에서 실행되는 노드 분배 시스템을 도시한 구성도이다.Figure 4 is a configuration diagram showing a node distribution system running on split shard nodes according to an embodiment of the present invention.
도 5는 본 발명의 일 실시예에 따른 비분할 샤드 노드들에서 실행되는 노드 분배 시스템을 도시한 구성도이다.Figure 5 is a configuration diagram illustrating a node distribution system running on non-partitioned shard nodes according to an embodiment of the present invention.
도 6은 본 발명의 일 실시예에 따른 다이나믹 샤딩시 분할 샤드 노드에서의 노드 분배 방법을 도시한 동작 흐름도이다.Figure 6 is an operation flowchart showing a node distribution method in a split shard node during dynamic sharding according to an embodiment of the present invention.
도 7은 본 발명의 일 실시예에 따라 분할 샤드 노드에서 분할 샤드 노드들을 두 그룹으로 분할하는 과정을 도시한 예시도이다.Figure 7 is an exemplary diagram illustrating a process of dividing split shard nodes into two groups in a split shard node according to an embodiment of the present invention.
도 8은 본 발명의 일 실시예에 따른 다이나믹 샤딩시 비분할 샤드 노드에서의 노드 분배 방법을 도시한 동작 흐름도이다.Figure 8 is an operation flowchart showing a node distribution method in a non-split shard node during dynamic sharding according to an embodiment of the present invention.
도 9는 본 발명의 일 실시예에 따라 비분할 샤드 노드에서 분할 샤드 노드들을 두 그룹으로 분할하는 과정을 도시한 예시도이다.Figure 9 is an example diagram illustrating a process of dividing split shard nodes into two groups in a non-split shard node according to an embodiment of the present invention.
본 발명의 실시예들은, 이하 설명하는 첨부 도면들을 참조하여 설명될 것이며, 여기서 유사한 참조 번호는 유사한 요소들을 나타내지만, 이에 한정되지는 않는다.Embodiments of the present invention will be described with reference to the accompanying drawings described below, in which like reference numerals indicate like elements, but are not limited thereto.
[부호의 설명][Explanation of symbols]
402; 노드 배치부 404; 무게중심점 도출부402; Node deployment unit 404; Center of gravity derivation section
406; 분할 방정식 도출부 408; 분할후 샤드 배정부406; Partition equation derivation unit 408; Shard allocation after splitting
410; 분할 방정식 공유부410; Division equation sharing part
이하, 본 발명의 실시를 위한 구체적인 내용을 첨부된 도면을 참조하여 상세히 설명한다. 다만, 이하의 설명에서는 본 발명의 요지를 불필요하게 흐릴 우려가 있는 경우, 널리 알려진 기능이나 구성에 관한 구체적 설명은 생략하기로 한다.Hereinafter, specific details for implementing the present invention will be described in detail with reference to the attached drawings. However, in the following description, detailed descriptions of well-known functions or configurations will be omitted if there is a risk of unnecessarily obscuring the gist of the present invention.
첨부된 도면에서, 동일하거나 대응하는 구성요소에는 동일한 참조부호가 부여되어 있다. 또한, 이하의 실시예들의 설명에 있어서, 동일하거나 대응되는 구성요소를 중복하여 기술하는 것이 생략될 수 있다. 그러나, 구성요소에 관한 기술이 생략되어도, 그러한 구성요소가 어떤 실시예에 포함되지 않는 것으로 의도되지는 않는다.In the accompanying drawings, identical or corresponding components are given the same reference numerals. Additionally, in the description of the following embodiments, overlapping descriptions of identical or corresponding components may be omitted. However, even if descriptions of components are omitted, it is not intended that such components are not included in any embodiment.
본 명세서에 개시된 실시예의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명과 연관된 통상의 기술자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것일 뿐이다.Advantages and features of the embodiments disclosed in this specification, and methods for achieving them, will become clear by referring to the embodiments described below along with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below and may be implemented in various different forms, and the present embodiments are provided to fully inform those skilled in the art of the present invention of the scope of the invention. It just happens.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않은 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used in this specification may be used with meanings that can be commonly understood by those skilled in the art to which the present invention pertains. Additionally, terms defined in commonly used dictionaries are not interpreted ideally or excessively unless clearly specifically defined.
예를 들어, "기술"이라는 용어는 시스템, 방법, 컴퓨터 판독 가능 명령어, 모듈, 알고리즘, 하드웨어 로직 및/또는 상기 기술된 문맥에 의해 허용되고 문서 전체에 걸쳐 동작을 지칭할 수 있다.For example, the term “technique” may refer to a system, method, computer-readable instructions, module, algorithm, hardware logic, and/or operation as permitted by the context described above and throughout the document.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 개시된 실시예에 대해 구체적으로 설명하기로 한다. 본 명세서에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 관련 분야에 종사하는 기술자의 의도, 판례 또는 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서, 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.Terms used in this specification will be briefly described, and the disclosed embodiments will be described in detail. The terms used in this specification are general terms that are currently widely used as much as possible while considering the function in the present invention, but this may vary depending on the intention of a technician working in the related field, precedents, or the emergence of new technology. In addition, in certain cases, there are terms arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the description of the relevant invention. Therefore, the terms used in the present invention should be defined based on the meaning of the term and the overall content of the present invention, rather than simply the name of the term.
본 명세서에서의 단수의 표현은 문맥상 명백하게 단수인 것으로 특정하지 않는 한, 복수의 표현을 포함한다. 또한, 복수의 표현은 문맥상 명백하게 복수인 것으로 특정하지 않는 한, 단수의 표현을 포함한다. 명세서 전체에서 어떤 부분이 어떤 구성요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다.In this specification, singular expressions include plural expressions, unless the context clearly specifies the singular. Additionally, plural expressions include singular expressions, unless the context clearly specifies plurality. When it is said that a certain part includes a certain element throughout the specification, this does not mean excluding other elements, but may further include other elements, unless specifically stated to the contrary.
본 발명에서, '포함하다', '포함하는' 등의 용어는 특징들, 단계들, 동작들, 요소들 및/또는 구성요소들이 존재하는 것을 나타낼 수 있으나, 이러한 용어가 하나 이상의 다른 기능들, 단계들, 동작들, 요소들, 구성요소들 및/또는 이들의 조합이 추가되는 것을 배제하지는 않는다.In the present invention, terms such as 'comprise', 'comprising', etc. may indicate the presence of features, steps, operations, elements and/or components, but may indicate that such terms include one or more other functions, This does not preclude the addition of steps, operations, elements, components and/or combinations thereof.
본 발명에서, 특정 구성요소가 임의의 다른 구성요소에 '결합', '조합', '연결', '연관' 되거나, '반응' 하는 것으로 언급된 경우, 특정 구성요소는 다른 구성요소에 직접 결합, 조합, 연결 및/또는 연관되거나, 반응할 수 있으나, 이에 한정되지 않는다. 예를 들어, 특정 구성요소와 다른 구성요소 사이에 하나 이상의 중간 구성요소가 존재할 수 있다. 또한, 본 발명에서 "및/또는"은 열거된 하나 이상의 항목의 각각 또는 하나 이상의 항목의 적어도 일부의 조합을 포함할 수 있다.In the present invention, when a specific component is referred to as being 'coupled', 'combinated', 'connected', 'connected', or 'reacting' to any other component, the specific component is directly bound to the other component. , may be combined, connected and/or associated, or react, but is not limited thereto. For example, one or more intermediate components may exist between a particular component and another component. Additionally, in the present invention, “and/or” may include each of one or more listed items or a combination of at least a portion of one or more items.
본 발명에서, '제1', '제2' 등의 용어는 특정 구성요소를 다른 구성요소와 구별하기 위해 사용되는 것으로, 이러한 용어에 의해 상술한 구성요소가 제한되진 않는다. 예를 들어, '제1' 구성 요소는 '제2' 구성 요소와 동일하거나 유사한 형태의 요소를 지칭하기 위해 사용될 수 있다.In the present invention, terms such as 'first' and 'second' are used to distinguish specific components from other components, and the above-described components are not limited by these terms. For example, a 'first' component may be used to refer to an element of the same or similar form as the 'second' component.
본 발명에서 '블록체인 네트워크'는 블록체인 시스템에 참가하며 인터넷 등으로 상호 피투피 통신하는 여러 컴퓨터(노드)들의 집합체이고, 본 발명에서 '노드'는 블록체인 네트워크에 참가하는 컴퓨터일 수 있다. 여기서, 컴퓨터는 CPU, 메모리, 통신, 입출력 기능을 갖는 장치를 모두 포괄하는 의미로서, 구체적으로는 서버 컴퓨터, 개인용 컴퓨터(PC), 휴대폰 단말기, 소형 가전기기 등을 포함할 수 있다.In the present invention, a 'blockchain network' is a collection of several computers (nodes) that participate in a blockchain system and communicate peer-to-peer with each other through the Internet, etc., and in the present invention, a 'node' may be a computer participating in a blockchain network. Here, a computer encompasses all devices with CPU, memory, communication, and input/output functions, and may specifically include server computers, personal computers (PCs), mobile phone terminals, and small home appliances.
노드는 블록체인 네트워크를 통해 정보의 공유 및 확산을 실행할 수 있다. 노드는 적어도 하나 이상의 사용자 어카운트(계정)를 관리한다. 노드가 관리하는 어카운트에는, 노드 소유자의 어카운트(이하, 호스트 어카운트라 함)와, 다른 사용자로부터 관리를 위탁받은 어카운트(이하, 게스트 어카운트라 함)가 포함될 수 있다. 노드는 자신이 관리하는 호스트 어카운트와 게스트 어카운트에 관한 모든 정보를 저장하고 블록체인 네트워크 상의 다른 노드들에게 전송하며, 다른 노드들로부터 각 노드에서 관리하는 호스트 어카운트와 게스트 어카운트에 관한 최신 정보를 수신할 수 있다.Nodes can share and spread information through the blockchain network. A node manages at least one user account. Accounts managed by a node may include the node owner's account (hereinafter referred to as a host account) and an account entrusted with management by another user (hereinafter referred to as a guest account). A node stores all information about the host accounts and guest accounts it manages and transmits it to other nodes on the blockchain network, and can receive the latest information about the host accounts and guest accounts managed by each node from other nodes. You can.
본 발명에서 '어카운트(account)'라 함은 블록체인에 참여하는 사용자 계정으로서, 한 유저를 나타내는 데이터 구조일 수 있다. 어카운트는 트랜잭션을 발행함으로써 블록체인 시스템에 정보가 추가될 수 있으며, 유저가 발행한 트랜잭션의 링크된 리스트일 수 있다. 트랜잭션은 유저가 시스템에 추가하는 데이터의 단위일 수 있다. 어카운트는 노드를 소유하여 자기 자신의 트랜잭션 정보를 직접 관리할 수 있으며, 이러한 어카운트를 호스트 어카운트라 할 수 있다. 또는, 어카운트는 다른 사용자의 노드에 트랜잭션 정보를 위탁하여 관리시킬 수 있으며, 이러한 어카운트를 게스트 어카운트라 하고, 어카운트 관리를 위탁받은 노드를 위탁 노드라 할 수 있다. 노드와 어카운트의 본인 확인은 암호키로 가능하며, 같은 암호키로 트랜잭션에 서명할 수 있다. 게스트 어카운트는 스스로 노드를 운영하여 호스트 어카운트가 될 수도 있고 위탁 노드를 변경할 수도 있으며, 호스트 어카운트는 위탁 노드를 선정하여 게스트 어카운트가 될 수도 있다.In the present invention, 'account' refers to a user account participating in a blockchain and may be a data structure representing one user. An account can add information to the blockchain system by issuing transactions, and can be a linked list of transactions issued by a user. A transaction can be a unit of data that a user adds to the system. An account can own a node and directly manage its own transaction information, and this account can be called a host account. Alternatively, the account can entrust transaction information to another user's node for management. This account can be called a guest account, and the node entrusted with account management can be called a entrusted node. The identity of the node and account can be verified using an encryption key, and transactions can be signed with the same encryption key. A guest account can operate a node on its own and become a host account or change the entrusted node. A host account can also select a entrusted node and become a guest account.
본 발명에서 '트랜잭션'이라 함은 블록체인에 추가되는 정보의 단위로서, 하나의 어카운트가 단독으로 발행할 수 있다. 트랜잭션의 내용은 명목상으로는 사용자가 제공하는 임의의 정보이며, 실제로는 시스템 내에서 의미있는 메시지일 수 있다. 예컨대, 트랜잭션에는 '어카운트 A가 어카운트 B에게 100 코인을 보냈음", "어카운트 B는 어카운트 A로부터 100 코인을 받음" 등의 메시지가 포함될 수 있다. 본 발명에서 트랜잭션의 일련 번호는 0부터 시작하는 양의 정수로서, 트랜잭션마다 1씩 증가하고, 어카운트별로 원장을 관리하는 계정별 트랜잭션 체인(AWTC: Account-Wise Transaction Chain)을 사용한다. 계정별 트랜잭션 체인(AWTC)에 대한 기술은 대한민국 공개특허 제2021-0015196호에 기재된 내용을 참조하여 이해될 수 있다.In the present invention, a 'transaction' is a unit of information added to the blockchain, and can be issued independently by one account. The content of a transaction is nominally random information provided by the user, but may actually be a meaningful message within the system. For example, the transaction may include messages such as 'Account A sent 100 coins to Account B', 'Account B received 100 coins from Account A', etc. In the present invention, the serial number of the transaction starts from 0. As a positive integer, it increases by 1 for each transaction, and the technology for Account-Wise Transaction Chain (AWTC), which manages the ledger for each account, is a Korean open patent. It can be understood by referring to the contents described in No. 2021-0015196.
본 발명에서 '블록'은 특정 기간 동안 샤드 또는 블록체인 네트워크에 추가된 트랜잭션의 서명된 목록일 수 있다. 합의 알고리즘을 통해 발생된 트랙잭션 목록을 서명함으로서 블록이 생성될 수 있다. 블록은 한 번에 하나만 생성될 수 있으며, 기존의 블록 리스트에 새로운 블록을 추가함으로서 블록체인을 구성할 수 있다.In the present invention, a 'block' may be a signed list of transactions added to a shard or blockchain network during a specific period of time. Blocks can be created by signing the transaction list generated through the consensus algorithm. Only one block can be created at a time, and a blockchain can be formed by adding new blocks to the existing block list.
본 발명에서 '샤드'는 블록체인 네트워크에 참여하는 노드들의 소집합일 수 있다. 전체 블록체인 네트워크는 적어도 둘 이상의 샤드로 분할될 수 있다. 분할되지 않는 경우에는 모든 노드가 한 샤드에 참여한다고 보며, 각 샤드는 고유의 주소를 갖는다. 통상적으로 샤딩 기법을 적용한 블록체인 네트워크는 동일 샤드에 속한 노드들끼리 상호 피투피 통신을 하며, 동일 샤드에 속한 모든 어카운트들의 계정별 트랜잭션 체인(AWTC)을 공유한다.In the present invention, a 'shard' may be a collection of nodes participating in a blockchain network. The entire blockchain network can be divided into at least two or more shards. If there is no division, all nodes are considered to participate in one shard, and each shard has a unique address. Typically, a blockchain network that applies the sharding technique performs peer-to-peer communication between nodes belonging to the same shard, and shares the account-specific transaction chain (AWTC) of all accounts belonging to the same shard.
본 발명에서, 모든 어카운트는 하나의 워킹샤드와 하나의 홈샤드를 가질 수 있다. 임의의 어카운트의 워킹샤드와 홈샤드는 동일할 수도 있고, 서로 다를 수도 있다. 본 발명에서 어카운트의 '홈샤드'는 어카운트의 주소와 총 샤드 개수를 파라미터로 하는 함수를 기반으로 연산될 수 있다. 본 발명에서 어카운트의 '워킹샤드'는 현재 해당 어카운트가 소속되어 동작하는 샤드로서, 통상적인 샤드일 수 있다. 즉, 통상적인 샤드 기법을 적용한 블록체인 네트워크에서는, 샤드가 동일한 노드간 상호 피투피 통신을 하며, 동일한 샤드에 소속된 모든 어카운트들의 원장이 공유된다. 반면, 본 발명의 다이나믹 샤딩 기법이 적용된 블록체인 네트워크에서는, 워킹샤드가 동일한 노드간 상호 피투피 통신하며, 동일 워킹샤드에 속한 모든 어카운트들의 계정별 트랜잭션 체인(AWTC)이 공유될 수 있다. 다이나믹 샤딩 기법 적용시, 노드 및 어카운트의 워킹샤드는 변경될 수 있다.In the present invention, every account can have one working shard and one home shard. The working shard and home shard of any account may be the same or different. In the present invention, the 'home shard' of an account can be calculated based on a function that uses the address of the account and the total number of shards as parameters. In the present invention, the 'working shard' of an account is a shard to which the account currently operates and may be a typical shard. In other words, in a blockchain network that applies the typical shard technique, shards communicate peer-to-peer with each other between the same nodes, and the ledger of all accounts belonging to the same shard is shared. On the other hand, in a blockchain network to which the dynamic sharding technique of the present invention is applied, working shards communicate peer-to-peer with each other between the same nodes, and the account-specific transaction chain (AWTC) of all accounts belonging to the same working shard can be shared. When applying the dynamic sharding technique, the working shards of nodes and accounts may be changed.
본 발명의 다이나믹 샤딩 방법에 의해 하나의 샤드가 둘로 분할되면, 해당 샤드를 워킹샤드로 둔 노드들이 둘로 분할된다. 즉, 일부 노드들은 분할 전 샤드에 그대로 남아 있지만, 나머지 노드들은 새로운 샤드로 이동한다. 노드들의 워킹샤드가 새로운 샤드로 이동할 경우, 각 노드가 관리하는 모든 어카운트들(호스트 어카운트 및 게스트 어카운트)의 워킹샤드가 동시에 이동한다.When one shard is split into two by the dynamic sharding method of the present invention, the nodes that have the shard as a working shard are split into two. That is, some nodes remain in the shard before the split, but other nodes move to the new shard. When a node's working shard is moved to a new shard, the working shards of all accounts (host account and guest account) managed by each node are moved simultaneously.
각 샤드는 해당 샤드를 홈샤드로 둔 어카운트들의 집합과, 해당 샤드를 워킹샤드로 둔 어카운트들의 집합을 가질 수 있다. 블록체인 네트워크를 구성하는 어카운트들은 하나의 홈샤드와 하나의 워킹샤드에 각각 소속되어야 한다. 홈샤드와 워킹샤드는 동일할 수도 있고, 서로 다를 수도 있다. 노드는 하나의 워킹샤드에서 다른 워킹샤드로 소속 워킹샤드를 변경할 수 있으며, 노드가 워킹샤드를 변경할 때, 노드에서 관리하는 호스트 어카운트와 게스트 어카운트가 동시에 워킹샤드를 변경할 수 있다.Each shard can have a set of accounts that have the shard as a home shard and a set of accounts that have the shard as a working shard. The accounts that make up the blockchain network must each belong to one home shard and one working shard. Home shards and working shards may be the same or different. A node can change its working shard from one working shard to another, and when a node changes a working shard, the host account and guest account managed by the node can change the working shard at the same time.
본 발명에서 블록체인 네트워크에 속한 모든 노드들은 다이나믹 샤딩 시스템을 포함하여, 샤드 분할 조건, 새로운 샤드(이하, 뉴 샤드라 함)의 주소, 분할되는 샤드(이하, 분할 샤드라 함)의 주소, 기존 샤드에 남는 노드들 및 뉴 샤드로 이동하는 노드들을 산출할 수 있다. 본 발명에서 분할 샤드에 소속된 노드들은 둘로 분할된다. 둘로 분할된 샤드 중 하나는 분할 샤드와 동일한 주소를 유지하고(이를 올드 샤드라 함), 나머지는 뉴 샤드로서 새로운 주소가 부여될 수 있다. 분할 샤드에 소속된 노드들은 올드 샤드에 남는 노드들과 뉴 샤드로 이동하는 노드들로 나뉘어진다.In the present invention, all nodes belonging to the blockchain network include the dynamic sharding system, shard splitting conditions, the address of the new shard (hereinafter referred to as new shard), the address of the split shard (hereinafter referred to as split shard), and the existing shard. Nodes remaining in a shard and nodes moving to a new shard can be calculated. In the present invention, nodes belonging to a split shard are split into two. One of the shards divided into two maintains the same address as the split shard (this is called an old shard), and the other shard is a new shard and can be given a new address. Nodes belonging to a split shard are divided into nodes that remain in the old shard and nodes that move to the new shard.
본 발명에서 분할 어카운트는 분할 샤드를 워킹샤드로 둔 어카운트를 의미하고, 분할 샤드 노드는 분할 샤드에 소속되며 분할 어카운트를 관리하는 노드를 의미한다. 본 발명에서는 분할 노드들을 기반으로 두 개로 분할하고, 해당 노드가 관리하는 어카운트들이 한꺼번에 분할되도록 한다. 샤드 분할 후, 분할 어카운트의 워킹샤드는 올드 샤드로 유지될 수도 있고, 뉴 샤드로 변경될 수도 있다. 분할 어카운트 중 워킹샤드가 뉴 샤드로 변경된 어카운트를 뉴 샤드 어카운트라 하고, 분할 샤드 노드 중 워킹샤드가 뉴 샤드로 변경된 노드를 뉴 샤드 노드라 한다. 분할 어카운트 중 워킹샤드가 올드 샤드에 남는 어카운트를 올드 샤드 어카운트라 하고, 분할 샤드 노드 중 워킹샤드가 올드 샤드에 남는 노드를 올드 샤드 노드라 한다. 올드 샤드 노드는 뉴 샤드 어카운트의 계정별 트랜잭션 체인(AWTC)을 삭제하고 올드 샤드 어카운트에 관한 정보만을 관리하며, 뉴 샤드 노드는 올드 샤드 어카운트의 계정별 트랜잭션 체인(AWTC)을 삭제하고 뉴 샤드 어카운트에 관한 정보를 관리한다. 아울러, 뉴 샤드 어카운트의 홈샤드에 소속된 노드(이하, 뉴 샤드 어카운트의 홈샤드 노드라 함)는 어카운트 디렉토리에 저장된 뉴 샤드 어카운트의 워킹샤드 정보를 올드 샤드에서 뉴 샤드로 변경할 수 있다. In the present invention, a split account refers to an account that has a split shard as a working shard, and a split shard node refers to a node that belongs to a split shard and manages the split account. In the present invention, the node is divided into two based on the split nodes, and the accounts managed by the node are split all at once. After shard splitting, the working shard of the split account may be maintained as an old shard or changed to a new shard. Among split accounts, an account whose working shard has been changed to a new shard is called a new shard account, and a node whose working shard has been changed to a new shard among split shard nodes is called a new shard node. Among split accounts, the account whose working shard remains in the old shard is called an old shard account, and among the split shard nodes, the node whose working shard remains in the old shard is called an old shard node. The old shard node deletes the account-specific transaction chain (AWTC) of the new shard account and only manages information about the old shard account, and the new shard node deletes the account-specific transaction chain (AWTC) of the old shard account and manages information about the old shard account. Manage information about In addition, a node belonging to the home shard of the new shard account (hereinafter referred to as the home shard node of the new shard account) can change the working shard information of the new shard account stored in the account directory from old shard to new shard.
본 발명에서 블록체인 네트워크를 구성하는 모든 샤드는 주소를 가질 수 있다. 샤드의 주소는 네트워크에서 해당 샤드가 생성된 순서대로 부여되는 값일 수 있다. 블록체인 네트워크를 구성하는 샤드 주소의 최고 값은 샤드의 총 개수에 기반한 값일 수 있다. 뉴 샤드의 주소는 '현재 네트워크의 샤드 주소의 최고 값 + 1'일 수 있다.In the present invention, all shards that make up the blockchain network can have addresses. The address of a shard may be a value given in the order in which the shard was created in the network. The highest value of the shard address that makes up the blockchain network may be a value based on the total number of shards. The address of the new shard may be ‘highest value of the shard address in the current network + 1’.
본 발명에서 샤드 분할은 물리적인 분할이 아니며, 분할 샤드에 소속된 노드들 중 일부를 올드 샤드에 소속되도록 하고, 나머지를 뉴 샤드에 소속되도록 하는 동작을 의미할 수 있다.In the present invention, shard division is not a physical division, but may mean an operation of making some of the nodes belonging to the divided shard belong to the old shard and the rest to belong to the new shard.
분할 샤드가 분할되기 전에는 분할 샤드에 소속된 모든 노드들이 피투피 통신을 하며, 분할 샤드에 속한 모든 어카운트들의 계정별 트랜잭션 체인(AWTC)을 공유한다. 그러나, 분할 샤드가 올드 샤드와 뉴 샤드로 분할된 후에는, 올드 샤드에 배정된 노드들끼리만 계정별 트랜잭션 체인을 공유하고(올드 샤드에 배정된 노드들은 뉴 샤드에 배정된 노드들의 계정별 트랜잭션 체인을 공유하지 않음), 뉴 샤드에 배정된 노드들끼리만 계정별 트랜잭션 체인을 공유한다(뉴 샤드에 배정된 노드들은 올드 샤드에 배정된 노드들의 계정별 트랜잭션 체인을 공유하지 않음).Before a split shard is split, all nodes belonging to the split shard communicate peer-to-peer and share the account-specific transaction chain (AWTC) of all accounts belonging to the split shard. However, after the split shard is divided into old shards and new shards, only the nodes assigned to the old shard share the account-specific transaction chain (nodes assigned to the old shard share the account-specific transaction chain of the nodes assigned to the new shard). does not share), and only the nodes assigned to the new shard share the account-specific transaction chain (nodes assigned to the new shard do not share the account-specific transaction chain of the nodes assigned to the old shard).
본 발명에서 블록체인 네트워크 및 샤드에서의 '피투피 통신'이라 함은 임의의 노드가 어떤 정보를 수신하면, 수신한 정보를 복제하여 다른 노드들에게 전송하고, 전송받은 노드 또한 해당 정보를 복제하여 다른 노드들에게 전송하는 과정을 반복하여, 충분한 시간 후 블록체인 네트워크 및 샤드에 속한 모든 노드가 해당 정보를 공유하는 것을 의미할 수 있다.In the present invention, 'peer-to-peer communication' in blockchain networks and shards means that when a random node receives some information, it copies the received information and transmits it to other nodes, and the received node also copies the information to other nodes. This may mean that all nodes belonging to the blockchain network and shard share the information after a sufficient period of time by repeating the process of transmitting to the nodes.
본 발명에서 '라운드'라 함은 합의 단위 시간일 수 있다. 본 발명에서 이전 라운드에서 공유된 트랜잭션이 현재 라운드에서의 합의 대상이 될 수 있다.In the present invention, 'round' may be a unit of time of the sum. In the present invention, a transaction shared in a previous round may be the subject of agreement in the current round.
본 발명에서 임의의 샤드의'이웃 샤드'라 함은, 해당 샤드의 주소와 비트 거리가 1인 주소를 가지는 샤드일 수 있다. 비트 거리가 1이라 함은 임의의 두 이진값을 자리별로 비교할 때 하나의 자리 값만 다른 것을 의미한다. 예컨대, 이진값 '0101'에 대해, 1번째 자리 값만 다른 이진값은 '0100'이고, 2번째 자리 값만 다른 이진값은 '0111'이고, 3번째 자리 값만 다른 이진값은 '0001'이고, 4번째 자리 값만 다른 이진값은 '1101'이다. 따라서, 이진값 '0101'에 대해, 이진값 '0100', 이진값 '0111', 이진값 '0001' 및 이진값 '1101'은 모두 하나의 자리 값만 다른 이진값들이다. 이와 같이 본 발명에서는, 임의의 이진값에 대해 하나의 자리 값만 다른 이진값을 비트 거리가 1이라고 정의하고, 임의의 샤드의 주소와 비트 거리가 1인 주소를 가진 샤드를 이웃 샤드로 정의한다. 본 발명에서 분할 샤드에서 분할된 올드 샤드와 뉴 사드는 그 주소의 비트 거리가 1인 이웃 샤드일 수 있다.In the present invention, the 'neighbor shard' of any shard may be a shard with an address whose bit distance from the address of the corresponding shard is 1. A bit distance of 1 means that only one digit value is different when comparing two arbitrary binary values digit by digit. For example, for the binary value '0101', the binary value that differs only in the 1st digit is '0100', the binary value that differs only in the 2nd digit is '0111', the binary value that differs in only the 3rd digit is '0001', and 4 The binary value that differs only in the second digit is '1101'. Therefore, for the binary value '0101', the binary value '0100', the binary value '0111', the binary value '0001', and the binary value '1101' are all binary values that differ by only one place value. As such, in the present invention, a binary value that differs by only one place value from a random 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 a random shard is defined as a neighboring shard. In the present invention, the old shard and the new shard divided from the split shard may be neighboring shards whose addresses have a bit distance of 1.
이하에 기술된 운영 시스템은 하나의 실시예를 구성하고 청구 범위를 임의의 하나의 특정 운영 환경으로 제한하려는 것은 아니다. 청구된 요지의 기술적 사상 및 범위를 벗어나지 않고 다른 환경에서도 사용될 수 있다.The operating system described below constitutes one embodiment and is not intended to limit the scope of the claims to any one particular operating environment. It can be used in other environments without departing from the technical spirit and scope of the claimed subject matter.
도 1은 본 발명의 3개의 샤드로 분할된 블록체인 네트워크의 개념도를 도시한 도면이다.Figure 1 is a conceptual diagram of a blockchain network divided into three shards of the present invention.
블록체인 네트워크를 구성하는 복수의 노드들이 3개의 샤드(110, 120, 130)로 분할될 수 있으며, 이에 한정되지 않는다. 샤드의 개수는 블록체인 네트워크를 구성하는 노드 및 어카운트의 개수가 증가함에 따라 늘어날 수 있으며, 이때, 하나의 샤드가 2개로 분할될 수 있다. 각 샤드(110, 120, 130)는 현재 샤드에 소속된 노드들의 워킹샤드일 수 있다. 현재 워킹샤드 내에 소속된 노드들은 모두 동일한 정보를 공유할 수 있다.The multiple nodes that make up the blockchain network can be divided into three shards (110, 120, and 130), but it is not limited to this. The number of shards can increase as the number of nodes and accounts that make up the blockchain network increases, and in this case, one shard can be split into two. Each shard (110, 120, 130) may be a working shard of nodes currently belonging to the shard. Currently, all nodes belonging to a working shard can share the same information.
각 노드들은 워킹샤드 내 노드들 중 피투피 통신 대상(인트라샤드 통신 노드) 정보를 저장한 인트라샤드 통신 노드 리스트와, 워킹샤드 외 노드들 중 피투피 통신 대상(인터샤드 통신 노드) 정보를 저장한 인터샤드 통신 노드 리스트를 포함할 수 있다. Each node has an intra-shard communication node list that stores information on P2P communication targets (intra-shard communication nodes) among nodes within the working shard, and an inter-shard that stores information on peer-to-peer communication targets (inter-shard communication nodes) among nodes outside the working shard. May include a communication node list.
각 노드의 워킹샤드 내 통신 대상인 인트라샤드 통신 노드는 kademlia 규칙에 따라 결정될 수 있다. 각 노드의 워킹샤드 외 통신 대상인 인터샤드 통신 노드는 이웃 샤드에 속한 노드들 중 일부 노드들로 랜덤하게 결정할 수 있다. The intra-shard communication node that is the communication target within the working shard of each node can be determined according to kademlia rules. In addition to each node's working shard, the inter-shard communication node that is the communication target can be randomly determined to be some of the nodes belonging to neighboring shards.
이러한 방식으로 결정된 인트라샤드 통신 노드 리스트 및 인터샤드 통신 노드 리스트를 기반으로 워킹샤드 내 및 워킹샤드 외 피투피 통신을 통한 정보 공유가 가능해진다. 임의의 노드는 인트라샤드 통신 노드와 공유하는 정보와, 인터샤드 통신 노드와 공유하는 정보가 다를 수 있다. 즉, 인터샤드 통신 노드와 공유하는 정보는 인트라샤드 통신 노드와 공유하는 정보 보다 제한적일 수 있다. 각 노드에 할당되는 인트라샤드 통신 노드 리스트와 인터샤드 통신 노드 리스트에 포함되는 인트라샤드 통신 노드와 인터샤드 통신 노드는 랜덤하게 재구성될 수 있다.Based on the intra-shard communication node list and inter-shard communication node list determined in this way, information sharing through peer-to-peer communication within and outside of the working shard becomes possible. Any node may have different information shared with an intra-shard communication node and information shared with an inter-shard communication node. In other words, information shared with inter-shard communication nodes may be more limited than information shared with intra-shard communication nodes. Intra-shard communication nodes and inter-shard communication nodes included in the intra-shard communication node list and inter-shard communication node list assigned to each node can be randomly reconfigured.
도 1에서 워킹샤드 내 노드들과 통신하는 노드들(111, 121, 131)은 해칭되지 않은 원형으로 표시되어 있고, 워킹샤드 외 노드들과 통신하는 노드들(112, 122, 132)은 해칭 처리된 원형으로 표시되어 있다. 워킹샤드 외 노드들과 통신하는 노드들(112, 122, 132)은 인터샤드 통신 노드 리스트를 기반으로 이웃 샤드에 속한 노드들과 통신할 수 있다. 여기서, 이웃 샤드라 함은 샤드 주소의 비트 거리가 1인 샤드일 수 있다. 비트 거리가 1이라 함은, 샤드의 주소가 오직 한 자리의 비트 값만 다른 것을 의미할 수 있다. 즉, 주소 '00'과 비트 거리가 1인 주소는 '01'과 '10'일 수 있다.In Figure 1, nodes 111, 121, and 131 that communicate with nodes within the working shard are indicated as unhatched circles, and nodes 112, 122, and 132 that communicate with nodes other than the working shard are hatched. It is indicated by a circular shape. Nodes 112, 122, and 132 that communicate with nodes other than the working shard can communicate with nodes belonging to neighboring shards based on the inter-shard communication node list. Here, the neighboring shard may be a shard whose bit distance of the shard address is 1. A bit distance of 1 may mean that the shard address differs by only one bit value. That is, addresses with a bit distance of 1 from address '00' can be '01' and '10'.
도 1의 예에서, 제1샤드(110)의 주소는 '00', 제2샤드(120)의 주소는 '01', 제3샤드(130)의 주소는 '10'인 경우, 제1샤드(110)와 제2샤드(120)의 주소는 각각 '00', '01'로서 비트 거리가 1이고, 제1샤드(110)와 제3샤드(130)의 주소는 각각 '00', '10'로서 비트 거리가 1이지만, 제2샤드(110)와 제3샤드(130)의 주소는 각각 '01', '10'로서, 2개의 자리값이 다르기 때문에 비트 거리가 1이 아니다.In the example of Figure 1, if 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 first shard 130 is The addresses of (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 '01', respectively. The bit distance is 10', but the addresses of the second shard 110 and the third shard 130 are '01' and '10', respectively, and the bit distance is not 1 because the two place values are different.
따라서, 제1샤드(110)와 제2샤드(120)는 이웃 샤드이고, 제1샤드(110)와 제3샤드(130)는 이웃 샤드로서, 직접 통신을 할 수 있다. 그러나, 제2샤드(120)와 제3샤드(130)는 이웃 샤드가 아니라서 직접 통신을 할 수 없으며, 각각 이웃 샤드인 제1샤드(110)를 통해서 통신을 할 수 있다.Accordingly, the first shard 110 and the second shard 120 are neighboring shards, and the first shard 110 and the third shard 130 are neighboring shards and can communicate directly. However, the second shard 120 and the third shard 130 cannot communicate directly because they are not neighboring shards, and can communicate through the first shard 110, which is a neighboring shard.
도 1의 각 노드들은 샤드 리밸런싱 알고리즘을 포함하며, 기설정된 조건에 따라 샤드 리밸런싱 알고리즘이 실행될 수 있다. 샤드 리밸런싱 알고리즘은 바운디드 쿡쿠(Bounded Cuckoo) 알고리즘을 사용할 수 있으나, 이에 한정되지는 않는다. 바운디드 쿡쿠 알고리즘은 래피드체인(rapidchain) 소개자료(RapidChain: Scaling Blockchain via Full Sharding, https :/ eprint . iacr . org /2018/460. pdf 참고)에 상세하게 기술되어 있다. 본 발명은 바운디드 쿡쿠 알고리즘을 기반으로 샤드들의 건강(health) 지수를 계산하여, 강한(strong) 샤드와 약한(weak) 샤드로 분류하고, 정기적으로 강한 샤드에서 랜덤으로 일부 노드를 추출하여 약한 샤드로 이동시킬 수 있다.Each node in Figure 1 includes a shard rebalancing algorithm, and the shard rebalancing algorithm can be executed according to preset conditions. The shard rebalancing algorithm may use the Bounded Cuckoo algorithm, but is not limited to this. The Bounded Cuckoo algorithm is described in detail in the RapidChain introduction material (see RapidChain: Scaling Blockchain via Full Sharding, https :/ eprint . iacr . org /2018/460. pdf ). The present invention calculates the health index of the shards based on the Bounded Cuckoo algorithm, classifies them into strong shards and weak shards, and periodically extracts some nodes randomly from the strong shards to determine the weak shards. It can be moved to .
샤드 리밸런싱 알고리즘이 실행되면, 워킹샤드를 변경할 노드들이 랜덤으로 선정되어, 노드의 워킹샤드가 재할당되어 변경될 수도 있다. 본 발명에서 분할 샤드가 결정되면 분할 샤드 이외의 샤드에 소속된 노드들 중 랜덤으로 분할 샤드로 워킹샤드를 변경할 수 있다. 노드의 워킹샤드가 변경되면, 해당 노드는 자신이 관리하는 모든 호스트 어카운트와 게스트 어카운트에 대해 워킹샤드 변경 절차를 수행할 수 있다. When the shard rebalancing algorithm is executed, nodes to change working shards are randomly selected, and the working shards of the nodes may be reallocated and changed. In the present invention, once the split shard is determined, the working shard can be randomly changed to a split shard among nodes belonging to shards other than the split shard. When a node's working shard is changed, the node can perform the working shard change procedure for all host accounts and guest accounts it manages.
또한, 노드는 자신이 관리하는 호스트 어카운트 및 게스트 어카운트에 대해 개별적의 워킹샤드 변경 절차를 수행할 수도 있다. 예컨대, 노드는 자신이 위탁 관리하는 게스트 어카운트가 위탁 노드를 변경하는데, 변경되는 위탁 노드가 다른 워킹샤드에 소속된 경우, 해당 게스트 어카운트의 워킹샤드 변경 절차를 수행할 수 있다. 또는, 다른 워킹샤드에 속한 노드에서 관리되던 제3의 어카운트를 신규 위탁 관리할 경우, 해당 제3의 어카운트의 워킹샤드 변경 절차를 수행할 수 있다.Additionally, nodes can also perform individual working shard change procedures for host accounts and guest accounts that they manage. For example, if a guest account that the node manages changes the entrusted node, and the changed entrusted node belongs to a different working shard, the node can perform the working shard change procedure for the guest account. Alternatively, when a third account managed by a node belonging to another working shard is newly entrusted to be managed, the working shard change procedure for the third account can be performed.
도 2는 본 발명의 다이나믹 샤딩 시스템을 포함하는 노드(200)의 예시적인 구성을 도시한 블록도이다. 각 노드는 컴퓨터 장치로 구현될 수 있다.Figure 2 is a block diagram showing an exemplary configuration of a node 200 including the dynamic sharding system of the present invention. Each node may be implemented as a computer device.
일부 예에서, 노드(200)의 다양한 장치 및/또는 구성 요소는 하나 이상의 네트워크(260)를 통해 서로 및 외부 장치와 통신할 수 있는 분산 컴퓨터 리소스(250)를 포함할 수 있다.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 external devices over one or more networks 260.
다양한 실시예에서, 분산 컴퓨터 리소스(250)는 장치(250(1) ~ 250(N))를 포함할 수 있다. In various embodiments, distributed computer resources 250 may include devices 250(1) - 250(N).
본 발명의 실시예는 분산 컴퓨터 리소스(250)가 클러스터 또는 다른 그룹화된 구성으로 동작하여 리소스를 공유하고, 부하를 분산시키며, 성능을 높이고, 또는 다른 목적을 위해 하나 이상의 컴퓨터 장치를 포함할 수 있는 시나리오를 지원한다.Embodiments of the present invention allow distributed computer resources 250 to operate in a cluster or other grouped configuration, which may include one or more computer devices to share resources, distribute load, increase performance, or for other purposes. Supports scenarios.
분산 컴퓨터 리소스(250)는 종래의 서버형 장치, 데스크탑 컴퓨터형 장치, 모바일 장치, 특수 목적형 장치, 내장형 장치 및/또는 웨어러블형 장치와 같은 다양한 범주에 해당할 수 있다. 따라서, 데스크톱 및 랩톱 컴퓨터로 설명되었지만 분산 컴퓨터 리소스(250)는 다양한 장치 유형을 포함할 수 있으며 특정 유형의 장치로 제한되지 않는다. 분산 컴퓨터 리소스(250)는 데스크톱 컴퓨터, 서버 컴퓨터, 웹 서버 컴퓨터, 개인용 컴퓨터, 모바일 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 웨어러블 컴퓨터, 이식형 컴퓨터, 통신 장치, 자동차 컴퓨터, 네트워크 지원 텔레비전, 씬 클라이언트, 터미널, PDA, 게임 콘솔, 게임 장치, 워크 스테이션, 미디어 플레이어, 개인 비디오 레코더(PVR), 셋톱 박스, 카메라, 컴퓨터 장치에 포함하기 위한 통합 구성 요소일 수 있다.Distributed computer resources 250 may fall into various categories, such as traditional server-like devices, desktop computer-like devices, mobile devices, special-purpose devices, embedded devices, and/or wearable devices. Accordingly, although illustrated as desktop and laptop computers, distributed computer resources 250 may include a variety of device types and are not limited to a particular type of device. Distributed computer resources 250 may include desktop computers, server computers, web server computers, personal computers, mobile computers, laptop computers, tablet computers, wearable computers, implantable computers, communication devices, automotive computers, network-enabled televisions, thin clients, and terminals. , may be an integrated component for inclusion in a PDA, game console, gaming device, workstation, media player, personal video recorder (PVR), set-top box, camera, or computer device.
노드(200)는 분산 컴퓨터 리소스(250)인 하나의 컴퓨터 장치일 수 있다. 노드(200)는 버스(240)를 통해 컴퓨터 판독 가능 매체(CRM : Computer Readable Media)(204)에 작동 가능하게 연결된 하나 이상의 프로세싱 유닛(202)을 갖는 임의의 유형의 컴퓨터 장치를 포함할 수 있으며, 일부 경우에는 이들 중 하나 이상을 포함할 수 있다. 이러한 버스(240)는 시스템 버스, 데이터 버스, 주소 버스, PCI 버스, 미니 PCI 버스 및 다양한 로컬, 주변 장치 및/또는 독립 버스를 포함할 수 있다. Node 200 may be a single computer device that is a distributed computer resource 250. Node 200 may include any type of computer device having one or more processing units 202 operably coupled to a computer readable media (CRM) 204 via bus 240; , and in some cases may include one or more of these. These buses 240 may include system buses, data buses, address buses, PCI buses, mini PCI buses, and various local, peripheral, and/or independent buses.
노드(200)에서, 프로세싱 유닛(202)은 예를 들어 CPU 타입 프로세싱 유닛, GPU 타입 프로세싱 유닛, 필드 프로그래밍 가능 게이트 어레이(FPGA), 디지털 신호 프로세서(DSP) 또는 CPU에 의해 구동될 수 있는 다른 하드웨어 로직 구성 요소를 나타내는 프로세싱 유닛(202)을 포함할 수 있다.In node 200, processing unit 202 may be, for example, a CPU-type processing unit, a GPU-type processing unit, a field programmable gate array (FPGA), a digital signal processor (DSP), or other hardware that may be driven by a CPU. It may include a processing unit 202 representing logic components.
예를 들어, 이러한 하드웨어 로직 구성 요소는 ASIC(Application-Specific Integrated Circuits), ASP(Application-Specific Standard Products), SOC(System-on-a-chip) 시스템, 복잡한 프로그래밍 가능 논리 장치(CPLD) 등을 포함할 수 있다. 구체적으로, CRM(204)은 외부 CPU 타입 프로세싱 유닛(206), 외부 GPU 타입 프로세싱 유닛(208)과 같은 외부 프로세싱 유닛(208) 및/또는 FPGA형 가속기(210(1)), DSP형 가속기(210(2)) 또는 기타 가속기(210(N))와 같은 외부 가속기(210)에 의해 실행 가능한 명령을 저장할 수 있다.For example, these hardware logic components include application-specific integrated circuits (ASICs), application-specific standard products (ASPs), system-on-a-chip (SOC) systems, and complex programmable logic devices (CPLDs). It can be included. Specifically, the CRM 204 includes an external processing unit 208 such as an external CPU type processing unit 206, an external GPU type processing unit 208, and/or an FPGA type accelerator 210(1), a DSP type accelerator ( Commands executable by an external accelerator 210, such as 210(2)) or other accelerator 210(N), may be stored.
본 명세서에 기재된 CRM(204)는 컴퓨터 저장 매체 및/또는 통신 매체를 포함할 수 있다. CRM 204 described herein may include computer storage media and/or communication media.
컴퓨터 저장 매체는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 메모리, 비휘발성 메모리 및/또는 다른 영구 또는 보조 컴퓨터 저장 매체와 같은 유형의 저장 유닛, 착탈식 및 비착탈식 컴퓨터 저장 매체를 포함할 수 있다.Computer storage media refers to types of memory, such as volatile memory, non-volatile memory, and/or other permanent or secondary computer storage media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data. storage units, and may include removable and non-removable computer storage media.
컴퓨터 저장 매체는 RAM, 정적 RAM(SRAM), 동적 RAM(DRAM), 위상 변화 메모리(PRAM), 읽기전용메모리(ROM), 소거 가능 프로그래밍 가능 읽기 전용 메모리(EPROM), 전기 소거 가능 프로그램 가능 읽기 전용 메모리(EEPROM), 플래시 메모리, DVD, 광학 저장 매체, 자기 카세트, 자기 테이프, 솔리드스테이트 메모리(SSD) 등일 수 있다.Computer storage media includes RAM, static RAM (SRAM), dynamic RAM (DRAM), phase-change memory (PRAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), and electrically erasable programmable read-only memory. It may be memory (EEPROM), flash memory, DVD, optical storage media, magnetic cassette, magnetic tape, solid state memory (SSD), etc.
CRM(204)에 저장된 실행 가능한 명령어는 운영 체제(220) 및 프로세싱 유닛(202)에 의해 로드 가능하고 실행 가능한 다른 모듈, 프로그램 또는 애플리케이션을 포함할 수 있다.Executable instructions stored in CRM 204 may include operating system 220 and other modules, programs, or applications that are loadable and executable by processing unit 202.
추가적으로 또는 대안적으로, 본 명세서에서 기능적으로 설명된 것은 가속기와 같은 하나 이상의 하드웨어 로직 구성 요소에 의해 적어도 부분적으로 수행될 수 있다.Additionally or alternatively, the functionality described herein may be performed, at least in part, by one or more hardware logic components, such as an accelerator.
예를 들어, 사용될 수 있는 예시적인 유형의 하드웨어 로직 구성 요소는 FPGA(Field-programmable Gate Array), ASIC(Application-Specific Integrated Circuits), ASSP(Application-Specific Standard Products), System-on-a chip system(SOC), 복합 프로그램가능 로직 장치(CPLD) 등을 포함한다. 예를 들어, 가속기는 FPGA 패브릭에 내장된 CPU를 포함하는 XILINX 또는 ALTERA의 하이브리드 장치일 수 있다.For example, example types of hardware logic components that may be used include Field-programmable Gate Arrays (FPGAs), Application-Specific Integrated Circuits (ASICs), Application-Specific Standard Products (ASSPs), and System-on-a chip systems. (SOC), Complex Programmable Logic Device (CPLD), etc. For example, the accelerator could be a hybrid device from XILINX or ALTERA that includes a CPU embedded in an FPGA fabric.
예시된 실시예에서, CRM(204)은 또한 데이터 저장소(212)를 포함할 수 있다. 일부 실시예에서, 데이터 저장소(212)는 데이터베이스, 데이터웨어 하우스 또는 다른 유형의 구조적 또는 비 구조적 데이터 저장소와 같은 데이터 저장소를 포함할 수 있다. In the illustrated embodiment, CRM 204 may also include data store 212. In some embodiments, data store 212 may include a data store, such as a database, data warehouse, or other type of structured or unstructured data store.
일부 실시예에서, 데이터 저장소(212)는 하나 이상의 하이퍼 텍스트 마크업 언어(HTML) 테이블, 자원 설명 프레임 워크(RDF: Resource description framework) 테이블, 웹 온톨로지 언어(OWL) 테이블 및/또는 XML(Extensible Markup Language) 테이블을 포함하는 웹 테이블과 같은 데이터 액세스를 가능하게 하는 하나 이상의 테이블, 인덱스, 저장 프로시저 등을 갖는 코퍼스 및/또는 관계형 데이터베이스를 포함할 수 있다. In some embodiments, data store 212 may include one or more hypertext markup language (HTML) tables, resource description framework (RDF) tables, Web Ontology Language (OWL) tables, and/or Extensible Markup (XML) tables. It may include a corpus and/or relational database with one or more tables, indexes, stored procedures, etc. that enable data access, such as web tables containing Language) tables.
예를 들어, 데이터 저장소(212)는 CRM(204)에 저장되고 프로세싱 유닛(202)에 의해 실행되는 프로세스, 애플리케이션, 컴포넌트 및/또는 모듈의 동작을 위한 데이터 및/또는 명령어를 저장할 수 있다.For example, data store 212 may store data and/or instructions for the operation of processes, applications, components and/or modules stored in CRM 204 and executed by processing unit 202.
노드(200)는 하나 이상의 입/출력(I/O) 인터페이스(216)를 더 포함할 수 있고, 입/출력(I/O) 인터페이스(216)는 노드(200)가 주변 입력 장치(예를 들어, 키보드, 마우스, 펜, 게임 컨트롤러, 음성 입력 장치, 터치 입력 장치, 제스처 입력 장치, 카메라 등)를 포함하는 사용자 입력 장치와 주변 출력 장치(예를 들어, 디스플레이, 프린터 등)와 통신할 수 있는 입/출력 장치와 통신할 수 있게 하는 I/O 인터페이스(216)일 수 있다.The node 200 may further include one or more input/output (I/O) interfaces 216, where the node 200 can connect peripheral input devices (e.g. For example, it can communicate with user input devices, including keyboards, mice, pens, game controllers, voice input devices, touch input devices, gesture input devices, cameras, etc., and peripheral output devices (e.g. displays, printers, etc.). It may be an I/O interface 216 that allows communication with an input/output device.
또한, 노드(200)는 블록체인 네트워크의 노드일 수 있으며, 노드(200)와 네트워크(260)를 통해 블록체인 네트워크의 다른 노드와 통신할 수 있게 하는 하나 이상의 입력/출력(I/O) 네트워크 인터페이스(218)를 더 포함할 수 있다. Additionally, node 200 may be a node in a blockchain network and one or more input/output (I/O) networks that enable node 200 to communicate with other nodes in the blockchain network via network 260. It may further include an interface 218.
그러한 입력/출력(I/O) 네트워크 인터페이스(218)는 네트워크(260)를 통해 데이터를 송수신하기 위한 하나 이상의 네트워크 인터페이스 제어기(NIC) 또는 다른 유형의 트랜시버 장치를 포함할 수 있다. Such 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 data over network 260.
네트워크(260)는 인터넷과 같은 공용 네트워크, 기관 및/또는 개인 인트라넷과 같은 개인 네트워크, 또는 개인 및 공용 네트워크의 일부 조합을 포함할 수 있다. 네트워크(260)는 근거리 통신망(LAN), 광역 통신망(WAN), 위성 네트워크, 케이블 네트워크, Wi-Fi 네트워크, WiMax 네트워크를 포함하지만 이에 제한되지 않는 임의의 유형의 유선 및/또는 무선 네트워크를 포함할 수 있으며, 이동 통신 네트워크(예를 들어, 3G, 4G, 5G 등) 또는 이들의 임의의 조합을 포함할 수 있다. 네트워크(260)는 인터넷 프로토콜(IP), 전송 제어 프로토콜(TCP), 사용자 데이터그램 프로토콜(UDP), 또는 다른 유형의 프로토콜과 같은 패킷 기반 및/또는 데이터 그램 기반 프로토콜을 포함하는 통신 프로토콜을 이용할 수 있다. Network 260 may include a public network such as the Internet, a private network such as an institutional and/or private intranet, or some combination of private and public networks. Network 260 may 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, and a WiMax network. It may include a mobile communication network (e.g., 3G, 4G, 5G, etc.) or any combination thereof. Network 260 may utilize communication protocols, 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. there is.
더욱이, 네트워크(260)는 네트워크 통신을 용이하게 하거나 스위치, 라우터, 게이트웨이, 액세스 포인트, 방화벽, 기지국, 리피터, 백본 장치와 같은 네트워크를 위한 하드웨어 기반을 형성하는 다수의 장치를 포함할 수 있다.Moreover, network 260 may include a number of devices that facilitate network communications or form the hardware infrastructure for the network, such as switches, routers, gateways, access points, firewalls, base stations, repeaters, and backbone devices.
일부 실시 예들에서, 네트워크(260)는 무선 액세스 포인트(WAP)와 같은 무선 네트워크로의 연결을 가능하게 하는 장치들을 더 포함할 수 있다. 본 발명에 따른 실시예들은 IEEE(Institute of Electrical and Electronics Engineers) 802.11 표준 (예를 들어, 802.11g, 802.11n 등)을 지원하는 WAP를 포함하여 다양한 전자기 주파수(예를 들어, 무선 주파수)를 통해 데이터를 송수신하는 WAP를 통한 연결을 지원할 수 있다.In some embodiments, network 260 may further include devices that enable connection to a wireless network, such as a wireless access point (WAP). Embodiments according to the present invention include WAPs that support the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standard (e.g., 802.11g, 802.11n, etc.) via various electromagnetic frequencies (e.g., radio frequencies). It can support connection through WAP for sending and receiving data.
예시된 실시예에서, CRM(204)은 운영 체제(220)와 다이나믹 샤딩 시스템(222)을 포함할 수 있다. 다이나믹 샤딩 시스템(222)은 블록(224, 226, 228, 230, 232)으로 도시된 하나 이상의 모듈 및/또는 API를 포함할 수 있지만, 이는 예시일 뿐이고, 그 수는 더 많거나 적을 수 있다. 각 블록(224, 226, 228, 230, 232)과 관련하여 설명된 기능들은 더 적은 수의 모듈 및/또는 API들에 의해 수행되도록 결합될 수 있거나 더 많은 수의 모듈들 및/또는 API들에 의해 분할 및 수행될 수 있다.In the illustrated embodiment, CRM 204 may include an operating system 220 and a dynamic sharding system 222. Dynamic sharding system 222 may include one or more modules and/or APIs shown as blocks 224, 226, 228, 230, and 232, but these are examples only and the number may be more or less. The functions described with respect to each block 224, 226, 228, 230, 232 may be combined to be performed by fewer modules and/or APIs or may be performed by a larger number of modules and/or APIs. It can be divided and performed by.
대안적으로, 운영체제, 데이터 저장소에 저장되는 데이터 및 다이나믹 샤딩 시스템의 일부 또는 전부는 프로세스 유닛(202) 상의 메모리(214), CPU형 프로세싱 유닛(206) 상의 메모리(236(1)), GPU형 프로세싱 유닛(208) 상의 메모리(236(2)), FPGA형 가속기(210(1)) 상의 메모리(236(3)), DSP형 가속기(210(2)) 상의 메모리(236(4)) 및/또는 다른 가속기(210(N)) 상의 메모리(236(M))와 같은 별도의 메모리(236)에 저장될 수도 있다.Alternatively, some or all of the operating system, data stored in the data store, and the dynamic sharding system may include memory 214 on the processing unit 202, memory 236(1) on the CPU-type processing unit 206, and GPU-type memory 214 on the processing unit 206. Memory 236(2) on processing unit 208, memory 236(3) on FPGA-type accelerator 210(1), memory 236(4) on DSP-type accelerator 210(2), and /or may be stored in a separate memory 236, such as memory 236(M) on another accelerator 210(N).
다이나믹 샤딩 시스템(222)은, 샤드 추가 판단 모듈(224), 뉴 샤드 주소 산출 모듈(226), 분할 샤드 산출 모듈(228), 노드 분배 모듈(230) 및 어카운트 처리 모듈(232)을 포함할 수 있다. 본 발명의 노드 분배 시스템은 노드 분배 모듈(230)을 의미할 수 있다. 블록체인 네트워크를 구성하는 모든 노드들은 다이나믹 샤딩 시스템을 포함한다. The dynamic sharding system 222 may include a shard addition determination module 224, a new shard address calculation module 226, a split shard calculation module 228, a node distribution module 230, and an account processing module 232. there is. The node distribution system of the present invention may refer to the node distribution module 230. All nodes that make up the blockchain network include a dynamic sharding system.
본 발명이 적용되는 다이나믹 샤딩 시스템은 본 발명의 출원인이 특허출원한 대한민국 출원 제2022-0102456호, '블록체인 네트워크에서 다이나믹 샤딩 시스템 및 방법'을 참고하여 이해될 수 있다.The dynamic sharding system to which the present invention is applied can be understood by referring to Republic of Korea Application No. 2022-0102456, 'Dynamic sharding system and method in a blockchain network' filed by the applicant of the present invention.
샤드 추가 판단 모듈(224)은 블록체인 네트워크 또는 소속된 워킹샤드의 트래픽 량과 기설정된 기준치를 비교하여, 트래픽 량이 기준치를 초과하면 샤드를 추가해야 하는 것으로 판단할 수 있다. 샤드 추가 판단 모듈(224)는 샤드 소속 노드의 개수 및 어카운트의 개수를 기반으로 샤드 추가 여부를 판단할 수 있다.The shard addition determination module 224 may compare the traffic volume of the blockchain network or affiliated working shard with a preset standard value, and determine that a shard should be added if the traffic volume exceeds the standard value. The shard addition determination module 224 can determine whether to add a shard based on the number of nodes belonging to the shard and the number of accounts.
뉴 샤드 주소 산출 모듈(226)은 현재 네트워크에 포함된 샤드의 개수를 기반으로 새로운 샤드의 주소를 산출할 수 있다. 뉴 샤드 주소는 '현재 네트워크의 샤드 주소의 최고 값 + 1'일 수 있다. 네트워크에 포함된 모든 노드들은 뉴 샤드 주소 산출 모듈(226)을 구동하여 뉴 샤드 주소 정보를 산출할 수 있다.The new shard address calculation module 226 can calculate the address of a new shard based on the number of shards currently included in the network. The new shard address may be ‘the highest value of the shard address in the current network + 1’. All nodes included in the network can calculate new shard address information by running the new shard address calculation module 226.
분할 샤드 산출 모듈(228)은 뉴 샤드 주소를 기반으로 뉴 샤드로 분할되는 분할 샤드 주소를 산출할 수 있다. 뉴 샤드와 분할 샤드는 비트 거리가 1인 이웃 샤드일 수 있다. 분할 샤드 산출 모듈(228)은 뉴 샤드 주소의 이진 값의 0로 세팅된 가장 큰 자리 비트(MSSB: most significant set bit)의 1을 0으로 치환하여 분할 샤드 주소를 산출할 수 있다. The split shard calculation module 228 can calculate the split shard address divided into new shards based on the new shard address. New shards and split shards can be neighboring shards with a bit distance of 1. The split shard calculation module 228 can calculate the split shard address by replacing the 1 of the most significant set bit (MSSB) set to 0 in the binary value of the new shard address with 0.
노드 분배 모듈(230)은 분할 샤드를 워킹샤드로 둔 노드들 중 일부는 올드 샤드에 배정하고, 나머지는 뉴 샤드에 배정할 수 있다. 노드 분배 모듈(230)은 샤드 분할 후 두 샤드의 지분량(stake), 노드수 및 보트 카운트(vote count)가 비슷하게 되도록 각 샤드에 노드들을 배정할 수 있다. The node distribution module 230 may assign some of the nodes that have split shards as working shards to old shards, and assign the rest to new shards. The node distribution module 230 may assign nodes to each shard so that the stake, number of nodes, and vote count of the two shards are similar after shard division.
분할 샤드에 소속된 분할 샤드 노드에 포함된 노드 분배 모듈(230)은 분할 샤드 노드들을 n차원 구(n은 분할 파라미터의 개수)에 가상으로 배치하고, n차원 구에 배치된 분할 샤드 노드들을 2 그룹으로 분리하기 위한 분할 방정식을 도출하며, 분할 샤드 노드들을 n차원 구에 배치하기 위한 정보와 분할 방정식 정보를 비분할 샤드에 소속된 노드들(이하, 비분할 샤드 노드)에게 공유한다.The node distribution module 230 included in the split shard node belonging to the split shard virtually arranges the split shard nodes in an n-dimensional sphere (n is the number of partition parameters), and divides the split shard nodes placed in the n-dimensional sphere into 2 The partitioning equation for separation into groups is derived, and the information for placing the split shard nodes in an n-dimensional sphere and the partitioning equation information are shared with nodes belonging to the non-partitioned shard (hereinafter referred to as non-partitioned shard nodes).
비분할 샤드 노드에 포함된 노드 분배 모듈(230)은 분할 샤드 노드들을 n차원 구에 배치하기 위한 정보와 분할 방정식 정보를 기반으로, 분할 샤드 노드 중 올드 샤드에 배정되는 올드 샤드 노드들과 뉴 샤드에 배정되는 뉴 샤드 노드들을 산출할 수 있다.The node distribution module 230 included in the non-split shard node divides the old shard nodes and new shards assigned to the old shard among the split shard nodes based on the information for placing the split shard nodes in an n-dimensional sphere and the partition equation information. New shard nodes assigned to can be calculated.
어카운트 처리 모듈(232)은 노드의 샤드 배정 결과에 따라 해당 노드가 관리하는 계정별 트랜잭션 체인 및 어카운트 디렉토리를 관리한다. 예컨대, 올드 샤드 노드들은 뉴 샤드 어카운트의 계정별 트랜잭션 체인(AWTC)을 삭제하고, 뉴 샤드 노드들은 올드 샤드 어카운트의 계정별 트랜잭션 체인(AWTC)을 삭제하며, 뉴 샤드 어카운트의 홈샤드 노드는 아카운트 디렉토리에서 분할 어카운트의 워킹샤드 정보를 분할 샤드(올드 샤드)에서 뉴 샤드로 변경한다.The account processing module 232 manages the transaction chain and account directory for each account managed by the node according to the node's shard allocation results. For example, old shard nodes delete the account-specific transaction chain (AWTC) of the new shard account, new shard nodes delete the account-specific transaction chain (AWTC) of the old shard account, and home shard nodes of the new shard account delete the account transaction chain (AWTC). In the directory, change the working shard information of the split account from split shard (old shard) to new shard.
도 3은 본 발명의 블록체인 네트워크에서, 데이터 저장소(300)에 저장된 정보를 도시한 도면이다.Figure 3 is a diagram showing information stored in the data storage 300 in the blockchain network of the present invention.
노드의 데이터 저장소(300)에는, 노드의 워킹샤드에 속한 모든 어카운트의 계정별 트랜잭션 체인(AWTC)(302, 304, 306, 308)과, 노드의 워킹샤드를 홈샤드로 둔 어카운트들의 워킹샤드 이력 정보를 저장한 어카운트 디렉토리(310)와, 워킹샤드에 속한 모든 어카운트의 계정별 트랜잭션을 결합하고 워킹샤드에 속한 모든 노드들간 합의된 라운드 스테이트 블록을 체인으로 저장한 라운드 스테이트 체인(312)과, 블록체인 네트워크에 속한 모든 라운드 스테이트 블록을 결합하고 합의한 월드 라운드 스테이트 블록을 체인으로 저장한 월드 라운드 스테이트 체인(314)과, 노드의 워킹샤드 내 통신 대상 노드 정보를 저장한 인트라샤드 통신 노드 리스트(316) 및 노드의 워킹샤드 외 통신 대상 노드 정보를 저장한 인터샤드 통신 노드 리스트(318)가 저장될 수 있다.In the node's data storage 300, the account-specific transaction chain (AWTC) (302, 304, 306, 308) of all accounts belonging to the node's working shard, and the working shard history of accounts that have the node's working shard as their home shard. An account directory 310 that stores information, a round state chain 312 that combines account-specific transactions of all accounts belonging to the working shard and stores the round state block agreed upon among all nodes belonging to the working shard as a chain, and a block World Round State Chain (314), which combines all Round State blocks belonging to the chain network and stores the agreed upon World Round State blocks as a chain, and Intra-Shard Communication Node List (316), which stores communication target node information within the node's working shard. And an inter-shard communication node list 318 that stores communication target node information other than the node's working shard may be stored.
어카운트 디렉토리(310)는 노드의 워킹샤드를 홈샤드로 둔 어카운트들의 워킹샤드 이력 정보를 저장한다. 본 예시에서 편의상 각 노드는 하나의 어카운트 즉, 호스트 어카운트만 관리하는 것으로 가정한다. 따라서, 본 예시에서 노드는 어카운트와 동일한 개념일 수 있다. 예컨대, 도 1의 예에서, 노드(111) 관리 어카운트의 홈샤드가 제2샤드(120)인 경우, 제2샤드(120)를 워킹샤드로 둔 노드(121) 및 노드(122)의 어카운트 디렉토리에 노드(111) 관리 어카운트의 워킹샤드 정보로서 제1샤드(110) 정보가 저장된다. 한편, 도 1의 예에서, 노드(112) 관리 어카운트의 홈샤드가 제3샤드(130)인 경우에는, 제3샤드를 워킹샤드로 둔 노드(131) 및 노드(132)의 어카운트 디렉토리에 노드(112) 관리 어카운트의 워킹샤드 정보로서 제1샤드(110) 정보가 저장된다.The account directory 310 stores working shard history information of accounts that have a node's working shard as their home shard. In this example, for convenience, it is assumed that each node manages only one account, that is, the host account. Therefore, in this example, node may have the same concept as account. For example, in the example of FIG. 1, when the home shard of the node 111 management account is the second shard 120, the account directories of node 121 and node 122 with the second shard 120 as the working shard First shard 110 information is stored as working shard information of the node 111 management account. Meanwhile, in the example of FIG. 1, when the home shard of the node 112 management account is the third shard 130, the node is registered in the account directories of node 131 and node 132 with the third shard as the working shard. (112) The first shard (110) information is stored as the working shard information of the management account.
앞서 설명한 바와 같이 노드 및 어카운트들은 워킹샤드를 변경할 수 있다. 이렇게 워킹샤드가 변경되면, 워킹샤드 변경 모듈이 구동되어, 해당 어카운트의 홈샤드 소속 노드들에는 변경된 워킹샤드 정보가 업데이트될 수 있다.As explained previously, nodes and accounts can change working shards. When the working shard is changed in this way, the working shard change module is run, and the changed working shard information can be updated in the nodes belonging to the home shard of the corresponding account.
본 발명은 워킹샤드 변경 모듈에 의해 임의의 어카운트의 홈샤드 소속 노드들의 어카운트 디렉토리에, 해당 어카운트의 최신 워킹샤드 주소가 업데이트되는 것이 바람직하다.In the present invention, it is preferable that the latest working shard address of the account is updated in the account directory of the nodes belonging to the home shard of any account by the working shard change module.
도 4는 본 발명의 일 실시예에 따른 분할 샤드 노드들에서 실행되는 노드 분배 시스템(400)을 도시한 구성도이다.Figure 4 is a configuration diagram illustrating a node distribution system 400 running on split shard nodes according to an embodiment of the present invention.
이러한 분할 샤드 노드들에서 실행되는 노드 분배 시스템(400)은 노드의 컴퓨터 시스템에 의해 구현될 수 있으며, 도 2의 노드 분배 모듈(230)의 일부일 수 있다.The node distribution system 400 running on these split shard nodes may be implemented by the node's computer system and may be part of the node distribution module 230 of FIG. 2.
본 발명의 분할 샤드 노드들에서 실행되는 노드 분배 시스템(400)은, 분할 파라미터 및 시드값을 결정하고 분할 샤드 노드들의 주소 정보 및 시드값을 기반으로 분할 샤드 노드들을 n차원(n은 분할 파라미터의 개수) 구의 표면에 가상으로 배치하는 노드 배치부(402)와, 분할 파라미터별로 각각의 분할 샤드 노드의 분할 파라미터 특성값을 적용하여 n차원 구에서의 n개의 무게중심점을 도출하는 무게중심점 도출부(404)와, n개의 무게중심점을 포함하는 분할 방정식을 도출하는 분할 방정식 도출부(406)와, 분할 방정식을 기반으로 분할 샤드 노드들의 분할후 샤드를 배정하는 분할후 샤드 배정부(408)와, 시드값 및 분할 방정식을 공유하는 분할 방정식 공유부(410)를 포함한다.The node distribution system 400, which runs on the split shard nodes of the present invention, determines the split parameters and seed values and divides the split shard nodes into n dimensions (n is the split parameter) based on the address information and seed values of the split shard nodes. Number) A node placement unit 402 that virtually arranges on the surface of the sphere, and a center of gravity derivation unit (402) that derives n center of gravity points in an n-dimensional sphere by applying the split parameter characteristic values of each split shard node for each split parameter ( 404), a partition equation derivation unit 406 that derives a partition equation including n center points, and a post-split shard allocation unit 408 that allocates shards after the split shard nodes based on the partition equation, It includes a split equation sharing unit 410 that shares seed values and split equations.
노드 배치부(402)는 분할 샤드 노드들의 주소 정보와 시드값을 기반으로 의사 랜덤값을 도출하고, 도출된 의사 랜덤값을 기반으로 n차원 구의 표면에 분할 샤드 노드들을 가상으로 배치할 수 있다. 분할 파라미터는 지분량(stake) 및 보트 카운트(vote count)가 포함될 수 있고, 이외 분할 파라미터에는 노드수가 더 포함될 수도 있다. 분할 파라미터는 각 분할 샤드 노드마다 다른 값을 가질 수 있다. 분할 파라미터가 지분량과 보트카운트인 경우 n은 2이고, 분할 파라미터에 노드수를 더 포함하는 경우 n은 3이다. 분할 파라미터가 2개인 경우 2차원 구(즉, 원)의 표면(즉, 원주)에 분할 샤드 노드들이 배치될 수 있고, 분할 파라미터가 3개인 경우 3차원 구(즉, 구)의 표면(즉, 구 표면)에 분할 샤드 노드들이 배치될 수 있다. The node placement unit 402 may derive a pseudo-random value based on the address information and seed value of the split shard nodes, and virtually arrange the split shard nodes on the surface of the n-dimensional sphere based on the derived pseudo-random value. Splitting parameters may include stake and vote count, and other splitting parameters may further include the number of nodes. Splitting parameters may have different values for each split shard node. If the splitting parameters are stake amount and vote count, n is 2, and if the splitting parameters include the number of nodes, n is 3. When the splitting parameter is 2, the split shard nodes can be placed on the surface (i.e., circumference) of a two-dimensional sphere (i.e., a circle), and when the splitting parameter is three, the split shard nodes can be placed on the surface (i.e., circumference) of a three-dimensional sphere (i.e., a sphere). Split shard nodes can be placed on the sphere surface.
노드 배치부(402)는 분할 샤드 노드들의 주소와 시드값을 곱하여 도출된 결과값을 이용하여 n차원 구의 표면 상의 위치를 결정할 수 있다. 예컨대, 분할 파라미터가 2개이면 분할 샤드 노드들은 2차원 구(원)의 표면(원주) 상에 배치되는데, 이 원주는 0도 ~ 360도의 1차원의 선 공간에 해당한다. 따라서, 분할 샤드 노드의 주소와 시드값을 곱하여 도출된 의사 랜덤값 중 일부 비트값을 이용하면 해당 분할 샤드 노드의 원주 상에서의 위치를 결정할 수 있다. 또한, 분할 파라미터가 3개이면 분할 샤드 노드들은 3차원 구의 표면 상에 배치되는데, 이 구의 표면은 2차원 평면 공간에 해당한다. 따라서, 분할 샤드 노드의 주소와 시드값을 곱하여 도출된 의사 랜덤값에서 선택된 2그룹의 비트값을 위도값과 경도값으로 이용하면 해당 분할 샤드 노드의 3차원 구의 표면 상의 위치를 결정할 수 있게 된다.The node arrangement unit 402 can determine the location on the surface of the n-dimensional sphere using the result obtained by multiplying the addresses of the split shard nodes and the seed value. For example, if the split parameter is 2, the split shard nodes are placed on the surface (circumference) of a two-dimensional sphere (circle), which corresponds to a one-dimensional line space of 0 degrees to 360 degrees. Therefore, by using some bit values of the pseudo-random value derived by multiplying the address of the split shard node and the seed value, the location of the corresponding split shard node on the circumference can be determined. Additionally, if the splitting parameter is 3, the split shard nodes are placed on the surface of a 3-dimensional sphere, which corresponds to a 2-dimensional flat space. Therefore, by using the two groups of bit values selected from the pseudo-random values derived by multiplying the address of the split shard node and the seed value as the latitude and longitude values, the location of the split shard node on the surface of the three-dimensional sphere can be determined.
시드값은 n차원 구의 표면에 분할 샤드 노드를 랜덤으로 배치하기 위한 값으로서, 랜덤하게 결정될 수 있다. 이 시드값은 후술하는 n개의 무게중심점의 분포에 따라 다른 값으로 변경될 수도 있다.The seed value is a value for randomly arranging split shard nodes on the surface of an n-dimensional sphere, and can be determined randomly. This seed value may be changed to another value depending on the distribution of n center points, which will be described later.
무게중심점 도출부(404)는 각 분할 샤드 노드의 분할 파라미터 값을 적용하여 n차원 구에서의 무게중심점을 구한다. 분할 파라미터가 지분량과 보트 카운트 2개인 경우, 2차원 구(원)의 원주상에 분할 샤드 노드들이 배치된다. 각 분할 샤드 노드들의 지분량과 보트 카운트 값은 각 분할 샤드 노드들의 특성값으로서 모두 상이할 수 있다. 분할 샤드 노드들의 지분량을 기반으로 2차원 구(원) 에서의 무게중심점을 구하고, 분할 샤드 노드들의 보트 카운트 값을 기반으로 2차원 구(원)에서의 무게중심점을 구한다. 이렇게 분할 파라미터 값을 기반으로 2차원 구(원)에서 2개의 무게중심점을 구할 수 있다. 만약, 2개의 무게중심점이 일치할 경우에는 시드값을 달리하여 분할 샤드 노드들의 배치를 변경할 수 있다.The center of gravity derivation unit 404 applies the split parameter value of each split shard node to obtain the center of gravity in the n-dimensional sphere. When the splitting parameters are two, stake amount and vote count, split shard nodes are placed on the circumference of a two-dimensional sphere (circle). The stake amount and vote count value of each split shard node may be different as characteristic values of each split shard node. The center of gravity in the two-dimensional sphere (circle) is obtained based on the stake amount of the split shard nodes, and the center of gravity in the two-dimensional sphere (circle) is obtained based on the boat count values of the split shard nodes. In this way, two center points of gravity can be obtained from a two-dimensional sphere (circle) based on the division parameter values. If the two centers of gravity coincide, the arrangement of the split shard nodes can be changed by changing the seed value.
분할 파라미터가 3개인 경우 무게중심점 도출부(404)는 분할 파라미터 별로 각각 하나씩, 즉 3개의 무게중심점을 도출할 수 있다When there are three division parameters, the center of gravity derivation unit 404 can derive three center of gravity points, one for each division parameter.
분할 방정식 도출부(406)는 n개의 무게중심점을 지나는 분할 방정식을 도출한다. 분할 방정식은 n개의 무게중심을 지나는 직선, 평면, 초평면의 방정식을 사용할 수 있다. 예컨대, 분할 파라미터가 2개인 경우 2차원 구(원) 내에서 2개의 무게중심점이 도출되며, 2개의 무게중심점을 지나는 1차원 직선의 방정식을 도출하여 이를 분할 방정식으로 사용할 수 있다. 2차원 XY공간상의 1차원 직선의 분할 방정식은 A1X + A2Y = B 로 표현될 수 있다. 한편, 분할 파라미터가 3개인 경우 3차원 구 내에서 3개의 무게중심점이 도출되며, 3개의 무게중심점을 지나는 2차원 평면을 도출하여 이를 분할 방정식으로 사용할 수 있다. 3차원 XYZ공간상의 2차원 평면의 분할 방정식은 A1X + A2Y + A3Z = B 로 표현될 수 있다.The partition equation deriving unit 406 derives a partition equation passing through n center points. The division equation can use the equation of a straight line, plane, or hyperplane passing through n centers of gravity. For example, if there are two division parameters, two center of gravity points are derived within a two-dimensional sphere (circle), and the equation of a one-dimensional straight line passing through the two center points can be derived and used as the division equation. The division equation of a 1-dimensional straight line in 2-dimensional XY space can be expressed as A 1 X + A 2 Y = B. Meanwhile, when there are three division parameters, three center of gravity points are derived within a three-dimensional sphere, and a two-dimensional plane passing through the three center points can be derived and used as the division equation. The partition equation of a 2-dimensional plane in 3-dimensional XYZ space can be expressed as A 1 X + A 2 Y + A 3 Z = B.
분할후 샤드 배정부(408)는 n차원 구의 표면에 배치된 분할 샤드 노드들을 분할 방정식으로 분할하여 분할된 각 그룹별로 올드 샤드 또는 뉴 샤드로 배정한다. 이렇게 분할 샤드 노드들이 올드 샤드 또는 뉴 샤드로 배정되면 해당 분할 샤드 노드가 관리하는 모든 어카운트들이 모두 동일한 샤드로 배정된다. 한편, 임의의 분할 샤드 노드의 위치가 분할 방정식 상에 위치한 경우(분할 방정식에 의해 나눠지지 않을 경우), 해당 분할 샤드 노드의 주소와 시드값으로 도출된 의사 랜덤값의 임의의 한 비트값(최상위 비트 또는 최하위 비트)을 이용하여 분할후 샤드를 배정할 수 있다.After division, the shard allocation unit 408 divides the divided shard nodes arranged on the surface of the n-dimensional sphere using a division equation and assigns each divided group to an old shard or a new shard. When split shard nodes are assigned to old shards or new shards, all accounts managed by the split shard nodes are assigned to the same shard. Meanwhile, if the location of a random split shard node is located on the split equation (if it is not divided by the split equation), one random bit value (highest level) of the pseudo-random value derived from the address and seed value of the split shard node Bit or least significant bit) can be used to assign shards after division.
분할 방정식 공유부(410)는 n차원 구의 표면에 분할 샤드 노드들을 배치하기 위한 시드값과 분할 방정식의 변수항의 계수값 및 상수값을 비분할 샤드 노드에 공유한다. 본 발명을 적용할 경우 노드의 개수에 상관없이 분할 파라미터의 개수(n) + 2 개의 데이터를 공유함으로써, 분할 샤드 노드의 분할후 배정 샤드 정보를 공유할 수 있게 된다.The partition equation sharing unit 410 shares the seed value for arranging the partitioned shard nodes on the surface of the n-dimensional sphere and the coefficient and constant values of the variable terms of the partition equation with the non-partitioned shard nodes. When applying the present invention, it is possible to share the assigned shard information after the split of the split shard node by sharing the number of split parameters (n) + 2 data regardless of the number of nodes.
분할 방정식에 의해 분할 샤드 노드가 올드 샤드 노드 및 뉴 샤드 노드로 분할되면, 올드 샤드 노드에서 실행되는 어카운트 처리 모듈(232)은 뉴 샤드 노드가 관리하는 뉴 샤드 어카운트의 계정별 트랜잭션 체인(AWTC)를 삭제하고 올드 샤드 어카운트의 계정별 트랜잭션 체인(AWTC)만을 관리한다. 또한, 뉴 샤드 노드에서 실행되는 어카운트 처리 모듈(232)은 올드 샤드 노드가 관리하는 올드 샤드 어카운트의 계정별 트랜잭션 체인(AWTC)를 삭제하고 뉴 샤드 어카운트의 계정별 트랜잭션 체인(AWTC)만을 관리한다.When a split shard node is divided into an old shard node and a new shard node by the split equation, the account processing module 232 running on the old shard node processes the account-specific transaction chain (AWTC) of the new shard account managed by the new shard node. Delete and manage only the account-specific transaction chain (AWTC) of the old shard account. Additionally, the account processing module 232 running on the new shard node deletes the account-specific transaction chain (AWTC) of the old shard account managed by the old shard node and manages only the account-specific transaction chain (AWTC) of the new shard account.
도 5는 본 발명의 일 실시예에 따른 비분할 샤드 노드들에서 실행되는 노드 분배 시스템(500)을 도시한 구성도이다.Figure 5 is a configuration diagram illustrating a node distribution system 500 running on non-partitioned shard nodes according to an embodiment of the present invention.
이러한 비분할 샤드 노드들에서 실행되는 노드 분배 시스템(500)은 노드의 컴퓨터 시스템에 의해 구현될 수 있으며, 도 2의 노드 분배 모듈(230)의 일부일 수 있다. 이 비분할 샤드 노드에는 뉴 샤드 어카운트의 홈샤드에 소속된 노드(뉴 샤드 어카운트의 홈샤드 노드)가 포함될 수 있다.The node distribution system 500 running on these non-split shard nodes may be implemented by the node's computer system and may be part of the node distribution module 230 of FIG. 2. This non-split shard node may include a node belonging to the home shard of the new shard account (home shard node of the new shard account).
본 발명의 비분할 샤드 노드들에서 실행되는 노드 분배 시스템(500)은, 분할 샤드 노드로부터 n차원 구의 표면에 분할 샤드 노드들을 배치하기 위한 시드값과 분할 방정식의 변수항의 계수값 및 상수값을 공유받는 분할 방정식 공유부(502)와, 분할 샤드 노드들의 주소 정보 및 시드값을 기반으로 분할 샤드 노드들을 n차원 구의 표면에 가상으로 배치하는 노드 배치부(504)와, n차원 구에 분할 방정식을 적용하여 분할 샤드 노드들이 2그룹으로 분할되도록 하는 분할 방정식 적용부(506)와, 2그룹의 분할 샤드 노드들에 대해 배정된 샤드를 확인하는 샤드 배정 확인부(508)를 포함한다.The node distribution system 500, which runs on the non-split shard nodes of the present invention, shares the seed value for placing the split shard nodes on the surface of the n-dimensional sphere from the split shard node, and the coefficient value and constant value of the variable term of the partition equation. A split equation sharing unit 502 that receives the split shard nodes, a node placement unit 504 that virtually arranges the split shard nodes on the surface of the n-dimensional sphere based on the address information and seed values of the split shard nodes, and a split equation on the n-dimensional sphere. It includes a partition equation application unit 506 that applies the split shard nodes to be split into two groups, and a shard allocation confirmation unit 508 that checks the shards assigned to the two groups of split shard nodes.
분할 방정식 공유부(502)는 분할 샤드 노드로부터 n차원 구의 표면에 분할 샤드 노드들을 배치하기 위한 시드값과 분할 방정식의 변수항의 계수값 및 상수값을 공유받는다. 본 발명을 적용할 경우 노드의 개수에 상관없이 분할 파라미터의 개수(n) + 2 개의 데이터를 공유함으로써, 분할 샤드 노드의 분할후 배정 샤드 정보를 공유할 수 있게 된다.The split equation sharing unit 502 receives a seed value for arranging split shard nodes on the surface of an n-dimensional sphere, and the coefficient and constant values of the variable terms of the split equation from the split shard node. When applying the present invention, it is possible to share the assigned shard information after the split of the split shard node by sharing the number of split parameters (n) + 2 data regardless of the number of nodes.
노드 배치부(504)는 분할 샤드 노드들의 주소 정보와 시드값을 기반으로 의사 랜덤값을 도출하고, 도출된 의사 랜덤값을 기반으로 n차원 구의 표면에 분할 샤드 노드들을 가상으로 배치할 수 있다. 노드 배치부(504)는 도 4의 분할 샤드 노드에서 수행되는 노드 배치부(402)와 동일할 수 있다. 즉, 분할 샤드 노드들의 주소와 시드값을 곱하여 도출된 결과값을 이용하여 n차원 구의 표면 상의 위치를 결정할 수 있다. 예컨대, 분할 파라미터가 2개이면 분할 샤드 노드들을 2차원 구(원)의 표면(원주) 상에 배치할 수 있고, 분할 파라미터가 3개이면 분할 샤드 노드들을 3차원 구의 표면 상에 배치할 수 있다. 이를 위해, 블록체인 네트워크의 모든 노드들은 분할 파라미터의 개수 정보와, 의사 랜덤값에서 위치 정보를 도출하는 방법을 사전에 공유하는 것이 바람직하다.The node placement unit 504 may derive a pseudo-random value based on the address information and seed value of the split shard nodes, and virtually place the split shard nodes on the surface of the n-dimensional sphere based on the derived pseudo-random value. The node arrangement unit 504 may be the same as the node arrangement unit 402 performed in the split shard node of FIG. 4. In other words, the location on the surface of the n-dimensional sphere can be determined using the result obtained by multiplying the addresses of the split shard nodes and the seed value. For example, if the split parameter is 2, split shard nodes can be placed on the surface (circumference) of a 2-dimensional sphere (circle), and if the split parameter is 3, split shard nodes can be placed on the surface of a 3-dimensional sphere. . To this end, it is desirable for all nodes in the blockchain network to share in advance information on the number of partition parameters and a method for deriving location information from pseudo-random values.
분할 방정식 적용부(506)는 n차원 구를 분할 방정식으로 분할하여 n차원 구의 표면에 배치된 분할 샤드 노드들이 분할 방정식에 의해 두 그룹으로 분리되도록 한다. The split equation application unit 506 splits the n-dimensional sphere using the split equation so that the split shard nodes placed on the surface of the n-dimensional sphere are separated into two groups by the split equation.
샤드 배정 확인부(508)는 2그룹의 분할 샤드 노드들에 대해 각 그룹별로 올드 샤드 또는 뉴 샤드로 배정된 결과를 확인한다. 이렇게 분할 샤드 노드들이 올드 샤드 또는 뉴 샤드로 배정되면 해당 분할 샤드 노드가 관리하는 모든 어카운트들이 모두 동일한 샤드로 배정된다. 한편, 임의의 분할 샤드 노드의 위치가 분할 방정식 상에 위치한 경우(분할 방정식에 의해 나눠지지 않을 경우), 해당 분할 샤드 노드의 주소와 시드값으로 도출된 의사 랜덤값의 임의의 한 비트값(최상위 비트 또는 최하위 비트)을 이용하여 분할후 샤드를 배정할 수 있으며, 샤드 배정 확인부(508)는 미리 설정된 규칙을 기반으로 분할 방정식 상의 분할 샤드 노드의 분할후 샤드 배정 결과를 확인할 수 있다.The shard assignment confirmation unit 508 checks the results of assignment of split shard nodes in two groups to old shards or new shards for each group. When split shard nodes are assigned to old shards or new shards, all accounts managed by the split shard nodes are assigned to the same shard. Meanwhile, if the location of a random split shard node is located on the split equation (if it is not divided by the split equation), one random bit value (highest level) of the pseudo-random value derived from the address and seed value of the split shard node bit or least significant bit) can be used to allocate shards after splitting, and the shard allocation confirmation unit 508 can check the shard allocation result after splitting of the split shard node in the splitting equation based on preset rules.
비분할 샤드 노드가 뉴 샤드 어카운트의 홈샤드 노드인 경우, 뉴 샤드 어카운트의 홈샤드 노드에서 수행되는 어카운트 처리 모듈(232)은 어카운트 디렉토리에 저장된 뉴 샤드 어카운트의 워킹샤드 정보를 분할 샤드(올드 샤드) 주소에서 뉴 샤드 주소로 변경한다.If the non-split shard node is a home shard node of the new shard account, the account processing module 232 performed on the home shard node of the new shard account divides the working shard information of the new shard account stored in the account directory into a split shard (old shard). Change the address to New Shard address.
도 6은 본 발명의 일 실시예에 따른 다이나믹 샤딩시 분할 샤드 노드에서의 노드 분배 방법을 도시한 동작 흐름도이고, 도 7은 본 발명의 일 실시예에 따라 분할 샤드 노드에서 분할 샤드 노드들을 두 그룹으로 분할하는 과정을 도시한 예시도이다. 도 7은 분할 파라미터가 2개인 경우, 분할 샤드 노드들을 두 그룹으로 분할하는 과정을 도시한다.FIG. 6 is an operation flowchart illustrating a node distribution method in a split shard node during dynamic sharding according to an embodiment of the present invention, and FIG. 7 is a flowchart of dividing the split shard nodes into two groups in a split shard node according to an embodiment of the present invention. This is an example diagram showing the division process. Figure 7 shows the process of dividing split shard nodes into two groups when the split parameter is two.
예시적인 프로세스의 동작은 개별 블록으로 도시되고 이들 블록을 참조하여 설명된다. 프로세스는 블록의 논리 흐름으로서 도시되며, 각 블록은 하드웨어, 소프트웨어 또는 이들의 조합으로 구현될 수 있는 하나 이상의 동작을 나타낼 수 있다. 소프트웨어와 관련하여, 동작은 하나 이상의 프로세서에 의해 실행될 때 하나 이상의 프로세서가 인용된 동작을 수행할 수 있게 하는 하나 이상의 컴퓨터 판독 가능 매체에 저장된 컴퓨터 실행 가능 명령어를 나타낸다. 일반적으로 컴퓨터 실행 가능 명령어에는 루틴, 프로그램, 객체, 모듈, 구성 요소, 데이터 구조, 특정 함수를 수행하거나 특정 추상 데이터 유형을 구현하는 것을 포함한다. 동작이 설명되는 순서는 제한적인 것으로 해석되어서는 안되며, 설명된 동작의 수는 임의의 순서로, 다수의 하위 동작으로 세분화 또는 병렬적으로 실행될 수 있다.The operation of the example process is shown in individual blocks and described with reference to these blocks. A process is depicted as a logical flow of blocks, each block representing one or more operations that may be implemented in hardware, software, or a combination thereof. With respect to software, operations represent computer-executable instructions stored on one or more computer-readable media that, when executed by one or more processors, enable one or more processors to perform the recited operations. In general, computer executable instructions include routines, programs, objects, modules, components, data structures, things that perform a particular function or implement a particular abstract data type. The order in which operations are described should not be construed as limiting, and the number of operations described may be performed in any order, subdivided into multiple sub-operations, or executed in parallel.
도 6 내지 도 7을 참조하여, 본 발명의 분할 샤드 노드에서의 노드 분배 방법을 살펴본다.With reference to Figures 6 and 7, we will look at the node distribution method in the split shard node of the present invention.
분할 샤드 노드는 분할 샤드 노드들의 주소 정보와 시드값을 기반으로 의사 랜덤값을 도출하고, 도출된 의사 랜덤값을 기반으로 n차원 구(n은 2로서, 원)의 표면(700)에 분할 샤드 노드들(702)을 배치할 수 있다(S602). 분할 파라미터는 지분량(stake) 및 보트 카운트(vote count)가 포함될 수 있다. 시드값은 n차원 구의 표면에 분할 샤드 노드를 랜덤으로 배치하기 위한 값으로서, 랜덤하게 결정될 수 있다.The split shard node derives a pseudo-random value based on the address information and seed value of the split shard nodes, and divides the shard on the surface 700 of an n-dimensional sphere (n is 2, a circle) based on the derived pseudo-random value. Nodes 702 may be placed (S602). Splitting parameters may include stake and vote count. The seed value is a value for randomly arranging split shard nodes on the surface of an n-dimensional sphere, and can be determined randomly.
분할 샤드 노드는 각 분할 샤드 노드의 분할 파라미터 값을 적용하여 n차원 구에서의 무게중심점을 구한다(S604). 도 7의 (b)에는 각 분할 샤드 노드의 제1분할 파라미터 특성값을 기반으로 도출된 제1무게중심점(704)을 도시한다. 도 7의 (b)의 원의 크기는 각 분할 샤드 노드의 제1분할 파라미터 특성값의 크기를 의미한다. 도 7의 (c)에는 각 분할 샤드 노드의 제2분할 파라미터 특성값을 기반으로 도출된 제2무게중심점(706)을 도시한다. 도 7의 (c)의 X표의 크기는 각 분할 샤드 노드의 제2분할 파라미터 특성값의 크기를 의미한다. 도 7에는 분할 파라미터가 2개인 경우 2개의 무게중심점이 도출되었으나, 분할 파라미터가 3개인 경우 분할 샤드 노드는 3차원 구에 배치되고 각 분할 파라미터별로 각각 하나씩, 즉 3개의 무게중심점이 도출될 수 있다.The split shard node applies the split parameter value of each split shard node to obtain the center of gravity in the n-dimensional sphere (S604). Figure 7(b) shows the first center of gravity 704 derived based on the characteristic values of the first division parameters of each divided shard node. The size of the circle in (b) of FIG. 7 means the size of the first split parameter characteristic value of each split shard node. Figure 7(c) shows the second center of gravity 706 derived based on the characteristic values of the second split parameters of each split shard node. The size of the In Figure 7, when there are two split parameters, two center of gravity points are derived. However, when there are three split parameters, the split shard nodes are placed in a three-dimensional sphere, and three center points can be derived, one for each split parameter. .
분할 샤드 노드는 n개의 무게중심점(704, 706)을 모두 지나는 분할 방정식(708)을 산출한다(S606). 도 7의 (d)에서, 분할 파라미터가 2개인 경우 2차원 구(원) 내에서 2개의 무게중심점이 도출되며, 2개의 무게중심점을 지나는 1차원 직선의 분할 방정식이 도출될 수 있다. 2차원 XY공간상의 1차원 직선의 분할 방정식(708)은 A1X + A2Y = B 로 표현될 수 있고, 따라서 3개의 값 [A1, A2, B]로 대표될 수 있다. 한편, 분할 파라미터가 3개인 경우 3차원 구 내에서 3개의 무게중심점이 도출되며, 3개의 무게중심점을 지나는 2차원 평면의 분할 방정식이 도출될 수 있다. 3차원 XYZ공간상의 2차원 평면의 분할 방정식은 A1X + A2Y + A3Z = B 로 표현될 수 있고, 따라서 4개의 값 [A1, A2, A3, B]로 대표될 수 있다.The split shard node calculates a split equation 708 that passes through all n center points 704 and 706 (S606). In (d) of FIG. 7, when there are two division parameters, two center of gravity points are derived within a two-dimensional sphere (circle), and the division equation of a one-dimensional straight line passing through the two center points can be derived. The partition equation 708 of a one - dimensional straight line in two-dimensional XY space can be expressed as A 1 Meanwhile, when there are three division parameters, three center of gravity points can be derived within a three-dimensional sphere, and a division equation for a two-dimensional plane passing through the three center points can be derived. The partition equation of a two - dimensional plane in three -dimensional XYZ space can be expressed as A 1 You can.
분할 샤드 노드는 n차원 구의 표면에 배치된 분할 샤드 노드들을 분할 방정식으로 분할하여 분할된 각 그룹별로 올드 샤드 또는 뉴 샤드로 배정한다(S608). 이렇게 분할 샤드 노드들이 올드 샤드 또는 뉴 샤드로 배정되면 해당 분할 샤드 노드가 관리하는 모든 어카운트들이 모두 동일한 샤드로 배정된다.The split shard node divides the split shard nodes placed on the surface of the n-dimensional sphere using a split equation and assigns each divided group to an old shard or a new shard (S608). When split shard nodes are assigned to old shards or new shards, all accounts managed by the split shard nodes are assigned to the same shard.
분할 샤드 노드는 n차원 구의 표면에 분할 샤드 노드들을 배치하기 위한 시드값과 분할 방정식의 변수항의 계수값 및 상수값을 비분할 샤드 노드에 공유한다(S610).The split shard node shares the seed value for arranging the split shard nodes on the surface of the n-dimensional sphere and the coefficient and constant values of the variable terms of the split equation with the non-split shard node (S610).
도 8은 본 발명의 일 실시예에 따른 다이나믹 샤딩시 비분할 샤드 노드에서의 노드 분배 방법을 도시한 동작 흐름도이고, 도 9는 본 발명의 일 실시예에 따라 비분할 샤드 노드에서 분할 샤드 노드들을 두 그룹으로 분할하는 과정을 도시한 예시도이다. 도 9는 도 7과 같이 분할 파라미터가 2개인 경우, 분할 샤드 노드들을 두 그룹으로 분할하는 과정을 도시한다.FIG. 8 is an operation flowchart showing a node distribution method in a non-split shard node during dynamic sharding according to an embodiment of the present invention, and FIG. 9 is an operation flowchart showing a method of distributing nodes in a non-split shard node according to an embodiment of the present invention. This is an example diagram showing the process of dividing into two groups. Figure 9 shows the process of dividing split shard nodes into two groups when there are two split parameters as shown in Figure 7.
도 8 내지 도 9를 참조하여, 본 발명의 비분할 샤드 노드에서의 노드 분배 방법을 살펴본다.With reference to Figures 8 and 9, we will look at the node distribution method in the non-split shard node of the present invention.
비분할 샤드 노드는 분할 샤드 노드로부터 n차원 구의 표면에 분할 샤드 노드들을 배치하기 위한 시드값과 분할 방정식의 변수항의 계수값 및 상수값을 공유받는다(S802).The non-split shard node shares the seed value for placing the split shard nodes on the surface of the n-dimensional sphere and the coefficient value and constant value of the variable term of the partition equation from the split shard node (S802).
비분할 샤드 노드는 분할 샤드 노드들의 주소 정보와 시드값을 기반으로 의사 랜덤값을 도출하고, 도출된 의사 랜덤값을 기반으로 n차원 구(2차원 원)의 표면(900)에 분할 샤드 노드들(902)을 가상으로 배치할 수 있다(S804). 분할 파라미터가 2개이면 분할 샤드 노드들을 2차원 구(원)의 표면(원주) 상에 배치할 수 있고, 분할 파라미터가 3개이면 분할 샤드 노드들을 3차원 구의 표면 상에 배치할 수 있다.The non-split shard node derives a pseudo-random value based on the address information and seed value of the split shard nodes, and divides the shard nodes on the surface 900 of an n-dimensional sphere (2-dimensional circle) based on the derived pseudo-random value. (902) can be placed virtually (S804). If the split parameter is 2, split shard nodes can be placed on the surface (circumference) of a 2-dimensional sphere (circle), and if the split parameter is 3, split shard nodes can be placed on the surface of a 3-dimensional sphere.
비분할 샤드 노드는 n차원 구를 분할 방정식(904)으로 분할하여 n차원 구의 표면에 배치된 분할 샤드 노드들이 분할 방정식(904)에 의해 두 그룹으로 분리되도록 한다(S806).The non-split shard node divides the n-dimensional sphere by the partition equation 904 so that the split shard nodes placed on the surface of the n-dimensional sphere are separated into two groups by the partition equation 904 (S806).
비분할 샤드 노드는 2그룹의 분할 샤드 노드들에 대해 각 그룹별로 올드 샤드 또는 뉴 샤드로 배정된 결과를 확인한다(S808). 이렇게 분할 샤드 노드들이 올드 샤드 또는 뉴 샤드로 배정되면 해당 분할 샤드 노드가 관리하는 모든 어카운트들이 모두 동일한 샤드로 배정된다.The non-split shard node checks the results of the split shard nodes in the two groups being assigned to old shards or new shards for each group (S808). When split shard nodes are assigned to old shards or new shards, all accounts managed by the split shard nodes are assigned to the same shard.
전술한 모든 방법 및 프로세스는 하나 이상의 범용 컴퓨터 또는 프로세서에 의해 실행되는 소프트웨어 코드 모듈로 구현되고 완전 자동화될 수 있다. 코드 모듈은 임의의 유형의 컴퓨터 판독 가능 저장 매체 또는 다른 컴퓨터 저장 장치에 저장될 수 있다. 일부 또는 모든 방법은 특수 컴퓨터 하드웨어로 구현될 수 있다.All of the above-described methods and processes can be implemented as software code modules and fully automated, executed by one or more general-purpose computers or processors. Code modules may be stored on any type of computer-readable storage medium or other computer storage device. Some or all of the methods may be implemented with special computer hardware.
본 명세서에 기술되고 및/또는 첨부 도면에 도시된 흐름도의 임의의 일상적인 설명, 요소 또는 블록은 특정 논리 함수 또는 요소를 구현하기 위한 하나 이상의 실행 가능한 명령을 포함하는 코드, 모듈, 세그먼트 또는 부분을 잠재적으로 나타내는 것으로 이해되어야 한다. 루틴. 대안적인 예는 여기에 설명 된 예의 범위 내에 포함되며, 여기에서 이해될 수 있는 기능에 따라 실질적으로 동 기적으로 또는 역순으로 요소 또는 기능이 삭제되거나 도시되거나 논의된 것으로부터 순서대로 실행될 수 있다. Any routine description, element or block of a flow diagram described herein and/or shown in the accompanying drawings refers to a code, module, segment or portion containing one or more executable instructions for implementing a particular logical function or element. It should be understood as potentially representing. Routine. Alternative examples are included within the scope of the examples described herein, in which elements or functionality may be deleted or implemented sequentially from those shown or discussed substantially synchronously or in reverse order, depending on the functionality to be understood herein.
상술된 실시예에 대해 많은 변형 및 수정이 이루어질 수 있으며, 그 요소는 다른 허용 가능한 예 중 하나인 것으로 이해되어야 한다. 이러한 모든 수정 및 변형은 본 개시의 범위 내에 포함되고 다음의 청구범위에 의해 보호되도록 의도된다. 이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Many variations and modifications may be made to the above-described embodiments, and the elements should be understood as one of other acceptable examples. All such modifications and variations are intended to be included within the scope of this disclosure and protected by the following claims. Embodiments according to the present invention described above may be implemented in the form of program instructions that can be executed through various computer components and recorded on a computer-readable recording medium. A computer-readable recording medium may include program instructions, data files, data structures, etc., singly or in combination. Program instructions recorded on a computer-readable recording medium may be specially designed and configured for the present invention or may be known and usable by those skilled in the computer software field. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical recording media such as CD-ROMs and DVDs, and magneto-optical media such as floptical disks. media), and hardware devices specifically configured to store and perform program instructions, such as ROM, RAM, flash memory, etc. Examples of program instructions 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 may be configured to operate as one or more software modules to perform processing according to the invention and vice versa.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.In the above, the present invention has been described with specific details such as specific components and limited embodiments and drawings, but this is only provided to facilitate a more general understanding of the present invention, and the present invention is not limited to the above embodiments. , a person skilled in the art to which the present invention pertains can make various modifications and variations from this description.
따라서, 본 발명의 사상은 상기 설명된 실시예에 한정되어서는 아니되며, 후술하는 특허청구범위 뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention should not be limited to the above-described embodiments, and all modifications equivalent to or equivalent to the claims as well as the later-described claims fall within the scope of the spirit of the present invention. something to do.

Claims (20)

  1. 블록체인 네트워크를 구성하는 분할 샤드 노드에서 구동하는 노드 분배 시스템에 있어서,In the node distribution system running on the split shard nodes that make up the blockchain network,
    분할 샤드 노드들을 n차원(n은 분할 파라미터의 개수) 구의 표면에 가상으로 배치하는 노드 배치부;A node placement unit that virtually arranges split shard nodes on the surface of an n-dimensional (n is the number of split parameters) sphere;
    상기 분할 파라미터별로 각각의 분할 샤드 노드의 분할 파라미터 특성값을 이용하여 상기 n차원 구에서의 n개의 무게중심점을 도출하는 무게중심점 도출부;a center-of-gravity derivation unit that derives n center-of-gravity points in the n-dimensional sphere using split parameter characteristic values of each split shard node for each split parameter;
    상기 n개의 무게중심점을 지나가는 분할 방정식을 도출하는 분할 방정식 도출부;a division equation deriving unit that derives a division equation passing through the n center points of gravity;
    상기 분할 방정식을 기반으로 상기 분할 샤드 노드들의 분할후 샤드를 배정하는 분할후 샤드 배정부; 및a post-split shard allocation unit that assigns shards after the split of the split shard nodes based on the split equation; and
    상기 분할 샤드 노드들을 상기 n차원 구의 표면에 배치하기 위한 정보와 상기 분할 방정식을 비분할 샤드 노드에게 공유하는 분할 방정식 공유부를 포함하는,Comprising information for arranging the split shard nodes on the surface of the n-dimensional sphere and a partition equation sharing unit that shares the partition equation with the non-partition shard nodes,
    블록체인 네트워크에서 노드 분배 시스템.Node distribution system in a blockchain network.
  2. 제1항에 있어서,According to paragraph 1,
    상기 노드 배치부는 상기 분할 샤드 노드들의 주소 정보 및 시드값을 기반으로 의사 랜덤값을 도출하고, 상기 도출된 의사 랜덤값을 이용하여 상기 n차원 구의 표면 상의 위치를 산출하여 상기 분할 샤드 노드들을 배치하는,The node placement unit derives a pseudo-random value based on the address information and seed values of the split shard nodes, calculates a position on the surface of the n-dimensional sphere using the derived pseudo-random value, and places the split shard nodes. ,
    블록체인 네트워크에서 노드 분배 시스템.Node distribution system in a blockchain network.
  3. 제2항에 있어서,According to paragraph 2,
    상기 분할 방정식 공유부는 상기 시드값을 상기 비분할 샤드 노드에게 공유하는,The partition equation sharing unit shares the seed value with the non-partitioned shard node,
    블록체인 네트워크에서 노드 분배 시스템.Node distribution system in a blockchain network.
  4. 제1항에 있어서,According to paragraph 1,
    상기 분할 파라미터는 지분량 및 보트 카운트를 포함하는,The splitting parameters include stake amount and boat count,
    블록체인 네트워크에서 노드 분배 시스템.Node distribution system in a blockchain network.
  5. 제1항에 있어서,According to paragraph 1,
    상기 분할 방정식은 상기 n개의 무게 중심점을 모두 지나가는 n-1차원의 직선, 평면 및 초평면 중 적어도 하나의 방정식인,The division equation is at least one equation among n-1-dimensional straight lines, planes, and hyperplanes that pass through all of the n center points of gravity.
    블록체인 네트워크에서 노드 분배 시스템.Node distribution system in a blockchain network.
  6. 제1항에 있어서,According to paragraph 1,
    상기 분할후 샤드 배정부는 상기 n차원 구의 표면에 배치된 상기 분할 샤드 노드들을 상기 분할 방정식으로 두 그룹으로 분할하고, 분할된 각 그룹별로 올드 샤드 또는 뉴 샤드로 배정하는,The post-split shard allocation unit divides the split shard nodes arranged on the surface of the n-dimensional sphere into two groups using the split equation, and assigns each divided group to an old shard or a new shard,
    블록체인 네트워크에서 노드 분배 시스템.Node distribution system in a blockchain network.
  7. 제6항에 있어서,According to clause 6,
    상기 분할 방정식 공유부는 상기 분할 방정식의 변수항의 계수값 및 상수값을 상기 비분할 샤드 노드에 공유하는,The partition equation sharing unit shares the coefficient value and constant value of the variable term of the partition equation with the non-partition shard node,
    블록체인 네트워크에서 노드 분배 시스템.Node distribution system in a blockchain network.
  8. 블록체인 네트워크를 구성하는 비분할 샤드 노드에서 구동하는 노드 분배 시스템에 있어서,In the node distribution system running on the non-split shard nodes that make up the blockchain network,
    분할 샤드 노드로부터 분할 샤드 노드들을 n차원(n은 분할 파라미터의 개수) 구의 표면에 배치하기 위한 정보와 분할 방정식을 공유받는 분할 방정식 공유부;a partition equation sharing unit that receives information and partition equations for placing the partition shard nodes on the surface of an n-dimensional (n is the number of partition parameters) sphere from the partition shard nodes;
    상기 분할 샤드 노드들을 n차원(n은 분할 파라미터의 개수) 구의 표면에 가상으로 배치하는 노드 배치부;a node arrangement unit that virtually arranges the split shard nodes on the surface of an n-dimensional (n is the number of split parameters) sphere;
    상기 n차원 구에 상기 분할 방정식을 적용하여 상기 분할 샤드 노드들이 두 그룹으로 분할되도록 하는 분할 방정식 적용부; 및 a partition equation application unit that applies the partition equation to the n-dimensional sphere to split the split shard nodes into two groups; and
    상기 두 그룹의 분할 샤드 노드들에 대해 각각 분할후 배정된 샤드를 확인하는 샤드 배정 확인부를 포함하는,Comprising a shard allocation confirmation unit that checks the shards assigned after splitting for each of the two groups of split shard nodes,
    블록체인 네트워크에서 노드 분배 시스템.Node distribution system in a blockchain network.
  9. 제8항에 있어서,According to clause 8,
    상기 분할 방정식 공유부는 상기 분할 방정식의 변수항의 계수값 및 상수값을 공유받는,The partition equation sharing unit receives the coefficient values and constant values of the variable terms of the partition equation,
    블록체인 네트워크에서 노드 분배 시스템.Node distribution system in a blockchain network.
  10. 제8항에 있어서,According to clause 8,
    상기 분할 샤드 노드들을 n차원(n은 분할 파라미터의 개수) 구의 표면에 배치하기 위한 정보는 시드값이고,Information for placing the split shard nodes on the surface of an n-dimensional (n is the number of split parameters) sphere is a seed value,
    상기 노드 배치부는 상기 분할 샤드 노드들의 주소 정보 및 상기 시드값을 기반으로 의사 랜덤값을 도출하고, 상기 도출된 의사 랜덤값을 이용하여 상기 n차원 구의 표면 상의 위치를 산출하여 상기 분할 샤드 노드들을 배치하는,The node placement unit derives a pseudo-random value based on the address information of the split shard nodes and the seed value, calculates a position on the surface of the n-dimensional sphere using the derived pseudo-random value, and places the split shard nodes. doing,
    블록체인 네트워크에서 노드 분배 시스템.Node distribution system in a blockchain network.
  11. 블록체인 네트워크를 구성하는 분할 샤드 노드에서, 적어도 하나의 프로세서에 의해 구현되는 노드 분배 방법에 있어서,In a node distribution method implemented by at least one processor in a split shard node constituting a blockchain network,
    상기 분할 샤드 노드가 분할 샤드 노드들을 n차원(n은 분할 파라미터의 개수) 구의 표면에 가상으로 배치하는 단계;The split shard node virtually arranging the split shard nodes on the surface of an n-dimensional (n is the number of split parameters) sphere;
    상기 분할 샤드 노드가 상기 분할 파라미터별로 각각의 분할 샤드 노드의 분할 파라미터 특성값을 이용하여 상기 n차원 구에서의 n개의 무게중심점을 도출하는 단계;The split shard node deriving n center points in the n-dimensional sphere using split parameter characteristic values of each split shard node for each split parameter;
    상기 분할 샤드 노드가 상기 n개의 무게중심점을 지나가는 분할 방정식을 도출하는 단계;Deriving a split equation in which the split shard node passes through the n center of gravity points;
    상기 분할 샤드 노드가 상기 분할 방정식을 기반으로 상기 분할 샤드 노드들의 분할후 샤드를 배정하는 단계; 및Allocating, by the split shard node, shards after splitting the split shard nodes based on the split equation; and
    상기 분할 샤드 노드가 상기 분할 샤드 노드들을 상기 n차원 구의 표면에 배치하기 위한 정보와 상기 분할 방정식을 비분할 샤드 노드에게 공유하는 단계를 포함하는,Comprising the step of the split shard node sharing information for placing the split shard nodes on the surface of the n-dimensional sphere and the partition equation to a non-partitioned shard node,
    블록체인 네트워크에서 노드 분배 방법.How to distribute nodes in a blockchain network.
  12. 제11항에 있어서,According to clause 11,
    상기 분할 샤드 노드가 상기 분할 샤드 노드들을 n차원(n은 분할 파라미터의 개수) 구의 표면에 가상으로 배치하는 단계는,The step of the split shard node virtually arranging the split shard nodes on the surface of an n-dimensional (n is the number of split parameters) sphere,
    상기 분할 샤드 노드들의 주소 정보 및 시드값을 기반으로 의사 랜덤값을 도출하고, 상기 도출된 의사 랜덤값을 이용하여 상기 n차원 구의 표면 상의 위치를 산출하여 상기 분할 샤드 노드들을 배치하는 단계를 포함하는,Deriving a pseudo-random value based on the address information and seed values of the split shard nodes, calculating a position on the surface of the n-dimensional sphere using the derived pseudo-random value, and arranging the split shard nodes. ,
    블록체인 네트워크에서 노드 분배 방법.How to distribute nodes in a blockchain network.
  13. 제12항에 있어서,According to clause 12,
    상기 분할 샤드 노드가 상기 시드값을 상기 비분할 샤드 노드에게 공유하는 단계를 포함하는,Comprising the step of the split shard node sharing the seed value with the non-split shard node,
    블록체인 네트워크에서 노드 분배 방법.How to distribute nodes in a blockchain network.
  14. 제11항에 있어서,According to clause 11,
    상기 분할 파라미터는 지분량 및 보트 카운트를 포함하는,The splitting parameters include stake amount and boat count,
    블록체인 네트워크에서 노드 분배 방법.How to distribute nodes in a blockchain network.
  15. 제11항에 있어서,According to clause 11,
    상기 분할 방정식은 상기 n개의 무게 중심점을 모두 지나가는 n-1차원의 직선, 평면 및 초평면 중 적어도 하나의 방정식인,The division equation is at least one equation among n-1-dimensional straight lines, planes, and hyperplanes that pass through all of the n center points of gravity.
    블록체인 네트워크에서 노드 분배 방법.How to distribute nodes in a blockchain network.
  16. 제11항에 있어서,According to clause 11,
    상기 분할 샤드 노드가 상기 분할 방정식을 기반으로 상기 분할 샤드 노드들의 분할후 샤드를 배정하는 단계는,The step of the split shard node allocating shards after splitting the split shard nodes based on the split equation,
    상기 n차원 구의 표면에 배치된 상기 분할 샤드 노드들을 상기 분할 방정식으로 두 그룹으로 분할하고, 분할된 각 그룹별로 올드 샤드 또는 뉴 샤드로 배정하는 단계를 포함하는,Comprising the step of dividing the split shard nodes arranged on the surface of the n-dimensional sphere into two groups using the split equation, and assigning each divided group to an old shard or a new shard,
    블록체인 네트워크에서 노드 분배 방법.How to distribute nodes in a blockchain network.
  17. 제16항에 있어서,According to clause 16,
    상기 분할 샤드 노드가 상기 분할 방정식의 변수항의 계수값 및 상수값을 상기 비분할 샤드 노드에 공유하는 단계를 포함하는,Comprising the step of the split shard node sharing the coefficient value and constant value of the variable term of the split equation with the non-split shard node,
    블록체인 네트워크에서 노드 분배 방법.How to distribute nodes in a blockchain network.
  18. 블록체인 네트워크를 구성하는 비분할 샤드 노드에서, 적어도 하나의 프로세서 의해 구현되는 노드 분배 방법에 있어서,In a node distribution method implemented by at least one processor in a non-split shard node constituting a blockchain network,
    상기 비분할 샤드 노드가 분할 샤드 노드로부터 분할 샤드 노드들을 n차원(n은 분할 파라미터의 개수) 구의 표면에 배치하기 위한 정보와 분할 방정식을 공유받는 단계;The non-split shard node receiving information and a partition equation for placing the split shard nodes on the surface of an n-dimensional (n is the number of partition parameters) sphere from the split shard node;
    상기 비분할 샤드 노드가 상기 분할 샤드 노드들을 n차원(n은 분할 파라미터의 개수) 구의 표면에 가상으로 배치하는 단계;The non-split shard node virtually arranging the split shard nodes on the surface of an n-dimensional (n is the number of partition parameters) sphere;
    상기 비분할 샤드 노드가 상기 n차원 구에 상기 분할 방정식을 적용하여 상기 분할 샤드 노드들이 두 그룹으로 분할되도록 하는 단계; 및 causing the non-split shard nodes to split the split shard nodes into two groups by applying the partition equation to the n-dimensional sphere; and
    상기 비분할 샤드 노드가 상기 두 그룹의 분할 샤드 노드들에 대해 각각 분할후 배정된 샤드를 확인하는 단계를 포함하는,Comprising the step of the non-split shard node checking the shards assigned after splitting for each of the two groups of split shard nodes,
    블록체인 네트워크에서 노드 분배 방법.How to distribute nodes in a blockchain network.
  19. 제18항에 있어서,According to clause 18,
    상기 비분할 샤드 노드가 상기 분할 방정식의 변수항의 계수값 및 상수값을 공유받는 단계를 포함하는,Including the step of the non-partitioned shard node sharing the coefficient value and constant value of the variable term of the partition equation,
    블록체인 네트워크에서 노드 분배 방법.How to distribute nodes in a blockchain network.
  20. 제18항에 있어서,According to clause 18,
    상기 분할 샤드 노드들을 n차원(n은 분할 파라미터의 개수) 구의 표면에 배치하기 위한 정보는 시드값이고,Information for placing the split shard nodes on the surface of an n-dimensional (n is the number of split parameters) sphere is a seed value,
    상기 비분할 샤드 노드가 상기 분할 샤드 노드들의 주소 정보 및 상기 시드값을 기반으로 의사 랜덤값을 도출하고, 상기 도출된 의사 랜덤값을 이용하여 상기 n차원 구의 표면 상의 위치를 산출하여 상기 분할 샤드 노드들을 배치하는 단계를 포함하는,The non-split shard node derives a pseudo-random value based on the address information of the split shard nodes and the seed value, and uses the derived pseudo-random value to calculate a position on the surface of the n-dimensional sphere to determine the split shard node. Including the step of placing them,
    블록체인 네트워크에서 노드 분배 방법.How to distribute nodes in a blockchain network.
PCT/KR2023/016521 2022-11-03 2023-10-24 System and method for distributing nodes in blockchain network WO2024096420A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020220145427A KR20240063615A (en) 2022-11-03 2022-11-03 System and method for distributing nodes across two shards in blockchain network
KR10-2022-0145427 2022-11-03

Publications (1)

Publication Number Publication Date
WO2024096420A1 true WO2024096420A1 (en) 2024-05-10

Family

ID=90930909

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2023/016521 WO2024096420A1 (en) 2022-11-03 2023-10-24 System and method for distributing nodes in blockchain network

Country Status (2)

Country Link
KR (1) KR20240063615A (en)
WO (1) WO2024096420A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200096045A (en) * 2019-02-01 2020-08-11 한국전자통신연구원 Blockchin generation apparatus, method for sharding blockchain thereof, and system the same
KR102260093B1 (en) * 2019-08-30 2021-06-02 연세대학교 산학협력단 Trust-based shard distribution apparatus and method for fault tolerant blockchain networks
US20210243007A1 (en) * 2018-04-27 2021-08-05 nChain Holdings Limited Maintaining blocks of a blockchain in a partitioned blockchain network
KR102337760B1 (en) * 2020-08-27 2021-12-08 연세대학교 산학협력단 Apparatus and method for adaptively managing sharded blockchain network based on Deep Q Network

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210243007A1 (en) * 2018-04-27 2021-08-05 nChain Holdings Limited Maintaining blocks of a blockchain in a partitioned blockchain network
KR20200096045A (en) * 2019-02-01 2020-08-11 한국전자통신연구원 Blockchin generation apparatus, method for sharding blockchain thereof, and system the same
KR102260093B1 (en) * 2019-08-30 2021-06-02 연세대학교 산학협력단 Trust-based shard distribution apparatus and method for fault tolerant blockchain networks
KR102337760B1 (en) * 2020-08-27 2021-12-08 연세대학교 산학협력단 Apparatus and method for adaptively managing sharded blockchain network based on Deep Q Network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ZHANG, JIANTING: "SkyChain: A Deep Reinforcement Learning-Empowered Dynamic Blockchain Sharding System.", ICPP '20: PROCEEDINGS OF THE 49TH INTERNATIONAL CONFERENCE ON PARALLEL PROCESSING., vol. 3, 17 August 2020 (2020-08-17), pages 1 - 11, XP058885834, DOI: 10.1145/3404397.3404460 *

Also Published As

Publication number Publication date
KR20240063615A (en) 2024-05-10

Similar Documents

Publication Publication Date Title
Alam Cloud Computing and its role in the Information Technology
WO2021002692A1 (en) Method for providing virtual asset service based on decentralized identifier and virtual asset service providing server using them
WO2020022760A1 (en) Distributed network system for operating group for nodes included in system
CN110771091B (en) System and method for security of network connected devices
WO2011046356A2 (en) Method for providing an anti-malware service
WO2023234526A1 (en) System and method for inter-shard transaction in blockchain network
CN1543163A (en) Method for creating a peer-to-peer home network using common group label
WO2020071727A1 (en) Method and apparatus for mutually exclusive access to network slice for roaming terminal in wireless communication system
WO2019231185A1 (en) Method for calculating reliability parameter between nodes in wireless network, and method and device for configuring routing path by using reliability parameter
WO2021125502A1 (en) Container-based cloud service providing system and method therefor
WO2019182377A1 (en) Method, electronic device, and computer-readable recording medium for generating address information used for transaction of blockchain-based cryptocurrency
WO2024096420A1 (en) System and method for distributing nodes in blockchain network
WO2020114184A1 (en) Joint modeling method, apparatus and device, and computer-readable storage medium
TW202218392A (en) Method and system for establishing application whitelisting
WO2024039129A1 (en) Dynamic sharding system and method in blockchain network
WO2024063400A1 (en) System and method for changing account directory in blockchain network
US11356448B1 (en) Device and method for tracking unique device and user network access across multiple security appliances
WO2011090284A2 (en) Interworking system among a plurality of distributed virtual worlds using a universally unique distributed object id and method for same
WO2024090906A1 (en) System and method for generating account in blockchain network
WO2021194114A1 (en) Electronic wallet and method for atomic swapping of two different blockchain tokens by using electronic wallet
WO2023243881A1 (en) System and method for changing working shard of account in blockchain network
Bousselmi et al. Towards a massively distributed IaaS operating system: Composition and evaluation of OpenStack
WO2024058489A1 (en) Blockchain consensus system and method
WO2022158730A1 (en) Apparatus and method for providing blockchain-based service for personal information verification
WO2024014718A1 (en) Inter-shard transaction system and method capable of performing verification in blockchain network