Electronic device included in blockchain network and operation method thereof

The electronic device within the blockchain network facilitates efficient block addition by using a server to manage consensus conditions, addressing consensus conflicts and ensuring data integrity through a structured agreement process among nodes.

WO2025009886A1PCT designated stage expired Publication Date: 2025-01-09SAMSUNG ELECTRONICS CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/KR2024/009396
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-02-16
Filing Date
2024-07-03
Publication Date
2025-01-09

AI Technical Summary

Technical Problem

Current blockchain network systems lack efficient methods for nodes to agree on adding new blocks, leading to potential consensus conflicts and inefficiencies in data sharing and block synchronization.

Method used

An electronic device within a blockchain network is equipped with a communication circuit and processor to request, generate, and verify new blocks, utilizing a server to relay messages and manage consensus conditions, ensuring agreement among nodes based on specified thresholds.

Benefits of technology

This approach enhances the efficiency of adding new blocks by minimizing consensus conflicts and ensuring data integrity, allowing for seamless block synchronization and agreement among nodes in the blockchain network.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure KR2024009396_09012025_PF_FP_ABST
    Figure KR2024009396_09012025_PF_FP_ABST
Patent Text Reader

Abstract

An electronic device according to an embodiment comprises: a communication circuit; a processor; and a memory storing instructions. According to one embodiment, the instructions, when executed by the processor, may cause the electronic device to request, via the communication circuit, that a server configured to relay messages between nodes included in a blockchain network add a new block to the nodes included in the blockchain network. According to an embodiment, the instructions, when executed by the processor, may cause the electronic device to, when the request is not rejected by the server, transmit transaction information to be stored in the new block to the server via the communication circuit so that the transaction information is transmitted to the nodes via the server. According to an embodiment, the instructions, when executed by the processor, may cause the electronic device to generate the new block including the transaction information. According to one embodiment, the instructions, when executed by the processor, can cause the electronic device to receive, from the server via the communication circuit, information about blocks generated by first nodes in an active state among the nodes. According to one embodiment, the instructions, when executed by the processor, may cause the electronic device to, on the basis of confirming that the number of blocks identical to the new block among the generated blocks is greater than a designated number, transmit information indicating agreement regarding the addition of the new block to the server. According to one embodiment, the instructions, when executed by the processor, may cause the electronic device to add the new block to the memory on the basis of transmitting the information indicating agreement to the server.
Need to check novelty before this filing date? Find Prior Art

Description

Electronic devices included in a blockchain network and their operating methods

[0001] The present disclosure relates to an electronic device included in a blockchain network and a method of operating the same.

[0002] Since the introduction of Bitcoin, which is based on blockchain, blockchain has been applied in various fields, including not only electronic money (cryptocurrency or virtual currency) systems like Bitcoin, but also platform provision services based on smart contracts, copyright management and transaction services through NFTs (non-fungible tokens), cloud storage services, and blockchain computing services.

[0003] Blockchain platforms are virtually impossible to falsify or alter data (e.g., have high reliability) because each member (node) participating in the system stores data in a distributed manner in their own blocks, and each member can hold their own distributed information (e.g., have high transparency), without requiring a separate central server administrator.

[0004] The above information is provided solely as background information to aid in understanding the present disclosure. No determination has been made, and no assertion is made, as to whether any of the above is applicable as prior art in connection with the present disclosure.

[0005] In one embodiment, an electronic device may include a communication circuit, a processor, and a memory storing instructions. In one embodiment, the instructions, when executed by the processor, may cause the electronic device to request, through the communication circuit, a server configured to relay message transmission between nodes included in a blockchain network to add a new block to the nodes included in the blockchain network. In one embodiment, the instructions, when executed by the processor, may cause the electronic device to transmit transaction information to a server through the communication circuit, if the request is not rejected by the server, such that the transaction information to be stored in the new block is transmitted to the nodes via the server. In one embodiment, the instructions, when executed by the processor, may cause the electronic device to generate the new block including the transaction information. In one embodiment, the instructions, when executed by the processor, may cause the electronic device to receive, from the server via the communication circuit, information about blocks generated by first nodes among the nodes that are in an active state. In one embodiment, the instructions, when executed by the processor, may cause the electronic device to transmit information indicating an agreement to add the new block to the server based on determining that the number of blocks among the generated blocks that are identical to the new block is greater than a specified number. In one embodiment, the instructions, when executed by the processor, may cause the electronic device to add the new block to the memory based on transmitting the information indicating the agreement to the server.

[0006] According to one embodiment, a method of operating an electronic device may include an operation of requesting, through a communication circuit included in the electronic device, a server configured to relay message transmission between nodes included in a blockchain network to add a new block to the nodes included in the blockchain network. According to one embodiment, the method of operating the electronic device may include an operation of transmitting transaction information to a server via the communication circuit, if the request is not rejected by the server, such that the transaction information to be stored in the new block is transmitted to the nodes via the server. According to one embodiment, the method of operating the electronic device may include an operation of generating the new block including the transaction information. According to one embodiment, the method of operating the electronic device may include an operation of receiving, through the communication circuit, information about blocks generated by first nodes in an active state among the nodes from the server. According to one embodiment, the method of operating the electronic device may include an operation of transmitting information indicating an agreement on the addition of the new block to the server based on confirming that the number of blocks identical to the new block among the generated blocks is greater than a specified number. According to one embodiment, the method of operating the electronic device may include adding the new block to a memory included in the electronic device based on transmitting information representing the agreement to the server.

[0007] According to one embodiment, a non-transitory storage medium may store instructions that execute the following operations: requesting, through a communication circuit included in an electronic device, a server (150) configured to relay message transmission between nodes included in a blockchain network to add a new block to the nodes included in the blockchain network; if the request is not rejected by the server, transmitting transaction information to the server through the communication circuit so that the transaction information to be stored in the new block is transmitted to the nodes via the server; generating the new block including the transaction information; receiving, through the communication circuit, information about blocks generated by first nodes in an active state among the nodes from the server; transmitting information indicating an agreement on the addition of the new block to the server based on confirming that the number of blocks identical to the new block among the generated blocks is greater than a specified number; and adding the new block to a memory included in the electronic device based on transmitting information indicating the agreement to the server.

[0008] The above and other aspects, features and advantages of specific embodiments of the present invention will become more apparent from the following description taken in conjunction with the accompanying drawings.

[0009] FIG. 1 is a schematic diagram of an electronic system according to one embodiment.

[0010] FIG. 2 is a block diagram of nodes and servers included in a blockchain network according to one embodiment.

[0011] FIGS. 3a, 3b, 3c, 3d, 3e, and 3f are drawings illustrating a method for an electronic device included in a blockchain network to add a new block according to an embodiment.

[0012] FIG. 4 is a drawing for explaining information related to a block according to an embodiment of the present invention.

[0013] FIG. 5 is a flowchart illustrating a method for an electronic device included in a blockchain network according to an embodiment of the present invention to add a new block.

[0014] FIG. 6 is a flowchart illustrating a method for an electronic device included in a blockchain network according to an embodiment of the present invention to update block information to add a new block.

[0015] FIGS. 7A, 7B, 7C, 7D, and 7E are diagrams illustrating a method for an electronic device included in a blockchain network according to an embodiment of the present invention to update block information to add a new block.

[0016] FIG. 8 is a flowchart illustrating a method for verifying whether an electronic device included in a blockchain network according to an embodiment satisfies an agreement condition between nodes for adding a new block.

[0017] FIGS. 9A, 9B, and 9C are diagrams illustrating a method for verifying whether an electronic device included in a blockchain network according to an embodiment satisfies an agreement condition between nodes for adding a new block.

[0018] FIG. 10 is a flowchart illustrating a method by which a server rejects a request to add a new block according to one embodiment.

[0019] FIG. 11 is a block diagram of an electronic device within a network environment according to various embodiments.

[0020] It should be noted that throughout the drawings, similar reference numbers are used to describe identical or similar elements, features and structures.

[0021] The following description with reference to the accompanying drawings is provided to facilitate a comprehensive understanding of various embodiments of the present disclosure as defined by the claims and their equivalents. It includes various specific details to facilitate understanding. The following description with reference to the accompanying drawings is provided to facilitate a comprehensive understanding of various embodiments of the present disclosure as defined by the claims and their equivalents. It includes various specific details to facilitate understanding, but these should be considered as illustrative only. Accordingly, those skilled in the art will recognize that various changes and modifications can be made to the various embodiments described herein without departing from the scope and spirit of the present disclosure. In addition, descriptions of well-known functions and configurations may be omitted for clarity and conciseness.

