KR20230156590A - Blockchain system with external storage table and data operation method - Google Patents

Blockchain system with external storage table and data operation method Download PDF

Info

Publication number
KR20230156590A
KR20230156590A KR1020220056206A KR20220056206A KR20230156590A KR 20230156590 A KR20230156590 A KR 20230156590A KR 1020220056206 A KR1020220056206 A KR 1020220056206A KR 20220056206 A KR20220056206 A KR 20220056206A KR 20230156590 A KR20230156590 A KR 20230156590A
Authority
KR
South Korea
Prior art keywords
external storage
data
storage table
blockchain
blockchain system
Prior art date
Application number
KR1020220056206A
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 KR1020220056206A priority Critical patent/KR20230156590A/en
Publication of KR20230156590A publication Critical patent/KR20230156590A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명의 스마트 컨트랙트를 위한 블록체인 시스템은, 스마트 컨트랙트에 대한 분산 원장을 참여자 간 공유하는 블록체인 네트워크를 구성하는 노드들; 및 상기 분산 원장과 더불어 상기 스마트 컨트랙트를 위한 데이터를 저장하는 외부 저장소를 포함하되,
각 노드는, 스마트 컨트랙트를 위해 상기 외부 저장소에 저장된 데이터에 대한 정리된 정보를 보관하는 외부 저장소 테이블을 구비할 수 있다.
The blockchain system for smart contracts of the present invention includes nodes constituting a blockchain network that shares a distributed ledger for smart contracts among participants; And an external storage that stores data for the smart contract along with the distributed ledger,
Each node may be equipped with an external storage table that stores organized information about data stored in the external storage for smart contracts.

Description

외부 저장소 테이블을 구비하는 블록체인 시스템 및 데이터 운용 방법{BLOCKCHAIN SYSTEM WITH EXTERNAL STORAGE TABLE AND DATA OPERATION METHOD}Blockchain system and data operation method with an external storage table {BLOCKCHAIN SYSTEM WITH EXTERNAL STORAGE TABLE AND DATA OPERATION METHOD}

본 발명은 메인메모리에서 사용하는 페이징 기법의 페이지 테이블에서 착안하여 블록체인의 외부 저장소에 저장되는 데이터 관리를 용이하게 하고, 외부 저장소의 저장공간을 절약하고 추가적인 데이터 전송을 방지하여 빠른 스마트 컨트랙트 실행할 수 있는 블록체인 시스템 및 그 데이터 운용 방법에 관한 것이다.The present invention is inspired by the page table of the paging technique used in main memory to facilitate the management of data stored in the external storage of the blockchain, save storage space in the external storage, and prevent additional data transfer to enable fast smart contract execution. It is about the blockchain system and its data operation method.

스마트 컨트랙트는 분산 원장으로서 블록체인에서 거래의 일정 조건을 만족시키면 당사자 간에 자동으로 거래가 체결되는 기술이다. 블록체인의 참여자들에게 동일한 원장을 유지함으로써 제3의 신뢰기관이 없더라도 저장된 데이터에 대한 위변조를 막는 기술이다. 같은 데이터를 유지하기 위해 참여자들은 합의 알고리즘으로 데이터의 일관성을 유지한다. 사용자은 블록체인에 참여한 참여자들에게 그들의 데이터 및 신호를 전달하면, 참여자들은 조건이 만족하면 자동으로 수행되는 스마트 컨트랙트를 실행한다. 실행결과는 다른 참여자들 모두 검증을 통하여 올바른 도출인지 확인하고 결과를 블록체인에 저장한다.Smart contract is a distributed ledger, a technology that automatically concludes a transaction between parties when certain transaction conditions are met on the blockchain. It is a technology that prevents forgery and alteration of stored data even without a third party trust agency by maintaining the same ledger for blockchain participants. To maintain the same data, participants maintain data consistency using a consensus algorithm. When users deliver their data and signals to participants in the blockchain, the participants execute a smart contract that is automatically executed when conditions are met. The execution results are verified by all other participants to ensure that they are derived correctly, and the results are stored in the blockchain.

블록체인에 저장된 데이터는 해시 함수로 처리되어 다음 데이터를 해시 처리할 때 포함되기 때문에 이전 데이터의 삭제가 불가능하다. 그렇기 때문에 보관 기간이 정해진 데이터의 경우, 블록체인에 저장하면 삭제가 불가능하여 법을 어기는 사례가 발생할 수 있다. Data stored in the blockchain is processed with a hash function and included when hashing the next data, making it impossible to delete previous data. Therefore, in the case of data with a set retention period, it cannot be deleted if stored on the blockchain, which may lead to cases of violation of the law.

블록체인은 참여자간 네트워크로 유지되며, 네트워크의 부하 및 블록체인의 성능 하향을 방지하기 위해 데이터 용량이 큰 경우 블록체인에 큰 용량의 데이터를 해시 처리하여 저장한다.Blockchain is maintained as a network between participants, and in order to prevent network load and a decrease in blockchain performance, large amounts of data are hashed and stored in the blockchain when the data volume is large.

위에서 언급한 두 가지 문제를 해결하기 위하여, 블록체인은 외부 저장소를 따로 두어 보관 기간이 정해진 문서나 개인정보, 또는 용량이 큰 그림 및 pdf 파일을 저장한다.To solve the two problems mentioned above, blockchain sets up a separate external storage to store documents or personal information with a fixed retention period, or large pictures and PDF files.

처리 과정에 간섭하지 않는 독립된 스마트 컨트랙트에서 요구하는 문서 또는 파일이 있으면, 서로 다른 스마트 컨트랙트는 각자 동작하면 동일한 문서를 요구하고 이를 외부 저장소에 저장할 것이다. 외부 저장소에 저장되는 데이터의 종류는 일반적으로 문서 또는 파일 등으로 블록체인에 저장되기에는 용량이 큰 데이터나 보관 기간이 정해진 개인정보 등의 삭제가 필요한 데이터이다. If there is a document or file required by an independent smart contract that does not interfere with the processing process, different smart contracts will request the same document when they operate and store it in external storage. The types of data stored in external storage are generally documents or files that are too large to be stored on the blockchain, or data that needs to be deleted, such as personal information with a fixed storage period.

중복된 데이터를 저장소에 저장하면 저장소 자원의 소모 속도가 빠르며, 이는 블록체인의 유지비용 증가를 야기한다. 또한, 스마트 컨트랙트의 조건으로 문서 또는 파일을 요구한다면 이미 데이터가 외부 저장소에 있음에도 불구하고 데이터를 준비하고 등록하는 시간 동안 스마트 컨트랙트가 대기하여 불필요한 시간이 낭비된다.When duplicate data is stored in storage, storage resources are consumed quickly, which increases blockchain maintenance costs. Additionally, if a document or file is required as a condition of a smart contract, the smart contract waits while preparing and registering the data even though the data is already in external storage, resulting in unnecessary time being wasted.

예컨대, 상술한 중복된 데이터 저장의 문제는, 단일 블록체인 네트워크에서 하나의 단일 스마트 컨트랙트를 진행시킬 때에는 서로 다른 당사자들 또는 서로 다른 시점에 동일한 파일(데이터)를 외부 저장소에 업로드함에 의해 발생될 수 있다.For example, the above-mentioned problem of duplicate data storage can be caused by uploading the same file (data) to external storage by different parties or at different times when processing a single smart contract on a single blockchain network. there is.

그런데, 하나의 블록체인 네트워크에서 여러 개의 스마트 컨트랙트들을 진행하는 것이 보다 일반적인데, 하나의 블록체인 네트워크에서 여러 개의 스마트 컨트랙트들을 진행하는 경우, 중복된 데이터 저장의 비효율 문제는 더욱 악화된다.However, it is more common to run multiple smart contracts on one blockchain network, and when multiple smart contracts are run on one blockchain network, the inefficiency problem of duplicate data storage becomes even worse.

대한민국 공개공보 제10-2020-0126794호Republic of Korea Publication No. 10-2020-0126794

본 발명은 스마트 컨트랙트에 있어서 데이터 중복 저장을 방지하여 추가 데이터 요청 없이 빠른 처리가 가능하고 효율적인 대용량 데이터의 저장 및 운용을 지원하는 외부 저장소 테이블을 구비하는 블록체인 시스템 및 그 데이터 운용 방법을 제공하고자 한다.The present invention seeks to provide a blockchain system and a data operation method that prevents duplicate data storage in smart contracts, enables fast processing without additional data requests, and has an external storage table that supports efficient storage and operation of large amounts of data. .

