WO2020213763A1 - Method and system for verifying block-chain data stored in storage having different format from block-chain - Google Patents

Method and system for verifying block-chain data stored in storage having different format from block-chain Download PDF

Info

Publication number
WO2020213763A1
WO2020213763A1 PCT/KR2019/004684 KR2019004684W WO2020213763A1 WO 2020213763 A1 WO2020213763 A1 WO 2020213763A1 KR 2019004684 W KR2019004684 W KR 2019004684W WO 2020213763 A1 WO2020213763 A1 WO 2020213763A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
information
storage
block information
blockchain
Prior art date
Application number
PCT/KR2019/004684
Other languages
French (fr)
Korean (ko)
Inventor
이지홍
이윤성
이혜진
나수토시마사
다카하시시키
타카미토라오
장호진
김윤석
이홍규
Original Assignee
라인플러스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 라인플러스 주식회사 filed Critical 라인플러스 주식회사
Priority to PCT/KR2019/004684 priority Critical patent/WO2020213763A1/en
Priority to JP2021560366A priority patent/JP2022539283A/en
Priority to KR1020217024823A priority patent/KR102542631B1/en
Publication of WO2020213763A1 publication Critical patent/WO2020213763A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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

Definitions

  • the description below relates to a method and system for verifying blockchain data stored in a storage in a format different from that of the blockchain.
  • the blockchain network includes a root chain for managing data transmission between a plurality of leaf chains
  • the data authentication method includes, by the at least one processor, the generated public address as the plurality of leaf chains. It may be characterized in that it further comprises the step of writing to the genesis (genesis) block of each of the chains.
  • the signed data is sent from the root chain by comparing the signed data with the public address recorded in the genesis block of the leaf chain in the leaf chain receiving the signed data. You can do it.
  • the blockchain network includes a first leaf chain among a plurality of leaf chains in which data transmission is managed by a root chain, and the data authentication method is generated by the at least one processor. It may be characterized in that it further comprises the step of registering the established public address in a leaf chain contract installed in association with the first leaf chain in the root chain.
  • the signed data in the root chain may be characterized in that it is verified that the signed data is sent from the first leaf chain.
  • the block in which the signed data is recorded may be added to the chain of the blockchain network.
  • a computer program stored on a computer-readable recording medium for executing the method on the computer device.
  • It provides a computer-readable recording medium, characterized in that a computer program for executing the method in a computer device is recorded.
  • a computer device implementing a node of a blockchain network comprising at least one processor implemented to execute a command readable by the computer device, and the at least one processor uses the node's private key.
  • Create a public address of a node sign data to be transmitted from the blockchain network to another blockchain network using the node's private key, deliver the signed data to the other blockchain network, and the public It provides a computer device, characterized in that it is verified that the signed data is sent through the blockchain network using an address.
  • Blockchain data stored in a storage in a format different from that of the blockchain can be verified so that anyone can view the contents created on the blockchain.
  • FIG. 1 is a diagram showing an example of a network environment according to an embodiment of the present invention.
  • FIG. 2 is a block diagram showing an example of a computer device according to an embodiment of the present invention.
  • FIG. 3 is a diagram showing an example of a block chain data verification system according to an embodiment of the present invention.
  • FIG. 4 is a flowchart showing an example of a data verification method according to an embodiment of the present invention.
  • the data verification system may be implemented by at least one computer device.
  • a computer program according to an embodiment of the present invention may be installed and driven in a computer device, and the computer device may perform a data verification method according to an embodiment of the present invention under control of the driven computer program.
  • the above-described computer program may be combined with a computer device and stored in a computer-readable recording medium to execute the data verification method on the computer device.
  • the computer program described herein may have a form of an independent program package, or a form of an independent program package may be pre-installed on a computer device to be linked to an operating system or other program packages.
  • the communication method is not limited, and short-range wireless communication between devices as well as a communication method using a communication network (for example, a mobile communication network, a wired Internet, a wireless Internet, a broadcasting network) that the network 170 may include may be included.
  • the network 170 includes a personal area network (PAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), a wide area network (WAN), and a broadband network (BBN). , Internet, and the like.
  • the network 170 may include any one or more of a network topology including a bus network, a star network, a ring network, a mesh network, a star-bus network, a tree or a hierarchical network, etc. Not limited.
  • Each of the servers 150 and 160 is a computer device or a plurality of computers that communicates with a plurality of electronic devices 110, 120, 130, and 140 through a network 170 to provide commands, codes, files, contents, services, etc. It can be implemented with devices.
  • the server 150 serves as a plurality of electronic devices 110, 120, 130, and 140 connected through the network 170 (for example, video call service, financial service, payment service, social network service). , A messaging service, a search service, a mail service, a content providing service, and/or a question and answer service, etc.).
  • FIG. 2 is a block diagram showing an example of a computer device according to an embodiment of the present invention.
  • Each of the plurality of electronic devices 110, 120, 130, and 140 described above or each of the servers 150 and 160 may be implemented by the computer apparatus 200 shown in FIG. 2, and an embodiment of the present invention The method according to these can be performed by such a computer device 200.
  • Such a separate computer-readable recording medium may include a computer-readable recording medium such as a floppy drive, disk, tape, DVD/CD-ROM drive, and memory card.
  • software components may be loaded into the memory 210 through a communication interface 230 other than a computer-readable recording medium.
  • software components may be loaded into the memory 210 of the computer device 200 based on a computer program installed by files received through the network 170.
  • the communication interface 230 may provide a function for the computer device 200 to communicate with other devices (eg, storage devices described above) through the network 170. For example, a request, command, data, file, etc., generated by the processor 220 of the computer device 200 according to a program code stored in a recording device such as the memory 210, is transmitted to the network according to the control of the communication interface 230. 170) can be transferred to other devices. Conversely, signals, commands, data, files, etc. from other devices may be received by the computer device 200 through the communication interface 230 of the computer device 200 via the network 170. Signals, commands, data, etc. received through the communication interface 230 may be transmitted to the processor 220 or the memory 210, and the file, etc. may be a storage medium (described above) that the computer device 200 may further include. Permanent storage).
  • FIG. 3 is a diagram showing an example of a block chain data verification system according to an embodiment of the present invention.
  • the blockchain synchronization verifier 370 may receive N specific block heights and check the validity by inquiring block information of N blocks corresponding to the received N specific block heights.
  • the blockchain synchronization verifier 370 may query block information of the same block from the blockchain explorer API server 361 using the block hash and/or block height of the block retrieved from the blockchain. At this time, the blockchain synchronization verifier 370 may use the API provided by the blockchain explorer API server 361 and the block hash and/or block height as parameters to inquire the block information of a specific block.
  • the blockchain synchronization verifier 370 may determine that the block in the storage 320 has no validity if transaction information is not included in the block information searched in (2).
  • the computer device 200 may verify the validity of the random block without receiving a separate block hash or block height.
  • the computer device 200 receives an arbitrary block hash or an arbitrary block height, and retrieves the input block hash or block information of the block corresponding to the block height as the first block information of the block to be verified. I can.
  • the system or device described above may be implemented as a hardware component, a software component, or a combination of a hardware component and a software component.
  • the devices and components described in the embodiments are, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA). , A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions, such as one or more general purpose computers or special purpose computers.
  • the processing device may execute an operating system (OS) and one or more software applications executed on the operating system.
  • OS operating system
  • the processing device may access, store, manipulate, process, and generate data in response to the execution of software.
  • the processing device is a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it may include.
  • the processing device may include a plurality of processors or one processor and one controller.
  • other processing configurations are possible, such as a parallel processor.
  • the method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium.
  • the computer-readable medium may include program instructions, data files, data structures, and the like alone or in combination.
  • the program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and usable to a person skilled in computer software.
  • Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks.
  • -A hardware device specially configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like.

Landscapes

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

Abstract

Provided are a method and system for verifying block-chain data stored in a storage having a different format from block-chain. According to embodiments of the present invention, a data verification method performed by a computer device may comprise the steps of: querying first block information of a block to be verified from a block-chain; querying second block information of the block to be verified from a storage storing block information of the block-chain in a different structure; and comparing, by at least one processor, the first block information with the second block information to verify the validity of the second block information of the block to be verified, which is stored in the storage.

Description