[0022] The terms and words used in the following description and claims are not to be construed as limited by their bibliographic meanings, but rather have been used by the inventors solely to facilitate a clear and consistent understanding of the present invention. Therefore, it should be apparent to those skilled in the art that the following description of various embodiments of the present invention is provided for illustrative purposes only and is not intended to limit the present invention as defined by the appended claims and their equivalents.

[0023] The singular forms "a," "an," and "the" should be understood to include plural referents unless the context clearly dictates otherwise. Thus, for example, reference to "a surface of a part" includes reference to one or more such surfaces.

[0024] It should be understood that each block of the flowchart and the combination of flowcharts can be performed by one or more computer programs containing instructions. One or more computer programs may be stored entirely in a single memory device, or one or more computer programs may be divided into different parts stored in multiple different memory devices.

[0025] Any function or operation described herein may be processed by a single processor or a combination of processors. A single processor or a combination of processors is a circuit that performs processing, and a single processor or a combination of processors includes an application processor (AP, e.g., a central processing unit (CPU)), a communication processor (CP, e.g., a modem), a graphics processing unit (GPU), a neural processing unit (NPU) (e.g., an artificial intelligence (AI) chip), a Wi-Fi chip, a Bluetooth® chip, a global positioning system (GPS) chip, a near field communication (NFC) chip, a connection chip, a sensor controller, a touch controller, a fingerprint sensor controller, a display driver integrated circuit (IC), an audio codec chip, a universal serial bus (USB) controller, a camera controller, an image processing IC, a microprocessor unit (MPU), a system on a chip (SoC), an IC, or a circuit thereof.

[0026] FIG. 1 is a schematic diagram of an electronic system according to one embodiment.

[0027] Referring to FIG. 1, an electronic system (100) may include a plurality of electronic devices (101, 102, 103) and a server (150).

[0028] According to one embodiment, the plurality of electronic devices (101, 102, 103) may be implemented as nodes of a blockchain network (140). For example, the plurality of electronic devices (101, 102, 103) may include various types of electronic devices. Although FIG. 1 illustrates the plurality of electronic devices (101, 102, 103) as two smartphones and one television (TV), this is merely an example, and the number or type of electronic devices may not be limited thereto.