본 발명의 일 측면에 따른 스마트 컨트랙트를 위한 블록체인 시스템은, 스마트 컨트랙트에 대한 분산 원장을 참여자 간 공유하는 블록체인 네트워크를 구성하는 노드들; 및 상기 분산 원장과 더불어 상기 스마트 컨트랙트를 위한 데이터를 저장하는 외부 저장소를 포함하되,A blockchain system for smart contracts according to one aspect of the present invention includes nodes constituting a blockchain network that shares a distributed ledger for smart contracts between participants; And an external storage that stores data for the smart contract along with the distributed ledger,

각 노드는, 스마트 컨트랙트를 위해 상기 외부 저장소에 저장된 데이터에 대한 정리된 정보를 보관하는 외부 저장소 테이블을 구비할 수 있다.Each node may be equipped with an external storage table that stores organized information about data stored in the external storage for smart contracts.

여기서, 상기 각 노드는, 상기 외부 저장소의 데이터를 검증하는 검증관리 모듈; 및 상기 외부 저장소에 대한 보안 정책을 담당하는 저장공간 접근제어정책 모듈을 더 포함할 수 있다.Here, each node includes a verification management module that verifies data in the external storage; And it may further include a storage space access control policy module responsible for security policy for the external storage.

여기서, 상기 블록체인 네트워크는 다수 개의 스마트 컨트랙트들을 진행하며, 상기 저장공간 접근제어정책 모듈은, 상기 외부 저장소에 저장될 수 있는 각 데이터에 대하여 접근가능한 스마트 컨트랙트를 상기 다수 개의 스마트 컨트랙트들 중에서 지정할 수 있다.Here, the blockchain network processes a plurality of smart contracts, and the storage space access control policy module can designate a smart contract that can access each data that can be stored in the external storage from among the plurality of smart contracts. there is.

여기서, 상기 보안 정책은, 해당 블록체인을 운영하는 관리자가 지정하거나, 또는, 상기 블록체인 네트워크의 참여자들의 투표를 통하여 결정될 수 있다.Here, the security policy may be designated by an administrator who operates the blockchain, or may be determined through voting by participants in the blockchain network.

여기서, 상기 검증관리 모듈의 의뢰에 따른 데이터를 검증하는 검증 서버를 더 포함할 수 있다.Here, it may further include a verification server that verifies data requested by the verification management module.

여기서, 상기 외부 저장소 테이블은, 상기 스마트 컨트랙트에 필요한 데이터에 대하여, 각 데이터 항목의 상기 외부 저장소 테이블에서의 존재 여부를 확인시키고, 각 데이터 항목에 대하여 상기 외부 저장소의 해당 데이터가 존재하는지 확인시킬 수 있다.Here, the external storage table can confirm the existence of each data item in the external storage table for the data required for the smart contract, and confirm whether the corresponding data in the external storage exists for each data item. there is.

여기서, 상기 노드는, 스마트 컨트랙트를 실행하여 상기 분산 원장에 블록을 추가할 때, 상기 외부 저장소 테이블을 확인하여 필요한 데이터를 외부 저장소에서 확보할 수 있다.Here, when the node executes a smart contract to add a block to the distributed ledger, it can secure the necessary data from the external storage by checking the external storage table.

여기서, 상기 노드는, 상기 외부 저장소 테이블에 기재되지 않은 데이터를 외부로부터 새로 입력받으면, 상기 외부 저장소에 상기 기재되지 않은 데이터를 업로드하고, 상기 외부 저장소 테이블을 갱신하며, 상기 블록체인 네트워크에 속한 다른 노드들에 외부 저장소 테이블 갱신 정보를 전송할 수 있다.Here, when the node receives new data from the outside that is not listed in the external storage table, it uploads the unlisted data to the external storage, updates the external storage table, and updates other data in the blockchain network. External storage table update information can be transmitted to nodes.

여기서, 상기 다른 노드들은, 상기 외부 저장소 테이블 갱신 정보에 따라, 상기 외부 저장소에 접근하여 소정의 합의 알고리즘에 기반하여 업로드된 데이터를 검증할 수 있다.Here, the other nodes can access the external storage according to the external storage table update information and verify the uploaded data based on a predetermined consensus algorithm.

여기서, 상기 검증관리 모듈은, 상기 외부 저장소에 저장할 데이터에 대하여 발급 기관이 존재하는 경우, 상기 발급 기관으로부터 해당 데이터를 받아서 상기 외부 저장소에 업로드할 수 있다.Here, if an issuing agency exists for the data to be stored in the external storage, the verification management module can receive the data from the issuing agency and upload it to the external storage.

본 발명의 다른 측면에 따른 블록체인 시스템에서의 데이터 운용 방법은, 스마트 컨트랙트에 대한 분산 원장을 참여자 간 공유하는 블록체인 네트워크를 구성하는 노드들과, 상기 분산 원장과 더불어 상기 스마트 컨트랙트를 위한 데이터를 저장하는 외부 저장소와, 스마트 컨트랙트를 위해 상기 외부 저장소에 저장된 데이터에 대한 정리된 정보를 보관하는 외부 저장소 테이블을 구비하는 블록체인 시스템에서의 데이터 운용 방법으로서,A data operation method in a blockchain system according to another aspect of the present invention includes nodes constituting a blockchain network that share a distributed ledger for a smart contract between participants, and data for the smart contract along with the distributed ledger. A data operation method in a blockchain system that includes an external storage for storing data and an external storage table for storing organized information about data stored in the external storage for smart contracts,

클라이언트 요청으로 스마트 컨트랙트 진행을 위해 필요한 데이터에 대하여, 상기 외부 저장소 테이블에서 해당 데이터 항목을 확인하는 단계; 상기 외부 저장소 테이블의 상기 데이터 항목에 대한 유효 접근인지 확인하는 단계; 유효 접근이면 상기 외부 저장소 테이블의 기재 정보에 따라 해당 데이터가 저장된 상기 외부 저장소의 위치에 접근하는 단계; 및 상기 위치에서 상기 해당 데이터를 확보하는 단계를 포함할 수 있다.For data required to proceed with a smart contract at a client request, checking the corresponding data item in the external storage table; confirming valid access to the data item in the external storage table; If access is valid, accessing the location of the external storage where the corresponding data is stored according to information described in the external storage table; and securing the corresponding data at the location.

여기서, 상기 외부 저장소 테이블에서 해당 데이터 항목을 확인하는 단계 이전에, 상기 클라이언트가 상기 블록체인 네트워크에 속한 노드에게 스마트 컨트랙트 동작을 요청하는 단계; 및 상기 블록체인 네트워크가 상기 블록체인의 합의 알고리즘을 통해 스마트 컨트랙트를 동작시키는 단계를 더 포함할 수 있다.Here, before confirming the corresponding data item in the external storage table, the client requests a smart contract operation from a node belonging to the blockchain network; And it may further include the step of the blockchain network operating a smart contract through the consensus algorithm of the blockchain.

여기서, 상기 유효 접근인지 확인하는 단계의 수행 결과 유효한 접근이 아닌 경우, 상기 클라이언트에 데이터를 요청하는 단계; 상기 클라이언트로부터 상기 데이터를 받아 스마트 컨트랙트를 실행하고, 외부 저장소에 용량이 크거나 삭제할 필요성이 있는 데이터를 저장하는 단계; 및 저장 후 상기 외부 저장소 테이블에 데이터의 정보를 기재하는 단계를 더 포함할 수 있다.Here, if the access is not valid as a result of checking whether the access is valid, requesting data from the client; Receiving the data from the client, executing a smart contract, and storing data that has a large capacity or needs to be deleted in external storage; And it may further include the step of writing data information in the external storage table after saving.

여기서, 상기 외부 저장소의 위치에 접근하는 단계에서 데이터가 상기 외부 저장소에 없는 것을 확인하면, 상기 클라이언트에 데이터를 요청하는 단계; 상기 클라이언트로부터 상기 데이터를 받아 스마트 컨트랙트를 실행하고, 외부 저장소에 용량이 크거나 삭제할 필요성이 있는 데이터를 저장하는 단계; 및 저장 후 상기 외부 저장소 테이블에 데이터의 정보를 기재하는 단계를 더 포함할 수 있다.Here, when it is confirmed that data is not in the external storage in the step of accessing the location of the external storage, requesting data from the client; Receiving the data from the client, executing a smart contract, and storing data that has a large capacity or needs to be deleted in external storage; And it may further include the step of writing data information in the external storage table after saving.

