KR20210093147A - User apparatus and manager apparatus included in blockchain network and controlling method thereof - Google Patents

User apparatus and manager apparatus included in blockchain network and controlling method thereof Download PDF

Info

Publication number
KR20210093147A
KR20210093147A KR1020200137113A KR20200137113A KR20210093147A KR 20210093147 A KR20210093147 A KR 20210093147A KR 1020200137113 A KR1020200137113 A KR 1020200137113A KR 20200137113 A KR20200137113 A KR 20200137113A KR 20210093147 A KR20210093147 A KR 20210093147A
Authority
KR
South Korea
Prior art keywords
area
block chain
transaction
stored
information
Prior art date
Application number
KR1020200137113A
Other languages
Korean (ko)
Inventor
우망 고엘
이샨 라스토기
라훌 라젠드라 소나니스
싯다르트 랄
김연향
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to PCT/KR2021/000205 priority Critical patent/WO2021145606A1/en
Priority to US17/144,707 priority patent/US11379858B2/en
Publication of KR20210093147A publication Critical patent/KR20210093147A/en

Links

Images

Classifications

    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • 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/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/1082Resource delivery mechanisms involving incentive schemes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

A user device connectable to a blockchain system is disclosed. The user device comprises: a memory; a communication interface; and a processor configured to control the communication interface to divide a blockchain, made of a plurality of blocks, into an active area and an inactive area based on preset criteria, store a block included in the active area in a first area of the memory, record information on a transaction in the block stored in the first area of the memory when the transaction is generated on a blockchain system and transmit transaction information satisfying the preset criteria in transaction information stored in the first area to a manager device included in the blockchain system.

Description

블록 체인 네트워크에 포함된 사용자 장치, 관리자 장치 및 이의 제어 방법 { USER APPARATUS AND MANAGER APPARATUS INCLUDED IN BLOCKCHAIN NETWORK AND CONTROLLING METHOD THEREOF }User devices, administrator devices and their control methods included in the blockchain network { USER APPARATUS AND MANAGER APPARATUS INCLUDED IN BLOCKCHAIN NETWORK AND CONTROLLING METHOD THEREOF }

관련 출원에 대한 상호 참조CROSS-REFERENCE TO RELATED APPLICATIONS

본 출원은 인도 가출원 202041002191호에 기초하고 그 이익을 도출하며, 그 내용은 본 개시에 참조로 통합된다.This application is based on and derives from the Indian Provisional Application No. 202041002191, the contents of which are incorporated herein by reference.

본 개시의 실시예는 블록 체인 기술에 관한 것으로, 더욱 구체적으로 계산 및 저장 제약이 있는 장치가 블록 체인 네트워크에서 노드로 작동할 수 있게 하는 것이다.Embodiments of the present disclosure relate to blockchain technology, and more specifically, to enable devices with computational and storage constraints to act as nodes in a blockchain network.

블록 체인은 블록 체인 네트워크의 모든 참여자(노드) 간의 트랜잭션 기록(records of transactions)의 불변의 저장을 가능하게 하는 데이터 구조이다. 블록 체인은 블록의 체인을 지칭하며, 여기서 각각의 블록은 이전 블록과 관련된다. 블록 체인의 보안은 블록 체인의 동일한 사본을 가진 모든 노드에 의해 유지된다. 블록 체인에 저장된 데이터의 무결성은 블록 체인의 검증 노드 간에 합의를 확립함으로써 유지된다. 노드가 트랜잭션을 검증하기 위해 합의에 도달하면, 블록 체인에 블록이 추가되어 검증된 트랜잭션을 저장할 수 있다.A blockchain is a data structure that enables the immutable storage of records of transactions between all participants (nodes) in a blockchain network. A blockchain refers to a chain of blocks, where each block is related to a previous block. The security of the blockchain is maintained by all nodes with identical copies of the blockchain. The integrity of the data stored in the blockchain is maintained by establishing consensus among the verification nodes of the blockchain. When nodes reach consensus to validate a transaction, a block can be added to the blockchain to store the verified transaction.

그러나, 트랜잭션의 수가 증가함에 따라, 블록 체인의 길이가 증가한다. 블록 체인에 새로운 블록이 추가되면, 새롭게 추가된 블록은 블록 체인 상의 모든 노드에 의해 수신된다. 따라서, 블록 체인 네트워크에 참여하는 노드는 특히 전체 블록 체인을 저장하기 위한 저장 능력 및 블록 체인에 저장될 필요가 있는 트랜잭션을 검증하기 위한 계산 능력의 관점에서 리소스 집약적일 필요가 있다. 현재, 블록 체인 네트워크의 노드는 하이-엔드 데스크탑 및 서버와 같은 장치이다.However, as the number of transactions increases, the length of the blockchain increases. When a new block is added to the blockchain, the newly added block is received by all nodes on the blockchain. Therefore, nodes participating in a blockchain network need to be resource-intensive, especially in terms of storage capacity to store the entire blockchain and computational power to verify transactions that need to be stored on the blockchain. Currently, nodes in a blockchain network are devices such as high-end desktops and servers.

블록 체인을 호스팅하기 위한 저장 요건 및 다량의 데이터를 사용하여 트랜잭션을 검증하기 위한 계산 요건은 제약으로, 이는 스마트 폰, 랩탑, 개인용 컴퓨터, 태블릿 등과 같은 사용자 장치가 블록 체인의 노드로서 작동하는 것을 방해한다. 사용자 장치가 특수 하드웨어를 장착한 경우, 사용자 장치만이 블록 체인 노드로서 기능할 수 있다. 계산 제약, 저장 제약 및 사용자 장치의 특수 하드웨어에 대한 투자에 대한 비성향과 같은 요인이 블록 체인의 광범위한 채택을 제한하는 주요 요인이다.The storage requirements for hosting the blockchain and the computational requirements for validating transactions using large amounts of data are constraints, which prevent user devices such as smartphones, laptops, personal computers, tablets, etc. from functioning as nodes in the blockchain. do. If the user device is equipped with special hardware, only the user device can function as a blockchain node. Factors such as computational constraints, storage constraints, and an inclination to invest in specialized hardware on user devices are major factors limiting the widespread adoption of blockchain.

본 개시의 실시예의 주요 목적은 사용자 장치를 블록 체인 네트워크에서 노드로서 참여할 수 있도록 하기 위한 경량 모바일(Light-weight mobile, LIMO) 블록 체인 프레임워크를 제공하기 위한 방법 및 시스템을 공개하는 것이며, 여기서 사용자 장치는 블록 체인의 전체 사본을 사용자 장치에 로컬로 저장하지 않고 블록 체인의 업데이트를 검증하고 전체 블록 체인에 액세스할 수 있다.The main purpose of an embodiment of the present disclosure is to disclose a method and system for providing a Light-weight mobile (LIMO) blockchain framework for enabling a user device to participate as a node in a blockchain network, wherein the user Devices can verify updates to the blockchain and access the entire blockchain without storing a full copy of the blockchain locally on the user's device.

본 개시의 실시예의 다른 목적은 블록 체인을 활성 부분과 비활성 부분으로 세그먼트화하는 것이며, 여기서 활성 부분은 최근 트랜잭션을 저장하는 블록으로 구성되고 비활성 부분은 이전 트랜잭션을 저장하는 복수의 청크(chunk)로 구성되며, 여기서 블록 체인을 활성 부분 및 비활성 부분으로 세그먼트화하기 위해 사용되는 기준은 시간 요인, 저장 요인 또는 임의의 다른 동적 요인에 기초한다.Another object of the embodiments of the present disclosure is to segment the blockchain into an active part and an inactive part, where the active part consists of blocks storing recent transactions and the inactive part into a plurality of chunks storing previous transactions. where the criteria used to segment the blockchain into active and inactive parts are based on time factors, storage factors, or any other dynamic factors.

본 개시의 실시예의 다른 목적은 블록 체인의 비활성 부분의 개요를 저장하기 위해 각각의 장치에 상태 데이터베이스를 제공하는 것이며, 여기서 개요는 블록 체인 네트워크의 일부인 개별 사용자의 아이덴티티 및 사용자에 의해 보유되는 토큰의 수로 구성되고, 여기서 토큰은 사용자에 의해 보유되는 자산을 나타낼 수 있다.Another object of embodiments of the present disclosure is to provide a state database on each device to store an overview of the inactive portion of the blockchain, where the overview is the identity of individual users who are part of the blockchain network and the tokens held by the users. Consists of a number, where a token may represent an asset held by a user.

본 개시의 실시예의 다른 목적은 블록 체인의 활성 부분, 상태 데이터베이스 및 블록 체인의 비활성 부분의 일부를 사용자 장치에 저장하는 것이며 여기서 사용자 장치는 블록 체인의 활성 부분과 상태 데이터베이스를 사용하여 트랜잭션을 검증하고 블록 체인에 블록을 추가할 수 있다.Another object of the embodiment of the present disclosure is to store the active part of the blockchain, the state database and the part of the inactive part of the blockchain in a user device, wherein the user device uses the active part and the state database of the blockchain to verify the transaction and Blocks can be added to the blockchain.

본 개시의 실시예의 다른 목적은 블록 체인의 비활성 부분을 포함하는 각각의 청크를 사전 규정된 횟수만큼 복제하고 사용자 장치에 걸쳐 청크를 저장하는 것이며, 여기서 사전 규정된 수는 다른 사용자 장치가 사용자 장치와 관련된 청크를 페칭(fetching)할 수 있도록 온라인 상태에 필요한 노드의 수에 기초한다.Another object of an embodiment of the present disclosure is to duplicate each chunk comprising an inactive part of the blockchain a predefined number of times and store the chunk across user devices, where the predefined number is the number of different user devices and user devices. It is based on the number of nodes needed to be online to be able to fetch the relevant chunks.

본 개시의 일 실시 예에 따른 블록 체인 시스템에 연결 가능한 사용자 장치는, 메모리, 통신 인터페이스 및 기설정된 기준에 기초하여 복수의 블록으로 구성된 블록 체인을 활성화 영역 및 비활성화 영역으로 구분하고, 상기 활성화 영역에 포함된 블록을 상기 메모리의 제1 영역에 저장하고, 상기 블록 체인 시스템 상에서 트랜잭션(transaction)이 발생되면, 상기 트랜잭션의 정보를 상기 메모리의 제1 영역에 저장된 블록에 기록하고, 상기 제1 영역에 저장된 트랜잭션 정보 중 기설정된 조건을 만족하는 트랜잭션 정보를 상기 블록 체인 시스템에 포함된 관리자 장치에 전송하도록 상기 통신 인터페이스를 제어하는 프로세서를 포함한다. A user device connectable to a block chain system according to an embodiment of the present disclosure divides a block chain consisting of a plurality of blocks into an active area and an inactive area based on a memory, a communication interface, and a preset criterion, and The included block is stored in the first area of the memory, and when a transaction occurs on the block chain system, the information of the transaction is recorded in the block stored in the first area of the memory, and the first area is and a processor for controlling the communication interface to transmit transaction information that satisfies a preset condition among stored transaction information to a manager device included in the block chain system.

본 개시의 일 실시 예에 따른 블록 체인 시스템에 포함된 관리자 장치는 블록 체인이 저장된 메모리, 통신 인터페이스 및 기설정된 기준에 기초하여 상기 블록 체인이 활성화 영역 및 비활성화 영역으로 구분되면, 상기 비활성화 영역에 해당하는 트랜잭션 정보를 기설정된 횟수만큼 복제하고, 상기 기설정된 횟수만큼 복제된 트랜잭션 정보를 상기 블록 체인 시스템에 포함된 복수의 사용자 장치에 분산시켜 전송하는, 프로세서를 포함한다. The manager device included in the block chain system according to an embodiment of the present disclosure corresponds to the inactive area when the block chain is divided into an active area and an inactive area based on a memory in which the block chain is stored, a communication interface, and a preset criterion. and a processor for replicating the transaction information to be copied a predetermined number of times, and distributing and transmitting the transaction information replicated for the predetermined number of times to a plurality of user devices included in the block chain system.

한편, 본 개시의 일 실시 예에 따른 블록 체인 시스템에 연결 가능한 사용자 장치의 제어 방법은 기설정된 기준에 기초하여 복수의 블록으로 구성된 블록 체인을 활성화 영역 및 비활성화 영역으로 구분하는 단계, 상기 활성화 영역에 포함된 블록을 상기 사용자 장치에 포함된 메모리의 제1 영역에 저장하는 단계, 상기 블록 체인 시스템 상에서 트랜잭션(transaction)이 발생되면, 상기 트랜잭션의 정보를 상기 메모리의 제1 영역에 저장된 블록에 기록하는 단계 및 상기 제1 영역에 저장된 트랜잭션 정보 중 기설정된 조건을 만족하는 트랜잭션 정보를 상기 블록 체인 시스템에 포함된 관리자 장치에 전송하는 단계를 포함한다. On the other hand, the control method of a user device connectable to a block chain system according to an embodiment of the present disclosure includes the steps of dividing a block chain composed of a plurality of blocks into an active area and an inactive area based on a preset criterion; Storing the included block in a first area of a memory included in the user device, and when a transaction occurs on the block chain system, writing the information of the transaction to the block stored in the first area of the memory and transmitting transaction information that satisfies a preset condition among the transaction information stored in the first area to a manager device included in the block chain system.

또한, 블록 체인 시스템에 포함된 관리자 장치의 제어 방법은, 기설정된 기준에 기초하여 상기 블록 체인이 활성화 영역 및 비활성화 영역으로 구분되면, 상기 비활성화 영역에 해당하는 트랜잭션 정보를 기설정된 횟수만큼 복제하는 단계 및 상기 기설정된 횟수만큼 복제된 트랜잭션 정보를 상기 블록 체인 시스템에 포함된 복수의 사용자 장치에 분산시켜 전송하는 단계를 포함한다. In addition, the control method of the manager device included in the block chain system includes: if the block chain is divided into an active area and an inactive area based on a predetermined criterion, copying transaction information corresponding to the inactive area a predetermined number of times and distributing and transmitting transaction information replicated by the predetermined number of times to a plurality of user devices included in the block chain system.

도 1은 본 개시의 일 실시 예에 따른 블록 체인 시스템을 설명하기 위한 도면,
도 2는 본 개시의 일 실시 예에 따른 사용자 장치의 구성을 설명하기 위한 블록도,
도 3은 본 개시의 일 실시 예에 따른 사용자 장치의 동작을 설명하기 위한 흐름도,
도 4는 본 개시의 일 실시 예에 따른 관리자 장치의 구성을 설명하기 위한 블록도,
도 5a는 본 개시의 일 실시 예에 따른 블록 체인 네트워크를 이용하여 P2P 리소스 관리를 수행하는 사용자 장치를 설명하기 위한 도면,
도 5b는 본 개시의 일 실시 예에 따른 블록 체인 시스템을 이용하여 P2P 리소스 관리를 수행하는 사용자 장치를 설명하기 위한 도면
도 6은 본 개시의 일 실시 예에 따른 블록 체인 시스템을 이용하여 다른 사용자 장치와 데이터를 공유하는 사용자 장치를 설명하기 위한 도면,
도 7은 본 개시의 일 실시 예에 따른 블록 체인 시스템을 이용하여 대중 교통 서비스 사용에 대한 인센티브를 수신하는 사용자 장치를 설명하기 위한 도면, 및
도 8은 본 개시의 일 실시 예에 따른 사용자 장치의 제어 방법을 설명하기 위한 도면이다.
1 is a diagram for explaining a block chain system according to an embodiment of the present disclosure;
2 is a block diagram illustrating a configuration of a user device according to an embodiment of the present disclosure;
3 is a flowchart illustrating an operation of a user device according to an embodiment of the present disclosure;
4 is a block diagram for explaining the configuration of a manager device according to an embodiment of the present disclosure;
5A is a diagram for explaining a user device that performs P2P resource management using a block chain network according to an embodiment of the present disclosure;
5B is a diagram for explaining a user device that performs P2P resource management using a block chain system according to an embodiment of the present disclosure;
6 is a diagram for explaining a user device sharing data with another user device using a block chain system according to an embodiment of the present disclosure;
7 is a diagram for explaining a user device that receives an incentive for using a public transportation service using a block chain system according to an embodiment of the present disclosure; and
8 is a diagram for explaining a method of controlling a user device according to an embodiment of the present disclosure.