[0029] According to one embodiment, the server (150) may be configured to relay message transmission between nodes (e.g., multiple electronic devices (101, 102, 103) included in the blockchain network (140). For example, the nodes (101, 102, 103) included in the blockchain network (140) may transmit and receive information through the server (150). Although FIG. 1 illustrates the server (150), various types of electronic devices may replace the server (150).

[0030] According to one embodiment, the server (150) may store and provide information on the latest blocks of the nodes (101, 102, 103) included in the blockchain network (140). For example, the information on the latest blocks may include information on the number of the block that each of the nodes (101, 102, 103) last added and stored. In addition, the server (150) may provide information indicating the status of the nodes (101, 102, 103) included in the blockchain network (140) (e.g., information indicating whether the node is currently on or off). For example, the on status may indicate a state in which the node can respond to other nodes. For example, the off status may indicate a state in which the node cannot respond to other nodes. For example, nodes (101, 102, 103) included in the blockchain network (140) can access the server (150) and view or confirm information provided by the above-described server (150).

[0031] According to one embodiment, the server (150) can manage nodes included in the blockchain network (140). According to one embodiment, the server (150) can support a mutex function to prevent consensus conflicts between nodes (101, 102, 103) included in the blockchain network (140). According to one embodiment, the server (150) can determine consensus conditions of the nodes (101, 102, 103) included in the blockchain network (140). For example, the consensus conditions may represent conditions for agreement by the nodes (101, 102, 103) to add a new block. For example, depending on the implementation, if there are responses from a predetermined number of nodes included in the blockchain network (140), the consensus to add a new block can be satisfied. In this case, the responses from the predetermined number of nodes can be the consensus conditions. For example, the server (150) can minimize the agreement conditions of nodes (101, 102, 103) included in the blockchain network (140).

[0032] According to one embodiment, the server (150) may include at least one device (e.g., a control device, a storage device, a management device). Depending on the implementation, the server (150) may be implemented as a collection of multiple servers.

[0033] The configurations and operations of the electronic system (100) described in FIG. 1 will be described in more detail in the drawings below. Meanwhile, for convenience of explanation, the electronic devices (101, 102, 103) corresponding to nodes included in the blockchain network (140) will be described as nodes included in the blockchain network (140). In addition, the description will assume that the first electronic device (101) among the electronic devices is a client requesting the addition of a new block.

[0034] FIG. 2 is a block diagram of nodes and servers included in a blockchain network according to one embodiment.

[0035] Referring to FIG. 2, each of the electronic devices (101, 102, 103) corresponding to nodes included in a blockchain network (e.g., blockchain network (140) of FIG. 1) according to an embodiment may include a control device (110, 120, or 130). Each of the electronic devices (101, 102, 103) may further include a storage device (115, 125, or 135) that stores information about a block. For example, the storage device (115, 125, or 135) may be implemented in the same or similar manner as the memory (1130) of FIG. 11.

[0036] According to one embodiment, the control device (110, 120, or 130) may include a hardware processor (e.g., processor (1120) of FIG. 11). Depending on the implementation, the control device (110, 120, or 130) may further include a communication circuit (e.g., communication module (1190) of FIG. 11) configured to transmit and receive information (e.g., data related to a block, transaction information, signature) with the server (150).

[0037] According to one embodiment, the control device (110, 120, 130) may execute a client agent (112, 122, 132) and a peer agent (114, 124, 134). For example, the client agent (112, 122, 132) may be a module configured to perform a series of operations related to data of each of the nodes (101, 102, 103). For example, the peer agent (114, 124, 134) may be a module configured to control and manage a storage device (115, 125, 135). For example, each of the client agent (112, 122, 132) and the peer agent (114, 124, 134) may be implemented as a module of software or a combination of hardware and software. Depending on the implementation, the control device (110, 120, 130) may only execute a client agent (112, 122, 132). In this case, the client agent (112, 122, 132) may be configured to also perform the operations of the peer agent (114, 124, 134).

[0038] According to one embodiment, the client agent (112, 122, 132) may perform a series of operations related to data of each of the nodes (101, 102, 103). For example, the client agent (112, 122, 132) may transmit and receive data or messages to and from the server (150). For example, the client agent (112, 122, 132) may request the server (150) to add a new block. In addition, the client agent (112, 122, 132) may transmit transaction information to be included in the new block to the server (150).

[0039] According to one embodiment, a peer agent (114, 124, 134) may control and manage a storage device (115, 125, 135). For example, a peer agent (114, 124, 134) may provide data related to data stored in a storage device (115, 125, 135), such as information about a block. Alternatively, a peer agent (114, 124, 134) may add and store a new block in a storage device (115, 125, 135).

[0040] According to one embodiment, the storage device (115, 125, 135) may store a plurality of blocks (e.g., B1, B2, B3) agreed upon by nodes included in the blockchain network (140). In addition, the storage device (115, 125, 135) may store information related to the blockchain network (140) (e.g., information related to a signature). For example, the latest block number last stored in the storage device (115, 125, 135) may be "3". For example, the storage device (115, 125, 135) may include at least one memory.

[0041] A server (150) according to one embodiment may include a message relay (155) and a table (160). The server (150) may further include a control device (not shown) that controls the overall operation of the server (150).

[0042] According to one embodiment, a message relay (155) may relay and transmit messages or information between nodes (101, 102, 103) included in a blockchain network (140). For example, the message relay (155) may include a communication circuit that supports wireless communication technology.

[0043] According to one embodiment, the message relay (155) may support a mutex function. For example, the mutex function may include a function in which the server (150) grants priority in the operation of adding a new block to a node that first requested the addition of the new block. For example, if a priority in the operation of adding a new block is granted to a specific node, the server (150) may reject requests from other nodes while the specific node is adding the new block. Depending on the implementation, the server (150) may further support a timer function for the mutex function. For example, after granting priority to a specific node, the server (150) may set a timer to limit the time for which the priority is recognized. Alternatively, the server (150) may limit a specific node from being granted priority a specified number of times in a row.

[0044] According to one embodiment, the table (160) may display or provide information about the latest blocks stored in nodes included in the blockchain network (140). For example, nodes (101, 102, 103) included in the blockchain network (140) may access the server (150) to view or confirm information about the latest blocks of the nodes (101, 102, 103) recorded in the table (160).

[0045] According to one embodiment, the table (160) may include device identification information (e.g., device identifier (ID)), the latest block number, and node status information. For example, the table (160) may indicate that the latest block number of the first electronic device (101) (e.g., device A) is "3" and the status is "ON". The table (160) may indicate that the latest block number of the second electronic device (102) (e.g., device B) is "3" and the status is "ON". The table (160) may indicate that the latest block number of the third electronic device (103) (e.g., device C) is "3" and the status is "ON". However, the contents of the above-described table (160) are exemplary, and the technical idea of ​​the present invention may not be limited thereto.

[0046] According to one embodiment, the server (150) may further include a node management device (170) configured to manage nodes (101, 102, 103) included in the blockchain network (140). For example, the node management device (170) may determine consensus conditions (e.g., fault tolerance) of nodes included in the blockchain network (140). For example, the node management device (170) may determine consensus conditions for adding a new block to nodes included in the blockchain network (140). For example, the node management device (170) may relax or adjust consensus conditions so that a new block can be added only with the agreement of a specified number of nodes, rather than with the agreement of all nodes, when adding a new block.

[0047] Depending on the implementation, the server (150) may also store information about blocks stored in nodes (101, 102, 103) included in the blockchain network (140) in a storage device (not shown) connected to the server (150).

[0048] FIGS. 3a, 3b, 3c, 3d, 3e, and 3f are drawings illustrating a method for an electronic device included in a blockchain network to add a new block according to an embodiment.

[0049] Referring to FIG. 3A, according to one embodiment, the first electronic device (101) can access a server (150) (e.g., server (150) of FIG. 1) to check the status of nodes included in a blockchain network (e.g., blockchain network (140) of FIG. 1) and information about blocks last stored by the nodes.

[0050] According to one embodiment, the first electronic device (101) may request, through the client agent (112), a server (150) (e.g., a message relay (155)) to perform an operation to add a new block to nodes (101, 102, 103) included in the blockchain network (140). For example, the server (150) may provide a mutex function. For example, the mutex function may include a function that provides priority related to the operation to add a new block to a node that requested it first. For example, the server (150) may, through the mutex function, provide priority related to the operation for this to a specific node among the nodes (101, 102, 103) that requested the addition of a new block first. For example, the server (150) may, after giving priority to a specific node, reject a request (e.g., a request to add a new block) from another node among the nodes (101, 102, 103). Depending on the implementation, the server (150) may also provide a notification (e.g., a notification indicating the request rejection) to the other node that rejected the request.

[0051] According to one embodiment, if a request to add a new block from the server (150) is not rejected, the first electronic device (101) may transmit the transaction information and the first signature information (signature A) of the first electronic device (101) to the server (150) through the client agent (112) so that the server (150) transmits the transaction information to be stored in the new block and the first signature information (signature A) of the first electronic device (101) to other nodes (102, 103) included in the blockchain network (140). For example, the first signature information (signature A) may include unique information that can identify the first electronic device (101).

[0052] Referring to FIG. 3b, according to one embodiment, the server (150) may transmit transaction information and first signature information (signature A) to nodes (101, 102, 103) (e.g., peer agents (114, 124, 134)) included in the blockchain network (140) via a message relay (155). Depending on the implementation, the server (150) may also transmit transaction information and first signature information (signature A) to nodes (102, 103) other than the first electronic device (101).

[0053] Referring to FIG. 3C, according to one embodiment, each of the nodes (101, 102, 103) may generate a new block in response to receiving or verifying transaction information and first signature information (signature A). For example, the first electronic device (101) may generate block A including transaction information, the second electronic device (102) may generate block B including the transaction information, and the third electronic device (103) may generate block C including the transaction information.

[0054] According to one embodiment, each of the nodes (101, 102, 103) may transmit a generated block (block A, block B, or block C) and its own signature information (signature A, signature B, or signature C) to a server (150) (e.g., message relay (155)) via a peer agent (114, 124, 134).

[0055] Referring to FIG. 3d, according to one embodiment, the first electronic device (101) can receive information about blocks generated by other nodes (102, 103) (block B, block C) and their signature information (signature B, signature C) from the server (150).

[0056] According to one embodiment, the first electronic device (101) may, through the client agent (112), confirm an agreement related to the addition of a new block (block A) based on blocks (block B, block C) generated by other nodes (102, 103) and signature information (signature B, signature C) of other nodes (102, 103). For example, the first electronic device (101) may confirm the signature information (signature B, signature C) of other nodes (102, 103). In addition, if the number of blocks identical to the block (block A) generated by the first electronic device (101) among blocks (block B, block C) generated by other nodes (102, 103) is greater than a specified number, the first electronic device (101) may determine that an agreement to add a new block to each node (101, 102, or 103) is completed. In addition, if the number of blocks (block B, block C) generated by other nodes (102, 103) that are identical to the block (block A) generated by the first electronic device (101) is greater than a specified number, the first electronic device (101) can confirm or decide a new block to be added to each node (101, 102, or 103) as “block A.”

[0057] Referring to FIG. 3e, according to one embodiment, when the first electronic device (101) determines that an agreement to add a new block has been completed through the client agent (112), the server (150) may transmit information indicating an agreement (or agreement confirmation information) (e.g., a seal) to other nodes (102, 103) indicating the agreement to the server (150) (or the message relay (155)). For example, the first electronic device (101) may obtain or generate information indicating an agreement by using the signature information (signature A, signature B, signature C) of each of the nodes (101, 102, 103).

[0058] Referring to FIG. 3f, according to one embodiment, the server (150) may transmit information indicating agreement (or agreement confirmation information, seal) to nodes (101, 102, 103) (e.g., peer agents (114, 124, 134)) via a message relay (155).

[0059] In one embodiment, each of the nodes (101, 102, 103) may, in response to receiving or confirming information indicating consensus, add and store a new block in its respective storage device (115, 125, 135).

[0060] According to one embodiment, the server (150) may update information about block numbers in the table (160). For example, the server (150) may change the block number of each node included in the table (160) from “3” to “4.”

[0061] According to the operations of FIGS. 3A to 3F described above, nodes (101, 102, 103) included in the blockchain network (140) can efficiently add new blocks.

[0062] FIG. 4 is a drawing for explaining information related to a block according to an embodiment of the present invention.

[0063] Referring to FIG. 4, according to one embodiment, transaction information (420) may be included or stored in a block (430).

[0064] According to one embodiment, transaction information (420) may include a transaction ID, a timestamp, and at least one instruction. The transaction ID may include information identifying the transaction. The timestamp may include information about the time when the transaction occurred. The instruction (410) may include a command (e.g., instruction 1 (PUT, key1, value1)) for performing a specific operation on a specific value included in the data table (415). For example, the instruction (410) may include a key, a value corresponding to the key, and a command for performing a specific operation (e.g., post, put, delete) on the key and the value. For example, the key may indicate a specific key included in the data table (415), and the value may indicate a value indicated by the specific key included in the data table (415).

[0065] According to one embodiment, block (430) may store information about the corresponding block. For example, information about the block may include information about the block number, transaction information (420), previous block hash information, and Merkle root. For example, the block number may include information identifying the corresponding block. The previous hash information may include hash information used in a previously generated block. Information about the Merkle root may include a final hash value derived from a data structure that summarizes all transaction information included in the corresponding block (430) and expresses it in a tree form. For example, information about the previous hash information and the Merkle root may be used to verify or confirm the integrity of the corresponding block (430).

[0066] According to one embodiment, the signature (440) may be used for agreement to newly add a block (430). For example, the signature (440) may include identification information of each of the nodes (101, 102, 103) included in the blockchain network (140) and their unique information (signature data).

[0067] According to one embodiment, a node (e.g., the first electronic device (101)) that requested the addition of a new block may generate information (e.g., a seal) (450) indicating the agreement if it is confirmed that an agreement on the addition of the new block has been completed. For example, the information (450) indicating the agreement may be generated using the signatures of the nodes that agreed. For example, the information (450) indicating the agreement may include signatures or information obtained by hashing the signatures. When the nodes (101, 102, 103) included in the blockchain network (140) receive and / or confirm the information (450) indicating the agreement, they may add and store the corresponding block (430) in a storage device (e.g., the storage devices (115, 125, 135) of FIG. 2).

[0068] FIG. 5 is a flowchart illustrating a method for an electronic device included in a blockchain network according to an embodiment of the present invention to add a new block.

[0069] Referring to FIG. 5, according to an embodiment, in operation 501, an electronic device (e.g., the electronic device (101) of FIG. 1) may access a server (e.g., the server (150) of FIG. 1) configured to relay message transmission between electronic devices (e.g., a plurality of electronic devices (101, 102, 103) of FIG. 1) corresponding to nodes included in a blockchain network (e.g., the blockchain network (140) of FIG. 1)) to check the status of the nodes (or electronic devices corresponding to the nodes) and information about the blocks last stored by the nodes. For example, the electronic device (101) may check whether the nodes are active (or on) or inactive (or off). For example, an active state may mean a state in which a corresponding node can respond to transaction information. For example, an inactive state may mean a state in which a corresponding node cannot respond to transaction information. Additionally, the electronic device (101) can check information about the block last stored by each of the nodes (or electronic devices corresponding to the nodes). For example, the server (150) can provide information about the latest blocks of the electronic devices (101, 102, 103) corresponding to the nodes included in the blockchain network (140) to the electronic devices (101, 102, 103). For example, the information about the latest blocks can include information about the block last stored by each of the electronic devices corresponding to the nodes included in the blockchain network (140).