여기서, 상기 외부 저장소로 상기 데이터를 저장함에 대하여, 상기 외부 저장소 테이블 갱신을, 상기 블록체인 네트워크의 다른 노드들에게 전파하는 단계; 및 상기 다른 노드들에서 상기 외부 저장소로 접근하여 해당 데이터의 위변조 여부를 검증하는 단계를 더 포함할 수 있다.Here, for storing the data in the external storage, propagating the external storage table update to other nodes in the blockchain network; and accessing the external storage from the other nodes to verify whether the corresponding data has been forged or altered.

상술한 구성의 본 발명의 사상에 따른 외부 저장소 테이블을 구비하는 블록체인 시스템에서의 데이터 운용 방법 및/또는 블록체인 시스템을 실시하면, 스마트 컨트랙트에 있어서 데이터 중복 저장을 방지하여 추가 데이터 요청 없이 빠른 처리가 가능하고 계약에 필요한 대용량 데이터를 효율적으로 운용할 수 있는 이점이 있다.By implementing the data operation method and/or blockchain system in a blockchain system with an external storage table according to the spirit of the present invention of the above-described configuration, duplicate data storage in smart contracts is prevented and fast processing is achieved without additional data requests. It is possible and has the advantage of being able to efficiently operate large amounts of data required for contracts.

구체적으로, 본 발명에 따른 외부 저장소 테이블을 이용한 저장공간 낭비 방지 및 스마트 컨트랙트 대기시간 절약 방법은 동작한 스마트 컨트랙트가 저장한 데이터에 대하여 독립된 스마트 컨트랙트가 추가 데이터 요청 없이 빠른 처리가 가능하고 중복된 데이터 저장을 방지할 수 있다.Specifically, the method of preventing wasted storage space and saving smart contract waiting time using an external storage table according to the present invention allows an independent smart contract to quickly process data stored by an activated smart contract without requesting additional data and eliminates duplicate data. Saving can be prevented.

본 발명의 외부 저장소 테이블을 구비하는 블록체인 시스템에서의 데이터 운용 방법 및/또는 블록체인 시스템은, 외부 저장소 직접 접근하지 않고 저장된 데이터를 빠르게 확인할 수 있으며, 접근제한으로 보안성을 높일 수 있으며, 블록체인에 저장될 문서의 위변조를 확인하여 신뢰성을 향상시키는 이점이 있다.The data operation method and/or blockchain system in a blockchain system equipped with an external storage table of the present invention can quickly check stored data without directly accessing the external storage, and can increase security by restricting access. It has the advantage of improving reliability by checking for forgery and alteration of documents to be stored in the chain.

도 1은 본 발명의 사상에 따른 스마트 컨트랙트를 위한 블록체인 시스템을 구성하는 노드의 일 실시예를 도시한 블록도.
도 2는 도 1에 도시한 노드를 이용하여 구성한 스마트 컨트랙트를 위한 블록체인 시스템의 일 예를 도시한 구성도.
도 3은 도 1에 도시한 노드를 이용하여 구성한 스마트 컨트랙트를 위한 블록체인 시스템의 다른 예를 도시한 구성도.
도 4a 및 4b는 종래기술의 방법과 본 발명의 외부 저장소 테이블을 이용한 저장공간 낭비 방지 및 스마트 컨트랙트 대기시간 절약 방법을 비교한 절차 개념도들.
도 5는 도 1은 본 발명의 사상에 따른 외부 저장소 테이블을 구비하는 블록체인 시스템에서의 데이터 운용 방법의 일 실시예를 도시한 흐름도.
도 6은 도 5의 흐름도의 상세 과정들의 일 예를 도시한 상세 흐름도.
1 is a block diagram showing an embodiment of a node constituting a blockchain system for smart contracts according to the spirit of the present invention.
FIG. 2 is a configuration diagram showing an example of a blockchain system for a smart contract constructed using the node shown in FIG. 1.
FIG. 3 is a configuration diagram showing another example of a blockchain system for a smart contract constructed using the node shown in FIG. 1.
Figures 4a and 4b are procedural conceptual diagrams comparing the method of the prior art and the method of preventing storage space waste and saving smart contract waiting time using an external storage table of the present invention.
Figure 5 is a flowchart showing an embodiment of a data operation method in a blockchain system having an external storage table according to the spirit of the present invention.
FIG. 6 is a detailed flowchart showing an example of the detailed processes of the flowchart of FIG. 5.

본 발명을 설명함에 있어서 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되지 않을 수 있다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. In describing the present invention, terms such as first and second may be used to describe various components, but the components may not be limited by the terms. Terms are intended only to distinguish one component from another. For example, a first component may be referred to as a second component, and similarly, the second component may be referred to as a first component without departing from the scope of the present invention.

어떤 구성요소가 다른 구성요소에 연결되어 있다거나 접속되어 있다고 언급되는 경우는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해될 수 있다.When a component is mentioned as being connected or connected to another component, it can be understood that it may be directly connected to or connected to the other component, but other components may exist in between. .

본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. The terms used herein are only used to describe specific embodiments and are not intended to limit the invention. Singular expressions may include plural expressions, unless the context clearly indicates otherwise.

본 명세서에서, 포함하다 또는 구비하다 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것으로서, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해될 수 있다. In this specification, terms such as include or have are intended to designate the presence of features, numbers, steps, operations, components, parts, or combinations thereof described in the specification, including one or more other features or numbers, It can be understood that the existence or addition possibility of steps, operations, components, parts, or combinations thereof is not excluded in advance.

또한, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.Additionally, the shapes and sizes of elements in the drawings may be exaggerated for clearer explanation.

본 발명의 사상은 외부 저장소 테이블을 도입하여 외부 저장소 저장 공간의 낭비를 방지하고, 스마트 컨트랙트 수행시 필요 파일 확보 및 처리에 소요되 대기 시간을 단축시킬 수 있는 구체적인 방안을 제시함에 있다.The idea of the present invention is to introduce a specific method to prevent waste of external storage storage space by introducing an external storage table and to reduce the waiting time required for securing and processing necessary files when executing a smart contract.

본 발명이 제안하는 외부 저장소 테이블은, 스마트 컨트랙트에 있어서 데이터 용량이 크거나 삭제해야 하는 데이터를 저장하는 외부 저장소에 저장된 데이터들의 저장 현황 리포팅으로서 요약 테이블이나 목록 같은 정리된 정보를 보관한다. 관점에 따라 외부 저장소에 형성되는 저장 데이터 구조체에 대한 일종의 템플릿 및/또는 저장 현황 리포팅 자료와 유사한 기능을 가진다고 볼 수 있다.The external storage table proposed by the present invention stores organized information such as a summary table or list as a storage status report of data stored in an external storage that stores data that has a large data capacity or needs to be deleted in a smart contract. Depending on the perspective, it can be seen as having a similar function to a kind of template and/or storage status reporting data for the stored data structure formed in external storage.

도 1은 본 발명의 사상에 따른 스마트 컨트랙트를 위한 블록체인 시스템을 구성하는 노드의 일 실시예를 도시한 블록도이다.Figure 1 is a block diagram showing an embodiment of a node constituting a blockchain system for a smart contract according to the spirit of the present invention.

도 2는 도 1에 도시한 노드를 이용하여 구성한 스마트 컨트랙트를 위한 블록체인 시스템의 일 예를 도시한 구성도이다.FIG. 2 is a configuration diagram showing an example of a blockchain system for a smart contract constructed using the node shown in FIG. 1.

도 2에 도시된 바와 같이 본 발명에 따른 외부 저장소 테이블(110)을 이용한 저장공간 낭비 방지 및 스마트 컨트랙트 대기시간 절약 방법을 위한 시스템 구성은, 노드들(100, 100-1~N), 블록체인 네트워크(200), 외부 저장소(300)를 포함한다.As shown in FIG. 2, the system configuration for preventing storage space waste and saving smart contract waiting time using the external storage table 110 according to the present invention includes nodes 100, 100-1 to N, and blockchain. Includes a network 200 and external storage 300.