이하, 본 개시의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 개시에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 실시 예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.Hereinafter, various embodiments of the present disclosure will be described with reference to the accompanying drawings. However, this is not intended to limit the technology described in the present disclosure to specific embodiments, and it should be understood that various modifications, equivalents, and/or alternatives of the embodiments of the present disclosure are included. . In connection with the description of the drawings, like reference numerals may be used for like components.

본 개시에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.In the present disclosure, expressions such as “have,” “may have,” “include,” or “may include” indicate the presence of a corresponding characteristic (eg, a numerical value, function, operation, or component such as a part). and does not exclude the presence of additional features.

본 개시에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.In this disclosure, expressions such as “A or B,” “at least one of A and/and B,” or “one or more of A or/and B” may include all possible combinations of the items listed together. . For example, "A or B," "at least one of A and B," or "at least one of A or B" means (1) includes at least one A, (2) includes at least one B; Or (3) it may refer to all cases including both at least one A and at least one B.

본 개시에서 사용된 "제1," "제2," "첫째," 또는 "둘째," 등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 예를 들면, 제1 사용자 기기와 제2 사용자 기기는, 순서 또는 중요도와 무관하게, 서로 다른 사용자 기기를 나타낼 수 있다. 예를 들면, 본 개시에 기재된 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 바꾸어 명명될 수 있다.As used in the present disclosure, expressions such as “first,” “second,” “first,” or “second,” may modify various elements, regardless of order and/or importance, and refer to one element. It is used only to distinguish it from other components, and does not limit the components. For example, the first user equipment and the second user equipment may represent different user equipment regardless of order or importance. For example, without departing from the scope of the rights described in the present disclosure, a first component may be named as a second component, and similarly, the second component may also be renamed as a first component.

본 개시에서 사용된 "모듈", "유닛", "부(part)" 등과 같은 용어는 적어도 하나의 기능이나 동작을 수행하는 구성요소를 지칭하기 위한 용어이며, 이러한 구성요소는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈", "유닛", "부(part)" 등은 각각이 개별적인 특정한 하드웨어로 구현될 필요가 있는 경우를 제외하고는, 적어도 하나의 모듈이나 칩으로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.As used in the present disclosure, terms such as “module”, “unit”, “part”, etc. are terms used to refer to a component that performs at least one function or operation, and such component is implemented in hardware or software. or may be implemented as a combination of hardware and software. In addition, a plurality of "modules", "units", "parts", etc. are integrated into at least one module or chip, and are integrated into at least one processor, except when each needs to be implemented in individual specific hardware. can be implemented as

어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.A component (eg, a first component) is "coupled with/to (operatively or communicatively)" to another component (eg, a second component) When referring to "connected to", it will be understood that the certain element may be directly connected to the other element or may be connected through another element (eg, a third element). On the other hand, when it is said that a component (eg, a first component) is "directly connected" or "directly connected" to another component (eg, a second component), the component and the It may be understood that other components (eg, a third component) do not exist between other components.

본 개시에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다. The expression "configured to (or configured to)" as used in this disclosure depends on the context, for example, "suitable for," "having the capacity to" ," "designed to," "adapted to," "made to," or "capable of." The term “configured (or configured to)” may not necessarily mean only “specifically designed to” in hardware. Instead, in some circumstances, the expression “a device configured to” may mean that the device is “capable of” with other devices or components. For example, the phrase “a processor configured (or configured to perform) A, B, and C” refers to a dedicated processor (eg, an embedded processor) for performing the operations, or by executing one or more software programs stored in a memory device. , may mean a generic-purpose processor (eg, a CPU or an application processor) capable of performing corresponding operations.

본 개시에서 사용된 용어들은 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 개시에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 개시에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 개시에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 개시에서 정의된 용어일지라도 본 개시의 실시 예들을 배제하도록 해석될 수 없다.Terms used in the present disclosure are used only to describe specific embodiments, and may not be intended to limit the scope of other embodiments. The singular expression may include the plural expression unless the context clearly dictates otherwise. Terms used herein, including technical or scientific terms, may have the same meaning as commonly understood by one of ordinary skill in the art described in the present disclosure. Among the terms used in the present disclosure, terms defined in a general dictionary may be interpreted with the same or similar meaning as the meaning in the context of the related art, and unless explicitly defined in the present disclosure, ideal or excessively formal meanings is not interpreted as In some cases, even terms defined in the present disclosure cannot be construed to exclude embodiments of the present disclosure.

한편, 본 개시에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.Meanwhile, in the present disclosure, the term user may refer to a person who uses an electronic device or a device (eg, an artificial intelligence electronic device) using the electronic device.

이하에서는 도면을 참조하여 본 개시에 대해 상세히 설명하기로 한다.Hereinafter, the present disclosure will be described in detail with reference to the drawings.

도 1은 본 개시의 일 실시 예에 따른 블록 체인 시스템을 설명하기 위한 도면이다. 1 is a diagram for explaining a block chain system according to an embodiment of the present disclosure.

도 1을 참조하면, 본 개시에 따른 블록 체인 시스템(1000)은 사용자 장치(100-1, 100-2,..., 100-n) 및 관리자 장치(200)를 포함할 수 있다. 본 개시에서 사용자 장치(100-1, 100-2,..., 100-n) 및 관리자 장치(200)는 장치 또는 노드로 지칭될 수 있다. Referring to FIG. 1 , a block chain system 1000 according to the present disclosure may include user devices 100-1, 100-2, ..., 100-n, and a manager device 200 . In the present disclosure, the user devices 100-1, 100-2, ..., 100-n and the manager device 200 may be referred to as devices or nodes.

사용자 장치(100-1, 100-2,..., 100-n)는 블록 체인 네트워크의 노드로서 기능할 수 있다. 구체적으로, 사용자 장치(100-1, 100-2,..., 100-n) 각각은 경량 모바일 블록 체인 프레임워크를 포함할 수 있으며, 이는 사용자 장치(100-1, 100-2,..., 100-n)로 하여금 통상의 블록 체인 시스템(1000)에서 노드로서 기능할 수 있게 한다. User devices 100-1, 100-2, ..., 100-n may function as nodes of a blockchain network. Specifically, each of the user devices 100-1, 100-2, ..., 100-n may include a lightweight mobile block chain framework, which may include the user devices 100-1, 100-2, ..., 100-n. ., 100-n) to function as a node in a typical blockchain system 1000.

본 개시에서 사용자 장치(100-1, 100-2,..., 100-n)는 전체 블록 체인을 사용자 장치에 로컬로 저장하지 않으면서, 블록 체인의 업데이트를 검증하고 전체 블록 체인에 액세스할 수 있다. 여기에서, 전체 블록 체인은 블록 체인 시스템(1000)에서 발생된 트랜잭션 정보을 포함하는 블록 체인으로, 블록 체인 시스템(1000)에 포함된 복수의 사용자 장치(100-1, 100-2, ..., 100-n) 및 관리자 장치(200)간에 발생된 복수의 트랜잭션 정보를 포함할 수 있다. In the present disclosure, the user devices 100-1, 100-2, ..., 100-n can verify the update of the block chain and access the entire block chain without storing the entire block chain locally on the user device. can Here, the entire block chain is a block chain including transaction information generated in the block chain system 1000, and a plurality of user devices 100-1, 100-2, ..., 100-n) and a plurality of transaction information generated between the manager device 200 may be included.

사용자 장치(100-1, 100-2,..., 100-n)가 트랜잭션을 수행할 때, 트랜잭션을 저장하고 트랜잭션의 기록을 유지하기 위해 블록이 블록 체인에 생성될 수 있다. 이때, 트랜잭션의 수가 증가함에 따라, 블록 체인의 블록 수와 블록 체인의 크기가 증가한다. When the user devices 100-1, 100-2, ..., 100-n perform a transaction, a block may be created in the blockchain to store the transaction and maintain a record of the transaction. At this time, as the number of transactions increases, the number of blocks in the block chain and the size of the block chain increase.

이때, 사용자 장치(100-1, 100-2,..., 100-n)는 블록 체인을 활성화 영역(또는 활성화 부분)과 비활성화 영역(또는 비활성화 부분)으로 구분할 수 있다. 블록 체인의 활성화 영역은 최근 트랜잭션을 저장하는 블록을 포함한다. 그리고, 블록 체인의 비활성화 영역은 이전 트랜잭션에 관한 정보를 포함한다. 여기에서, 블록 체인을 활성화 영역 및 비활성화 영역으로 구분하는데 사용되는 기준은 트랜잭션의 타임스탬프(timestamp), 사용자 장치의 저장 능력 및 특정 사용자 장치와 관련된 동적 요인에 기초할 수 있다. 또한, 각각의 사용자 장치(100-1, 100-2,..., 100-n)는 블록 체인을 활성화 영역 및 비활성화 영역으로 용이하게 세그먼트화 하기 위한 프레임워크를 포함할 수 있다. In this case, the user devices 100-1, 100-2, ..., 100-n may divide the block chain into an active area (or an active portion) and an inactive area (or an inactive portion). The active area of the blockchain contains blocks that store recent transactions. And, the inactive area of the block chain includes information about previous transactions. Here, the criteria used to classify the block chain into an active area and an inactive area may be based on the timestamp of the transaction, the storage capacity of the user device, and dynamic factors related to a specific user device. In addition, each of the user devices 100-1, 100-2, ..., 100-n may include a framework for easily segmenting the block chain into an active area and an inactive area.

사용자 장치(100-1, 100-2,..., 100-n)는 블록 체인의 비활성화 영역을 청크(chunk) 형태로 저장할 수 있다. 본 개시에서 청크는 블록 체인에 포함된 트랜잭션 정보를 포함하는 기설정된 크기의 데이터 단위를 의미한다. 구체적으로, 블록 체인의 비활성화 영역에 포함된 트랜잭션 정보는 기설정된 횟수로 복제되어 복수의 사용자 장치(100-1, 100-2,..., 100-n)에 암호화된 청크(chunk)의 형태로 저장될 수 있다. The user devices 100-1, 100-2, ..., 100-n may store the inactive area of the block chain in the form of chunks. In the present disclosure, a chunk means a data unit of a preset size including transaction information included in a block chain. Specifically, the transaction information included in the inactive area of the block chain is copied a preset number of times and is in the form of an encrypted chunk in the plurality of user devices 100-1, 100-2, ..., 100-n. can be stored as

이와 같이, 본 개시는 블록 체인의 비활성화 영역을 복수의 사용자 장치(100-1, 100-2,..., 100-n)에 암호화된 청크 형태로 저장하는 것을 포함한다. 즉, 비활성화 영역에 대한 각각의 청크는 기설정된 횟수로 복제되어, 복수의 사용자 장치(100-1, 100-2,..., 100-n)에 저장될 수 있다. 여기에서, 기설정된 횟수는 다른 사용자 장치가 사용자 장치와 관련된 청크를 페칭(fetching)할 수 있도록 온라인 상태에 필요한 노드의 수에 기초할 수 있다. As such, the present disclosure includes storing the inactive area of the block chain in the form of encrypted chunks in the plurality of user devices 100-1, 100-2, ..., 100-n. That is, each chunk of the inactive area may be copied a preset number of times and stored in the plurality of user devices 100-1, 100-2, ..., 100-n. Here, the predetermined number of times may be based on the number of nodes required to be online so that another user device can fetch a chunk related to the user device.

본 개시에서 사용자 장치(100-1, 100-2,..., 100-n)는 비활성화 영역에 대한 요약 정보(또는 개요)를 저장할 수 있다. 각각의 사용자 장치(100-1, 100-2,..., 100-n)는 비활성화 영역의 요약 정보를 저장하기 위한 상태 데이터 베이스를 포함할 수 있다. 이때, 요약 정보는 블록 체인 시스템(1000)의 일부인 모든 장치(사용자 장치)와 관련된 키-값 쌍으로 구성될 수 있다. 각각의 키-값 쌍은 블록 체인 시스템(1000)에 포함된 사용자 장치의 사용자의 아이덴티티(identity) 및 개별 사용자가 보유한 토큰 수를 포함한다. 본 개시에서, 토큰은 사용자가 보유한 자산을 나타낼 수 있다. In the present disclosure, the user devices 100 - 1 , 100 - 2 , ..., 100 - n may store summary information (or an overview) of the inactive area. Each of the user devices 100-1, 100-2, ..., 100-n may include a state database for storing summary information of the inactive area. In this case, the summary information may be composed of key-value pairs related to all devices (user devices) that are part of the block chain system 1000 . Each key-value pair includes the identity of the user of the user device included in the blockchain system 1000 and the number of tokens held by the individual user. In this disclosure, a token may represent an asset held by a user.

본 개시에서, 각각의 사용자 장치(100-1, 100-2,..., 100-n)는 활성화 영역, 상태 데이터 베이스 및 블록 체인의 비활성화 영역에 포함된 기설정된 개수의 청크를 저장할 수 있다. In the present disclosure, each of the user devices 100-1, 100-2, ..., 100-n may store a preset number of chunks included in the active area, the state database, and the inactive area of the block chain. .

일 실시 예에서, 사용자 장치(100-1, 100-2,..., 100-n)는 트랜잭션을 검증하고 블록 체인의 활성화 영역과 상태 데이터 베이스를 사용하여 블록 체인에 블록을 추가할 수 있다. In one embodiment, the user devices 100-1, 100-2, ..., 100-n may verify a transaction and add a block to the block chain using the active area and state database of the block chain. .

본 개시에서 사용자 장치(100-1, 100-2,..., 100-n)의 예는 스마트 폰, 태블릿 PC, 랩탑, 개인용 컴퓨터(PC), 웨어러블 장치, 사물 인터넷(IoT) 장치 등을 포함할 수 있으나, 반드시 이에 한정되는 것은 아니다. Examples of the user devices 100-1, 100-2, ..., 100-n in the present disclosure include smart phones, tablet PCs, laptops, personal computers (PCs), wearable devices, Internet of Things (IoT) devices, and the like. may be included, but is not necessarily limited thereto.

한편, 블록 체인 시스템(1000)의 사용자 장치(100-1, 100-2,..., 100-n)는 프로토콜의 세트를 따르도록 구성될 수 있다. 사용자 장치(100-1, 100-2,..., 100-n)가 블록 체인 네트워크에 가입할 때, 사용자 장치(100-1, 100-2,..., 100-n)는 블록 체인 네트워크에서 노드로서 기능하도록 하기 위하여 프로토콜 세트를 따라야 한다. On the other hand, the user devices 100-1, 100-2, ..., 100-n of the block chain system 1000 may be configured to follow a set of protocols. When user devices 100-1, 100-2,..., 100-n join the blockchain network, user devices 100-1, 100-2,..., 100-n join the blockchain network. In order to function as a node in a network, it must follow a set of protocols.

이때, 예시적인 프로토콜 세트는 블록 체인을 구분하기 위한 기준을 제공/설정하고, 블록 체인의 다른 사용자 장치(100-1, 100-2,..., 100-n)로부터 분리된 청크에 저장된 데이터를 검색하고, 블록 체인 네트워크의 다른 사용자 장치(100-1, 100-2,..., 100-n)에서 블록 체인의 청크를 복제하기 위한 정책을 공식화하고 블록 체인의 복제된 청크를 저장하기 위한 장치를 선택하기 위한 것이다. At this time, the exemplary protocol set provides/sets criteria for distinguishing the block chain, and data stored in separate chunks from other user devices (100-1, 100-2, ..., 100-n) of the block chain. to discover, formulate policies for replicating chunks of the blockchain on other user devices (100-1, 100-2,..., 100-n) in the blockchain network, and store the cloned chunks of the blockchain. to select a device for

이러한 프로토콜은 블록 체인 네트워크의 관리자에 의해 설정될 수 있다. These protocols can be set up by the administrator of the blockchain network.

일 실시 예에서 블록 체인 네트워크 관리자는 블록 체인 네트워크를 생성한 단일 노드/장치(가령, 사용자 장치(100-1, 100-2,..., 100-n)) 또는 블록 체인 네트워크를 생성한 단일 노드/ 장치(가령, 사용자 장치(100-1, 100-2,..., 100-n))의 그룹일 수 있다. 구체적으로, 노드가 블록 체인 네트워크에 계속 가입함에 따라, 적어도 하나의 다른 노드는 현재 블록 체인 네트워크 관리자(들)의 승인(들)을 통해 블록 체인 네트워크 관리자로서 작동하는 역할을 담당할 수 있다. In one embodiment, the blockchain network administrator is the single node/device that created the blockchain network (eg, user device 100-1, 100-2, ..., 100-n) or the single node/device that created the blockchain network. It may be a group of nodes/devices (eg, user devices 100-1, 100-2, ..., 100-n). Specifically, as a node continues to join the blockchain network, at least one other node may assume the role of acting as a blockchain network administrator through approval(s) of the current blockchain network administrator(s).