[0070] Meanwhile, for convenience of explanation, below, electronic devices (101, 102, 103) corresponding to nodes included in the blockchain network (140) will be described as nodes included in the blockchain network (140).

[0071] According to one embodiment, in operation 503, the electronic device (101) may transmit a request to the server (150) to perform an operation for adding a new block to nodes (101, 102, 103) included in the blockchain network (140). For example, the server (150) may provide a mutex function. For example, the mutex function may include a function for providing priority in connection with the operation of adding a new block to a node that requested it first. For example, if priority in connection with the operation of adding a new block is granted to a specific node, the server (150) may reject requests from other nodes while the specific node is adding the new block.

[0072] According to one embodiment, in operation 505, if the request to add a new block from the server (150) is not rejected, the electronic device (101) may transmit transaction information to the server (150) so that the transaction information to be stored in the new block is transmitted to the nodes via the server (150). The electronic device (101) may transmit information about the signature of the electronic device (101) to the server (150) together with the transaction information.

[0073] In one embodiment, at operation 507, the electronic device (101) may generate a new block including transaction information. The electronic device (101) may transmit information about the new block to the server (150).

[0074] According to one embodiment, in operation 509, the electronic device (101) may receive from the server (150) information about blocks generated by nodes (102, 103) included in the blockchain network (140) based on transaction information. The electronic device (101) may receive from the server (150) information about signatures of each of the nodes (102, 103) together with the blocks generated by the nodes (102, 103).

[0075] According to one embodiment, the electronic device (101) may determine whether an agreement is reached regarding the addition of a new block based on information about blocks generated by nodes (102, 103) included in the blockchain network (140) and signatures of each of the nodes (102, 103). For example, if the number of blocks identical to the new block generated by the electronic device (101) among the blocks generated by the nodes (102, 103) included in the blockchain network (140) is greater than a specified number, the electronic device (101) may determine that an agreement to add a new block to each node is complete. For example, the electronic device (101) may compare information about previous hash information and Merkle root included in the new block generated by the electronic device (101) with information about previous hash information and Merkle root included in blocks generated by other nodes (102, 103). The electronic device (101) can determine that the new block generated by the electronic device (101) and the blocks generated by other nodes (102, 103) are identical if the information about the previous hash information and the Merkle root included in the new block generated by the electronic device (101) are identical to the information about the previous hash information and the Merkle root included in the blocks generated by other nodes (102, 103).

[0076] According to one embodiment, in operation 511, if the electronic device (101) determines that the number of blocks identical to a new block among the blocks generated by the first nodes (e.g., 102, 103) that are active among the nodes (102, 103) included in the blockchain network (140) is greater than a specified number, the electronic device (101) may transmit information indicating agreement (e.g., a seal) to the server (150) so that the server (150) transmits information indicating agreement to the nodes (102, 103) included in the blockchain network (140). For example, the information indicating agreement may be obtained using information about the signatures of each of the nodes (101, 102, 103). For example, the specified number may be a threshold for an agreement to add a new block between nodes. For example, the specified number may be set or determined to be less than a majority of all nodes included in the blockchain network (140). For example, the specified number may be set to a minimum standard. For example, the specified number may be set to "1."

[0077] According to one embodiment, in operation 513, the electronic device (101) may add a new block to a memory (e.g., a storage device (115) of FIG. 2) included in the electronic device (101) based on transmitting information indicating an agreement to the server (150). After the electronic device (101) transmits the information indicating an agreement to the server (150), the server (150) may transmit the information indicating an agreement to each of the nodes (102, 103). Thereafter, the new block may be added to the storage devices (125, 135) of each of the nodes (102, 103). For example, data to be shared between the nodes (101, 102, 103) may be stored in the new block.

[0078] FIG. 6 is a flowchart illustrating a method for an electronic device included in a blockchain network according to an embodiment of the present invention to update block information to add a new block.

[0079] Referring to FIG. 6, according to an embodiment, in operation 601, an electronic device (e.g., the electronic device (101) of FIG. 1) may access a server (e.g., the server (150) of FIG. 1) configured to relay message transmission between electronic devices (e.g., a plurality of electronic devices (101, 102, 103) of FIG. 1) corresponding to nodes included in a blockchain network (e.g., the blockchain network (140) of FIG. 1)) to check information about blocks last stored by the nodes (or electronic devices corresponding to the nodes). For example, the electronic device (101) may check information about blocks last stored by the nodes (or electronic devices corresponding to the nodes) (e.g., the number of the last stored block or the total number of stored blocks) through a table (160) of the server (150).

[0080] According to one embodiment, in operation 603, the electronic device (101) can check whether the blocks last stored in the nodes (101, 102, 103) included in the blockchain network (140) match.

[0081] In one embodiment, based on verification that the blocks last stored in the nodes (101, 102, 103) match (example of operation 603), in operation 605, the electronic device (101) may request the server (150) to add a new block to the nodes (101, 102, 103) included in the blockchain network (140).

[0082] In one embodiment, based on determining that the blocks last stored in nodes (101, 102, 103) do not match (NO in operation 603), in operation 607, the electronic device (101) may transmit a message to the server (150) requesting that the numbers of the blocks last stored in nodes (101, 102, 103) match. For example, the electronic device (101) may match the blocks (or block numbers) stored in nodes (101, 102, 103) before requesting that nodes (101, 102, 103) add a new block.

[0083] Through the above-described operation, the electronic device (101) can update the latest block information when adding a new block. Through this, the electronic device (101) can decide or derive an agreement for adding a new block based on the latest block stored in the nodes (101, 102, 103).

[0084] FIGS. 7a, 7b, 7c, 7d, and 7e are diagrams illustrating a method for an electronic device included in a blockchain network according to an embodiment of the present invention to update block information to add a new block.

[0085] Referring to FIG. 7A, according to one embodiment, the first electronic device (101) can access a server (150) (e.g., server (150) of FIG. 1) to check information about the block last stored by each node included in the blockchain network (e.g., blockchain network (140) of FIG. 1).

[0086] According to one embodiment, the electronic device (101) may check whether the blocks last stored in the nodes (101, 102, 103) included in the blockchain network (140) match. For example, a first node (e.g., device A) may store three blocks (B0, B1, B2), and the number of the block last stored in the first node may be "3". A second node (e.g., device B) may store three blocks (B0, B1, B2), and the number of the block last stored in the second node may be "3". A third node (e.g., device C) may store two blocks (B0, B1), and the number of the block last stored in the third node may be "2". For example, the numbers of the blocks may sequentially increase according to the order in which they are stored.

[0087] In one embodiment, the electronic device (101) may determine that the blocks last stored in the nodes (101, 102, 103) do not match.

[0088] Referring to FIG. 7B, the electronic device (101) may request the server (150) to match the numbers of the blocks last stored by the nodes (101, 102, 103) based on determining that the blocks last stored by the nodes (101, 102, 103) do not match. For example, the electronic device (101) may transmit a message to the server (150) (e.g., message relay (155)) to request synchronization of the block numbers.

[0089] Referring to FIG. 7c, the server (150) may transmit a message to request synchronization of block numbers to nodes (101, 102, 103) or electronic devices (device A, device B, device C) corresponding to the nodes. For example, the server (150) may transmit the message to nodes (101, 102, 103) via a message relay (155). The server (150) may transmit information about the latest block (e.g., block B2) to nodes (101, 102, 103) or electronic devices (device A, device B, device C) corresponding to the nodes. For example, information about the latest block may be included in the message to request synchronization of block numbers. Alternatively, the server (150) may separately transmit information about the latest block to nodes (101, 102, 103).

[0090] According to one embodiment, each of the nodes (101, 102, 103) may update block information in response to confirming a message requesting synchronization of block numbers. For example, the third electronic device (103) may add a latest block (e.g., block B2) based on information about the latest block (e.g., block B2) obtained from the server (150). The first electronic device (101) and the second electronic device (102) may not add the latest block because they already store the latest block (e.g., block B2).

[0091] Referring to FIG. 7d, according to one embodiment, each of the nodes (101, 102, 103) may transmit a message indicating completion of synchronization to a server (150) (e.g., a message relay (155)) via a peer agent (114, 124, 134).