즉, 도시한 스마트 컨트랙트를 위한 블록체인 시스템은, 스마트 컨트랙트에 대한 분산 원장을 참여자 간 공유하는 블록체인 네트워크를 구성하는 노드들(100, 100-1 ~ N)); 및 상기 분산 원장과 더불어 상기 스마트 컨트랙트를 위한 데이터를 저장하는 외부 저장소(300)를 포함한다.That is, the blockchain system for smart contracts shown includes nodes (100, 100-1 to N) that constitute a blockchain network that shares the distributed ledger for smart contracts among participants; and an external storage 300 that stores data for the smart contract along with the distributed ledger.

본 발명의 사상에 따라 각 노드(100)는, 스마트 컨트랙트를 위해 상기 외부 저장소(300)에 저장된 데이터에 대한 정리된 정보를 보관하는 외부 저장소 테이블(110)을 구비한다.According to the spirit of the present invention, each node 100 is provided with an external storage table 110 that stores organized information about data stored in the external storage 300 for smart contracts.

또한, 상기 노드(100)는, 도 1에 도시한 바와 같이, 상기 외부 저장소(300)의 데이터를 검증하는 검증관리 모듈(140); 및 상기 외부 저장소(300)에 대한 보안 정책을 담당하는 저장공간 접근제어정책 모듈(130)을 더 포함할 수 있다.In addition, the node 100, as shown in FIG. 1, includes a verification management module 140 that verifies data in the external storage 300; And it may further include a storage space access control policy module 130 that is responsible for the security policy for the external storage 300.

블록체인 네트워크를 각 노드들(100, 100-1 ~ N)은, 도 1에 도시한 바와 같이, 일반적인 블록체인 네트워크를 운용하기 위한 구성요소들로서, 블록체인 네트워크에서 합의된 내용을 위조불가능하게 기록하는 분산 원장(240); 블록체인 네트워크의 다른 노드들과의 합의에 따라 상기 분산 원장을 관리하는 블록체인 운영부(210); 블록체인 네트워크를 이용한 스마트 컨트랙트를 수행하는 스마트 컨트랙트 운영부(220); 블록체인 네트워크의 다른 노드들과의 데이터 통신을 수행하는 블록체인 네트워크 통신 모듈(260); 및 블록체인 네트워크나 스마트 컨트랙트의 클라이언트로부터의 요청 처리를 위한 데이터 통신을 수행하는 클라이언트 인터페이스(270)를 더 포함할 수 있다.As shown in FIG. 1, each node (100, 100-1 to N) of the blockchain network is a component for operating a general blockchain network, and records the content agreed upon in the blockchain network in an unforgeable manner. distributed ledger (240); A blockchain operation unit 210 that manages the distributed ledger according to agreement with other nodes of the blockchain network; A smart contract operation unit (220) that performs a smart contract using a blockchain network; A blockchain network communication module 260 that performs data communication with other nodes of the blockchain network; And it may further include a client interface 270 that performs data communication for processing requests from clients of the blockchain network or smart contract.

상기 저장공간 접근제어정책 모듈(130)이 준수하는 상기 보안 정책은, 해당 블록체인을 운영하는 관리자가 지정하거나, 또는, 상기 블록체인 네트워크의 참여자들의 투표를 통하여 결정될 수 있다.The security policy that the storage space access control policy module 130 complies with may be designated by an administrator who operates the blockchain, or may be determined through voting by participants in the blockchain network.

상기 스마트 컨트랙트 운영부(220)는 상기 블록체인 운영부(210)의 내부 모듈인 경우가 일반적이지만, 본 발명의 사상은 스마트 컨트랙트에 보다 유용한 바, 별도로 명명하였다.The smart contract operating unit 220 is generally an internal module of the blockchain operating unit 210, but since the idea of the present invention is more useful for smart contracts, it is named separately.

구현에 따라, 상기 클라이언트는 블록체인 네트워크에 대한 사용자가 이용하는 단말기, 서버 등 장비일 수 있으며, 각 노드(100, 100-1 ~ N)가 담당으로 지정된 클라이언트가 되거나, 모든 노드들에 대한 클라이언트가 될 수도 있다.Depending on the implementation, the client may be a device such as a terminal or server used by users of the blockchain network, and each node (100, 100-1 ~ N) may be a client designated in charge, or a client for all nodes. It could be.

각 노드들(100, 100-1 ~ N)는, 본 발명의 사상에 따른 구성요소들로서, 내부에 외부 저장소 테이블(110), 분산원장(120), 저장공간 접근제어정책 모듈(130) 등을 포함한다.Each node (100, 100-1 to N) is a component according to the spirit of the present invention, and has an internal external storage table 110, a distributed ledger 120, a storage space access control policy module 130, etc. Includes.

상기 분산 원장(240), 블록체인 운영부(210), 스마트 컨트랙트 운영부(220), 블록체인 네트워크 통신 모듈(260) 및 클라이언트 인터페이스(270)는 종래의 공지된 블록체인 기술을 적용할 수 있는 바, 상세 설명은 생략한다.The distributed ledger 240, blockchain operation unit 210, smart contract operation unit 220, blockchain network communication module 260, and client interface 270 can apply conventional and known blockchain technology, Detailed description is omitted.

도 2에 도시한 노드들(100, 100-1 ~ N)의 전부 또는 일부는, 도 1에 도시한 구조를 따를 수 있으며, 도시한 노드들(100, 100-1 ~ N)이 구성하는 상기 블록체인 네트워크는 다수 개의 스마트 컨트랙트들을 진행할 수 있다.All or part of the nodes 100, 100-1 to N shown in FIG. 2 may follow the structure shown in FIG. 1, and the nodes 100, 100-1 to N shown above constitute the structure. Blockchain networks can run multiple smart contracts.

다수 개의 스마트 컨트랙트들을 진행하는 경우 상기 저장공간 접근제어정책 모듈(130)은, 상기 외부 저장소(300)에 저장될 수 있는 각 데이터 항목에 대하여 접근가능한 스마트 컨트랙트를 상기 다수개의 스마트 컨트랙트들 중에서 지정할 수 있다.When proceeding with multiple smart contracts, the storage space access control policy module 130 can designate a smart contract that can be accessed for each data item that can be stored in the external storage 300 from among the multiple smart contracts. there is.

본 발명의 사상에 따른 상기 외부 저장소 테이블(110)의 역할은 외부 저장소(300) 저장공간 낭비 방지 및 빠른 스마트 컨트랙트 처리이다. 서로 다른 스마트 컨트랙트에서 요구하는 데이터가 같지만, 외부 저장소(300)에 있는 데이터 존재여부를 알지 못하기 때문에 중복 저장으로 자원을 낭비하게 된다. 이를 외부 저장소 테이블(110)에서 미리 정보를 파악하여 자원 낭비를 줄인다. 마찬가지로 필요한 데이터가 있으면 스마트 컨트랙트에서는 필요한 데이터를 요구하지 않고 외부 저장소(300)에서 참고하여 빠른 처리가 가능하다.The role of the external storage table 110 according to the spirit of the present invention is to prevent waste of storage space in the external storage 300 and to quickly process smart contracts. The data required by different smart contracts is the same, but since the presence of data in the external storage 300 is not known, resources are wasted due to redundant storage. This information is identified in advance in the external storage table 110 to reduce resource waste. Similarly, if necessary data is available, the smart contract can refer to the external storage 300 without requesting the necessary data, allowing quick processing.

예컨대, 상기 검증관리 모듈(140)은 소프트웨어 모듈로 구현되며, 외부 저장소 테이블(110)에 저장되는 데이터에 대하여 외부와 통신하여 위변조를 검증할 수 있다. For example, the verification management module 140 is implemented as a software module and can verify forgery and alteration of data stored in the external storage table 110 by communicating with the outside.

위변조 확인 방법은 외부기관으로부터 검증 규칙을 다운로드 받아 자체적으로 검사하거나, 외부기관에서 운영하는 검증 절차에 따를 수 있다. 또는, 외부기관으로 직접 데이터를 수신받아 문서의 위변조 기회를 아예 주지않음으로써 원본임을 증명할 수 있다. 이 경우, 상기 검증관리 모듈(140)은, 상기 외부 저장소(300)에 저장할 데이터에 대하여 발급 기관이 존재하는 경우, 상기 발급 기관으로부터 해당 데이터를 받아서 상기 외부 저장소에 업로드할 수 있다.To confirm forgery, you can download verification rules from an external organization and inspect them yourself, or follow a verification procedure operated by an external organization. Alternatively, you can receive data directly from an external organization and prove that it is the original by giving no opportunity for forgery or alteration of the document. In this case, if an issuing agency exists for the data to be stored in the external storage 300, the verification management module 140 can receive the data from the issuing agency and upload it to the external storage.