한편, 다른 일 실시 예에서, 프로토콜은 관리자 장치(200)에 의해 설정될 수 있다. 이때, 관리자 장치(200)는 중앙 서버 또는 다양한 단말 장치로 구현될 수 있다. Meanwhile, in another embodiment, the protocol may be set by the manager device 200 . In this case, the manager device 200 may be implemented as a central server or various terminal devices.

관리자 장치(200)(이하, 관리자 장치(200)는 블록 체인 네트워크 관리자를 포함)는 클라우드 또는 유선/무선 링크를 통해 사용자 장치(100-1, 100-2,..., 100-n)와 연결될 수 있다. The manager device 200 (hereinafter, the manager device 200 includes a block chain network manager) communicates with the user devices 100-1, 100-2, ..., 100-n through the cloud or a wired/wireless link. can be connected

상술한 바와 같이, 블록 체인을 활성화 영역 및 비활성화 영역으로 구분하는데 사용되는 기준은 시간 요인 및 저장 요인에 기초할 수 있는데, 이와 같이 블록 체인의 세그먼트화에 사용되는 기준(시간 요인 및/또는 저장 요인)은 관리자 장치(200)에 의해 설정될 수 있다. As described above, the criteria used to divide the block chain into an active area and an inactive area may be based on a time factor and a storage factor. As such, the criteria used for segmentation of the block chain (time factor and/or storage factor) ) may be set by the manager device 200 .

즉, 관리자 장치(200)는 블록 체인을 활성화 영역 및 비활성화 영역으로 구분하는데 사용되는 기준을 설정하고, 설정된 기준을 각각의 사용자 장치(100-1, 100-2,..., 100-n)에 전송할 수 있다. That is, the manager device 200 sets a criterion used to divide the block chain into an active area and an inactive area, and sets the standard for each of the user devices 100-1, 100-2, ..., 100-n. can be sent to

한편, 관리자 장치(200)는 각각의 사용자 장치(100-1, 100-2,..., 100-n)에 상태 데이터 베이스의 사본을 전송할 수 있다. 구체적으로, 관리자 장치(200)는 블록 체인의 비활성화 영역에 대한 요약 정보를 포함하는 상태 데이터 베이스를 생성하고, 생성된 상태 데이터 베이스를 블록 체인 시스템(1000)에 포함된 사용자 장치(100-1, 100-2,..., 100-n)에 전송할 수 있다. Meanwhile, the manager device 200 may transmit a copy of the state database to each of the user devices 100-1, 100-2, ..., 100-n. Specifically, the manager device 200 generates a state database including summary information on the inactive area of the block chain, and uses the generated state database for the user device 100-1 included in the block chain system 1000; 100-2,..., 100-n).

이하에서는 도면을 통하여 본 개시의 사용자 장치(100) 및 관리자 장치(200)에 대하여 구체적으로 설명하도록 한다.Hereinafter, the user device 100 and the manager device 200 of the present disclosure will be described in detail with reference to the drawings.

도 2는 본 개시의 일 실시 예에 따른 사용자 장치(100)의 구성을 설명하기 위한 블록도이다. 2 is a block diagram illustrating the configuration of the user device 100 according to an embodiment of the present disclosure.

도 2에 도시된 바와 같이, 사용자 장치(100)는 메모리(110), 통신 인터페이스(120) 및 프로세서(130)를 포함할 수 있다. As shown in FIG. 2 , the user device 100 may include a memory 110 , a communication interface 120 , and a processor 130 .

메모리(110)는 사용자 장치(100)의 동작에 필요한 각종 프로그램 및 데이터 등을 저장하기 위한 구성요소이다. 메모리(110)는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 등으로 구현될 수 있다. 메모리(110)는 프로세서(130)에 의해 액세스되며, 프로세서(130)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다. 본 개시에서 메모리라는 용어는 메모리(110), 프로세서(130) 내 롬(미도시), 램(미도시) 또는 사용자 장치(100)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함할 수 있다.The memory 110 is a component for storing various programs and data necessary for the operation of the user device 100 . The memory 110 may be implemented as a non-volatile memory, a volatile memory, a flash-memory, a hard disk drive (HDD), or a solid state drive (SSD). The memory 110 is accessed by the processor 130 , and reading/writing/modification/deletion/update of data by the processor 130 may be performed. In the present disclosure, the term "memory" refers to a memory 110, a ROM (not shown) in the processor 130, a RAM (not shown), or a memory card (not shown) mounted in the user device 100 (eg, micro SD). card, memory stick).

메모리(110)는 저장되는 데이터의 종류에 기초하여 제1 영역(111), 제2 영역(112) 및 제3 영역(113)을 포함할 수 있다. 구체적으로, 제1 영역(111)에는 블록 체인의 활성화 영역에 포함된 블록이 저장될 수 있다. The memory 110 may include a first area 111 , a second area 112 , and a third area 113 based on the type of stored data. Specifically, the block included in the active area of the block chain may be stored in the first area 111 .

그리고, 제2 영역(112)에는 블록 체인의 비활성화 영역에 대한 요약 정보를 포함하는 상태 데이터 베이스가 저장될 수 있다. 그리고, 제3 영역(113)에는 블록 체인의 비활성화 영역에 포함된 트랜잭션 정보가 저장될 수 있다. 여기에서, 요약 정보는 복수의 사용자 장치(100-1, 100-2, …, 100-n)에 대한 식별 정보 및 토큰 정보를 포함할 수 있다. In addition, the state database including summary information on the inactive area of the block chain may be stored in the second area 112 . In addition, transaction information included in the inactive area of the block chain may be stored in the third area 113 . Here, the summary information may include identification information and token information for the plurality of user devices 100-1, 100-2, ..., 100-n.

일 실시예에서, 상태 데이터 베이스는 테이블이고, 테이블의 행 수는 블록 체인 시스템(1000)의 사용자 장치(100-1, 100-2,…100-n)의 노드의 수와 동일할 수 있다. 테이블은 2개의 열을 가질 수 있으며, 여기에서 제1 열은 사용자 장치(100-1, 100-2,…100-n)의 고유 식별 정보를 저장하고, 제2 열은 사용자 장치(100-1, 100-2,…100-n)를 소유한 사용자가 보유한 토큰의 정보를 저장할 수 있다. 예를 들어, 블록 체인 시스템(1000)에 백만 개의 노드가 존재하는 경우, 상태 데이터 베이스의 행 수는 백만 개가 될 수 있다. 이때, 각각의 고유 식별 번호의 크기가 40 bytes이고 토큰 수를 나타내는 데이터의 크기가 8bytes이면, 상태 데이터 베이스에 포함된 각각의 사용자 장치(100-1, 100-2,…100-n)는 48bytes를 차지할 수 있다. 백만 개의 사용자 장치를 고려할 경우 상태 데이터 베이스의 크기는 대략 48MB가 될 수 있다. In one embodiment, the state database is a table, and the number of rows in the table may be equal to the number of nodes of the user devices 100-1, 100-2, ... 100-n of the blockchain system 1000. The table may have two columns, where the first column stores unique identification information of the user devices 100-1, 100-2, ... 100-n, and the second column stores the user device 100-1 , 100-2,…100-n) can store the information of the token held by the user. For example, if there are one million nodes in the blockchain system 1000, the number of rows in the state database may be one million. At this time, if the size of each unique identification number is 40 bytes and the size of data representing the number of tokens is 8 bytes, each user device 100-1, 100-2, ... 100-n included in the state database is 48 bytes. can occupy Considering one million user devices, the size of the state database can be approximately 48 MB.

제3 영역(113)에는 비활성화 영역에 해당하는 트랜잭션 정보가 암호화된 청크의 형태로 저장될 수 있다. In the third area 113 , transaction information corresponding to the inactive area may be stored in the form of encrypted chunks.

통신 인터페이스(120)는 사용자 장치(100)가 관리자 장치(200)와 같은 외부 전자 장치와 통신을 수행하기 위한 구성 요소이다. 사용자 장치(100)는 통신 인터페이스(120)를 통하여 관리자 장치(200)로부터 블록 체인 네트워크 프로토콜, 상태 데이터 베이스, 비활성화 영역에 대한 암호화된 청크와 같은 다양한 데이터를 수신할 수 있다. The communication interface 120 is a component for the user device 100 to communicate with an external electronic device such as the manager device 200 . The user device 100 may receive various data such as a block chain network protocol, a state database, and encrypted chunks for an inactive area from the manager device 200 through the communication interface 120 .

통신 인터페이스(120)는 유선 통신 모듈(미도시), 근거리 무선 통신 모듈(미도시), 무선 통신 모듈(미도시) 등과 같은 다양한 통신 모듈을 포함할 수 있다. The communication interface 120 may include various communication modules such as a wired communication module (not shown), a short-range wireless communication module (not shown), and a wireless communication module (not shown).

여기에서, 유선 통신 모듈은 유선 이더넷(Ethernet)과 같이 유선 통신 방식에 따라 외부 장치(미도시)와 통신을 수행하기 위한 모듈이다. 그리고, 근거리 무선 통신 모듈이란 블루투스(Bluetooth, BT), BLE(Bluetooth Low Energy), ZigBee 방식 등과 같은 근거리 무선 통신 방식에 따라 근거리에 위치한 외부 장치(미도시)와 통신을 수행하기 위한 모듈이다. 또한, 무선 통신 모듈이란 WiFi, IEEE 등과 같은 무선 통신 프로토콜에 따라 외부 네트워크에 연결되어 외부 장치(미도시) 및 음성 인식 서버(미도시)와 통신을 수행하는 모듈이다. 이 밖에 무선 통신 모듈은 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), LTE-A(LTE Advanced), 5세대 네트워크(5G Networks) 등과 같은 다양한 이동 통신 규격에 따라 이동 통신망에 접속하여 통신을 수행하는 이동 통신 모듈을 더 포함할 수도 있다. Here, the wired communication module is a module for performing communication with an external device (not shown) according to a wired communication method such as wired Ethernet. In addition, the short-range wireless communication module is a module for performing communication with an external device (not shown) located in a short distance according to a short-range wireless communication method such as Bluetooth (Bluetooth, BT), BLE (Bluetooth Low Energy), and ZigBee method. In addition, the wireless communication module is a module that is connected to an external network according to a wireless communication protocol such as WiFi and IEEE to communicate with an external device (not shown) and a voice recognition server (not shown). In addition, the wireless communication module is configured according to various mobile communication standards such as 3rd Generation (3G), 3rd Generation Partnership Project (3GPP), Long Term Evolution (LTE), LTE Advanced (LTE-A), and 5G Networks. It may further include a mobile communication module for performing communication by accessing a mobile communication network.

프로세서(130)는 사용자 장치(100)의 동작을 전반적으로 제어한다.The processor 130 controls the overall operation of the user device 100 .

일 실시 예에 따라 프로세서(130)는 디지털 시그널 프로세서(digital signal processor(DSP), 마이크로 프로세서(microprocessor), TCON(Time controller)으로 구현될 수 있다. 다만, 이에 한정되는 것은 아니며, 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)), 또는 커뮤니케이션 프로세서(communication processor(CP)), ARM 프로세서 중 하나 또는 그 이상을 포함하거나, 해당 용어로 정의될 수 있다. 또한, 프로세서(130)는 프로세싱 알고리즘이 내장된 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다.According to an embodiment, the processor 130 may be implemented as a digital signal processor (DSP), a microprocessor, or a time controller (TCON). However, the present invention is not limited thereto, and the central processing unit ( central processing unit (CPU)), micro controller unit (MCU), micro processing unit (MPU), controller, application processor (AP), or communication processor (CP), ARM processor In addition, the processor 130 may be implemented as a SoC (System on Chip) or LSI (large scale integration) in which a processing algorithm is embedded, or an FPGA ( Field programmable gate array) may be implemented.

프로세서(130)는 GPU(Graphic Processing Unit), VPU(Vision Processing Unit) 등과 같은 그래픽 전용 프로세서 또는 NPU(Neural Processing Unit)와 같은 인공지능 전용 프로세서 등으로 구현될 수 있다. The processor 130 may be implemented as a graphics-only processor such as a graphic processing unit (GPU), a vision processing unit (VPU), or the like, or an artificial intelligence-only processor such as a neural processing unit (NPU).

프로세서(130)는 SRAM 등의 휘발성 메모리를 포함할 수 있다.The processor 130 may include a volatile memory such as SRAM.

이하 도 3을 통해, 상술한 구성을 가지는 사용자 장치(100)의 구체적인 동작을 설명한다.Hereinafter, a detailed operation of the user device 100 having the above-described configuration will be described with reference to FIG. 3 .

프로세서(130)는 블록 체인의 블록을 활성화 영역 및 비활성화 영역으로 구분할 수 있다(S310). 상술한 바와 같이 블록 체인을 구분하는데 사용되는 기준(시간 요인 및/또는 저장 요인)은 블록 체인 네트워크 관리자 및/또는 관리자 장치(200)에 의해 설정될 수 있다. The processor 130 may divide the block of the block chain into an active area and an inactive area (S310). As described above, the criteria (time factor and/or storage factor) used to classify the block chain may be set by the block chain network manager and/or the manager device 200 .

프로세서(130)는 기설정된 기준에 기초하여 활성화 영역에 포함된 블록을 메모리(110)의 제1 영역(111)에 저장할 수 있으며, 비활성화 영역에 포함된 적어도 하나의 트랜잭션 정보를 메모리(110)의 제3 영역(113)에 저장할 수 있다. The processor 130 may store a block included in the active region in the first region 111 of the memory 110 based on a preset criterion, and store at least one transaction information included in the inactive region in the memory 110 . It may be stored in the third area 113 .

프로세서(130)는 블록 체인 시스템(1000) 상에서 트랜잭션이 발생되면, 발생된 트랜잭션의 정보를 메모리(110)의 제1 영역에 저장된 블록에 기록할 수 있다. When a transaction is generated on the block chain system 1000 , the processor 130 may write information of the generated transaction to a block stored in the first area of the memory 110 .

그리고, 프로세서(130)는 제1 영역(111)에 저장된 트랜잭션 정보 중 기설정된 조건을 만족하는 트랜잭션 정보가 존재하면, 기설정된 조건을 만족하는 트랜잭션 정보를 기초로, 메모리(110)의 제2 영역(112)에 저장된 상태 데이터 베이스를 업데이트하고, 업데이트된 상태 데이터 베이스를 블록 체인 시스템(1000)에 업로드 할 수 있다. 여기에서 기설정된 조건은 블록 체인을 활성화 영역 및 비활성화 영역으로 구분하는 기준에 기초하여 활성화 영역의 블록에 포함된 트랜잭션 정보가 비활성화 영역으로 이동하는 경우를 포함할 수 있다. And, if there is transaction information that satisfies a preset condition among the transaction information stored in the first region 111 , the processor 130 determines the second region of the memory 110 based on the transaction information that satisfies the preset condition. The state database stored in 112 may be updated, and the updated state database may be uploaded to the block chain system 1000 . Here, the preset condition may include a case in which transaction information included in the block of the active area moves to the inactive area based on a criterion for dividing the block chain into an active area and an inactive area.

그리고, 프로세서(130)는 제1 영역(111)에 저장된 트랜잭션 정보 중 기설정된 조건을 만족하는 트랜잭션 정보를 블록체인 시스템(1000)에 포함된 관리자 장치(200)에 전송하도록 통신 인터페이스(120)를 제어할 수 있다. In addition, the processor 130 transmits the transaction information that satisfies a preset condition among the transaction information stored in the first area 111 to the manager device 200 included in the block chain system 1000 through the communication interface 120 . can be controlled

일 예에서, 활성화 영역을 포함하는 블록이 지난 5일 동안 수행된 트랜잭션을 포함하는 것으로 고려한다. 현재 날짜가 6월 29일인 것으로 고려한다. 이 시나리오에서, 6월 25일 이후에 수행된 트랜잭션을 포함하는 블록은 블록 체인의 활성화 영역에 포함될 수 있다. 5일 이전에 수행된 트랜잭션은 블록 체인의 비활성화 영역을 포함하는 청크에 저장될 수 있다. 예를 고려하면, 6월 25일 이전에 수행된 트랜잭션은 블록 체인의 비활성화 영역을 포함하는 청크에 포함될 수 있다.In one example, consider that a block containing an active area contains transactions performed in the last 5 days. Consider the current date as June 29th. In this scenario, blocks containing transactions performed after June 25 can be included in the active area of the blockchain. Transactions performed before 5 days can be stored in chunks containing the inactive area of the blockchain. Considering an example, transactions performed before June 25 can be included in a chunk that includes an inactive area of the blockchain.