[0092] Referring to FIG. 7e, according to one embodiment, the server (150) may transmit a message indicating completion of synchronization to the first electronic device (101). Upon confirming the message indicating completion of synchronization, the first electronic device (101) may transmit a message to the server (150) for adding a new block.

[0093] Through the above-described operations, the electronic device (101) can update the latest block information when adding a new block. Through this, the electronic device (101) can decide or derive an agreement for adding a new block based on the latest block stored in the nodes (101, 102, 103).

[0094] FIG. 8 is a flowchart illustrating a method for verifying whether an electronic device included in a blockchain network according to an embodiment satisfies an agreement condition between nodes for adding a new block.

[0095] Referring to FIG. 8, according to an embodiment, in operation 801, an electronic device (e.g., the electronic device (101) of FIG. 1) may access a server (e.g., the server (150) of FIG. 1) configured to relay message transmission between electronic devices (e.g., a plurality of electronic devices (101, 102, 103) of FIG. 1) corresponding to nodes included in a blockchain network (e.g., the blockchain network (140) of FIG. 1) to check the status of the nodes (or electronic devices corresponding to the nodes). For example, the electronic device (101) may check the number of nodes included in the blockchain network (140) that are in an on state or an active state. For example, an on state or an active state may mean a state in which a corresponding node can immediately respond to transaction information. For example, an off state or an inactive state may mean a state in which a corresponding node cannot immediately respond to transaction information.

[0096] According to one embodiment, in operation 803, the electronic device (101) may check whether the number of nodes (101, 102, 103) included in the blockchain network (140) that are in an on state (or active state) is greater than a specified number. For example, the specified number may represent a threshold (e.g., f-tolerance) for a consensus condition for adding a new block.

[0097] According to one embodiment, if it is confirmed that the number of nodes (101, 102, 103) included in the blockchain network (140) that are on is greater than a specified number (example of operation 803), in operation 805, the electronic device (101) may request the server (150) to add a new block to the nodes (101, 102, 103). For example, if it is confirmed that the number of nodes (101, 102, 103) included in the blockchain network (140) that are on is greater than a specified number, the electronic device (101) may confirm or determine that the condition regarding the number of nodes among the agreement conditions for adding a new block is satisfied.

[0098] According to one embodiment, if it is confirmed that the number of nodes (101, 102, 103) included in the blockchain network (140) that are ON is not more than a specified number (NO in operation 803), in operation 801, the electronic device (101) may check the status of the nodes (or electronic devices corresponding to the nodes). For example, if it is confirmed that the number of nodes (101, 102, 103) included in the blockchain network (140) that are ON is not more than a specified number, the electronic device (101) may check or determine that the condition for the number of nodes among the agreement conditions for adding a new block is not satisfied. The electronic device (101) may hold the operation for adding a new block until the number of nodes that are ON is more than a specified number (or until the condition for the number of nodes is satisfied).

[0099] FIGS. 9A, 9B, and 9C are diagrams illustrating a method for verifying whether an electronic device included in a blockchain network according to an embodiment satisfies an agreement condition between nodes for adding a new block.

[0100] Referring to FIGS. 9A to 9C, according to one embodiment, the first electronic device (101) can access a server (150) (e.g., server (150) of FIG. 1) to check the status (e.g., on or off) of nodes included in a blockchain network (e.g., blockchain network (140) of FIG. 1). For example, the first electronic device (101) can access a server (150) (e.g., table (160)) to check the status of nodes (101, 102, 103).

[0101] According to one embodiment, the electronic device (101) may check the number of nodes in the on state (or active state) among the nodes included in the blockchain network (140). According to one embodiment, the electronic device (101) may check whether the number of nodes in the on state (or active state) among the nodes (101, 102, 103) included in the blockchain network (140) is greater than a specified number. For example, the specified number may represent a threshold (e.g., f-tolerance) for a consensus condition for adding a new block. For example, the specified number may be set as a minimum standard. For example, the specified number may be set to "1".

[0102] Referring to FIG. 9A, according to one embodiment, a first node (e.g., device A) may be in an ON state, a second node (e.g., device B) may be in an OFF state, and a third node (e.g., device C) may be in an OFF state. For example, the number of nodes in an ON state may be 1. For example, if the specified number is set to "1", the number of nodes in an ON state may not be more than the specified number. In this case, the electronic device (101) cannot add a new block because the agreement condition for adding a new block is not satisfied.

[0103] Referring to FIG. 9B, according to one embodiment, a first node (e.g., device A) may be on, a second node (e.g., device B) may be on, and a third node (e.g., device C) may be off. For example, the number of nodes that are on may be two. For example, when the specified number is set to “1,” the number of nodes that are on may be greater than the specified number. At this time, since the electronic device (101) satisfies the condition regarding the number of nodes among the agreement conditions for adding a new block, the electronic device (101) may transmit a message to the server (150) for adding a new block to the nodes (101, 102).

[0104] Referring to FIG. 9c, according to one embodiment, a first node (e.g., device A) may be turned on, a second node (e.g., device B) may be turned on, and a third node (e.g., device C) may be turned on. For example, the number of nodes that are turned on may be three. For example, when the specified number is set to “1,” the number of nodes that are turned on may be greater than the specified number. At this time, since the electronic device (101) satisfies the condition regarding the number of nodes among the agreement conditions for adding a new block, the electronic device (101) may transmit a message to the server (150) for adding a new block to the nodes (101, 102, 103).

[0105] Through the above-described method, the consensus conditions (e.g., a specified number) for adding new blocks to nodes (101, 102, 103) can be determined or set to a relaxed standard (e.g., a minimum standard). For example, the specified number can be determined or set by the server (150). Through this, the electronic device (101) can relax the consensus conditions for other nodes included in the blockchain network (140) as much as possible, thereby increasing the usability of data sharing through blocks.

[0106] FIG. 10 is a flowchart illustrating a method by which a server rejects a request to add a new block according to one embodiment.

[0107] Referring to FIG. 10, according to one embodiment, in operation 1001, a server (e.g., server (150) of FIG. 1) may confirm a request to add a new block transmitted from a first node (or first electronic device) (101). The server (150) may provide a mutex function.

[0108] In one embodiment, at step 1003, the server (150) may determine whether a task for adding a new block requested from another node is currently in progress prior to the corresponding request. For example, the server (150) may determine whether the task for adding a new block requested from another node must be completed before processing the request transmitted from the first node. Here, the task for adding a new block requested from another node may have already begun, or may not yet be explicitly performed.

[0109] According to one embodiment, if it is determined that a task for adding a new block requested from another node is being performed prior to the corresponding request (e.g., in operation 1003), in operation 1007, the server (150) may reject the request for adding a new block by the first node (101). For example, the server (150) may reject the request for adding a new block by the first node (101) when it is determined that the task for adding a new block requested from another node must be completed before performing the corresponding request transmitted from the first node. For example, the server (150) may perform the task for the request for adding a new block by the first node (101) after the task for adding a new block requested from another node is completed.

[0110] In one embodiment, if it is determined that a task for adding a new block requested from another node is not being performed prior to the request (NO in operation 1003), then in operation 1005, the server (150) may determine whether the request has been requested consecutively a specified number of times during a specified period of time. For example, if it is determined that a task for adding a new block requested from another node is not completed prior to performing the request transmitted from the first node, the server (150) may determine whether the request transmitted from the first node (101) has been requested consecutively a specified number of times during a specified period of time. For example, the server (150) may perform operation 1005 to prevent interference with consensus by one node.

[0111] In another embodiment, operation 1005 may be omitted. For example, in one embodiment, if it is determined that a task for adding a new block requested from another node is not being performed prior to the corresponding request (NO in operation 1003), the server (150) may give priority to the request for adding a new block to the first node (101). For example, when it is determined that a task for adding a new block requested from another node is not completed before performing the task for the corresponding request transmitted from the first node, the server (150) may give priority to the request for adding a new block transmitted from the first node (101). For example, the server (150) may perform a series of tasks for adding a new block requested by the first node (101).

[0112] According to one embodiment, if it is confirmed that the request transmitted from the first node (101) has been continuously requested a specified number of times during a specified period of time (e.g., in operation 1005), in operation 1007, the server (150) may reject the request to add a new block transmitted from the first node (101). For example, the server (150) may perform an operation on the request to add a new block transmitted from the first node (101) after the specified period of time has elapsed.

[0113] According to one embodiment, if it is confirmed that the request transmitted from the first node (101) has been requested consecutively a specified number of times during a specified period of time (NO in operation 1005), in operation 1009, the server (150) may give priority to the request to add a new block to the first node (101). For example, the server (150) may perform a series of operations for adding a new block requested by the first node (101). While the series of operations for adding a new block requested by the first node (101) are being performed, the server (150) may reject a request to add a new block by another node (102 or 103).