구현에 따라, 상기 외부 저장소 테이블(110)은, 상기 스마트 컨트랙트에 필요한 데이터에 대하여, 각 데이터 항목의 상기 외부 저장소 테이블에서의 존재 여부를 확인시키고, 각 데이터 항목에 대하여 상기 외부 저장소의 해당 데이터가 존재하는지 확인시킬 수 있는 2단계의 확인 과정을 지원할 수 있다.Depending on the implementation, the external storage table 110 verifies the existence of each data item in the external storage table for data required for the smart contract, and determines whether the corresponding data in the external storage is present for each data item. It can support a two-step verification process to confirm its existence.

여기서, 데이터 항목은, 현재 기록되거나 추후에 기록될 데이터의 종류를 지정한 것으로, 상기 외부 저장소 테이블(110)은 다수개의 데이터 항목들로 이루어지고, 각 데이터 항목에 대하여 외부 저장소(300)에 데이터가 존재할 수도 또는 아직 존재하지 않을 수(즉, 미기재)도 있다.Here, the data item designates the type of data that is currently recorded or will be recorded in the future. The external storage table 110 consists of a plurality of data items, and data is stored in the external storage 300 for each data item. It may exist or may not yet exist (i.e., not specified).

예컨대, 상기 외부 저장소 테이블(110)은, 특정 데이터 항목에 대하여, 데이터 항목 명칭과, '접근이 허용되는 계약(스마트 컨트랙트)들, 접근이 허용되는 노드 및 접근이 허용되는 클라이언트' 중 적어도 하나 이상과, 데이터 저장 위치 정보를 포함하는 레코드들로 이루어진 테이블으로 구성될 수 있다. 추구하는 목적에 따라, 상기 레코드들에는 추가적으로 저장된 데이터 크기, 포맷, 문서 발급일, 업로드 날짜/시각, 발급 기관, 검(인)증 기관 등의 정보들이 더 포함될 수 있다. 이때, 상기 데이터 저장 위치 정보와 상기 추가적으로 저장된 정보들은 상기 접근이 허용되는 계약(또는 노드나 클라이언트)에 대해서만 독출(리딩)이 가능하도록 구현할 수 있다.For example, the external storage table 110 includes, for a specific data item, at least one of the data item name, 'contracts (smart contracts) that are allowed to access, nodes that are allowed to access, and clients that are allowed to access.' It may be composed of a table consisting of records containing data storage location information. Depending on the purpose pursued, the records may additionally include information such as stored data size, format, document issuance date, upload date/time, issuing agency, and verification (certification) agency. At this time, the data storage location information and the additionally stored information can be implemented so that they can be read only for contracts (or nodes or clients) to which the access is permitted.

본 발명의 사상에 따라 스마트 컨트랙트를 실행하는 경우, 상기 노드(100)는, 상기 분산 원장(240)에 블록을 추가할 때, 상기 외부 저장소 테이블(110)을 확인하여 필요한 데이터를 외부 저장소에서 확보할 수 있다. When executing a smart contract according to the spirit of the present invention, when adding a block to the distributed ledger 240, the node 100 checks the external storage table 110 and secures the necessary data from external storage. can do.

또한, 상기 노드(100)는, 상기 외부 저장소 테이블(110)에 기재되지 않은 데이터를 외부로부터 새로 입력받으면, 상기 외부 저장소(300)에 상기 기재되지 않은 데이터를 업로드하고, 상기 외부 저장소 테이블(110)을 갱신하며, 상기 블록체인 네트워크에 속한 다른 노드들(100-1 ~ N)에 외부 저장소 테이블 갱신 정보를 전송할 수 있다.In addition, when the node 100 receives new data from the outside that is not described in the external storage table 110, it uploads the unwritten data to the external storage 300 and stores the data in the external storage table 110. ), and external storage table update information can be transmitted to other nodes (100-1 to N) belonging to the blockchain network.

상술한 갱신 과정으로 상기 노드(100) 및 상기 블록체인 네트워크에 속한 다른 노드들(100-1 ~ N)은 동일한 내용으로 동기화된 외부 저장소 테이블(110)을 각각 구비하게 된다.Through the above-described update process, the node 100 and other nodes 100-1 to N belonging to the blockchain network each have an external storage table 110 synchronized with the same content.

이 경우 구현에 따라, 상기 다른 노드들(100-1 ~ N)은, 상기 외부 저장소 테이블 갱신 정보에 따라, 상기 외부 저장소(300)에 접근하여 소정의 합의 알고리즘에 기반하여 업로드된 데이터를 검증할 수 있다.In this case, depending on the implementation, the other nodes (100-1 to N) access the external storage 300 according to the external storage table update information and verify the uploaded data based on a predetermined consensus algorithm. You can.

살펴본 본 발명의 사상에 따른 외부 저장소 테이블을 구비하는 스마트 컨트랙트를 위한 블록체인 시스템은, 제안기술의 외부 기관으로부터 검증하는 검증관리 소프트웨어로서 검증관리 모듈을 적용하며, 스마트 컨트랙트에서 자주 사용되는 파일 목록 및 카테고리 정리하는 데이터 접근 가능한 스마트 컨트랙트 목록 관리를 수행할 수 있다.The blockchain system for smart contracts with an external storage table according to the idea of the present invention, which has been reviewed, applies a verification management module as verification management software that verifies the proposed technology from an external organization, and includes a list of files frequently used in smart contracts and You can manage the list of smart contracts that can access data by organizing categories.

도 2에 도시한 스마트 컨트랙트를 위한 블록체인 시스템은, 상기 검증관리 모듈(140)의 의뢰에 따른 데이터를 검증하는 검증 서버(400)를 더 포함한다.The blockchain system for smart contracts shown in FIG. 2 further includes a verification server 400 that verifies data requested by the verification management module 140.

도 3은 도 1에 도시한 노드를 이용하여 구성한 스마트 컨트랙트를 위한 블록체인 시스템의 다른 예를 도시한 구성도이다.FIG. 3 is a configuration diagram showing another example of a blockchain system for a smart contract constructed using the node shown in FIG. 1.

도 3의 시스템의 경우 도 2와 같이 별도의 독립된 서버로 동작하는 검증 서버를 구비하지 않고, 도시한 검증관리 SW(140-0 ~ N)의 형태로, 각 노드(100, 100-1 ~ N)안에 포함되어 참여자들이 외부와 통신하여 데이터를 검증한다. 이는 참여자를 주체로 하여 데이터를 검증하는 것으로 블록체인의 철학에 부합한다.In the case of the system of FIG. 3, it does not have a verification server operating as a separate independent server as shown in FIG. 2, but is in the form of verification management SW (140-0 to N) as shown, and each node (100, 100-1 to N) ) and the participants communicate with the outside to verify the data. This conforms to the philosophy of blockchain by verifying data with participants as the subject.

도 4a 및 4b는 종래기술의 방법과 본 발명의 외부 저장소 테이블을 이용한 저장공간 낭비 방지 및 스마트 컨트랙트 대기시간 절약 방법을 비교한 절차 개념도들이다.Figures 4a and 4b are procedural conceptual diagrams comparing the method of the prior art and the method of preventing storage space waste and saving smart contract waiting time using an external storage table of the present invention.

도 4a에 도시한 종래 기술의 경우에는, 대용량 파일 처리가 필요한 체인코드 마다 외부 저장소(300)에 엑세스하여 해당 파일을 업로드하는 바, 서로 다른 시점에 필요한 파일이 서로 동일하더라도 외부 저장소(300)로의 중복 업로드를 피할 수 없다. In the case of the prior art shown in FIG. 4A, each chaincode that requires large-capacity file processing accesses the external storage 300 and uploads the corresponding file, so even if the files needed at different times are the same, the files are not stored in the external storage 300. Duplicate uploads cannot be avoided.

반면, 도 4b 도시한 본 발명의 사상에 따른 경우에는, 대용량 파일 처리가 필요한 후속 체인코드5의 실행시 먼저 외부 저장소 테이블(110)을 참조하여 동일한 파일이 이미 외부 저장소(300)에 업로드되어 있는지 확인할 수 있다.On the other hand, in the case according to the idea of the present invention shown in FIG. 4B, when executing the subsequent chaincode 5 that requires processing a large file, the external storage table 110 is first referred to to determine whether the same file has already been uploaded to the external storage 300. You can check it.