이때, 프로세서(130)는 6월 25일부터 6월 29일 이전에는 6월 25일에 수행된 트랜잭션을 포함하는 블록을 메모리(110)의 제1 영역(111)에 저장하고, 현재 날짜가 6월 29일이 되면 6월 25일에 수행된 트랜잭션을 비활성화 영역에 해당하는 트랜잭션 정보로 식별하여 관리자 장치(200)에 전송할 수 있다. In this case, the processor 130 stores a block including a transaction performed on June 25 from June 25 to June 29 in the first area 111 of the memory 110, and the current date is 6 On the 29th of the month, the transaction performed on June 25 may be identified as transaction information corresponding to the inactive area and transmitted to the manager device 200 .

다른 예에서, 각각의 블록은 블록의 크기를 고정하기 위해, 한정된 수의 트랜잭션을 저장하도록 구성될 수 있다. 블록 체인의 활성화 영역은 사전 규정된 수의 블록을 갖도록 구성될 수 있으며, 이는 블록 체인의 활성화 영역의 크기의 고정을 허용한다. 이때, 블록 체인 네트워크의 관리자 또는 관리자 장치(200)는 블록 체인의 활성화 영역의 크기를 설정할 수 있다. In another example, each block may be configured to store a limited number of transactions, in order to fix the size of the block. The active area of the blockchain can be configured to have a predefined number of blocks, which allows the size of the active area of the blockchain to be fixed. In this case, the manager or manager device 200 of the block chain network may set the size of the active area of the block chain.

프로세서(130)는 트랜잭션의 수가 증가하여 최근 트랜잭션을 수용하기 위해 블록이 블록 체인에 추가될 필요가 있으면, 블록 체인의 활성화 영역의 가장 오래된 블록이 블록 체인의 활성화 영역으로부터 블록 체인의 비활성화 영역으로 이동되도록 할 수 있다. 구체적으로, 프로세서(130)는 블록 체인의 활성화 영역의 가장 오래된 블록에 관한 정보 또는 가장 오래된 블록에 포함된 트랜잭션 정보를 관리자 장치(200)에 전송하도록 통신 인터페이스(120)를 제어할 수 있다. 또는, 일 실시 예에 따라, 프로세서(130)는 블록 체인의 활성화 영역의 활성화 영역의 가장 오래된 블록에 관한 정보 또는 가장 오래된 블록에 포함된 트랜잭션 정보를 메모리(110)의 제3 영역(113)에 저장할 수 있다. 이때, 프로세서(130)는 관리자 장치(200)의 요청에 기초하여 비활성화 영역에 포함된 트랜잭션 정보 중 적어도 하나를 메모리(110)의 제3 영역(1130)에 저장할 수 있다. When the number of transactions increases and blocks need to be added to the block chain to accommodate recent transactions, the oldest block in the active area of the block chain is moved from the active area of the block chain to the inactive area of the block chain. can make it happen Specifically, the processor 130 may control the communication interface 120 to transmit information about the oldest block of the active region of the block chain or transaction information included in the oldest block to the manager device 200 . Alternatively, according to an embodiment, the processor 130 stores information on the oldest block in the active region of the active region of the block chain or transaction information included in the oldest block in the third region 113 of the memory 110 . can be saved In this case, the processor 130 may store at least one of transaction information included in the inactive area in the third area 1130 of the memory 110 based on a request from the manager device 200 .

예를 들어, 트랜잭션을 블록에 저장하는 데 필요한 공간이 0.1 MB라고 고려한다. 또한, 각각의 블록은 최대 10개의 트랜잭션을 저장하도록 구성된다. 따라서, 블록의 크기는 1 MB를 초과할 수 없다. 블록이 10개의 트랜잭션을 포함하고 새로운 트랜잭션이 수행될 때, 트랜잭션이 블록 체인의 노드에 의해 검증된 경우 새로운 블록이 트랜잭션을 저장하기 위해 생성될 수 있다. 블록 체인의 활성 부분은 20 MB를 초과할 수 없는 것으로 고려한다. 따라서, 블록 체인의 활성화 영역은 20개의 블록으로 구성되고 각각의 블록은 10개의 트랜잭션을 저장하여, 활성화 영역은 총 200개의 트랜잭션을 포함할 수 있다. 200개 초과의 유효한 트랜잭션이 수행되면, 프로세서(130)는 블록 체인의 활성 부분의 가장 오래된 블록이 블록 체인의 비활성 부분으로 이동될 수 있도록, 활성화 영역의 가장 오래된 블록을 관리자 장치(200)에 전송하거나, 활성화 영역의 가장 오래된 블록을 메모리(110)의 제3 영역(113)에 저장할 수 있다. 또는 프로세서(130)는 관리자 장치(200)의 요청에 기초하여 트랜잭션 정보를 메모리(110)의 제3 영역(113)에 저장할 수 있다. For example, consider that the space required to store a transaction in a block is 0.1 MB. Additionally, each block is configured to store up to 10 transactions. Therefore, the size of the block cannot exceed 1 MB. When a block contains 10 transactions and a new transaction is performed, a new block can be created to store the transaction if the transaction has been verified by a node in the blockchain. It is considered that the active part of the blockchain cannot exceed 20 MB. Therefore, the active area of the block chain consists of 20 blocks and each block stores 10 transactions, so the active area can contain a total of 200 transactions. When more than 200 valid transactions are performed, the processor 130 sends the oldest block in the active area to the manager device 200 so that the oldest block in the active portion of the block chain can be moved to the inactive portion of the block chain. Alternatively, the oldest block of the active area may be stored in the third area 113 of the memory 110 . Alternatively, the processor 130 may store transaction information in the third area 113 of the memory 110 based on a request from the manager device 200 .

이때, 블록 체인 시스템(1000) 상의 사용자 장치(100-1, 100-2, …, 100-n)가 5000개의 트랜잭션을 수행한 경우, 최근 200개의 트랜잭션은 블록 체인의 활성화 영역에 저장되고, 이전 4800개의 트랜잭션은 블록 체인의 비활성화 영역의 청크에 저장될 수 있다. At this time, when the user devices 100-1, 100-2, ..., 100-n on the block chain system 1000 perform 5000 transactions, the latest 200 transactions are stored in the active area of the block chain, and 4800 transactions can be stored in chunks in the inactive area of the blockchain.

복수의 사용자 장치(100-1, 100-2, …, 100-n) 중 다른 사용자 장치와 트랜잭션이 수행되면, 프로세서(130)는 블록 체인 네트워크의 다른 사용자 장치(101a-101n)에 트랜잭션의 발생을 통지할 수 있다. 다른 사용자 장치(100-1, 100-2, …, 100-n)의 통신 인터페이스는 트랜잭션 발생을 나타내는 통지를 수신할 수 있다. When a transaction is performed with another user device among the plurality of user devices 100-1, 100-2, ..., 100-n, the processor 130 generates a transaction in the other user devices 101a-101n of the block chain network. can be notified. The communication interface of the other user devices 100-1, 100-2, ..., 100-n may receive a notification indicating that a transaction has occurred.

다른 사용자 장치(100-1, 100-2, …, 100-n)는 트랜잭션이 블록 체인의 활성 부분의 블록에 저장될 수 있는지에 대해 합의에 도달할 수 있다. 이때, 프로세서(130)는 블록 체인의 활성 부분에 트랜잭션을 저장함으로써 트랜잭션을 검증하고 블록 체인을 업데이트할 수 있다. 한편, 다른 사용자 장치(100-1, 100-2, …, 100-n)가 합의에 도달하지 않고, 트랜잭션이 장치(101a-101n)의 사전 규정된 퍼센티지(예를 들어, 50%) 초과로 프로세서(102a-102n)에 의해 검증되지 않으면, 프로세서(130)는 블록 체인을 업데이트하지 않을 수 있다.The other user devices 100-1, 100-2, ..., 100-n may reach a consensus as to whether a transaction can be stored in a block in the active part of the blockchain. At this time, the processor 130 may verify the transaction and update the block chain by storing the transaction in the active part of the block chain. On the other hand, other user devices 100-1, 100-2, ..., 100-n do not reach consensus, and the transaction exceeds a predefined percentage (eg 50%) of devices 101a-101n. If not verified by processor 102a-102n, processor 130 may not update the blockchain.

한편, 프로세서(130)는 블록 체인의 비활성화 영역의 개요를 포함하는 상태 데이터 베이스를 제2 영역(112)에 저장할 수 있다(S320). Meanwhile, the processor 130 may store the state database including the outline of the inactive area of the block chain in the second area 112 ( S320 ).

구체적으로, 프로세서(130)는 블록 체인 네트워크 관리자 및/또는 사용자 장치(200)로부터 비활성화 영역에 대한 요약 정보를 포함하는 상태 데이터 베이스를 수신할 수 있다. Specifically, the processor 130 may receive the state database including summary information on the inactive area from the block chain network manager and/or the user device 200 .

관리자 장치(200)로부터 비활성화 영역에 대한 요약 정보를 포함하는 상태 데이터 베이스가 수신되면, 프로세서(130)는 수신된 상태 데이터 베이스를 메모리(110)의 제2 영역(112)에 저장할 수 있다. When the state database including summary information on the inactive region is received from the manager device 200 , the processor 130 may store the received state database in the second region 112 of the memory 110 .

상태 데이터 베이스는 블록 체인 네트워크에 참여하는 사용자의 고유한 아이덴티티 및 각각의 사용자가 보유한 토큰 정보로 구성된 키-값 쌍을 포함할 수 있다. 여기에서 각각의 사용자는 하나의 사용자 장치(100-1, 100-2,…100-n)에 대응될 수 있으며, 각각의 사용자 장치(100-1, 100-2,…100-n)는 고유의 식별 번호를 가지고 있을 수 있다. 또한, 각각의 고유 식별 번호는 사용자 장치(100-1, 100-2,…100-n)를 소유하는 사용자가 보유한 토큰의 번호에 매핑될 수 있다. The state database may include key-value pairs consisting of unique identities of users participating in the blockchain network and token information held by each user. Here, each user may correspond to one user device 100-1, 100-2, … 100-n, and each user device 100-1, 100-2, … 100-n is unique. may have an identification number of Also, each unique identification number may be mapped to a number of a token held by a user who owns the user devices 100-1, 100-2, ... 100-n.

즉, 상태 데이터 베이스에 포함된 요약 정보는 블록 체인 시스템(1000)에 포함된 복수의 사용자 장치(100-1, 100-2,…100-n)에 대한 식별 정보 및 토큰 정보를 포함할 수 있다. 가령, 블록 체인 시스템(1000)에서 5000개의 트랜잭션이 발생하고 200개의 트랜잭션 정보가 블록 체인의 활성화 영역에 저장된 경우, 상태 데이터 베이스는 4800개의 트랜잭션이 수행된 후의 사용자 장치(100-1, 100-2,…100-n)의 사용자가 보유한 토큰 정보를 포함할 수 있다. That is, the summary information included in the state database may include identification information and token information for a plurality of user devices 100-1, 100-2, ... 100-n included in the block chain system 1000. . For example, if 5000 transactions occur in the block chain system 1000 and 200 transaction information is stored in the active area of the block chain, the state database is the user devices 100-1 and 100-2 after 4800 transactions are performed. , ... 100-n) of the user's token information may be included.

본 개시에서, 토큰은 사용자에 의해 소유된 자산을 나타내는 추상적인 번호로 간주될 수 있다. 예시적인 자산은 블록 체인의 응용 분야에 따라, 통화, 신용 포인트, 상품, 제품, 데이터 등이 될 수 있으나, 반드시 이에 한정되지 않는다. 사용자 장치(100)의 사용자의 선택에 따라 사용자 장치(100)의 계정에 자산 또는 통화가 추가될 수 있으며, 이는 토큰으로 변환될 수 있다. In this disclosure, a token may be considered an abstract number representing an asset owned by a user. Exemplary assets may be, but not necessarily limited to, currencies, credit points, products, products, data, and the like, depending on the application field of the block chain. According to the user's selection of the user device 100, an asset or currency may be added to the account of the user device 100, which may be converted into a token.

그리고, 사용자 장치(100)가 트랜잭션을 수행되면, 토큰이 사용자 장치(100)의 계정에 입금되거나 출금될 수 있다. Then, when the user device 100 performs a transaction, the token may be deposited or withdrawn to the account of the user device 100 .

블록 체인 네트워크 관리자 및/또는 관리자 장치(200)는 업데이트된 상태 데이터베이스를 블록 체인 시스템의 사용자 장치(100-1, 100-2,…100-n)로 전송할 수 있으며, 사용자 장치(100-1, 100-2,…100-n)는 관리자 장치(200)로부터 업데이트된 상태 데이터 베이스를 수신할 수 있다. The block chain network manager and/or the manager device 200 may transmit the updated state database to the user devices 100-1, 100-2, ... 100-n of the block chain system, and the user devices 100-1, 100-2, ... 100-n) may receive the updated state database from the manager device 200 .

한편, 다른 실시 예에 따라 프로세서(130)가 상태 데이터 베이스를 업데이트할 수 있다. 가령, 블록 체인의 활성화 영역의 가장 오래된 블록에 저장된 트랜잭션 정보가 비활성화 영역으로 이동되는 경우, 프로세서(130)는 블록 체인의 활성화 영역의 가장 오래된 블록에 저장된 트랜잭션과 관련된 사용자 장치가 보유한 토큰의 수를 가장 오래된 블록에 저장된 트랜잭션의 정보에 따라 업데이트할 수 있다. 예를 들어, 사용자 장치 A와 사용자 장치 B가 블록 체인의 활성화 영역의 가장 오래된 블록에 저장된 트랜잭션에 관련된 경우, 프로세서(130)는 상태 데이터 베이스에 포함된 사용자 장치 A 및 사용자 장치 B의 토큰의 수를 업데이트할 수 있다. Meanwhile, according to another embodiment, the processor 130 may update the state database. For example, when transaction information stored in the oldest block of the active area of the block chain is moved to the inactive area, the processor 130 determines the number of tokens held by the user device related to the transaction stored in the oldest block of the active area of the block chain. It can be updated according to the information of the transaction stored in the oldest block. For example, if user device A and user device B are involved in a transaction stored in the oldest block of the active region of the block chain, then the processor 130 determines the number of tokens of user device A and user device B included in the state database. can be updated.

한편, 이상적인 시나리오에서, 모든 사용자 장치(100-1, 100-2, …, 100-n)의 각각의 메모리에 저장된 블록 체인의 활성화 영역과 상태 데이터 베이스는 동일해야 한다. 그러나, 적어도 하나의 사용자 장치(100)의 행위가 사기 행위인 것으로 판정되고 부정 트랜잭션이 검증되는 경우, 사용자 장치(100-1, 100-2, …, 100-n) 각각에 저장된 블록 체인의 활성화 영역의 사본과 상태 데이터 베이스의 사본은 손상될 수 있다. Meanwhile, in an ideal scenario, the active area and state database of the block chain stored in each memory of all user devices 100-1, 100-2, ..., 100-n should be the same. However, when it is determined that the behavior of at least one user device 100 is a fraudulent act and the fraudulent transaction is verified, the activation of the block chain stored in each of the user devices 100-1, 100-2, ..., 100-n The copy of the realm and the copy of the state database can be corrupted.

이에 따라, 모든 사용자 장치(100-1, 100-2, …, 100-n)의 각각의 메모리에 저장된 블록 체인의 활성화 영역과 상태 데이터 베이스를 동일하게 유지하기 위하여, 블록 체인 시스템(1000)에서 새로운 트랜잭션이 발생되면, 프로세서(130)는 새로운 트랜잭션을 검증하고 검증 결과에 대하여 합의할 수 있다. 구체적으로, 프로세서(130)는 트랜잭션이 블록 체인의 활성화 영역에 블록으로서 추가되거나 현재 블록 체인의 활성화 영역에 있는 블록에 포함되어야 할 필요가 있는지에 대한 합의를 수행할 수 있다. 본 개시에서, 합의에 도달하기 위해 선택된 방법은 방법의 확장성, 지연 및 개방 멤버십에 기초할 수 있다. Accordingly, in order to keep the active area and state database of the block chain stored in each memory of all user devices 100-1, 100-2, ..., 100-n the same, in the block chain system 1000 When a new transaction is generated, the processor 130 may verify the new transaction and agree on the verification result. Specifically, the processor 130 may perform an agreement on whether a transaction needs to be added as a block to the active area of the block chain or included in a block currently in the active area of the block chain. In this disclosure, the method selected for reaching consensus may be based on the scalability, delay and open membership of the method.