[0114] Based on the above-described method, the server (150) can prevent consensus conflicts between nodes (101, 102, 103). In addition, the server (150) can prevent consensus interference by a node included in the blockchain network (140).

[0115] The electronic device (or first electronic device) (101) described above can be implemented identically or similarly to the electronic device (1101) described below.

[0116] FIG. 11 is a block diagram of an electronic device (1101) within a network environment (1100) according to various embodiments. Referring to FIG. 11, in the network environment (1100), the electronic device (1101) may communicate with the electronic device (1102) via a first network (1198) (e.g., a short-range wireless communication network), or may communicate with at least one of the electronic device (1104) or the server (1108) via a second network (1199) (e.g., a long-range wireless communication network). In one embodiment, the electronic device (1101) may communicate with the electronic device (1104) via the server (1108). According to one embodiment, the electronic device (1101) may include a processor (1120), a memory (1130), an input module (1150), an audio output module (1155), a display module (1160), an audio module (1170), a sensor module (1176), an interface (1177), a connection terminal (1178), a haptic module (1179), a camera module (1180), a power management module (1188), a battery (1189), a communication module (1190), a subscriber identification module (1196), or an antenna module (1197). In some embodiments, the electronic device (1101) may omit at least one of these components (e.g., the connection terminal (1178)), or may have one or more other components added. In some embodiments, some of these components (e.g., sensor module (1176), camera module (1180), or antenna module (1197)) may be integrated into a single component (e.g., display module (1160)).

[0117] The processor (1120) may, for example, execute software (e.g., a program (1140)) to control at least one other component (e.g., a hardware or software component) of the electronic device (1101) connected to the processor (1120) and perform various data processing or operations. According to one embodiment, as at least a part of the data processing or operations, the processor (1120) may store commands or data received from other components (e.g., a sensor module (1176) or a communication module (1190)) in a volatile memory (1132), process the commands or data stored in the volatile memory (1132), and store result data in a non-volatile memory (1134). According to one embodiment, the processor (1120) may include a main processor (1121) (e.g., a central processing unit or an application processor) or an auxiliary processor (1123) (e.g., a graphics processing unit, a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor) that can operate independently or together with the main processor (1121). For example, when the electronic device (1101) includes the main processor (1121) and the auxiliary processor (1123), the auxiliary processor (1123) may be configured to use less power than the main processor (1121) or to be specialized for a given function. The auxiliary processor (1123) may be implemented separately from the main processor (1121) or as a part thereof.

[0118] The auxiliary processor (1123) may control at least a portion of functions or states associated with at least one component (e.g., a display module (1160), a sensor module (1176), or a communication module (1190)) of the electronic device (1101), for example, on behalf of the main processor (1121) while the main processor (1121) is in an inactive (e.g., sleep) state, or together with the main processor (1121) while the main processor (1121) is in an active (e.g., application execution) state. In one embodiment, the auxiliary processor (1123) (e.g., an image signal processor or a communication processor) may be implemented as a part of another functionally related component (e.g., a camera module (1180) or a communication module (1190)). In one embodiment, the auxiliary processor (1123) (e.g., a neural network processing unit) may include a hardware structure specialized for processing artificial intelligence models. The artificial intelligence models may be generated through machine learning. This learning can be performed, for example, on the electronic device (1101) itself where the artificial intelligence model is executed, or can be performed through a separate server (e.g., server (1108)). The learning algorithm can include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but is not limited to the examples described above. The artificial intelligence model can include multiple artificial neural network layers.The artificial neural network may be one of a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network (RNN), a restricted Boltzmann machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), a deep Q-network, or a combination of two or more of the above, but is not limited to the examples described above. In addition to, or alternatively to, a hardware structure, an artificial intelligence model may include a software structure.

[0119] The memory (1130) can store various data used by at least one component (e.g., the processor (1120) or the sensor module (1176)) of the electronic device (1101). The data can include, for example, software (e.g., the program (1140)) and input data or output data for commands related thereto. The memory (1130) can include a volatile memory (1132) or a non-volatile memory (1134).

[0120] The program (1140) may be stored as software in memory (1130) and may include, for example, an operating system (1142), middleware (1144), or an application (1146).

[0121] The input module (1150) can receive commands or data to be used in a component of the electronic device (1101) (e.g., a processor (1120)) from an external source (e.g., a user) of the electronic device (1101). The input module (1150) can include, for example, a microphone, a mouse, a keyboard, a key (e.g., a button), or a digital pen (e.g., a stylus pen).

[0122] The audio output module (1155) can output audio signals to the outside of the electronic device (1101). The audio output module (1155) can include, for example, a speaker or a receiver. The speaker can be used for general purposes, such as multimedia playback or recording playback. The receiver can be used to receive incoming calls. In one embodiment, the receiver can be implemented separately from the speaker or as part of the speaker.

[0123] The display module (1160) can visually provide information to an external party (e.g., a user) of the electronic device (1101). The display module (1160) may include, for example, a display, a holographic device, or a projector and a control circuit for controlling the device. In one embodiment, the display module (1160) may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of a force generated by the touch.

[0124] The audio module (1170) can convert sound into an electrical signal, or vice versa, convert an electrical signal into sound. According to one embodiment, the audio module (1170) can acquire sound through the input module (1150), output sound through the sound output module (1155), or an external electronic device (e.g., electronic device (1102)) (e.g., speaker or headphone) directly or wirelessly connected to the electronic device (1101).

[0125] The sensor module (1176) can detect the operating status (e.g., power or temperature) of the electronic device (1101) or the external environmental status (e.g., user status) and generate an electrical signal or data value corresponding to the detected status. According to one embodiment, the sensor module (1176) can include, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, a temperature sensor, a humidity sensor, or an illuminance sensor.

[0126] The interface (1177) may support one or more designated protocols that may be used to directly or wirelessly connect the electronic device (1101) with an external electronic device (e.g., the electronic device (1102)). In one embodiment, the interface (1177) may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.

[0127] The connection terminal (1178) may include a connector through which the electronic device (1101) may be physically connected to an external electronic device (e.g., the electronic device (1102)). In one embodiment, the connection terminal (1178) may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).

[0128] The haptic module (1179) can convert electrical signals into mechanical stimuli (e.g., vibration or movement) or electrical stimuli that a user can perceive through tactile or kinesthetic sensations. In one embodiment, the haptic module (1179) may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.

[0129] The camera module (1180) can capture still images and videos. In one embodiment, the camera module (1180) may include one or more lenses, image sensors, image signal processors, or flashes.

[0130] The power management module (1188) can manage the power supplied to the electronic device (1101). According to one embodiment, the power management module (1188) can be implemented as, for example, at least a part of a power management integrated circuit (PMIC).

[0131] A battery (1189) may power at least one component of the electronic device (1101). In one embodiment, the battery (1189) may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.

[0132] The communication module (1190) may support the establishment of a direct (e.g., wired) communication channel or a wireless communication channel between the electronic device (1101) and an external electronic device (e.g., electronic device (1102), electronic device (1104), or server (1108)), and the performance of communication through the established communication channel. The communication module (1190) may operate independently from the processor (1120) (e.g., application processor) and may include one or more communication processors that support direct (e.g., wired) communication or wireless communication. According to one embodiment, the communication module (1190) may include a wireless communication module (1192) (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module (1194) (e.g., a local area network (LAN) communication module, or a power line communication module). Any of these communication modules may communicate with an external electronic device (1104) via a first network (1198) (e.g., a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network (1199) (e.g., a long-range communication network such as a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN)). These various types of communication modules may be integrated into a single component (e.g., a single chip) or implemented as multiple separate components (e.g., multiple chips). The wireless communication module (1192) may use subscriber information (e.g., an international mobile subscriber identity (IMSI)) stored in the subscriber identification module (1196) to verify or authenticate the electronic device (1101) within a communication network such as the first network (1198) or the second network (1199).

[0133] The wireless communication module (1192) can support 5G networks and next-generation communication technologies following the 4G network, such as NR access technology (new radio access technology). The NR access technology can support high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), minimization of terminal power and connection of multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency (URLLC (ultra-reliable and low-latency communications)). The wireless communication module (1192) can support, for example, a high-frequency band (e.g., mmWave band) to achieve a high data transmission rate. The wireless communication module (1192) may support various technologies for securing performance in a high-frequency band, such as beamforming, massive multiple-input and multiple-output (MIMO), full dimensional MIMO (FD-MIMO), array antenna, analog beam-forming, or large scale antenna. The wireless communication module (1192) may support various requirements specified in the electronic device (1101), an external electronic device (e.g., the electronic device (1104)), or a network system (e.g., the second network (1199)). According to one embodiment, the wireless communication module (1192) may support a peak data rate (e.g., 20 Gbps or more) for eMBB implementation, a loss coverage (e.g., 164 dB or less) for mMTC implementation, or a U-plane latency (e.g., 0.5 ms or less for downlink (DL) and uplink (UL), or 1 ms or less for round trip) for URLLC implementation.