도 5는 도 1은 본 발명의 사상에 따른 외부 저장소 테이블을 구비하는 블록체인 시스템에서의 데이터 운용 방법의 일 실시예를 도시한 흐름도이다.FIG. 5 is a flowchart illustrating an embodiment of a data operation method in a blockchain system having an external storage table according to the spirit of the present invention.

도 5에 도시한 흐름도의 데이터 운용 방법은 도 2 내지 도 4에 도시한 각 노드(100)에 의해 수행될 수 있다. 즉, 도 5에 도시한 데이터 운용 방법은, 스마트 컨트랙트에 대한 분산 원장을 참여자 간 공유하는 블록체인 네트워크를 구성하는 노드들과, 상기 분산 원장과 더불어 상기 스마트 컨트랙트를 위한 데이터를 저장하는 외부 저장소와, 스마트 컨트랙트를 위해 상기 외부 저장소에 저장된 데이터에 대한 정리된 정보를 보관하는 외부 저장소 테이블을 구비하는 블록체인 시스템에서의 데이터 사용(확보, 이용, 처리) 방법이다.The data operation method in the flowchart shown in FIG. 5 can be performed by each node 100 shown in FIGS. 2 to 4. That is, the data operation method shown in FIG. 5 includes nodes constituting a blockchain network that share a distributed ledger for a smart contract between participants, an external storage that stores data for the smart contract along with the distributed ledger, and , This is a method of using (securing, using, processing) data in a blockchain system that has an external storage table that stores organized information about data stored in the external storage for smart contracts.

도 5에 도시한 외부 저장소 테이블을 구비하는 블록체인 시스템에서의 데이터 운용 방법은, 클라이언트 요청으로 스마트 컨트랙트 진행을 위해 필요한 데이터에 대하여, 상기 외부 저장소 테이블에서 해당 데이터 항목을 확인하는 단계(S1200); 상기 외부 저장소 테이블의 상기 데이터 항목에 대한 유효 접근인지 확인하는 단계(S1400); 유효 접근이면 상기 외부 저장소 테이블의 기재 정보에 따라 해당 데이터가 저장된 상기 외부 저장소의 위치에 접근하는 단계(S1500); 및 상기 위치에서 상기 해당 데이터를 확보하는 단계(S1600)를 포함할 수 있다.A data operation method in a blockchain system with an external storage table shown in FIG. 5 includes the steps of checking the corresponding data item in the external storage table for data required to proceed with a smart contract at a client request (S1200); Checking whether there is valid access to the data item of the external storage table (S1400); If access is valid, accessing the location of the external storage where the corresponding data is stored according to the information described in the external storage table (S1500); And it may include securing the corresponding data at the location (S1600).

도 6은 도 5의 흐름도의 상세 과정들의 일 예를 도시한 상세 흐름도이다.FIG. 6 is a detailed flowchart showing an example of the detailed processes of the flowchart of FIG. 5.

상술한 바와 같은 구성을 포함하는 본 발명에 따른 외부 저장소 테이블을 이용한 저장공간 낭비 방지 및 스마트 컨트랙트 대기시간 절약 방법에 대해, 도 5 및 도 6을 참조하여 설명한다.A method for preventing storage space waste and saving smart contract waiting time using an external storage table according to the present invention including the configuration described above will be described with reference to FIGS. 5 and 6.

도 5의 S1200 단계는 도 6에서 S1205 단계 및 S1207 단계로 구체화되었으며, 도 5의 S1400 단계는 도 6에서 S1409 단계로 표현되었으며, 도 5의 S1500 단계는 도 6에서 S1521 단계 및 S1523 단계로 구체화되었으며, 도 5의 S1600 단계는 도 6에서 S1625 단계로 표현되었다.Step S1200 in FIG. 5 is embodied as steps S1205 and S1207 in FIG. 6, step S1400 in FIG. 5 is represented as steps S1409 in FIG. 6, and step S1500 in FIG. 5 is embodied as steps S1521 and S1523 in FIG. 6. , step S1600 in Figure 5 is expressed as step S1625 in Figure 6.

도 6에 도시한 바와 같이, 도 5의 상기 외부 저장소 테이블에서 해당 데이터 항목을 확인하는 단계(S1200) 이전에, 상기 클라이언트가 상기 블록체인 네트워크에 속한 상기 노드에게 스마트 컨트랙트 동작을 요청하는 단계(S1001); 및 상기 블록체인 네트워크가 상기 블록체인의 합의 알고리즘을 통해 스마트 컨트랙트를 동작시키는 단계(S1003)를 더 포함할 수 있다. As shown in FIG. 6, before the step of checking the corresponding data item in the external storage table of FIG. 5 (S1200), the client requests a smart contract operation from the node belonging to the blockchain network (S1001) ); And it may further include a step (S1003) of the blockchain network operating a smart contract through the consensus algorithm of the blockchain.

또한, 상기 유효 접근인지 확인하는 단계(S1400, S1409)의 수행 결과 유효한 접근이 아닌 경우, 상기 클라이언트에 데이터를 요청하는 단계(S1711); 상기 클라이언트로부터 상기 데이터를 받아 스마트 컨트랙트를 실행하고, 외부 저장소에 용량이 크거나 삭제할 필요성이 있는 데이터를 저장하는 단계(S1713); 및 저장 후 상기 외부 저장소 테이블에 데이터의 정보를 기재하는 단계(S1715)를 수행할 수 있다.In addition, if the access is not valid as a result of the checking whether the access is valid (S1400, S1409), requesting data from the client (S1711); Receiving the data from the client, executing a smart contract, and storing data that has a large capacity or needs to be deleted in external storage (S1713); And after saving, a step of writing data information in the external storage table (S1715) can be performed.

또한, 상기 S1715 단계의 수행 이후, 상기 외부 저장소로 상기 데이터를 저장함에 대하여, 상기 외부 저장소 테이블 갱신을, 상기 블록체인 네트워크의 다른 노드들에게 전파하는 단계(S1717); 및 상기 다른 노드들에서 상기 외부 저장소로 접근하여 해당 데이터의 위변조 여부를 검증하는 단계(S1719)를 더 수행할 수 있다.In addition, after performing step S1715, when storing the data in the external storage, propagating the external storage table update to other nodes of the blockchain network (S1717); And a step (S1719) of accessing the external storage from the other nodes and verifying whether the corresponding data has been forged or altered may be further performed.

상기 S1711 단계 내지 S1719 단계는, 상기 외부 저장소의 위치에 접근하는 단계(S1500, S1521)에서 데이터가 상기 외부 저장소에 해당 데이터가 없는 것을 확인한 경우에도 수행될 수 있다.Steps S1711 to S1719 may be performed even when it is confirmed that the data is not in the external storage in the steps of accessing the location of the external storage (S1500, S1521).

예컨대, 도시한 S1001 단계에서는 클라이언트가 블록체인 네트워크(200)에 속한 노드(110)에게 스마트 컨트랙트 동작을 요청할 수 있다.For example, in step S1001, the client may request a smart contract operation from the node 110 belonging to the blockchain network 200.

예컨대, 도시한 S1003 단계에서는 스마트 컨트랙트는 해당 블록체인의 합의 알고리즘을 통해 동작할 수 있다.For example, in step S1003 shown, the smart contract can operate through the consensus algorithm of the corresponding blockchain.

예컨대, 도시한 S1205 단계에서는 스마트 컨트랙트가 동작하다 필요한 데이터가 있으면 외부 저장소 테이블로 접근할 수 있다.For example, in step S1205 shown, if the smart contract is operating and there is necessary data, it can access the external storage table.

예컨대, 도시한 S1207 단계로 해당 외부 저장소 테이블로 접근한 후, 도시한 S1209 단계에서는 외부 저장소 테이블의 보안을 위해 유효한 접근인지 확인할 수 있다. For example, after accessing the external storage table in step S1207 shown, it is possible to check whether the access is valid for the security of the external storage table in step S1209.

만약, 유효한 접근이 아닌 경우, 클라이언트에 데이터를 요청하고(S1711), 데이터를 받아 스마트 컨트랙트를 실행하고 외부 저장소에 용량이 크거나 삭제할 필요성이 있는 데이터를 저장할 수 있다(S1713). 저장 후 외부 저장소 테이블에 저장된 데이터의 정보를 기재할 수 있다(S1715).If the access is not valid, data can be requested from the client (S1711), the data can be received, a smart contract can be executed, and data with a large capacity or that needs to be deleted can be stored in external storage (S1713). After saving, information about the data stored in the external storage table can be written (S1715).