프로세서(130)는 블록 체인의 활성화 영역 및 상태 데이터 베이스를 기초로 사용자 장치(100-1, 100-2,…100-n) 간의 트랜잭션을 검증할 수 있다(S330). 이때, 프로세서(130)는 제2 영역(112)에 저장된 상태 데이터 베이스를 이용하여 블록 체인 시스템(1000)상에서 발생된 트랜잭션에 대한 검증을 수행하고, 검증된 트랜잭션의 정보를 제1 영역(111)에 저장된 블록에 기록할 수 있다. The processor 130 may verify the transaction between the user devices 100-1, 100-2, ... 100-n based on the active area and state database of the block chain (S330). At this time, the processor 130 performs verification on the transaction generated on the block chain system 1000 using the state database stored in the second area 112 , and transfers the verified transaction information to the first area 111 . It can be written to a block stored in .

구체적으로, 새로운 트랜잭션이 발생하면 프로세서(130)는 제1 영역(111)에 저장된 블록에 포함된 트랜잭션의 정보 및 제2 영역에 저장된 상태 데이터 베이스의 요약 정보를 기초로 블록 체인 시스템(1000) 상에서 발생된 트랜잭션에 대한 검증을 수행할 수 있다. Specifically, when a new transaction occurs, the processor 130 performs the transaction information included in the block stored in the first area 111 and the summary information of the state database stored in the second area on the block chain system 1000. Verification of the generated transaction can be performed.

가령, 사용자 장치 A와 사용자 장치 B간에 트랜잭션이 수행되어, 사용자 장치 A로부터 사용자 장치 B로 10개의 토큰이 전송되는 경우를 고려할 수 있다. 트랜잭션 이전에는 사용자 장치 A는 39개의 토큰을 가지고 있고, 사용자 장치 B는 20개의 토큰을 가지고 있는 것으로 고려하면, 프로세서(130)는 사용자 장치 A 및 사용자 장치 B에 대응하는 토큰의 수를 결정함으로써 트랜잭션을 검증할 수 있다. For example, consider a case where a transaction is performed between user device A and user device B, and 10 tokens are transmitted from user device A to user device B. Considering that user device A has 39 tokens and user device B has 20 tokens prior to the transaction, processor 130 determines the number of tokens corresponding to user device A and user device B to make the transaction can be verified.

트랜잭션이 완료되고 사용자 장치 A가 29개의 토큰을 보유하고 있고, 사용자 장치 B가 30개의 토큰을 보유하고 있는 것으로 결정된 경우, 프로세서(130)는 다른 사용자 장치와 함께 블록 체인의 활성화 영역에 트랜잭션 정보를 포함하는 합의에 도달하여 트랜잭션을 검증할 수 있다. When the transaction is completed and it is determined that the user device A holds 29 tokens and the user device B holds 30 tokens, the processor 130 sends the transaction information to the active area of the block chain together with the other user devices. The transaction can be verified by reaching an inclusive consensus.

그리고, 프로세서(130)는 검증된 트랜잭션 정보를 블록 체인의 활성화 영역의 기존 블록에 포함하거나 새로운 블록에 트랜잭션 정보를 저장할 수 있다. Then, the processor 130 may include the verified transaction information in an existing block of the active area of the block chain or store the transaction information in a new block.

한편, 제2 영역(112)에 저장된 상태 데이터 베이스에 추가되는 엔트리 또는 키-값 쌍이 증가하여 제2 영역(112)의 공간의 부족한 경우가 발생할 수 있다. 가령, 메모리(110)의 제2 영역(112)의 크기가 500MB이고, 상태 데이터 베이스의 크기가 500MB를 초과하는 경우 메모리(100)의 제2 영역(112)은 더 이상 상태 데이터 베이스를 저장하기에 충분하지 않을 수 있다. Meanwhile, an entry or key-value pair added to the state database stored in the second area 112 increases, so that the space of the second area 112 may be insufficient. For example, if the size of the second region 112 of the memory 110 is 500 MB, and the size of the state database exceeds 500 MB, the second region 112 of the memory 100 is no longer used to store the state database. may not be sufficient for

이때, 프로세서(130)는 블록 체인 네트워크 관리자 또는 관리자 장치(200)로부터 분산된 해시 테이블 형태로 상태 데이터 베이스의 일부를 수신할 수 있다. 구체적으로, 블록 체인 네트워크 관리자 또는 관리자 장치(200)는 상태 데이터 베이스를 분산된 복수의 해시 테이블로 변환할 수 있으며, 이때 상태 데이터베이스 일부에 대응하는 분산된 해시 테이블은 블록 체인 시스템(1000)의 기설정된 개수의 사용자 장치(100-1, 100-2, …,100-n)에 저장될 수 있다. 이에 대하여는 도 4 에서 구체적으로 설명하도록 한다. In this case, the processor 130 may receive a part of the state database in the form of a distributed hash table from the block chain network manager or the manager device 200 . Specifically, the block chain network manager or manager device 200 may convert the state database into a plurality of distributed hash tables, in which case the distributed hash table corresponding to a part of the state database is the base of the block chain system 1000 . It may be stored in a set number of user devices 100-1, 100-2, ..., 100-n. This will be described in detail with reference to FIG. 4 .

한편, 프로세서(130)는 블록 체인의 비활성화 영역을 저장할 수 있다(S340). 구체적으로, 프로세서(130)는 블록 체인의 활성화 영역에 포함된 트랜잭션 정보가 비활성화 영역에 해당하게 되면, 트랜잭션 정보를 관리자 장치(200)에 전송할 수 있다. 이때, 블록 체인을 활성화 영역 및 비활성화 영역으로 구분하는 프로토콜은 관리자 장치(200)에 의해 설정되어 복수의 사용자 장치(100-1, 100-2,…, 100-n)에 전송된다는 점에서, 관리자 장치(200)가 복수의 사용자 장치(100-1, 100-2,…, 100-n)로부터 수신하는 비활성화 영역의 트랜잭션 정보는 동일할 수 있다. On the other hand, the processor 130 may store the inactive area of the block chain (S340). Specifically, when the transaction information included in the active region of the block chain corresponds to the inactive region, the processor 130 may transmit the transaction information to the manager device 200 . At this time, in that the protocol for dividing the block chain into an active area and an inactive area is set by the manager device 200 and transmitted to a plurality of user devices 100-1, 100-2, ..., 100-n, the manager Transaction information of the inactive area that the device 200 receives from the plurality of user devices 100-1, 100-2, ..., 100-n may be the same.

프로세서(130)는 관리자 장치(200)의 요청에 따라 비활성화 영역에 포함된 트랜잭션 정보 중 적어도 하나를 메모리(110)의 제3 영역에 저장할 수 있다. 구체적으로, 관리자 장치(200)는 수신한 트랜잭션 정보를 포함하는 비활성화 영역을 복수의 청크로 분할하고, 분할된 비활성화 영역을 포함하는 청크를 사용자 장치(100)에 전송할 수 있다. The processor 130 may store at least one of transaction information included in the inactive area in the third area of the memory 110 according to a request from the manager device 200 . Specifically, the manager device 200 may divide the inactive area including the received transaction information into a plurality of chunks, and transmit the chunk including the divided inactive area to the user device 100 .

일 예에 따라, 프로세서(130)는 청크가 변조되지 않았음을 보장받기 위하여, 관리자 장치(200)로부터 암호화된 청크를 수신할 수 있다. 이에 대하여는 도 4에서 구체적으로 설명하도록 한다. According to an example, the processor 130 may receive the encrypted chunk from the manager device 200 in order to ensure that the chunk has not been tampered with. This will be described in detail with reference to FIG. 4 .

한편, 사용자 장치(100)에 저장된 비활성화 영역의 청크는 비활성화 영역에 해당하는 일부 트랜잭션 정보를 포함한다는 점에서, 프로세서(130)는 블록 체인 네트워크의 복수의 사용자 장치(100-1, 100-2, …,100-n)을 통하여 블록 체인의 비활성화 영역과 관련된 트랜잭션을 검색할 수 있다(S350). On the other hand, in that the chunk of the inactive area stored in the user device 100 includes some transaction information corresponding to the inactive area, the processor 130 is configured to include a plurality of user devices 100-1, 100-2, ..., 100-n), it is possible to search for a transaction related to the inactive area of the block chain (S350).

프로세서(130)는 블록 체인 시스템(1000) 상에서 발생된 트랜잭션의 이력 정보를 관리자 장치(200)에 요청하고, 관리자 장치(200)를 통하여 블록 체인 시스템 상의 복수의 사용자 장치에 분산되어 저장된 블록 체인의 비활성화 영역 중 요청된 이력 정보에 해당하는 트랜잭션 정보를 수신할 수 있다. 이때, 트랜잭션의 이력 정보는 비활성화 영역에 포함된 트랜잭션의 정보를 포함할 수 있다. The processor 130 requests the manager device 200 for transaction history information generated on the block chain system 1000 , and distributes and stores the block chain information to a plurality of user devices on the block chain system through the manager device 200 . Transaction information corresponding to the requested history information may be received in the inactive area. In this case, the transaction history information may include transaction information included in the inactive area.

구체적으로, 프로세서(130)는 블록 체인의 비활성화 영역의 청크에 액세스하려는 경우, 청크를 검색하기 위한 질의를 발행하고, 관리자 장치(200)를 통하여 관련된 청크를 포함하는 적어도 하나의 사용자 장치에 질의를 전달할 수 있다. Specifically, when the processor 130 wants to access a chunk in the inactive area of the block chain, it issues a query to retrieve the chunk, and sends a query to at least one user device including the related chunk through the manager device 200 . can transmit

이때, 프로세서(130)는 관리자 장치(200)를 통하여 적어도 하나의 사용자 장치로부터 관련된 청크의 제1 해시 및 제2 해시와 함께 관련된 청크를 수신할 수 있다. 일 실시 예에 따라, 프로세서(130)는, 관련된 청크가 변조되지 않았음을 보장하기 위하여, 관련된 트랜잭션이 저장된 가장 오래된 청크로부터 최근 청크까지의 블록 체인의 비활성화 영역은 모든 청크에 대한 제1 해시를 수신할 수도 있다. In this case, the processor 130 may receive the related chunk together with the first hash and the second hash of the related chunk from at least one user device through the manager device 200 . According to one embodiment, the processor 130, in order to ensure that the relevant chunks have not been tampered with, the inactive region of the block chain from the oldest chunk in which the related transaction is stored to the most recent chunk is the first hash for all chunks. may receive.

이 경우, 프로세서(130)는 트랜잭션 정보에 대응하는 해시 데이터와 제1 영역(111)에 저장된 블록 중 적어도 하나의 블록의 헤더에 포함된 해시 데이터를 비교하여 수신된 트랜잭션 정보를 검증할 수 있다. In this case, the processor 130 may verify the received transaction information by comparing the hash data corresponding to the transaction information and the hash data included in the header of at least one block among the blocks stored in the first area 111 .

한편, 도 3의 다양한 동작은 반드시 개시된 순서에 따라 수행되는 것은 아니며, 도 3의 순서와 상이한 순서로 또는 동시에 수행될 수 있다. 또한, 일부 실시 예에서 도 3에 열거된 일부 동작이 생략될 수도 있다. Meanwhile, the various operations of FIG. 3 are not necessarily performed in the disclosed order, and may be performed in a different order or simultaneously from the order of FIG. 3 . Also, in some embodiments, some operations listed in FIG. 3 may be omitted.

도 4는 본 개시의 일 실시 예에 따른 관리자 장치(200)의 구성을 설명하기 위한 블록도이다. 한편, 블록 체인 네트워크 관리자 또한 관리자 장치(200)와 동일한 기능 및 동작을 수행한다는 점에서, 도 4의 구성을 포함할 수 있다. 4 is a block diagram illustrating the configuration of the manager device 200 according to an embodiment of the present disclosure. Meanwhile, the block chain network manager may also include the configuration of FIG. 4 in that it performs the same functions and operations as the manager device 200 .

도 4에 도시된 바와 같이, 관리자 장치(200)는 메모리(210), 통신 인터페이스(220) 및 프로세서(230)를 포함할 수 있다. 이와 관련하여, 도 2의 사용자 장치(100)의 메모리(110), 통신 인터페이스(120) 및 프로세서(130)와 중복된 부분에 대하여는 설명의 편의상 생략하도록 한다. As shown in FIG. 4 , the manager device 200 may include a memory 210 , a communication interface 220 , and a processor 230 . In this regard, portions overlapping with the memory 110 , the communication interface 120 , and the processor 130 of the user device 100 of FIG. 2 will be omitted for convenience of description.

메모리(210)는 관리자 장치(200)의 동작에 필요한 각종 프로그램 및 데이터 등을 저장하기 위한 구성요소이다. The memory 210 is a component for storing various programs and data necessary for the operation of the manager device 200 .

메모리(210)에는 블록 체인 시스템(1000)에서 발생된 트랜잭션 정보를 포함하는 블록 체인이 저장되어 있을 수 있다. 또한, 메모리(210)에는 복수의 사용자 장치(100-1, 100-2, …, 100-n)으로부터 수신한 비활성화 영역에 관한 정보가 저장되어 있을 수 있다. 이때, 비활성화 영역에 관한 정보는 비활성화 영역을 포함하는 복수의 청크에 관한 정보, 복수의 청크 각각의 복제 횟수 정보 및 복수의 청크 각각이 저장된 사용자 장치에 관한 정보를 포함할 수 있다. A block chain including transaction information generated in the block chain system 1000 may be stored in the memory 210 . Also, the memory 210 may store information about the inactive area received from the plurality of user devices 100-1, 100-2, ..., 100-n. In this case, the information about the inactive area may include information about a plurality of chunks including the inactive area, information on the number of copies of each of the plurality of chunks, and information about a user device in which each of the plurality of chunks is stored.

또한, 메모리(210)에는 비활성화 영역에 대한 요약 정보를 포함하는 상태 데이터 베이스가 저장되어 있을 수 있다. 이때, 요약 정보는 블록 체인 시스템에 포함된 복수의 사용자 장치에 대한 식별 정보 및 토큰 정보를 포함할 수 있다. Also, the memory 210 may store a state database including summary information on the inactive area. In this case, the summary information may include identification information and token information for a plurality of user devices included in the block chain system.

통신 인터페이스(220)는 관리자 장치(200)가 블록 체인 시스템(1000) 내의 복수의 사용자 장치(100-1, 100-2, …, 100-n)와 통신을 수행하기 위한 구성요소이다. The communication interface 220 is a component for the manager device 200 to communicate with a plurality of user devices 100-1, 100-2, ..., 100-n in the block chain system 1000.

관리자 장치(200)는 통신 인터페이스(200)를 통하여 복수의 사용자 장치(100-1, 100-2, …, 100-n)로부터 비활성화 영역에 관한 정보를 수신하거나, 비활성화 영역에 대한 청크를 전송하거나 비활성화 영역에 대한 상태 데이터 베이스를 전송할 수 있다. The manager device 200 receives information about the inactive area from the plurality of user devices 100-1, 100-2, ..., 100-n through the communication interface 200, transmits a chunk for the inactive area, or A state database for the inactive area may be transmitted.

프로세서(230)는 관리자 장치(200)의 동작을 전반적으로 제어한다. The processor 230 controls the overall operation of the manager device 200 .

프로세서(230)는 기설정된 기준에 기초하여 사용자 장치(100)에 의하여 블록 체인이 활성화 영역 및 비활성화 영역으로 구분되면, 비활성화 영역을 복수의 청크로 분할할 수 있다. 그리고, 분할된 복수의 청크를 복수의 사용자 장치(100-1, 100-2, …, 100-n)에 전송할 수 있다. When the block chain is divided into an active area and an inactive area by the user device 100 based on a preset criterion, the processor 230 may divide the inactive area into a plurality of chunks. In addition, the plurality of divided chunks may be transmitted to the plurality of user devices 100-1, 100-2, ..., 100-n.