블록체인과는 다른 형식의 저장소에 저장되는 블록체인 데이터를 검증하는 방법 및 시스템A method and system for verifying blockchain data stored in storage in a format different from blockchain
아래의 설명은 블록체인과는 다른 형식의 저장소에 저장되는 블록체인 데이터를 검증하는 방법 및 시스템에 관한 것이다.The description below relates to a method and system for verifying blockchain data stored in a storage in a format different from that of the blockchain.
블록체인(block-chain)은 전자 대장(electronic ledger)으로서, 트랜잭션들을 위한 블록들로 구성된 컴퓨터 기반의 분산형, P2P(peer-to-peer)의 시스템으로 구현된다. 각 트랜잭션(Transaction, Tx)은 블록체인 시스템 내의 참가자들 간에 디지털 자산의 제어 전송을 인코딩하는 데이터 구조이며, 적어도 하나의 입력과 적어도 하나의 출력을 포함한다. 각 블록은 이전 블록의 해시를 포함하여 해당 블록이 함께 연결되어 처음부터 블록체인에 기록된 모든 트랜잭션의 영구적인, 바꿀 수 없는(unalterable) 기록을 생성한다. 예를 들어, 한국공개특허 제10-2018-0113143호는 블록체인 기반의 사용자 정의 화폐 거래 시스템 및 그 동작 방법을 개시하고 있다. 그러나, 블록체인에 저장된 블록체인 데이터를 누구나 열람할 수 있도록 하기 위해서는 별도의 시스템이 요구된다. 예를 들어, 프라이빗 블록체인에 저장된 블록체인 데이터의 경우, 별도의 시스템을 통해 블록체인 데이터를 제공해주지 않는 이상 아무나 블록체인 데이터에 접근할 수 없다.Block-chain is an electronic ledger and is implemented as a computer-based distributed, peer-to-peer (P2P) system composed of blocks for transactions. Each transaction (Tx) is a data structure that encodes the control transfer of digital assets between participants in the blockchain system, and includes at least one input and at least one output. Each block, including the hash of the previous block, is linked together to create a permanent, unalterable record of all transactions recorded on the blockchain from the beginning. For example, Korean Patent Application Publication No. 10-2018-0113143 discloses a blockchain-based user-defined currency transaction system and its operation method. However, a separate system is required in order to allow anyone to view the blockchain data stored in the blockchain. For example, in the case of blockchain data stored in a private blockchain, anyone cannot access the blockchain data unless the blockchain data is provided through a separate system.
블록체인에 생성된 내용을 누구나 열람할 수 있도록 블록체인과는 다른 형식의 저장소에 저장되는 블록체인 데이터를 검증할 수 있는 데이터 검증 방법 및 시스템을 제공한다.Provides a data verification method and system that can verify blockchain data stored in a storage in a format different from that of the blockchain so that anyone can view the contents created on the blockchain.
블록체인 네트워크에 참여하는 컴퓨터 장치로 구현되는 노드의 데이터 인증 방법에 있어서, 상기 컴퓨터 장치가 포함하는 적어도 하나의 프로세서에 의해, 상기 블록체인 네트워크의 체인을 대표하는 프라이빗 키(private key)를 상기 블록체인 네트워크에 참여하는 적어도 하나의 다른 노드와 공유하는 단계; 상기 적어도 하나의 프로세서에 의해, 상기 프라이빗 키를 이용하여 상기 블록체인 네트워크의 퍼블릭 주소를 생성하는 단계; 상기 적어도 하나의 프로세서에 의해, 상기 블록체인 네트워크에서 다른 블록체인 네트워크로 전달하고자 하는 데이터를 상기 블록체인 네트워크에 설치된 컨트랙트를 통해 상기 프라이빗 키로 서명하는 단계; 및 상기 적어도 하나의 프로세서에 의해, 상기 서명된 데이터를 상기 컨트랙트를 통해 다른 블록체인 네트워크로 전달하는 단계를 포함하고, 상기 서명된 데이터와 상기 퍼블릭 주소간의 비교를 통해 상기 서명된 데이터가 상기 블록체인 네트워크를 통해 발송된 것임이 검증되는 것을 특징으로 하는 데이터 인증 방법을 제공한다.A method for authenticating data of a node implemented by a computer device participating in a blockchain network, wherein a private key representing a chain of the blockchain network is transmitted to the block by at least one processor included in the computer device. Sharing with at least one other node participating in the chain network; Generating, by the at least one processor, a public address of the blockchain network using the private key; Signing, by the at least one processor, data to be transferred from the blockchain network to another blockchain network with the private key through a contract installed in the blockchain network; And transmitting, by the at least one processor, the signed data to another blockchain network through the contract, wherein the signed data is converted to the blockchain through comparison between the signed data and the public address. It provides a data authentication method, characterized in that it is verified that it is sent through a network.
일측에 따르면, 상기 블록체인 네트워크는 복수의 리프 체인들간의 데이터 전송을 관리하는 루트 체인을 포함하고, 상기 데이터 인증 방법은, 상기 적어도 하나의 프로세서에 의해, 상기 생성된 퍼블릭 주소를 상기 복수의 리프 체인들 각각의 제네시스(genesis) 블록에 기록하는 단계를 더 포함하는 것을 특징으로 할 수 있다.According to one side, the blockchain network includes a root chain for managing data transmission between a plurality of leaf chains, and the data authentication method includes, by the at least one processor, the generated public address as the plurality of leaf chains. It may be characterized in that it further comprises the step of writing to the genesis (genesis) block of each of the chains.
다른 측면에 따르면, 상기 서명된 데이터를 전송받은 리프 체인에서 상기 서명된 데이터와 상기 리프 체인의 제네시스 블록에 기록된 퍼블릭 주소를 비교하여 상기 서명된 데이터가 상기 루트 체인에서 발송된 것임을 검증하는 것을 특징으로 할 수 있다.According to another aspect, it is characterized in that it is verified that the signed data is sent from the root chain by comparing the signed data with the public address recorded in the genesis block of the leaf chain in the leaf chain receiving the signed data. You can do it.
또 다른 측면에 따르면, 상기 블록체인 네트워크는 루트 체인에 의해 데이터 전송이 관리되는 복수의 리프 체인들 중 제1 리프 체인을 포함하고, 상기 데이터 인증 방법은, 상기 적어도 하나의 프로세서에 의해, 상기 생성된 퍼블릭 주소를, 상기 루트 체인에 상기 제1 리프 체인과 연관하여 설치된 리프 체인 컨트랙트에 등록하는 단계를 더 포함하는 것을 특징으로 할 수 있다.According to another aspect, the blockchain network includes a first leaf chain among a plurality of leaf chains in which data transmission is managed by a root chain, and the data authentication method is generated by the at least one processor. It may be characterized in that it further comprises the step of registering the established public address in a leaf chain contract installed in association with the first leaf chain in the root chain.
또 다른 측면에 따르면, 상기 루트 체인에서 상기 서명된 데이터와 상기 리프 체인 컨트랙트에 등록된 퍼블릭 주소를 비교하여 상기 서명된 데이터가 상기 제1 리프 체인에서 발송된 것임을 검증하는 것을 특징으로 할 수 있다.According to another aspect, by comparing the signed data in the root chain with a public address registered in the leaf chain contract, it may be characterized in that it is verified that the signed data is sent from the first leaf chain.
또 다른 측면에 따르면, 상기 노드는 상기 블록체인 네트워크에서의 합의(consensus)를 이루도록 기설정된 복수의 노드들 중 하나인 것을 특징으로 할 수 있다.According to another aspect, the node may be one of a plurality of nodes preset to achieve consensus in the blockchain network.
또 다른 측면에 따르면, 상기 서명된 데이터가 기록된 블록이 상기 블록체인 네트워크의 체인에 추가되는 것을 특징으로 할 수 있다.According to another aspect, the block in which the signed data is recorded may be added to the chain of the blockchain network.
블록체인 네트워크에 참여하는 컴퓨터 장치로 구현되는 노드의 데이터 인증 방법에 있어서, 상기 컴퓨터 장치가 포함하는 적어도 하나의 프로세서에 의해, 상기 노드의 프라이빗 키를 이용하여 상기 노드의 퍼블릭 주소를 생성하는 단계; 상기 적어도 하나의 프로세서에 의해, 상기 블록체인 네트워크에서 다른 블록체인 네트워크로 전달하고자 하는 데이터를 상기 노드의 프라이빗 키를 이용하여 서명하는 단계; 및 상기 적어도 하나의 프로세서에 의해, 상기 서명된 데이터를 상기 다른 블록체인 네트워크로 전달하는 단계를 포함하고, 상기 퍼블릭 주소를 이용하여 상기 서명된 데이터가 상기 블록체인 네트워크를 통해 발송된 것임이 검증되는 것을 특징으로 하는 데이터 인증 방법을 제공한다.A method for authenticating data of a node implemented by a computer device participating in a blockchain network, the method comprising: generating, by at least one processor included in the computer device, a public address of the node using a private key of the node; Signing, by the at least one processor, data to be transferred from the blockchain network to another blockchain network using the private key of the node; And transmitting the signed data to the other blockchain network by the at least one processor, and verifying that the signed data is sent through the blockchain network using the public address. It provides a data authentication method, characterized in that.
컴퓨터 장치와 결합되어 상기 방법을 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램을 제공한다.In combination with a computer device, there is provided a computer program stored on a computer-readable recording medium for executing the method on the computer device.
상기 방법을 컴퓨터 장치에 실행시키기 위한 컴퓨터 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터 판독 가능한 기록매체를 제공한다.It provides a computer-readable recording medium, characterized in that a computer program for executing the method in a computer device is recorded.
블록체인 네트워크의 노드를 구현하는 컴퓨터 장치에 있어서, 상기 컴퓨터 장치에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서에 의해, 상기 블록체인 네트워크의 체인을 대표하는 프라이빗 키(private key)를 상기 블록체인 네트워크에 참여하는 적어도 하나의 다른 노드와 공유하고, 상기 프라이빗 키를 이용하여 상기 블록체인 네트워크의 퍼블릭 주소를 생성하고, 상기 블록체인 네트워크에서 다른 블록체인 네트워크로 전달하고자 하는 데이터를 상기 블록체인 네트워크에 설치된 컨트랙트를 통해 상기 프라이빗 키로 서명하고, 상기 서명된 데이터를 상기 컨트랙트를 통해 다른 블록체인 네트워크로 전달하고, 상기 서명된 데이터와 상기 퍼블릭 주소간의 비교를 통해 상기 서명된 데이터가 상기 블록체인 네트워크를 통해 발송된 것임이 검증되는 것을 특징으로 하는 컴퓨터 장치를 제공한다.A computer device implementing a node of a blockchain network, comprising at least one processor implemented to execute an instruction readable by the computer device, and representing a chain of the blockchain network by the at least one processor Share a private key with at least one other node participating in the blockchain network, generate a public address of the blockchain network using the private key, and from the blockchain network to another blockchain network. The data to be transferred is signed with the private key through a contract installed in the blockchain network, the signed data is transferred to another blockchain network through the contract, and the signed data is compared with the public address. It provides a computer device, characterized in that it is verified that the signed data is sent through the blockchain network.
블록체인 네트워크의 노드를 구현하는 컴퓨터 장치에 있어서, 상기 컴퓨터 장치에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서에 의해, 상기 노드의 프라이빗 키를 이용하여 상기 노드의 퍼블릭 주소를 생성하고, 상기 블록체인 네트워크에서 다른 블록체인 네트워크로 전달하고자 하는 데이터를 상기 노드의 프라이빗 키를 이용하여 서명하고, 상기 서명된 데이터를 상기 다른 블록체인 네트워크로 전달하고, 상기 퍼블릭 주소를 이용하여 상기 서명된 데이터가 상기 블록체인 네트워크를 통해 발송된 것임이 검증되는 것을 특징으로 하는 컴퓨터 장치를 제공한다.A computer device implementing a node of a blockchain network, comprising at least one processor implemented to execute a command readable by the computer device, and the at least one processor uses the node's private key. Create a public address of a node, sign data to be transmitted from the blockchain network to another blockchain network using the node's private key, deliver the signed data to the other blockchain network, and the public It provides a computer device, characterized in that it is verified that the signed data is sent through the blockchain network using an address.
블록체인에 생성된 내용을 누구나 열람할 수 있도록 블록체인과는 다른 형식의 저장소에 저장되는 블록체인 데이터를 검증할 수 있다.Blockchain data stored in a storage in a format different from that of the blockchain can be verified so that anyone can view the contents created on the blockchain.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다.1 is a diagram showing an example of a network environment according to an embodiment of the present invention.
도 2는 본 발명의 일실시예에 따른 컴퓨터 장치의 예를 도시한 블록도이다.2 is a block diagram showing an example of a computer device according to an embodiment of the present invention.
도 3은 본 발명의 일실시예에 따른 블록체인 데이터 검증 시스템의 예를 도시한 도면이다.3 is a diagram showing an example of a block chain data verification system according to an embodiment of the present invention.
도 4는 본 발명의 일실시예에 있어서, 데이터 검증 방법의 예를 도시한 흐름도이다.4 is a flowchart showing an example of a data verification method according to an embodiment of the present invention.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings.
본 발명의 실시예들에 따른 데이터 검증 시스템은 적어도 하나의 컴퓨터 장치에 의해 구현될 수 있다. 컴퓨터 장치에는 본 발명의 일실시예에 따른 컴퓨터 프로그램이 설치 및 구동될 수 있고, 컴퓨터 장치는 구동된 컴퓨터 프로그램의 제어에 따라 본 발명의 일실시예에 따른 데이터 검증 방법을 수행할 수 있다. 상술한 컴퓨터 프로그램은 컴퓨터 장치와 결합되어 데이터 검증 방법을 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장될 수 있다. 여기서 설명한 컴퓨터 프로그램은 독립된 하나의 프로그램 패키지의 형태를 가질 수도 있고, 독립된 하나의 프로그램 패키지의 형태가 컴퓨터 장치에 기 설치되어 운영체제나 다른 프로그램 패키지들과 연계되는 형태를 가질 수도 있다. 블록체인에 생성된 내용(블록체인 데이터)을 누구나 열람할 수 있도록, 블록체인 데이터는 블록체인과는 다른 형식의 저장소에 저장될 수 있다. 이때, 본 발명의 실시예들에 따른 데이터 검증 시스템은 다른 형식의 저장소에 저장되는 블록체인 데이터에 대한 유효성을 검사할 수 있다.The data verification system according to embodiments of the present invention may be implemented by at least one computer device. A computer program according to an embodiment of the present invention may be installed and driven in a computer device, and the computer device may perform a data verification method according to an embodiment of the present invention under control of the driven computer program. The above-described computer program may be combined with a computer device and stored in a computer-readable recording medium to execute the data verification method on the computer device. The computer program described herein may have a form of an independent program package, or a form of an independent program package may be pre-installed on a computer device to be linked to an operating system or other program packages. Blockchain data can be stored in a storage in a format different from that of the blockchain so that anyone can view the contents (blockchain data) created on the blockchain. In this case, the data verification system according to the embodiments of the present invention may check the validity of the blockchain data stored in another type of storage.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다. 도 1의 네트워크 환경은 복수의 전자 기기들(110, 120, 130, 140), 복수의 서버들(150, 160) 및 네트워크(170)를 포함하는 예를 나타내고 있다. 이러한 도 1은 발명의 설명을 위한 일례로 전자 기기의 수나 서버의 수가 도 1과 같이 한정되는 것은 아니다. 또한, 도 1의 네트워크 환경은 본 실시예들에 적용 가능한 환경들 중 하나의 예를 설명하는 것일 뿐, 본 실시예들에 적용 가능한 환경이 도 1의 네트워크 환경으로 한정되는 것은 아니다.1 is a diagram showing an example of a network environment according to an embodiment of the present invention. The network environment of FIG. 1 shows an example including a plurality of electronic devices 110, 120, 130, and 140, a plurality of servers 150 and 160, and a network 170. 1 is an example for explaining the present invention, and the number of electronic devices or servers is not limited as in FIG. 1. In addition, the network environment of FIG. 1 is only for describing one example of environments applicable to the embodiments, and the environment applicable to the embodiments is not limited to the network environment of FIG. 1.
복수의 전자 기기들(110, 120, 130, 140)은 컴퓨터 장치로 구현되는 고정형 단말이거나 이동형 단말일 수 있다. 복수의 전자 기기들(110, 120, 130, 140)의 예를 들면, 스마트폰(smart phone), 휴대폰, 네비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC 등이 있다. 일례로 도 1에서는 전자 기기 1(110)의 예로 스마트폰의 형상을 나타내고 있으나, 본 발명의 실시예들에서 전자 기기 1(110)은 실질적으로 무선 또는 유선 통신 방식을 이용하여 네트워크(170)를 통해 다른 전자 기기들(120, 130, 140) 및/또는 서버(150, 160)와 통신할 수 있는 다양한 물리적인 컴퓨터 장치들 중 하나를 의미할 수 있다.The plurality of electronic devices 110, 120, 130, and 140 may be a fixed terminal implemented as a computer device or a mobile terminal. Examples of the plurality of electronic devices 110, 120, 130, 140 include smart phones, mobile phones, navigation, computers, notebook computers, digital broadcasting terminals, personal digital assistants (PDAs), portable multimedia players (PMPs). ), tablet PC, etc. As an example, in FIG. 1, the shape of a smartphone is shown as an example of the electronic device 1 110, but in the embodiments of the present invention, the electronic device 1 110 substantially connects the network 170 using a wireless or wired communication method. Through this, it may mean one of various physical computer devices capable of communicating with other electronic devices 120, 130, and 140 and/or the servers 150 and 160.
통신 방식은 제한되지 않으며, 네트워크(170)가 포함할 수 있는 통신망(일례로, 이동통신망, 유선 인터넷, 무선 인터넷, 방송망)을 활용하는 통신 방식뿐만 아니라 기기들간의 근거리 무선 통신 역시 포함될 수 있다. 예를 들어, 네트워크(170)는, PAN(personal area network), LAN(local area network), CAN(campus area network), MAN(metropolitan area network), WAN(wide area network), BBN(broadband network), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다. 또한, 네트워크(170)는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으나, 이에 제한되지 않는다.The communication method is not limited, and short-range wireless communication between devices as well as a communication method using a communication network (for example, a mobile communication network, a wired Internet, a wireless Internet, a broadcasting network) that the network 170 may include may be included. For example, the network 170 includes a personal area network (PAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), a wide area network (WAN), and a broadband network (BBN). , Internet, and the like. In addition, the network 170 may include any one or more of a network topology including a bus network, a star network, a ring network, a mesh network, a star-bus network, a tree or a hierarchical network, etc. Not limited.
서버(150, 160) 각각은 복수의 전자 기기들(110, 120, 130, 140)과 네트워크(170)를 통해 통신하여 명령, 코드, 파일, 컨텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다. 예를 들어, 서버(150)는 네트워크(170)를 통해 접속한 복수의 전자 기기들(110, 120, 130, 140)로 서비스(일례로, 영상통화 서비스, 금융 서비스, 결제 서비스, 소셜 네트워크 서비스, 메시징 서비스, 검색 서비스, 메일 서비스, 컨텐츠 제공 서비스 및/또는 질문 및 답변 서비스 등)를 제공하는 시스템일 수 있다.Each of the servers 150 and 160 is a computer device or a plurality of computers that communicates with a plurality of electronic devices 110, 120, 130, and 140 through a network 170 to provide commands, codes, files, contents, services, etc. It can be implemented with devices. For example, the server 150 serves as a plurality of electronic devices 110, 120, 130, and 140 connected through the network 170 (for example, video call service, financial service, payment service, social network service). , A messaging service, a search service, a mail service, a content providing service, and/or a question and answer service, etc.).
도 2는 본 발명의 일실시예에 따른 컴퓨터 장치의 예를 도시한 블록도이다. 앞서 설명한 복수의 전자 기기들(110, 120, 130, 140) 각각이나 서버들(150, 160) 각각은 도 2를 통해 도시된 컴퓨터 장치(200)에 의해 구현될 수 있으며, 본 발명의 실시예들에 따른 방법은 이러한 컴퓨터 장치(200)에 의해 수행될 수 있다.2 is a block diagram showing an example of a computer device according to an embodiment of the present invention. Each of the plurality of electronic devices 110, 120, 130, and 140 described above or each of the servers 150 and 160 may be implemented by the computer apparatus 200 shown in FIG. 2, and an embodiment of the present invention The method according to these can be performed by such a computer device 200.
이때, 도 2에 도시된 바와 같이 컴퓨터 장치(200)는, 메모리(210), 프로세서(220), 통신 인터페이스(230) 그리고 입출력 인터페이스(240)를 포함할 수 있다. 메모리(210)는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 디스크 드라이브와 같은 비소멸성 대용량 기록장치는 메모리(210)와는 구분되는 별도의 영구 저장 장치로서 컴퓨터 장치(200)에 포함될 수도 있다. 또한, 메모리(210)에는 운영체제와 적어도 하나의 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(210)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 메모리(210)로 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 인터페이스(230)를 통해 메모리(210)에 로딩될 수도 있다. 예를 들어, 소프트웨어 구성요소들은 네트워크(170)를 통해 수신되는 파일들에 의해 설치되는 컴퓨터 프로그램에 기반하여 컴퓨터 장치(200)의 메모리(210)에 로딩될 수 있다.In this case, as shown in FIG. 2, the computer device 200 may include a memory 210, a processor 220, a communication interface 230, and an input/output interface 240. The memory 210 is a computer-readable recording medium and may include a permanent mass storage device such as a random access memory (RAM), read only memory (ROM), and a disk drive. Here, a non-destructive large-capacity recording device such as a ROM and a disk drive may be included in the computer device 200 as a separate permanent storage device separated from the memory 210. In addition, an operating system and at least one program code may be stored in the memory 210. These software components may be loaded into the memory 210 from a computer-readable recording medium separate from the memory 210. Such a separate computer-readable recording medium may include a computer-readable recording medium such as a floppy drive, disk, tape, DVD/CD-ROM drive, and memory card. In another embodiment, software components may be loaded into the memory 210 through a communication interface 230 other than a computer-readable recording medium. For example, software components may be loaded into the memory 210 of the computer device 200 based on a computer program installed by files received through the network 170.
프로세서(220)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(210) 또는 통신 인터페이스(230)에 의해 프로세서(220)로 제공될 수 있다. 예를 들어 프로세서(220)는 메모리(210)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.The processor 220 may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input/output operations. Commands may be provided to the processor 220 by the memory 210 or the communication interface 230. For example, the processor 220 may be configured to execute a command received according to a program code stored in a recording device such as the memory 210.
통신 인터페이스(230)은 네트워크(170)를 통해 컴퓨터 장치(200)가 다른 장치(일례로, 앞서 설명한 저장 장치들)와 서로 통신하기 위한 기능을 제공할 수 있다. 일례로, 컴퓨터 장치(200)의 프로세서(220)가 메모리(210)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청이나 명령, 데이터, 파일 등이 통신 인터페이스(230)의 제어에 따라 네트워크(170)를 통해 다른 장치들로 전달될 수 있다. 역으로, 다른 장치로부터의 신호나 명령, 데이터, 파일 등이 네트워크(170)를 거쳐 컴퓨터 장치(200)의 통신 인터페이스(230)를 통해 컴퓨터 장치(200)로 수신될 수 있다. 통신 인터페이스(230)를 통해 수신된 신호나 명령, 데이터 등은 프로세서(220)나 메모리(210)로 전달될 수 있고, 파일 등은 컴퓨터 장치(200)가 더 포함할 수 있는 저장 매체(상술한 영구 저장 장치)로 저장될 수 있다.The communication interface 230 may provide a function for the computer device 200 to communicate with other devices (eg, storage devices described above) through the network 170. For example, a request, command, data, file, etc., generated by the processor 220 of the computer device 200 according to a program code stored in a recording device such as the memory 210, is transmitted to the network according to the control of the communication interface 230. 170) can be transferred to other devices. Conversely, signals, commands, data, files, etc. from other devices may be received by the computer device 200 through the communication interface 230 of the computer device 200 via the network 170. Signals, commands, data, etc. received through the communication interface 230 may be transmitted to the processor 220 or the memory 210, and the file, etc. may be a storage medium (described above) that the computer device 200 may further include. Permanent storage).
입출력 인터페이스(240)는 입출력 장치(250)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 마이크, 키보드, 카메라 또는 마우스 등의 장치를, 그리고 출력 장치는 디스플레이, 스피커와 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(240)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 입출력 장치(250)는 컴퓨터 장치(200)와 하나의 장치로 구성될 수도 있다.The input/output interface 240 may be a means for an interface with the input/output device 250. For example, the input device may include a device such as a microphone, keyboard, camera, or mouse, and the output device may include a device such as a display and a speaker. As another example, the input/output interface 240 may be a means for interfacing with a device in which input and output functions are integrated into one, such as a touch screen. The input/output device 250 may be configured with the computer device 200 and one device.
또한, 다른 실시예들에서 컴퓨터 장치(200)는 도 2의 구성요소들보다 더 적은 혹은 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 컴퓨터 장치(200)는 상술한 입출력 장치(250) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다.Further, in other embodiments, the computer device 200 may include fewer or more components than the components of FIG. 2. However, there is no need to clearly show most of the prior art components. For example, the computer device 200 may be implemented to include at least some of the input/output devices 250 described above, or may further include other components such as a transceiver and a database.
도 3은 본 발명의 일실시예에 따른 블록체인 데이터 검증 시스템의 예를 도시한 도면이다.3 is a diagram showing an example of a block chain data verification system according to an embodiment of the present invention.
블록체인 네트워크(Blockchain network, 310)는 각각 컴퓨터 장치(200)로 구현될 수 있는 복수의 노드들에 의해 구성되어 블록체인을 통해 블록체인 데이터를 생성 및 저장하는 신뢰 인프라일 수 있다. Blockchain network 310 may be a trust infrastructure that is configured by a plurality of nodes, each of which can be implemented as a computer device 200, to generate and store blockchain data through a blockchain.
이러한 블록체인 네트워크(310)에 생성되는 블록체인 데이터를 누구나 열람할 수 있도록 하기 위해, 블록체인 데이터는 블록체인과는 다른 형식의 저장소(320)에 저장될 수 있다. 저장소(320)는 블록체인 데이터를 제공하고자 하는 서비스에 적합한 구조로 저장하는 주체일 수 있다. 일례로, 도 3에서는 비-일시적인(non-transitory) 저장소로서의 노에스큐엘(NoSql, 321)과 일시적인 저장소로서의 메모리 저장소(Memory Storage, 322)에 각각 블록체인 데이터를 저장하는 예를 나타내고 있다. 메모리 저장소(322)는 블록체인 데이터의 보다 빠른 제공을 위해 선택적으로 활용될 수 있으며, 노에스큐엘(321)은 블록체인 데이터의 저장 및 처리를 위한 비관계형(non-relational) 데이터베이스 관리 시스템의 예시가 될 수 있다.In order to allow anyone to view the blockchain data generated in the blockchain network 310, the blockchain data may be stored in a storage 320 in a format different from that of the blockchain. The storage 320 may be a subject that stores blockchain data in a structure suitable for a service intended to be provided. As an example, FIG. 3 shows an example of storing blockchain data in a NoSql (321) as a non-transitory storage and a memory storage (322) as a temporary storage, respectively. The memory storage 322 can be selectively used for faster provision of blockchain data, and the NOSQL 321 is a non-relational database management system for storing and processing blockchain data. It could be an example.
저장소(320)에 블록체인 데이터를 저장하기 위해, 릴레이어(Relayer, 330)가 활용될 수 있다. 릴레이어(330)는 블록체인에서 제공하는 API(Applcation Program Interface)를 이용하여 저장하기 위한 블록체인 데이터를 조회할 수 있으며, 조회된 블록체인 데이터를 큐(Queue, 340)에 순차적으로 쌓을 수 있다. 이때, 큐(340)에 순차적으로 쌓인 블록체인 데이터를 저장소(320)에 저장하기 위해 컨슈머(Consumer[1, …, K], 350)가 구성될 수 있다. 저장소(320)에는 블록 하이트(block height)를 기준으로 블록체인 데이터가 저장될 수 있으며, 릴레이어(330)는 중계를 완료한 블록 하이트를 저장하고 있을 수 있다. 실시예에 따라 큐(340)나 컨슈머(350)는 생략되고, 릴레이어(330)가 조회되는 블록체인 데이터를 순차적으로 저장소(320)에 저장할 수도 있다. 여기서, 블록 하이트는 블록체인에서의 블록들의 순서에 대응하는, 블록해시와는 다른 블록의 식별자일 수 있다. 예를 들어, 블록체인 A의 블록 하이트 15000는 블록체인 A의 15000번째 블록을 나타내는 식별자를 의미할 수 있다. 또한, 복수의 블록체인들이 존재할 때, 블록들의 순서에 대응하는 블록 하이트는 블록체인별로 중복될 가능성이 존재한다. 따라서, 블록 하이트는 블록체인의 식별자(일례로, chainID)별로 존재할 수 있다. 예를 들어, 블록체인 A의 블록체인 식별자가 chainA라 가정할 때, 블록체인 A의 블록 하이트 15000의 값은 블록체인 A의 식별자 chainA와 연관지어질 수 있다. 보다 구체적으로 릴레이어(330)가 복수의 블록체인들과 연계될 때, 릴레이어(330)가 중계하는 블록체인 데이터에는 해당 데이터가 어떤 블록체인의 블록체인 데이터인가를 나타내기 위해 블록체인 식별자가 포함될 수 있다. 이 경우, 릴레이어(330)는 이러한 블록체인 데이터가 포함하는 블록체인 식별자와 해당 블록체인 데이터의 블록 하이트를 서로 연계하여 저장할 수 있다.In order to store blockchain data in the storage 320, a relay 330 may be used. The relay 330 can inquire blockchain data for storage using an API (Applcation Program Interface) provided by the blockchain, and can sequentially stack the inquired blockchain data in a queue 340. . In this case, a consumer [1, …, K], 350 may be configured to store the block chain data sequentially accumulated in the queue 340 in the storage 320. Blockchain data may be stored in the storage 320 based on a block height, and the relay 330 may store a block height that has been relayed. Depending on the embodiment, the queue 340 or the consumer 350 may be omitted, and block chain data for which the relay 330 is searched may be sequentially stored in the storage 320. Here, the block height may be an identifier of a block different from the block hash corresponding to the order of blocks in the block chain. For example, block height 15000 of blockchain A may mean an identifier representing the 15000th block of blockchain A. In addition, when there are multiple block chains, there is a possibility that the block height corresponding to the order of the blocks will be duplicated for each block chain. Therefore, the block height may exist for each identifier of the blockchain (for example, chainID). For example, assuming that the blockchain identifier of blockchain A is chainA, the value of block height of 15000 of blockchain A can be associated with the identifier chainA of blockchain A. More specifically, when the relay 330 is associated with a plurality of blockchains, the blockchain data relayed by the relay 330 has a blockchain identifier to indicate which blockchain data is the corresponding data. Can be included. In this case, the relay 330 may store a block chain identifier included in the block chain data and a block height of the block chain data in association with each other.
또한, 저장소(320)에 저장된 블록체인 데이터를 누구나 열람할 수 있도록 하기 위해 블록체인 익스플로러(Blockchain explorer, 360)가 구성될 수 있다. 일례로, 블록체인 익스플로러(360)는 도 3에 도시된 바와 같이, 저장소(320)로부터 요구된 특정 블록체인 데이터를 추출하기 위한 블록체인 익스플로러 API 서버(Blockchain explorer API Server[1, …, L], 361), 그리고, 추출된 블록체인 데이터의 뷰를 위한 블록체인 익스플로러 뷰 서버(Blockchain explorer View Server[1, …, M], 362)를 포함할 수 있다.In addition, a blockchain explorer (360) may be configured in order to allow anyone to view the blockchain data stored in the storage 320. As an example, the blockchain explorer 360 is a blockchain explorer API server [1, …, L] for extracting specific block chain data requested from the storage 320, as shown in FIG. 3. , 361), and a Blockchain explorer view server (Blockchain explorer View Server[1, …, M], 362) for the view of the extracted blockchain data.
한편, 저장소(320)에 블록체인 데이터가 올바르게 저장되었는지 검증할 필요성이 있다. 블록체인 동기 검증자(Blockchain sync validator, 370)를 포함할 수 있다. 블록체인 동기 검증자(370)는 블록체인 네트워크(310)에 저장된 블록체인 데이터와 저장소(320)에 저장된 블록체인 데이터를 비교하여 저장소(320)에 저장된 블록체인 데이터의 유효성을 검증할 수 있다. 예를 들어, 블록체인 동기 검증자(370)는 블록체인 네트워크(310)의 마지막 블록 하이트(last block height)에서 N만큼 뺀 값을 최대 블록 하이트(max block height)로 설정한 후, 최대 블록 하이트까지를 목표로 하여 N건씩 블록체인 데이터에 대한 유효성 검사를 수행할 수 있다. 여기서, 마지막 블록 하이트에서 N만큼 뺀 값을 최대 블록 하이트로 설정하는 것은, 블록체인 데이터가 블록체인 네트워크(310)에서 저장소(320)로 전달되는 딜레이를 감안하기 위한 것일 수 있다. 또한, 블록체인 네트워크(300)가 단일 블록체인이 아닌 복수의 블록체인들을 포함하는 경우, 마지막 블록 하이트는 블록체인마다 달라질 수 있기 때문에, 블록체인별로 최대 블록 하이트가 설정될 수 있다. 이때, 유효성 검사를 위해 블록체인 동기 검증자(370)는 블록해시(blockhash)를 기반으로, 블록체인 네트워크(310)에서 얻어진 블록체인 데이터와 블록체인 익스플로러 API 서버(361)로부터 얻어진 블록체인 데이터를 비교하여, 해당 블록해시에 대응하는 블록이 블록체인 네트워크(310)와 저장소(320) 모두에 잘 저장되어 있는지 확인할 수 있다. 또한, 블록체인 동기 검증자(370)는 해당 블록에 포함된 거래해시(transaction hash)가 블록체인 네트워크(310)와 저장소(320) 모두에 잘 저장되어 있는지 확인할 수 있다. On the other hand, there is a need to verify whether the block chain data is correctly stored in the storage 320. Blockchain sync validator (370) may be included. The blockchain synchronization verifier 370 may compare the blockchain data stored in the blockchain network 310 with the blockchain data stored in the storage 320 to verify the validity of the blockchain data stored in the storage 320. For example, the blockchain synchronization verifier 370 sets a value subtracted by N from the last block height of the blockchain network 310 as the maximum block height, and then the maximum block height. Targeting up to, you can perform validation checks on the blockchain data N times. Here, setting a value subtracted by N from the last block height as the maximum block height may be for taking into account a delay in which blockchain data is transmitted from the blockchain network 310 to the storage 320. In addition, when the block chain network 300 includes a plurality of block chains instead of a single block chain, since the last block height may vary for each block chain, the maximum block height may be set for each block chain. At this time, for validation, the blockchain synchronization verifier 370 is based on the block hash, the blockchain data obtained from the blockchain network 310 and the blockchain data obtained from the blockchain explorer API server 361 By comparison, it can be checked whether the block corresponding to the block hash is well stored in both the blockchain network 310 and the storage 320. In addition, the blockchain synchronization verifier 370 can check whether the transaction hash included in the block is well stored in both the blockchain network 310 and the storage 320.
이때, 블록체인 동기 검증자(370)는 블록체인 네트워크(310)가 제공하는 API를 이용하여 블록체인 네트워크(310)로부터 블록체인 데이터를 조회할 수 있다. 또한, 이와 유사하게 블록체인 동기 검증자(370)는 블록체인 익스플로러 API 서버(361)가 제공하는 API를 이용하여 블록체인 익스플로러 API 서버(361)로부터 저장소(320)에 저장된 블록체인 데이터를 조회할 수 있다. 각각의 API 호출을 위해 특정 블록의 블록해시 및/또는 블록 하이트가 파라미터로 이용될 수 있다. 이 경우, 블록체인 네트워크(310) 또는 블록체인 익스플로러 API 서버(361)는 파라미터로서 제공되는 블록해시 및/또는 블록 하이트에 대응하는 블록의 블록체인 데이터를 블록체인 또는 저장소(320)로부터 추출하여 블록체인 동기 검증자(370)로 제공할 수 있다.At this time, the blockchain synchronization verifier 370 can query the blockchain data from the blockchain network 310 using an API provided by the blockchain network 310. In addition, similarly, the blockchain synchronization verifier 370 can query the blockchain data stored in the storage 320 from the blockchain explorer API server 361 using an API provided by the blockchain explorer API server 361. I can. For each API call, a block hash and/or block height of a specific block may be used as a parameter. In this case, the blockchain network 310 or the blockchain explorer API server 361 extracts the block chain data of the block corresponding to the block hash and/or block height provided as a parameter from the block chain or storage 320 It can be provided to the blockchain synchronization verifier 370.
보다 구체적인 예로, 블록체인 동기 검증자(370)는 다음 A, B, C의 예시와 같이 블록체인 데이터를 조회하여 유효성을 검사할 수 있다.As a more specific example, the blockchain synchronization verifier 370 may check the validity by inquiring the blockchain data as in the following examples A, B, and C.
A. 블록체인 동기 검증자(370)는 N 개의 특정 블록 하이트를 입력받아, 입력받은 N 개의 특정 블록 하이트에 대응하는 N 개의 블록들의 블록정보를 조회하여 유효성을 검사할 수 있다.A. The blockchain synchronization verifier 370 may receive N specific block heights and check the validity by inquiring block information of N blocks corresponding to the received N specific block heights.
B. 블록체인 동기 검증자(370)는 아무런 입력을 받지 않고, 블록체인의 마지막 블록 하이트를 기준으로, 랜덤한 블록 하이트 하나를 선출하고, 선출된 블록 하이트에 대응하는 블록의 블록 정보를 조회하여 유효성을 검사할 수 있다. 복수의 블록체인들이 존재하는 경우, 블록체인 동기 검증자(370)는 랜덤한 블록체인을 선택한 후, 선택된 블록체인의 마지막 블록 하이트를 기준으로, 랜덤한 블록 하이트 하나를 선출하고, 선출된 블록 하이트에 대응하는 블록의 블록 정보를 조회하여 유효성을 검사할 수 있다. 또한, 블록체인과 저장소(320)간의 중계 딜레이를 고려하여 마지막 블록 하이트에서 N만큼을 뺀 최대 블록 하이트를 설정한 후, 설정된 최대 블록 하이트를 기준으로 랜덤한 블록 하이트를 선출할 수도 있다.B. Blockchain synchronization verifier 370 does not receive any input, selects one random block height based on the last block height of the block chain, and retrieves block information of the block corresponding to the selected block height. You can check the validity. When there are multiple blockchains, the blockchain synchronization verifier 370 selects a random blockchain, then selects one random block height based on the last block height of the selected blockchain, and selects the elected block height. Validity can be checked by inquiring block information of a block corresponding to. In addition, after setting a maximum block height by subtracting N from the last block height in consideration of the relay delay between the block chain and the storage 320, a random block height may be selected based on the set maximum block height.
C. 블록체인 동기 검증자(370)는 블록체인 네트워크(310)의 블록체인들 중 하나를 선택해서, 원하는 블록해시 및/또는 블록 하이트를 입력받아, 입력된 블록해시 및/또는 블록 하이트에 대응하는 블록의 블록정보를 조회하여 유효성을 검사할 수 있다.C. Blockchain synchronization verifier 370 selects one of the block chains of the block chain network 310, receives the desired block hash and/or block height, and receives the input block hash and/or block height. Validity can be checked by inquiring block information of the block corresponding to.
다양한 예시들에서 공통적으로 수행되는 유효성 검사 로직은 다음 (1) 내지 (8)과 같다.Validation logic commonly performed in various examples is as follows (1) to (8).
(1) 블록체인 동기 검증자(370)는 블록체인으로부터 랜덤하게 선택되거나 블록의 블록정보를 블록체인으로부터 조회하거나 또는 입력받은 블록 하이트에 대한 블록정보를 블록체인으로부터 조회할 수 있다.(1) The blockchain synchronization verifier 370 may be randomly selected from the blockchain, inquired for block information of a block from the blockchain, or inquired for block information on the received block height from the blockchain.
(2) 블록체인 동기 검증자(370)는 블록체인에서 조회된 블록의 블록해시 및/또는 블록 하이트를 이용하여 블록체인 익스플로러 API 서버(361)로부터 동일한 블록의 블록정보를 조회할 수 있다. 이때, 블록체인 동기 검증자(370)는 블록체인 익스플로러 API 서버(361)가 제공하는 API와 블록해시 및/또는 블록 하이트를 파라미터로 이용하여 특정 블록의 블록정보를 조회할 수 있다.(2) The blockchain synchronization verifier 370 may query block information of the same block from the blockchain explorer API server 361 using the block hash and/or block height of the block retrieved from the blockchain. At this time, the blockchain synchronization verifier 370 may use the API provided by the blockchain explorer API server 361 and the block hash and/or block height as parameters to inquire the block information of a specific block.
(3) 블록체인 동기 검증자(370)는 블록체인 익스플로러 API 서버(361)로부터 블록정보가 조회되지 않는 경우, 저장소(320)의 해당 블록에 대한 유효성이 없는 것으로 결정할 수 있다.(3) The blockchain synchronization verifier 370 may determine that there is no validity for the corresponding block in the storage 320 when block information is not retrieved from the blockchain explorer API server 361.
(4) 블록체인 동기 검증자(370)는 (1)에서 조회된 블록정보의 블록해시와 (2)에서 조회된 블록정보의 블록해시가 서로 동일하지 않는 경우, 저장소(320)의 해당 블록에 대한 유효성이 없는 것으로 결정할 수 있다.(4) Blockchain synchronization verifier 370, if the block hash of the block information searched in (1) and the block hash of the block information searched in (2) are not the same, corresponding to the storage 320 It can be determined that the block has no validity.
(5) 블록체인 동기 검증자(370)는 (1)에서 조회된 블록정보의 블록 하이트와 (2)에서 조회된 블록정보의 블록 하이트가 서로 동일하지 않는 경우, 저장소(320)의 해당 블록에 대한 유효성이 없는 것으로 결정할 수 있다.(5) If the block height of the block information searched in (1) and the block height of the block information searched in (2) are not the same, the block chain synchronization verifier 370 It can be determined that there is no validity for this.
(6) 블록체인 동기 검증자(370)는 (2)에서 조회된 블록정보에 거래정보가 포함되지 않는 경우, 저장소(320)의 해당 블록에 대한 유효성이 없는 것으로 결정할 수 있다.(6) The blockchain synchronization verifier 370 may determine that the block in the storage 320 has no validity if transaction information is not included in the block information searched in (2).
(7) 블록체인 동기 검증자(370)는 (1)에서 조회된 블록정보의 거래해시들과 (2)에서 조회된 블록정보의 거래해시들이 서로 동일하지 않은 경우, 저장소(320)의 해당 블록에 대한 유효성이 없는 것으로 결정할 수 있다. 예를 들어, (1)에서 조회된 블록정보의 거래해시들에 비해 (2)에서 조회된 블록정보의 거래해시들이 하나라도 누락되거나 일치하지 않은 거래해시가 존재하는 경우, 블록체인 동기 검증자(370)는 저장소(320)의 해당 블록에 대한 유효성이 없는 것으로 결정할 수 있다.(7) Blockchain synchronization verifier 370, if the transaction hashes of the block information searched in (1) and the transaction hashes of the block information searched in (2) are not the same, corresponding to the storage 320 It can be determined that the block has no validity. For example, if at least one transaction hash of the block information searched in (2) is missing or inconsistent transaction hashes compared to the transaction hashes of the block information searched in (1), blockchain synchronization verification The ruler 370 may determine that there is no validity for the corresponding block in the storage 320.
(8) 블록체인 동기 검증자(370)는 (3) 내지 (7)의 결과에 이상이 없는 경우, 다시 말해 (3) 내지 (7) 중 어느 하나에서 해당 블록에 대한 유효성이 없는 것으로 결정되지 않은 경우, 저장소(320)의 해당 블록에 대한 유효성이 존재하는 것으로 결정할 수 있다.(8) If there is no abnormality in the results of (3) to (7), the blockchain synchronization verifier 370, in other words, is not determined to have no validity for the block in any one of (3) to (7). If not, it may be determined that the validity of the corresponding block of the storage 320 exists.
도 4는 본 발명의 일실시예에 있어서, 데이터 검증 방법의 예를 도시한 흐름도이다. 본 실시예에 따른 데이터 검증 방법은 앞서 도 3을 통해 설명한 블록체인 동기 검증자(370)를 구현하는 컴퓨터 장치(200)에 의해 수행될 수 있다. 예를 들어, 컴퓨터 장치(200)의 프로세서(220)는 메모리(210)가 포함하는 운영체제의 코드나 적어도 하나의 프로그램의 코드에 따른 제어 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(220)는 컴퓨터 장치(200)에 저장된 코드가 제공하는 제어 명령에 따라 컴퓨터 장치(200)가 도 4의 방법이 포함하는 단계들(410 내지 430)을 수행하도록 컴퓨터 장치(200)를 제어할 수 있다.4 is a flowchart showing an example of a data verification method according to an embodiment of the present invention. The data verification method according to the present embodiment may be performed by the computer device 200 implementing the blockchain synchronization verifier 370 described above with reference to FIG. 3. For example, the processor 220 of the computer device 200 may be implemented to execute a code of an operating system included in the memory 210 or a control instruction according to the code of at least one program. Here, the processor 220 is the computer device 200 so that the computer device 200 performs the steps 410 to 430 included in the method of FIG. 4 according to a control command provided by the code stored in the computer device 200. Can be controlled.
단계(410)에서 컴퓨터 장치(200)는 블록체인으로부터 검증 대상 블록의 제1 블록정보를 조회할 수 있다. 이때, 컴퓨터 장치(200)는 해당 블록체인의 블록체인 네트워크에서 제공하는 API를 이용하여 검증 대상 블록의 제1 블록정보를 조회할 수 있다. 일례로, 컴퓨터 장치(200)는 N 개의 블록 하이트를 입력받고, N 개의 블록 하이트에 대응하는 N개의 블록 각각을 검증 대상 블록으로 선정하여, 검증 대상 블록 각각에 대해 제1 블록정보를 조회할 수 있다. 다른 예로, 컴퓨터 장치(200)는 블록체인의 마지막 블록 하이트를 기준으로, 랜덤한 블록 하이트를 선출하여 선출된 블록 하이트에 대응하는 블록의 블록정보를 검증 대상 블록의 제1 블록정보로서 조회할 수 있다. 이 경우, 컴퓨터 장치(200)는 별도의 블록해시나 블록 하이트를 입력받지 않고 랜덤한 블록에 대해 유효성을 검증할 수 있다. 또 다른 예로, 컴퓨터 장치(200)는 임의의 블록해시 또는 임의의 블록 하이트를 입력받아, 입력된 블록 해시 또는 블록 하이트에 대응하는 블록의 블록정보를 검증 대상 블록의 제1 블록정보로서 조회할 수 있다.In step 410, the computer device 200 may query the first block information of the block to be verified from the block chain. At this time, the computer device 200 may inquire the first block information of the block to be verified using an API provided by the block chain network of the corresponding block chain. As an example, the computer device 200 may receive N block heights, select each of N blocks corresponding to N block heights as a verification target block, and query first block information for each verification target block. have. As another example, the computer device 200 may select a random block height based on the last block height of the block chain, and query the block information of the block corresponding to the selected block height as the first block information of the block to be verified. have. In this case, the computer device 200 may verify the validity of the random block without receiving a separate block hash or block height. As another example, the computer device 200 receives an arbitrary block hash or an arbitrary block height, and retrieves the input block hash or block information of the block corresponding to the block height as the first block information of the block to be verified. I can.
단계(420)에서 컴퓨터 장치(200)는 블록체인의 블록정보를 다른 구조로 저장하는 저장소로부터 검증 대상 블록의 제2 블록정보를 조회할 수 있다. 여기서, 저장소는 특정한 서비스를 제공하기 위해 해당 서비스에 알맞은 구조로 블록정보를 저장하는 주체로서 도 3을 통해 설명한 저장소(320)에 대응할 수 있다. 예를 들어, 컴퓨터 장치(200)는 조회된 제1 블록정보에 대응하는 블록해시 또는 블록 하이트를 이용하여 저장소로부터 제2 블록정보를 조회할 수 있다. 보다 구체적으로, 컴퓨터 장치(200)는 기설정된 서비스를 제공하고, 저장소에 저장된 블록정보들을 처리하여 기설정된 서비스를 통해 제공하는 블록체인 익스플로러를 통해 조회된 제1 블록정보에 대응하는 블록해시 또는 블록 하이트에 대응하는 제2 블록정보를 저장소로부터 조회할 수 있다. 여기서 블록체인 익스플로러는 앞서 도 3을 통해 설명한 블록체인 익스플로러(360)에 대응할 수 있으며, 컴퓨터 장치(200)는 블록체인 익스플로러가 제공하는 API를 통해 특정 블록해시 및/또는 블록 하이트에 대응하는 블록의 블록정보를 조회할 수 있게 된다.In step 420, the computer device 200 may query the second block information of the verification target block from a storage storing block information of the block chain in a different structure. Here, the storage is a subject that stores block information in a structure suitable for a corresponding service in order to provide a specific service, and may correspond to the storage 320 described with reference to FIG. 3. For example, the computer device 200 may query the second block information from the storage using a block hash or block height corresponding to the inquired first block information. More specifically, the computer device 200 provides a preset service, processes block information stored in the storage, and provides a block hash or a block hash corresponding to the first block information inquired through the block chain explorer provided through a preset service. Second block information corresponding to the block height can be inquired from the storage. Here, the blockchain explorer may correspond to the blockchain explorer 360 described above with reference to FIG. 3, and the computer device 200 is a block corresponding to a specific block hash and/or block height through an API provided by the blockchain explorer. You can search block information of
단계(430)에서 컴퓨터 장치(200)는 제1 블록정보 및 제2 블록정보를 비교하여 검증 대상 블록에 대한 저장소에 저장된 제2 블록정보의 유효성을 검증할 수 있다. 일례로, 컴퓨터 장치(200)는 저장소로부터 제2 블록정보가 조회되지 않는 경우, 저장소의 검증 대상 블록에 대한 유효성이 없는 것으로 결정할 수 있다. 다른 예로, 컴퓨터 장치(200)는 제1 블록정보가 포함하는 블록해시와 제2 블록정보가 포함하는 블록해시가 서로 동일하지 않은 경우, 저장소의 검증 대상 블록에 대한 유효성이 없는 것으로 결정할 수 있다. 또 다른 예로, 컴퓨터 장치(200)는 제1 블록정보에 대응하는 블록 하이트와 제2 블록정보에 대응하는 블록 하이트가 서로 동일하지 않은 경우, 저장소의 검증 대상 블록에 대한 유효성이 없는 것으로 결정할 수 있다. 또 다른 예로, 컴퓨터 장치(200)는 제2 블록정보에 거래정보가 포함되어 있지 않은 경우, 저장소의 검증 대상 블록에 대한 유효성이 없는 것으로 결정할 수 있다. 제1 블록정보가 포함하는 거래해시들과 제2 블록정보가 포함하는 거래해시들이 서로 동일하지 않은 경우, 저장소의 검증 대상 블록에 대한 유효성이 없는 것으로 결정할 수 있다. 한편, 컴퓨터 장치(200)는 각각의 경우들 모두에서 저장소의 검증 대상 블록에 대한 유효성이 없는 것으로 결정되지 않는 경우에 저장소의 검증 대상 블록에 대한 유효성이 있는 것으로 결정할 수 있다.In step 430, the computer device 200 may compare the first block information and the second block information to verify the validity of the second block information stored in the storage for the verification target block. For example, when the second block information is not retrieved from the storage, the computer device 200 may determine that the validity of the verification target block of the storage is not present. As another example, when the block hash included in the first block information and the block hash included in the second block information are not identical to each other, the computer device 200 may determine that the verification target block of the storage is not valid. have. As another example, when the block height corresponding to the first block information and the block height corresponding to the second block information are not the same, the computer device 200 may determine that the verification target block of the storage is not valid. . As another example, when transaction information is not included in the second block information, the computer device 200 may determine that there is no validity for the verification target block in the storage. When the transaction hashes included in the first block information and the transaction hashes included in the second block information are not identical to each other, it may be determined that the validity of the verification target block of the storage is not present. Meanwhile, the computer device 200 may determine that the verification target block of the storage has validity when it is not determined that there is no validity of the verification target block of the storage in each case.
이상에서와 같이, 본 발명의 실시예들에 따르면, 블록체인에 생성된 내용을 누구나 열람할 수 있도록 블록체인과는 다른 형식의 저장소에 저장되는 블록체인 데이터를 검증할 수 있다.As described above, according to the embodiments of the present invention, it is possible to verify the block chain data stored in a storage type different from the block chain so that anyone can view the contents created on the block chain.
이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 소프트웨어 구성요소 또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The system or device described above may be implemented as a hardware component, a software component, or a combination of a hardware component and a software component. For example, the devices and components described in the embodiments are, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA). , A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions, such as one or more general purpose computers or special purpose computers. The processing device may execute an operating system (OS) and one or more software applications executed on the operating system. In addition, the processing device may access, store, manipulate, process, and generate data in response to the execution of software. For the convenience of understanding, although it is sometimes described that one processing device is used, one of ordinary skill in the art, the processing device is a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it may include. For example, the processing device may include a plurality of processors or one processor and one controller. In addition, other processing configurations are possible, such as a parallel processor.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of these, configuring the processing unit to behave as desired or processed independently or collectively. You can command the device. Software and/or data may be interpreted by a processing device or to provide instructions or data to a processing device, of any type of machine, component, physical device, virtual equipment, computer storage medium or device. Can be embodyed in The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 통상의 기술자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 이러한 기록매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있으며, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and usable to a person skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -A hardware device specially configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like. Such a recording medium may be a variety of recording means or storage means in a form in which a single piece of hardware or several pieces of hardware are combined, and is not limited to a medium directly connected to a computer system, but may be distributed on a network. Examples of the program instructions include not only machine language codes such as those produced by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described by the limited embodiments and drawings as described above, various modifications and variations can be made from the above description to those of ordinary skill in the art. For example, the described techniques are performed in a different order from the described method, and/or components such as a system, structure, device, circuit, etc. described are combined or combined in a form different from the described method, or other components Alternatively, even if substituted or substituted by an equivalent, an appropriate result can be achieved.
그러므로, 다른 구현들, 다른 실시예들 및 청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims fall within the scope of the following claims.