예컨대, 도시한 S1717 단계에서 노드는 외부 저장소로 데이터를 전송하고 외부 저장소 테이블 갱신을 블록체인을 구성하는 다른 노드들에게 전파할 수 있다. 그러면, 상기 다른 노드들은 외부 저장소로 접근하여 해당 데이터가 위변조 되었는지를 검증관리 소프트웨어를 통해 확인할 수 있다(S1719).For example, in step S1717 shown, the node can transmit data to external storage and propagate the external storage table update to other nodes constituting the blockchain. Then, the other nodes can access the external storage and check whether the data has been forged or altered through verification management software (S1719).

도시한 S1209 단계에서 유효한 접근인 경우, 도시한 S1521 단계에서는 외부 저장소 테이블로 접근하여 외부 저장소(300)에 데이터 존재여부를 확인할 수 있다. If the access is valid in step S1209, the presence of data in the external storage 300 can be checked by accessing the external storage table in step S1521.

상기 S1521 단계에서 데이터가 없다면, 상술한 유효하지 않은 경우와 같은 절차를 진행한다. 데이터가 있다면, 외부 저장소(300)의 위치를 확인 후 접근한다(S1023). 데이터를 확인 후 스마트 컨트랙트를 동작을 위해 활용할 수 있다(S1025).If there is no data in step S1521, the same procedure as the invalid case described above is performed. If there is data, check the location of the external storage 300 and access it (S1023). After confirming the data, the smart contract can be used for operation (S1025).

구현에 따라, 상기 해당 데이터를 확보하는 단계(S1600) 이후, 스마트 컨트랙트를 동작하는 단계(S1827); 및 그 결과를 클라이언트에 전달하는 단계(S1829)를 더 수행할 수 있다. 상기 S1829 단게에서 데이터가 위변조 되었을 경우는 스마트 컨트랙트를 동작시키지 않고 참여자에게 결과를 송신할 수 있다.Depending on the implementation, after securing the corresponding data (S1600), operating a smart contract (S1827); A step (S1829) of transmitting the result to the client may be further performed. If the data has been forged or altered in step S1829, the results can be sent to the participant without operating the smart contract.

본 발명이 속하는 기술 분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Those skilled in the art to which the present invention pertains should understand that the present invention can be implemented in other specific forms without changing its technical idea or essential features, and that the embodiments described above are illustrative in all respects and not restrictive. Just do it. The scope of the present invention is indicated by the claims described later rather than the detailed description, and all changes or modified forms derived from the meaning and scope of the claims and their equivalent concepts should be construed as being included in the scope of the present invention. .

100 : 노드 100-1 ~ N : 다른 노드들
110 : 외부 저장소 테이블 130 : 접근제어정책 모듈
140 : 검증관리 모듈
210 : 블록체인 운영부 220 : 스마트 컨트랙트 운영부
240 : 분산 원장
300 : 외부 저장소 400 : 검증 서버
100: Node 100-1 ~ N: Other nodes
110: External storage table 130: Access control policy module
140: Verification management module
210: Blockchain operation department 220: Smart contract operation department
240: Distributed ledger
300: External storage 400: Verification server

Claims (15)