이때, 프로세서(230)는 비활성화 영역에 해당하는 트랜잭션 정보를 기설정된 횟수만큼 복제할 수 있다. 구체적으로, 프로세서(230)는 기설정된 프로토콜에 기초하여 기설정된 횟수만큼 분할된 청크를 복제할 수 있다. 여기에서, 기설정된 프로토콜은 복제된 청크를 복수의 사용자 장치(100-1, 100-2, …, 100-n)에 저장하도록 요구할 수 있다. 이에 따라, 프로세서(230)는 기설정된 프로토콜에 기초하여 복제된 청크를 복수의 사용자 장치(100-1, 100-2, …, 100-n)에 전송할 수 있다. In this case, the processor 230 may duplicate the transaction information corresponding to the inactive area a preset number of times. Specifically, the processor 230 may duplicate the divided chunk a preset number of times based on a preset protocol. Here, the preset protocol may request to store the duplicated chunks in the plurality of user devices 100-1, 100-2, ..., 100-n. Accordingly, the processor 230 may transmit the duplicated chunk to the plurality of user devices 100-1, 100-2, ..., 100-n based on a preset protocol.

예를 들어, 블록 체인의 비활성화 영역이 400개의 청크로 구성되고 각각의 청크가 4회 복제되면, 블록 체인의 비활성화 영역은 1600개의 청크로 구성될 수 있다. 프로세서(230)는 1600개의 청크를 복수의 사용자 장치(100-1, 100-2, …, 100-n)에 전송할 수 있다. 여기에서 복수의 사용자 장치(100-1, 100-2, …, 100-n)는 청크를 저장하도록 자원한 사용자 장치이거나 프로세서(230)에 의해 선택된 사용자 장치일 수 있다. 이때, 청크는 균등하게 분산될 수 있으며, 1600개의 사용자 장치 각각이 단일한 청크를 저장할 수 있다. For example, if the inactive area of the block chain consists of 400 chunks and each chunk is replicated 4 times, the inactive area of the block chain may consist of 1600 chunks. The processor 230 may transmit 1600 chunks to the plurality of user devices 100-1, 100-2, ..., 100-n. Here, the plurality of user devices 100-1, 100-2, ..., 100-n may be user devices that have volunteered to store chunks or user devices selected by the processor 230 . In this case, the chunks may be evenly distributed, and each of 1600 user devices may store a single chunk.

일 예에서, 기설정된 프로토콜은 블록 체인의 비활성화 영역을 구성하는 트랜잭션 정보 또는 청크가 손실되지 않는 것을 보장할 수 있다. 이에 따라, 프로세서(230)는 복제된 트랜잭션 정보를 수신한 복수의 사용자 장치의 상태를 확인할 수 있다. In one example, the preset protocol can ensure that transaction information or chunks constituting the inactive area of the block chain are not lost. Accordingly, the processor 230 may check the states of the plurality of user devices that have received the replicated transaction information.

그리고, 프로세서(230)는 하나의 청크에 대한 복수의 복제된 사본을 저장한 임의의 사용자 장치가 온라인 상태일수 있도록 블록 체인 시스템(1000)을 관리할 수 있다. In addition, the processor 230 may manage the block chain system 1000 so that any user device storing a plurality of duplicate copies for one chunk is online.

구체적으로, 프로세서(230)는 복제된 트랜잭션 정보를 수신한 사용자 장치의 상태 정보를 기초로, 사용자 장치의 상태가 오프라인인지 여부를 확인할 수 있다. 프로세서(230)는 복제된 트랜잭션 정보를 수신한 복수의 사용자 장치 중 기설정된 개수의 사용자 장치의 상태가 오프라인 상태인 경우, 블록 체인 시스템(1000)에 포함된 다른 사용자 장치에 복수의 트랜잭션 정보를 전송할 수 있다. Specifically, the processor 230 may determine whether the state of the user equipment is offline based on the state information of the user equipment that has received the duplicated transaction information. The processor 230 transmits the plurality of transaction information to other user devices included in the block chain system 1000 when the state of a preset number of user devices among the plurality of user devices that have received the duplicated transaction information is offline. can

가령, 프로세서(230)는 특정 청크를 저장하는 사용자 장치(100-1, 100-2, …, 100-n)의 50%가 오프라인으로 전환된 경우, 즉, 특정 청크를 저장한 4개의 사용자 장치 중 2개가 오프라인으로 전환된 경우, 관리자 장치(200)는 특정 청크를 복제하고, 2개의 다른 사용자 장치에 복제된 특정 청크를 전송할 수 있다. 이에 따라, 프로세서(230)는 청크가 블록 체인 시스템(1000) 내의 사용자 장치(100)에 의해 검색될 수 있음을 보장할 수 있다. For example, when 50% of the user devices 100-1, 100-2, ..., 100-n that store a specific chunk go offline, that is, the processor 230 may store four user devices that store a specific chunk. When two of them go offline, the manager device 200 may duplicate the specific chunk and transmit the duplicated specific chunk to two other user devices. Accordingly, the processor 230 can ensure that the chunk can be retrieved by the user device 100 in the block chain system 1000 .

일 예에서, 블록 체인 시스템(1000) 내에서 20000개의 트랜잭션이 발생했으며, 800개의 최근 트랜잭션이 블록 체인의 활성화 영역에 저장되어 있는 것으로 고려할 수 있다. 이 경우, 나머지의 19200개의 트랜잭션은 블록 체인의 비활성화 영역을 구성하는 청크에 저장될 수 있다. 클록 체인의 비활성화 영역에 400개의 청크가 있는 것으로 가정하면, 각각의 청크는 최대 48개의 트랜잭션 정보를 저장할 수 있다. 그리고, 19200개의 트랜잭션 각각은 400개의 청크 각각의 복제로 4회 복제될 수 있다. In one example, it can be considered that 20000 transactions have occurred in the block chain system 1000, and 800 recent transactions are stored in the active area of the block chain. In this case, the remaining 19200 transactions can be stored in chunks that make up the inactive area of the blockchain. Assuming that there are 400 chunks in the inactive region of the clock chain, each chunk can store up to 48 transaction information. And, each of the 19200 transactions can be replicated 4 times with each copy of 400 chunks.

이와 같이, 트랜잭션의 수가 증가함에 따라 블록 체인의 크기가 증가하고 블록 체인의 비활성화 영역 또한 증가하여 더 많은 청크가 생성된다. 청크의 수가 증가함에 따라 더 많은 사용자 장치(100)가 추가된 청크를 저장하는데 사용될 수 있다. 이때, 관리자 장치(200)는 블록 체인의 비활성화 영역을 구성하는 청크가 사용자 장치에 균등하게 분포될 수 있도록 블록 체인 시스템(1000)을 관리할 수 있다. As such, as the number of transactions increases, the size of the block chain increases and the inactive area of the block chain also increases, resulting in more chunks. As the number of chunks increases, more user devices 100 may be used to store the added chunks. In this case, the manager device 200 may manage the block chain system 1000 so that the chunks constituting the inactive area of the block chain can be evenly distributed to the user devices.

프로세서(230)는 비활성화 영역의 청크에 대하여 넘버링을 수행할 수 있다. 프로세서(230)는 각각의 청크에 대해 식별 번호 및 복제된 버전 번호를 할당할 수 있다. 이때, 블록 체인의 비활성화 영역을 구성하는 청크의 수가 증가할수록 청크의 식별 번호 또한 증가할 수 있다. 가령, 400개의 청크가 존재하고 각각의 청크가 4회 복제된 예를 고려하면, 가장 오래된 청크는 C1-1, C1-2, C1-3, C1-4로 넘버링되고, 가장 최근의 청크는 C400-1, C400-2, C400-3, C400-4로 넘버링될 수 있다. The processor 230 may number the chunks of the inactive area. The processor 230 may assign an identification number and a duplicated version number to each chunk. At this time, as the number of chunks constituting the inactive area of the block chain increases, the identification number of the chunk may also increase. For example, considering the example where there are 400 chunks and each chunk is replicated 4 times, the oldest chunks are numbered C 1-1 , C 1-2 , C 1-3 , C 1-4 , and the most recent The chunks of may be numbered C 400-1 , C 400-2 , C 400-3 , C 400-4 .

프로세서(230)는 사용자 장치(100)로부터 트랜잭션의 이력 정보를 요청하는 질의를 수신하는 경우, 블록 체인의 비활성화 영역을 포함한 청크가 저장된 모든 사용자 장치(100-1, 100-2, …, 100-n)에 질의를 전송할 수 있다. 이때, 질의와 관련된 트랜잭션을 포함하는 청크가 저장된 복수의 사용자 장치는 관리자 장치(200)로 청크를 전송할 수 있다. When the processor 230 receives a query requesting transaction history information from the user device 100, all user devices 100-1, 100-2, ..., 100- in which chunks including the inactive area of the block chain are stored. You can send a query to n). In this case, a plurality of user devices in which chunks including a transaction related to a query are stored may transmit the chunks to the manager device 200 .

구체적으로, 프로세서(230)가 특정 청크를 검색하기 위한 질의를 복수의 사용자 장치에 전송하면, 특정 청크가 저장된 사용자 장치는 관리자 장치(200)로 청크 번호 또는 임의의 메타 데이터를 전송할 수 있다. 관련 트랜잭션을 포함하는 청크가 검색되면, 프로세서(230)는 검색된 청크를 질의를 요청한 사용자 장치(100)에 전송할 수 있다. Specifically, when the processor 230 transmits a query for searching for a specific chunk to a plurality of user devices, the user device in which the specific chunk is stored may transmit a chunk number or arbitrary metadata to the manager device 200 . When a chunk including a related transaction is searched for, the processor 230 may transmit the searched chunk to the user device 100 requesting the query.

일 실시 예에 따라, 프로세서(230)는 복수의 사용자 장치(100-1, 100-2, …, 100-n)를 통하여 검색된 청크가 변조되지 않았음을 보장하기 위하여, 청크를 사용자 장치(100)에 전송하기 이전에 블록 체인의 비활성화 영역의 청크를 암호화할 수 있다. 이때, 청크의 헤더는 제1 해시, 제2 해시 및 선택적 메타데이터로 구성될 수 있다. 이때, 제1 해시는 검색된 청크의 이전 청크 헤더의 암호 해시를 포함하고, 제2 해시는 검색된 청크에 저장된 트랜잭션 해시의 머클 루트(merkle root)를 포함한다. 검색된 청크를 저장하는 복수의 사용자 장치는 검색된 청크와 연관된 제1 해시 및 제2 해시를 검색된 청크와 함께 관리자 장치(200)로 전송할 수 있다. According to an embodiment, the processor 230 converts the chunks to the user device 100 in order to ensure that the chunks retrieved through the plurality of user devices 100-1, 100-2, ..., 100-n are not tampered with. ) can be encrypted in chunks of inactive areas of the blockchain prior to transmission. In this case, the header of the chunk may be composed of a first hash, a second hash, and optional metadata. In this case, the first hash includes a cryptographic hash of a previous chunk header of the retrieved chunk, and the second hash includes a merkle root of a transaction hash stored in the retrieved chunk. A plurality of user devices storing the found chunk may transmit a first hash and a second hash associated with the found chunk to the manager device 200 together with the found chunk.

프로세서(230)는 트랜잭션의 이력 정보를 요청한 사용자 장치에 검색된 청크 및 해시 데이터를 차례대로 전송할 수 있다. 또한, 프로세서(230)는 이력 정보에 포함된 청크가 변조되지 않았음을 보장하기 위하여 관련 트랜잭션을 저장하는 가장 오래된 청크부터 최근 청크까지 블록 체인의 비활성화 영역의 모든 청크의 제1 해시를 사용자 장치(100)에 전송할 수 있다. The processor 230 may sequentially transmit the searched chunks and hash data to the user device requesting transaction history information. In addition, in order to ensure that the chunks included in the history information are not tampered with, the processor 230 transmits the first hash of all chunks of the inactive area of the block chain from the oldest chunk storing the relevant transaction to the latest chunk to the user device 100) can be transmitted.

가령, 사용자 장치(100-1)가 트랜잭션 이력 정보를 요청하는 경우를 고려한다. 이 경우, 요청된 이력 정보와 관련된 트랜잭션을 포함하는 청크가 C45-(x), C31-(x), C16-(x)(X는 2,3,4,….,n일 수 있으며, 여기에서 n은 프로토콜에 기초하여 각각의 청크에 대한 사본의 개수임)인 것으로 고려한다. For example, consider a case where the user device 100 - 1 requests transaction history information. In this case, the chunk containing the transaction related to the requested history information is C 45-(x) , C 31-(x) , C 16-(x) (X can be 2,3,4,….,n) , where n is the number of copies for each chunk based on the protocol).

이 경우, 관리자 장치(200)는 청크 C16-(x) ~ C최근청크-(x)의 제1 해시와 함께 복수의 사용자 장치로부터 수신된 컨텐츠를 트랜잭션 이력 정보를 요청한 사용자 장치(100-1)에 전송할 수 있다. 이 경우, 사용자 장치(100-1)는 블록 체인의 활성 영역의 가장 오래된 블록의 제1 해시를 이용하여 C45-(x), C31-(x), C16-(x)가 변조되었는지를 검증할 수 있다. 이는 청크 C16-(x)의 컨텐츠의 변조가 청크 C16-(x)의 해시의 변경으로 귀결되고, 블록 체인의 활성 영역의 블록의 제1 해시를 포함한 C16-(x) 이후의 모든 청크의 해시가 변경되기 때문이다. In this case, the manager device 200 transmits the contents received from a plurality of user devices together with the first hash of chunk C 16-(x) to C recent chunk-(x) to the user device 100-1 requesting transaction history information. ) can be sent to In this case, the user device 100-1 checks whether C 45-(x) , C 31-(x) , C 16-(x) is modulated using the first hash of the oldest block of the active region of the block chain. can be verified. This means that all the subsequent 16- C (x) including a first hash of the block of the active area of the chunk C 16- C 16- modulating the chunk and results in a change of the hash, the block chain of the (x) of content (x) This is because the hash of the chunk is changed.

한편, 일 실시 예에 따라, 블록 체인의 전체 사본에 액세스하려는 사용자 장치(100)의 요청을 수신하는 경우, 프로세서(230)는 메모리(210)에 저장된 블록 체인의 전체 사본을 이용하여 블록 체인의 전체 사본을 전송할 수 있다. Meanwhile, according to an embodiment, when receiving a request from the user device 100 to access the full copy of the block chain, the processor 230 uses the full copy of the block chain stored in the memory 210 to You can send a full copy.

한편, 다른 실시 예에 따라, 프로세서(230)는 블록 체인의 비활성화 영역에 대한 요약 정보를 포함하는 상태 데이터 베이스를 생성할 수 있으며, 생성된 상태 데이터 베이스를 블록 체인 시스템에 포함된 사용자 장치에 전송할 수 있다. Meanwhile, according to another embodiment, the processor 230 may generate a state database including summary information on the inactive area of the block chain, and transmit the generated state database to the user device included in the block chain system. can

이때, 사용자 장치(100)가 블록 체인 시스템(1000)에 가입하면, 프로세서(230)는 상태 데이터 베이스에 엔트리(키-값 쌍)를 생성할 수 있다. 여기에서, 엔트리는 사용자 장치(100)의 고유 식별 번호 및 사용자 장치(100)가 보유한 토크 정보를 포함할 수 있다. 이때, 프로세서(230)는 각각의 사용자 장치의 토큰을 저장하기 위한 계정을 생성할 수 있다. At this time, when the user device 100 joins the block chain system 1000 , the processor 230 may create an entry (key-value pair) in the state database. Here, the entry may include a unique identification number of the user device 100 and talk information possessed by the user device 100 . In this case, the processor 230 may create an account for storing the token of each user device.

한편, 블록 체인 네트워크의 노드가 증가하거나 비활성화 영역에 포함된 트랜잭션 정보가 증가하는 경우, 사용자 장치(100)의 상태 데이터 베이스의 크기가 증가할 수 있다. On the other hand, when the number of nodes of the block chain network increases or the transaction information included in the inactive area increases, the size of the state database of the user device 100 may increase.