[0134] The antenna module (1197) can transmit or receive signals or power to or from an external device (e.g., an external electronic device). In one embodiment, the antenna module (1197) may include an antenna including a radiator formed of a conductor or a conductive pattern formed on a substrate (e.g., a PCB). In one embodiment, the antenna module (1197) may include a plurality of antennas (e.g., an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network, such as the first network (1198) or the second network (1199), may be selected from the plurality of antennas by, for example, the communication module (1190). A signal or power may be transmitted or received between the communication module (1190) and an external electronic device via the selected at least one antenna. In some embodiments, in addition to the radiator, another component (e.g., a radio frequency integrated circuit (RFIC)) may be additionally formed as a part of the antenna module (1197).

[0135] According to various embodiments, the antenna module (1197) may form a mmWave antenna module. In one embodiment, the mmWave antenna module may include a printed circuit board, an RFIC disposed on or adjacent a first side (e.g., a bottom side) of the printed circuit board and capable of supporting a designated high frequency band (e.g., a mmWave band), and a plurality of antennas (e.g., an array antenna) disposed on or adjacent a second side (e.g., a top side or a side side) of the printed circuit board and capable of transmitting or receiving signals in the designated high frequency band.

[0136] At least some of the above components can be interconnected and exchange signals (e.g., commands or data) with each other via a communication method between peripheral devices (e.g., a bus, GPIO (general purpose input and output), SPI (serial peripheral interface), or MIPI (mobile industry processor interface)).

[0137] According to one embodiment, commands or data may be transmitted or received between the electronic device (1101) and an external electronic device (1104) via a server (1108) connected to a second network (1199). Each of the external electronic devices (1102 or 1104) may be the same or a different type of device as the electronic device (1101). According to one embodiment, all or part of the operations executed in the electronic device (1101) may be executed in one or more of the external electronic devices (1102, 1104, or 1108). For example, when the electronic device (1101) is to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device (1101) may, instead of or in addition to executing the function or service itself, request one or more external electronic devices to perform the function or at least a part of the service. One or more external electronic devices that receive the request may execute at least a portion of the requested function or service, or an additional function or service related to the request, and transmit the result of the execution to the electronic device (1101). The electronic device (1101) may process the result as is or additionally and provide it as at least a portion of a response to the request. For this purpose, cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used, for example. The electronic device (1101) may provide an ultra-low latency service by using distributed computing or mobile edge computing, for example. In another embodiment, the external electronic device (1104) may include an Internet of Things (IoT) device. The server (1108) may be an intelligent server utilizing machine learning and / or a neural network.According to one embodiment, an external electronic device (1104) or server (1108) may be included within the second network (1199). The electronic device (1101) may be applied to intelligent services (e.g., smart homes, smart cities, smart cars, or healthcare) based on 5G communication technology and IoT-related technology.

[0138] According to one embodiment, an electronic device (101) may include a communication circuit (1190), a processor (1120), and a memory (115, 1130) storing instructions. According to one embodiment, the instructions, when executed by the processor, may cause the electronic device to request, through the communication circuit, a server (150) configured to relay message transmission between nodes (101, 102, 103) included in a blockchain network (140) to add a new block to the nodes included in the blockchain network. According to one embodiment, the instructions, when executed by the processor, may cause the electronic device to transmit, through the communication circuit, transaction information to be stored in the new block to a server, such that the transaction information is transmitted to the nodes via the server, if the request is not rejected by the server. In one embodiment, the instructions, when executed by the processor, may cause the electronic device to generate the new block including the transaction information. In one embodiment, the instructions, when executed by the processor, may cause the electronic device to receive, from the server via the communication circuit, information about blocks generated by first nodes among the nodes that are in an active state. In one embodiment, the instructions, when executed by the processor, may cause the electronic device to transmit information indicating an agreement to add the new block to the server based on determining that the number of blocks among the generated blocks that are identical to the new block is greater than a specified number.In one embodiment, the instructions, when executed by the processor, may cause the electronic device to add the new block to the memory based on transmitting information representing the agreement to the server.

[0139] According to one embodiment, the instructions, when executed by the processor, may cause the electronic device to access the server via the communication circuit to ascertain the status of the nodes and information about the block last stored by each of the nodes.

[0140] In one embodiment, the instructions, when executed by the processor, may cause the electronic device to transmit a message to the server requesting that the blocks last stored in the nodes be matched if the blocks last stored in the nodes are determined to be different from each other.

[0141] In one embodiment, the instructions, when executed by the processor, may cause the electronic device to receive, from the server, information about a block last stored in another node based on determining that the number of a block last stored in the electronic device is smaller than the number of a block last stored in another node that is active among nodes different from the electronic device. In one embodiment, the instructions, when executed by the processor, may cause the electronic device to update the block last stored in the electronic device based on the received information.

[0142] In one embodiment, the instructions, when executed by the processor, may cause the electronic device to request the server to add the new block to the nodes included in the blockchain network based on a determination that the blocks last stored in the nodes match.

[0143] In one embodiment, the instructions, when executed by the processor, may cause the electronic device to transmit the transaction information to the server based on determining that the number of first nodes among the nodes is greater than the specified number.

[0144] In one embodiment, if an operation to add a block requested by another electronic device is in progress before requesting the addition of the new block, the request to add the new block may be rejected by the server.

[0145] In one embodiment, if a request is made to add the new block consecutively a specified number of times over a specified period of time, the request to add the new block may be rejected by the server.

[0146] In one embodiment, if the number of said first nodes is greater than a specified number, a consensus condition for adding said new block to said nodes may be satisfied.

[0147] In one embodiment, the specified number may be determined to be less than a majority of the nodes included in the blockchain network.

[0148] According to one embodiment, the method of operating the electronic device (101) may include an operation of requesting, through a communication circuit (1190) included in the electronic device, a server (150) configured to relay message transmission between nodes (101, 102, 103) included in the blockchain network (140) to add a new block to the nodes included in the blockchain network. According to one embodiment, the method of operating the electronic device may include an operation of transmitting, if the request is not rejected by the server, through the communication circuit, transaction information to be stored in the new block to the server such that the transaction information is transmitted to the nodes via the server. According to one embodiment, the method of operating the electronic device may include an operation of generating the new block including the transaction information. According to one embodiment, the method of operating the electronic device may include an operation of receiving, through the communication circuit, information about blocks generated by first nodes in an active state among the nodes from the server. According to one embodiment, the method of operating the electronic device may include an operation of transmitting information indicating an agreement on adding the new block to the server based on confirming that the number of blocks identical to the new block among the generated blocks is greater than a specified number. According to one embodiment, the method of operating the electronic device may include an operation of adding the new block to a memory (115, 1130) included in the electronic device based on transmitting the information indicating the agreement to the server.

[0149] According to one embodiment, the method of operating the electronic device may further include accessing the server through the communication circuit to check the status of the nodes and information about the block last stored by each of the nodes.

[0150] In one embodiment, the method of operating the electronic device may further include transmitting a message to the server requesting that the blocks last stored in the nodes be matched based on determining that the blocks last stored in the nodes are different from each other.

[0151] In one embodiment, the method of operating the electronic device may further include receiving information about a block last stored in other nodes from the server based on determining that the number of the block last stored in the electronic device is smaller than the number of the block last stored in another node different from the electronic device. In one embodiment, the method of operating the electronic device may further include updating the block last stored in the electronic device based on the received information.

[0152] In one embodiment, the action of requesting the addition of the new block may include an action of requesting the server to add the new block to the nodes included in the blockchain network based on verification that the blocks last stored in the nodes match.

[0153] In one embodiment, if an operation to add a block requested by another electronic device is in progress before requesting the addition of the new block, the request to add the new block may be rejected by the server.

[0154] In one embodiment, if a request is made to add the new block consecutively a specified number of times over a specified period of time, the request to add the new block may be rejected by the server.

[0155] In one embodiment, if the number of said first nodes is greater than a specified number, a consensus condition for adding said new block to said nodes may be satisfied.

[0156] In one embodiment, the specified number may be determined to be less than a majority of the nodes included in the blockchain network.

[0157] According to one embodiment, a non-transitory storage medium (115, 1130) is configured to request a server (150) configured to relay message transmission between nodes (101, 102, 103) included in a blockchain network (140) to add a new block to the nodes included in the blockchain network through a communication circuit (1190) included in an electronic device (101); if the request is not rejected by the server, the operation of transmitting transaction information to the server through the communication circuit so that the transaction information to be stored in the new block is transmitted to the nodes via the server; the operation of generating the new block including the transaction information; the operation of receiving, through the communication circuit, information about blocks generated by first nodes in an active state among the nodes from the server; the operation of transmitting information indicating an agreement on the addition of the new block to the server based on confirming that the number of blocks identical to the new block among the generated blocks is greater than a designated number; and the operation of transmitting information indicating the agreement to the server based on the electronic device Instructions for performing the operation of adding the new block to the memory (115, 1130) included in the device can be stored.

[0158] Electronic devices according to the various embodiments disclosed in this document may take various forms. Electronic devices may include, for example, portable communication devices (e.g., smartphones), computer devices, portable multimedia devices, portable medical devices, cameras, wearable devices, or home appliances. Electronic devices according to the embodiments of this document are not limited to the aforementioned devices.

[0159] The various embodiments of this document and the terminology used therein are not intended to limit the technical features described in this document to specific embodiments, but should be understood to include various modifications, equivalents, or substitutes of the embodiments. In connection with the description of the drawings, similar reference numerals may be used for similar or related components. The singular form of a noun corresponding to an item may include one or more of the items, unless the context clearly indicates otherwise. In this document, each of the phrases "A or B", "at least one of A and B", "at least one of A or B", "A, B, or C", "at least one of A, B, and C", and "at least one of A, B, or C" can include any one of the items listed together in the corresponding phrase among those phrases, or all possible combinations thereof. Terms such as "first," "second," or "first" or "second" may be used merely to distinguish one component from another, and do not limit the components in any other respect (e.g., importance or order). When a component (e.g., a first component) is referred to as "coupled" or "connected" to another (e.g., a second component), with or without the terms "functionally" or "communicatively," it means that the component can be connected to the other component directly (e.g., wired), wirelessly, or through a third component.

[0160] The term "module" used in various embodiments of this document may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit. A module may be an integral component, or a minimum unit or part of such a component that performs one or more functions. For example, according to one embodiment, a module may be implemented in the form of an application-specific integrated circuit (ASIC).

[0161] Various embodiments of the present document may be implemented as software (e.g., a program (1140)) including one or more instructions stored in a storage medium (e.g., an internal memory (1136) or an external memory (1138)) readable by a machine (e.g., an electronic device (1101)). For example, a processor (e.g., a processor (1120)) of the machine (e.g., an electronic device (1101)) may call at least one instruction among the one or more instructions stored from the storage medium and execute it. This enables the machine to operate to perform at least one function according to the at least one called instruction. The one or more instructions may include code generated by a compiler or code executable by an interpreter. The machine-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-transitory' simply means that the storage medium is a tangible device and does not contain signals (e.g., electromagnetic waves), and the term does not distinguish between cases where data is stored semi-permanently or temporarily on the storage medium.

[0162] According to one embodiment, the method according to various embodiments disclosed in this document may be provided as a computer program product. The computer program product may be traded between sellers and buyers as a product. The computer program product may be distributed in the form of a device-readable storage medium (e.g., compact disc read-only memory (CD-ROM)) or may be provided through an application store (e.g., Play Store). TM ) or directly between two user devices (e.g., smart phones), online distribution (e.g., downloading or uploading). In the case of online distribution, at least a portion of the computer program product may be at least temporarily stored or temporarily created in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or an intermediary server.