스마트 컨트랙트에 대한 분산 원장을 참여자 간 공유하는 블록체인 네트워크를 구성하는 노드들; 및
상기 분산 원장과 더불어 상기 스마트 컨트랙트를 위한 데이터를 저장하는 외부 저장소를 포함하되,
각 노드는,
스마트 컨트랙트를 위해 상기 외부 저장소에 저장된 데이터에 대한 정리된 정보를 보관하는 외부 저장소 테이블
을 구비하는 스마트 컨트랙트를 위한 블록체인 시스템.
Nodes that make up a blockchain network that shares a distributed ledger for smart contracts among participants; and
In addition to the distributed ledger, it includes an external storage that stores data for the smart contract,
Each node is,
An external storage table that stores organized information about data stored in the external storage for smart contracts.
A blockchain system for smart contracts equipped with.
제1항에 있어서,
상기 각 노드는,
상기 외부 저장소의 데이터를 검증하는 검증관리 모듈; 및
상기 외부 저장소에 대한 보안 정책을 담당하는 저장공간 접근제어정책 모듈
을 더 포함하는 스마트 컨트랙트를 위한 블록체인 시스템.
According to paragraph 1,
Each node above is,
a verification management module that verifies data in the external storage; and
Storage space access control policy module responsible for security policy for the external storage
A blockchain system for smart contracts that further includes.
제2항에 있어서,
상기 블록체인 네트워크는 다수 개의 스마트 컨트랙트들을 진행하며,
상기 저장공간 접근제어정책 모듈은,
상기 외부 저장소에 저장될 수 있는 각 데이터에 대하여 접근가능한 스마트 컨트랙트를 상기 다수 개의 스마트 컨트랙트들 중에서 지정하는 스마트 컨트랙트를 위한 블록체인 시스템.
According to paragraph 2,
The blockchain network processes multiple smart contracts,
The storage space access control policy module is,
A blockchain system for smart contracts that designates among the plurality of smart contracts a smart contract that can access each data that can be stored in the external storage.
제2항에 있어서,
상기 보안 정책은,
해당 블록체인을 운영하는 관리자가 지정하거나, 또는, 상기 블록체인 네트워크의 참여자들의 투표를 통하여 결정되는 스마트 컨트랙트를 위한 블록체인 시스템.
According to paragraph 2,
The above security policy is,
A blockchain system for smart contracts designated by the administrator who operates the blockchain, or determined through voting by participants in the blockchain network.
제2항에 있어서,
상기 검증관리 모듈의 의뢰에 따른 데이터를 검증하는 검증 서버
를 더 포함하는 스마트 컨트랙트를 위한 블록체인 시스템.
According to paragraph 2,
Verification server that verifies data requested by the verification management module
A blockchain system for smart contracts that further includes.
제1항에 있어서,
상기 외부 저장소 테이블은, 상기 스마트 컨트랙트에 필요한 데이터에 대하여,
각 데이터 항목의 상기 외부 저장소 테이블에서의 존재 여부를 확인시키고, 각 데이터 항목에 대하여 상기 외부 저장소의 해당 데이터가 존재하는지 확인시킬 수 있는 스마트 컨트랙트를 위한 블록체인 시스템.
According to paragraph 1,
The external storage table is for data needed for the smart contract,
A blockchain system for smart contracts that can confirm the existence of each data item in the external storage table and confirm whether the corresponding data in the external storage exists for each data item.
제1항에 있어서,
상기 노드는,
스마트 컨트랙트를 실행하여 상기 분산 원장에 블록을 추가할 때, 상기 외부 저장소 테이블을 확인하여 필요한 데이터를 외부 저장소에서 확보하는 스마트 컨트랙트를 위한 블록체인 시스템.
According to paragraph 1,
The node is,
A blockchain system for smart contracts that secures necessary data from external storage by checking the external storage table when executing a smart contract to add a block to the distributed ledger.
제1항에 있어서,
상기 노드는,
상기 외부 저장소 테이블에 기재되지 않은 데이터를 외부로부터 새로 입력받으면, 상기 외부 저장소에 상기 기재되지 않은 데이터를 업로드하고, 상기 외부 저장소 테이블을 갱신하며, 상기 블록체인 네트워크에 속한 다른 노드들에 외부 저장소 테이블 갱신 정보를 전송하는 스마트 컨트랙트를 위한 블록체인 시스템.
According to paragraph 1,
The node is,
When data not described in the external storage table is newly input from the outside, the data not described in the external storage is uploaded to the external storage table, the external storage table is updated, and the external storage table is distributed to other nodes belonging to the blockchain network. A blockchain system for smart contracts that transmit update information.
제8항에 있어서,
상기 다른 노드들은,
상기 외부 저장소 테이블 갱신 정보에 따라, 상기 외부 저장소에 접근하여 소정의 합의 알고리즘에 기반하여 업로드된 데이터를 검증하는 스마트 컨트랙트를 위한 블록체인 시스템.
According to clause 8,
The other nodes are,
A blockchain system for smart contracts that accesses the external storage according to the external storage table update information and verifies uploaded data based on a predetermined consensus algorithm.
제2항에 있어서,
상기 검증관리 모듈은,
상기 외부 저장소에 저장할 데이터에 대하여 발급 기관이 존재하는 경우, 상기 발급 기관으로부터 해당 데이터를 받아서 상기 외부 저장소에 업로드하는 스마트 컨트랙트를 위한 블록체인 시스템.
According to paragraph 2,
The verification management module is,
If an issuing authority exists for data to be stored in the external storage, a blockchain system for smart contracts that receives the data from the issuing authority and uploads it to the external storage.
스마트 컨트랙트에 대한 분산 원장을 참여자 간 공유하는 블록체인 네트워크를 구성하는 노드들과, 상기 분산 원장과 더불어 상기 스마트 컨트랙트를 위한 데이터를 저장하는 외부 저장소와, 스마트 컨트랙트를 위해 상기 외부 저장소에 저장된 데이터에 대한 정리된 정보를 보관하는 외부 저장소 테이블을 구비하는 블록체인 시스템에서의 데이터 운용 방법으로서,
클라이언트 요청으로 스마트 컨트랙트 진행을 위해 필요한 데이터에 대하여, 상기 외부 저장소 테이블에서 해당 데이터 항목을 확인하는 단계;
상기 외부 저장소 테이블의 상기 데이터 항목에 대한 유효 접근인지 확인하는 단계;
유효 접근이면 상기 외부 저장소 테이블의 기재 정보에 따라 해당 데이터가 저장된 상기 외부 저장소의 위치에 접근하는 단계; 및
상기 위치에서 상기 해당 데이터를 확보하는 단계
를 포함하는 외부 저장소 테이블을 구비하는 블록체인 시스템에서의 데이터 운용 방법.
Nodes that constitute a blockchain network that shares the distributed ledger for smart contracts among participants, an external storage that stores data for the smart contract along with the distributed ledger, and data stored in the external storage for the smart contract. As a data operation method in a blockchain system that has an external storage table that stores organized information,
For data required to proceed with a smart contract at a client request, checking the corresponding data item in the external storage table;
confirming valid access to the data item of the external storage table;
If access is valid, accessing the location of the external storage where the corresponding data is stored according to information described in the external storage table; and
Securing the corresponding data at the location
A data operation method in a blockchain system that includes an external storage table.
제11항에 있어서,
상기 외부 저장소 테이블에서 해당 데이터 항목을 확인하는 단계 이전에,
상기 클라이언트가 상기 블록체인 네트워크에 속한 노드에게 스마트 컨트랙트 동작을 요청하는 단계; 및
상기 블록체인 네트워크가 상기 블록체인의 합의 알고리즘을 통해 스마트 컨트랙트를 동작시키는 단계
를 더 포함하는 블록체인 시스템에서의 데이터 운용 방법.
According to clause 11,
Before checking the corresponding data item in the external storage table,
The client requests a smart contract operation from a node belonging to the blockchain network; and
Step of the blockchain network operating a smart contract through the consensus algorithm of the blockchain
A data operation method in a blockchain system further comprising:
제11항에 있어서,
상기 유효 접근인지 확인하는 단계의 수행 결과 유효한 접근이 아닌 경우,
상기 클라이언트에 데이터를 요청하는 단계;
상기 클라이언트로부터 상기 데이터를 받아 스마트 컨트랙트를 실행하고, 외부 저장소에 용량이 크거나 삭제할 필요성이 있는 데이터를 저장하는 단계; 및
저장 후 상기 외부 저장소 테이블에 데이터의 정보를 기재하는 단계
를 더 포함하는 블록체인 시스템에서의 데이터 운용 방법.
According to clause 11,
If the access is not valid as a result of performing the step to check whether the access is valid,
requesting data from the client;
Receiving the data from the client, executing a smart contract, and storing data that has a large capacity or needs to be deleted in external storage; and
Step of recording data information in the external storage table after saving
A data operation method in a blockchain system further comprising:
제11항에 있어서,
상기 외부 저장소의 위치에 접근하는 단계에서 데이터가 상기 외부 저장소에 없는 것을 확인하면,
상기 클라이언트에 데이터를 요청하는 단계;
상기 클라이언트로부터 상기 데이터를 받아 스마트 컨트랙트를 실행하고, 외부 저장소에 용량이 크거나 삭제할 필요성이 있는 데이터를 저장하는 단계; 및
저장 후 상기 외부 저장소 테이블에 데이터의 정보를 기재하는 단계
를 더 포함하는 블록체인 시스템에서의 데이터 운용 방법.
According to clause 11,
In the step of accessing the location of the external storage, if it is confirmed that the data is not in the external storage,
requesting data from the client;
Receiving the data from the client, executing a smart contract, and storing data that has a large capacity or needs to be deleted in external storage; and
Step of recording data information in the external storage table after saving
A data operation method in a blockchain system further comprising:
제13항 또는 제14항에 있어서,
상기 외부 저장소로 상기 데이터를 저장함에 대하여, 상기 외부 저장소 테이블 갱신을, 상기 블록체인 네트워크의 다른 노드들에게 전파하는 단계; 및
상기 다른 노드들에서 상기 외부 저장소로 접근하여 해당 데이터의 위변조 여부를 검증하는 단계
를 더 포함하는 블록체인 시스템에서의 데이터 운용 방법.
According to claim 13 or 14,
For storing the data in the external storage, propagating the external storage table update to other nodes in the blockchain network; and
Verifying whether the data has been forged or altered by accessing the external storage from the other nodes
A data operation method in a blockchain system further comprising:
KR1020220056206A 2022-05-06 2022-05-06 Blockchain system with external storage table and data operation method KR20230156590A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220056206A KR20230156590A (en) 2022-05-06 2022-05-06 Blockchain system with external storage table and data operation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220056206A KR20230156590A (en) 2022-05-06 2022-05-06 Blockchain system with external storage table and data operation method

Publications (1)

Publication Number Publication Date
KR20230156590A true KR20230156590A (en) 2023-11-14

Family

ID=88745137

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220056206A KR20230156590A (en) 2022-05-06 2022-05-06 Blockchain system with external storage table and data operation method

Country Status (1)

Country Link
KR (1) KR20230156590A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200126794A (en) 2019-04-30 2020-11-09 숭실대학교산학협력단 Container cluster system for authentication based on blockchain

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200126794A (en) 2019-04-30 2020-11-09 숭실대학교산학협력단 Container cluster system for authentication based on blockchain

Similar Documents

Publication Publication Date Title
KR102026225B1 (en) Apparatus for managing data using block chain and method thereof
US20220156706A1 (en) File vault and cloud based document notary service
US8572023B2 (en) Data services framework workflow processing
US9727577B2 (en) System and method to store third-party metadata in a cloud storage system
KR20200093597A (en) Assignment and reallocation of unique identifiers for synchronization of content items
US20090234880A1 (en) Remote storage and management of binary object data
US20230289782A1 (en) Smart contract-based data processing
US20140136496A1 (en) System, method and non-transitory computer readable storage medium for supporting network file accessing and versioning with multiple protocols in a cloud storage server
US11783074B2 (en) Controlling access to secure information resources using rotational datasets and dynamically configurable data containers
CN113901005A (en) Portable file storage method, system and medium based on block chain
US11743262B2 (en) Controlling access to secure information resources using rotational datasets and dynamically configurable data containers
US11711369B2 (en) Controlling access to secure information resources using rotational datasets and dynamically configurable data containers
US20190228132A1 (en) Data isolation in distributed hash chains
KR20190110082A (en) Apparatus for managing data using block chain and method thereof
CN102932443A (en) HDFS (hadoop distributed file system) cluster based distributed cloud storage system
CN112817912B (en) File management method, device, computer equipment and storage medium
CN109670027B (en) Image query, cache and retention method and system
KR20230156590A (en) Blockchain system with external storage table and data operation method
CN117376364A (en) Data processing method and related equipment
CN109413200A (en) A kind of method, client, MES and electronic equipment that resource imports
US11386072B1 (en) Automatic consistency for database write forwarding
US8453166B2 (en) Data services framework visibility component
US20200019646A1 (en) Cloud storage aggregator system and method
WO2022001203A1 (en) Mirror image distribution method, electronic device, and storage medium
US11860863B1 (en) Data redaction in a journal-based database

Legal Events

Date Code Title Description
E902 Notification of reason for refusal