이와 같이, 상태 데이터 베이스가 사용자 장치에 의해 업데이트되어 기설정된 조건을 만족하는 경우 프로세서(230)는 업데이트된 상태 데이터 베이스에 포함된 요약 정보를 블록 체인 시스템(1000)에 포함된 복수의 사용자 장치에 분산시켜 전송할 수 있다. 이때, 기설정된 조건은 상태 데이터 베이스의 크기가 사용자 장치(100)의 제2 영역(112)의 크기와 동일하거나, 제2 영역(112)의 크기의 기설정된 비율(가령, 80%) 이상인 경우를 나타낼 수 있다. In this way, when the state database is updated by the user device and satisfies a preset condition, the processor 230 transmits the summary information included in the updated state database to the plurality of user devices included in the block chain system 1000 . It can be distributed and transmitted. In this case, the preset condition is that the size of the state database is the same as the size of the second region 112 of the user device 100 or is greater than or equal to a preset ratio (eg, 80%) of the size of the second region 112 . can represent

구체적으로, 프로세서(230)는 상태 데이터 베이스를 분산된 해시 테이블의 형태로 변환할 수 있다. 그리고, 프로세서(230)는 상태 데이터 베이스의 일부에 해당하는 해시 테이블을 블록 체인 네트워크의 기설정된 개수의 사용자 장치에 저장하도록 블록 체인 시스템(1000)을 관리할 수 있다. 이때, 기설정된 개수의 사용자 장치는 사용자 장치에 의해 수행된 트랜잭션의 이력, 사용자 장치가 다른 사용자 장치와 통신을 수행하기 위한 이용 가능한 대역폭 및 사용자 장치의 저장 능력 중 적어도 하나에 기초하여 결정될 수 있다. Specifically, the processor 230 may convert the state database into the form of a distributed hash table. In addition, the processor 230 may manage the block chain system 1000 to store a hash table corresponding to a part of the state database in a preset number of user devices of the block chain network. In this case, the preset number of user devices may be determined based on at least one of a history of transactions performed by the user device, available bandwidth for the user device to communicate with other user devices, and a storage capability of the user device.

도 5는 본 개시의 일 실시 예에 따른 사용자 장치를 설명하기 위한 도면이다. 도 5는 본 개시의 일 실시 예에 따라 경량 모바일(Light-weight mobile, LIMO) 블록 체인 프레임 워크를 포함하는 사용자 장치가 peer-2-peer(P2P) 리소스 관리를 수행하는 예시적인 시나리오를 도시한다. 경량 모바일 블록 체인 프레임워크는 P2P 환경에서 리소스를 관리하는 데 사용될 수 있다. 경량 모바일 블록 체인 프레임워크는 리소스 소유권 및 리소스 비용, 리소스 상태 등과 같은 관련 데이터를 추적하기 위한 탈집중식 불변 원장(ledger)으로서의 역할을 할 수 있다.5 is a diagram for describing a user device according to an embodiment of the present disclosure. 5 illustrates an exemplary scenario in which a user device including a light-weight mobile (LIMO) blockchain framework performs peer-2-peer (P2P) resource management according to an embodiment of the present disclosure; . A lightweight mobile blockchain framework can be used to manage resources in a peer-to-peer environment. A lightweight mobile blockchain framework can serve as a decentralized and immutable ledger for tracking resource ownership and related data such as resource cost, resource status, etc.

도 5a에 도시된 바와 같이, Bob이 선호하는 지불 게이트웨이를 사용하여 Charlie에게 그림을 판매하였다. 그림은 Charlie에게 매도된 Bob의 자산이며, Bob은 토큰을 입금받는다. 이때, Bob에게 입금된 토큰 수는 Charlie로부터 출금된 토큰 수와 동일하다. 차례로 Charlie가 Dave에게 그림을 판매하는 것으로 고려할 수 있다. 블록 체인(원장)은 모든 관련된 데이터와 함께 그림의 소유권의 전체 흔적을 저장할 수 있다. As shown in Figure 5a, Bob sold the painting to Charlie using his preferred payment gateway. The picture is Bob's assets sold to Charlie, and Bob receives tokens. At this time, the number of tokens deposited to Bob is the same as the number of tokens withdrawn from Charlie. In turn, you can consider Charlie selling the painting to Dave. A blockchain (ledger) can store the entire trace of ownership of a picture along with all associated data.

이때, Bob이 트랜잭션의 이력 정보를 요청하는 경우(도 5의 ①), 프로세서(130)는 블록 체인 시스템(1000)의 관리자 장치(200)에 트랜잭션의 이력 정보를 요청할 수 있다. At this time, when Bob requests transaction history information (① in FIG. 5 ), the processor 130 may request transaction history information from the manager device 200 of the block chain system 1000 .

이 경우, 관리자 장치(200)의 프로세서(230)는 비활성화 영역에 대한 청크가 저장된 모든 사용자 장치에 요청된 트랜잭션과 관련된 질의를 전송하고, 트랜잭션 이력 정보를 포함하는 청크가 저장된 복수의 사용자 장치로부터 관련 청크를 전송받을 수 있다(도 5b의 ②)In this case, the processor 230 of the manager device 200 transmits a query related to the requested transaction to all user devices in which the chunks for the inactive area are stored, and receives the query from the plurality of user devices in which the chunks including the transaction history information are stored. A chunk can be transmitted (② in FIG. 5B )

또한, 프로세서(130)는 메모리(110)의 제1 영역(111)에 저장된 활성화 영역의 블록으로부터 최근 트랜잭션 정보를 검색할 수 있다(도 5b의 ③).In addition, the processor 130 may retrieve the latest transaction information from the block of the active area stored in the first area 111 of the memory 110 ( 3 in FIG. 5B ).

프로세서(130)는 복수의 사용자 장치로부터 수신한 관련 청크 및 검색된 최근 트랜잭션 정보를 기초로, 트랜잭션의 이력 정보를 획득할 수 있다(도 5b의 ④). The processor 130 may obtain transaction history information based on the relevant chunks received from the plurality of user devices and the searched recent transaction information (④ of FIG. 5B ).

이와 같이, 경량 모바일 블록 체인 프레임워크는 장래의 시점에 그림의 소유권의 흔적을 추척하려는 임의의 관련 사용자를 용이하게 할 수 있다. As such, a lightweight mobile blockchain framework can facilitate any relevant user who wants to trace the traces of ownership of a painting at some point in the future.

도 6은 본 개시의 일 실시 예에 따른 사용자 장치를 설명하기 위한 도면이다. 구체적으로, 도 6은 경량 모바일(Light-weight mobile, LIMO) 블록 체인 프레임워크를 포함하는 사용자 장치가 다른 사용자 장치와 데이터를 공유하고 각각의 사용자 장치의 데이터 소비를 추적하는 시나리오를 도시한다. 6 is a diagram for describing a user device according to an embodiment of the present disclosure. Specifically, FIG. 6 shows a scenario in which a user device including a Light-weight mobile (LIMO) blockchain framework shares data with other user devices and tracks the data consumption of each user device.

가령, 사용자 장치(100)가 한 달에 100GB의 데이터를 할당받는 데이터 요금제에 가입하였으나, 사용자 장치가 100GB의 할당량을 이용하지 않는 것으로 가정한다. For example, it is assumed that the user device 100 subscribes to a data plan in which data of 100 GB is allocated per month, but the user device does not use the allocated amount of 100 GB.

이때, 사용자 장치는 이용하지 않는 데이터를 다른 사용자 장치와 공유할 수 있다. 마찬가지로, 다른 사용자 장치가 각각 할당된 데이터의 할당량을 이용할 수 없는 경우, 다른 사용자 장치 또한 데이터를 공유할 수 있다. In this case, the user device may share unused data with other user devices. Similarly, other user devices may also share data if the other user devices are not able to use their respective allocated quota of data.

이 시나리오에서, 사용자 장치가 다른 사용자 장치의 데이터를 공유할 때 다른 사용자 장치의 사용자에게 토큰이 입금될 수 있으며, 데이터를 사용하는 사용자 장치의 사용자로부터 토큰이 출금될 수 있다. In this scenario, when a user device shares data from another user device, a token may be deposited to a user of the other user device, and a token may be debited from the user of the user device using the data.

이때, 입금/출금되는 토큰 수는 사용자 간에 전달되는 데이터 양에 기초할 수 있으며, 데이터의 전달은 트랜잭션으로 고려될 수 있다. In this case, the number of tokens to be deposited/withdrawn may be based on the amount of data transferred between users, and the transfer of data may be considered as a transaction.

도 7은 본 개시의 일 실시 예에 따른 사용자 장치를 설명하기 위한 도면이다. 구체적으로, 도 7은 본 개시의 일 실시 예에 따라, 경량 모바일(Light-weight mobile, LIMO)블록 체인 프레임워크가 이용 가능한 대중 교통에 대한 사용자 인센티브화를 용이하게 하는 예시적인 시나리오를 도시한다. 7 is a diagram for describing a user device according to an embodiment of the present disclosure. Specifically, FIG. 7 illustrates an example scenario in which a Light-weight mobile (LIMO) blockchain framework facilitates user incentivization for available public transport, according to an embodiment of the present disclosure.

대중 교통 서비스 회사와 사용자는 트랜잭션을 수행하기 위하여 경량 모바일 블록 체인 프레임워크를 이용할 수 있다. Public transport service companies and users can use a lightweight mobile blockchain framework to conduct transactions.

사용자 장치가 대중 교통 서비스 회사의 서비스를 이용할 때, 트랜잭션은 사용자에 대한 토큰의 입금 및 대중 교통 서비스 회사로부터의 토큰의 출금을 포함할 수 있다. When the user device uses the service of the public transit service company, the transaction may include deposit of tokens to the user and withdrawal of tokens from the public transit service company.

대중 교통 서비스 회사는 공해 또는 교통을 감소시키기 위해 의도된 공공/민간 기간으로부터 통화로 펀딩될 수 있고, 대중 교통 서비스 이용의 대사로 대중 교통 서비스 회사로부터 토큰을 받은 사용자는 토큰을 교환하여 통화를 회수할 수 있다. 이때, 토큰은 사용자에 대한 인센티브로서의 역할을 할 수 있다. 토큰은 청구서 지불, 항공/철도 티켓 할인, 패스 획득, 우선 서비스 이용 등과 같은 이용 가능한 이익을 위하여 교환될 수 있다. Public transport service companies can be funded in currency from public/private periods intended to reduce pollution or traffic, and users who receive tokens from public transport service companies as ambassadors for using public transport services redeem their currency by exchanging tokens can do. In this case, the token may serve as an incentive for the user. Tokens can be exchanged for available benefits, such as paying bills, discounting air/rail tickets, obtaining passes, using preferential services, etc.

가령, Bob이 특정 목적지에 도달하기 위해 대중 교통 서비스를 사용하려고 한다고 고려하자. Bob은 블록 체인 시스템(1000)의 사용자 장치(100)인 스마트폰을 사용하여 목적지에 도착하는 티켓을 예약할 수 있다. 이때, 티켓을 예약하는 행위는 트랜잭션으로 고려될 수 있다. 대중 교통 서비스 회사의 단말 장치는 Bob의 티켓 구매 활동을 기록할 수 있으며, 인센티브로서 기설정된 수의 토큰을 Bob에게 제공할 수 있다. 그리고, Bob은 이익에 대한 대가로 토큰을 교환할 수 있다. 이는 Bob이 대중 교통을 계속 사용하도록 장려할 수 있다. For example, consider that Bob wants to use a public transport service to get to a specific destination. Bob can reserve a ticket to arrive at the destination using the smartphone, which is the user device 100 of the block chain system 1000 . In this case, the act of reserving a ticket may be considered as a transaction. The terminal device of the public transportation service company may record Bob's ticket purchase activity, and may provide a preset number of tokens to Bob as an incentive. And, Bob can exchange tokens in return for profit. This could encourage Bob to continue using public transport.

도 8은 본 개시의 일 실시 예에 따른 사용자 장치를 제어하는 방법을 설명하기 위한 도면이다. 8 is a diagram for explaining a method of controlling a user device according to an embodiment of the present disclosure.

기설정된 기준에 기초하여 복수의 블록으로 구성된 블록 체인을 활성화 영역 및 비활성화 영역으로 구분할 수 있다(S810).A block chain composed of a plurality of blocks may be divided into an active area and an inactive area based on a preset criterion (S810).

블록 체인을 구분하는데 사용되는 기준은 시간 요인 및/또는 사용자 장치의 저장 요인일 수 있으며, 이는 블록 체인 네트워크 관리자 및/또는 관리자 장치에 의해 설정될 수 있다. The criteria used to classify the blockchain may be a time factor and/or a storage factor of the user device, which may be set by the blockchain network administrator and/or the administrator device.

활성화 영역에 포함된 블록을 메모리의 제1 영역에 저장할 수 있다(S820). A block included in the active area may be stored in the first area of the memory ( S820 ).

그리고, 관리자 장치로부터 비활성화 영역에 대한 요약 정보를 포함하는 상태 데이터 베이스를 수신하면, 수신된 상태 데이터 베이스를 메모리의 제2 영역에 저장할 수 있다. 이때, 요약 정보는 블록 체인 시스템에 포함된 복수의 사용자 장치에 대한 식별 정보 및 토큰 정보를 포함할 수 있다. In addition, upon receiving the state database including summary information on the inactive region from the manager device, the received state database may be stored in the second region of the memory. In this case, the summary information may include identification information and token information for a plurality of user devices included in the block chain system.

또한, 관리자 장치의 요청에 따라 비활성화 영역에 포함된 트랜잭션 정보 중 적어도 하나를 메모리의 제3 영역에 저장할 수 있다. In addition, at least one of the transaction information included in the inactive area may be stored in the third area of the memory according to the request of the manager device.

블록 체인 시스템 상에서 트랜잭션이 발생되면, 트랜잭션의 정보를 메모리의 제1 영역에 저장된 블록에 기록할 수 있다(S830).When a transaction occurs on the block chain system, information of the transaction may be recorded in a block stored in the first area of the memory (S830).

이때, 제2 영역에 저장된 상태 데이터 베이스를 기초로 블록 체인 시스템 상에서 발생된 트랜잭션에 대한 검증을 수행하고, 검증된 트랜잭션의 정보를 제1 영역에 저장된 블록에 기록할 수 있다. 구체적으로, 트랜잭션이 발생되면 제1 영역에 저장된 블록에 포함된 트랜잭션의 정보 및 제2 영역에 저장된 요약 정보를 기초로 블록 체인 시스템 상에서 발생된 트랜잭션에 대한 검증을 수행할 수 있다. At this time, based on the state database stored in the second area, verification of the transaction generated on the block chain system may be performed, and the verified transaction information may be recorded in the block stored in the first area. Specifically, when a transaction is generated, it is possible to verify the transaction generated on the block chain system based on the transaction information included in the block stored in the first area and the summary information stored in the second area.

제1 영역에 저장된 트랜잭션 정보 중 기설정된 조건을 만족하는 트랜잭션 정보를 블록 체인 시스템에 포함된 관리자 장치에 전송할 수 있다(S840).Transaction information that satisfies a preset condition among transaction information stored in the first area may be transmitted to the manager device included in the block chain system (S840).

이때, 기설정된 조건을 만족하는 트랜잭션 정보를 기초로, 메모리의 제2 영역에 저장된 상태 데이터 베이스를 업데이트 하고, 업데이트된 상태 데이터 베이스를 블록 체인 시스템에 업로드 할 수 있다. At this time, based on the transaction information that satisfies the preset condition, the state database stored in the second area of the memory may be updated, and the updated state database may be uploaded to the block chain system.

한편, 블록 체인 시스템 상에서 발생된 트랜잭션의 이력 정보를 블록 체인 시스템의 관리자 장치에 요청할 수 있다. On the other hand, it is possible to request history information of transactions that have occurred on the block chain system to the manager device of the block chain system.

그리고, 관리자 장치를 통하여 블록 체인 시스템 상의 복수의 사용자 장치에 분산되어 저장된 블록 체인의 비활성화 영역 중 요청된 이력 정보에 해당하는 트랜잭™l 정보를 수신할 수 있다. And, through the manager device, it is possible to receive the transaction™l information corresponding to the requested history information among the inactive areas of the block chain distributed and stored in a plurality of user devices on the block chain system.

또한 수신된 트랜잭션 정보에 대응하는 해시 데이터 및 제1 영역에 저장된 블록 중 적어도 하나의 블록의 헤더에 포함된 해시 데이터를 비교하여 수신된 트랜잭션 정보를 검증할 수 있다. In addition, the received transaction information may be verified by comparing hash data corresponding to the received transaction information and hash data included in the header of at least one block among the blocks stored in the first area.