Claims (20)

  1. 컴퓨터 장치가 수행하는 데이터 검증 방법에 있어서,In the data verification method performed by a computer device,
    상기 컴퓨터 장치가 포함하는 적어도 하나의 프로세서에 의해, 상기 블록체인으로부터 검증 대상 블록의 제1 블록정보를 조회하는 단계;Querying, by at least one processor included in the computer device, first block information of a block to be verified from the block chain;
    상기 적어도 하나의 프로세서에 의해, 상기 블록체인의 블록정보를 다른 구조로 저장하는 저장소로부터 상기 검증 대상 블록의 제2 블록정보를 조회하는 단계; 및Inquiring, by the at least one processor, second block information of the verification target block from a storage storing block information of the block chain in a different structure; And
    상기 적어도 하나의 프로세서에 의해, 상기 제1 블록정보 및 상기 제2 블록정보를 비교하여 상기 검증 대상 블록에 대한 상기 저장소에 저장된 제2 블록정보의 유효성을 검증하는 단계Comparing the first block information and the second block information by the at least one processor to verify the validity of the second block information stored in the storage for the verification target block
    를 포함하는 데이터 검증 방법.Data verification method comprising a.
  2. 제1항에 있어서,The method of claim 1,
    상기 제1 블록정보를 조회하는 단계는,Inquiring the first block information,
    N 개의 블록 하이트를 입력받는 단계; 및Receiving N block heights; And
    상기 N 개의 블록 하이트에 대응하는 N개의 블록 각각을 상기 검증 대상 블록으로 선정하여, 상기 검증 대상 블록 각각에 대해 제1 블록정보를 조회하는 단계Selecting each of the N blocks corresponding to the N block heights as the verification target block, and querying first block information for each of the verification target blocks
    를 포함하는 것을 특징으로 하는 데이터 검증 방법.Data verification method comprising a.
  3. 제1항에 있어서,The method of claim 1,
    상기 제1 블록정보를 조회하는 단계는,Inquiring the first block information,
    상기 블록체인의 마지막 블록 하이트(last block height)를 기준으로, 랜덤한 블록 하이트를 선출하여 상기 선출된 블록 하이트에 대응하는 블록의 블록정보를 상기 검증 대상 블록의 제1 블록정보로서 조회하는 것을 특징으로 하는 데이터 검증 방법.Based on the last block height of the block chain, a random block height is selected, and block information of a block corresponding to the selected block height is inquired as first block information of the block to be verified. Data verification method.
  4. 제1항에 있어서,The method of claim 1,
    상기 제1 블록정보를 조회하는 단계는,Inquiring the first block information,
    임의의 블록해시(blockhash) 또는 임의의 블록 하이트를 입력받아, 입력된 블록 해시 또는 블록 하이트에 대응하는 블록의 블록정보를 상기 검증 대상 블록의 제1 블록정보로서 조회하는 것을 특징으로 하는 데이터 검증 방법.Data verification, characterized in that by receiving an arbitrary block hash or an arbitrary block height, inquiring for block information of a block corresponding to the input block hash or block height as the first block information of the verification target block Way.
  5. 제1항에 있어서,The method of claim 1,
    상기 제2 블록정보를 조회하는 단계는,Inquiring the second block information,
    상기 조회된 제1 블록정보에 대응하는 블록해시 또는 블록 하이트를 이용하여 상기 저장소로부터 상기 제2 블록정보를 조회하는 것을 특징으로 하는 데이터 검증 방법.And querying the second block information from the storage using a block hash or a block height corresponding to the inquired first block information.
  6. 제1항에 있어서,The method of claim 1,
    상기 제2 블록정보를 조회하는 단계는,Inquiring the second block information,
    기설정된 서비스를 제공하고, 상기 저장소에 저장된 블록정보들을 처리하여 상기 기설정된 서비스를 통해 제공하는 블록체인 익스플로러를 통해 상기 조회된 제1 블록정보에 대응하는 블록해시 또는 블록 하이트에 대응하는 상기 제2 블록정보를 상기 저장소로부터 조회하는 것을 특징으로 하는 데이터 검증 방법.The block hash corresponding to the inquired first block information or the block hash corresponding to the block height through a block chain explorer that provides a preset service, processes block information stored in the storage, and provides through the preset service 2 Data verification method, characterized in that the block information is inquired from the storage.
  7. 제1항에 있어서,The method of claim 1,
    상기 유효성을 검증하는 단계는,The step of verifying the validity,
    상기 저장소로부터 상기 제2 블록정보가 조회되지 않는 경우, 상기 저장소의 상기 검증 대상 블록에 대한 유효성이 없는 것으로 결정하는 것을 특징으로 하는 데이터 검증 방법.When the second block information is not retrieved from the storage, it is determined that the validity of the verification target block of the storage is not present.
  8. 제1항에 있어서,The method of claim 1,
    상기 유효성을 검증하는 단계는,The step of verifying the validity,
    상기 제1 블록정보가 포함하는 블록해시와 상기 제2 블록정보가 포함하는 블록해시가 서로 동일하지 않은 경우, 상기 저장소의 상기 검증 대상 블록에 대한 유효성이 없는 것으로 결정하는 것을 특징으로 하는 데이터 검증 방법.When the block hash included in the first block information and the block hash included in the second block information are not identical to each other, it is determined that the validity of the verification target block in the storage is not present. Verification method.
  9. 제1항에 있어서,The method of claim 1,
    상기 유효성을 검증하는 단계는,The step of verifying the validity,
    상기 제1 블록정보에 대응하는 블록 하이트와 상기 제2 블록정보에 대응하는 블록 하이트가 서로 동일하지 않은 경우, 상기 저장소의 상기 검증 대상 블록에 대한 유효성이 없는 것으로 결정하는 것을 특징으로 하는 데이터 검증 방법.When a block height corresponding to the first block information and a block height corresponding to the second block information are not the same, determining that the validity of the verification target block in the storage is not present. .
  10. 제1항에 있어서,The method of claim 1,
    상기 유효성을 검증하는 단계는,The step of verifying the validity,
    상기 제2 블록정보에 거래정보가 포함되어 있지 않은 경우, 상기 저장소의 상기 검증 대상 블록에 대한 유효성이 없는 것으로 결정하는 것을 특징으로 하는 데이터 검증 방법.And if transaction information is not included in the second block information, it is determined that the verification target block in the storage is not valid.
  11. 제1항에 있어서,The method of claim 1,
    상기 유효성을 검증하는 단계는,The step of verifying the validity,
    상기 제1 블록정보가 포함하는 거래해시들과 상기 제2 블록정보가 포함하는 거래해시들이 서로 동일하지 않은 경우, 상기 저장소의 상기 검증 대상 블록에 대한 유효성이 없는 것으로 결정하는 것을 특징으로 하는 데이터 검증 방법.When the transaction hashes included in the first block information and the transaction hashes included in the second block information are not identical to each other, it is determined that the validity of the verification target block in the storage is not present. Verification method.
  12. 제1항에 있어서,The method of claim 1,
    상기 저장소는 서비스의 제공을 위해, 상기 블록체인의 블록체인 데이터를 상기 블록체인과는 다른 구조로 저장하는 비-일시적인(non-transitory) 저장소로서 비관계형(non-relational) 데이터베이스 관리 시스템을 포함하는 것을 특징으로 하는 데이터 검증 방법.The storage includes a non-relational database management system as a non-transitory storage that stores the blockchain data in a structure different from the blockchain for the provision of services. Data verification method, characterized in that.
  13. 컴퓨터 장치와 결합되어 제1항 내지 제12항 중 어느 한 항의 방법을 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.A computer program combined with a computer device and stored on a computer-readable recording medium for executing the method of claim 1 on a computer device.
  14. 제1항 내지 제12항 중 어느 한 항의 방법을 컴퓨터 장치에 실행시키기 위한 컴퓨터 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터 판독 가능한 기록매체.A computer readable recording medium having a computer program recorded thereon for executing the method of any one of claims 1 to 12 on a computer device.
  15. 컴퓨터 장치에 있어서,In the computer device,
    상기 컴퓨터 장치에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서At least one processor embodied to execute instructions readable by the computer device
    를 포함하고,Including,
    상기 적어도 하나의 프로세서에 의해,By the at least one processor,
    상기 블록체인으로부터 검증 대상 블록의 제1 블록정보를 조회하고,Inquiring the first block information of the block to be verified from the blockchain,
    상기 블록체인의 블록정보를 다른 구조로 저장하는 저장소로부터 상기 검증 대상 블록의 제2 블록정보를 조회하고,Inquiring the second block information of the verification target block from a storage storing the block information of the block chain in a different structure,
    상기 제1 블록정보 및 상기 제2 블록정보를 비교하여 상기 검증 대상 블록에 대한 상기 저장소에 저장된 제2 블록정보의 유효성을 검증하는 것Comparing the first block information and the second block information to verify the validity of the second block information stored in the storage for the verification target block
    을 특징으로 하는 컴퓨터 장치.Computer device, characterized in that.
  16. 제15항에 있어서,The method of claim 15,
    상기 적어도 하나의 프로세서에 의해,By the at least one processor,
    N 개의 블록 하이트를 입력받고,It receives N block heights,
    상기 N 개의 블록 하이트에 대응하는 N개의 블록 각각을 상기 검증 대상 블록으로 선정하여, 상기 검증 대상 블록 각각에 대해 제1 블록정보를 조회하는 것Selecting each of the N blocks corresponding to the N block heights as the verification target block, and inquiring for first block information for each of the verification target blocks
    을 특징으로 하는 컴퓨터 장치.Computer device, characterized in that.
  17. 제15항에 있어서,The method of claim 15,
    상기 적어도 하나의 프로세서에 의해,By the at least one processor,
    상기 블록체인의 마지막 블록 하이트(last block height)를 기준으로, 랜덤한 블록 하이트를 선출하여 상기 선출된 블록 하이트에 대응하는 블록의 블록정보를 상기 검증 대상 블록의 제1 블록정보로서 조회하는 것Selecting a random block height based on the last block height of the block chain, and inquiring for block information of a block corresponding to the selected block height as the first block information of the block to be verified
    을 특징으로 하는 컴퓨터 장치.Computer device, characterized in that.
  18. 제15항에 있어서,The method of claim 15,
    상기 적어도 하나의 프로세서에 의해,By the at least one processor,
    임의의 블록해시(blockhash) 또는 임의의 블록 하이트를 입력받아, 입력된 블록 해시 또는 블록 하이트에 대응하는 블록의 블록정보를 상기 검증 대상 블록의 제1 블록정보로서 조회하는 것Receiving an arbitrary block hash or an arbitrary block height, and inquiring the block information of the block corresponding to the input block hash or block height as the first block information of the verification target block
    을 특징으로 하는 컴퓨터 장치.Computer device, characterized in that.
  19. 제15항에 있어서,The method of claim 15,
    상기 적어도 하나의 프로세서에 의해,By the at least one processor,
    상기 조회된 제1 블록정보에 대응하는 블록해시 또는 블록 하이트를 이용하여 상기 저장소로부터 상기 제2 블록정보를 조회하는 것Retrieving the second block information from the storage using a block hash or block height corresponding to the inquired first block information
    을 특징으로 하는 컴퓨터 장치.Computer device, characterized in that.
  20. 제15항에 있어서,The method of claim 15,
    상기 적어도 하나의 프로세서에 의해,By the at least one processor,
    기설정된 서비스를 제공하고, 상기 저장소에 저장된 블록정보들을 처리하여 상기 기설정된 서비스를 통해 제공하는 블록체인 익스플로러를 통해 상기 조회된 제1 블록정보에 대응하는 블록해시 또는 블록 하이트에 대응하는 상기 제2 블록정보를 상기 저장소로부터 조회하는 것The block hash corresponding to the inquired first block information or the block hash corresponding to the block height through the block chain explorer that provides a preset service and processes block information stored in the storage to provide through the preset service 2 Inquiring block information from the storage
    을 특징으로 하는 컴퓨터 장치.Computer device, characterized in that.