[0163] According to various embodiments, each component (e.g., a module or a program) of the above-described components may include one or more entities, and some of the entities may be separated and placed in other components. According to various embodiments, one or more components or operations of the aforementioned components may be omitted, or one or more other components or operations may be added. Alternatively or additionally, a plurality of components (e.g., a module or a program) may be integrated into a single component. In such a case, the integrated component may perform one or more functions of each of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to the integration. According to various embodiments, the operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, omitted, or one or more other operations may be added.

[0164] While the present disclosure has been illustrated and described with reference to various embodiments, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the disclosure as defined by the appended claims and their equivalents.

Claims

1. In an electronic device (101), Communication circuit (1190); Processor (1120); and A memory (115, 1130) for storing instructions, said instructions, when executed by said processor, cause said electronic device to: Through the above communication circuit, a server (150) set to relay message transmission between nodes (101, 102, 103) included in the blockchain network (140) requests the nodes included in the blockchain network to add a new block, If the request is not rejected by the server, the transaction information to be stored in the new block is transmitted to the nodes via the server through the communication circuit, and Generating a new block containing the above transaction information, Through the above communication circuit, information about blocks generated by the first nodes in an active state among the nodes is received from the server, Based on the verification that the number of blocks identical to the new block among the generated blocks is greater than a specified number, information indicating agreement on the addition of the new block is transmitted to the server, An electronic device that adds a new block to said memory based on transmitting information representing said agreement to said server.

2. In the first paragraph, the instructions, when executed by the processor, cause the electronic device to: An electronic device that accesses the server through the communication circuit to check the status of the nodes and information about the blocks last stored by each of the nodes.

3. In any one of paragraphs 1 to 2, the instructions, when executed by the processor, cause the electronic device to: An electronic device that transmits a message to the server requesting that the blocks last stored in the nodes match, based on the determination that the blocks last stored in the nodes are different from each other.

4. In any one of paragraphs 1 to 3, the instructions, when executed by the processor, cause the electronic device to: Based on verifying that the number of the block last stored in the electronic device is smaller than the number of the block last stored in another node that is active among nodes different from the electronic device, information about the block last stored in the other nodes is received from the server, An electronic device that updates the block last stored in the electronic device based on the received information.

5. In any one of paragraphs 1 to 4, the instructions, when executed by the processor, cause the electronic device to: An electronic device that requests the server to add the new block to the nodes included in the blockchain network based on verification that the blocks last stored in the said nodes match.

6. In any one of paragraphs 1 to 5, the instructions, when executed by the processor, cause the electronic device to: An electronic device that transmits the transaction information to the server based on determining that the number of first nodes among the above nodes is greater than the specified number.

7. In any one of paragraphs 1 to 6, An electronic device, wherein a request to add said new block is rejected by said server if an operation to add a block requested by another electronic device is in progress before requesting to add said new block.

8. In any one of paragraphs 1 to 7, An electronic device in which a request to add said new block is rejected by said server when requested to do so consecutively a specified number of times during a specified period of time.

9. In any one of paragraphs 1 to 8, An electronic device wherein an agreement condition for adding the new block to the nodes is satisfied if the number of the first nodes is greater than a specified number.

10. In any one of paragraphs 1 to 9, An electronic device wherein the above specified number is determined to be less than a majority of the nodes included in the blockchain network.

11. In the operating method of an electronic device (101), An operation of requesting the addition of a new block to the nodes included in the blockchain network through a communication circuit (1190) included in the electronic device, to a server (150) set to relay message transmission between the nodes (101, 102, 103) included in the blockchain network (140); If the request is not rejected by the server, the operation of transmitting the transaction information to the server via the communication circuit so that the transaction information to be stored in the new block is transmitted to the nodes via the server; An action of generating a new block including said transaction information; An operation of receiving information about blocks generated by first nodes in an active state among the nodes from the server through the communication circuit; An operation of transmitting information indicating an agreement on the addition of the new block to the server based on verifying that the number of blocks identical to the new block among the generated blocks is greater than a specified number; and A method of operating an electronic device, comprising the action of adding a new block to a memory (115, 1130) included in the electronic device based on transmitting information representing said agreement to the server.

12. In paragraph 11, An operating method of an electronic device further comprising an operation of accessing the server through the communication circuit to check the status of the nodes and information about the block last stored by each of the nodes.

13. In any one of paragraphs 11 to 12, A method of operating an electronic device further comprising the action of transmitting a message to the server requesting that the blocks last stored in the nodes match, based on determining that the blocks last stored in the nodes are different from each other.

14. In any one of paragraphs 11 to 13, An operation of receiving information about a block last stored in said other nodes from said server based on verifying that the number of the block last stored in said electronic device is smaller than the number of the block last stored in another node different from said electronic device; and A method of operating an electronic device further comprising updating a block last stored in the electronic device based on the received information.

15. In any one of paragraphs 11 to 14, the operation of requesting to add the new block comprises: A method of operating an electronic device, comprising: requesting the server to add the new block to the nodes included in the blockchain network based on verification that the blocks last stored in the nodes match.

Citation Information

Patent Citations

  • System for processing data based on blockchain and Operating method thereof

    KR1020180113140A

  • Gene and Cell therapy using cell fusion technology and use thereof

    KR1020210003658A

  • Vacuum adiabatic body

    KR1020220059322A

  • Method, apparatus, and system for blockchain consensus

    US20180285412A1

  • KR20200101140A