WO2022203203A1 - 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법, 이를 저장하는 컴퓨터로 판독 가능한 기록매체 및 그 시스템 - Google Patents

신뢰할 수 있는 노드를 통한 블록체인 액세스 방법, 이를 저장하는 컴퓨터로 판독 가능한 기록매체 및 그 시스템 Download PDF

Info

Publication number
WO2022203203A1
WO2022203203A1 PCT/KR2022/002225 KR2022002225W WO2022203203A1 WO 2022203203 A1 WO2022203203 A1 WO 2022203203A1 KR 2022002225 W KR2022002225 W KR 2022002225W WO 2022203203 A1 WO2022203203 A1 WO 2022203203A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
nodes
trusted
block
blockchain
Prior art date
Application number
PCT/KR2022/002225
Other languages
English (en)
French (fr)
Inventor
손인식
파쿨린니콜라이
Original Assignee
주식회사 헤세그
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 헤세그 filed Critical 주식회사 헤세그
Publication of WO2022203203A1 publication Critical patent/WO2022203203A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1093Some peer nodes performing special functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Definitions

  • the present invention relates to a block chain access method through a trusted node, a computer-readable recording medium storing the same, and a system thereof, and more specifically, to a block chain access by storing information of a trusted node in the block chain It is to provide an access method through which a desired client can connect to a node to which information is provided, a computer-readable recording medium storing the access method, and a system thereof.
  • Blockchain originated from Satoshi Nakamoto's Bitcoin: A Peer-to-Peer Electronic Cash System in 2008, a method of linking blocks with blocks.
  • Blockchain is a generic term for a distributed database that shares data bound by hash links on a distributed network composed of multiple network nodes.
  • blockchain provides services based on decentralization
  • security to prevent fish attacks can also be implemented using data stored in the blockchain.
  • the information of the node that the client can trust and connect to and access the blockchain data is stored in the blockchain to establish a reliable connection between the blockchain and the client. to establish it.
  • the technical problem to be solved by the present invention is an access method in which a client who wants to access the block chain by storing the information of a trusted node in the block chain can connect with the node provided with the information, and read it with a computer that stores it It is to provide a possible recording medium and a system therefor.
  • a block chain access method through a trusted node for solving the above-described technical problem includes the steps of: a client receiving a set of trusted nodes included in block data, including in the set selecting any one of the selected nodes; connecting to the selected node; and accessing the blockchain through the connected node.
  • the step of receiving the set of trusted nodes may include generating a set of trusted nodes from the genesis block and transaction data included in all generated blocks. .
  • the step of receiving the set of trusted nodes includes obtaining an initial set of trusted nodes and a set of verification nodes included in the genesis block, and all the blocks from nodes connected to the block chain. downloading, and updating the initial trusted node set and the verification node set by using the trusted node change data and the verification node change data included in all the blocks.
  • the trusted node change data may include a history of change, removal, and replacement of a node among the set of trusted nodes.
  • the verification node change data may include a history of change, removal, and replacement of a node in the verification node set.
  • the method further includes the step of receiving, by the client, a set of verification nodes from the block data, and determining whether the set of trusted nodes is up-to-date through the set of verification nodes. can do.
  • the step of determining whether the set of nodes trusted by the client is up-to-date includes: receiving current block heights from all verification nodes included in the set of verification nodes; determining whether the maximum value of the current block height provided from all verification nodes is equal to the block height stored in the block data, and updating the set of trusted nodes if the determination result is not the same have.
  • the step of updating the set of trusted nodes includes downloading new block data from the verification node that provided the maximum value, and based on the transaction data of the new block data, the trusted node It may include updating the set of nodes present.
  • the blockchain access method through the trusted node of the present invention described above may be implemented as a program and recorded in a computer-readable recording medium.
  • a blockchain access system through a trusted node includes a blockchain network in which nodes including a plurality of computing devices are interconnected, and a client accessing the blockchain network, wherein the A client is provided with a set of trusted nodes included in the block data generated in the block chain network, selects any one node included in the set, connects to the selected node, and Access the blockchain network.
  • a client can safely access the block chain system by obtaining a set of trusted nodes among nodes belonging to the block chain system and connecting to the node belonging to the set.
  • the set of trusted nodes and the set of verification nodes are recorded in block data, so that data integrity can be guaranteed.
  • all blocks generated within the blockchain system are confirmed by 50% of the verification nodes belonging to the verification node set + 1 verification node and are committed accordingly. This can prevent fork and deadlock problems in the chain unless something like securing it occurs.
  • FIG. 1 is a diagram for explaining a system for accessing a block chain from a client according to some embodiments of the present invention.
  • FIG. 2 is a diagram for explaining block data generated in a block chain access system according to some embodiments of the present invention.
  • FIG. 3 is a flowchart for explaining a block chain access method according to some embodiments of the present invention.
  • FIG. 4 is a flowchart illustrating a step in which a client is provided with a set of trusted nodes stored in a block in a block chain access method through a trusted node according to some embodiments of the present invention.
  • 5 and 6 are block diagrams for explaining a step in which a client is provided with a set of trusted nodes stored in a block.
  • FIG. 7 is a view for explaining a method of checking whether a set of trusted nodes provided by a client is up-to-date in a block chain access method through a trusted node according to some embodiments of the present invention.
  • FIG. 1 is a diagram for explaining a system for accessing a block chain from a client according to some embodiments of the present invention.
  • a system for accessing a block chain may include a client 100 and a block chain network 200 .
  • the client 100 may be provided with a service provided by the blockchain network 200 by being connected to any one of the nodes 201 to 205 constituting the blockchain network 200 .
  • the client 100 may be, for example, a computing device that transmits coins or creates a smart contract using the blockchain network 200 .
  • the client 100 may include, for example, an electronic device such as a personal computer (PC), a mobile phone, a tablet computer, a smart phone, a personal digital assistant (PDA), or a tablet PC.
  • PC personal computer
  • PDA personal digital assistant
  • the client 100 may be a hardware wallet that stores a private key for coin transaction by accessing the block chain network 200 .
  • the client 100 may receive block data from the block chain network 200 and include an internal memory for maintaining and updating a set of trusted nodes and a set of verification nodes.
  • the blockchain network 200 may be configured as a network consisting of a set of a plurality of nodes 201 to 205 .
  • Each of the plurality of nodes 201 to 205 is a computing device, and a connection between the plurality of nodes 201 to 205 may be configured through a well-known network protocol.
  • the block chain network 200 is illustrated as including five nodes 201 to 205 by way of example, but this is exemplary, and the number of nodes that can be included in the block chain network 200 is not limited.
  • the blockchain network 200 receives a request for accessing data stored in the blockchain network 200 from the client 100, and establishes a connection between the client 100 and any one of the plurality of nodes 201 to 205. can be established
  • the client 100 checks whether the plurality of nodes 201 to 205 presented by the blockchain network 200 correspond to reliable nodes in order to prevent a phishing attack that may occur by connecting to a fake node. can be verified. That is, the blockchain network 200 can store and manage a membership chain, which is a record of a set of trusted nodes, in block data.
  • a plurality of validation nodes for verifying blocks generated in the blockchain network 200 using a consensus protocol may be included. For example, as 50% + 1 verification node confirms a block created and signed by a builder, a commit proceeds and the verification result can be stored with the block. Blocks not verified by the verification node may be discarded without being stored.
  • a plurality of verification nodes may verify whether a transaction included in a block is valid. In the transaction, the plurality of verification nodes may determine whether the transaction is generated by a trusted node and whether the contents of the transaction are valid. A detailed description related thereto will be provided later.
  • the structure of the block stored in the block chain network 200 will be described with reference to FIG. 2 .
  • FIG. 2 is a diagram for explaining block data generated in a block chain access system according to some embodiments of the present invention.
  • block data 250 may include a header and a body.
  • the header may include data including a hash value of a block, a height of a block, a hash value of a parent block, a timestamp of the corresponding block, and the like.
  • the body may include data related to transactions executed in the blockchain network 200 . More specifically, the transaction data may include transaction data 260 including transaction details using the block chain network 200 , and data regarding the trusted node set 270 and the verification node set 280 . .
  • the transaction data 260 may include a transaction 261 including an input and an output, trusted node change data 262 representing a change in a trusted node, and validator change data 263 representing a change in a verifying node. have.
  • the trusted node change data 262 may include details of addition (AddNode), removal (RemoveNode) and replacement (ReplaceNode) of trusted nodes. That is, the trusted node change data 262 may include changes in the trusted node set stored in the parent block.
  • the verification node change data 263 may include details of addition (AddValidator), removal (RemoveValidator), and replacement (ReplaceValidator) of the verification node. That is, the verification node change data 263 may include changes in the verification node set stored in the parent block.
  • the operation of adding, removing, or replacing members of the trusted node set may be determined by consensus based on off-chain governance or on-chain governance.
  • the trusted node set 270 may include a list of trusted nodes stored in a block having the current block height.
  • the trusted node set 270 may include an IP address, domain name, port, public key/certificate, and other additional data required for connection with each trusted node.
  • the verification node set 280 may include a list of sets of verification nodes stored in a block having the current block height.
  • the verification node set 280 may include an IP address, a domain name, a port, a public key/certificate, and other additional data required for connection with each verification node.
  • the client 100 may download a block having a specific height and obtain information on the trusted node set 270 and the verification node set 280 included in the block. This makes it possible to reduce the load on the download and operation of the block in the lightweight client 100 . However, since this means trusting the node that provides a block with a certain height, it can be seen as somewhat risky in terms of security.
  • the first block that is, the genesis block, includes a list of a set of first trusted nodes and a set of first verification nodes.
  • the set of first trusted nodes and the set of first verification nodes is a list of trusted nodes and verification nodes predefined before block generation according to mainnet startup.
  • the client 100 changes the trusted node included in the trusted node change data 262 in subsequent blocks to the set of first trusted nodes included in the genesis block to obtain information about the set of trusted nodes.
  • the client 100 downloads only the blocks thereafter and uses the trusted node change data 262 included in the blocks to obtain the current block.
  • a set of reliable nodes in height can be obtained.
  • the data structure included in the block data 250 shown in FIG. 2 is exemplary, and the present invention is not limited thereto.
  • the block chain network 200 may store data other than the data structure included in the block data 250 shown in FIG. 2 by including it in the block.
  • the blockchain network 200 may store only the trusted node change data 262 and the verification node change data 263 in the body in order to reduce the weight of the block data 250 .
  • the plurality of nodes 201 to 205 may be classified into a full node or a light node according to the storage degree of block data.
  • a full node is a block that contains all block chain data from the genesis block of the block chain network 200 to the latest block, and a light node stores only some of the block information generated in the block chain network 200. is a block
  • the client 100 may fetch the entire blockchain data from a full node, or may fetch some blockchain data from a light node.
  • FIG. 3 is a flowchart for explaining a block chain access method according to some embodiments of the present invention.
  • the client receives a set of trusted nodes stored in a block (S110), the client selects any one node included in the set It may include a selection step (S120), a step in which the client and the selected node are connected (S130), and a step (S140) in which the client accesses the block chain through the connected node.
  • the client 100 is provided with a set of trusted nodes stored in the block (S110) is performed.
  • a list of trusted node sets 270 in block data having a specific block height can be provided from any one of the nodes belonging to the blockchain network 200, but this is not a guarantee that the connected node is reliable. It may be a vulnerable method to phishing attacks, etc. Accordingly, the client 100 obtains a list of trusted node sets through the genesis block and the trust block change data 262 .
  • FIGS. 5 and 6 are It is a block diagram for explaining the step of receiving a set of trusted nodes stored in a block.
  • the steps in which the client 100 is provided with a set of trusted nodes stored in a block include: identifying a genesis block ( S210 ), a set of trusted nodes included in the genesis block, and verification Obtaining a node set V (S220), identifying a node n connected to the blockchain system (S230), downloading all blocks started from the genesis block (S240), the genesis block and the first block B (0) It may include a step (S250) of confirming whether or not the , and a step (S260) of confirming a change of the trusted node set N from the transaction included in each block.
  • the client 100 receives block data from the block chain network 200 , and an internal memory 110 for maintaining and updating the trusted node set 120 and the verification node set 130 . ) may be included.
  • the client 100 may store the list of the first trusted node set S and the initial verification node set V included in the genesis block G in the internal memory 110 .
  • the contents of the genesis block G may be published on the Internet or offline channels.
  • the client 100 may obtain a list of the initial trusted node set S and the verification node set V along with hash values and timestamps of blocks included in the genesis block G (S220). ). That is, the client 100 may initialize the stored trusted node set 120 and the verification node set 130 in the internal memory 110 using the initial trusted node set S and the verification node set V.
  • the client 100 may identify the node n connected to the blockchain network 200 (S230).
  • Node n connected to the blockchain system 200 may be published on the Internet or an offline channel. However, at this point, it has not been decided whether node n can be trusted.
  • the client 100 may download all blocks B(i) starting from the genesis block from the node n connected to the blockchain network 200 (S240). If the current block height provided by node n is h, blocks downloaded by the client 100 may be B(0), B(1), ..., B(h). Each block B(i) has the same structure as the block data 250 of FIG. 2, and includes a header and a body, respectively, and includes transaction data 260, trusted node set 270, and verification node set 280. may include
  • the client 100 may check whether the first block B(0) among the downloaded blocks B(0), B(1), ..., B(h) matches the genesis block G (S250) ). That is, the contents of the genesis block G obtained through the Internet or offline channels are compared with the contents of block B(0) downloaded from node n. If the contents of the two blocks do not match, an "Invalid genesis block" error occurs, which corresponds to the case where the source from which the genesis block G was obtained is not trusted or the connected node n is a fake node.
  • the client 100 updates the trusted number using the trusted node change data and the verification node change data included in the transaction data of the downloaded blocks B(0), B(1), ..., B(h).
  • a node set S h and a verification node set V h can be obtained ( S260 ).
  • Each block may include trusted node change data and verification node change data in transaction data.
  • the trusted node change data may include details of addition (AddNode), removal (RemoveNode), and replacement (ReplaceNode) of trusted nodes.
  • the client 100 may update the trusted node set stored in the internal memory 110 by using the trusted node change data included in the transaction data of each block from the initial trusted node set S.
  • the verification node change data may include details of addition (AddValidator), removal (RemoveValidator) and replacement (ReplaceValidator) of the verification node.
  • the client 100 may update the set of verification nodes stored in the internal memory 110 by using the verification node change data included in the transaction data of each block from the initial verification node set V.
  • the client 100 may check whether the updated trusted node set Sh from the blocks provided is up to date ( S270 ). In this regard, the following description will be made using FIG. 6 .
  • FIG. 7 is a view for explaining a method of checking whether a set of trusted nodes provided by a client is up-to-date in a block chain access method through a trusted node according to some embodiments of the present invention.
  • the method for checking whether the set of trusted nodes provided by the client 100 is up-to-date includes the steps of querying the current block height to the verification node set and receiving a response (S310), receiving Searching for the maximum value hmax among the heights included in one response (S320), comparing the current zlock height h with hmax (S330), downloading block data from the verification node providing hmax (S340), download It may include the step of checking the block data (S350) and the step of updating the trusted node set from the transaction data included in the downloaded block data (S360).
  • the client 100 may query the current block height of each node belonging to the verification node set V stored in the internal memory 110 and receive a response.
  • the block heights received from the verification nodes may be h1, h2, h3, ..., hn. Since some verification nodes in the verification node set V may be excluded from verification nodes at the time when the client 100 queries and receives a response, query the current block height for all verification nodes that are not part of the verification node set V, and A response may be received.
  • the client 100 searches for the maximum value hmax among the heights included in the received response (S320), and compares it with the current block height h provided by the node n above (S330). If the current block height h provided by node n and the maximum value hmax among the block heights received from the verification node set V are the same, since a new block has not been created, the update operation can be terminated.
  • Block data downloaded by the client 100 may be blocks after B(h), that is, B(h+1), B(h+2), ..., B(hmax).
  • the client 100 checks the downloaded block data (S350).
  • the confirmation may include determining whether continuity is established between the previously held block B(h) and the newly downloaded block B(h+1).
  • the client 100 may check whether the parent block hash value of the header of block B(h+1) points to B(h).
  • the client can then check the continuity between each block B(h+2), ..., B(hmax) downloaded in the same way. If the continuity between each downloaded block B(h+2), ..., B(hmax) is not confirmed, the client 100 may detect that an error has occurred and abort subsequent operations. .
  • the client 100 updates the trusted node set from the downloaded transaction data of blocks B(h+1), B(h+2), ..., B(hmax). You can (S360). Similarly, if an error occurs during the update process, that is, when a node n k1 added through AddNode in block B(h+k1) is added through AddNode again in block B(h+k2), block B(h This may correspond to a case in which a contradiction occurs, such as the case where the node n l1 removed through RemoveNode in +l1) becomes the target of RemoveNode or ReplaceNode. When such an error occurs, the client 100 may stop a subsequent operation.
  • the downloaded transaction data of blocks B(h+1), B(h+2), ..., B(hmax) include trusted node change data and verification node change data.
  • the client 100 downloads the updated reliable node set S h and the verification node set V h stored in the internal memory 110 by the block h provided from the node n, the block block B (h+1), It can be updated using transaction data of B(h+2), ..., B(hmax).
  • the client 100 stores the updated reliable node set S hmax and the verification node set V hmax using the trusted node change data and the verification node change data up to block B(hmax) in the internal memory 110 . can be saved
  • the client 100 can obtain a list of the latest trusted node set S hmax updated and stored by the blockchain network 200 .
  • the client 100 may select any one node included in the node set S hmax ( S120 ). Since nodes included in the node set S hmax can be guaranteed by block data, the client 100 can select an arbitrary node. Alternatively, the client 100 may select a node having the fastest response speed among nodes included in the node set S hmax .
  • the client 100 connects with the selected node (S130), and can access the blockchain network 200 through the connected node (S140).
  • the client 100 obtains a set of trusted nodes among the nodes belonging to the block chain network 200 and connects to the nodes belonging to the set to block safely.
  • Chain network 200 can be accessed.
  • the set of trusted nodes and the set of verification nodes are recorded in block data, so that data integrity can be guaranteed.
  • all blocks generated within the blockchain network 200 are confirmed by 50% of the verification nodes belonging to the verification node set + 1 verification node, and commit proceeds accordingly. This can prevent fork and deadlock problems in the chain unless something like securing it occurs.
  • the present invention can also be implemented as computer-readable codes on a computer-readable recording medium.
  • the computer-readable recording medium includes all types of recording devices in which data readable by a computer device is stored. Examples of computer-readable recording media include hard disks, ROMs, RAMs, CD-ROMs, hard disks, magnetic tapes, floppy disks, optical data storage devices, etc., and carrier wave (eg, transmission over the Internet) It includes those implemented in the form of .
  • client 110 internal memory
  • transaction data 270 trusted node set

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Automation & Control Theory (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

신뢰할 수 있는 노드를 통한 블록체인 액세스 방법, 이를 저장한 컴퓨터로 판독 가능한 기록매체 및 그 시스템이 제공된다. 상기 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법은, 클라이언트가 블록 데이터에 포함된 신뢰할 수 있는 노드의 집합을 제공받는 단계, 상기 집합에 포함된 어느 하나의 노드를 선택하는 단계. 상기 선택된 노드와 연결하는 단계, 및 상기 연결된 노드를 통해 상기 블록체인에 액세스하는 단계를 포함한다.

Description

신뢰할 수 있는 노드를 통한 블록체인 액세스 방법, 이를 저장하는 컴퓨터로 판독 가능한 기록매체 및 그 시스템
본 발명은 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법, 이를 저장하는 컴퓨터로 판독 가능한 기록매체 및 그 시스템에 관한 것으로, 더욱 구체적으로는 블록체인 내 신뢰할 수 있는 노드의 정보를 저장하여 블록체인에 액세스하고자 하는 클라이언트가 정보를 제공받은 노드와 연결할 수 있는 액세스 방법, 이를 저장하는 컴퓨터로 판독 가능한 기록매체 및 그 시스템을 제공하는 것이다.
블록체인은 2008년 사토시 나카모토의 Bitcoin: A Peer-to-Peer Electronic Cash System에서 블록과 블록을 연결하는 방법에서 유래하였다. 블록체인은 다수의 네트워크 노드로 구성된 분산 네트워크 상에서 해쉬링크로 묶인 데이터를 공유하는 분산 데이터베이스를 총칭한다.
클라이언트가 블록체인에 저장된 데이터에 액세스하기 위해서, 블록체인을 구성하는 노드와 연결하여 액세스 권한을 부여받는 것이 필요하다. 그런데, 클라이언트와 연결된 노드가 실제 블록체인을 구성하고 있는 노드인지, 또는 피싱(phishing) 공격을 위한 가짜 노드인지 여부를 클라이언트가 쉽게 판단하기는 어렵다. 특히 가짜 노드와 연결될 경우 이중 지불(double spending) 문제를 일으켜 코인 전송 및 스마트 계약 발동에 있어서 금전적인 손해를 입을 수 있다.
블록체인의 도입 이전에도 가짜 DNS(Domain Name Service) 서버를 이용하여 도메인 이름을 가짜 IP 주소로 연결하거나, 악성 게이트웨이(gateway)를 이용하여 금액 이체의 오류를 이용하는 피싱 공격은 계속되고 있었다. 이러한 공격을 방지하기 위해 잘 알려진 구글 DNS 서버를 이용하거나 SSL(Secure Sockets Layer) 인증서에 의해 보호되는 게이트웨이 사용 등 신뢰할 수 있는 제3자 기관을 이용한 방법 등이 사용될 수 있다.
다만 블록체인의 경우 탈중앙화(decentralization)에 기반한 서비스를 제공하기 때문에 피슁 공격 방지를 위한 보안 또한 블록체인에 저장된 데이터를 이용하여 구현할 수 있다. 즉, 블록체인에 위변조가 불가능하도록 저장되는 데이터의 특성으로부터, 클라이언트가 신뢰하고 연결하여 블록체인 데이터에 액세스할 수 있는 노드의 정보를 블록체인에 저장하여 블록체인과 클라이언트 사이의 신뢰할 수 있는 연결을 설립하도록 하는 것이다.
본 발명이 해결하고자 하는 기술적 과제는, 클라이언트가 블록체인 내 신뢰할 수 있는 노드의 정보를 저장하여 블록체인에 액세스하고자 하는 클라이언트가 정보를 제공받은 노드와 연결할 수 있는 액세스 방법, 이를 저장하는 컴퓨터로 판독 가능한 기록매체 및 그 시스템을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상술한 기술적 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따른 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법은, 클라이언트가 블록 데이터에 포함된 신뢰할 수 있는 노드의 집합을 제공받는 단계, 상기 집합에 포함된 어느 하나의 노드를 선택하는 단계, 상기 선택된 노드와 연결하는 단계; 및 상기 연결된 노드를 통해 블록체인에 액세스하는 단계를 포함한다.
본 발명의 몇몇 실시예에서, 상기 신뢰할 수 있는 노드의 집합을 제공받는 단계는, 제네시스 블록과, 생성된 모든 블록에 포함된 트랜잭션 데이터로부터 신뢰할 수 있는 노드의 집합을 생성하는 단계를 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 신뢰할 수 있는 노드의 집합을 제공받는 단계는, 제네시스 블록에 포함된 최초 신뢰할 수 있는 노드 집합과 검증 노드 집합을 획득하는 단계, 상기 블록체인에 연결된 노드로부터 상기 모든 블록을 다운로드하는 단계, 및 상기 모든 블록에 포함된 신뢰 노드 변경 데이터와 검증 노드 변경 데이터를 이용하여 상기 최초 신뢰할 수 있는 노드 집합과 검증 노드 집합을 업데이트하는 단계를 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 신뢰 노드 변경 데이터는, 상기 신뢰할 수 있는 노드의 집합 중 노드의 변경, 제거 및 교체 이력을 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 검증 노드 변경 데이터는, 상기 검증 노드 집합 중의 노드의 변경, 제거 및 교체 이력을 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 클라이언트가 상기 블록 데이터로부터 검증 노드의 집합을 제공받고, 상기 검증 노드의 집합을 통해 상기 신뢰할 수 있는 노드의 집합이 최신의 상태인지 여부를 판단하는 단계를 더 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 클라이언트가 신뢰할 수 있는 노드의 집합이 최신의 상태인지 여부를 판단하는 단계는, 상기 검증 노드의 집합에 포함된 모든 검증 노드로부터 현재 블록 높이를 제공받는 단계, 상기 모든 검증 노드로부터 제공된 현재 블록 높이의 최대값이 상기 블록 데이터에 저장된 블록 높이와 동일한지 여부를 판단하는 단계 및 판단 결과 동일하지 않은 경우, 상기 신뢰할 수 있는 노드의 집합을 업데이트하는 단계를 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 신뢰할 수 있는 노드의 집합을 업데이트하는 단계는, 상기 최대값을 제공한 검증 노드로부터 새로운 블록 데이터를 다운로드하고, 상기 새로운 블록 데이터의 트랜잭션 데이터에 기초하여 상기 신뢰할 수 있는 노드의 집합을 업데이트하는 단계를 포함할 수 있다.
또한 상술한 본 발명의 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법은 프로그램으로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다.
본 발명의 다른 몇몇 실시예에 따른 신뢰할 수 있는 노드를 통한 블록체인 액세스 시스템은, 복수의 컴퓨팅 장치를 포함하는 노드가 상호 연결된 블록체인 네트워크, 및 상기 블록체인 네트워크에 액세스하는 클라이언트를 포함하되, 상기 클라이언트는 상기 블록체인 네트워크에서 생성된 블록 데이터에 포함된 신뢰할 수 있는 노드의 집합을 제공받고, 상기 집합에 포함된 어느 하나의 노드를 선택하고, 상기 선택된 노드와 연결하고, 상기 연결된 노드를 통해 상기 블록체인 네트워크에 액세스한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 실시예에 따른 블록체인 액세스 방법에 의하면, 클라이언트는 블록체인 시스템에 속하는 노드 중 신뢰할 수 있는 노드의 집합을 획득하고, 집합에 속한 노드에 연결함으로써 안전하게 블록체인 시스템에 액세스할 수 있다. 신뢰할 수 있는 노드의 집합 및 검증 노드의 집합은 블록 데이터에 기록됨으로써 데이터의 무결성이 보증될 수 있다. 또한, 블록체인 시스템 내에서 생성되는 모든 블록은 검증 노드 집합에 속한 검증 노드의 50% + 1개의 검증 노드가 확인하여 따라 커밋(commit)이 진행되는 바, 공격자가 절반 이상의 검증 노드의 개인키를 확보하는 등의 상황이 발생하지 않는 이상 체인의 포크 및 데드락 문제를 방지할 수 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 몇몇 실시예에 따른 클라이언트로부터 블록체인에 액세스 하기 위한 시스템을 설명하기 위한 도면이다.
도 2는 본 발명의 몇몇 실시예에 따른 블록체인 액세스 시스템에서 생성된 블록 데이터를 설명하기 위한 도면이다.
도 3은 본 발명의 몇몇 실시예에 따른 블록체인 액세스 방법을 설명하기 위한 순서도이다.
도 4는 본 발명의 몇몇 실시예에 따른 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법에서 클라이언트가 블록에 저장된 신뢰할 수 있는 노드의 집합을 제공받는 단계를 설명하기 위한 순서도이다.
도 5 및 6은 클라이언트가 블록에 저장된 신뢰할 수 있는 노드의 집합을 제공받는 단계를 설명하기 위한 블록도이다.
도 7은 본 발명의 몇몇 몇몇 실시예에 따른 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법에서 클라이언트가 제공받은 신뢰할 수 있는 노드의 집합이 최신의 상태인지 여부를 확인하는 방법을 설명하기 위한 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
하나의 구성 요소가 다른 구성 요소와 "연결된(connected to)" 또는 "커플링된(coupled to)" 이라고 지칭되는 것은, 다른 구성 요소와 직접 연결 또는 커플링된 경우 또는 중간에 다른 구성 요소를 개재한 경우를 모두 포함한다. 반면, 하나의 구성 요소가 다른 구성 요소와 "직접 연결된(directly connected to)" 또는 "직접 커플링된(directly coupled to)"으로 지칭되는 것은 중간에 다른 구성 요소를 개재하지 않은 것을 나타낸다. "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
비록 제1, 제2 등이 다양한 구성 요소들을 서술하기 위해서 사용되나, 이들 구성 요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성 요소를 다른 구성 요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성 요소는 본 발명의 기술적 사상 내에서 제2 구성 요소 일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
도 1은 본 발명의 몇몇 실시예에 따른 클라이언트로부터 블록체인에 액세스 하기 위한 시스템을 설명하기 위한 도면이다.
도 1을 참조하면, 본 발명의 몇몇 실시예에 따른 블록체인에 액세스하기 위한 시스템은 클라이언트(100)와 블록체인 네트워크(200)를 포함할 수 있다.
클라이언트(100)는 블록체인 네트워크(200)를 구성하는 어느 하나의 노드(201~205)와 연결됨으로써 블록체인 네트워크(200)가 제공하는 서비스를 제공받을 수 있다. 클라이언트(100)는 예를 들어, 블록체인 네트워크(200)를 이용하여 코인을 전송하거나 스마트 컨트랙트(smart contract)를 생성하는는 컴퓨팅 장치일 수 있다. 클라이언트(100)는 예를 들어 PC(Personal Computer), 이동 전화, 태블릿 컴퓨터, 스마트 폰, 퍼스널 디지털 어시스턴트(PDA), 태블릿 피시 등의 전자 장치를 포함할 수 있다.
또한, 클라이언트(100)는 블록체인 네트워크(200)에 액세스함으로써 코인의 트랜잭션하기 위한 개인키를 저장하는 하드웨어 지갑(wallet)일 수도 있다.
클라이언트(100)는 블록체인 네트워크(200)로부터 블록 데이터를 제공받고, 신뢰할 수 있는 노드의 집합과 검증 노드 집합을 유지 및 갱신하기 위한 내부 메모리를 포함할 수 있다.
블록체인 네트워크(200)는 복수의 노드(201~205)의 집합으로 구성된 네트워크로 구성될 수 있다. 복수의 노드(201~205) 각각은 컴퓨팅 장치이고, 널리 알려진 네트워크 프로토콜을 통해 복수의 노드(201~205)들 사이의 연결이 구성될 수 있다. 도 1에서 예시적으로 블록체인 네트워크(200)가 5개의 노드(201~205)를 포함하는 것으로 도시되었으나 이는 예시적인 것으로, 블록체인 네트워크(200)에 포함될 수 있는 노드의 개수는 제한되지 않는다.
블록체인 네트워크(200)는 클라이언트(100)로부터 블록체인 네트워크(200) 내에 저장된 데이터를 액세스하기 위한 요청을 수신하고, 클라이언트(100)와 복수의 노드(201~205) 중 어느 하나에 대한 연결을 설립할 수 있다.
이 때, 클라이언트(100)는 가짜의 노드에 연결됨으로써 발생할 수 있는 피싱 공격 등을 방지하기 위해 블록체인 네트워크(200)가 제시한 복수의 노드(201~205)들이 신뢰할만한 노드에 해당하는지 여부를 검증할 수 있다. 즉, 블록체인 네트워크(200)는 신뢰할 수 있는 노드의 집합의 기록인 멤버십 체인(Membership Chain)을 블록 데이터에 저장하고 관리할 수 있다.
또한, 복수의 노드들(201~205) 가운데에는 컨센서스 프로토콜(consensus protocol)을 사용하여 블록체인 네트워크(200) 내에서 생성된 블록을 검증하기 위한 복수의 검증 노드(validator)를 포함할 수 있다. 예를 들어 빌더(builder)에 의해 생성되고 서명된 블록에 대하여 50% + 1개의 검증 노드가 확인함에 따라 커밋(commit)이 진행되고 확인 결과가 블록과 함께 저장될 수 있다. 검증 노드에 의해 확인되지 않은 블록은 저장되지 않고 폐기될 수 있다.
복수의 검증 노드들은 블록에 포함된 트랜잭션이 유효한지 여부를 검증할 수 있다. 복수의 검증 노드들은 트랜잭션에 있어서 트랜잭션이 신뢰할 수 있는 노드로부터 생성된 것인지 여부와, 트랜잭션의 내용이 유효한 것인지 여부를 판단할 수 있다. 이와 관련된 자세한 설명은 후술한다.
블록체인 네트워크(200)에 저장되는 블록의 구조와 관련하여 도 2를 이용하여 설명한다.
도 2는 본 발명의 몇몇 실시예에 따른 블록체인 액세스 시스템에서 생성된 블록 데이터를 설명하기 위한 도면이다.
도 2를 참조하면, 블록 데이터(250)는 헤더(header)와 바디(body)를 포함할 수 있다.
헤더는 블록의 해시(hash)값, 블록의 높이(height), 부모 블록의 해시값, 해당 블록의 타임스탬프(timestamp) 등을 데이터를 포함할 수 있다.
바디는 블록체인 네트워크(200)에서 실행되는 트랜잭션에 관한 데이터를 포함할 수 있다. 더욱 구체적으로, 트랜잭션 데이터는 블록체인 네트워크(200)을 이용한 거래내용이 포함된 트랜잭션 데이터(260)과, 신뢰할 수 있는 노드 집합(270) 및 검증 노드 집합(280)에 관한 데이터를 포함할 수 있다.
트랜잭션 데이터(260)는 입력부와 출력부를 포함하는 트랜잭션(261), 신뢰할 수 있는 노드의 변경을 나타내는 신뢰 노드 변경 데이터(262) 및 검증 노드의 변경을 나타내는 검증자 변경 데이터(263)를 포함할 수 있다.
신뢰 노드 변경 데이터(262)는 신뢰할 수 있는 노드의 추가(AddNode), 제거(RemoveNode) 및 교체(ReplaceNode) 내역을 포함할 수 있다. 즉, 신뢰 노드 변경 데이터(262)는 부모 블록에 저장되었던 신뢰할 수 있는 노드 집합의 변경 사항을 포함할 수 있다.
검증 노드 변경 데이터(263)는 검증 노드의 추가(AddValidator), 제거(RemoveValidator) 및 교체(ReplaceValidator) 내역을 포함할 수 있다. 즉, 검증 노드 변경 데이터(263)는 부모 블록에 저장되었던 검증 노드 집합의 변경 사항을 포함할 수 있다.
이와 같이 신뢰할 수 있는 노드 집합의 멤버를 추가, 제거 또는 교체하는 동작은 오프-체인(off-chain) 거버넌스 또는 온 체인(on-chain) 거버넌스에 따른 합의에 의하여 결정될 수 있다.
신뢰할 수 있는 노드 집합(270)은 현재의 블록 높이를 갖는 블록에 저장된 신뢰할 수 있는 노드의 집합의 목록을 포함할 수 있다. 신뢰할 수 있는 노드 집합(270)은 각각의 신뢰할 수 있는 노드들과의 연결에 필요한 IP주소, 도메인 이름, 포트, 공개 키(public key)/인증서 및 기타 추가 데이터 등을 포함할 수 있다.
검증 노드 집합(280)은 현재의 블록 높이를 갖는 블록에 저장된 검증 노드의 집합의 목록을 포함할 수 있다. 검증 노드 집합(280)은 각각의 검증 노드들과의 연결에 필요한 IP주소, 도메인 이름, 포트, 공개 키(public key)/인증서 및 기타 추가 데이터 등을 포함할 수 있다.
클라이언트(100)는 특정 높이를 갖는 블록을 다운로드받고, 블록에 포함되어 있는 신뢰할 수 있는 노드 집합(270) 및 검증 노드 집합(280)의 정보를 얻을 수 있다. 이는 경량화된 클라이언트(100)에 있어 블록의 다운로드 및 연산에 대한 부하를 줄일 수 있도록 한다. 그러나 이는 특정 높이를 갖는 블록을 제공하는 노드를 신뢰한다는 것을 의미하므로, 보안 측면에서는 다소 위험하다고 볼 수 있다.
한편, 최초의 블록, 즉 제네시스 블록(genesis block)에는 최초 신뢰할 수 있는 노드의 집합과 최초 검증 노드의 집합의 목록이 포함된다. 최초 신뢰할 수 있는 노드의 집합과 최초 검증 노드의 집합은 메인넷(mainnet) 기동에 따른 블록 생성 이전에 미리 규정된 신뢰할 수 있는 노드와 검증 노드의 목록이다.
따라서 클라이언트(100)는 신뢰할 수 있는 노드의 집합에 관한 정보를 얻기 위해 제네시스 블록에 포함된 최초 신뢰할 수 있는 노드의 집합에 이후 블록들에서의 신뢰 노드 변경 데이터(262)에 포함된 신뢰 노드의 변경 사항을 적용함으로써 현재 블록 높이에서의 신뢰할 수 있는 노드의 집합을 얻을 수 있다.
또는 클라이언트(100)가 특정 높이의 블록에 관한 데이터를 이미 보유하고 있는 경우, 클라이언트(100)는 그 이후의 블록만을 다운로드받고 그 블록들에 포함된 신뢰 노드 변경 데이터(262)를 이용하여 현재 블록 높이에서의 신뢰할 수 있는 노드의 집합을 얻을 수 있다.
도 2에 도시된 블록 데이터(250)에 포함된 데이터 구조는 예시적인 것으로, 본 발명이 이에 제한되는 것은 아니다. 블록체인 네트워크(200)은 도 2에 도시된 블록 데이터(250)에 포함된 자료 구조 이외의 데이터를 블록에 포함시켜 저장할 수 있음은 물론이다.
또한, 본 발명의 몇몇 실시예에서, 블록체인 네트워크(200)은 블록 데이터(250)의 경량화를 위해 바디에 신뢰 노드 변경 데이터(262)와 검증 노드 변경 데이터(263)만을 저장할 수 있다.
다시 도 1을 참조하면, 복수의 노드들(201~205)은 블록 데이터의 저장 정도에 따라 풀 노드(full node) 또는 라이트 노드(light node) 등으로 분류될 수 있다. 풀 노드는 블록체인 네트워크(200)의 제네시스 블록부터 최신의 블록에 이르기까지 모든 블록체인 데이터를 포함하고 있는 블록이고, 라이트 노드는 블록체인 네트워크(200) 내에서 생성된 블록정보 중 일부만을 저장하는 블록이다. 뒤에서 설명되는 신뢰할 수 있는 노드의 검증을 위해 클라이언트(100)는 풀 노드로부터 전체 블록체인 데이터를 가져올 수 있고, 또는 라이트 노드로부터 일부 블록체인 데이터를 가져올 수도 있다.
이하에서 클라이언트(100)가 신뢰할 수 있는 노드에 연결하여 블록체인 네트워크(200)에 액세스하기 위한 방법을 상세히 설명한다.
도 3은 본 발명의 몇몇 실시예에 따른 블록체인 액세스 방법을 설명하기 위한 순서도이다.
도 3을 참조하면, 본 발명의 몇몇 실시예에 따른 블록체인 액세스 방법은, 클라이언트가 블록에 저장된 신뢰할 수 있는 노드의 집합을 제공받는 단계(S110), 클라이언트가 집합에 포함된 어느 하나의 노드를 선택하는 단계(S120), 클라이언트와 선택된 노드가 연결되는 단계(S130) 및 연결된 노드를 통해 클라이언트가 블록체인에 액세스하는 단계(S140)를 포함할 수 있다.
먼저 클라이언트(100)가 블록에 저장된 신뢰할 수 있는 노드의 집합을 제공받는 단계(S110)가 수행된다. 상술한 것과 같이 블록체인 네트워크(200)에 속하는 노드 중 어느 하나로부터 특정한 블록 높이를 갖는 블록 데이터에서의 신뢰할 수 있는 노드 집합(270)의 목록을 제공받을 수 있으나 이는 연결된 노드가 신뢰할 수 있다는 보장이 없어 피싱 공격 등에 취약한 방법일 수 있다. 따라서 클라이언트(100)는 제네시스 블록과 신뢰 블록 변경 데이터(262)를 통하여 신뢰할 수 있는 노드 집합의 목록을 획득한다.
도 4는 본 발명의 몇몇 실시예에 따른 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법에서 클라이언트가 블록에 저장된 신뢰할 수 있는 노드의 집합을 제공받는 단계를 설명하기 위한 순서도이고, 도 5 및 6은 클라이언트가 블록에 저장된 신뢰할 수 있는 노드의 집합을 제공받는 단계를 설명하기 위한 블록도이다.
먼저 도 4를 참조하면, 클라이언트(100)가 블록에 저장된 신뢰할 수 있는 노드의 집합을 제공받는 단계는, 제네시스 블록을 식별하는 단계(S210), 제네시스 블록에 포함된 신뢰할 수 있는 노드 집합 N 및 검증 노드 집합 V를 획득하는 단계(S220), 블록체인 시스템에 연결된 노드 n을 식별하는 단계(S230), 제네시스 블록으로부터 시작된 모든 블록을 다운로드하는 단계(S240), 제네시스 블록과 최초의 블록 B(0)의 일치 여부를 확인하는 단계(S250) 및 각각의 블록에 포함된 트랜잭션으로부터 신뢰 노드 집합 N의 변경을 확인하는 단계(S260)를 포함할 수 있다.
도 5를 참조하면, 클라이언트(100)는 블록체인 네트워크(200)으로부터 블록 데이터를 제공받고, 신뢰할 수 있는 노드의 집합(120)과 검증 노드 집합(130)을 유지 및 갱신하기 위한 내부 메모리(110)를 포함할 수 있다.
클라이언트(100)는 제네시스 블록 G에 포함된 최초 신뢰할 수 있는 노드 집합 S와 최초 검증 노드 집합 V의 목록을 내부 메모리(110)에 저장할 수 있다. 제네시스 블록 G의 내용은 인터넷 또는 오프라인 채널 상에 공개되어 있을 수 있다. 클라이언트(100)는 제네시스 블록 G를 식별(S210)하면서 제네시스 블록 G 내에 포함된 블록의 해시값, 타임스탬프와 함께 최초 신뢰할 수 있는 노드 집합 S와 검증 노드 집합 V의 목록을 획득할 수 있다(S220). 즉, 클라이언트(100)는 최초 신뢰할 수 있는 노드 집합 S와 검증 노드 집합 V를 이용하여 내부 메모리(110)의 저장된 신뢰할 수 있는 노드 집합(120)과 검증 노드 집합(130)을 초기화할 수 있다.
이어서 클라이언트(100)는 블록체인 네트워크(200)에 연결된 노드 n을 식별할 수 있다(S230). 블로체인 시스템(200)에 연결된 노드 n은 인터넷 또는 오프라인 채널 상에 공개되어 있을 수 있다. 다만 이 시점에서 노드 n을 신뢰할 수 있는지 여부는 결정되지 않은 상태이다.
도 6을 참조하면, 클라이언트(100)는 블록체인 네트워크(200)에 연결된 노드 n으로부터 제네시스 블록으로부터 시작되는 모든 블록 B(i)을 다운로드할 수 있다(S240). 노드 n이 제공한 현재 블록 높이가 h라 하면, 클라이언트(100)가 다운로드하는 블록은 B(0), B(1), ..., B(h)일 수 있다. 각각의 블록 B(i)는 도 2의 블록 데이터(250)와 같은 구조를 가지며, 각각 헤더, 바디를 포함하고 트랜잭션 데이터(260), 신뢰할 수 있는 노드 집합(270) 및 검증 노드 집합(280)을 포함할 수 있다.
클라이언트(100)는 다운로드한 블록들 B(0), B(1), ..., B(h) 가운데 가장 최초의 블록 B(0)과 제네시스 블록 G이 일치하는지 여부를 확인할 수 있다(S250). 즉, 앞서 인터넷이나 오프라인 채널을 통해 얻은 제네시스 블록 G의 내용과 노드 n으로부터 다운로드 한 블록 B(0)의 내용을 비교하는 것이다. 두 블록의 내용이 일치하지 않는 경우에는 "Invalid genesis block" 오류가 발생하며, 이는 제네시스 블록 G를 획득한 소스가 신뢰할 수 없는 경우이거나 연결된 노드 n이 가짜 노드인 경우에 해당한다.
이어서 클라이언트(100)는 다운로드한 블록들 B(0), B(1), ..., B(h)의 트랜잭션 데이터에 포함된 신뢰 노드 변경 데이터와 검증 노드 변경 데이터를 이용하여 업데이트된 신뢰할 수 있는 노드 집합 Sh와 검증 노드 집합 Vh를 얻을 수 있다(S260).
각각의 블록들은 트랜잭션 데이터에 신뢰 노드 변경 데이터와 검증 노드 변경 데이터를 포함할 수 있다. 신뢰 노드 변경 데이터는 신뢰할 수 있는 노드의 추가(AddNode), 제거(RemoveNode) 및 교체(ReplaceNode) 내역을 포함할 수 있다. 클라이언트(100)는 최초 신뢰할 수 있는 노드 집합 S로부터 각 블록의 트랜잭션 데이터에 포함된 신뢰 노드 변경 데이터를 이용하여 내부 메모리(110)에 저장된 신뢰할 수 있는 노드의 집합을 업데이트할 수 있다.
또한, 검증 노드 변경 데이터는 검증 노드의 추가(AddValidator), 제거(RemoveValidator) 및 교체(ReplaceValidator) 내역을 포함할 수 있다. 클라이언트(100)는 최초 검증 노드 집합 V로부터 각 블록의 트랜잭션 데이터에 포함된 검증 노드 변경 데이터를 이용하여 내부 메모리(110)에 저장된 검증 노드의 집합을 업데이트할 수 있다.
한편, 클라이언트(100)는 제공받은 블록들로부터 업데이트한 신뢰할 수 있는 노드의 집합 Sh이 최신의 상태인지 여부를 확인할 수 있다(S270). 이와 관련하여 이어지는 도 6을 이용하여 설명한다.
도 7은 본 발명의 몇몇 몇몇 실시예에 따른 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법에서 클라이언트가 제공받은 신뢰할 수 있는 노드의 집합이 최신의 상태인지 여부를 확인하는 방법을 설명하기 위한 도면이다.
도 7을 참조하면, 클라이언트(100)가 제공받은 신뢰할 수 있는 노드의 집합이 최신의 상태인지 여부를 확인하는 방법은 검증 노드 집합에 현재 블록 높이를 질의하고 응답을 수신하는 단계(S310), 수신한 응답에 포함된 높이 중 최대값 hmax을 탐색하는 단계(S320), 현재 즐록 높이 h와 hmax를 비교하는 단계(S330), hmax를 제공하느 검증 노드로부터 블록 데이터를 다운로드하는 단계(S340), 다운로드된 블록 데이터를 확인하는 단계(S350) 및 다운로드된 블록 데이터에 포함된 트랜잭션 데이터로부터 신뢰할 수 있는 노드 집합을 업데이트하는 단계(S360)를 포함할 수 있다.
먼저 클라이언트(100)는 내부 메모리(110)에 저장된 검증 노드 집합 V에 속한 각 노드들에 현재 블록 높이를 질의하고 응답을 수신할 수 있다. 검증 노드 집합 V에 노드들 v1, v2, v3, ..., vn이 속해있는 경우, 검증 노드들로부터 수신한 블록 높이는 h1, h2, h3, ..., hn이 될 수 있다. 클라이언트(100)가 질의하고 응답을 수신하는 시점에 검증 노드 집합 V 중 몇몇 검증 노드가 검증 노드에서 제외될 수 있기 때문에, 검증 노드 집합 V 중 일부가 아닌 전체 검증 노드에 대하여 현재 블록 높이를 질의하고 응답을 수신할 수 있다.
이어서 클라이언트(100)는 수신한 응답에 포함된 높이 중 최대값 hmax을 탐색하고(S320), 앞서 노드 n이 제공한 현재 블록 높이 h와 비교한다(S330). 앞서 노드 n이 제공한 현재 블록 높이 h와 검증 노드 집합 V로부터 수신한 블록 높이 중 최대값 hmax가 동일한 경우 새로운 블록이 생성되지 않은 것이므로 업데이트 작업을 종료할 수 있다.
그렇지 않은 경우, 즉 노드 n이 제공한 블록 B(h)로부터 새로운 블록이 생성되어 hmax가 h보다 큰 경우, 클라이언트(100)는 hmax를 제공한 검증 노드 v로부터 블록 데이터를 다운로드할 수 있다(S340). 클라이언트(100)가 다운로드하는 블록 데이터는 B(h) 이후의 블록, 즉 B(h+1), B(h+2), ..., B(hmax)일 수 있다.
이어서 클라이언트(100)는 다운로드된 블록 데이터를 확인한다(S350). 상기 확인은 미리 보유하고 있던 블록 B(h)와 새롭게 다운로드받은 B(h+1) 사이에 연속성이 성립하는지 여부를 판단하는 것을 포함할 수 있다. 클라이언트(100)는 블록 B(h+1)의 헤더의 부모 블록 해시값이 B(h)를 가리키는지 여부를 확인할 수 있다. 이어서 클라이언트는 동일한 방식으로 다운로드된 각각의 블록 B(h+2), ..., B(hmax) 사이의 연속성을 확인할 수 있다. 만약 다운로드된 각각의 블록 B(h+2), ..., B(hmax) 사이의 연속성이 확인되지 않은 경우, 클라이언트(100)는 오류가 발생함을 감지하고 이후의 작업을 중단할 수 있다.
다운로드된 블록 데이터의 확인이 완료되면 클라이언트(100)는 다운로드한 블록 B(h+1), B(h+2), ..., B(hmax)의 트랜잭션 데이터로부터 신뢰할 수 있는 노드 집합을 업데이트할 수 있다(S360). 마찬가지로 업데이트하는 과정에서 오류가 발생하는 경우, 즉 블록 B(h+k1)에서 AddNode를 통해 추가된 노드 nk1이 블록 B(h+k2)에서 또다시 AddNode를 통해 추가되는 경우, 블록 B(h+l1)에서 RemoveNode를 통해 제거된 노드 nl1이 RemoveNode 또는 ReplaceNode의 대상이 되는 경우와 같이 모순이 발생하는 경우가 이에 해당할 수 있다. 이와 같은 오류가 발생하는 경우 클라이언트(100)는 이후의 작업을 중단할 수 있다.
다운로드한 블록 블록 B(h+1), B(h+2), ..., B(hmax)의 트랜잭션 데이터에는 신뢰 노드 변경 데이터와 검증 노드 변경 데이터가 포함된다. 클라이언트(100)는 노드 n으로부터 제공받은 블록(h)에 의해 내부 메모리(110)에 저장된 업데이트된 신뢰할 수 있는 노드 집합 Sh와 검증 노드 집합 Vh을 다운로드한 블록 블록 B(h+1), B(h+2), ..., B(hmax)의 트랜잭션 데이터를 이용하여 갱신할 수 있다. 갱신이 끝나면, 클라이언트(100)는 내부 메모리(110)에 블록 B(hmax)까지의 신뢰 노드 변경 데이터와 검증 노드 변경 데이터를 이용하여 갱신된 신뢰할 수 있는 노드 집합 Shmax와 검증 노드 집합 Vhmax를 저장할 수 있다.
이와 같은 일련의 과정이 종료되면, 클라이언트(100)는 블록체인 네트워크(200)에 의해 갱신되어 저장된 최신의 신뢰할 수 있는 노드 집합 Shmax의 목록을 얻을 수 있다.
다시 도 3을 참조하면, 클라이언트(100)는 노드 집합 Shmax에 포함된 어느 하나의 노드를 선택할 수 있다(S120). 노드 집합 Shmax에 포함된 노드들은 블록 데이터에 의해 보증될 수 있으므로 클라이언트(100)는 임의의 노드를 선택할 수 있다. 또는, 클라이언트(100)는 노드 집합 Shmax에 포함된 노드 중 응답 속도가 가장 빠른 노드를 선택할 수도 있다.
이어서 클라이언트(100)는 선택된 노드와 연결하고(S130), 연결된 노드를 통해 블록체인 네트워크(200)에 액세스할 수 있다(S140).
이와 같이 본 발명의 몇몇 실시예에 따른 블록체인 액세스 방법을 통해 클라이언트(100)는 블록체인 네트워크(200)에 속하는 노드 중 신뢰할 수 있는 노드의 집합을 획득하고, 집합에 속한 노드에 연결함으로써 안전하게 블록체인 네트워크(200)에 액세스할 수 있다. 신뢰할 수 있는 노드의 집합 및 검증 노드의 집합은 블록 데이터에 기록됨으로써 데이터의 무결성이 보증될 수 있다. 또한, 블록체인 네트워크(200) 내에서 생성되는 모든 블록은 검증 노드 집합에 속한 검증 노드의 50% + 1개의 검증 노드가 확인하여 따라 커밋이 진행되는 바, 공격자가 절반 이상의 검증 노드의 개인키를 확보하는 등의 상황이 발생하지 않는 이상 체인의 포크 및 데드락 문제를 방지할 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 장치에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 하드디스크, ROM, RAM, CD-ROM, 하드 디스크, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
[부호의 설명]
100: 클라이언트 110: 내부 메모리
120: 신뢰할 수 있는 노드 집합 130: 검증 노드 집합
200: 블록체인 네트워크 250: 블록 데이터
260: 트랜잭션 데이터 270: 신뢰할 수 있는 노드 집합
280: 검증 노드 집합

Claims (10)

  1. 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법에 있어서,
    클라이언트가 블록 데이터에 포함된 신뢰할 수 있는 노드의 집합을 제공받는 단계;
    상기 집합에 포함된 어느 하나의 노드를 선택하는 단계;
    상기 선택된 노드와 연결하는 단계; 및
    상기 연결된 노드를 통해 블록체인에 액세스하는 단계를 포함하는,
    신뢰할 수 있는 노드를 통한 블록체인 액세스 방법.
  2. 제 1항에 있어서,
    상기 신뢰할 수 있는 노드의 집합을 제공받는 단계는,
    제네시스 블록과, 생성된 모든 블록에 포함된 트랜잭션 데이터로부터 신뢰할 수 있는 노드의 집합을 생성하는 단계를 포함하는,
    신뢰할 수 있는 노드를 통한 블록체인 액세스 방법.
  3. 제 2항에 있어서,
    상기 신뢰할 수 있는 노드의 집합을 제공받는 단계는,
    제네시스 블록에 포함된 최초 신뢰할 수 있는 노드 집합과 검증 노드 집합을 획득하는 단계;
    상기 블록체인에 연결된 노드로부터 상기 모든 블록을 다운로드하는 단계; 및
    상기 모든 블록에 포함된 신뢰 노드 변경 데이터와 검증 노드 변경 데이터를 이용하여 상기 최초 신뢰할 수 있는 노드 집합과 검증 노드 집합을 업데이트하는 단계를 포함하는,
    신뢰할 수 있는 노드를 통한 블록체인 액세스 방법.
  4. 제 3항에 있어서,
    상기 신뢰 노드 변경 데이터는,
    상기 신뢰할 수 있는 노드의 집합 중 노드의 변경, 제거 및 교체 이력을 포함하는,
    신뢰할 수 있는 노드를 통한 블록체인 액세스 방법.
  5. 제 3항에 있어서,
    상기 검증 노드 변경 데이터는,
    상기 검증 노드 집합 중의 노드의 변경, 제거 및 교체 이력을 포함하는,
    신뢰할 수 있는 노드를 통한 블록체인 액세스 방법.
  6. 제 1항에 있어서,
    상기 클라이언트가 상기 블록 데이터로부터 검증 노드의 집합을 제공받고, 상기 검증 노드의 집합을 통해 상기 신뢰할 수 있는 노드의 집합이 최신의 상태인지 여부를 판단하는 단계를 더 포함하는,
    신뢰할 수 있는 노드를 통한 블록체인 액세스 방법.
  7. 제 6항에 있어서,
    상기 클라이언트가 신뢰할 수 있는 노드의 집합이 최신의 상태인지 여부를 판단하는 단계는,
    상기 검증 노드의 집합에 포함된 모든 검증 노드로부터 현재 블록 높이를 제공받는 단계;
    상기 모든 검증 노드로부터 제공된 현재 블록 높이의 최대값이 상기 블록 데이터에 저장된 블록 높이와 동일한지 여부를 판단하는 단계; 및
    판단 결과 동일하지 않은 경우, 상기 신뢰할 수 있는 노드의 집합을 업데이트하는 단계를 포함하는,
    신뢰할 수 있는 노드를 통한 블록체인 액세스 방법.
  8. 제 7항에 있어서,
    상기 신뢰할 수 있는 노드의 집합을 업데이트하는 단계는,
    상기 최대값을 제공한 검증 노드로부터 새로운 블록 데이터를 다운로드하고, 상기 새로운 블록 데이터의 트랜잭션 데이터에 기초하여 상기 신뢰할 수 있는 노드의 집합을 업데이트하는 단계를 포함하는,
    신뢰할 수 있는 노드를 통한 블록체인 액세스 방법.
  9. 제 1항 내지 제8항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록매체.
  10. 신뢰할 수 있는 노드를 통한 블록체인 액세스 시스템에 있어서,
    복수의 컴퓨팅 장치를 포함하는 노드가 상호 연결된 블록체인 네트워크; 및
    상기 블록체인 네트워크에 액세스하는 클라이언트를 포함하되,
    상기 클라이언트는
    상기 블록체인 네트워크에서 생성된 블록 데이터에 포함된 신뢰할 수 있는 노드의 집합을 제공받고,
    상기 집합에 포함된 어느 하나의 노드를 선택하고,
    상기 선택된 노드와 연결하고,
    상기 연결된 노드를 통해 상기 블록체인 네트워크에 액세스하는,
    신뢰할 수 있는 노드를 통한 블록체인 액세스 시스템.
PCT/KR2022/002225 2021-03-23 2022-02-15 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법, 이를 저장하는 컴퓨터로 판독 가능한 기록매체 및 그 시스템 WO2022203203A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210037339A KR102529809B1 (ko) 2021-03-23 2021-03-23 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법, 이를 저장하는 컴퓨터로 판독 가능한 기록매체 및 그 시스템
KR10-2021-0037339 2021-03-23

Publications (1)

Publication Number Publication Date
WO2022203203A1 true WO2022203203A1 (ko) 2022-09-29

Family

ID=83397562

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/002225 WO2022203203A1 (ko) 2021-03-23 2022-02-15 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법, 이를 저장하는 컴퓨터로 판독 가능한 기록매체 및 그 시스템

Country Status (2)

Country Link
KR (1) KR102529809B1 (ko)
WO (1) WO2022203203A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018126029A2 (en) * 2016-12-30 2018-07-05 Intel Corporation Blockchains for securing iot devices
KR20190139043A (ko) * 2018-06-07 2019-12-17 에스케이브로드밴드주식회사 분산 데이터베이스 시스템 및 분산 데이터베이스 서비스 방법, 중앙 데이터베이스장치 및 중앙 데이터베이스장치의 동작 방법
KR102166233B1 (ko) * 2018-10-11 2020-10-15 주식회사 디지털존 블록체인 기술을 이용한 전자문서 발급 시스템 및 그것의 제어 방법
KR102179160B1 (ko) * 2020-06-23 2020-11-16 주식회사 아이콘루프 블록체인 간의 통신을 위해 메시지를 증명하는 시스템 및 방법
KR102220599B1 (ko) * 2018-10-11 2021-02-26 주식회사 디지털존 통합 인증을 위한 블록체인 시스템 및 그것의 제어 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107592292B (zh) * 2017-07-26 2019-08-09 阿里巴巴集团控股有限公司 一种区块链节点间通信方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018126029A2 (en) * 2016-12-30 2018-07-05 Intel Corporation Blockchains for securing iot devices
KR20190139043A (ko) * 2018-06-07 2019-12-17 에스케이브로드밴드주식회사 분산 데이터베이스 시스템 및 분산 데이터베이스 서비스 방법, 중앙 데이터베이스장치 및 중앙 데이터베이스장치의 동작 방법
KR102166233B1 (ko) * 2018-10-11 2020-10-15 주식회사 디지털존 블록체인 기술을 이용한 전자문서 발급 시스템 및 그것의 제어 방법
KR102220599B1 (ko) * 2018-10-11 2021-02-26 주식회사 디지털존 통합 인증을 위한 블록체인 시스템 및 그것의 제어 방법
KR102179160B1 (ko) * 2020-06-23 2020-11-16 주식회사 아이콘루프 블록체인 간의 통신을 위해 메시지를 증명하는 시스템 및 방법

Also Published As

Publication number Publication date
KR20220132266A (ko) 2022-09-30
KR102529809B1 (ko) 2023-05-08

Similar Documents

Publication Publication Date Title
WO2018155822A1 (ko) 계정 등록의 간소화 서비스 및 사용자 인증 서비스를 제공하는 방법 및 이를 이용한 인증 서버
WO2018080207A1 (ko) 블록체인 내의 블록별로 밸런스 데이터베이스를 관리하여 통화를 발행 및 지급 결제하는 방법과 이를 이용한 서버
US20050240989A1 (en) Method of sharing state between stateful inspection firewalls on mep network
WO2021036545A1 (zh) 一种基于智能合约的数据处理方法、设备及存储介质
WO2018043865A2 (ko) 블록체인을 기반으로 한 파일 관리/검색 시스템 및 파일 관리/검색 방법
CN109246211B (zh) 一种区块链中的资源上传和资源请求方法
CN100474851C (zh) 对等网络名字解析协议的安全基础结构和方法
WO2018070848A1 (ko) 스마트 컨트랙트 기반의 인증서 서비스를 제공하는 방법 및 이를 이용한 서버
US11475150B2 (en) Methods and apparatus for implementing state proofs and ledger identifiers in a distributed database
CN111010376B (zh) 基于主从链的物联网认证系统及方法
US7430747B2 (en) Peer-to peer graphing interfaces and methods
WO2018012871A1 (ko) 메신저 서비스를 통하여 송수신하는 데이터에 대한 기록 서비스 및 검증 서비스를 제공하는 방법, 및 이를 이용한 서버
WO2018151427A1 (ko) 스마트 컨트랙트 및 블록체인 데이터베이스를 사용하여 pki 기반의 인증을 통해 사용자의 로그인을 대행하는 방법 및 이를 이용한 서버
WO2017192007A2 (ko) 블록 검증을 위한 복수의 일방향 함수를 지원하는 블록 체인
WO2018012872A1 (ko) 메신저 서비스를 통하여 송수신되는 데이터에 대한 기록 및 검증 서비스를 제공하는 방법, 및 이를 이용한 서버
CN102668513B (zh) 用于在对等网络内对服务定位的方法和装置
CN112287034B (zh) 一种数据同步方法、设备以及计算机可读存储介质
WO2018080206A1 (ko) Utxo 기반 프로토콜에서 머클 트리 구조를 사용하여 통화를 발행 및 지급 결제하는 방법과 이를 이용한 서버
WO2019198885A1 (ko) 블록체인 기반의 다수의 서비스 노드를 사용하는 탈중앙화 서비스 플랫폼
WO2020158973A1 (ko) 가설 수락 프로토콜-2 방식의 블록체인 합의 시스템 및 방법
CN113271311A (zh) 一种跨链网络中的数字身份管理方法及系统
CN113542292A (zh) 基于dns和ip信誉数据的内网安全防护方法及系统
WO2021070106A1 (en) Methods and devices for secure symbiotic mining
WO2022203203A1 (ko) 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법, 이를 저장하는 컴퓨터로 판독 가능한 기록매체 및 그 시스템
WO2024101500A1 (ko) Nft 컨테이너를 이용한 nft 발행 시스템 및 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22775905

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 12.02.2024)