PCT/KR2019/004684 2019-04-18 2019-04-18 Method and system for verifying block-chain data stored in storage having different format from block-chain WO2020213763A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/KR2019/004684 WO2020213763A1 (en) 2019-04-18 2019-04-18 Method and system for verifying block-chain data stored in storage having different format from block-chain
JP2021560366A JP2022539283A (en) 2019-04-18 2019-04-18 A method and system for validating blockchain data stored in a storage format different from the blockchain
KR1020217024823A KR102542631B1 (en) 2019-04-18 2019-04-18 Method and system for verifying blockchain data stored in a storage format different from blockchain

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2019/004684 WO2020213763A1 (en) 2019-04-18 2019-04-18 Method and system for verifying block-chain data stored in storage having different format from block-chain

Publications (1)

Publication Number Publication Date
WO2020213763A1 true WO2020213763A1 (en) 2020-10-22

Family

ID=72838265

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/004684 WO2020213763A1 (en) 2019-04-18 2019-04-18 Method and system for verifying block-chain data stored in storage having different format from block-chain

Country Status (3)

Country Link
JP (1) JP2022539283A (en)
KR (1) KR102542631B1 (en)
WO (1) WO2020213763A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023078200A1 (en) * 2021-11-08 2023-05-11 支付宝(杭州)信息技术有限公司 Block migration

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102435349B1 (en) * 2021-11-05 2022-08-23 주식회사 스마트엠투엠 Method and system for processing de-identified sensing data in private blockchain
KR102487849B1 (en) * 2021-11-11 2023-01-12 주식회사 미임팩트 Device for preventing forgery of sensitive information based on blockchain and method thereof
KR102508503B1 (en) * 2022-10-20 2023-03-22 주식회사 한강 벤쳐스 Private Blockchain-Based Control System

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108418876A (en) * 2018-02-09 2018-08-17 北京众享比特科技有限公司 Store proof of work method and system, motivational techniques and system
CN108734453A (en) * 2018-05-21 2018-11-02 腾讯科技(深圳)有限公司 Block chain data processing method, device, computer equipment and storage medium
WO2019014592A1 (en) * 2017-07-14 2019-01-17 Alibaba Group Holding Limited Blockchain based data processing method and device
KR20190008163A (en) * 2018-11-27 2019-01-23 한국과학기술원 Method and system for tracking transaction of the user personal information based in blockchain
JP2019029019A (en) * 2017-07-28 2019-02-21 株式会社日立製作所 Block-chain logging of data from multiple systems

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6731783B2 (en) * 2016-05-19 2020-07-29 株式会社野村総合研究所 Tamper detection system and tamper detection method
CN109299336B (en) * 2018-09-30 2022-07-01 腾讯科技(深圳)有限公司 Data backup method and device, storage medium and computing equipment
CN109558276A (en) * 2018-11-30 2019-04-02 弗洛格(武汉)信息科技有限公司 Block chain standby system, backup method and block chain verification method, verifying system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019014592A1 (en) * 2017-07-14 2019-01-17 Alibaba Group Holding Limited Blockchain based data processing method and device
JP2019029019A (en) * 2017-07-28 2019-02-21 株式会社日立製作所 Block-chain logging of data from multiple systems
CN108418876A (en) * 2018-02-09 2018-08-17 北京众享比特科技有限公司 Store proof of work method and system, motivational techniques and system
CN108734453A (en) * 2018-05-21 2018-11-02 腾讯科技(深圳)有限公司 Block chain data processing method, device, computer equipment and storage medium
KR20190008163A (en) * 2018-11-27 2019-01-23 한국과학기술원 Method and system for tracking transaction of the user personal information based in blockchain

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023078200A1 (en) * 2021-11-08 2023-05-11 支付宝(杭州)信息技术有限公司 Block migration