이상에서 사용자 장치(100) 또는 관리자 장치(200) 중 적어도 하나를 통해 수행되는 것으로 기재된 다양한 동작들은, 전자 장치의 제어 방법 또는 전자 장치를 포함하는 시스템의 제어 방법 내지 동작 방법의 형태로 하나 이상의 전자 장치를 통해 수행될 수 있다. The various operations described above as being performed through at least one of the user device 100 and the manager device 200 are one or more electronic devices in the form of a control method of an electronic device or a control method or an operating method of a system including the electronic device. This can be done through the device.

한편, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합된 것을 이용하여 컴퓨터 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다.Meanwhile, the various embodiments described above may be implemented in a recording medium readable by a computer or a similar device using software, hardware, or a combination thereof.

하드웨어적인 구현에 의하면, 본 개시에서 설명되는 실시 예들은 ASICs(Application Specific Integrated Circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(Programmable logic devices), FPGAs(field programmable gate arrays), 프로세서(processor), 제어기(controller), 마이크로 컨트롤러(micro-controllers), 마이크로 프로세서(microprocessor), 기타 기능 수행을 위한 전기적인 유닛(unit) 중 적어도 하나를 이용하여 구현될 수 있다.According to the hardware implementation, the embodiments described in the present disclosure are ASICs (Application Specific Integrated Circuits), DSPs (digital signal processors), DSPDs (digital signal processing devices), PLDs (Programmable logic devices), FPGAs (field programmable gate arrays) ), a processor, a controller, a micro-controller, a microprocessor, and may be implemented using at least one of an electrical unit for performing other functions.

일부의 경우에 본 개시에서 설명되는 실시 예들이 프로세서 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면 본 개시에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 상술한 소프트웨어 모듈들 각각은 본 개시에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다.In some cases, the embodiments described in the present disclosure may be implemented by the processor itself. According to the software implementation, embodiments such as procedures and functions described in the present disclosure may be implemented as separate software modules. Each of the above-described software modules may perform one or more functions and operations described in this disclosure.

한편, 상술한 본 개시의 다양한 실시 예들에 따른 사용자 장치 또는 관리자 장치에서의 처리동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium)에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 특정 기기의 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 사용자 장치 및/또는 관리자 장치의 처리 동작을 상술한 특정 기기가 수행하도록 한다.Meanwhile, computer instructions for performing a processing operation in a user device or an administrator device according to various embodiments of the present disclosure described above may be stored in a non-transitory computer-readable medium. can When the computer instructions stored in the non-transitory computer-readable medium are executed by the processor of the specific device, the specific device performs the processing operation of the user device and/or the manager device according to the various embodiments described above.

비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다. The non-transitory readable medium refers to a medium that stores data semi-permanently, rather than a medium that stores data for a short moment, such as a register, cache, memory, etc., and can be read by a device. Specifically, the various applications or programs described above may be provided by being stored in a non-transitory readable medium such as a CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM, and the like.

또한, 이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해돼서는 안 될 것이다.In addition, although preferred embodiments of the present disclosure have been illustrated and described above, the present disclosure is not limited to the specific embodiments described above, and the technical field belonging to the present disclosure without departing from the gist of the present disclosure as claimed in the claims Various modifications may be made by those of ordinary skill in the art, and these modifications should not be individually understood from the technical spirit or prospect of the present disclosure.

100: 사용자 장치 200: 관리자 장치
110: 메모리 120: 통신 인터페이스
130: 프로세서
100: user device 200: administrator device
110: memory 120: communication interface
130: processor

Claims (14)

블록 체인 시스템에 연결 가능한 사용자 장치에 있어서,
메모리;
통신 인터페이스; 및
기설정된 기준에 기초하여 복수의 블록으로 구성된 블록 체인을 활성화 영역 및 비활성화 영역으로 구분하고,
상기 활성화 영역에 포함된 블록을 상기 메모리의 제1 영역에 저장하고,
상기 블록 체인 시스템 상에서 트랜잭션(transaction)이 발생되면, 상기 트랜잭션의 정보를 상기 메모리의 제1 영역에 저장된 블록에 기록(record)하고,
상기 제1 영역에 저장된 트랜잭션 정보 중 기설정된 조건을 만족하는 트랜잭션 정보를 상기 블록 체인 시스템에 포함된 관리자 장치에 전송하도록 상기 통신 인터페이스를 제어하는 프로세서;를 포함하는, 사용자 장치.
In a user device that can be connected to a blockchain system,
Memory;
communication interface; and
A block chain consisting of a plurality of blocks is divided into an active area and an inactive area based on preset criteria,
storing a block included in the activation area in a first area of the memory;
When a transaction occurs on the block chain system, information of the transaction is recorded in a block stored in the first area of the memory,
A processor for controlling the communication interface to transmit transaction information that satisfies a preset condition among the transaction information stored in the first area to a manager device included in the block chain system;
제1항에 있어서,
상기 프로세서는,
상기 관리자 장치로부터 상기 비활성화 영역에 대한 요약 정보를 포함하는 상태 데이터 베이스가 수신되면, 상기 수신된 상태 데이터 베이스를 상기 메모리의 제2 영역에 저장하고,
상기 제2 영역에 저장된 상태 데이터 베이스를 기초로 상기 블록 체인 시스템 상에서 발생된 트랜잭션에 대한 검증을 수행하고, 검증된 트랜잭션의 정보를 상기 제1 영역에 저장된 블록에 기록하는, 사용자 장치.
According to claim 1,
The processor is
When a state database including summary information on the inactive area is received from the manager device, the received state database is stored in a second area of the memory;
A user device that performs verification on a transaction generated on the block chain system based on the state database stored in the second area, and records the verified transaction information in a block stored in the first area.
제2항에 있어서,
상기 요약 정보는 상기 블록 체인 시스템에 포함된 복수의 사용자 장치에 대한 식별 정보 및 토큰 정보를 포함하고,
상기 프로세서는,
상기 트랜잭션이 발생되면, 상기 제1 영역에 저장된 블록에 포함된 트랜잭션의 정보 및 상기 제2 영역에 저장된 요약 정보를 기초로, 상기 블록 체인 시스템 상에서 발생된 트랜잭션에 대한 검증을 수행하는 사용자 장치.
3. The method of claim 2,
The summary information includes identification information and token information for a plurality of user devices included in the block chain system,
The processor is
When the transaction is generated, the user device performs verification on the transaction generated on the block chain system based on the transaction information included in the block stored in the first area and summary information stored in the second area.
제2항에 있어서,
상기 프로세서는,
상기 기설정된 조건을 만족하는 트랜잭션 정보를 기초로, 상기 메모리의 제2 영역에 저장된 상태 데이터 베이스를 업데이트하고,
상기 업데이트된 상태 데이터 베이스를 상기 블록 체인 시스템에 업로드하는, 사용자 장치.
3. The method of claim 2,
The processor is
updating the state database stored in the second area of the memory based on the transaction information that satisfies the preset condition;
uploading the updated state database to the blockchain system.
제1항에 있어서,
상기 프로세서는,
상기 관리자 장치의 요청에 따라 상기 비활성화 영역에 포함된 트랜잭션 정보 중 적어도 하나를 상기 메모리의 제3 영역에 저장하는, 사용자 장치.
According to claim 1,
The processor is
and storing at least one of transaction information included in the inactive area in a third area of the memory according to a request of the manager apparatus.
제1항에 있어서,
상기 프로세서는,
상기 블록 체인 시스템 상에서 발생된 트랜잭션의 이력 정보를 상기 블록 체인 시스템의 관리자 장치에 요청하고,
상기 관리자 장치를 통하여 상기 블록 체인 시스템 상의 복수의 사용자 장치에 분산되어 저장된 상기 블록 체인의 비활성화 영역 중 상기 요청된 이력 정보에 해당하는 트랜잭션 정보를 수신하는, 사용자 장치.
According to claim 1,
The processor is
request history information of transactions that have occurred on the block chain system to the manager device of the block chain system;
The user device receives transaction information corresponding to the requested history information among the inactive areas of the block chain that are distributed and stored in a plurality of user devices on the block chain system through the manager device.
제6항에 있어서,
상기 수신된 트랜잭션 정보에 대응하는 해시 데이터와 상기 제1 영역에 저장된 블록 중 적어도 하나의 블록의 헤더에 포함된 해시 데이터를 비교하여 상기 수신된 트랜잭션 정보를 검증하는, 사용자 장치.
7. The method of claim 6,
and verifying the received transaction information by comparing hash data corresponding to the received transaction information with hash data included in a header of at least one block among blocks stored in the first area.
블록 체인 시스템에 연결 가능한 사용자 장치의 제어 방법에 있어서,
기설정된 기준에 기초하여 복수의 블록으로 구성된 블록 체인을 활성화 영역 및 비활성화 영역으로 구분하는 단계;
상기 활성화 영역에 포함된 블록을 상기 사용자 장치에 포함된 메모리의 제1 영역에 저장하는 단계;
상기 블록 체인 시스템 상에서 트랜잭션(transaction)이 발생되면, 상기 트랜잭션의 정보를 상기 메모리의 제1 영역에 저장된 블록에 기록하는 단계; 및
상기 제1 영역에 저장된 트랜잭션 정보 중 기설정된 조건을 만족하는 트랜잭션 정보를 상기 블록 체인 시스템에 포함된 관리자 장치에 전송하는 단계;를 포함하는, 제어 방법.
A method for controlling a user device connectable to a block chain system, the method comprising:
dividing a block chain composed of a plurality of blocks into an active area and an inactive area based on a preset criterion;
storing the block included in the active area in a first area of a memory included in the user device;
when a transaction occurs on the block chain system, writing information of the transaction to a block stored in a first area of the memory; and
Transmitting transaction information that satisfies a preset condition among the transaction information stored in the first area to a manager device included in the block chain system; a control method comprising a.
제8항에 있어서,
상기 관리자 장치로부터 상기 비활성화 영역에 대한 요약 정보를 포함하는 상태 데이터 베이스가 수신되면, 상기 수신된 상태 데이터 베이스를 상기 메모리의 제2 영역에 저장하는 단계;를 더 포함하고,
상기 기록하는 단계는,
상기 제2 영역에 저장된 상태 데이터 베이스를 기초로 상기 블록 체인 시스템 상에서 발생된 트랜잭션에 대한 검증을 수행하고, 검증된 트랜잭션의 정보를 상기 제1 영역에 저장된 블록에 기록하는 단계;를 포함하는, 제어 방법.
9. The method of claim 8,
When a state database including summary information on the inactive area is received from the manager device, storing the received state database in a second area of the memory;
The recording step is
Control including; performing verification on the transaction generated on the block chain system based on the state database stored in the second area, and recording the verified transaction information in the block stored in the first area; method.
제9항에 있어서,
상기 요약 정보를 상기 블록 체인 시스템에 포함된 복수의 사용자 장치에 대한 식별 정보 및 토큰 정보를 포함하고,
상기 기록하는 단계는,
상기 트랜잭션이 발생되면, 상기 제1 영역에 저장된 블록에 포함된 트랜잭션의 정보 및 상기 제2 영역에 저장된 요약 정보를 기초로, 상기 블록 체인 시스템 상에서 발생된 트랜잭션에 대한 검증을 수행하는 단계;를 포함하는, 제어 방법.
10. The method of claim 9,
The summary information includes identification information and token information for a plurality of user devices included in the block chain system,
The recording step is
When the transaction is generated, based on the transaction information included in the block stored in the first area and the summary information stored in the second area, performing verification on the transaction generated on the block chain system; includes; To do, control method.
제9항에 있어서,
상기 기설정된 조건을 만족하는 트랜잭션 정보를 기초로, 상기 메모리의 제2 영역에 저장된 상태 데이터 베이스를 업데이트하는 단계; 및
상기 업데이트된 상태 데이터 베이스를 상기 블록 체인 시스템에 업로드하는 단계;를 더 포함하는, 제어 방법.
10. The method of claim 9,
updating a state database stored in a second area of the memory based on transaction information that satisfies the preset condition; and
The method further comprising; uploading the updated state database to the block chain system.
제8항에 있어서,
상기 관리자 장치의 요청에 따라 상기 비활성화 영역에 포함된 트랜잭션 정보 중 적어도 하나를 상기 메모리의 제3 영역에 저장하는, 제어 방법.
9. The method of claim 8,
The control method of storing at least one of the transaction information included in the inactive area in the third area of the memory according to the request of the manager device.
제8항에 있어서,
상기 블록 체인 시스템 상에서 발생된 트랜잭션의 이력 정보를 상기 블록 체인 시스템의 관리자 장치에 요청하는 단계; 및
상기 관리자 장치를 통하여 상기 블록 체인 시스템 상의 복수의 사용자 장치에 분산되어 저장된 상기 블록 체인의 비활성화 영역 중 상기 요청된 이력 정보에 해당하는 트랜잭션 정보를 수신하는 단계;를 포함하는, 제어 방법.
9. The method of claim 8,
requesting history information of transactions generated on the block chain system to a manager device of the block chain system; and
Receiving transaction information corresponding to the requested history information among the inactive areas of the block chain distributed and stored in a plurality of user devices on the block chain system through the manager device.
제13항에 있어서,
상기 수신된 트랜잭션 정보에 대응하는 해시 데이터와 상기 제1 영역에 저장된 블록 중 적어도 하나의 블록의 헤더에 포함된 해시 데이터를 비교하여 상기 수신된 트랜잭션 정보를 검증하는 단계;를 더 포함하는, 제어 방법.
14. The method of claim 13,
Verification of the received transaction information by comparing hash data corresponding to the received transaction information with hash data included in a header of at least one block among the blocks stored in the first area; .
KR1020200137113A 2020-01-17 2020-10-21 User apparatus and manager apparatus included in blockchain network and controlling method thereof KR20210093147A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/KR2021/000205 WO2021145606A1 (en) 2020-01-17 2021-01-07 User apparatus and manager apparatus included in blockchain network and controlling method thereof
US17/144,707 US11379858B2 (en) 2020-01-17 2021-01-08 User apparatus and manager apparatus included in blockchain network and controlling method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN202041002191 2020-01-17
IN202041002191 2020-01-17

Publications (1)

Publication Number Publication Date
KR20210093147A true KR20210093147A (en) 2021-07-27

Family

ID=77125513

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200137113A KR20210093147A (en) 2020-01-17 2020-10-21 User apparatus and manager apparatus included in blockchain network and controlling method thereof

Country Status (1)

Country Link
KR (1) KR20210093147A (en)

Similar Documents

Publication Publication Date Title
US20220198410A1 (en) Providing data provenance, permissioning, compliance, and access control for data storage systems using an immutable ledger overlay network
WO2020001108A1 (en) Block chain-based data processing method and device
US20200092084A1 (en) System and methods for operating a blockchain network
KR102406172B1 (en) Method and system for providing NFT-based eco-friendly big data distribution platform services
US20190122186A1 (en) Hierarchical Network System, And Node And Program Used In Same
EP4202694A1 (en) Node memory-based data processing method and apparatus, device, and medium
WO2020038105A1 (en) Blockchain-based data storage method and apparatus
US20190188655A1 (en) Dynamic blockchain transactional policy management
CA3112890A1 (en) System, method, and apparatus for online content platform and related cryptocurrency
WO2021217863A1 (en) Order identifier generation method and apparatus, server, and storage medium
CN110275891B (en) Artificial intelligence software market
US20230289782A1 (en) Smart contract-based data processing
CN104065568A (en) Web server cluster routing method
WO2021227706A1 (en) Data processing method and apparatus, computer device, and storage medium
WO2020118862A1 (en) Decentralized chip research and development transaction data storage method and system
US11682003B2 (en) Systems and methods for charitable giving using blockchain cryptocurrency
TW202025057A (en) Field updating method and device and electronic equipment
WO2023011022A1 (en) Blockchain-based data processing method, and device and computer-readable storage medium
US20230102617A1 (en) Repeat transaction verification method, apparatus, and device, and medium
WO2020118859A1 (en) Decentralized chip research and development transaction data storage method and system
Wang et al. Ess: An efficient storage scheme for improving the scalability of bitcoin network
WO2022183518A1 (en) Cloud-computing-oriented high-performance blockchain architecture method
US11379858B2 (en) User apparatus and manager apparatus included in blockchain network and controlling method thereof
Lin et al. A blockchain-based semantic exchange framework for web 3.0 toward participatory economy
KR20210093147A (en) User apparatus and manager apparatus included in blockchain network and controlling method thereof