Also Published As

Publication number Publication date
JP2022539283A (en) 2022-09-08
KR102542631B1 (en) 2023-06-13
KR20210102470A (en) 2021-08-19

Similar Documents

Publication Publication Date Title
US20230360036A1 (en) Blockchain-implemented method and system for access control on remote internet-enabled resources
WO2020213763A1 (en) Method and system for verifying block-chain data stored in storage having different format from block-chain
JP6877448B2 (en) Methods and systems for guaranteeing computer software using distributed hash tables and blockchain
WO2018043865A2 (en) Blockchain-based file management/search system and file management/search method
CN110603559A (en) System and method for parallel validation of blockchain transactions
CN110771127B (en) Method and system for consistent distributed memory pools in a blockchain network
US9560043B2 (en) Biometric-based wireless device association
CN108769230A (en) Transaction data storage method, device, server and storage medium
WO2021137396A1 (en) Zero-knowledge proof-based certificate service method using blockchain network, certification support server using same, and user terminal using same
CN108600250A (en) Authentication method
WO2024090845A1 (en) Method for authenticating ownership of blockchain wallet without signature function, and system using same
WO2020096072A1 (en) Method and system for efficiently processing, in block-chain, high transaction throughput required by dapp
CN110855688B (en) Block chain information processing method and related equipment
CN115114372A (en) Data processing method, device and equipment based on block chain and readable storage medium
KR102204403B1 (en) Transaction processing system and method enabling extension of block chain
KR102111544B1 (en) DAG-based blockchain with scalability
KR102139551B1 (en) Method and server for managing testament
WO2018110723A1 (en) Payment method and system
JP2023521901A (en) Mobile application forgery/falsification detection method, computer program, computer-readable recording medium and computer device using user identifier and signature collection
WO2021125399A1 (en) Escrow transaction method and system using smart contract in blockchain
WO2019240305A1 (en) Method, system, and non-transitory computer-readable recording medium for processing chat room on basis of degree of use
KR102671062B1 (en) Method and system for secret transaction
WO2022055024A1 (en) Extension cryptographic operation processing system and method
WO2023239080A1 (en) Virtual asset transfer method for preventing incorrect deposit
CN117057806B (en) Data processing method and device based on block chain and related equipment

Legal Events

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

Ref document number: 19925124

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 20217024823

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2021560366

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19925124

Country of ref document: EP

Kind code of ref document: A1